Tweaks to make Edwin cross-compilable.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 11 Jan 2019 04:50:02 +0000 (04:50 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 11 Jan 2019 04:50:02 +0000 (04:50 +0000)
src/edwin/decls.scm
src/edwin/edwin.sf
src/edwin/utils.scm

index f1e74de1b99c9b8ed06d0fa75dfd1de64328b97e..41415ff3c5457f2e12efb323a2b269bdc5f47799 100644 (file)
@@ -28,8 +28,9 @@ USA.
 
 (declare (usual-integrations))
 \f
-(let* ((scm-file (lambda (file) (string-append file ".scm")))
-       (bin-file (lambda (file) (string-append file ".bin")))
+(let* ((sf-names (lambda (file) (sf/pathname-defaulting file #f #f)))
+       (scm-file (lambda (file) (receive (scm bin spec) (sf-names file) scm)))
+       (bin-file (lambda (file) (receive (scm bin spec) (sf-names file) bin)))
        (bin-time (lambda (file) (file-modification-time (bin-file file))))
        (sf-dependent
        (lambda (environment)
@@ -37,9 +38,10 @@ USA.
            (let ((reasons
                   (let ((source-time (bin-time source)))
                     (append
-                     (if (not (file-processed? source "scm" "bin"))
-                         (list (scm-file source))
-                         '())
+                     (receive (scm bin spec) (sf-names source)
+                       (if (file-modification-time<=? scm bin)
+                           '()
+                           (list scm)))
                      (map bin-file
                           (if source-time
                               (filter (lambda (dependency)
index ab363fd6d2e91f851ada6ff5bc3223e5925426e8..4a2d215a4e75e5d3c1f4eb648094804d4c84a8c9 100644 (file)
@@ -37,7 +37,9 @@ USA.
     (begin
       (fluid-let ((sf/default-syntax-table (->environment '(edwin))))
        (sf-conditionally "string"))
-      (load "string.bin" '(edwin string))))
+      (receive (scm bin spec) (sf/pathname-defaulting "string" #f #f)
+       scm spec
+       (load bin '(edwin string)))))
 
 (if (lexical-unreferenceable? (->environment '(edwin class-constructor))
                              'class-descriptors)
@@ -47,7 +49,10 @@ USA.
               (fluid-let ((sf/default-syntax-table (->environment '())))
                 (sf-conditionally files))
               (for-each (lambda (file)
-                          (load (string-append file ".bin") package))
+                          (receive (scm bin spec)
+                                   (sf/pathname-defaulting file #f #f)
+                            scm spec
+                            (load bin package)))
                         files))))
        (sf-and-load '("macros") '(edwin macros))
        (sf-and-load '("clsmac") '(edwin class-macros))
index f6e085fb8be64c64ff272ac43ebebb74d0dd1caf..1a25274eb8f6e6aa711689332c7464ecd5685ab1 100644 (file)
@@ -73,7 +73,7 @@ USA.
      ;; This is written as a macro so that the shift will be a constant
      ;; in the compiled code.
      ;; It does not work when cross-compiled!
-     (let ((chars-per-word (bytes-per-object)))
+     (let ((chars-per-word (target-bytes-per-object)))
        (case chars-per-word
         ((4) -2)
         ((8) -3)