]> gitweb.factorcode.org Git - factor.git/commitdiff
fix bootstrap issue
authorSlava Pestov <slava@factorcode.org>
Mon, 5 Sep 2005 21:36:20 +0000 (21:36 +0000)
committerSlava Pestov <slava@factorcode.org>
Mon, 5 Sep 2005 21:36:20 +0000 (21:36 +0000)
17 files changed:
library/alien/c-types.factor
library/alien/primitive-types.factor [new file with mode: 0644]
library/alien/structs.factor
library/bootstrap/boot-stage1.factor
library/bootstrap/boot-stage2.factor
library/bootstrap/primitives.factor
library/compiler/architecture.factor
library/compiler/assembler.factor
library/compiler/ppc/architecture.factor
library/compiler/relocate.factor
library/compiler/x86/architecture.factor
library/generic/complement.factor [deleted file]
library/inference/optimizer.factor
library/kernel.factor
library/syntax/generic.factor
library/syntax/see.factor
library/test/generic.factor

index 4e67313de4eee2799950fe2d53fedc1294dce9d8..c675641de9bb5c0fd8baab83c30e027d1569b918 100644 (file)
@@ -95,137 +95,3 @@ SYMBOL: c-types
     over "*" append over "*" append (typedef) (typedef) ;
 
 global [ c-types nest drop ] bind
