nendo 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/init.nnd CHANGED
@@ -37,25 +37,39 @@
37
37
  ;; ----------------------------------------
38
38
  ;; define
39
39
  ;; ----------------------------------------
40
- (define define
41
- (macro (arg . body)
42
- (if (not (pair? arg))
43
- ;; (define var body)
44
- (cons 'define
45
- (cons arg
46
- body))
47
- ;; (define (func arg...) body)
48
- (begin
49
- (if (pair? (cdr arg))
50
- (if (pair? (car (cdr arg)))
51
- (error "Error: define syntax error.")))
52
- (cons 'define
53
- (cons (car arg)
54
- (list
55
- (cons 'lambda
56
- (cons (cdr arg)
57
- body)))))))))
40
+ (define %expand-define-form-lambda
41
+ (lambda (arg body-list)
42
+ ;; (define (func arg...) body)
43
+ (if (pair? (cdr arg))
44
+ (if (pair? (car (cdr arg)))
45
+ (error "Error: define syntax error.")))
46
+ (cons 'define
47
+ (cons (car arg)
48
+ (list
49
+ (cons 'lambda
50
+ (cons (cdr arg)
51
+ body-list)))))))
58
52
 
53
+ (define define
54
+ (macro (arg . body)
55
+ (if (not (pair? arg))
56
+ ;; (define var body)
57
+ (cons 'define
58
+ (cons arg
59
+ body))
60
+ (%expand-define-form-lambda arg body))))
61
+
62
+ (define %expand-define-form
63
+ (lambda (arg-and-body)
64
+ (let ((arg (car arg-and-body))
65
+ (body (cdr arg-and-body)))
66
+ ;; (define (func arg...) body)
67
+ (if (not (pair? arg))
68
+ ;; (define var body)
69
+ (cons 'define
70
+ (cons arg
71
+ body))
72
+ (%expand-define-form-lambda arg body)))))
59
73
 
60
74
  ;; debug-print macro is predefined as NOP.
61
75
  ;; for self debugging of init.nnd.
@@ -113,10 +127,7 @@
113
127
  ;; Utility functions
114
128
  ;; ----------------------------------------
115
129
  (define (vector . lst) (to-arr lst))
116
- (define (list? arg)
117
- (if (pair? arg)
118
- (list? (cdr arg))
119
- (null? arg)))
130
+ (define list? %list?)
120
131
  (define (even? n) (= (% n 2) 0))
121
132
  (define (odd? n) (not (= (% n 2) 0)))
122
133
  (define (zero? n) (= n 0))
@@ -362,6 +373,12 @@
362
373
  ;; don't touch
363
374
  `(let ,@lst))))
364
375
 
376
+ (define if-let1
377
+ (macro (var _expr _then . _else)
378
+ `(let1 ,var ,_expr
379
+ (if ,var ,_then ,@_else))))
380
+
381
+
365
382
  ;; ----------------------------------------
366
383
  ;; errorf
367
384
  ;; ----------------------------------------
