Doug Coleman
ce91d0cc1d
classes: Add a check that arguments to classoids are themselves classoids.
...
Introduce a new word-prop that makes tuple-class words classoids at parse-time so that
self-referential tuple definitions with maybe{} work, e.g. TUPLE: node { next maybe{ node } } ;
Add unit test.
Fixes #766 .
2013-03-22 16:00:46 -07:00
John Benediktsson
6398bea5db
classes.algebra: fix docs for class<=.
2012-09-22 21:20:54 -07:00
John Benediktsson
7104c2d7b9
using the new H{ } make.
2012-07-19 09:50:09 -07:00
Doug Coleman
cb42258144
classes:
...
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
John Benediktsson
19421c902c
classes.algebra: make class= and only-classoid? use short-circuit logic.
2012-04-18 12:00:24 -07:00
Doug Coleman
30ade9023c
classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin.
2011-11-22 18:49:42 -08:00
Doug Coleman
627bce6615
classes: Make methods dispatch on maybes. Fix a couple bugs in the implementation of maybe. classoid? is now a dumb test if an object could be a well-formed classoid; valid-classoid? tests for well-formedness. Move maybe tests. Make pprint* work better on methods.
2011-11-22 15:12:20 -08:00
Keita Haga
c9c1d89bfa
classes.algebra, grouping, parser: replace 'seqence' with 'sequence' in docs
2011-01-04 21:02:11 +09:00
Mitchell N Charity
85030e861a
algebra-docs: fix a typo
2010-09-09 17:39:11 -04: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
Daniel Ehrenberg
3e9e4f0969
Finishing eliminating prune as a synonym of members
2010-02-27 14:52:24 -05:00
Daniel Ehrenberg
0f0571e48a
Moving new-sets to sets
2010-02-26 16:01:01 -05:00
Slava Pestov
58d035f1c7
Fix two problems with recompilation: predicate constant folding was recording unsatisfied dependencies in some cases, and literal tuple instances of forgotten classes would cause problems for method inlining
2010-02-20 12:01:47 +13:00
Slava Pestov
b2ba7ea6ec
classes.algebra: remove class<=> -- it's never used and has incorrect semantics
2010-02-10 15:04:48 +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
erikc
c84267aaf9
Merge up
2010-01-30 20:48:06 -08:00
erikc
4506512a16
Merge up
2010-01-30 20:39:43 -08:00
Slava Pestov
8e2e869ec5
stack-checker.dependencies: make conditional dependencies more robust
2010-01-31 01:55:35 +13:00
Slava Pestov
9d207cc913
Fix regression when forgetting classes
2010-01-30 09:28:55 +13:00
Slava Pestov
c591988707
classes.algebra: couple more tests
2010-01-30 09:28:53 +13:00
Slava Pestov
c178279454
Clean up class algebra a bit, and change mixins to recompile less, taking advantage of new semantics
2010-01-30 09:28:52 +13:00
Slava Pestov
37e03d2e01
Trying to fix mixin semantics
2010-01-30 09:28:51 +13:00
Slava Pestov
880fb747fc
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Slava Pestov
08b6ebc7fa
Factor source files should not be executable
2009-11-21 17:50:43 -06:00
Slava Pestov
547abb5603
Unit test fixes
2009-11-13 23:00:50 -06:00
Slava Pestov
aa8feb7bdd
classes.algebra: output cleaner anonymous unions and intersections
2009-11-13 03:01:22 -06:00
Slava Pestov
004b92e175
classes.algebra: cleanup
2009-11-10 17:41:47 -06:00
Slava Pestov
d65296b334
vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)
2009-11-02 04:25:54 -06:00
Slava Pestov
b8a51c7eb0
delete-nth -> remove-nth!
2009-10-27 23:41:57 -05:00
Keith Lazuka
8f79ea91ba
docs: change $subsection to $subsections
2009-10-02 12:15:48 -04:00
Slava Pestov
85c916fedc
Rename specific-method to method-for-class, rename (effective-method) to method-for-object, and make both much faster
2009-09-21 17:42:20 -05:00
Doug Coleman
873d3253ee
remove duplicate usings
2009-08-26 22:23:03 -05:00
Doug Coleman
dc79446250
use ERROR: in several places instead of throwing strings
2009-08-11 23:09:02 -05:00
Brad Christensen
4b3ab95660
A number of documentation fixes.
...
* Short-circuit combinators now show correct stack effect for quots
* Groups and Clumps unchecked examples corrected, made runnable in listener
* Class operations had duplicate link to class-types
* Protocol slots readability fixed
* Tuple word property for "tuple-layout" corrected to "layout"
* cond>quot sentence started in lowercase
* Method precedence code example missing stack effect for GENERIC:, M: integer explain changed to detail an integer
* Motivation for default streams readability
* Default input and output streams duplicate readln link removed from output stream words section
* Looping combinators do description clarified
* Make philosophy missing space
* Linear order protocol duplicate after? link removed
* Parsing words readability fix
* Copied note regarding with-compilation-unit from define to define-declared and define-inline
2009-08-10 23:34:25 -07:00
Joe Groff
b4befe3f69
[ [ ... ] compare ] sort => [ ... ] sort-with
2009-08-02 20:09:23 -05:00
Slava Pestov
073be4f340
classes.algebra: stack effect fix
2009-07-28 06:49:09 -05:00
Doug Coleman
8da9d0f203
rename peek -> last and update all usages
2009-05-25 16:38:33 -05:00
Slava Pestov
ba04d5af1e
Update documentation for stricter vocabulary search path semantics
2009-05-16 00:29:21 -05:00
Slava Pestov
4d438a3edd
Remove cruddy string encoding/decoding code from VM
2009-05-02 13:45:38 -05:00
Slava Pestov
05f3f9dcb9
Fixing unit tests for stack effect inference changes
2009-04-20 21:15:19 -05:00
Slava Pestov
cd53c2bd37
produce and produce-as: don't need third quotation either
2009-02-28 15:31:34 -06:00
Slava Pestov
6b25e99470
Add summary for heaps more vocabs
2009-02-16 21:05:13 -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
f34c14a0f5
Remove some usages of tuck
2009-01-23 18:20:47 -06:00
Slava Pestov
4b4d93dddd
Move at-default from unicode.case to assocs, move 2cache from classes.algebra to assocs, clean up some code to no longer use -rot, rot, pick
2009-01-20 15:27:14 -06:00
Slava Pestov
4f0a9f311e
Untangling some dependencies
2008-12-08 14:58:00 -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
4fd1767768
Old fix for classes-intersect? no-method bug was incorrect; we were
...
ignoring anonymous classes in compiled-generic-crossref. Also,
forget* now calls reset-word so that references to predicates of
forgotten classes don't break the compiler with a similar error.
2008-11-05 18:32:02 -06:00
Slava Pestov
fb64c1cb45
Fix class<=; a predicate class derived from a union was not reported as being contained in the union
2008-11-04 04:59:54 -06:00
Slava Pestov
c19f2257f4
Fix permission bits
2008-10-02 08:34:49 -05:00