-
-[
-    [ alien-unsigned-cell <alien> ] "getter" set
-    [
-        >r >r alien-address r> r> set-alien-unsigned-cell
-    ] "setter" set
-    cell "width" set
-    cell "align" set
-    "box_alien" "boxer" set
-    "unbox_alien" "unboxer" set
-] "void*" define-primitive-type
-
-[
-    [ alien-signed-8 ] "getter" set
-    [ set-alien-signed-8 ] "setter" set
-    8 "width" set
-    8 "align" set
-    "box_signed_8" "boxer" set
-    "unbox_signed_8" "unboxer" set
-] "longlong" define-primitive-type
-
-[
-    [ alien-unsigned-8 ] "getter" set
-    [ set-alien-unsigned-8 ] "setter" set
-    8 "width" set
-    8 "align" set
-    "box_unsinged_8" "boxer" set
-    "unbox_unsigned_8" "unboxer" set
-] "ulonglong" define-primitive-type
-
-[
-    [ alien-signed-4 ] "getter" set
-    [ set-alien-signed-4 ] "setter" set
-    4 "width" set
-    4 "align" set
-    "box_signed_4" "boxer" set
-    "unbox_signed_4" "unboxer" set
-] "int" define-primitive-type
-
-[
-    [ alien-unsigned-4 ] "getter" set
-    [ set-alien-unsigned-4 ] "setter" set
-    4 "width" set
-    4 "align" set
-    "box_unsigned_4" "boxer" set
-    "unbox_unsigned_4" "unboxer" set
-] "uint" define-primitive-type
-
-[
-    [ alien-signed-2 ] "getter" set
-    [ set-alien-signed-2 ] "setter" set
-    2 "width" set
-    2 "align" set
-    "box_signed_2" "boxer" set
-    "unbox_signed_2" "unboxer" set
-] "short" define-primitive-type
-
-[
-    [ alien-unsigned-2 ] "getter" set
-    [ set-alien-unsigned-2 ] "setter" set
-    2 "width" set
-    2 "align" set
-    "box_unsigned_2" "boxer" set
-    "unbox_unsigned_2" "unboxer" set
-] "ushort" define-primitive-type
-
-[
-    [ alien-signed-1 ] "getter" set
-    [ set-alien-signed-1 ] "setter" set
-    1 "width" set
-    1 "align" set
-    "box_signed_1" "boxer" set
-    "unbox_signed_1" "unboxer" set
-] "char" define-primitive-type
-
-[
-    [ alien-unsigned-1 ] "getter" set
-    [ set-alien-unsigned-1 ] "setter" set
-    1 "width" set
-    1 "align" set
-    "box_unsigned_1" "boxer" set
-    "unbox_unsigned_1" "unboxer" set
-] "uchar" define-primitive-type
-
-[
-    [ alien-c-string ] "getter" set
-    [ set-alien-c-string ] "setter" set
-    cell "width" set
-    cell "align" set
-    "box_c_string" "boxer" set
-    "unbox_c_string" "unboxer" set
-] "char*" define-primitive-type
-
-[
-    [ alien-unsigned-4 ] "getter" set
-    [ set-alien-unsigned-4 ] "setter" set
-    cell "width" set
-    cell "align" set
-    "box_utf16_string" "boxer" set
-    "unbox_utf16_string" "unboxer" set
-] "ushort*" define-primitive-type
-
-[
-    [ alien-unsigned-4 0 = not ] "getter" set
-    [ 1 0 ? set-alien-unsigned-4 ] "setter" set
-    cell "width" set
-    cell "align" set
-    "box_boolean" "boxer" set
-    "unbox_boolean" "unboxer" set
-] "bool" define-primitive-type
-
-[
-    [ alien-float ] "getter" set
-    [ set-alien-float ] "setter" set
-    cell "width" set
-    cell "align" set
-    "box_float" "boxer" set
-    "unbox_float" "unboxer" set
-    << float-regs f 4 >> "reg-class" set
-] "float" define-primitive-type
-
-[
-    [ alien-double ] "getter" set
-    [ set-alien-double ] "setter" set
-    cell 2 * "width" set
-    cell 2 * "align" set
-    "box_double" "boxer" set
-    "unbox_double" "unboxer" set
-    << float-regs f 8 >> "reg-class" set
-] "double" define-primitive-type
-
-! FIXME for 64-bit platforms
-"int" "long" typedef
-"uint" "ulong" typedef
diff --git a/library/alien/primitive-types.factor b/library/alien/primitive-types.factor
new file mode 100644 (file)
index 0000000..803fde7
--- /dev/null
@@ -0,0 +1,135 @@
+USING: alien compiler-backend kernel math namespaces ;
+
+[
+    [ alien-unsigned-cell <alien> ] "getter" set
+    [
+        >r >r alien-address r> r> set-alien-unsigned-cell
+    ] "setter" set
+    cell "width" set
+    cell "align" set
+    "box_alien" "boxer" set
+    "unbox_alien" "unboxer" set
+] "void*" define-primitive-type
+
+[
+    [ alien-signed-8 ] "getter" set
+    [ set-alien-signed-8 ] "setter" set
+    8 "width" set
+    8 "align" set
+    "box_signed_8" "boxer" set
+    "unbox_signed_8" "unboxer" set
+] "longlong" define-primitive-type
+
+[
+    [ alien-unsigned-8 ] "getter" set
+    [ set-alien-unsigned-8 ] "setter" set
+    8 "width" set
+    8 "align" set
+    "box_unsinged_8" "boxer" set
+    "unbox_unsigned_8" "unboxer" set
+] "ulonglong" define-primitive-type
+
+[
+    [ alien-signed-4 ] "getter" set
+    [ set-alien-signed-4 ] "setter" set
+    4 "width" set
+    4 "align" set
+    "box_signed_4" "boxer" set
+    "unbox_signed_4" "unboxer" set
+] "int" define-primitive-type
+
+[
+    [ alien-unsigned-4 ] "getter" set
+    [ set-alien-unsigned-4 ] "setter" set
+    4 "width" set
+    4 "align" set
+    "box_unsigned_4" "boxer" set
+    "unbox_unsigned_4" "unboxer" set
+] "uint" define-primitive-type
+
+[
+    [ alien-signed-2 ] "getter" set
+    [ set-alien-signed-2 ] "setter" set
+    2 "width" set
+    2 "align" set
+    "box_signed_2" "boxer" set
+    "unbox_signed_2" "unboxer" set
+] "short" define-primitive-type
+
+[
+    [ alien-unsigned-2 ] "getter" set
+    [ set-alien-unsigned-2 ] "setter" set
+    2 "width" set
+    2 "align" set
+    "box_unsigned_2" "boxer" set
+    "unbox_unsigned_2" "unboxer" set
+] "ushort" define-primitive-type
+
+[
+    [ alien-signed-1 ] "getter" set
+    [ set-alien-signed-1 ] "setter" set
+    1 "width" set
+    1 "align" set
+    "box_signed_1" "boxer" set
+    "unbox_signed_1" "unboxer" set
+] "char" define-primitive-type
+
+[
+    [ alien-unsigned-1 ] "getter" set
+    [ set-alien-unsigned-1 ] "setter" set
+    1 "width" set
+    1 "align" set
+    "box_unsigned_1" "boxer" set
+    "unbox_unsigned_1" "unboxer" set
+] "uchar" define-primitive-type
+
+[
+    [ alien-c-string ] "getter" set
+    [ set-alien-c-string ] "setter" set
+    cell "width" set
+    cell "align" set
+    "box_c_string" "boxer" set
+    "unbox_c_string" "unboxer" set
+] "char*" define-primitive-type
+
+[
+    [ alien-unsigned-4 ] "getter" set
+    [ set-alien-unsigned-4 ] "setter" set
+    cell "width" set
+    cell "align" set
+    "box_utf16_string" "boxer" set
+    "unbox_utf16_string" "unboxer" set
+] "ushort*" define-primitive-type
+
+[
+    [ alien-unsigned-4 0 = not ] "getter" set
+    [ 1 0 ? set-alien-unsigned-4 ] "setter" set
+    cell "width" set
+    cell "align" set
+    "box_boolean" "boxer" set
+    "unbox_boolean" "unboxer" set
+] "bool" define-primitive-type
+
+[
+    [ alien-float ] "getter" set
+    [ set-alien-float ] "setter" set
+    cell "width" set
+    cell "align" set
+    "box_float" "boxer" set
+    "unbox_float" "unboxer" set
+    << float-regs f 4 >> "reg-class" set
+] "float" define-primitive-type
+
+[
+    [ alien-double ] "getter" set
+    [ set-alien-double ] "setter" set
+    cell 2 * "width" set
+    cell 2 * "align" set
+    "box_double" "boxer" set
+    "unbox_double" "unboxer" set
+    << float-regs f 8 >> "reg-class" set
+] "double" define-primitive-type
+
+! FIXME for 64-bit platforms
+"int" "long" typedef
+"uint" "ulong" typedef
index 42c8d290884fac7e7edeabbf9419e56e459a9424..0f0bbf0a564c0334405669cac04345622bcea38b 100644 (file)
@@ -1,8 +1,9 @@
 ! Copyright (C) 2004, 2005 Slava Pestov.
 ! See http://factor.sf.net/license.txt for BSD license.
 IN: alien
