Keita Haga
|
c04fbe892d
|
stack-checker: add a sample output in the last example of inference-recursive-combinators article
|
2011-01-23 22:48:41 +09:00 |
Slava Pestov
|
f27080498d
|
Remove bignum>float VM primitive, and use bignum/f to implement >float on bignums instead, for a slight accuracy gain. Also, bignum/f now has a more efficient post-scaling algorithm to break the circular dependency on bignum>float
|
2010-11-24 22:41:15 -08:00 |
Slava Pestov
|
3323284db4
|
stack-checker.alien: get a bit more inlining going with callbacks, to expose another bug
|
2010-09-05 21:27:39 -07:00 |
Slava Pestov
|
d2cf2d8f92
|
Rename get-fpu-state entry point to fpu-state, and fix stack-checker unit tests
|
2010-09-04 12:58:59 -07:00 |
Slava Pestov
|
1985705413
|
compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths
|
2010-08-13 23:59:19 -07:00 |
Slava Pestov
|
723d780703
|
stack-checker.alien: generate a declaration for input parameter types
|
2010-07-30 15:50:05 -04:00 |
Slava Pestov
|
fd1aad71bd
|
combinators: make the behavior of 'case' consistent between the optimized and unoptimized forms
|
2010-07-30 14:21:30 -04: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
|
168dd1f825
|
FFI rewrite part 7: compile callback bodies with the optimizing compiler
|
2010-07-28 00:49:26 -04:00 |
Slava Pestov
|
e2ceb11337
|
stack-checker: calling 'boa' on a non-tuple would compile as a no-op rather than an error (reported by Joe Groff); clean up some other error reporting code too
|
2010-07-17 15:57:44 -04:00 |
Slava Pestov
|
ae2c2909af
|
Revert guarded method inlining
This reverts commit 44a835e3fc , reversing
changes made to d45926bda0 .
|
2010-06-24 12:35:21 -04:00 |
Slava Pestov
|
e07ce4d220
|
stack-checker.dependencies: Oops
|
2010-06-24 05:27:01 -04:00 |
Slava Pestov
|
97eb276c48
|
stack-checker.dependencies: fix error thrown if depends-on-single-method parameters are no longer valid
|
2010-06-24 04:28:40 -04:00 |
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 |