Daniel Ehrenberg
|
7599841221
|
Merge branch 'master' of git://factorcode.org/git/factor into propagation
|
2010-06-23 12:17:24 -04:00 |
Slava Pestov
|
1014b62ee7
|
stack-checker.row-polymorphism: minor cleanup
|
2010-06-22 22:35:55 -04:00 |
Daniel Ehrenberg
|
83327635f3
|
Fixing one of the bad bugs, in row-polymorphism
|
2010-06-22 17:31:21 -04:00 |
Slava Pestov
|
5ae75af6a8
|
Clarify documentation for resize-array, resize-byte-array, resize-string words, and remove flushable declaration since technically they don't satisfy the flushable contract (reported by Daniel Ehrenberg)
|
2010-06-22 15:48:48 -04:00 |
Daniel Ehrenberg
|
2c8897c56b
|
Merge branch 'master' of git://factorcode.org/git/factor into propagation
|
2010-06-22 14:47:57 -04:00 |
Slava Pestov
|
75d2635c05
|
Merge branch 'master' of git://github.com/erg/factor
|
2010-06-22 04:13:39 -04:00 |
Doug Coleman
|
0edadff45f
|
remove system-micros word from factor src tree
|
2010-06-22 01:49:11 -05:00 |
Joe Groff
|
bcf6d83a8f
|
stack-checker.errors.prettyprint: refer to unbalanced-branches quotation in singular when there's only one
|
2010-06-18 15:36:03 -07:00 |
Daniel Ehrenberg
|
b362fe25b1
|
Fixing infinite loop in loading benchmark.fib4
|
2010-06-15 13:53:40 -04:00 |
Daniel Ehrenberg
|
30cfbc8512
|
Merge branch 'master' into propagation
|
2010-06-15 13:26:01 -04:00 |
Slava Pestov
|
7c85fdc1e5
|
stack-checker.alien: callback and assembly quotations can be callables
|
2010-05-19 00:31:46 -04:00 |
Slava Pestov
|
1834241e5a
|
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
|
2010-05-18 18:46:31 -04:00 |
Slava Pestov
|
5b48cd2a63
|
FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing
|
2010-05-16 03:43:23 -04:00 |
Daniel Ehrenberg
|
fbaa8d153f
|
Inlining no-method when a generic word has no method
|
2010-05-14 20:28:09 -05:00 |
Daniel Ehrenberg
|
05290ee1b1
|
Merge branch 'master' of git://factorcode.org/git/factor into propagation
Conflicts:
basis/compiler/tree/propagation/propagation-tests.factor
|
2010-05-14 18:59:39 -05:00 |
Slava Pestov
|
42b0d456cd
|
Refactor x86-32 stack cleanup logic
|
2010-05-12 02:09:11 -04:00 |
Slava Pestov
|
7316d41226
|
FFI rewrite part 2: use ##peek and ##replace instructions to access stack
|
2010-05-09 23:26:43 -04:00 |
Daniel Ehrenberg
|
4d5b7fe883
|
Fixing bug in dependency tracking for guarded method inlining
|
2010-05-04 16:47:00 -05:00 |
Daniel Ehrenberg
|
0f0b56f1ef
|
Adding dependency checking and proper handing of dispatch# to the new method inlining
|
2010-05-04 16:46:38 -05:00 |
Slava Pestov
|
a9ccfa8f05
|
strings: move string-nth primitive out of the VM and into the library
|
2010-05-03 17:34:12 -04:00 |
Doug Coleman
|
366ce2896f
|
Add callstack-bounds primitive to vm/ for use with javascriptcore library
|
2010-04-19 20:08:15 -05:00 |
Daniel Ehrenberg
|
aa6158b366
|
Changing require-when usages to the new syntax for require-when
|
2010-04-18 14:29:24 -05:00 |
Slava Pestov
|
288090d993
|
math.parser: expose a format-float primitive for use by formatting vocabulary
|
2010-04-13 21:21:28 -07:00 |
Slava Pestov
|
572b71238f
|
stack-checker: calling 'dispatch' with unbalanced branches generated an error message that erroneously talked about 'if'
|
2010-04-13 05:24:49 -07:00 |
Slava Pestov
|
ed40eb4239
|
cpu.x86.32: cleanups and fixes to make fastcall and thiscall callbacks work
|
2010-04-10 16:54:17 -07:00 |
Slava Pestov
|
0faa3bcf4a
|
vm: pre-allocate context alien
|
2010-04-02 00:02:21 -04:00 |
Slava Pestov
|
1b271f8202
|
locals: remove some dead code
|
2010-03-30 21:56:51 -04:00 |
Slava Pestov
|
fb2ecab614
|
threads: delete old contexts immediately instead of handing them off to a 'context recycler' thread
|
2010-03-30 21:47:48 -04:00 |
Slava Pestov
|
c7142e4281
|
threads: use context-switching primitives
|
2010-03-29 20:40:17 -04:00 |
Slava Pestov
|
99771eb689
|
bootstrap.compiler: fix joint dependencies declared here
|
2010-03-29 13:14:26 -04:00 |
Slava Pestov
|
b6dfdcb909
|
set-context and start-context primitives can now pass parameters around
|
2010-03-27 08:13:57 -04:00 |
Slava Pestov
|
e6b9e54454
|
stack-checker.known-words: fix load error
|
2010-03-27 03:35:01 -04:00 |
Slava Pestov
|
1717b8d0f7
|
Implement start-context and set-context primitives
|
2010-03-27 02:56:11 -04:00 |
Slava Pestov
|
560c119cd2
|
vm: actually use context callstacks when running code
|
2010-03-26 22:44:43 -04:00 |
Slava Pestov
|
6aee6b3adc
|
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
|
2010-03-18 22:06:00 +13:00 |
Slava Pestov
|
fb06bbcae7
|
stack-checker.errors.prettyprint: give it some smart quotes lovin'
|
2010-03-17 19:20:28 +13: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
|
8687a7e283
|
Merge branch 'master' of git://factorcode.org/git/factor into row-polymorphism
|
2010-03-12 14:36:13 -08:00 |
Joe Groff
|
dfbe1211f7
|
pre-chew the bite-sized morsels of stack-checker.row-polymorphism so they're easy for old people to digest
|
2010-03-11 14:09:18 -08:00 |
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 |