preForth.git
2 years agoFix a bug where hash table entry could be reused between Macro and end-macmro tokenizer_hash_table1
Nick Downing [Mon, 25 Apr 2022 04:50:47 +0000 (14:50 +1000)]
Fix a bug where hash table entry could be reused between Macro and end-macmro

2 years agoIn Makefile, replace accidental direct invocation of gforth with $(HOSTFORTH)
Nick Downing [Mon, 25 Apr 2022 03:03:41 +0000 (13:03 +1000)]
In Makefile, replace accidental direct invocation of gforth with $(HOSTFORTH)

2 years agoModify tokenizer to use a 1024-entry symbol table with closed hashing by CRC10 tokenizer_hash_table
Nick Downing [Sun, 24 Apr 2022 16:01:36 +0000 (02:01 +1000)]
Modify tokenizer to use a 1024-entry symbol table with closed hashing by CRC10

2 years agoAdd CRC10/ATM (bit reversed) table generator and evaluator
Nick Downing [Sun, 24 Apr 2022 13:55:27 +0000 (23:55 +1000)]
Add CRC10/ATM (bit reversed) table generator and evaluator

2 years agoImplement DO/?DO/LOOP, as experimental ?DO didn't have a correct companion LOOP self_hosting_tokenizer
Nick Downing [Sun, 24 Apr 2022 13:53:43 +0000 (23:53 +1000)]
Implement DO/?DO/LOOP, as experimental ?DO didn't have a correct companion LOOP

2 years agoImplement a new preForth/seedForth token eemit which is like emit but writes to stder...
Nick Downing [Sun, 24 Apr 2022 09:58:33 +0000 (19:58 +1000)]
Implement a new preForth/seedForth token eemit which is like emit but writes to stderr, fix self-hosted tokenizer termination issue (was debugged with eemit)

2 years agoImplement eot token similar to the old bye token (so we can compile bye token)
Nick Downing [Sun, 24 Apr 2022 08:51:36 +0000 (18:51 +1000)]
Implement eot token similar to the old bye token (so we can compile bye token)

2 years agoRemap tokens so that EOT is no longer a seedForth token, detect EOT everywhere
Nick Downing [Sun, 24 Apr 2022 04:39:12 +0000 (14:39 +1000)]
Remap tokens so that EOT is no longer a seedForth token, detect EOT everywhere

2 years agoMake ./seedForth-tokenizer self hosting (works, but hangs after tokenizing)
Nick Downing [Sat, 23 Apr 2022 16:35:38 +0000 (02:35 +1000)]
Make ./seedForth-tokenizer self hosting (works, but hangs after tokenizing)

2 years agoSplit out control flow words and a few others from hi.forth into runtime.forth
Nick Downing [Sat, 23 Apr 2022 15:35:35 +0000 (01:35 +1000)]
Split out control flow words and a few others from hi.forth into runtime.forth

2 years agoRationalize how echo is handled during the seedForthInteractive loading phases
Nick Downing [Sat, 23 Apr 2022 15:17:50 +0000 (01:17 +1000)]
Rationalize how echo is handled during the seedForthInteractive loading phases

2 years agoMove most code from seedForthInteractive.seedsource into seedForthRuntime.seedsource...
Nick Downing [Sat, 23 Apr 2022 14:55:37 +0000 (00:55 +1000)]
Move most code from seedForthInteractive.seedsource into seedForthRuntime.seedsource, so that we can run textual forth code without the tests or the banner

2 years agoRationalize seedForth-tokenize.fs so that seedsource no longer has to be wrapped...
Nick Downing [Sat, 23 Apr 2022 14:09:42 +0000 (00:09 +1000)]
Rationalize seedForth-tokenize.fs so that seedsource no longer has to be wrapped with PROGRAM / END, also removes automatic bye token that was generated by END

2 years agoMake key? use fdin instead of always STDIN_FILENO, and use poll() not ioctl()
Nick Downing [Sat, 23 Apr 2022 05:52:36 +0000 (15:52 +1000)]
Make key? use fdin instead of always STDIN_FILENO, and use poll() not ioctl()

2 years agoImplement built-in "cat" functionality in preForth/seedForth for reading input
Nick Downing [Sat, 23 Apr 2022 05:08:37 +0000 (15:08 +1000)]
Implement built-in "cat" functionality in preForth/seedForth for reading input

2 years agoRemove duplicated code in seedForth-i386.pre, take from preForth-i386-rts.pre i386_improvements
Nick Downing [Fri, 22 Apr 2022 16:55:09 +0000 (02:55 +1000)]
Remove duplicated code in seedForth-i386.pre, take from preForth-i386-rts.pre

