Commit Graph

505 Commits (a050823f2988e696528fb1fa3fca29f5912418f7)

Author SHA1 Message Date
John Benediktsson 80e1c8e3f2 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
John Benediktsson 378786599d Cleanup lint warnings. 2011-10-14 11:47:24 -07:00
Doug Coleman cca76e0f6e Rename forget-struct-slot-accessors -> forget-slot-accessors 2011-10-06 13:21:18 -07:00
John Benediktsson 7a4ffd92ed classes.tuple: can't assume hashcode* returns fixnum. 2011-10-06 11:53:50 -07:00
Doug Coleman be3eebf719 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 181f11faa8 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 8504b17aad 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 38feae0e8f 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 195d5834d4 classes.tuple: switch to python's tuplehash(). Fixes #153. 2011-10-02 13:49:45 -07:00
Doug Coleman 671f19d70f Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.
2011-10-02 12:00:08 -07:00
Doug Coleman 76580da5d5 Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.
2011-09-29 11:28:28 -07:00
John Benediktsson 86923107db classes.tuple: error-class should call-next-method before resetting itself. 2011-09-26 11:54:55 -07:00
John Benediktsson f099cd5b4c classes.tuple: adding test cases for error-class and support forget-class. 2011-09-26 11:00:32 -07:00
John Benediktsson 7ef1aecf88 Defining an "error-class", and printing error tuples out with ERROR:. See #188. 2011-09-26 11:00:32 -07:00
John Benediktsson d142dbb456 Revert "classes.singleton: fix "summary" of singletons. Fixes #145."
This reverts commit d820c86974.
2011-09-19 17:46:52 -07:00
John Benediktsson ac75393fbd Revert "classes.mixin: fix definitions for MIXIN:."
This reverts commit f625612f89.
2011-09-19 17:46:40 -07:00
John Benediktsson 8827cbdba1 classes.mixin: fix definitions for MIXIN:. 2011-09-19 17:22:50 -07:00
John Benediktsson 46c417370f classes.singleton: fix "summary" of singletons. Fixes #145. 2011-09-19 16:49:11 -07:00
Doug Coleman 035cc310d9 Fix for parser-notes? being removed 2011-09-07 04:59:35 -05:00
John Benediktsson 9f34c9c676 Spelling fixes to documentation. 2011-08-26 16:20:31 -07:00
otoburb 107d9dd385 Tuple subclassing help article: Fixed typo 2011-03-24 04:48:48 +00:00
Keita Haga 073eda332a In several documentation, remove whitespace before or after the colon or period 2011-02-10 01:51:13 +09:00
Keita Haga a2ad751f83 classes.tuple: minor fix to $errors section in the boa word's help page 2011-01-26 21:26:12 +09:00
Keita Haga 8f92ca2d47 classes.algebra, grouping, parser: replace 'seqence' with 'sequence' in docs 2011-01-04 21:02:11 +09:00
Keita Haga f0d22c7162 classes.tuple: minor fixes in tuple-examples article 2010-12-05 21:27:25 +09:00
Mitchell N Charity 8a269f56a4 algebra-docs: fix a typo 2010-09-09 17:39:11 -04:00
Slava Pestov 30dea58330 classes: remove fragile unit test 2010-08-21 18:10:09 -07:00
Slava Pestov 0f4c5d2bff classes.algebra: make it work better to fix bug reported by Sascha Matzke 2010-07-29 19:57:23 -04:00
Slava Pestov c04de94b96 compiler.tree.finalization: record dependencies on inlined predicates 2010-07-23 16:31:15 -07:00
Slava Pestov 8a0525e5ce Add a scan-token word which is like scan, except throws an error on EOF; document scan-object word; mention that scan-token/scan-object are preferred over scan/scan-word 2010-07-06 16:20:08 -04:00
Slava Pestov 627295f094 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
Daniel Ehrenberg 512fe14e4e Merge branch 'bags' of git://github.com/littledan/Factor
Conflicts:

	basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
	basis/furnace/auth/auth.factor
	basis/stack-checker/backend/backend.factor
