Commit Graph

224 Commits (aa47ba1df703c2e1fb2cad892b3458debf30a4a4)

Author SHA1 Message Date
Doug Coleman fdb5383f19 Merge remote-tracking branch 'origin/master' into modern-harvey3 2018-08-24 16:49:34 -05:00
Alexander Iljin 0637557cca *-docs: remove extra space character at the end of paragraghs 2018-08-21 10:45:52 -07:00
Doug Coleman 4bcae2590c factor: Rename all #foo words except # so # can be a sigil. 2018-08-10 13:15:25 -05:00
Doug Coleman 924b434336 Revert "factor: vocab:word -> vocab::word"
This reverts commit 354f1cbd34.
2018-08-02 08:21:52 -04:00
Doug Coleman 7730fc5c64 Merge remote-tracking branch 'origin/master' into modern-harvey2 2018-08-02 07:57:42 -04:00
Doug Coleman 4e9d383fe5 docs: Fix help-lint-all mistakes. 2018-07-07 01:13:19 -05:00
Doug Coleman 354f1cbd34 factor: vocab:word -> vocab::word 2017-12-29 00:43:25 -08:00
Doug Coleman 815591e10c factor: m: { a b } -> M\\ a b 2017-10-12 21:22:41 -05:00
Doug Coleman cada003d7f factor: Rename ``M\ array generic`` to ``m: { array generic }``.
The problem with M\ is that it has an arity of 1 where we need it to have arity 2. Also, for multimethods, the \ disables parsing of the array that follows, e.g. ``M\ { string string } multimethod-name`` parses as ``M\ {`` and leaves the rest unparsed. This is obviously wrong.

An alternative syntax that should be implement and looks ok is ``m{ array generic }``
2017-10-01 09:51:31 -05:00
Doug Coleman dccba5f9c3 compiler: d: and r: had too many spaces. 2017-08-31 21:21:14 -05:00
Doug Coleman 15a7484b6f factor: STRING: foo ; to CONSTANT: foo [[ ]] 2017-08-31 21:21:14 -05:00
Doug Coleman 5507c2b676 factor: [let to let[, [| to |[ 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
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 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
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 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 367bff6339 compiler.cfg.builder: simplification of the shuffling logic 2016-09-04 06:22:54 +02:00
Björn Lindqvist 26d53f9019 compiler.cfg.*: compiler doc updates 2016-09-01 02:16:30 +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 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
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 b8e0d5e278 compiler.cfg.builder.*: the when* checks aren't needed 2016-04-30 09:28:30 +02:00
Björn Lindqvist 3e14ceafe2 compiler.*: more compiler tests 2016-04-22 12:44:25 +02:00
Björn Lindqvist 4a472d7882 compiler.cfg.builder.blocks: return the slots, they are absolutely
needed for bootstrap
2016-03-16 14:08:49 +01:00
Björn Lindqvist f906f1c282 compiler.cfg.*: the make-kill-block word is not needed 2016-03-16 12:26:03 +01:00
Björn Lindqvist 5ca571e304 compiler.cfg.builder.blocks: some cleanup 2016-03-16 11:48:31 +01:00
Björn Lindqvist 3a9b297b3b compiler.cfg.*: better stack effect for end-stack-analysis 2016-03-16 10:53:33 +01:00
Björn Lindqvist b27634bff7 compiler.cfg.builder.blocks: removes assignments to basic-block variable
Now it isn't used at all in the cfg creation step.
2016-03-09 23:24:43 +01:00
Björn Lindqvist 9df955e199 compiler.cfg.*: big changes which removes the last basic-block uses
All intrinsic code generating words signatures are changed from ( node
-- ) to ( block node -- block' ) so the current block is now always
passed on the stack.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 482998974b compiler.cfg.*: more refactoring to remove basic-block get:s
Now almost all words pass around the current basic block on the
stack. Left is updating all intrinsics.
2016-03-09 23:24:42 +01:00
Björn Lindqvist f9c6d7cc43 compiler.cfg.*: changes to remove basic-block variable
The emit-node generics signature is changed to ( block node -- block' )
so that it always returns the next block to operate on. Signature for a
lot of related words are changed similarily. Now there is only a few
basic-block usages left.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 07adc2ecae compiler.cfg.*: changed generic emit-node to take the current block as
stack parameter

The idea is to eventually completely remove the basic-block dynamic
variable from cfg construction.
2016-03-09 23:24:42 +01:00
John Benediktsson 3affad7681 docs: using $maybe. 2015-12-11 17:05:45 -08:00
Björn Lindqvist 6a2c36f5ec compiler.cfg.builder.blocks: help-lint fix 2015-11-23 16:32:01 +01:00
Björn Lindqvist 63fd4d25cf compiler.cfg.*: more fixes to pass basic-block on the stack than in a
dynamic variable
2015-11-22 01:06:11 +01:00
Björn Lindqvist 1421779c9e compiler.cfg.*: refactors words to take a block parameter instead of
using the basic-block dynamic variable

the idea is to make the code easier to follow by limiting the use of
dynamic variables
2015-11-22 00:37:34 +01:00