2 years agoSplit seedforth-i386.pre further into header and body portions
Nick Downing [Fri, 22 Apr 2022 16:44:02 +0000 (02:44 +1000)]
Split seedforth-i386.pre further into header and body portions

2 years agoSplit seedForth-i386.pre into machine dependent/less machine dependent portions
Nick Downing [Fri, 22 Apr 2022 16:36:05 +0000 (02:36 +1000)]
Split seedForth-i386.pre into machine dependent/less machine dependent portions

2 years agoRationalize the sections in assembly output, make code be compiled into bss rather...
Nick Downing [Fri, 22 Apr 2022 16:08:40 +0000 (02:08 +1000)]
Rationalize the sections in assembly output, make code be compiled into bss rather than text section which avoids the need to call mprotect(), rename things

2 years agoRationalize how cr is emitted in generated preForth code, make DB/DD lowercase
Nick Downing [Fri, 22 Apr 2022 15:16:09 +0000 (01:16 +1000)]
Rationalize how cr is emitted in generated preForth code, make DB/DD lowercase

2 years agoUse tabs in preForth-i386-rts.pre and seedForth-i386.pre, improve consistency
Nick Downing [Fri, 22 Apr 2022 04:27:56 +0000 (14:27 +1000)]
Use tabs in preForth-i386-rts.pre and seedForth-i386.pre, improve consistency

2 years agoRemove redundant stuff in the preForth-generated asm code
Nick Downing [Fri, 22 Apr 2022 03:47:16 +0000 (13:47 +1000)]
Remove redundant stuff in the preForth-generated asm code

2 years agoRemove .$(UNIXFLAVOUR) extension and file copies in favour of ifeq (GNU make)
Nick Downing [Fri, 22 Apr 2022 04:32:33 +0000 (14:32 +1000)]
Remove .$(UNIXFLAVOUR) extension and file copies in favour of ifeq (GNU make)

2 years agoAdd .gitignore, rationalize make clean, remove a gforth warning in tokenizer
Nick Downing [Fri, 22 Apr 2022 03:40:34 +0000 (13:40 +1000)]
Add .gitignore, rationalize make clean, remove a gforth warning in tokenizer

4 years agoUse LDEMULATION for modern Linux
Ulrich Hoffmann [Sat, 28 Mar 2020 14:16:19 +0000 (15:16 +0100)]
Use LDEMULATION for modern Linux

4 years agoUpdate docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 18:12:59 +0000 (19:12 +0100)]
Update docker support

4 years agoCleanup documentation and startup file
Ulrich Hoffmann [Fri, 31 Jan 2020 13:49:57 +0000 (14:49 +0100)]
Cleanup documentation and startup file

4 years agoAdapt docker support
Ulrich Hoffmann [Fri, 31 Jan 2020 13:19:37 +0000 (14:19 +0100)]
Adapt docker support

4 years agoUse new tokenizer
Ulrich Hoffmann [Fri, 31 Jan 2020 13:12:10 +0000 (14:12 +0100)]
Use new tokenizer

4 years agoFocus just on i386 platform
Ulrich Hoffmann [Fri, 31 Jan 2020 12:56:21 +0000 (13:56 +0100)]
Focus just on i386 platform

4 years agoRemove side platforms and dialects
Ulrich Hoffmann [Fri, 31 Jan 2020 12:47:01 +0000 (13:47 +0100)]
Remove side platforms and dialects

4 years agoRemove uneccesary definitions
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:42 +0000 (13:07 +0100)]
Remove uneccesary definitions

4 years agoUpdate TODO
Ulrich Hoffmann [Thu, 2 Jan 2020 12:07:20 +0000 (13:07 +0100)]
Update TODO

4 years agoAdd save and empty to tokenized seedForth (and Tokenizer). Surround Test-Code by...
Ulrich Hoffmann [Wed, 1 Jan 2020 20:15:19 +0000 (21:15 +0100)]
Add save and empty to tokenized seedForth (and Tokenizer). Surround Test-Code by start-tests and end-tests in order to remove temporary definitions

4 years agoAdd save and empty
Ulrich Hoffmann [Mon, 30 Dec 2019 21:31:37 +0000 (22:31 +0100)]
Add save and empty

4 years agoUpdate TODO
Ulrich Hoffmann [Mon, 30 Dec 2019 20:49:20 +0000 (21:49 +0100)]
Update TODO

4 years agoUpdate TODO
Ulrich Hoffmann [Mon, 30 Dec 2019 20:20:17 +0000 (21:20 +0100)]
Update TODO