-USING: assembler compiler errors generic hashtables kernel lists
-math namespaces parser sequences strings words ;
+USING: assembler compiler compiler-backend errors generic
+hashtables kernel lists math namespaces parser sequences strings
+words ;
 
 ! Some code for interfacing with C structures.
 
index ac7a6a6a01c3f68c89704af5cfd9834a86934ce3..e7885213ab451a172333f298de9d1798d2ce550f 100644 (file)
@@ -82,7 +82,6 @@ sequences io vectors words ;
         "/library/generic/math-combination.factor"
         "/library/generic/predicate.factor"
         "/library/generic/union.factor"
-        "/library/generic/complement.factor"
         "/library/generic/tuple.factor"
 
         "/library/syntax/generic.factor"
index a4948a871895bd8a032b4799e8358cfa5e514a8c..8cb07f7fff519e665048b2985fc5c1dbe54b1823 100644 (file)
@@ -24,6 +24,7 @@ cpu "x86" = [
     "/library/compiler/x86/stack.factor"\r
     "/library/compiler/x86/fixnum.factor"\r
     "/library/compiler/x86/alien.factor"\r
+    "/library/alien/primitive-types.factor"\r
 ] pull-in\r
 \r
 cpu "ppc" = [\r
@@ -34,6 +35,7 @@ cpu "ppc" = [
     "/library/compiler/ppc/stack.factor"\r
     "/library/compiler/ppc/fixnum.factor"\r
     "/library/compiler/ppc/alien.factor"\r
+    "/library/alien/primitive-types.factor"\r
 ] pull-in\r
 \r
 "statically-linked" get [\r
index ca2b40d219ac0948be9f711388961618d189b321..35039602a9c23f6c16095df14f4ef458c2ecf82f 100644 (file)
@@ -349,6 +349,12 @@ null null define-class
 
 "displaced-alien" "alien" create 20 "displaced-alien?" "alien" create { } define-builtin
 
+! Define general-t type, which is any object that is not f.
+"general-t" "kernel" create dup define-symbol
+"general-t?" "kernel" create
+"f" "!syntax" lookup builtins get remove [ ] subset
+define-union
+
 FORGET: builtin-predicate
 FORGET: register-builtin
 FORGET: define-builtin
index a40c03950125af5313d892330e9741a4dfe369e0..34b4704ba911edbe228482c48852aa1f11923969 100644 (file)
@@ -1,4 +1,4 @@
-IN: compiler-frontend
+IN: compiler-backend
 
 ! A few things the front-end needs to know about the back-end.
 
index ae016c048a8bdc2da80424367d52a06fc81ddfe4..55745be0b251a34b1ce0f5f67e7d66dab9ec516c 100644 (file)
@@ -1,7 +1,8 @@
 ! Copyright (C) 2004, 2005 Slava Pestov.
 ! See http://factor.sf.net/license.txt for BSD license.
 IN: assembler
-USING: alien math memory kernel hashtables namespaces ;
+USING: alien compiler-backend math memory kernel hashtables
+namespaces ;
 
 SYMBOL: interned-literals
 
index 9276bb9da5b28f90ebff6d43a86143e9d5cbb087..a86625c2f777c8e94c83c29849af07736ecd8a4c 100644 (file)
@@ -1,4 +1,4 @@
-IN: compiler-frontend
+IN: compiler-backend
 USING: assembler compiler-backend math ;
 
 ! PowerPC register assignments
index be6e1535b798bf8b1dde4592f65ce86c26beb113..4cbbc5bba2ba8f7446611f6fe0bcb22b6d395363 100644 (file)
@@ -1,7 +1,8 @@
 ! Copyright (C) 2004, 2005 Slava Pestov.
 ! See http://factor.sf.net/license.txt for BSD license.
 IN: compiler
-USING: assembler kernel lists math namespaces sequences words ;
+USING: assembler compiler-backend kernel lists math namespaces
+sequences words ;
 
 ! To support saving compiled code to disk, generator words
 ! append relocation instructions to this vector.
index 1b0abd7ba4fd3e0b8c67bf5b8fdcebb5f7757457..fed3042018086901275ce356b600fbde75867162 100644 (file)
@@ -1,4 +1,4 @@
-IN: compiler-frontend
+IN: compiler-backend
 USING: assembler compiler-backend sequences ;
 
 ! x86 register assignments
diff --git a/library/generic/complement.factor b/library/generic/complement.factor
deleted file mode 100644 (file)
index 7fa6a3d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-! Copyright (C) 2005 Slava Pestov.
-! See http://factor.sf.net/license.txt for BSD license.
-
-IN: generic
-USING: errors hashtables kernel lists math parser strings
-sequences vectors words ;
-
-! Complement metaclass, contains all objects not in a certain class.
-SYMBOL: complement
-
-: complement-predicate ( complement -- list )
-    "predicate" word-prop [ not ] append ;
-
-: complement-types ( class -- types )
-    "complement" word-prop types object types seq-diff ;
-
-: define-complement ( class complement -- )
-    2dup "complement" set-word-prop
-    dupd complement-predicate "predicate" set-word-prop
-    dup dup complement-types "types" set-word-prop
-    complement define-class ;
-
-PREDICATE: word complement metaclass complement = ;
index 92b150d812e05012cbaff3ec0366d02964e4375c..29f29dd3996fda298cd482db1202cef3cd2f0b3d 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2004, 2005 Slava Pestov.
 ! See http://factor.sf.net/license.txt for BSD license.
 IN: inference
-USING: compiler-frontend generic hashtables inference kernel
+USING: compiler-backend generic hashtables inference kernel
 lists math matrices namespaces sequences vectors ;
 
 ! We use the recursive-state variable here, to track nested
index 2e6572bd3ecdbf86d6f6ca8c1ac4f91b5de04da1..be392f9ac7d8542837b197b1ceae57daec230d0c 100644 (file)
@@ -12,7 +12,6 @@ USING: generic kernel-internals vectors ;
     { } set-datastack ;
 
 UNION: boolean POSTPONE: f POSTPONE: t ;
-COMPLEMENT: general-t f
 
 GENERIC: hashcode ( obj -- n ) flushable
 M: object hashcode drop 0 ;
index eaf9959eaeef93ab9d4d9e1de7e8463172ad82bc..a471016c4d909471e56a938a962f08522fd2cce3 100644 (file)
@@ -14,12 +14,6 @@ words ;
     #! G: word combination ;
     CREATE dup reset-word [ define-generic* ] [ ] ; parsing
 
-: COMPLEMENT: ( -- )
-    #! Followed by a class name, then a complemented class.
-    CREATE
-    dup intern-symbol
-    scan-word define-complement ; parsing
-
 : UNION: ( -- class predicate definition )
     #! Followed by a class name, then a list of union members.
     CREATE
index dc2f19a0c5565bd3f0ddbc5dd2304a193e90a571..21036957e3ad633733602db394ad85058be3aab0 100644 (file)
@@ -93,11 +93,6 @@ M: union class.
     dup pprint-word
     "members" word-prop pprint-elements pprint-; newline ;
 
-M: complement class.
-    \ COMPLEMENT: pprint-word
-    dup pprint-word
-    "complement" word-prop pprint-word newline ;
-
 M: predicate class.
     \ PREDICATE: pprint-word
     dup "superclass" word-prop pprint-word
index a4fbdfd8d1c1a30f3c9a01664ca900423924717f..e779983c6e9b92973a29ee72e58f333be9e61a44 100644 (file)
@@ -145,13 +145,6 @@ TUPLE: another-one ;
 [ "IN: temporary\nSYMBOL: bah\nUNION: bah fixnum alien ;\n" ]
 [ [ \ bah see ] string-out ] unit-test
 
-[ t ] [
-    DEFER: not-fixnum
-    "IN: temporary\nSYMBOL: not-fixnum\nCOMPLEMENT: not-fixnum fixnum\n"
-    dup eval
-    [ \ not-fixnum see ] string-out =
-] unit-test
-
 ! Weird bug
 GENERIC: stack-underflow
 M: object stack-underflow 2drop ;