@@ -370,6 +387,24 @@
370
387
  `(error
371
388
  (sprintf ,format ,@args))))
372
389
 
390
+
391
+ ;; ----------------------------------------
392
+ ;; optional argument parser
393
+ ;; ----------------------------------------
394
+ (define get-optional
395
+ (macro (restarg default)
396
+ (let1 _restarg (gensym)
397
+ `(let1 ,_restarg ,restarg
398
+ (if (null? ,_restarg)
399
+ ,default
400
+ (car ,_restarg))))))
401
+
402
+ ;; pending
403
+ (define check-arg
404
+ (macro (a b . c)
405
+ `(begin)))
406
+
407
+
373
408
  ;; ----------------------------------------
374
409
  ;; List utilities imported from TinyScheme
375
410
  ;; ----------------------------------------
@@ -469,9 +504,9 @@
469
504
  (append cdrs (list cdr1))))))
470
505
 
471
506
 
472
- (define (map proc . lists)
507
+ (define (%map proc . lists)
473
508
  (letrec ((result '())
474
- (map-arg1
509
+ (%map-arg1
475
510
  (lambda (proc lst)
476
511
  (if (null? lst)
477
512
  #t
@@ -479,12 +514,12 @@
479
514
  (set! result
480
515
  (cons (proc (car lst))
481
516
  result))
482
- (map-arg1 proc (cdr lst)))))))
517
+ (%map-arg1 proc (cdr lst)))))))
483
518
  (cond
484
519
  ((null? lists)
485
520
  (apply proc))
486
521
  ((eq? 1 (length lists))
487
- (map-arg1 proc (car lists)) ;; tail call optimization version
522
+ (%map-arg1 proc (car lists)) ;; tail call optimization version
488
523
  (reverse result))
489
524
  (else
490
525
  (if (null? (car lists))
@@ -495,21 +530,61 @@
495
530
  (cons (apply proc cars)
496
531
  (if (null? cdrs)
497
532
  '()
498
- (apply map (cons proc cdrs)))))))))))
533
+ (apply %map (cons proc cdrs)))))))))))
534
+
535
+ (define (%internal-define-to-letrec _sym _src)
536
+ (if (not (list? (cadr _src)))
537
+ `(,_sym ,@_src)
538
+ (let ((body (cdr _src))
539
+ (defs '())
540
+ (rest '()))
541
+ (if (not (list? (car body)))
542
+ `(,_sym ,@_src)
543
+ (begin
544
+ (%map
545
+ (lambda (x)
546
+ (if (and (pair? x)
547
+ (eq? 'define (car x)))
548
+ (set! defs (cons (%expand-define-form (cdr x)) defs))
549
+ (set! rest (cons x rest))))
550
+ body)
551
+ (let ((defs (reverse defs))
552
+ (rest (reverse rest)))
553
+ (if (< 0 (length defs))
554
+ `(,_sym
555
+ ,(car _src)
556
+ (letrec
557
+ ,(%map
558
+ (lambda (x)
559
+ (list
560
+ (cadr x)
561
+ (caddr x)))
562
+ defs)
563
+ ,@rest))
564
+ ;; found no `internal-define' syntax
565
+ `(,_sym ,@_src))))))))
566
+
499
567
 
568
+ (define lambda
569
+ (macro src
570
+ (%internal-define-to-letrec 'lambda src)))
500
571
 
501
- (define (for-each proc . lists)
502
- (define (for-each-arg1 proc lst)
572
+ (define macro
573
+ (macro src
574
+ (%internal-define-to-letrec 'macro src)))
575
+
576
+ (define (%for-each proc . lists)
577
+ (define (%for-each-arg1 proc lst)
503
578
  (if (null? lst)
504
579
  #t
505
580
  (begin
506
581
  (proc (car lst))
507
- (for-each-arg1 proc (cdr lst)))))
582
+ (%for-each-arg1 proc (cdr lst)))))
508
583
  (cond
509
584
  ((null? lists)
510
585
  (apply proc))
511
586
  ((eq? 1 (length lists))
512
- (for-each-arg1 proc (car lists))) ;; tail call optimization version
587
+ (%for-each-arg1 proc (car lists))) ;; tail call optimization version
513
588
  (else
514
589
  (if (null? (car lists))
515
590
  #t
@@ -519,73 +594,47 @@
519
594
  (apply proc cars)
520
595
  (if (null? cdrs)
521
596
  '()
522
- (apply for-each (cons proc cdrs)))))))))
523
-
524
-
525
- (define (filter pred lst)
526
- (if (null? lst)
527
- '()
528
- (if (pred (car lst))
529
- (cons
530
- (car lst)
531
- (filter pred (cdr lst)))
532
- (filter pred (cdr lst)))))
597
+ (apply %for-each (cons proc cdrs)))))))))
533
598
 
