Releases: ncw/ccforth
Releases · ncw/ccforth
Release list
v0.3.2
Full Changelog: v0.3.1...v0.3.2
v0.3.1
v0.3.0
v0.2.2
v0.2.1
Changelog
- 7482a2e Add .deb/.rpm packages, ARM32 build, and release improvements
v0.2.0
Changelog
- 3f283c5 Add -32 flag for 32-bit cell output
- 1731100 Add end-to-end test for CASE/OF/ENDOF/ENDCASE defined in pure Forth
- 9904aae Documentation tweaks
- 9b9ab5c Improve README with features list, install instructions, and fixes
- 319891e Make interpreter 32-bit when -32 is active
- 27ead35 Refactor integration_test.go to extract shared helpers
v0.1.0
Changelog
- 358ad9d Add #line directives to generated C for source-level error reporting
- 34a8885 Add -fwrapv -fno-strict-aliasing to compiled output compiler flags
- 952e493 Add -i interactive REPL mode with readline support
- 1549ed8 Add .fth test files to improve test coverage
- f7fb8e1 Add .gitignore entries for binaries and unlicensed draft standard
- 43704cd Add ?DUP-IF and ?DUP-0=-IF control flow extensions
- 43774f5 Add ABORT, ABORT", and QUIT for Forth 2012 CORE compliance
- 142d861 Add ALIGN, ALIGNED, 2!, 2@ for Forth 2012 CORE compliance
- b0bce60 Add ATEXIT word to register exit handlers via C atexit()
- 5eb629c Add BASE, DECIMAL, and BASE-aware number parsing
- e4d1aaf Add Breakout game example with SDL2 bindings
- a2385a9 Add CODE words for FILE-STATUS, RENAME-FILE, FLUSH-FILE
- 445a44e Add CODE words for N>R and NR>
- 51814d2 Add Dhrystone v1.1 benchmark example with C vs ccforth vs Gforth comparison
- 4fc6b9a Add Double-Number word set: D+ D- DNEGATE DABS D2* D2/ D< M+ D0< D0= D= D>S DMAX DMIN 2CONSTANT 2VARIABLE 2LITERAL D. D.R M*/
- a9e0709 Add Exception word set: CATCH and THROW (interpreter-only for now)
- 9e13018 Add FIND, >BODY, >NUMBER, ENVIRONMENT?, and input words
- 5931d30 Add File-Access word set: OPEN-FILE, CREATE-FILE, CLOSE-FILE, READ-FILE, WRITE-FILE, DELETE-FILE, FILE-POSITION, FILE-SIZE, REPOSITION-FILE, RESIZE-FILE, READ-LINE, WRITE-LINE, SOURCE-ID, R/O, W/O, R/W, BIN
- acd2139 Add Floating-Point word set: F+ F- F* F/ FNEGATE FABS FMAX FMIN FLOOR FROUND FSQRT F0< F0= F< FDUP FDROP FSWAP FOVER FROT F@ F! D>F F>D FDEPTH >FLOAT REPRESENT FLITERAL F. FLOAT+ FLOATS FALIGN FALIGNED FVARIABLE FCONSTANT
- bb7f44c Add Forth 2012 test suite for compiled output and fix locals codegen
- 803b209 Add Game Boy DMG emulator example with CPU, ALU, PPU in pure Forth
- cbbb8c0 Add GitHub Actions CI workflow
- 12b9b3e Add GitHub Release automation via GoReleaser
- 711d331 Add INCLUDE-FILE and INCLUDED for file inclusion (interpreter-only)
- a2080a4 Add INTERPRETER word for conditional CODE definitions
- cdb7a78 Add LIT+OP fusion in emitter for immediate arithmetic
- ccda302 Add Locals word set: (LOCAL), {: :}, and TO for local variables
- a461a34 Add Memory-Allocation word set: ALLOCATE, FREE, RESIZE
- 26c86f8 Add PLACE and VOCABULARY non-standard extensions
- 3edd5a7 Add Performance section to README
- 9199f66 Add Programming-Tools word set and CODE for inline C
- 9c52e5b Add README.md and remove implementation plan
- f9240a9 Add S+ string concatenation
- 7057200 Add SLURP-FID and SLURP-FILE for reading entire files
- 5223d39 Add SYSTEM for executing shell commands
- 00e9f4b Add Search-Order word set: FORTH-WORDLIST, GET-ORDER, SET-ORDER, GET-CURRENT, SET-CURRENT, WORDLIST, SEARCH-WORDLIST, DEFINITIONS, FORTH
- a2cc5f3 Add String word set: CMOVE, CMOVE>, /STRING, -TRAILING, BLANK, COMPARE, SEARCH, SLITERAL
- 5596150 Add TRY/IFERROR/RESTORE/ENDTRY exception extensions
- 5b52378 Add TestBenchmarkSuite for per-category benchmark measurement
- c89f52d Add WORDS.md per-word reference organised by Forth 2012 word sets
- d61bfce Add Whetstone benchmark example with C vs ccforth vs Gforth comparison
- 43649d0 Add [: / ;] quotations (anonymous closures)
- 5cf0d12 Add ]] / [[ postpone state brackets
- b38ebc4 Add animated Towers of Hanoi terminal demo
- c3336a3 Add benchmark comparison table (compiled vs interpreter vs Gforth)
- 3957b7e Add benchmark infrastructure for measuring codegen performance
- 7cddf6a Add command-line argument and environment variable words
- 1cb7b1d Add comparison+branch fusion in emitter
- ad80f18 Add compilable ROLL, 2ROT, DU<, CS-ROLL
- 06347ca Add double-cell arithmetic: M* UM* UM/MOD SM/REM FM/MOD S>D */ */MOD
- b63a81d Add end-to-end Forth test programs exercising all built-in words
- c8db8b0 Add examples section to README and raytrace example README
- abd5ce3 Add expected output .txt files for all benchmarks
- 8b33e47 Add interactive Mandelbrot viewer example with SDL2
- 6bc52f8 Add interpreter-mode end-to-end tests
- c3f27b2 Add more peephole optimization patterns
- 352d222 Add peephole: eliminate SWAP before commutative operations
- b7d45c0 Add pi spigot algorithm integration test
- 9cc1078 Add pictured numeric output: <# # #S #> HOLD SIGN U. and BASE-aware .
- c04c987 Add primitiveC entries for 2>R, 2R>, 2R@
- 355e695 Add ray tracer example rendering 3 spheres on a checkerboard ground plane
- 305a458 Add right-click zoom out and scroll wheel zoom to mandelbrot viewer
- d6ba876 Add static inline hint to all generated C functions
- 4259d7d Add struct words, CELL constant, EXECUTE for primitives in compiled code
- 80978da Add tail call optimization for RECURSE in compiled code
- 90148dd Add terminal-based animated Mandelbrot viewer
- 5d9d0b3 Add typed local variable specifiers (W: D: F: C: W^ D^ F^ C^)
- 8dcfc43 Add { ... } Gforth-compatible locals syntax
- b60640c BYE fix, benchmark tuning, peephole patterns, compiler flags, Forth 2012 tests
- 60b5192 Buffer stdout in compiled output to reduce syscall overhead
- 7d4c4f1 Compile CATCH/THROW to C with setjmp/longjmp
- 6b7659d Convert benchmarks to Go benchmark framework
- 8fc72e5 Define 14 words in Forth instead of Go, fix peephole across branch targets
- 843df84 Document name mangling rules for words and locals in generated C
- efd578d Embed C runtime into binary for self-contained compiler output
- 18ce7a0 Emit DO/LOOP as C local variables instead of rstack array
- 021dd96 Emit VALUE/FVALUE/2VALUE as C static globals in compiled code
- 5a07964 Fix -Cflags to split by whitespace so multiple flags work correctly
- 3c40f44 Fix -Wformat-truncation warning in rt_represent
- 58f7bfc Fix CODE word comment placement in mandelbrot sdl.fth
- b071233 Fix EXIT locals cleanup, mid-body locals in loops, add EXCEPTION and #!
- 456d495 Fix Facility word set status: Complete, not Partial
- 3335168 Fix STATE to return a memory address per Forth 2012
- 8849b93 Fix examples: move uninitialized typed locals after | separator
- 2b83b9d Fix execution token (xt) system to use real values
- 86d470b Fix locals: maxLocals for unused locals, shadowing for duplicate names, add 0<= 0>=
- 6b66aa0 Fix macOS ARM RESIZE test failure and add Windows platform support
- f7b5d29 Fix multiple { } locals blocks in a single word definition
- dfad586 Fix sieve benchmark in interpreter: increase memory from 1MB to 4MB
- 7156c20 Fix tail-call optimization for RECURSE with locals
- c7678cc Fix undefined behavior in PUSH/RPUSH/FPUSH macros
- a551fe1 Implement Floating-Point extensions, Facility, and Extended-Character word sets
- 26dffef Implement UTIME word (Gforth compatible)
- 39f18c2 Make all benchmarks gforth-compatible, update benchmark table
- f556612 Make execution tokens function pointers in compiled output
- 5517a40 Migrate rt_* functions from ...