Joe Groff
3c541f736f
fix failing classes.struct tests
2009-09-15 19:10:05 -05:00
Joe Groff
4d16c569f0
struct classes now make their own C type without help from alien.structs. remove alien.structs dependencies from everywhere outside of alien and compiler, and have the FFI handle both alien.structs and classes.struct c-types
2009-09-15 17:38:49 -05:00
Slava Pestov
d5bc1ceca2
classes.struct: fix some bugs
...
- STRUCT: foo<ENTER> in listener threw an error
- S{ did not throw an error when used with non-struct types
- attempting to subclass a struct class now fails
- forgetting a struct class now removes the corresponding C type
- 'see'ing a struct class now indents correctly
2009-09-10 15:59:27 -05:00
Slava Pestov
7f2e2b1777
Specialized array overhaul
...
- Replace hand-written specialized-arrays.* subvocabularies with new system; instead of USE:ing specialized-arrays.T, do SPECIALIZED-ARRAY: T
- Ditto for specialized-vectors; use SPECIALIZED-VECTOR:
- io.mmap.functor: removed entirely, use <mapped-array> instead
- struct-arrays and struct-vectors have been removed because specialized arrays and vectors subsume them entirely
2009-09-09 22:33:34 -05:00
Slava Pestov
a1ae209f81
compiler.tree.propagation.call-effect: stronger call( inlining; now can inline 'a [ b ] curry call(' where 'a' is literal, [ b ] doesn't infer, but [ a b ] does infer. This simplifies classes.struct:memory>struct
2009-09-07 17:45:03 -05:00
Slava Pestov
1798000335
Fix unit tests for specialized-arrays.direct change
2009-09-05 02:26:06 -05:00
Slava Pestov
a054ec3d64
specialized-arrays.direct is no more; instead, every specialized-array.<foo> vocabulary has a <direct-T-array> constructor
2009-09-04 22:01:55 -05:00
Joe Groff
d893f3cdb7
put a more useful mirror over structs
2009-08-31 22:26:03 -05:00
Joe Groff
4cbd4d4b5c
update classes.struct tests, and make struct prettyprinting work again
2009-08-31 20:46:33 -05:00
Joe Groff
43f81d3835
hashcode* for structs
2009-08-31 10:51:45 -05:00
Joe Groff
509ed99c79
refactor struct slot parsing so that there's a <struct-slot-spec> word for easily constructing struct slots outside classes.struct
2009-08-30 22:37:37 -05:00
Joe Groff
5d56e16188
Merge branch 'master' of git://factorcode.org/git/factor
2009-08-30 21:14:33 -05:00
Slava Pestov
e918e9cddc
classes.struct: add more unit tests for clone method, and fix clone breakage when the struct class word is not a symbol
2009-08-30 21:01:44 -05:00
Joe Groff
82025bde30
likewise, an S@ word for structs
2009-08-30 20:46:31 -05:00
Joe Groff
20aa00f8df
implement clone on struct classes to copy the struct contents
2009-08-29 22:54:56 -05:00
Joe Groff
3e51bde484
change malloc-struct to initialize struct from initial values; add (malloc-struct) and (struct) words that leave their memory uninitialized
2009-08-29 22:40:13 -05:00
Joe Groff
80a5bf7138
support { type dimension } c-type syntax in STRUCT: definitions
2009-08-27 21:39:43 -05:00
Joe Groff
69e640c55b
throw a friendlier error when attempting to create a struct without slots
2009-08-26 22:37:59 -05:00
Joe Groff
64990eb23d
test that array slots in structs optimize down
2009-08-26 21:50:12 -05:00
Joe Groff
ecd0bdbd58
test that struct-arrays and struct construction optimize down
2009-08-26 21:38:00 -05:00
Joe Groff
f4c90fdabe
bitwise equal? for struct objects
2009-08-26 18:05:38 -05:00
Joe Groff
784b8c04ce
move classes.struct from extra to basis
2009-08-26 15:55:01 -05:00