Skip to content

Releases: ncw/ccforth

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 09 Apr 13:59

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 07 Apr 22:48

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Apr 17:08

Full Changelog: v0.2.2...v0.3.0

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 19 Mar 11:50

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Mar 11:16

Changelog

  • 7482a2e Add .deb/.rpm packages, ARM32 build, and release improvements

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Mar 10:31

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

Choose a tag to compare

@github-actions github-actions released this 18 Mar 23:07

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 ...
Read more