module statement compilatoin bugfix
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>
Wed, 5 Dec 2018 21:03:45 +0000 (22:03 +0100)
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>
Wed, 5 Dec 2018 21:03:45 +0000 (22:03 +0100)
modules/Makefile.am
modules/language/python/.#spec.scm [deleted symlink]
modules/language/python/compile.scm
modules/language/python/guilemod.scm
modules/language/python/module.scm
modules/language/python/module/collections.scm

index dc726d91b47bded8bed317ddf6f1f49c252ef9bd..d2d4f6394f421ab39a7c6bfda752e49be355c4ef 100644 (file)
@@ -50,6 +50,8 @@ SOURCES = \
        language/python/module/os/path.scm \
        language/python/module/os.scm \
        language/python/module/python.scm \
-       language/python/spec.scm
+       language/python/spec.scm \
+        language/python/module/collections/abc.scm \
+        language/python/module/collections.scm
 
 EXTRA_DIST += env.in COPYING 
diff --git a/modules/language/python/.#spec.scm b/modules/language/python/.#spec.scm
deleted file mode 120000 (symlink)
index bf7a10b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-stis@lapwine.29401:1539964896
\ No newline at end of file
index 821389ce2cc566391ac91fb25df0cabf29c4dea3..e291e34e87f8328e645aec19dfb46796a9b62a94 100644 (file)
       (fold f (f (car l) init) (cdr l))
       init))
 
-(define do-pr #t)
+(define do-pr #f)
 
 (define (pr . x)
   (if do-pr
       (let ()
-        (define port (open-file "/home/stis/src/python-on-guile/log.txt" "a"))
+        (define port (open-file "/home/stis/src/python-on-guile/modules/log.txt" "a"))
         (with-output-to-port port
           (lambda ()
             (pretty-print (syntax->datum x))))
   (car (reverse x)))
 
 (define (pf x)
-  (define port (open-file "/home/stis/src/python-on-guile/compile.log" "a"))
+  (define port (open-file "/home/stis/src/python-on-guile/modules/compile.log" "a"))
   (with-output-to-port port
     (lambda () (pretty-print (syntax->datum x)) x))
   (close port)
       ,@(map
          (lambda (dots ids as)
            `(,(G 'begin)
-              ,@(map (lambda (dots ids as)
-                       (let* ((u   (module-name (current-module)))
-                              (u   (reverse (list-cdr-ref (reverse (u-it u))
-                                                          (- (length dots) 1))))
+             ,@(map (lambda (dots ids as)
+                      (let* ((u   (module-name (current-module)))
+                             (u   (if (null? dots)
+                                      '()
+                                      (reverse (list-cdr-ref
+                                                (reverse (u-it u))
+                                                (- (length dots) 1)))))
 
                               (path (append (if (null? dots) '() u)
                                             (map (g vs exp) ids))))
 
 
 (define (exp vs x)
-  (match x
+  (match (pr 'exp x)
     ((e)
      (exp vs e))
     ((tag . l)
       (x '())))
 
   (fluid-set! ignore '())
+  (pr
   (if (fluid-ref (@@ (system base compile) %in-compile))
       (begin
        (if (fluid-ref (@@ (system base compile) %in-compile))
                      (if (member s (fluid-ref ignore))
                          `(,cvalues)
                          `(,(C 'var) ,s))) globs)
-            (,(C 'with-exit) ,@e))))))
+            (,(C 'with-exit) ,@e)))))))
               
                     
 
index da1f5c7d8479a603fed12026683ac92defb7fc39..3c68142ef43c67bc5f1c13beada8eba43cb94a7e 100644 (file)
@@ -53,7 +53,8 @@
 (define-set-C compile-file
   (lambda* (file #:key
                  (output-file      #f)
-                 (from             ((C default-language)   file))
+                 (from             (pk 'lang-from
+                                       ((C default-language)   file)))
                  (to               'bytecode)
                  (env              ((C default-environment) from))
                  (opts             '())
index 5e04fdaf2556559248c320f0025a23ba32e40618..d239baf08f914f134a8ad6fa1560f8ce44b79368 100644 (file)
@@ -82,6 +82,7 @@
     (define __init__
       (case-lambda
         ((self pre l nm)
+         (pk 1)
          (match l
            ((name)
             (rawset self '_path (reverse (cons name pre)))           
        
         
         ((self l nm)
+         (pk 2)
          (_cont self #f l #f nm #f))
 
         ((self l)
+         (pk 3)
          (if (pair? l)
              (if (and (> (length l) 3)
                       (equal? (list (list-ref l 0)
index c4d87e49b21094d311f6267d77d9a62f87c6efa1..aae2a8cf4c77f422f9f2cecbabc74e99af48c520 100644 (file)
@@ -1,5 +1,6 @@
 (define-module (language python module collections)
   #:use-module (ice-9 control)
+  #:use-module (ice-9 format)
   #:use-module (ice-9 pretty-print)
   #:use-module (oop pf-objects)
   #:use-module (oop goops)
   (define elements
     (lambda (self)
       ((make-generator ()
-        (for ((k v : self)) ()
-             (if (and (number? v) (integer? v) (> v 0))
-                 (for ((i : (range v))) ()
-                      (yield k))))))))
+        (lambda (yield)
+          (for ((k v : self)) ()
+               (if (and (number? v) (integer? v) (> v 0))
+                   (for ((i : (range v))) ()
+                        (yield k)))))))))
 
   (define fromkeys
     (lambda x