Commit Graph

2245 Commits (aa47ba1df703c2e1fb2cad892b3458debf30a4a4)

Author SHA1 Message Date
Doug Coleman 2114b7efc5 factor: ALIEN: to alien: 2017-08-31 21:21:13 -05:00
Doug Coleman 5507c2b676 factor: [let to let[, [| to |[ 2017-08-31 21:21:13 -05:00
Doug Coleman 147ae66ab5 factor: SYNTAX: \foo 2017-08-31 21:21:13 -05:00
Doug Coleman fbb5f871c4 compiler: r: d: 2017-08-31 21:21:13 -05:00
Doug Coleman c436f6dbad factor: char: postpone: color: hexcolor: flexhexcolor: decimal: 2017-08-31 21:21:13 -05:00
Doug Coleman 2920d2ee71 factor: Rename [curry] -> currier, remove some [foo] words.
The [foo] convention is not descriptive and looks like special syntax.
2017-08-06 00:20:35 -05:00
Doug Coleman 15b13870ae peg.ebnf: Clean up EBNF: syntax.
The syntax for an EBNF parser is now ``EBNF: identifier string``. The
inline syntax went from [EBNF ...  EBNF] to EBNF[[ ]], EBNF[=[ ]=], etc.

<EBNF looked for a main word, but this functionality is just EBNF[[ ]]
now.
2017-08-05 22:23:57 -05:00
Doug Coleman 27b3c4cccf functors: FUNCTOR: ;FUNCTOR -> <FUNCTOR: ;FUNCTOR>
Functors contain nested definitions, much like <PRIVATE PRIVATE> blocks.
A new parser will be able to parse nested definitions unambigiously without
knowledge of the definition of <FUNCTOR: itself, which is not the case if
it looks like FUNCTOR: instead.
2017-08-05 20:41:19 -05:00
Björn Lindqvist 178701f117 compiler.crossref: stray char broke bootstrap, sorry 2017-07-05 11:56:03 +02:00
Björn Lindqvist aab79a655c compiler.*: more docs 2017-07-05 00:51:26 +02:00
Doug Coleman 01aab7c884 Factor: Rename <enum> to <enumerated> to not confuse with ENUM:s 2017-07-03 12:47:19 -07:00
Alexander Iljin 2ffa446f5b *-docs: replace double spaces with single spaces
Code examples and other places where multiple spaces were used to align
text were left intact.
2017-06-05 13:16:07 -07:00
Doug Coleman 72eaa9d466 compiler.tree.propagation.call-effect: I deleted an important method on compose on accident. 2017-06-02 23:31:35 -05:00
Doug Coleman 32710df620 core/basis: Rename tuples kernel:curry -> curried, kernel:compose -> composed.
Also rename the stack-checker curried -> curried-effect, composed -> composed-effect.
2017-06-02 17:39:20 -05:00
Doug Coleman e189954ecc core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota-tuple ... ; 2017-06-02 11:57:05 -05:00
Doug Coleman 42a7a8e572 compiler: Rename start -> start-compilation, finish -> finish-compilation.
These start/finish are cute names, but ``finish`` is pretty vague even in the same file in the ``deoptimize-with`` word.
2017-06-01 14:51:18 -05:00
Doug Coleman 7c7bb93c55 factor: Rename GENERIC# to GENERIC#:.
Fixes #1670.
2017-06-01 13:58:58 -05:00
John Benediktsson 3a6eefcc8e using ignore-errors instead of [ drop ] recover. 2017-02-09 15:50:33 -08:00
John Benediktsson a8b66764d5 compiler.utilities: move conjoin-at tests. 2017-02-08 11:16:00 -08:00
John Benediktsson f4ccfa0f71 sets: moving unique/conjoin/conjoin-at to compiler.utilities. 2017-02-07 18:54:24 -08:00
Jon Harper dc3ee923ca compiler.cfg: add peephole opt to never untag the input of ##bit-count. fixes #1764 2017-01-04 07:29:08 -08:00
Jon Harper ccbf1c1429 core layouts, remove hardcoded tag width
109aa88b06 showed the places were it was hardcoded
2017-01-04 07:29:08 -08:00
Björn Lindqvist aa5334420c stack-checker.dependencies: moving the add-depends-on-class word + new docs 2016-12-09 11:28:18 +01:00
Björn Lindqvist 1f3394af26 compiler.*: places where filter-word-defs can be used 2016-12-06 09:00:01 +01:00
Björn Lindqvist 5c7627a777 stack-checker.dependencies: removing the add-depends-on-<blah> words 2016-12-03 15:50:55 +01:00
Björn Lindqvist 4d5b83c3f5 compiler.cfg.builder.alien.tests: fix test that broke windows 2016-12-01 19:52:02 +01:00
Björn Lindqvist 75b6b12d0e compiler.cfg.*,compiler.tree.*: more docs and tests 2016-11-30 16:36:25 +01:00
Björn Lindqvist b42668ebeb compiler,stack-checker.dependencies: init-dependencies isn't needed 2016-11-30 07:29:10 +01:00
Björn Lindqvist e629f7b289 compiler.crossref: changes the way in which dependencies are stored on words
Previosly, they were stored in three sequences in the properties
"conditional-dependencies" "effect-dependencies" and
"definition-dependencies". It seem to better to store all three
types in one big property called "dependencies".
2016-11-30 07:29:10 +01:00
Björn Lindqvist d6eb6f2c76 compiler.crossref: better way to store the dependencies on words 2016-11-28 04:13:58 +01:00
Björn Lindqvist 14e8688112 stack-checker.dependencies: changes the names of the dependency constants
Now named using the +blah+ convention which we're using elsewhere for
symbolic constants.
2016-11-28 02:04:28 +01:00
Björn Lindqvist 99653bab91 compiler.crossref: better code for getting dependencies-of + tests 2016-11-28 02:04:28 +01:00
Björn Lindqvist 6c73529525 compiler.codegen: we don't need the init-fixup word 2016-11-28 02:04:28 +01:00
Björn Lindqvist 79dcce8f39 compiler.cfg.debugger: also print the instruction number
it's useful to see when debugging some compiler passes
2016-11-23 18:56:03 +01:00
Björn Lindqvist 00d4572e6c basis,extra: refactorings to use the ignore-error and ignore-error/f words 2016-11-18 23:41:36 +01:00
Björn Lindqvist b89a305ef7 compiler.cfg.linear-scan.assignment: correct representation used when spilling
Previously the rep-of word was used. But as the vregs representation can
change, you need to instead use the representation it uas as the spill
point.
2016-11-15 03:49:46 +01:00
Björn Lindqvist b1ac5ae7ca compiler.cfg.linear-scan: more tests 2016-11-15 03:49:46 +01:00
Björn Lindqvist ffef75f8a7 compiler.cfg.*: more docs 2016-11-15 03:49:46 +01:00
Björn Lindqvist 4d9367249b compiler.cfg.linear-scan.*: more tests 2016-11-15 03:49:46 +01:00
Björn Lindqvist 7053c72aa1 compiler.cfg.linear-scan.allocation.spilling: <linked-hash> 2016-11-15 03:49:46 +01:00
Björn Lindqvist e9f9903393 Revert "compiler.tree.dead-code.simple: undo e1b22e0af4 (#1513)"
This reverts commit 5a0e583279.
2016-11-11 13:18:10 +01:00
Björn Lindqvist 5a0e583279 compiler.tree.dead-code.simple: undo e1b22e0af4 (#1513)
This will likely cause some test failures. mac32 hopefully won't crash.
2016-11-11 00:21:35 +01:00
Björn Lindqvist eabf237863 compiler.tree.propagation.recursive: redoing
097b40ce41 (#1513)
2016-11-06 19:08:35 +01:00
Björn Lindqvist b31c0b8857 Docs: bunch of random doc updates 2016-10-31 11:46:39 +01:00
Björn Lindqvist 13cd2c4e75 compiler.tree.propagation.recursive: undoing 097b40ce41 (#1513) 2016-10-31 11:27:05 +01:00
Björn Lindqvist 65f1fbe90a compiler.tree.propagation.info: redoing a3be724f5a (#1513) 2016-10-31 07:29:00 +01:00
Alexander Iljin eeeb65d7d8 compiler.cfg.stacks-docs: fix a typo 2016-10-30 14:18:53 -07:00
Alexander Iljin 47cd2861fb compiler.tree.debugger-docs: fix a typo 2016-10-30 14:18:53 -07:00
Björn Lindqvist c74a669dad compiler.tree.propagation.info: undid a3be724f5a to see if it solves #1513 2016-10-30 19:00:38 +01:00
Björn Lindqvist 46105b62f6 VM: change callstack>array primitive so it doesn't reverse anymore
This fixes one part of the #452 bug.
2016-10-13 01:34:55 +02:00
Björn Lindqvist a102f7ad5d compiler.cfg.*: bunch of doc updates 2016-10-08 07:08:00 +02:00
Björn Lindqvist 9eab4b5652 VM: make visit_instruction_operands() skip over uninitialized blocks
It will crash otherwise when compacting the code heap.
2016-09-29 06:35:35 +02:00
Björn Lindqvist 9e4a520862 compiler.test: this word is not used 2016-09-29 03:29:14 +02:00
Björn Lindqvist 409cf9bd3e compiler.codegen: removing the insn-counts global
It created a histogram of instructins for debugging, but it is not so
useful...
2016-09-14 14:54:43 +02:00
Björn Lindqvist ab7e077b1d Docs: fixing docs & comments to work with new stack clearing 2016-09-12 02:11:51 +02:00
Björn Lindqvist 349f99661d compiler.*: Remove the scrubbing part of the GC maps
Instead of generating GC maps which describe which stack locations that
are uninitialized, we emit ##clear instructions for those locations in
front of ##call-gc instructions. This makes the context root scanning
much simpler because the GC can assume that all stack slots are
initialized. It also removes the compiler.cfg.stacks.vacant pass and
seem to reduce the image size slightly because many fewer GC maps needs
to be emitted.
2016-09-11 20:34:44 +02:00
Björn Lindqvist faaa898975 compiler.codegen.*: removing the init-gc-maps word 2016-09-09 18:57:57 +02:00
Björn Lindqvist 2f71e91dce compiler.cfg.stacks.*: rename trace-stack-state2 -> trace-stack-state 2016-09-09 08:06:02 +02:00
Björn Lindqvist 9decb6a91e compiler.cfg.*: better way to store the block height
It is stored as a height-state instance on the height slot of the
basic-block. It will make better analysis possible because you see how
much the height increased or decreased in the block.
2016-09-08 04:01:25 +02:00
Björn Lindqvist 670d2c344e compiler.cfg.stacks.*: new word local-loc>global, replacing untranslate-loc 2016-09-08 04:01:25 +02:00
Björn Lindqvist 6f06b51443 compiler.cfg.stacks.local: simplified code for getting kill locations 2016-09-08 04:01:25 +02:00
Björn Lindqvist c640e3b8c1 compiler.cfg.*: changing height-state from a 2-el array to a tuple
This way, it is a little easier to see what is going on in the local
analysis phase.
2016-09-08 04:01:25 +02:00
Björn Lindqvist 2edda80b5e compiler.cfg.*: removing the adjust-d word
inc-stack can be used in emit-call-block if we check if the block is a
kill block in end-local-analysis
2016-09-05 12:12:01 +02:00
Björn Lindqvist ee5c28f470 compiler.cfg.stacks.*: removing the adjust word which wasn't useful 2016-09-05 10:37:29 +02:00
Björn Lindqvist a36ac6e435 compiler.tree: these constructor words aren't needed 2016-09-04 06:23:50 +02:00
Björn Lindqvist 367bff6339 compiler.cfg.builder: simplification of the shuffling logic 2016-09-04 06:22:54 +02:00
Björn Lindqvist af7e4903a2 compiler.cfg.debugger: print -> write to not add stray newlines 2016-09-01 09:59:15 +02:00
Björn Lindqvist 26d53f9019 compiler.cfg.*: compiler doc updates 2016-09-01 02:16:30 +02:00
Björn Lindqvist f7542e95a9 compiler.cfg.stacks.finalize: only insert blocks if they aren't empty
Previously, a lot of empty blocks were added too.
2016-09-01 01:54:11 +02:00
Björn Lindqvist c26379ea7e compiler.cfg.debugger: better code for outputting using the formatting vocab 2016-08-30 04:04:21 +02:00
Björn Lindqvist b82ea14af0 sets,compiler.cfg.stacks.global: putting the refine word in sets 2016-08-30 02:34:37 +02:00
Björn Lindqvist 6c88577ee7 compiler.cfg.*: replacing the peek/replace/kill-sets with slots
So instead of storing the info in variables, it is stored in slots on
the basic-block tuple which is much nicer.
2016-08-29 12:07:47 +02:00
Björn Lindqvist e8e1811542 compiler.cfg.stacks.height: removing vocab
It was so small so better to put the words it contained in the vocabs
where they are used.
2016-08-26 11:06:17 +02:00
Björn Lindqvist f0834e7b36 compiler.prettyprint: new vocab for prettyprinting compiler types
The require-when ensures that the prettyprint methods are loaded when
both the compiler and prettyprint is loaded.
2016-08-15 15:16:41 +02:00
Björn Lindqvist a36c0cb5ac compiler.*: moving all words only relevant for testing to compiler.test 2016-08-12 15:13:51 +02:00
Björn Lindqvist 2a19e00ff3 compiler.cfg.test-words: vocab is unused so we can remove it 2016-08-12 14:06:19 +02:00
Björn Lindqvist 435a4e29b9 compiler.cfg.stacks.local: using compiler.cfg.debugger to ensure consistent prettyprint output 2016-08-12 13:55:10 +02:00
Björn Lindqvist ddc5ece757 alien.*: frontend varargs support! #1677
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g

: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
Björn Lindqvist 7ab3ebfdd5 compiler.cfg.builder.alien: simpler caller-stack-frame word 2016-08-10 21:34:37 +02:00
Björn Lindqvist 24a02a1c8f compiler.*: Backend implementation of varargs
It is turned off by default. Support for using it coming soon. :)
2016-08-08 12:02:19 +02:00
Björn Lindqvist a79309680c compiler.*, stack-checker.*: fixes to make the tests work on 32bit too 2016-08-05 16:44:19 +02:00
Björn Lindqvist 1b08ef3593 compiler.cfg.builder.*: fix for tests that broke on windows 2016-08-05 01:01:25 +02:00
Björn Lindqvist e67745aaba stack-checker.*: removes the in-d and out-d slots from the alien-node-params tuple
That data is already on the #alien-node tuple so it doesn't need to be
stored twice.
2016-08-04 20:30:58 +02:00
Björn Lindqvist 00d15b66a6 compiler.tests.alien: tests for varargs calls 2016-08-02 23:36:02 +02:00
Björn Lindqvist 5794ca6834 compiler.cfg.builder.alien.tests: fix for the test case i broke 2016-08-02 01:29:19 +02:00
Björn Lindqvist af62d33ba9 compiler.cfg.*: lots of new tests 2016-08-01 21:52:06 +02:00
Björn Lindqvist 2e332f73b5 compiler.*: new docs 2016-08-01 21:52:05 +02:00
Björn Lindqvist e359f3fca4 compiler.cfg.builder.alien.params: refactors the next-reg-param and reg-class-full? words 2016-08-01 21:52:05 +02:00
Björn Lindqvist 8aef16bed2 compiler.cfg.builder.alien.*: merge of with-param-regs and with-param-regs* 2016-08-01 21:52:05 +02:00
Alexander Iljin 2fd5654473 Add EOL at EOF for all authors.txt files for consistency
In some instances replaced CR/LF with LF.
2016-07-30 09:25:30 -07:00
Björn Lindqvist 75a3e191b2 compiler.*: a bunch of random doc additions 2016-06-21 23:15:20 +02:00
Björn Lindqvist 2fe26444aa compiler.cfg.builder.*: docs and tests 2016-05-24 17:22:38 +02:00
Björn Lindqvist 249483fc4f compiler.cfg.value-numbering.*: new docs 2016-05-24 17:21:27 +02:00
Björn Lindqvist 0cbd0552b0 bootstrap.image.primitives: resize-byte-array can also use integer-array-capacity 2016-05-24 14:20:46 +02:00
Björn Lindqvist e60d45a169 Docs: fixing help-lint failures 2016-05-20 13:35:08 +02:00
Björn Lindqvist 9f0cd740c8 compiler.constants: docs 2016-05-19 21:49:51 +02:00
Björn Lindqvist 27f9613694 compiler.cfg.value-numbering.comparisons: some duplicated words that can
be removed
2016-05-19 16:15:36 +02:00
Björn Lindqvist 3810889f91 compiler.cfg.value-numbering.graph: docs and test 2016-05-19 16:10:06 +02:00
Björn Lindqvist 1eaa151a3c compiler.cfg.value-numbering.comparisons: docs and tests 2016-05-19 14:04:23 +02:00
Björn Lindqvist 05de15bdc1 compiler.cfg.utilities: rewrite apply-passes as a macro
It makes for more detailed callstacks when profiling.
2016-05-18 23:49:03 +02:00