4 years agoAdd abort, abort" and too probably too simple DO LOOP I unloop,
Ulrich Hoffmann [Mon, 23 Dec 2019 14:32:19 +0000 (15:32 +0100)]
Add abort, abort" and too probably too simple DO LOOP I unloop,

4 years agoAdd refill, conditional compilation, and verbose header-removal
Ulrich Hoffmann [Fri, 20 Dec 2019 17:14:44 +0000 (18:14 +0100)]
Add refill, conditional compilation, and verbose header-removal

4 years agoAdd usleep, timeout in multitasker, interactive decompiler, dump
Ulrich Hoffmann [Fri, 20 Dec 2019 11:07:57 +0000 (12:07 +0100)]
Add usleep, timeout in multitasker, interactive decompiler, dump

4 years agoClean up
Ulrich Hoffmann [Sat, 14 Dec 2019 15:44:29 +0000 (16:44 +0100)]
Clean up

4 years agoSimplify kernel: Remove CATCH and THROW, leave INTERPRETER loop now by executing...
Ulrich Hoffmann [Sat, 14 Dec 2019 11:27:54 +0000 (12:27 +0100)]
Simplify kernel: Remove CATCH and THROW, leave INTERPRETER loop now by executing EXIT, Extend Kernel: also use double byte tokens

4 years agoExtend mutit tasker for catch and throw, export frame pointer from kernel, utf8 ...
Ulrich Hoffmann [Tue, 10 Dec 2019 14:56:49 +0000 (15:56 +0100)]
Extend mutit tasker for catch and throw, export frame pointer from kernel, utf8 / code point conversion

4 years agoAdd high level multitasker and key?
Ulrich Hoffmann [Sat, 30 Nov 2019 18:12:10 +0000 (19:12 +0100)]
Add high level multitasker and key?

4 years agoAdd search order, status line, formatted number output DSL
Ulrich Hoffmann [Sat, 30 Nov 2019 11:06:30 +0000 (12:06 +0100)]
Add search order, status line, formatted number output DSL

4 years agoHave wordlists, prepare search order
uho [Tue, 26 Nov 2019 07:12:19 +0000 (08:12 +0100)]
Have wordlists, prepare search order

4 years agoHave ANSI colors, unicode prompt with emojies, unicode tests, sqrt, FOR NEXT
Ulrich Hoffmann [Mon, 25 Nov 2019 12:36:22 +0000 (13:36 +0100)]
Have ANSI colors, unicode prompt with emojies, unicode tests, sqrt, FOR NEXT

4 years agoFix typo and bump TODO
Ulrich Hoffmann [Mon, 25 Nov 2019 12:29:00 +0000 (13:29 +0100)]
Fix typo and bump TODO

4 years agoAdd headerless definitions
Ulrich Hoffmann [Sat, 23 Nov 2019 11:26:04 +0000 (12:26 +0100)]
Add headerless definitions

4 years agoExpand system
Ulrich Hoffmann [Thu, 14 Nov 2019 21:49:29 +0000 (22:49 +0100)]
Expand system

4 years agoAdd todo
Ulrich Hoffmann [Sat, 9 Nov 2019 10:34:26 +0000 (11:34 +0100)]
Add todo

4 years agoAllocate headers from dynamic memory
uho [Fri, 8 Nov 2019 07:30:19 +0000 (08:30 +0100)]
Allocate headers from dynamic memory

4 years agoExtend interactive seedForth
uho [Sun, 3 Nov 2019 19:37:40 +0000 (20:37 +0100)]
Extend interactive seedForth

4 years agoExtend interactive system
Ulrich Hoffmann [Sat, 2 Nov 2019 14:11:20 +0000 (15:11 +0100)]
Extend interactive system

4 years agoAdd headers
Ulrich Hoffmann [Sat, 2 Nov 2019 09:00:11 +0000 (10:00 +0100)]
Add headers

4 years agoAdd headers
Ulrich Hoffmann [Sat, 2 Nov 2019 08:58:59 +0000 (09:58 +0100)]
Add headers

4 years agoTweak it, beautify it
uho [Sat, 2 Nov 2019 08:47:32 +0000 (09:47 +0100)]
Tweak it, beautify it

4 years agoFix definition of 2! in Forth
Ulrich Hoffmann [Sat, 26 Oct 2019 12:30:27 +0000 (14:30 +0200)]
Fix definition of 2! in Forth

4 years agoUse exit instead of unnest
Ulrich Hoffmann [Sat, 26 Oct 2019 12:28:30 +0000 (14:28 +0200)]
Use exit instead of unnest

