Joe Groff
|
4cd6ad840d
|
add tests from old row-polymorphism implementation to stack-checker unit tests
|
2010-03-07 19:13:41 -08:00 |
Joe Groff
|
1512ed12f3
|
further improve error message for invalid quotation inputs using a table display with the actual quotation effects determined so far
|
2010-03-07 18:40:58 -08:00 |
Joe Groff
|
ea4545e366
|
improve error message for invalid quotation inputs by referencing each declared-effect to its other references
|
2010-03-07 18:27:55 -08:00 |
Joe Groff
|
011a39457e
|
clear away some rebar
|
2010-03-07 18:11:44 -08:00 |
Joe Groff
|
6b9a79159d
|
tweak declared-effect to wrap the existing known instead of introducing a new value, so we don't confuse the compiler
|
2010-03-07 18:07:42 -08:00 |
Joe Groff
|
b14d59030f
|
add stack variable unification to M\ declared-effect infer-call*
|
2010-03-07 17:51:41 -08:00 |
Joe Groff
|
bbbda64ee7
|
add a with-effect-here combinator that determines the effect of a scoped subset of the stack checker
|
2010-03-07 16:54:25 -08:00 |
Joe Groff
|
63ad397cc1
|
tweak recursive call site checking to consider declared-effects equivalent to their wrapped values
|
2010-03-07 11:55:47 -08:00 |
Joe Groff
|
339cc8f04e
|
row polymorphism new approach: wrap polymorphic quotation inputs in a "declared-effect" value. M\ declared-effect infer-call* will then assert the effect of declared-effect values during the normal course of stack inference
|
2010-03-07 11:54:57 -08:00 |
Joe Groff
|
68dd644233
|
add unit test to show that polymorphic check breaks inference of inline recursive words
|
2010-03-06 12:28:09 -08:00 |
Joe Groff
|
9571bf6d4b
|
give terminating stack effects a pass in the polymorphic checker
|
2010-03-05 21:51:38 -08:00 |
Joe Groff
|
15e6a7fa5e
|
move error summaries for effect parsing errors to debugger vocab
|
2010-03-05 21:50:40 -08:00 |
Joe Groff
|
26e4bb818a
|
reuse infer-call* for polymorphic inference, which handles curried quotations. tests can pass with real "each" etc. now
|
2010-03-05 15:20:55 -08:00 |
Joe Groff
|
c9162c5e31
|
fix stack error in stack-checker.row-polymorphism
|
2010-03-05 14:34:50 -08:00 |
Joe Groff
|
4892bf1d47
|
refactor stack-checker slightly to fix circular dependency
|
2010-03-05 14:27:36 -08:00 |
Joe Groff
|
a3033e885a
|
make effect variables part of effect syntax, stored out of band in effect tuple
|
2010-03-05 13:30:10 -08:00 |
Joe Groff
|
1b1ccb71a4
|
make tests pass
|
2010-03-04 22:43:01 -08:00 |
Joe Groff
|
053ba583fc
|
improve error reporting
|
2010-03-04 21:51:49 -08:00 |
Joe Groff
|
31640ea9c6
|
nested scopes were messing up stack checker state
|
2010-03-04 20:15:26 -08:00 |
Joe Groff
|
23de281186
|
initial implementation of row-polymorphism check
|
2010-03-04 19:30:08 -08:00 |
Slava Pestov
|
af0ddd5985
|
Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams
|
2010-02-24 20:18:41 +13:00 |
Joe Groff
|
31a0d98e02
|
Merge branch 'master' into new-alien-pointers
Conflicts:
basis/alien/c-types/c-types.factor
basis/stack-checker/dependencies/dependencies.factor
|
2010-02-22 10:32:59 -08:00 |
Slava Pestov
|
23a1f0ed8c
|
alien: some code cleanups and fixes
|
2010-02-23 01:28:56 +13:00 |
Slava Pestov
|
eb3f8632dd
|
stack-checker.alien: now that C types are words, the compiler can add dependencies on them when compiling alien words. This triggers the necessary recompilation when C types are redefined
|
2010-02-22 21:32:41 +13:00 |
Joe Groff
|
c4cc70b92c
|
stack-checker.dependencies: extend c-type-word method for depends-on-c-type to all words (so it works for non-c-types like void)
|
2010-02-21 23:13:12 -08:00 |
Joe Groff
|
310b3df2ec
|
stack-checker.dependencies: add method for pointers to depends-on-c-type
|
2010-02-21 22:31:32 -08:00 |
Slava Pestov
|
2c34ecbdb5
|
stack-checker.dependencies: add depends-on-c-type
|
2010-02-22 19:25:09 +13:00 |
Slava Pestov
|
c5a62b14e7
|
stack-checker.dependencies: fix load error
|
2010-02-20 12:08:14 +13: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
|
60296be964
|
typed: only unbox final classes. Fixes bug reported by littledan
|
2010-02-18 02:39:12 +13:00 |
Slava Pestov
|
f01487eb83
|
A few documentation fixes
|
2010-02-17 00:05:36 +13:00 |
Slava Pestov
|
747974f4ae
|
vm: nuke unused (string>float) primitive
|
2010-02-08 08:16:56 +13:00 |
Slava Pestov
|
26cae00eeb
|
Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils
|
2010-02-03 23:11:32 +13:00 |
Slava Pestov
|
0b278adb5a
|
Test fixes
|
2010-02-03 23:11:31 +13:00 |
Slava Pestov
|
7de81976a5
|
Revert "macros: macro body is now defined in its own subword, for compile-time stack effect checking"
This reverts commit 24de7c52f0c3f21cfcdb80235cac7296b0401c85.
|
2010-02-03 23:11:29 +13:00 |
Slava Pestov
|
3259ef4bec
|
vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units
|
2010-02-03 23:11:28 +13:00 |
Slava Pestov
|
b7fde7af27
|
macros: macro body is now defined in its own subword, for compile-time stack effect checking
|
2010-02-03 23:11:22 +13:00 |
Brad Christensen
|
9b9322ea1e
|
A number of documentation fixes and cleanup.
|
2010-02-03 00:05:03 -07:00 |
Slava Pestov
|
2c63161c84
|
stack-checker.dependencies: make conditional dependencies more robust
|
2010-01-31 01:55:35 +13:00 |
Slava Pestov
|
ea9dbf2ea1
|
compiler.crossref: more space-efficient storage of dependency information
|
2010-01-30 09:29:02 +13:00 |
Slava Pestov
|
fa4f7d8ccf
|
Clean up some code in preparation for a refactoring
|
2010-01-30 09:29:02 +13:00 |
Slava Pestov
|
c438e84bd0
|
compiler.crossref: add next-method dependency
|
2010-01-30 09:29:01 +13:00 |
Slava Pestov
|
6cc68e889e
|
stack-checker.dependencies: add tuple layout dependencies for use by 'new' and 'boa'
|
2010-01-30 09:29:00 +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
|
c058343167
|
Add some utility words to stack-checker.dependencies in preparation for a refactoring
|
2010-01-30 09:28:59 +13:00 |
Slava Pestov
|
26f311279c
|
Re-defining a tuple class now invalidates cached quotation stack effects
|
2010-01-30 09:28:59 +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
|
817bc02392
|
compiler.tree.propagation.call-effect: clear out dependency tracking variables to ensure that infer calls made by call( as part of the compile process doesn't pollute the dependencies of the word being compiled
|
2010-01-30 09:28:57 +13:00 |
Slava Pestov
|
f031a97084
|
Work in progress: record constant-folds of predicate words, and call-next-method invocations, in the same way that method inlining are recorded, for greater recompilation accuracy
|
2010-01-30 09:28:56 +13:00 |
Doug Coleman
|
bb2f455747
|
Save images to a temporary file first, then call MOVE_FILE to avoid writing incomplete and truncated images.
|
2010-01-22 12:59:20 -06:00 |