Slava Pestov
|
16ddd015d3
|
typed: forgetting a final class would throw an error while recompiling typed words depending on it
|
2010-03-12 10:22:35 +13:00 |
Joe Groff
|
26ff757de4
|
carve the tough, gamey steak of stack-checker.polymorphism into chewable morsels
|
2010-03-11 00:53:40 -08:00 |
Joe Groff
|
b9bced9a5e
|
update docs for unbalanced-branches-error
|
2010-03-09 18:42:10 -08:00 |
Joe Groff
|
34b29af245
|
non-polymorphic input parameter check was too strict: wouldn't allow ( x -- ) for ( x x -- x ), for example
|
2010-03-09 15:57:00 -08: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 |
Joe Groff
|
3abf1f1ef7
|
stack-checker.row-polymorphism: modify check-variables to enforce non-polymorphic stack effects
|
2010-03-08 19:44:01 -08:00 |
Joe Groff
|
21aa4632c8
|
refactor stack-checker.row-polymorphism a little
|
2010-03-08 19:32:25 -08:00 |
Joe Groff
|
5597ee691f
|
add documentation about stack effect variable syntax and the effect on the stack checker
|
2010-03-08 17:17:47 -08:00 |
Joe Groff
|
8159a19187
|
combine unbalanced-branches-error and invalid-quotation-input into one error
|
2010-03-07 22:23:24 -08:00 |
Joe Groff
|
9e6f84bc24
|
declare effect on inputs to infer-if in non-literal case, so we get a better error than "unbalanced drop call/nip call"
|
2010-03-07 21:37:24 -08:00 |
Joe Groff
|
6689113519
|
unify inner-d-index when unifying branches; close a few other leaks where meta-d could have been popped without updating inner-d-index
|
2010-03-07 20:44:50 -08:00 |
Joe Groff
|
66687d6b21
|
reuse @ and _ from fry in placeholders for invalid-quotation-input errors rather than making our own redundant placeholder symbols
|
2010-03-07 20:08:35 -08:00 |
Joe Groff
|
f353b13bbc
|
add unit test from quotation that fails to infer during bootstrap.compiler
|
2010-03-07 20:07:30 -08:00 |
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 |
Daniel Ehrenberg
|
7074979745
|
Moving new-sets to sets
|
2010-02-26 16:01:01 -05: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 |
Slava Pestov
|
00328c85e0
|
vm: remove vm-ptr primitive
|
2010-01-20 17:06:49 +13:00 |
Slava Pestov
|
580cbe75c6
|
Make stack-checker throw proper errors for primitives that do not have static stack effects
|
2010-01-20 16:37:58 +13:00 |
Slava Pestov
|
5606825e8b
|
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
|
2010-01-19 20:00:33 +13:00 |
Slava Pestov
|
637a77c018
|
Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types
|
2010-01-18 20:54:00 +13:00 |
Slava Pestov
|
7f7e1e4e1d
|
Help lint fixes for iota
|
2010-01-15 17:04:14 +13:00 |
Slava Pestov
|
7155447aed
|
stack-checker: add inputs and outputs words, since 'infer (in>>|out>>) length' was coming up a lot
|
2010-01-15 08:04:14 +13:00 |
Slava Pestov
|
e4c53f67b0
|
stack-checker.errors.prettyprint: fix prettyprinting of unbalanced-branches-error
|
2010-01-15 07:51:36 +13:00 |
Slava Pestov
|
df4fb4a3ee
|
Removing integers-as-sequences
|
2010-01-15 07:15:33 +13:00 |
Slava Pestov
|
1c10196c43
|
Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side
|
2010-01-13 18:08:18 +13:00 |
Slava Pestov
|
e8892d9cde
|
stack-checker: fix unit test
|
2010-01-07 17:40:23 +13:00 |
Slava Pestov
|
235f3238f5
|
Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S
|
2010-01-07 17:39:22 +13:00 |
Slava Pestov
|
ba5b90e063
|
Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
|
2010-01-03 01:11:51 +13:00 |
Slava Pestov
|
0612bc6177
|
Factor source files should not be executable
|
2009-11-21 17:50:43 -06:00 |
Slava Pestov
|
1d16152057
|
stack-checker: fix error message printed when do-primitive is inferred
|
2009-11-19 19:43:41 -06:00 |
Doug Coleman
|
6f7ec206a1
|
rename millis to system-millis, micros to system-micros, add nano-count
|
2009-11-18 15:58:48 -06:00 |
Doug Coleman
|
b4206f5252
|
initial commit to nanos branch to replace micros
|
2009-11-18 04:20:05 -06:00 |
Slava Pestov
|
ea36783fb3
|
Fix bootstrap
|
2009-11-13 07:55:47 -06:00 |
Slava Pestov
|
2afd7ce244
|
Faster identity-hashcode primitive; fast path now opencoded by the compiler
|
2009-11-11 02:27:19 -06:00 |
Slava Pestov
|
064c00f78d
|
New identity-hashcode primitive
|
2009-11-10 21:18:54 -06:00 |
Slava Pestov
|
aed9dcff53
|
stack-checker: fix help lint
|
2009-11-10 19:19:59 -06:00 |
Slava Pestov
|
425e9d0dde
|
Fix some test failures
|
2009-11-10 16:48:06 -06:00 |
Slava Pestov
|
473cc7db4a
|
stack-checker: tighten some screws in error reporting
|
2009-11-09 00:17:24 -06:00 |
Slava Pestov
|
cd2e226afa
|
stack-checker: split off stack-checker.dependencies from stack-checker.state
|
2009-11-08 20:34:46 -06:00 |
Slava Pestov
|
5d79450d9d
|
Use a more compact representation for "compiled-uses" and "compiled-generic-uses" word-props; reduces image size
|
2009-11-08 06:08:04 -06:00 |
Slava Pestov
|
1d4ec1959d
|
stack-checker.known-words: fix declared output type for dispatch-stats primitive
|
2009-11-06 04:36:46 -06:00 |
Slava Pestov
|
ba31abb301
|
Fix some test failures
|
2009-11-06 02:35:43 -06:00 |
Joe Groff
|
00ce8b6a33
|
deprimitivize tuck and put it to pasture
|
2009-11-05 22:47:05 -06:00 |
Slava Pestov
|
4061951d1c
|
vm: simpler object space implementation. begin-scan/next-object/end-scan primitives replaced by a single all-instances primitive
|
2009-11-05 21:49:03 -06:00 |
Slava Pestov
|
47df580081
|
tools.time: overhaul
|
2009-11-05 01:07:59 -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 |
Slava Pestov
|
37abac7407
|
Merge branch 'master' into new_gc
|
2009-10-30 21:04:37 -05:00 |
Joe Groff
|
32450a0575
|
add missing USING: to stack-checker tests
|
2009-10-30 20:49:09 -05:00 |
Slava Pestov
|
6f9336c29e
|
Merge branch 'master' into new_gc
|
2009-10-30 03:03:05 -05:00 |
Joe Groff
|
2ecf3fb568
|
fix load errors from bootstrapping
|
2009-10-28 12:51:03 -05:00 |
Joe Groff
|
935c0797c3
|
update existing code for [let change
|
2009-10-27 22:05:37 -05:00 |
Slava Pestov
|
d95a98eb9c
|
vm: add primitives for getting at GC events, data-room and code-room primitives now return structs instead of arrays
|
2009-10-27 03:32:28 -05:00 |