Commit Graph

127 Commits (a7f698235470554b60e9a43e8b8c74654487a459)

Author SHA1 Message Date
John Benediktsson f2741b34a4 Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed. 2011-10-18 13:19:39 -07:00
Doug Coleman 60b1115452 Rename forget-struct-slot-accessors -> forget-slot-accessors 2011-10-06 13:21:18 -07:00
John Benediktsson 7e8d598265 classes.tuple: can't assume hashcode* returns fixnum. 2011-10-06 11:53:50 -07:00
Doug Coleman 921c81d92a Document reset-class, forget-class, forget-method. Use lookup-method in see, fix gpu.render for method->lookup-method renaming. Fixes #232. 2011-10-04 10:40:48 -07:00
Doug Coleman e75e2b1f14 Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229. 2011-10-03 15:49:49 -07:00
Doug Coleman e1678b928a Rename spread>quot to deep-spread>quot, and spread>quot-shallow to shallow-spread>quot. 2011-10-02 20:25:39 -07:00
Doug Coleman bce0dd9272 Spread now infers with the correct stack effect. Make spread>quot-shallow which trims empty quotations off the head of the spread sequence. Fixes #139. 2011-10-02 18:35:01 -07:00
John Benediktsson 205417d765 classes.tuple: switch to python's tuplehash(). Fixes #153. 2011-10-02 13:49:45 -07:00
John Benediktsson 7d5887c1c5 classes.tuple: error-class should call-next-method before resetting itself. 2011-09-26 11:54:55 -07:00
John Benediktsson f8cb5324b7 classes.tuple: adding test cases for error-class and support forget-class. 2011-09-26 11:00:32 -07:00
John Benediktsson 4a3ae7bab3 Defining an "error-class", and printing error tuples out with ERROR:. See #188. 2011-09-26 11:00:32 -07:00
Slava Pestov 801197a58d classes.algebra: make it work better to fix bug reported by Sascha Matzke 2010-07-29 19:57:23 -04:00
Slava Pestov fea8be5b6f classes.tuple: fix screwup 2010-02-18 03:00:43 +13:00
Slava Pestov 56dff5b0f4 typed: only unbox final classes. Fixes bug reported by littledan 2010-02-18 02:39:12 +13: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 4cc907e1af compiler.tree.propagation, compiler.tree.escape-analysis: make these passes handle constants in a more robust way in compilation units involving tuple reshaping 2010-02-12 02:50:59 +13:00
Slava Pestov 002d454aa7 classes.tuple: make error slots read only for small space savings 2010-02-03 23:11:25 +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
Slava Pestov df16224ab2 Re-work flushed dependencies into new compiler cross-referencing framework 2010-01-30 09:29:00 +13:00
Slava Pestov 2138b55708 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov b6ddccd03a 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 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov 004b92e175 classes.algebra: cleanup 2009-11-10 17:41:47 -06:00
Doug Coleman 1ee8c8f5eb sigma -> map-sum 2009-10-29 14:34:04 -05:00
Joe Groff 4470bf994b fix stack effect of ERROR: words that inherit slots from a base class 2009-09-29 12:52:13 -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 9f5577c368 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 d8bfff26f8 use iota 2009-08-19 08:27:28 -05:00
Doug Coleman 8996c4f2c3 use iota 2009-08-19 08:21:45 -05:00
Slava Pestov bee6fa641e Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Slava Pestov 4f4d6e12d1 classes.tuple: eliminate generic arithmetic from M: tuple = and M: tuple hashcode* 2009-07-18 02:09:56 -05:00
Slava Pestov 9eec019e9b Remove initial-quot feature 2009-06-15 13:07:15 -05:00
Slava Pestov 48c31d441c Add some failing unit tests exposing bugs in initial-quot: implementation 2009-06-13 18:34:27 -05:00
Doug Coleman 498a81fe42 simplify implementation of initial-quot: 2009-06-12 11:45:53 -05:00
Doug Coleman 717f1602e8 initial-quot: works fully, need to make a couple simplifications 2009-06-12 09:21:51 -05:00
Doug Coleman 8a80cacf5c make a word not generic, remove unit test for unimplemented feature 2009-06-11 20:20:21 -05:00
Doug Coleman d29c71d821 add initial-quot: syntax for tuples 2009-06-11 19:48:14 -05:00
Doug Coleman 4057332535 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