2010-03-16 13:28:00 -04:00
Joe Groff 18f3df9d4a more help-lint 2010-03-09 21:02:43 -08:00
Daniel Ehrenberg 7364608417 Merge branch 'master' of git://factorcode.org/git/factor into bags 2010-03-02 17:04:45 -05:00
Joe Groff bb58cf4d16 classes.tuple.parser: throw bad-slot-name immediately when an invalid slot name in a tuple/struct literal is scanned 2010-02-28 20:14:16 -08:00
Daniel Ehrenberg da57436180 Finishing eliminating prune as a synonym of members 2010-02-27 14:52:24 -05:00
Daniel Ehrenberg 7074979745 Moving new-sets to sets 2010-02-26 16:01:01 -05:00
Daniel Ehrenberg b76c82048d Making propagation and tuple.parser refer to new-sets; adding some missing features from sets into new-sets 2010-02-26 12:07:37 -05:00
Joe Groff 21ab2ef6e7 repeated runs of classes.tuple test would fail because partially defined classes.tuple.tests:bad-superclass type would shadow classes.tuple:bad-superclass 2010-02-22 19:35:52 -08:00
Slava Pestov 6501480a0e 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 31ccfa2e5d Fix unit test failures 2010-02-18 04:58:30 +13:00
Slava Pestov c5259f2e2c classes.tuple: document final class declaration 2010-02-18 04:13:34 +13:00
Slava Pestov c4c14c7ceb classes.tuple: fix screwup 2010-02-18 03:00:43 +13:00
Slava Pestov 60296be964 typed: only unbox final classes. Fixes bug reported by littledan 2010-02-18 02:39:12 +13:00
Slava Pestov 01824d41be Add support for final tuple classes which cannot be subclassed: TUPLE: foo ... ; final 2010-02-18 02:19:57 +13:00
Slava Pestov cd1986a906 classes: fix regression from recent bug fix 2010-02-15 23:46:55 +13:00
Slava Pestov 3e5e3a6d3f classes: call reset-generic on predicate word to avoid redefinition problems (reported by littledan) 2010-02-15 18:34:45 +13:00
Slava Pestov a118f208dc 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 83410e23cc classes.algebra: remove class<=> -- it's never used and has incorrect semantics 2010-02-10 15:04:48 +13:00
Slava Pestov f20b4e5607 tools.deploy.shaker: don't try to intern all word props anymore 2010-02-04 17:40:53 +13:00
Slava Pestov 11be5a4bd5 Rename update to assoc-union!, add assoc-filter! assoc-diff! words 2010-02-04 02:55:00 +13:00
Slava Pestov a005e678db classes.tuple: make error slots read only for small space savings 2010-02-03 23:11:25 +13:00
Brad Christensen 9b9322ea1e A number of documentation fixes and cleanup. 2010-02-03 00:05:03 -07: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 3addfcc2ad classes: more robust code for detecting circular inheritance, move it out of classes.tuple since predicate classes need the same check too 2010-02-01 00:08:18 +13:00
erikc 0770b940b0 Merge up 2010-01-30 20:48:06 -08:00
erikc f33c73bf94 Merge up 2010-01-30 20:39:43 -08:00
Slava Pestov 2c63161c84 stack-checker.dependencies: make conditional dependencies more robust 2010-01-31 01:55:35 +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 29fc287618 classes.tuple: documentation fix 2010-01-30 09:28:56 +13:00
Slava Pestov 4f68808a72 Rename predicate-word to create-predicate-word and add a new predicate-word word 2010-01-30 09:28:55 +13:00
Slava Pestov bd479db2f8 Fix regression when forgetting classes 2010-01-30 09:28:55 +13:00
Slava Pestov 34287fd9d6 Minor documentation updates 2010-01-30 09:28:54 +13:00
Slava Pestov 8b19b56a1c classes.mixin: privacy please 2010-01-30 09:28:53 +13:00
Slava Pestov 830e25c70b More changes so that mixins trigger even less recompilation 2010-01-30 09:28:53 +13:00
Slava Pestov 066bf9a42f classes.algebra: couple more tests 2010-01-30 09:28:53 +13:00
Slava Pestov e6d1388dcc 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 af41dc6169 Trying to fix mixin semantics 2010-01-30 09:28:51 +13:00
Slava Pestov b63ec30449 classes.tuple: tests were changing superclass of vocab tuple 2010-01-27 20:24:33 +13:00
Slava Pestov 94c93f0bc7 vm: 'become' primitive needs to update literal references in code blocks 2010-01-27 18:42:31 +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 df4fb4a3ee Removing integers-as-sequences 2010-01-15 07:15:33 +13:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov e30d275e41 compiler.cfg: 'basic-block new hashcode' should not throw an exception; fixes tools.deploy.test.11 2009-11-16 02:01:36 -06:00
Slava Pestov bb8eabba36 Unit test fixes 2009-11-13 23:00:50 -06:00
Slava Pestov 14a4535ad9 classes.algebra: output cleaner anonymous unions and intersections 2009-11-13 03:01:22 -06:00
Slava Pestov c693587018 classes.algebra: cleanup 2009-11-10 17:41:47 -06:00
Slava Pestov e4ad642134 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
Doug Coleman 1d12a6707d sigma -> map-sum 2009-10-29 14:34:04 -05:00
Doug Coleman bd13e018dd memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Slava Pestov 951e3e9c83 delete-nth -> remove-nth! 2009-10-27 23:41:57 -05:00
Slava Pestov 32adb5df27 classes.builtin: fix help lint 2009-10-20 14:28:34 -05:00
Doug Coleman 50d4eb27bf add missing usings 2009-10-10 14:04:22 -05:00
Doug Coleman 584cd44856 fix the tuple subclassing example docs 2009-10-10 14:02:35 -05:00
Keith Lazuka 405e5d015b docs: change $subsection to $subsections 2009-10-02 12:15:48 -04: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
Doug Coleman b86314ec39 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-21 17:59:48 -05:00
Slava Pestov 962d039852 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 eceed177d6 replace usages of <" with """ 2009-09-20 22:42:40 -05:00
Joe Groff 748ba4b833 give a better error message when an invalid slot name is used in a tuple/struct literal 2009-09-16 18:07:39 -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 26cc551049 fix another tuple definition bug 2009-09-01 11:36:06 -05:00
Doug Coleman d46d063f5f inheriting from itself would hang a tuple definition. only breaks if tuple is being redefined 2009-09-01 04:02:44 -05:00
Doug Coleman 9a876a5255 remove duplicate usings 2009-08-26 22:23:03 -05:00
Doug Coleman f18aef2afb Merge branch 'master' of git://factorcode.org/git/factor 2009-08-22 21:24:02 -04:00
Joe Groff c898593983 decouple struct parsing/printing from tuple parsing/printing a bit 2009-08-19 18:53:44 -05:00
Joe Groff 15a7148de0 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-19 15:48:07 -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 cfe54f8968 classes, words: fix unit tests for method inlining change 2009-08-18 17:20:17 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Joe Groff 6fe7fe72c7 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 10:55:05 -04:00
Doug Coleman 3f3d57032b Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -05:00
Joe Groff ca592b9654 extend T{ } syntax to build structs 2009-08-12 15:40:06 -04:00
Joe Groff 25c3434892 pprint structs with tuple syntax 2009-08-12 13:16:43 -04:00
Doug Coleman 686b3e348e use ERROR: in several places instead of throwing strings 2009-08-11 23:09:02 -05:00
Brad Christensen f8405e9c55 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
Slava Pestov 926c46841b classes.intersection: make flatten-class more accurate. It is still not perfect, but it fixes the case where a generic word has a method on a tuple class, and another method on an intersection of a mixin with another tuple classes 2009-08-07 22:30:57 -05:00
Joe Groff 7c5ef08aab [ [ ... ] compare ] sort => [ ... ] sort-with 2009-08-02 20:09:23 -05:00
Joe Groff 06eeedcb4c change-tracking-tuple class. subclasses will have a "changed?" slot that gets set to true when any slot is modified 2009-07-31 21:48:17 -05:00
Slava Pestov fb33ee3002 classes.algebra: stack effect fix 2009-07-28 06:49:09 -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 50a86a8d93 More efficient singleton predicates 2009-07-17 17:41:33 -05:00
Joe Groff 7a88c5ae8a variants vocab for ADTs 2009-06-26 16:31:20 -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 258abe31ab add some unit tests for reshaping tuples with initial-quot: slots 2009-06-12 11:58:07 -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 bbf0a8d266 fix stack effect 2009-05-28 12:28:52 -05:00
Doug Coleman 407377fc98 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
U-C4\Administrator 02b769475b fix duplicate using lines 2009-05-17 20:29:32 -05:00
Slava Pestov 9c239694bf Update unit tests for parser note and lazy list changes 2009-05-16 13:41:11 -05:00
Slava Pestov a0eb60906d Fix even more usings 2009-05-16 10:45:17 -05:00
Slava Pestov 35ccf0231e Factor out parser note code into parser.notes vocabulary, and print a note if a using list contains duplicates 2009-05-16 09:40:17 -05:00
Slava Pestov 66a9416473 Update documentation for stricter vocabulary search path semantics 2009-05-16 00:29:21 -05:00
Slava Pestov b31fe9b8f2 Implement stricter vocab search path semantics, with a new API for vocabs.parser. Add map-find-last to sequences vocab 2009-05-14 22:31:29 -05:00
Slava Pestov f43667640a Fix regression with: bad interaction between predicate classes and tuple inheritance, reported by Bruno Deferrari 2009-05-13 16:58:01 -05:00
Slava Pestov b4088373b7 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 05:16:47 -05:00
Slava Pestov a63ad6a7a5 Remove cruddy string encoding/decoding code from VM 2009-05-02 13:45:38 -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 5b53562c7b Add better error checking for INSTANCE: and GENERIC#, and remove unnecessary word props when generic word's combination changes 2009-04-28 17:56:15 -05:00
Slava Pestov 7b08accb7e Merge branch 'master' into inline_caching 2009-04-27 16:14:45 -05:00
Joe Groff 0d03dea74b factor out tuple literal slot parsing from the rest of tuple literal parsing 2009-04-26 15:59:26 -05:00
Slava Pestov a14e5a4a3b Better local cache 2009-04-26 08:06:37 -05:00
Slava Pestov 7aa65b5b5f Fixing new method dispatch implementation 2009-04-25 19:41:27 -05:00
Slava Pestov 48e70b65fa Move cross-referencing stuff to tools.crossref since compiler doesn't depend on it anymore, and compute cross-referencing index as needed; reduces image size by ~4Mb 2009-04-22 04:20:38 -05:00
Slava Pestov 97a522da0e Fix conflict 2009-04-21 16:26:22 -05:00
Slava Pestov bd8787d540 Tweak unit test in classes vocab to yield more information on failure 2009-04-21 16:23:54 -05:00
Slava Pestov 469c9ee21d Debugging stack checking 2009-04-21 16:09:53 -05:00
Slava Pestov 05f3f9dcb9 Fixing unit tests for stack effect inference changes 2009-04-20 21:15:19 -05:00
Slava Pestov 8414693142 stack-checker: trust word declarations instead of recursively checking them 2009-04-20 18:44:45 -05:00
Doug Coleman 7a1841f59b (( -- )) eval -> eval( -- ) 2009-04-17 15:49:21 -05:00
Doug Coleman aad6a3d504 fixing compiler error in core 2009-04-17 12:45:57 -05:00
Slava Pestov a0ba66080d Documentation updates suggested by dmpk2k 2009-04-10 03:52:53 -05:00
Slava Pestov 37e278ed02 Use [ ] [ ] map-reduce instead of unclip [ ] reduce 2009-04-06 17:50:54 -05:00