[Forth] Hi, can I be a maintainer?

Hi there! I’m an active-when-I-can-be maintainer in some other tracks.

Can I be added as a maintainer for the Forth track?

Also can a track be created for dt? (https://dt.plumbing)

P.S. I plan to use Gforth (from GNU) as the reference Forth in examples and tests etc, but to keep the track general enough to accommodate any implementation of the ANS Forth standard

Is Gforth substantially different from 8th?

1 Like

ANS Forth (which Gforth implements) is different from 8th. It’s sort of like Common Lisp vs Scheme, or a POSIX shell vs something like Fish or Elvish

Though there is a Forth standard (several, in fact), 8th does not adhere to it in any particulars, choosing instead to be inspired by Forth’s concepts while being more accessible to a wider audience. Most design decisions were made in the interest of keeping applications secure while providing freedom to accomplish normal programming tasks in a cross-platform and reasonable manner.
8th Manual

I’ve just added you to the Forth team.

1 Like

Okay, that does make it sound like they’re different languages. Do you have some examples that show the difference between the two languages?

Could you maybe follow the instruction at GitHub - exercism/generic-track?

1 Like

I haven’t used 8th personally, but from what I can tell the differences are pretty fundamental.

  • Forth has no concept of types, 8th is strongly typed
  • Forth has simple contiguous blocks of memory and manual memory management, 8th has growable strings/arrays/etc
  • Forth is minimal, 8th is more batteries-included

As a comparison, Forth is more like C, and 8th is more like C++ bundled with Boost.

There are also some non-technical differences:

  • There are many Forth implementations and most are open source, just like there are many open source C compilers. Just like C or AWK or EcmaScript or Scheme, the language is more of a spec than an implementation.
  • 8th is a closed source commercial product 8th - One Effort, Multiple Platforms
  • There is a little rocky history (example) between the Forth community and the 8th dev. I don’t have a dog in the fight… 8th looks impressive, and I can admire the creator’s ambition, but I have reasons for preferring open source software.

Okay, that makes it sound like they’re different enough to warrant different tracks!

1 Like

Looks like this has kind of stalled. Happy to jump in and help if you like.

Yes, please! I’ve had a pretty crazy last little while. I’m on my third company of the year, and also it’s summer and I got kids :slight_smile:

I can still review things, but might have trouble contributing anything significant until my schedule is more stable,. Feel free to reach out to me @booniepepper on discord too (either in Excercism’s discord, or if you’re in them a Forth or catlang server)

awesome. I will start taking a look. @ErikSchierboom Can I be added to the Forth group or how does that work?

I’ve added you to the team.

1 Like

I opened an issue to create a test runner. I think that is the way I am supposed to do it.

I think based on the auto-reply, we should just ask here once we’re ready for a test runner or a representer repository. (edit:) Looks like instructions on bootstrapping a test runner are here: GitHub - exercism/generic-track

The test runner would be the runner on the website that evaluates a participant’s code and reports back results. (Success, failure, partial failure, syntax error, etc.) The idea is that it’s some docker-ized container that runs on Exercism’s cloud resources. Not sure how much you’ve looked into this, but I’ve used the forthy42/gforth container before (https://hub.docker.com/r/forthy42/gforth) and its version of Gforth is more recent than what I can get from my Linux distro

For example here’s the test runner repo for the Zig language GitHub - exercism/zig-test-runner

I’d like to remove “dt” from the original post here, so this can just be about Forth. But I think too much time has passed for me to be able to edit it.

I can follow up on dt someday when I personally can make more free time, but I think it’ll be easier to get some people to rally around a Forth track

Just updated the title.

I’ve created the forth test runner rep: GitHub - exercism/forth-test-runner

I just wanted to lend my moral support to adding gForth to Exercism’s language tracks. I don’t know Forth all that well, but I am fascinated by the simplicity and flexibility of the language.

Is it possible for learners to beta test the track or is it too early for that?

Beta test in what way? Tracks not live yet can’t be seen on the site by the public. Once the track is near launch, staff sets it up, so the track can be interacted with by other Exercism track maintainers. They can then work with the online editor, review docs, and give feedback before the track goes live.

If you’re not a maintainer, you can still access the code and documentation in the track’s GitHub repo at any time. If a test runner Docker image is available for this track, you can even use that locally to solve any implemented exercises in the repo. I know folks who have done that with the Arturo and Pyret tracks I’ve worked on.