4 years agoAdapt dynamic memory to new tokenizer
Ulrich Hoffmann [Sat, 26 Oct 2019 12:17:53 +0000 (14:17 +0200)]
Adapt dynamic memory to new tokenizer

4 years agoFix typos in tokenizer
Ulrich Hoffmann [Sat, 26 Oct 2019 09:52:22 +0000 (11:52 +0200)]
Fix typos in tokenizer

4 years agoAdd EuroForth 2018 paper and slides
uho [Sat, 26 Oct 2019 08:20:10 +0000 (10:20 +0200)]
Add EuroForth 2018 paper and slides

4 years agoFix definition of 0=exit
uho [Sat, 26 Oct 2019 08:03:39 +0000 (10:03 +0200)]
Fix definition of 0=exit

4 years agoAdd line input
uho [Sat, 26 Oct 2019 08:03:04 +0000 (10:03 +0200)]
Add line input

4 years agoCleanup new tokenizer and seedForth demo
Ulrich Hoffmann [Wed, 23 Oct 2019 10:31:55 +0000 (12:31 +0200)]
Cleanup new tokenizer and seedForth demo

4 years agoRevise tokenizer, improve syntax
uho [Wed, 23 Oct 2019 05:33:00 +0000 (07:33 +0200)]
Revise tokenizer, improve syntax

4 years agoFix number uses and test results
Ulrich Hoffmann [Fri, 4 Oct 2019 10:37:01 +0000 (12:37 +0200)]
Fix number uses and test results

4 years agoDefine common names for allocation, cleanup
Ulrich Hoffmann [Fri, 4 Oct 2019 10:26:28 +0000 (12:26 +0200)]
Define common names for allocation, cleanup

5 years agoAdapt dynamic memory to new does> and large literals
Ulrich Hoffmann [Wed, 15 Aug 2018 15:59:35 +0000 (17:59 +0200)]
Adapt dynamic memory to new does> and large literals

5 years agoProvide counted string literals
Ulrich Hoffmann [Wed, 15 Aug 2018 15:11:27 +0000 (17:11 +0200)]
Provide counted string literals

5 years agoAdd catch/throw
Ulrich Hoffmann [Wed, 15 Aug 2018 13:56:32 +0000 (15:56 +0200)]
Add catch/throw

5 years agoModified Does> w/o machine code in threaded code area, large literals in tokenizer
Ulrich Hoffmann [Fri, 22 Jun 2018 09:58:33 +0000 (11:58 +0200)]
Modified Does> w/o machine code in threaded code area, large literals in tokenizer

5 years agoAdd dynamic memory, execute and compile, do h@
Ulrich Hoffmann [Wed, 20 Jun 2018 20:27:29 +0000 (22:27 +0200)]
Add dynamic memory, execute and compile, do h@

5 years agoAdd tester to seedForth
Ulrich Hoffmann [Wed, 13 Jun 2018 17:17:21 +0000 (19:17 +0200)]
Add tester to seedForth

5 years agoAdd .gitignore
Ulrich Hoffmann [Wed, 13 Jun 2018 17:16:50 +0000 (19:16 +0200)]
Add .gitignore

5 years agoThe birth of seedForth
Ulrich Hoffmann [Wed, 13 Jun 2018 16:43:28 +0000 (18:43 +0200)]
The birth of seedForth

5 years agoAdd forth dump utility and tester
Ulrich Hoffmann [Wed, 13 Jun 2018 16:33:36 +0000 (18:33 +0200)]
Add forth dump utility and tester

6 years agoProvide slides (german) of talk held at Forthtagung 2018
Ulrich Hoffmann [Sat, 7 Apr 2018 16:09:30 +0000 (18:09 +0200)]
Provide slides (german) of talk held at Forthtagung 2018

6 years agoCreate LICENSE
Ulrich Hoffmann [Sat, 7 Apr 2018 15:49:03 +0000 (15:49 +0000)]
Create LICENSE

6 years agoAdd demo programs for preForth and simpleForth
Ulrich Hoffmann [Sat, 7 Apr 2018 06:25:21 +0000 (08:25 +0200)]
Add demo programs for preForth and simpleForth

6 years agoCleanup README
Ulrich Hoffmann [Thu, 5 Apr 2018 13:59:59 +0000 (15:59 +0200)]
Cleanup README

6 years agoProvide initial preForth, simpleForth, Forth
Ulrich Hoffmann [Thu, 5 Apr 2018 13:57:30 +0000 (15:57 +0200)]
Provide initial preForth, simpleForth, Forth