]> gitweb.factorcode.org Git - factor.git/commitdiff
more cleanups
authorSlava Pestov <slava@factorcode.org>
Mon, 22 Aug 2005 20:01:13 +0000 (20:01 +0000)
committerSlava Pestov <slava@factorcode.org>
Mon, 22 Aug 2005 20:01:13 +0000 (20:01 +0000)
TODO.FACTOR.txt
library/bootstrap/boot-stage1.factor
library/bootstrap/image.factor
library/bootstrap/primitives.factor
library/generic/generic.factor
library/generic/null.factor [deleted file]
library/generic/object.factor [deleted file]
library/generic/standard-combination.factor
library/words.factor

index 957b2c2689e77940ca60ccb27b7f776fbf4f69e1..61d3de983f68c1e760512af7caa95342e04f7d2a 100644 (file)
@@ -62,8 +62,6 @@
 \r
 - flushing optimization\r
 - compile-byte/cell: instantiating aliens\r
-- changing a word to be 'inline' after it was already defined doesn't\r
-  work properly\r
 - inference needs to be more robust with heavily recursive code\r
 - fix fixnum<< and /i overflow on PowerPC\r
 - simplifier:\r
@@ -80,7 +78,7 @@
 \r
 + kernel:\r
 \r
-- split, group: return vectors\r
+- split: return vectors\r
 - specialized arrays\r
 - clear special word props when redefining words\r
 - there is a problem with hashcodes of words and bootstrapping\r
index 9d18ef3b12732b22ddb8a279ce77d0011708bbce..c5af463403bee1690ee6c9dcd6b7855d47477494 100644 (file)
@@ -11,6 +11,13 @@ sequences io vectors words ;
 
 ! The make-list form creates a boot quotation
 [
+    [
+        [ hashtable? ] instances
+        [ dup hash-size 1 max swap set-bucket-count ] each
+
+        boot
+    ] %
+
     {
         "/version.factor"
 
@@ -71,8 +78,6 @@ sequences io vectors words ;
         "/library/generic/generic.factor"
         "/library/generic/standard-combination.factor"
         "/library/generic/slots.factor"
-        "/library/generic/object.factor"
-        "/library/generic/null.factor"
         "/library/generic/math-combination.factor"
         "/library/generic/predicate.factor"
         "/library/generic/union.factor"
@@ -128,16 +133,7 @@ sequences io vectors words ;
         "/library/bootstrap/init.factor"
     } [ dup print parse-resource % ] each
     
-    [
-        boot
-        
-        "Rehashing hash tables..." print
-
-        [ hashtable? ] instances
-        [ dup hash-size 1 max swap set-bucket-count ] each
-        
-        "/library/bootstrap/boot-stage2.factor" run-resource
-    ] %
+    [ "/library/bootstrap/boot-stage2.factor" run-resource ] %
 ] make-list
 
 vocabularies get [
index 5b6f12c6f9a95c0d2d2e258101f66b6a466db45f..15cbd7d5d8c6841f73126e35fe2ba45df6c54249 100644 (file)
@@ -8,11 +8,6 @@
 ! generate the minimal image, and writing the cons cells, words,
 ! strings etc to the image file in the CFactor object memory
 ! format.
-!
-! What is a bootstrap image? It basically contains enough code
-! to parse a source file. See platform/native/boot.factor --
-! It initializes the core interpreter services, and proceeds to
-! run platform/native/boot-stage2.factor.
 
 IN: image
 USING: errors generic hashtables kernel lists
@@ -25,9 +20,6 @@ SYMBOL: image
 ! Object cache
 SYMBOL: objects
 
-! Boot quotation, set by boot.factor
-SYMBOL: boot-quot
-
 ! Image output format
 SYMBOL: big-endian
 SYMBOL: 64-bits
@@ -258,8 +250,7 @@ M: hashtable ' ( hashtable -- pointer )
     ] make-hash '
     global-offset fixup ;
 
-: boot, ( quot -- )
-    boot-quot get swap append ' boot-quot-offset fixup ;
+: boot, ( quot -- ) ' boot-quot-offset fixup ;
 
 : heap-size image get length header-size - cell * ;
 
