Commit Graph

329 Commits (81c6196dc488d73c9c47e5ccf94e6e8c94e75ad4)

Author SHA1 Message Date
Doug Coleman 82c5388f68 classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin. 2011-11-22 18:49:42 -08:00
Doug Coleman cab0369fec 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
Doug Coleman fac17c10ba classes.maybe: move maybe definition from classes.union to classes.maybe 2011-11-22 02:46:36 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
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
Doug Coleman f21fee3b73 Rename complete-effect to scan-effect 2011-10-17 10:25:27 -07:00
John Benediktsson 7a36e50c6a generic.parser: adding tests. 2011-10-13 16:49:54 -07:00
John Benediktsson 4558bf3414 Change method parsing to validate stack effects. Fixes #236. 2011-10-13 16:41:17 -07:00
Doug Coleman bf8bf46d16 Update docs for lookup-method. 2011-10-03 15:55:53 -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 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
Joe Groff 2bd6de9a02 slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global 2011-09-19 10:03:43 -07:00
John Benediktsson 9f34c9c676 Spelling fixes to documentation. 2011-08-26 16:20:31 -07:00
Keita Haga 04a70e0476 generic: fix using to M\ example in docs 2010-12-05 05:11:38 +09:00
Slava Pestov 8507bd1fce generic.single: fix bug where dynamic and static dispatch didn't co-incide (reported by Mitchell N. Charity and others) 2010-08-21 18:12:00 -07:00
Slava Pestov 0d6f3354ab generic: clean up unit tests a bit 2010-08-21 13:04:37 -07: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 191ac353fd generalize stack effects so we can bootstrap with the stricter stack effect checking 2010-03-08 23:38:10 -08:00
Daniel Ehrenberg 7cd3360cdd Fixing ambiguity between sets and namespaces in many unit tests and furnace.auth 2010-02-26 17:17:40 -05:00
Daniel Ehrenberg 7074979745 Moving new-sets to sets 2010-02-26 16:01:01 -05:00
Slava Pestov ae25cfe712 Get foldable and flushable declarations working on typed words 2010-02-24 00:16:55 +13:00
Slava Pestov 63928191e7 Minor documentation fixes 2010-02-18 01:19:39 +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 df55fed478 generic: rename method-body predicate class to method 2010-02-03 23:11:24 +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 8432f4c459 Fix a couple of unit tests that were relying on the old compiler crossref structures 2010-01-31 23:26:55 +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 830e25c70b More changes so that mixins trigger even less recompilation 2010-01-30 09:28:53 +13:00
Slava Pestov ca19d44350 Throw a nice error at parse time if an attempt is made to declare a GENERIC: or MACRO: word inline. Such words cannot be inlined, and doing this before previously result in confusing error messages 2010-01-27 21:00:10 +13:00
Slava Pestov e8378b3dc6 generic, sequences: update docs for iota 2010-01-15 08:23:27 +13:00
Joe Groff 67cc1c01be Merge branch 'master' into simd-cleanup 2009-11-26 16:14:46 -08:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Joe Groff 788289e51e Merge branch 'master' into simd-cleanup 2009-11-08 21:54:53 -06:00
Slava Pestov a361e68f30 generic, words: update unit tests for deopt data structure change 2009-11-08 19:44:04 -06:00
Joe Groff 8894e9047c Merge branch 'master' into simd-cleanup 2009-11-07 22:26:09 -06:00
Slava Pestov 734f18624c generic.single: simplify stack shuffling 2009-11-06 04:15:46 -06:00
Joe Groff 6e9d369331 remove spin from core and retire it to basis/shuffle 2009-11-05 15:40:48 -06:00
Joe Groff 75d04922b9 Merge branch 'master' into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-05 11:27:08 -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
Joe Groff 9184254f2c move define-inline-method from classes.struct.private to generic.parser 2009-11-01 22:10:28 -06:00
Doug Coleman 0d4b9132d7 fix a bunch of typos in docs 2009-10-21 17:40:43 -05:00
Slava Pestov 304496e037 Build fixes 2009-10-19 19:18:08 -05:00
Keith Lazuka 405e5d015b docs: change $subsection to $subsections 2009-10-02 12:15:48 -04:00
Slava Pestov eb6933ebfc definitions: make FORGET: M\ update compiled xref correctly 2009-09-28 03:04:53 -05:00
Slava Pestov 1debfb9398 generic: cleanup 2009-09-24 06:24:52 -05:00
Doug Coleman 51ddc963b8 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	core/generic/generic-tests.factor
2009-09-22 10:25:42 -05:00
Slava Pestov be8cd84b40 generic: fix tests 2009-09-22 03:24:06 -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
Slava Pestov 7f2e2b1777 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
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
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
Doug Coleman eb61ffc56d use itoa in more places 2009-08-02 18:18:31 -05:00
Slava Pestov 37b01357ec Remove unused words discovered by Samuel Tardieu 2009-06-16 16:38:39 -05:00
Doug Coleman 407377fc98 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Doug Coleman 0ac80c6917 fix using 2009-05-25 15:42:59 -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 fd3a568191 Fix GENERIC# with out of bounds dispatch position 2009-05-12 20:47:20 -05:00
Slava Pestov aa3aa715be Slightly more space-efficient dispatch table representation 2009-05-09 20:24:32 -05:00
Slava Pestov 581d017b46 Working on inline caching for tail call sites 2009-05-06 19:22:22 -05:00
Slava Pestov 84fe4a7d67 generic.standard: remove bogus error check 2009-05-05 09:12:49 -05:00
Slava Pestov b4088373b7 Merge branch 'master' of git://factorcode.org/git/factor 2009-05-04 05:16:47 -05:00
Slava Pestov 58512cbbdb Cleaning up VM code 2009-05-02 09:19:09 -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 59d6131c7c Bum 3 instructions out of megamorphic fast path by switching to fixed-size caches 2009-04-30 04:14:14 -05:00
Slava Pestov 515c619202 Non-optimizing compiler now open-codes megamorphic dispatch fast path 2009-04-30 03:37:07 -05:00
Slava Pestov 964fbd0a24 Fix test failures from ratio/complex built-in removal 2009-04-30 00:38:55 -05:00
Slava Pestov fc4894fbdf Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags 2009-04-30 00:27:35 -05:00
Slava Pestov 9f4ac667dc Move some unit tests from generic to generic.math 2009-04-29 23:36:05 -05:00
Slava Pestov bd186b6320 Eliminate 3 instructions from PIC fast path 2009-04-29 21:32:05 -05:00
Slava Pestov 02bd4f3f00 PICs now pass the method table around instead of extracting it from the generic word body. This gels better with how compilation units are supposed to work 2009-04-29 19:39:43 -05:00
Slava Pestov dbc1a8e1a3 Only generate cold call entry points for standard generics and not hooks 2009-04-28 18:17:28 -05:00
Slava Pestov dfcbd206b6 Fix -pic command line switch, and enable PICs in user-space 2009-04-28 18:06:10 -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 a14e5a4a3b Better local cache 2009-04-26 08:06:37 -05:00
Slava Pestov 7e84daf0f1 Move (execute) to kernel.private 2009-04-26 02:42:37 -05:00
Slava Pestov 356537593e Get rid of execute-unsafe now that (execute) is more versatile 2009-04-25 21:50:34 -05:00
Slava Pestov 2630c4a95f Add local caching 2009-04-25 20:33:52 -05:00
Slava Pestov 7aa65b5b5f Fixing new method dispatch implementation 2009-04-25 19:41:27 -05:00
Slava Pestov 3dc9fdf9db Fleshed out new dispatch code 2009-04-24 20:43:01 -05:00
Slava Pestov 8c5b0373a8 Working on new method dispatch system 2009-04-24 15:31:06 -05:00
Slava Pestov c2fe2a4fea Improve stack checker documentation 2009-04-23 03:48:32 -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 a3c0dd44a1 Revert "Remove method-declaration stuff from generic.standard since hints accomplishes the same thing"
This reverts commit 487b92074c.
2009-04-22 00:15:48 -05:00
Slava Pestov 487b92074c Remove method-declaration stuff from generic.standard since hints accomplishes the same thing 2009-04-21 23:19:13 -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 fd5ab25a09 Better handling of errors without file/line info 2009-04-13 17:19:32 -05:00
Slava Pestov e595576dc3 Make more words infer 2009-04-12 23:01:14 -05:00
Slava Pestov 890553b776 Fixing tests for method-sec removal 2009-04-06 05:22:28 -05:00
Slava Pestov 7bf0a46d3d Updating tests for method-spec removal 2009-04-06 04:16:39 -05:00
Slava Pestov 99b8400e56 Documentation updates 2009-04-06 03:00:46 -05:00
Slava Pestov 268abfcf2a Remove method-specs in favor of M\ 2009-04-06 02:59:59 -05:00
Slava Pestov 6c0986f8b2 Add definition mixin in definitions vocab to replace hard-coded union in ui.tools.operations; add ?execute to kernel to replace dup word? [ execute ] when calls in unicode.breaks and opengl 2009-03-26 21:27:45 -05:00
Slava Pestov 6f4e5b4bd9 Move synopsis* from definitions to see 2009-03-23 19:25:10 -05:00