599
+ (define (%filter pred lst)
600
+ (define result '())
601
+ (define (%filter-arg1 proc lst)
602
+ (if (null? lst)
603
+ '()
604
+ (let1 v (proc (car lst))
605
+ (when v
606
+ (set! result (cons (car lst) result)))
607
+ (%filter-arg1 proc (cdr lst)))))
608
+
609
+ (%filter-arg1 pred lst) ;; tail call optimization version
610
+ (reverse result))
611
+
612
+ (define (%filter-map pred lst)
613
+ (define result '())
614
+ (define (%filter-map-arg1 proc lst)
615
+ (if (null? lst)
616
+ '()
617
+ (let1 v (proc (car lst))
618
+ (when v
619
+ (set! result (cons v result)))
620
+ (%filter-map-arg1 proc (cdr lst)))))
534
621
 
535
- (define (filter-map pred lst)
536
- (if (null? lst)
537
- '()
538
- (let1 result (pred (car lst))
539
- (if result
540
- (cons
541
- result
542
- (filter-map pred (cdr lst)))
543
- (filter-map pred (cdr lst))))))
622
+ (%filter-map-arg1 pred lst) ;; tail call optimization version
623
+ (reverse result))
544
624
 
545
625
 
546
626
  (define (find pred lst)
547
- (let1 result (filter pred lst)
627
+ (let1 result (%filter pred lst)
548
628
  (if (null? result)
549
629
  #f
550
630
  (car result))))
551
631
 
632
+ (define map %map)
633
+ (define for-each %for-each)
634
+ (define filter %filter)
635
+ (define filter-map %filter-map)
636
+
552
637
 
553
- (define lambda
554
- (macro src
555
- (if (not (list? (cadr src)))
556
- `(lambda ,@src)
557
- (let1 body (cdr src)
558
- (if (not (list? (car body)))
559
- `(lambda ,@src)
560
- (let ((defs
561
- (filter
562
- (lambda (x)
563
- (if (pair? x)
564
- (and (eq? 'define (car x))
565
- (symbol? (cadr x)))
566
- #f))
567
- body))
568
- (rest
569
- (filter
570
- (lambda (x)
571
- (if (pair? x)
572
- (not (and (eq? 'define (car x))
573
- (symbol? (cadr x))))
574
- #f))
575
- body)))
576
- (if (< 0 (length defs))
577
- `(lambda
578
- ,(car src)
579
- (letrec
580
- ,(map
581
- (lambda (x)
582
- (list
583
- (cadr x)
584
- (caddr x)))
585
- defs)
586
- ,@rest))
587
- ;; found no `internal-define' syntax
588
- `(lambda ,@src))))))))
589
638
 
590
639
 
591
640
  ;; ----------------------------------------
@@ -593,54 +642,50 @@
593
642
  ;; ----------------------------------------
594
643
  (define case
595
644
  (macro (cond-exp . body)
596
- (letrec ((case-block
597
- (lambda (val . elem)
598
- (let1 block (car elem)
599
- (let ((cond-vals (car block))
600
- (body (cdr block)))
601
- (let1 v
602
- (if (eq? 'else cond-vals)
603
- cond-vals
604
- (cons 'or
605
- (map
606
- (lambda (x)
607
- `(eqv? ,x ,val))
608
- cond-vals)))
609
- `((,v
610
- ,@body)))))))
611
-
612
- (case-iter
613
- (lambda (val lst)
614
- (cond
615
- ((eq? 0 (length lst))
616
- '())
617
- ((eq? 1 (length lst))
618
- (case-block val (car lst)))
645
+ (define (case-block val . elem)
646
+ (let1 block (car elem)
647
+ (let ((cond-vals (car block))
648
+ (body (cdr block)))
649
+ (let1 v
650
+ (if (eq? 'else cond-vals)
651
+ cond-vals
652
+ (cons 'or
653
+ (map
654
+ (lambda (x)
655
+ `(eqv? ,x ,val))
656
+ cond-vals)))
657
+ `((,v
658
+ ,@body))))))
659
+
660
+ (define (case-iter val lst)
661
+ (cond
662
+ ((eq? 0 (length lst))
663
+ '())
664
+ ((eq? 1 (length lst))
665
+ (case-block val (car lst)))
619
666
  (else
620
667
  (append (case-block val (car lst))
621
- (case-iter val (cdr lst))))))))
668
+ (case-iter val (cdr lst))))))
622
669
 
623
- (let1 sym (gensym)
624
- `(let1 ,sym ,cond-exp
625
- (cond
626
- ,@(case-iter sym body)))))))
670
+ (let1 sym (gensym)
671
+ `(let1 ,sym ,cond-exp
672
+ (cond
673
+ ,@(case-iter sym body))))))
627
674
 
628
675
 
629
676
  (define let*
630
677
  (macro (exps . body)
631
- (letrec ((let*-expand
632
- (lambda (rest body)
633
- (case (length rest)
634
- ((0)
635
- '())
636
- ((1)
637
- `(let (,(car rest))
638
- ,@body))
639
- (else
640
- `(let (,(car rest))
641
- ,(let*-expand (cdr rest) body)))))))
642
-
643
- (let*-expand exps body))))
678
+ (define (let*-expand rest body)
679
+ (case (length rest)
680
+ ((0)
681
+ '())
682
+ ((1)
683
+ `(let (,(car rest))
684
+ ,@body))
685
+ (else
686
+ `(let (,(car rest))
687
+ ,(let*-expand (cdr rest) body)))))
688
+ (let*-expand exps body)))
644
689
 
645
690
 
646
691
  (define begin0
@@ -711,36 +756,30 @@
711
756
  ;; ----------------------------------------
712
757
  (define dot-operator
713
758
  (macro lst
714
- (letrec ((generate-method-call-form
715
- (lambda (lst)
716
- (let1 tmp (gensym)
717
- (if (symbol? (first lst))
718
- `(,(string->symbol (+ (to-s (first lst)) "." (to-s (second lst))))
719
- ,@(cddr lst))
720
- `(let ((,tmp ,(first lst)))
721
- (,(string->symbol (+ (to-s tmp) "." (to-s (second lst))))
722
- ,@(cddr lst))))))))
723
- (cond
724
- ((> 2 (length lst))
725
- (raise ArgumentError ". dot-operator requires 2+ arguments." (sprintf "%s:%s in dot-operator" (*FILE*) (*LINE*))))
726
- (else
727
- (if (symbol? (second lst))
728
- (generate-method-call-form lst)
729
- (raise TypeError ". dot-operator requires method name as symbol." (sprintf "%s:%s in dot-operator" (*FILE*) (*LINE*)))))))))
759
+ (define (generate-method-call-form lst)
760
+ (let1 tmp (gensym)
761
+ (if (symbol? (first lst))
762
+ `(,(string->symbol (+ (to-s (first lst)) "." (to-s (second lst))))
763
+ ,@(cddr lst))
764
+ `(let ((,tmp ,(first lst)))
765
+ (,(string->symbol (+ (to-s tmp) "." (to-s (second lst))))
766
+ ,@(cddr lst))))))
767
+ (cond
768
+ ((> 2 (length lst))
769
+ (raise ArgumentError ". dot-operator requires 2+ arguments." (sprintf "%s:%s in dot-operator" (*FILE*) (*LINE*))))
770
+ (else
771
+ (if (symbol? (second lst))
772
+ (generate-method-call-form lst)
773
+ (raise TypeError ". dot-operator requires method name as symbol." (sprintf "%s:%s in dot-operator" (*FILE*) (*LINE*))))))))
730
774
 
731
775
 
732
776
  (define (with-open filename pred . lst)
733
- (let1 len (length lst)
734
- (let1 f (cond
735
- ((= 0 len)
736
- (.open filename))
737
- ((< 0 len)
738
- (.open filename (car lst)))
739
- (else
740
- (error "with-open requires 2 or 3 arguments.")))
741
- (let1 result (pred f)
742
- (f.close)
743
- result))))
777
+ (let1 opt (get-optional lst #f)
778
+ (if (< 1 (length lst))
779
+ (error "with-open requires 2 or 3 arguments.")
780
+ (if opt
781
+ (.open filename opt (&block (f) (pred f)))
782
+ (.open filename (&block (f) (pred f)))))))
744
783
 
745
784
 
746
785
  ;; ----------------------------------------
@@ -775,15 +814,10 @@
775
814
  (let1 h (make-hash-table)
776
815
  (for-each
777
816
  (lambda (entry)
778
- (if (pair? (cdr entry))
779
- (hash-table-put! h (car entry) (cadr entry))
780
- (hash-table-put! h (car entry) (cdr entry))))
817
+ (hash-table-put! h (car entry) (cdr entry)))
781
818
  kv-list)
782
819
  h))
783
820
 
784
- (define (hash-table-exist? h key)
785
- (h.has_key? key))
786
-
787
821
  (define (hash-table-clear! h)
788
822
  (h.clear))
789
823
 
@@ -820,7 +854,7 @@
820
854
  keys))))
821
855
 
822
856
  (define (alist->hash-table alist)
823
- (if (not (list? alist))
857
+ (if (not (%list? alist))
824
858
  (error "Error: alist->hash-table expects alist.")
825
859
  (apply hash-table alist)))
826
860
 
@@ -828,10 +862,10 @@
828
862
  ;; ----------------------------------------
829
863
  ;; Ruby interop librarys
830
864
  ;; ----------------------------------------
831
- ;; I will implement in the future...
832
- (define export
833
- (macro (name)
834
- `(define ,name nil)))
865
+ ;; export Nendo's function to the Ruby world
866
+ (define export-to-ruby
867
+ (macro (funcname)
868
+ `(%export-to-ruby ,funcname.to_s ,funcname)))
835
869
 
836
870
  (define (load-library name)
837
871
  (let* ((home (get-nendo-home))
@@ -844,6 +878,20 @@
844
878
  (else
845
879
  (errorf "Error: can't load library file [%s]\n" path )))))
846
880
 
881
+ ;; use macro like Gauche
882
+ (define use
883
+ (macro (sym)
884
+ (if (symbol? sym)
885
+ (let*
886
+ ((str (symbol->string sym))
887
+ (pathname (str.gsub "." "/")))
888
+ `(load-library ,pathname))
889
+ (errorf "Error: use macro requires a symbol argument."))))
890
+
891
+ ;; exporting a symbol in the module. (I will implement in the future...)
892
+ (define export
893
+ (macro (name)
894
+ `(define ,name nil)))
847
895
 
848
896
 
849
897
  ;; ----------------------------------------
@@ -929,50 +977,111 @@
929
977
  ;; http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3APrettyPrint
930
978
  ;;
931
979
  ;; Subsequently modified for initialize library for nendo: Kiyoka Nishiyama
932
- (define (pretty-print s)
933
- (define (do-indent level)
934
- (for-each (lambda (x) (display " ")) (range level)))
935
- (define (pp-parenl)
936
- (display "("))
937
- (define (pp-parenr)
938
- (display ")"))
939
- (define (pp-atom e prefix)
940
- (when prefix (display " "))
941
- (write e))
942
- (define (pp-list s level prefix)
943
- (and prefix (do-indent level))
944
- (pp-parenl)
980
+ (define (pretty-print s . f)
981
+ (define (do-indent f level)
982
+ (for-each (lambda (x) (f.print " ")) (range level)))
983
+ (define (pp-parenl f)
984
+ (f.print "("))
985
+ (define (pp-parenr f)
986
+ (f.print ")"))
987
+ (define (pp-atom f e prefix)
988
+ (when prefix (f.print " "))
989
+ (f.print (write-to-string e)))
990
+ (define (pp-list f s level prefix)
991
+ (and prefix (do-indent f level))
992
+ (pp-parenl f)
945
993
  (let loop ((s s)
946
994
  (prefix #f))
947
995
  (if (null? s)
948
- (pp-parenr)
996
+ (pp-parenr f)
949
997
  (let1 e (car s)
950
998
  (if (list? e)
951
- (begin (and prefix (newline))
952
- (pp-list e (+ level 1) prefix))
953
- (pp-atom e prefix))
999
+ (begin (and prefix (f.print "\n"))
1000
+ (pp-list f e (+ level 1) prefix))
1001
+ (pp-atom f e prefix))
954
1002
  (loop (cdr s) #t)))))
955
- (if (list? s)
956
- (pp-list s 0 #f)
957
- (write s))
958
- (newline))
1003
+ (let1 f (get-optional f STDOUT)
1004
+ (if (list? s)
1005
+ (pp-list f s 0 #f)
1006
+ (f.print (write-to-string s)))
1007
+ (f.print "\n")))
1008
+
959
1009
 
1010
+ (define (pretty-print-to-string s)
1011
+ (let1 io (StringIO.new)
1012
+ (pretty-print s io)
1013
+ (io.rewind)
1014
+ (io.read)))
960
1015
 
961
1016
  ;; ----------------------------------------
962
- ;; optional argument parser
1017
+ ;; sort library functions
963
1018
  ;; ----------------------------------------
964
- (define get-optional
965
- (macro (restarg default)
966
- (let1 _restarg (gensym)
967
- `(let1 ,_restarg ,restarg
968
- (if (null? ,_restarg)
969
- ,default
970
- (car ,_restarg))))))
1019
+ (define (sort lst . cmpfn)
1020
+ (if (null? lst)
1021
+ '()
1022
+ (let1 cmpfn (get-optional cmpfn #f)
1023
+ (to-list
1024
+ (if cmpfn
1025
+ (lst.to_arr.sort (&block (a b) (cmpfn a b)))
1026
+ (lst.to_arr.sort))))))
1027
+
1028
+
1029
+ (define (sort-by lst keyfn)
1030
+ (if (null? lst)
1031
+ '()
1032
+ (to-list
1033
+ (lst.to_arr.sort_by (&block (item) (keyfn item))))))
1034
+
1035
+
1036
+ ;; ----------------------------------------
1037
+ ;; string library
1038
+ ;; ----------------------------------------
1039
+ (define (string-length str) (str.size))
1040
+
1041
+
1042
+ ;; ----------------------------------------
1043
+ ;; regexp library functions
1044
+ ;; ----------------------------------------
1045
+ (define (string->regexp str . casefold)
1046
+ (if (not (str.is_a? String))
1047
+ (error "Error: string->regexp requires a String argument.")
1048
+ (if (get-optional casefold #f)
1049
+ (Regexp.new str Regexp::IGNORECASE)
1050
+ (Regexp.new str))))
1051
+
1052
+ (define (regexp? obj)
1053
+ (obj.is_a? Regexp))
1054
+
1055
+ (define (regexp->string regexp)
1056
+ (regexp.source))
1057
+
1058
+ ;; return: Ruby's MatchData instance
1059
+ (define (rxmatch regexp str)
1060
+ (let1 m (regexp.match str)
1061
+ (if m m #f)))
1062
+
1063
+ (define (rxmatch-start match . index)
1064
+ (let1 index (get-optional index 0)
1065
+ (match.begin index)))
1066
+
1067
+ (define (rxmatch-end match . index)
1068
+ (let1 index (get-optional index 0)
1069
+ (match.end index)))
1070
+
1071
+ (define (rxmatch-substring match . index)
1072
+ (let1 index (get-optional index 0)
1073
+ (nth index (match.to_a.to_list))))
1074
+
1075
+ (define (rxmatch-num-matches match)
1076
+ (match.size))
1077
+
1078
+ (define (rxmatch->string regexp str . index)
1079
+ (let1 index (get-optional index 0)
1080
+ (let1 m (rxmatch regexp str)
1081
+ (if m
1082
+ (rxmatch-substring m index)
1083
+ #f))))
971
1084
 
972
- ;; pending
973
- (define check-arg
974
- (macro (a b . c)
975
- `(begin)))
976
1085
 
977
1086
  ;; ----------------------------------------
978
1087
  ;; global variables bind checker
@@ -987,6 +1096,29 @@
987
1096
  ;; ----------------------------------------
988
1097
  ;; Nendo compiler utility
989
1098
  ;; ----------------------------------------
1099
+ (define (disasm varname . opt)
1100
+ (let ((kind (get-optional opt 'compiled))
1101
+ (alist (get-source-info (varname.to_s))))
1102
+ (cond
1103
+ ((eqv? kind 'compiled)
1104
+ (assv-ref "compiled_str" alist))
1105
+ ((eqv? kind 'source)
1106
+ (assv-ref "source" alist))
1107
+ ((eqv? kind 'expanded)
1108
+ (assv-ref "expanded" alist))
1109
+ ((eqv? kind 'info)
1110
+ (string-join
1111
+ (list
1112
+ (sprintf " file: %s \n" (assv-ref "sourcefile" alist))
1113
+ (sprintf " lineno: %s \n" (assv-ref "lineno" alist))
1114
+ (sprintf " source: \n" )
1115
+ (pretty-print-to-string
1116
+ (assv-ref "source" alist))
1117
+ (sprintf " expanded: \n" )
1118
+ (pretty-print-to-string
1119
+ (assv-ref "expanded" alist))))))))
1120
+
1121
+
990
1122
  (define (compiled-code-string compiled-code filename)
991
1123
  (define (compiled-body-string string-list filename)
992
1124
  (+
@@ -1029,7 +1161,7 @@
1029
1161
  "core.loadInitFile()"
1030
1162
  "core.setArgv( ARGV )"
1031
1163
  "core.load_compiled_code_from_string( " ,(write-to-string str) " ) "
1032
- "core.replStr( \"(if (and (global-defined? 'main) (procedure? main)) (main *argv*) #f) \" )"
1164
+ "core.evalStr( \"(if (and (global-defined? 'main) (procedure? main)) (main *argv*) #f) \" )"
1033
1165
  "")
1034
1166
  "\n")))
1035
1167
  (else
@@ -1193,5 +1325,5 @@
1193
1325
  ;; global variables
1194
1326
  ;; ----------------------------------------
1195
1327
  (define *nendo-version*
1196
- "0.3.3" ;;NENDO-VERSION
1328
+ "0.3.4" ;;NENDO-VERSION
1197
1329
  )