@@ -304,8 +295,8 @@ M: hashtable ' ( hashtable -- pointer )
 : make-image ( name -- )
     #! Make a bootstrap image.
     [
-        boot-quot off
         "/library/bootstrap/boot-stage1.factor" run-resource
+        namespace global [ "foobar" set ] bind
     ] with-image
 
     swap write-image ;
index 0bf5c24ad8b26dde8f8f9e59409009325a090983..f6f3f248d518962ad0dbbea6ad9f999164e8dc93 100644 (file)
@@ -239,11 +239,19 @@ FORGET: set-stack-effect
     define-slots
     register-builtin ;
 
-! Hack
-{{ [[ { } null ]] }} typemap set
-
+<namespace> typemap set
 num-types empty-vector builtins set
 
+! Catch-all metaclass for providing a default method.
+object num-types >vector "types" set-word-prop
+object [ drop t ] "predicate" set-word-prop
+object object define-class
+
+! Null metaclass with no instances.
+null { } "types" set-word-prop
+null [ drop f ] "predicate" set-word-prop
+null null define-class
+
 "fixnum" "math" create 0 "fixnum?" "math" create { } define-builtin
 "fixnum" "math" create 0 "math-priority" set-word-prop
 "fixnum" "math" create ">fixnum" [ "math" ] search unit "coercer" set-word-prop
index c9f5ea649c47a56d39d1016d8b5608b0acea3f56..2a30de9ba1cff82c04455041de751b18859e4219 100644 (file)
@@ -140,5 +140,3 @@ M: generic definer drop \ G: ;
 : define-class ( class metaclass -- )
     dupd "metaclass" set-word-prop
     dup types [ - ] sort typemap get set-hash ;
-
-typemap get [ <namespace> typemap set ] unless
diff --git a/library/generic/null.factor b/library/generic/null.factor
deleted file mode 100644 (file)
index 950d92d..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-! Copyright (C) 2004, 2005 Slava Pestov.
-! See http://factor.sf.net/license.txt for BSD license.
-IN: generic
-USING: kernel words ;
-
-! Null metaclass with no instances.
-null { } "types" set-word-prop
-null [ drop f ] "predicate" set-word-prop
-null null define-class
diff --git a/library/generic/object.factor b/library/generic/object.factor
deleted file mode 100644 (file)
index 43309d5..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-! Copyright (C) 2004, 2005 Slava Pestov.
-! See http://factor.sf.net/license.txt for BSD license.
-IN: generic
-USING: kernel lists math sequences vectors words ;
-
-! Catch-all metaclass for providing a default method.
-object num-types >vector "types" set-word-prop
-object [ drop t ] "predicate" set-word-prop
-object object define-class
index b0b87415684547dddb11a73e7c40ba2471ac632f..535e3e7d6f84f395cca5ff76911f40dd3188bf7f 100644 (file)
@@ -5,8 +5,6 @@ namespaces sequences vectors words ;
 : error-method ( picker word -- method )
     [ swap % literalize , \ no-method , ] make-list ;
 
-DEFER: delegate
-
 : empty-method ( picker word -- method )
     over [ dup ] = [
         [
index 26ecceac2c036961776f9e1f227eaf8a2ec54189..a540516e35be0497f4dc3d5e50d54296dd1eab19 100644 (file)
@@ -85,9 +85,7 @@ M: word (uncrossref) drop ;
 ! word does when invoked.
 
 : define ( word primitive parameter -- )
-    pick uncrossref
-    pick set-word-def
-    swap set-word-primitive ;
+    pick uncrossref pick set-word-def swap set-word-primitive ;
 
 GENERIC: definer ( word -- word )
 #! Return the parsing word that defined this word.
@@ -121,7 +119,7 @@ M: compound definer drop \ : ;
 
 : reset-generic ( word -- )
     #! Make a word no longer be generic.
-    { "methods" "combination" "picker" } reset-props ;
+    { "methods" "combination" } reset-props ;
 
 : define-compound ( word def -- )
      over reset-generic (define-compound) ;