Commit Graph

73 Commits (2ec125c6d3c0138b7a7ffa82060158856914100f)

Author SHA1 Message Date
Doug Coleman 2403486156 conflicts 2010-06-16 16:23:29 -05:00
Joe Groff 99bc1b483e classes.struct: fix some bugs in binary-zero?, add unit tests 2010-06-16 16:23:29 -05:00
Joe Groff 2ab97370da alien.data: make binary-zero? public and move it from classes.struct.private 2010-06-10 17:05:43 -07:00
Joe Groff 7e0ade0972 classes.struct: fix some bugs in binary-zero?, add unit tests 2010-06-10 16:49:59 -07:00
Joe Groff e45373d1ce classes.struct: implement "group-words" method on struct-class so that struct classes can be used as a CONSULT: protocol 2010-06-08 12:52:46 -07:00
Slava Pestov b8ec5c6176 Stack allocation improvements
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov 35bd2bca06 FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing 2010-05-16 03:43:23 -04:00
Slava Pestov 5a102c717d Eliminate compiler.alien 2010-05-11 23:24:47 -04:00
Slava Pestov b92c67fc2c Move flatten-c-type to death row so that it can be executed in part 5 2010-05-11 22:26:31 -04:00
Slava Pestov 5054bb4b25 FFI rewrite part 4: parameter and return value unboxing redesign 2010-05-11 19:11:44 -04:00
Slava Pestov 3d66820344 FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions 2010-05-09 21:36:52 -04:00
Slava Pestov d2d466de29 Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO) 2010-05-06 17:21:02 -04:00
Slava Pestov 7e8add87fe More FFI cleanups 2010-05-05 01:13:45 -04:00
Slava Pestov ae24eb8f97 alien.c-types: cleanup 2010-05-04 19:33:55 -04:00
Daniel Ehrenberg d9878f81d7 Changing require-when usages to the new syntax for require-when 2010-04-18 14:29:24 -05:00
Daniel Ehrenberg f2f80dadc7 Updating code to use require-when rather than vocab [ require ] when 2010-03-18 01:13:37 -04:00
Joe Groff 0f34795200 classes.struct: raise an error in STRUCT: if there are duplicate slot names 2010-02-25 11:52:21 -08:00
Slava Pestov c1e7a3ffc2 Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams 2010-02-24 20:18:41 +13:00
Joe Groff 9a79427f00 classes.struct: reader-quot was checking struct-slot-spec for array-ness, not the type! derp 2010-02-22 23:57:10 -08:00
Joe Groff 4875169d0c alien.arrays/classes.struct: ensure specialized array types for struct array slots get instantiated at parse time 2010-02-22 12:21:29 -08:00
Joe Groff 21936bfe20 classes.struct: set dependency on slot types in slot accessors, so that accessors update when types change. enables pointers to make circular references between struct types 2010-02-21 22:46:52 -08:00
Joe Groff 866f6ada18 ditch string c-types 2010-02-21 10:58:21 -08:00
Slava Pestov 1100861204 Add support for final tuple classes which cannot be subclassed: TUPLE: foo ... ; final 2010-02-18 02:19:57 +13:00
Slava Pestov 03a74f2237 classes: If a tuple class with subclasses is redefined into something that's not a tuple class, subclasses are changed to inherit from 'tuple' instead of being forgotten. Also, changing the metaclass of a union or intersection member no longer removes it from the union or intersection. Finally, make some internal words private 2010-02-01 02:48:39 +13:00
Joe Groff ebcaaa0d64 Merge branch 'master' into simd-cleanup 2009-11-26 16:14:46 -08:00
Slava Pestov 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov d6c1fed06c classes.struct: compute slot offsets before alignment to fix struct size problem on PPC 2009-11-19 19:34:46 -06:00
Joe Groff 993631e44c Merge branch 'master' of git://factorcode.org/git/factor into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-14 21:02:39 -06:00
Slava Pestov d630e1494c Fix struct field alignment on PowerPC 2009-11-10 19:34:14 -06:00
Joe Groff 81025d7095 move define-inline-method from classes.struct.private to generic.parser 2009-11-01 22:10:28 -06:00
Doug Coleman ae519868f7 over push -> suffix!, over push-all -> append! 2009-10-28 15:29:01 -05:00
Doug Coleman a57e990af7 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Daniel Ehrenberg 52bf4738c8 Making struct bitfield writers fast 2009-10-08 13:10:51 -05:00
Daniel Ehrenberg 64e9bc7d9c Making struct bitfield readers fast 2009-10-07 23:51:18 -05:00
Daniel Ehrenberg 6b8233e350 Refactoring bitfields to not use number tower 2009-10-07 21:35:12 -05:00
Daniel Ehrenberg 635aa1860c Adding bit fields to STRUCT: 2009-10-07 01:43:32 -05:00
Slava Pestov 3b9d013935 classes.struct: store aligned size in struct-size word-prop 2009-09-24 19:54:32 -05:00
Slava Pestov 9f78a6e2e7 tools.deploy: fix test 11 2009-09-24 13:00:26 -05:00
Joe Groff 9020f2346a fix classes.struct bootstrap 2009-09-24 12:07:41 -05:00
Joe Groff a452f66bcb clean up classes.struct code. don't set a bunch of redundant word-props on struct class words 2009-09-24 11:32:25 -05:00
Joe Groff d68a1eed1a don't construct a prototype for struct classes that don't need it 2009-09-23 19:41:46 -05:00
Joe Groff 4a1422e7fe move some allocation words that don't really have much to do with c types out of alien.c-types into a new alien.data vocab 2009-09-17 22:36:05 -05:00
Joe Groff ac5ea1769b get compiler tests loading 2009-09-16 09:20:47 -05:00
Joe Groff 334e93bbbf get things to a point where they bootstrap again 2009-09-15 21:43:18 -05:00
Joe Groff 02b797f11b 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 8aecdf13ab 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 527db8995a 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 0b35d79aee 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 430f4a83f9 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 7a429a530e forget the old struct class when redefining a struct class so the old accessors get purged 2009-09-03 11:12:58 -05:00