Commit Graph

111 Commits (97e6315c476808fa029b7143ef7c9997d9ef5368)

Author SHA1 Message Date
Slava Pestov a005e678db classes.tuple: make error slots read only for small space savings 2010-02-03 23:11:25 +13:00
Slava Pestov e929d906ce 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
Slava Pestov 09ead56652 Re-work flushed dependencies into new compiler cross-referencing framework 2010-01-30 09:29:00 +13:00
Slava Pestov c027046857 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov d0dc6ba8af slots, classes.tuple: make 'integer'-declared slots call >integer on the new value before storing it in, and remove code duplication between type checks in writer methods and boa constructors 2010-01-16 19:29:19 +13:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov c693587018 classes.algebra: cleanup 2009-11-10 17:41:47 -06:00
Doug Coleman 1d12a6707d sigma -> map-sum 2009-10-29 14:34:04 -05:00
Joe Groff 92e864b019 fix stack effect of ERROR: words that inherit slots from a base class 2009-09-29 12:52:13 -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 389f47086a classes.tuple: don't run out of memory inside 'instances' quotation if optimizing compiler is off 2009-09-02 05:19:20 -05:00
Doug Coleman fadede137c use iota 2009-08-19 08:27:28 -05:00
Doug Coleman 3313098936 use iota 2009-08-19 08:21:45 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Slava Pestov cf826d80b0 classes.tuple: eliminate generic arithmetic from M: tuple = and M: tuple hashcode* 2009-07-18 02:09:56 -05:00
Slava Pestov 29327a787c Remove initial-quot feature 2009-06-15 13:07:15 -05:00
Slava Pestov 285c8cecc6 Add some failing unit tests exposing bugs in initial-quot: implementation 2009-06-13 18:34:27 -05:00
Doug Coleman 99bfeb62c4 simplify implementation of initial-quot: 2009-06-12 11:45:53 -05:00
Doug Coleman 21a33419a7 initial-quot: works fully, need to make a couple simplifications 2009-06-12 09:21:51 -05:00
Doug Coleman 4bd06486fb make a word not generic, remove unit test for unimplemented feature 2009-06-11 20:20:21 -05:00
Doug Coleman 059eb399f0 add initial-quot: syntax for tuples 2009-06-11 19:48:14 -05:00
Doug Coleman 0ad6d1fb7b add a few usages of iota, remove most 1+ and 1- from core 2009-05-01 19:58:24 -05:00
Slava Pestov 8414693142 stack-checker: trust word declarations instead of recursively checking them 2009-04-20 18:44:45 -05:00
Slava Pestov 6080c6e734 Fix stack effect redefinition 2009-03-22 20:16:31 -05:00
Slava Pestov bf41b187b0 Re-organize code so that with-compilation-unit can infer
Fix with-compilation-unit to work in deployed code
2009-03-13 19:39:32 -05:00
Slava Pestov ca7a155b72 Merge branch 'master' into new_ui 2009-03-01 20:13:05 -06:00
Slava Pestov 03cb32ad9c Make execute( faster, add execute-unsafe( and make effect tuple slots read only 2009-03-01 20:12:35 -06:00
Slava Pestov 669548e62e Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary 2009-02-02 13:43:54 -06:00
Doug Coleman 3c408342ef renaming: contain? -> any?, deep-contains? -> deep-any?, pad-left -> pad-head, pad-right -> pad-tail, trim-left -> trim-head, trim-right -> trim-tail 2009-01-29 22:19:07 -06:00
Slava Pestov 87e0110ff1 O(1) equal? and hashcode* for ranges 2009-01-28 23:33:26 -06:00
Slava Pestov daf2857d7b define-inline now takes an effect parameter
C: now sets the stack effect of the new word to slot names
add new basis/constants vocab; CONSTANT: foo bar is equivalent to : foo bar ; inline
(going to fold CONSTANT:, ALIAS: and qualified into core soon perhaps)
tighten the screws: inline words now need a stack declaration too
update some usages of inline words
2008-12-15 19:44:56 -06:00
Slava Pestov 7c1c97470f tuple-class-unchanged? was bogusly returning f during bootstrap for classes without a superclass 2008-12-08 23:52:46 -06:00
Slava Pestov a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Slava Pestov 52c5b53e27 Refactoring usages of >r, r>, -rot, rot 2008-11-30 22:21:37 -06:00
Slava Pestov a4d9cdfeb3 Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov 3e29a31493 Residual fixes for curry/compose change 2008-11-21 05:17:20 -06:00
Slava Pestov a95bb533b5 Remove more redundant branches from tuple type predicates and generic words with methods on tuple classes 2008-11-06 09:08:17 -06:00
Slava Pestov 9160e667a7 Fix tuple>array and tuple reshaping 2008-11-06 01:10:56 -06:00
Slava Pestov cc879fa9b7 Tuple layouts are now arrays, instead of built-in types. The superclass
array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode.
2008-11-05 22:20:29 -06:00
Slava Pestov 94fa3929a8 Rice 2008-10-23 05:28:22 -05:00
Slava Pestov 325dbf3eef Fix regression 2008-10-20 21:07:55 -05:00
Slava Pestov ab61e5cd8c Fix performance problem 2008-10-20 05:56:13 -05:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov 3d790d8ac8 Memory ricing to make deploy tests pass on Mac OS X/PowerPC 2008-09-19 00:26:27 -05:00
Slava Pestov 44f53de164 Move make to its own vocabulary, remove fry _ feature 2008-09-10 20:07:00 -05:00
Slava Pestov 57ca685e26 New tuple syntax 2008-09-05 20:39:45 -05:00
Slava Pestov 6b07c85fec Minor fixes here and there for delegation slot removal 2008-09-03 06:05:50 -05:00
Slava Pestov e1716d92b3 Remove delegation slot 2008-09-03 03:46:56 -05:00
Doug Coleman bef502adfc ENABLE NEW ACCESSORS 2008-09-02 01:56:06 -05:00
Slava Pestov f5fbd94a4c New compiled crossref implementation 2008-08-31 01:34:00 -05:00