discussion VS swapforth

Compare discussion vs swapforth and see what are their differences.

discussion

Discussion repository for Forth enthusiasts. (by ForthHub)

swapforth

Swapforth is a cross-platform ANS Forth (by jamesbowman)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
discussion swapforth
5 5
113 271
0.0% -
0.0 4.6
about 2 years ago 4 months ago
Forth
- BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

discussion

Posts with mentions or reviews of discussion. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-11.
  • Retro: A Modern, Pragmatic Forth
    6 projects | news.ycombinator.com | 11 Jul 2023
    > I would love a Forth with a type system. I don't know if that is heretical [...].

    Mitch Bradley (of Open Firmware fame) thinks it’s old hat[1], so guess not. (He also thinks it won’t work though.) In general, people have tried a lot of times; there’s a number of postfix Lisps with type systems—Kitten mentioned elsethread, ActorForth[2], etc.; a low-level Forth, as in untyped cells on stack and no automatic memory management, I don’t think has been done to completeness (IIRC either Forth, Inc. or MPE have a standing offer for any that’s able to process their legacy code), but then C wouldn’t be complete by that standard either (and Rust far too limiting).

    Honestly I’m not sure how well it would work—in C, you get a great deal of utility out of compound types, and classic cell-oriented Forth kind of sucks at even mildly complex datastructures—they are certainly possible, but being unable to manipulate them as values on the stack makes things quite unnatural. (And that’s where I draw the line of “postfix Lisps” like PostScript rather than Forths, as such manipulation doesn’t seem feasible without some sort of automatic memory management.)

    [1] https://github.com/ForthHub/discussion/issues/79

    [2] https://github.com/ActorForth/ActorForth

  • Making my own forth implementation
    5 projects | /r/Forth | 15 Jun 2023
    It’s not the minimum set of words you need, but it is practical. (This thread for example talks about a practical set of 32 words as a minimal starting set, and an impractical set of 7 which is 708 times slower haha https://github.com/ForthHub/discussion/issues/92 )
  • Bunch of questions about forth
    5 projects | /r/Forth | 23 Feb 2023
    Also concerning the point 1, ForthHub/discussions should be also mentioned. A Forth implementation of an FFI to Java is discussed there now.
  • Why no 2TO to pair with 2VALUE?
    1 project | /r/Forth | 16 Nov 2022
    Have a look at the discussion "VALUE and TO" on GitHub/ForthHub.
  • Dear Sir, You Have Built a Compiler
    5 projects | news.ycombinator.com | 13 Jan 2022
    With respect you've ignored the point I was making. There exist several Forth engines with native code-compilation, for instance VFX Forth, SwiftForth, and iForth.

    > Typically the C version outperformed the Forth version by 3:1 or better, and I would not have known how to bridge that gap.

    With a threaded-code Forth interpreter I'd expect the C version to outperform it by something closer to 5:1, so 3:1 doesn't sound too bad. The only way you can close the gap is with good quality native-code compilation.

    > Nowadays with far larger caches Forth might do better, I haven't really worked with it for years.

    It's interesting how advanced in CPU architecture change the relative performance of the different threading strategies. This has been nicely studied by the gforth folks. [0][1] Threaded-code interpreters still easily lose to optimising native-code compilers though, [2] and I expect they always will.

    More on how Forth collides with low-level CPU matters: [3][4][5]

    [0] https://www.complang.tuwien.ac.at/forth/threading/

    [1] https://www.complang.tuwien.ac.at/forth/threaded-code.html

    [2] https://github.com/ForthHub/discussion/issues/88#issuecommen...

    [3] The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures - https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.12...

    [4] Branch Prediction and the Performance of Interpreters -

swapforth

Posts with mentions or reviews of swapforth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-15.
  • Making my own forth implementation
    5 projects | /r/Forth | 15 Jun 2023
  • FPGAs for interpreted programming languages?
    2 projects | /r/FPGA | 25 Nov 2022
  • How many LUT for an 8 bit CPU?
    2 projects | /r/FPGA | 11 Nov 2022
    Thanks! Found the port of this to the board I want :) https://github.com/jamesbowman/swapforth/tree/master/j1a
  • The RISC Deprogrammer
    2 projects | news.ycombinator.com | 28 Oct 2022
    It's a standard thing to do in EE curricula; you normally do it in a one-semester class, and there are literally thousands of open-source synthesizable CPU cores on GitHub now.

    To take two examples to show that designing a CPU is less work than writing a novel:

    - Chuck Thacker's "A Tiny Computer", fairly similar to the Nova, is a page and a half of synthesizable Verilog; it runs at 66 MHz in 200 LUTs of a Virtex-5: https://www.cl.cam.ac.uk/~swm11/examples/bluespec/Tiny3/Thac...

    - James Bowman's J1A is more like Chuck Moore's MuP21 and is about three pages of synthesizable Verilog: https://github.com/jamesbowman/swapforth/blob/master/j1a/ver... and https://github.com/jamesbowman/swapforth/blob/master/j1a/ver.... You can build it with Claire Wolf's iCEStorm (yosys, etc.) and run it on any but Lattice's tiniest FPGAs; it takes up 1162 4-input LUTs.

    I haven't quite done it myself. Last time I played https://nandgame.com/ it took me a couple of hours to play through the hardware design levels. But that's not really "design" in the sense of defining the instruction set (which is also kind of Nova-like), thinking through state machine design, and trying different pipeline depths; you're mostly just doing the kind of logic minimization exercises you'd normally delegate to yosys.

    In https://github.com/kragen/calculusvaporis I designed a CPU instruction set, wrote a simulator for it, wrote and tested some simple programs, designed a CPU at the RTL level, and sketched out gate-level logic designs to get an estimate of how big it would be. But I haven't simulated the RTL to verify it, written it down in an HDL, or breadboarded the circuit, so I'm reluctant to say that this qualifies as "designing a single CPU" either.

  • The J1 Forth CPU
    1 project | /r/Forth | 13 Jan 2021
    Also worth checking is the Swapforth Github repository.

What are some alternatives?

When comparing discussion and swapforth you can also consider the following projects:

gale - Strongly-typed, minimal-ish, stack-based development at storm-force speed.

arkam - A Simple Stack VM and Forth

raillisp - A fast and portable lisp implemented in forth

lbForth - Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.

ESP32forth - FORTH developments for ESP32

subleq - 16-bit SUBLEQ CPU running eForth - just for fun

waforth - Small but complete dynamic Forth Interpreter/Compiler for and in WebAssembly

gforth - Gforth mirror on GitHub (original is on Savannah)

the-power-of-prolog - Introduction to modern Prolog

durexforth - Modern C64 Forth

kitten - A statically typed concatenative systems programming language.

gforth-raylib - Raylib 3.5 bindings for Gforth. The name is backwards for obvious reasons.