core: Remove string-append.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 23 Dec 2016 19:56:37 +0000 (20:56 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 23 Dec 2016 19:56:37 +0000 (20:56 +0100)
* string.c (string_append): Remove.
* module/mes/type-0.mes (string-append): New function.
* module/mes/base-0.mes: Include type-0 without using string-append.

module/mes/base-0.mes
module/mes/type-0.mes
scripts/repl.mes
string.c

index 380c61a28c9ee5e02df37bd60a9795ebfd19259f..21d127d6a83262f5a3faf2d38763cbc19400186f 100644 (file)
      (list 'set-current-input-port (list open-input-file file))
      (list 'primitive-load)
      (list 'set-current-input-port (list 'pop! '*input-ports*))))
+
+(define include load)
+(define-macro (include-from-path file)
+  (list 'load (list string-append "module/" file)))
+
+(include "module/mes/type-0.mes")
+
 (define (memq x lst)
   (if (null? lst) #f
       (if (eq? x (car lst)) lst
           ;; (list newline (list current-error-port))
           (list 'load (list string-append '*mes-prefix* (module->file module)))))))
 
-(define include load)
-(define-macro (include-from-path file)
-  (list 'load (list string-append "module/" file)))
-
-(mes-use-module (mes type-0))
 (mes-use-module (srfi srfi-0))
 (mes-use-module (mes base))
 (mes-use-module (mes quasiquote))
index 1a5549fb2014513eecde70729f22cb73dbab424d..2ffe19598c3e6b71fe5cd0eaa0112d62034de961 100644 (file)
 
 \f
 ;;; core: accessors
+(define (string . lst)
+  (make-cell <cell:string> lst 0))
+
 (define (string->list s)
   (core:car s))
 
-(define (string . lst)
-  (make-cell <cell:string> lst 0))
+(define (string-append . rest)
+  (apply string (apply append (map1 string->list rest))))
index 4bece9c62bc701282a2a0e03c62a508b2fa74b83..462ffdd00ff63de287d0579136d77dd0e5b25590 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # -*-scheme-*-
-MES_ARENA=${MES_ARENA-5000000}
+MES_ARENA=${MES_ARENA-10000000}
 export MES_ARENA
 prefix=module/
 cat $prefix/mes/base-0.mes $0 /dev/stdin | $(dirname $0)/mes $MES_FLAGS "$@"
index 24ea80e2dc67abd75d8725ad4c850a2b4ee27976..cafd07069668ee96dbe8290a16f9f469f66fe773 100644 (file)
--- a/string.c
+++ b/string.c
  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-SCM
-string_append (SCM x) ///((arity . n))
-{
-  SCM p = cell_nil;
-  while (x != cell_nil)
-    {
-      SCM s = car (x);
-      assert (TYPE (s) == STRING);
-      p = append2 (p, STRING (s));
-      x = cdr (x);
-    }
-  return MAKE_STRING (p);
-}
-
 SCM
 list_to_string (SCM x)
 {