ForthHub / discussion

Discussion repository for Forth enthusiasts.
118 stars 4 forks source link

What forth systems you use? #2

Open VoidVolker opened 9 years ago

VoidVolker commented 9 years ago
  1. What forth systems do you use and for what OS?
  2. What is your favourite forth system or systems?

My answers:

  1. Windows: SP-Forth, Quark Forth Linux: gForth, SP-Forth linux OSX: nop Embedded: one time was Swift Forth
  2. SPF, Quark, gForth. I think VFX Forth looks very useful. Have no time to try it :(
philburk commented 9 years ago

I use my pForth on Mac, Windows, Linux and embedded systems.

larsbrinkhoff commented 9 years ago

I'm mostly toying with my own lbForth. Sometimes I test things in Gforth.

ghost commented 9 years ago

I've been using amforth, flashforth, and asforth on the Atmel atmega328. For Arm processors I have been using gforth, Riscy Pygness, and rf. For 30 years I used figforth on a Sinclair Spectrum. Was using win32forth and bigforth on Intel machines.

narke commented 9 years ago

I'm migrating to colorForth but I mostly use gforth and pforth.

crcx commented 9 years ago

I mostly use my own dialects (Retro and Parable) on iOS, OS X, and Linux. I occasionally work with SwiftForth and gForth (on Windows and Linux, respectively).

rclabs commented 9 years ago

I use GForth on Linux. My favorite is GForth for no particular reason other than it seems complete and is available as a package to debian/ubuntu.

scotws commented 9 years ago

GForth on Linux as well, and as comparison while writing my own Forth for the 6502.

jamesbowman commented 9 years ago

Likewise, Gforth on Linux has been my primary for many years.

I also occasionally use VFX Forth for Linux, which is amazingly fast.

These days I am using my own Forth on an embedded CPU, SwapForth.

On Thu, Mar 12, 2015 at 6:39 AM, Scot W. Stevenson <notifications@github.com

wrote:

GForth on Linux as well, and as comparison while writing my own Forth for the 6502.

— Reply to this email directly or view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-78480563.

James Bowman http://www.excamera.com/

ghost commented 9 years ago

A long time ago I used retroforth, then what I wrote myself together and now, when I'm programming anything forth related I use mostly gforth.

No particular favorite at the moment.

chitselb commented 9 years ago

Over the years, I've used MMSForth on a TRS-80 Model 4; Blazin' Forth on a C=64; Quartus Forth on a Palm Pilot; Gforth on Linux; FigForth is the first Forth I ever got running on my PET, and I'm currently working on PETTIL, an artisanal Forth for the PET hosted here on github. Of these, my favorite would have to be Blazin' Forth, which did a really nice job of teaching me the language, exposing the C=64 hardware, bringing me into the open source world, etc...

jkotlinski commented 9 years ago

Blazin' Forth is great :) I used it for inspiration for my own C64 Forth, DurexForth.

bshepherdson commented 9 years ago

I hacked on my own not-quite-standard handwritten ARM assembly Forth, which was fun, but it's much too slow for my current project (a Gameboy emulator).

For the Gameboy I need something fast that can speak to SDL2; GForth does nicely.

For another project, however, I can't use GForth. That project is bare metal but not embedded (plenty of RAM and CPU power), so I need fast binaries I can ship to the bare metal opaquely, without GForth's forcing of the GPL.

To make a long, confidential story short and publishable: there might be open source fallout from this project, but even if so it'll have to be Apache licenseable, and in either case to publish binaries without needing to expose 100% of the source code under GPL.

I'm too new to the modern Forth world to know: are there any fast, standard(ish) Forths around that fit that bill?

larsbrinkhoff commented 9 years ago

SP-Forth compiles to optimised x86 machine code. Documentation may be hard to read.

bshepherdson commented 9 years ago

ARM support is a not-quite-essential extra. But that's still a useful data point, thanks!

Lehs commented 9 years ago

I'm using Windows and SP-Forth. My favorite toy was Fig-Forth. I'm also looking at SwiftForth.

cwpjr commented 9 years ago

I have a ARM Cortex M fig/f83ish Forth (FISH) here:

https://www.mediafire.com/folder/6fqkfykcel80s/FISH_Forth

larsbrinkhoff commented 9 years ago

@cwpjr Maybe put that on GitHub?

cwpjr commented 9 years ago

@larsbrinkhoff FISH is a Reference Model, meaning that it is closed source.

Does anyone know or have an opinion about using github to distribute "binaries" (really .hex and ..sym files and pdf documentation).

With FLASH_SAVE the system can be extended...

chitselb commented 9 years ago

There are binary cassette tape images (*.tap files) in github.com/chitselb/pettil that work just fine for me and all the other users of PETTIL worldwide (also just me)

On Wed, Apr 8, 2015 at 3:32 PM, Clyde Willis Phillips Jr. < notifications@github.com> wrote:

@larsbrinkhoff https://github.com/larsbrinkhoff FISH is a Reference Model, meaning that it is closed source.

Does anyone know or have an opinion about using github to distribute "binaries" (really .hex and ..sym files and pdf documentation).

With FLASH_SAVE the system can be extended...

— Reply to this email directly or view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-91012546.

jkotlinski commented 9 years ago

@chitselb Maybe it pleases you to hear that I gave PETTIL a test ride earlier today? But I wasn't able to find any binaries even though I looked for it. "Releases" is the usual way to distribute binaries using Github.

chitselb commented 9 years ago

@jkotlinski I just saw this. Maybe I should be more social here. I'll see about including the binary (tmp/pettil.obj) , which can now only be built from source from the github.com/chitselb/pettil repo on a system that has Ruby, xa65 and bash.

BlameTroi commented 8 years ago

I'm running on Mac, Windows (2 platforms), Ubuntuish Linux, and Raspberry Pi. After experimenting I've settled on gforth for my relearning experience even though it doesn't run well on Android. My current plans are go through a stack of old Forth books, write some stuff for fun, and then build one of those bare metal Forths for the ARM.

As I work through various books I'll probably post reviews in a respository. I know most of the written words are severely outdated but I'm old school and like to work with a text as I explore.

forthy42 commented 8 years ago

Am Donnerstag, 27. August 2015, 13:06:59 schrieb Troy Brumley:

I'm running on Mac, Windows (2 platforms), Ubuntuish Linux, and Raspberry Pi. After experimenting I've settled on gforth for my relearning experience even though it doesn't run well on Android.

What kind of issues do you have with Gforth on Android? "Doesn't run well" is a form of bug report that unlikely will be fixed ;-).

Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7_?t=uy@X}1GWr!+0qqpCn176t4(dQ http://bernd-paysan.de/

hcchengithub commented 8 years ago

I use jeforth on Windows. It tops on javascrip so can do whatever javascript can with benefits of forth. This is its kernel that has only 'code' and 'end-code' at first. You build your own things then.

BlameTroi commented 8 years ago

@forthy42 I haven't been able to get past the problems with the console IO, which is a known issue with gforth on Android. Half the time your input is not echoed in a timely manner. I read about this elsewhere but decided to try it to see how bad it was. I wasn't willing to put up with it.

forthy42 commented 8 years ago

Am Montag, 31. August 2015, 08:44:54 schrieb Troy Brumley:

@forthy42 I haven't been able to get past the problems with the console IO, which is a known issue with gforth on Android.

It's a known issue with some keybords, which only have word-mode, no character mode.

Half the time your input is not echoed in a timely manner. I read about this elsewhere but decided to try it to see how bad it was. I wasn't willing to put up with it.

Ah, that issue. Some keyboards do not pass each keystroke to Gforth when it happens, but wait for a complete word.

That's why I have a list of recommended keyboards. Those all work as expected. Use e.g. hacker's keyboard; Go keyboard is also good enough (with cursor+tab).

The problem with word mode is that I'm not supposed to pass those characters to the actual input, because that's subject to auto-correction and further input.

I will see what I can do to work around the word-mode problem; for now, please try it with a better keyboard that follows Google's specification.

Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7_?t=uy@X}1GWr!+0qqpCn176t4(dQ http://bernd-paysan.de/

BlameTroi commented 8 years ago

I'll give it a whirl. I have hacker's keyboard already, but I didn't think to try it. Otherwise I enjoy gforth and am having a blast on my mac getting into the language.

forthy42 commented 8 years ago

Am Montag, 31. August 2015, 14:39:12 schrieb Troy Brumley:

I'll give it a whirl. I have hacker's keyboard already, but I didn't think to try it. Otherwise I enjoy gforth and am having a blast on my mac getting into the language.

What keyboard do you use otherwise? I gave a few popular a try, and the worst is Swype, or using Swype-style input on other keyboards that support it. I've a fix for that which should mostly work for the other offenders, too (that will show up the next day or so). I've not yet found a way to tell Swype how much there's in the edit buffer when you use the volume keys to navigate in the history - setting the editor object to the actually edited text doesn't work. Apparently Swype makes its own assumptions about what the edited object actually contains, and limits backspaces to the text it thinks is there, and that's the wrong way to go.

Bernd Paysan "If you want it done right, you have to do it yourself" net2o ID: kQusJzA;7_?t=uy@X}1GWr!+0qqpCn176t4(dQ http://bernd-paysan.de/

BlameTroi commented 8 years ago

I like swype for social media, but it's completely useless for precise typing. I do 95% of my social media stuff on my Galaxy Note 3. I'm not sure I could even use swype on a smaller screen :) I was able to experiment quickly with the hacker keyboard and gforth felt like gforth again.

jjonethal commented 8 years ago

Using Mecrisp-Stellaris

rdrop-exit commented 7 years ago

In the past I've used Fig Forth on Apple II and some SBCs, F83 and HS/Forth on MSDOS, and a home-brew on FreeBSD and Linux. I haven't had much opportunity to program (in any language) in the past 15+ years, just getting back into it, haven't settled on any particular Forth for future work.

RogerLevy commented 7 years ago

Thank you for making me aware of SP-Forth today. I've been wishing for a free, full-featured ANS Forth system for Bubble to support. Gonna make plans to port it.

bfox9900 commented 7 years ago

MVP Forth, HSForth for DOS, Mpe PowerForth for DOS, Mpe embedded 32 bit 80486 Forth, MaxForth 68hc11, and recently a cross compiled version of CAMEL Forth for the TMS9900 on the TI99 :-)

I enjoyed forcing the 6811 to run multitasking and simple robotics for an industrial chicken counter that had a spec of 90 000 birds per hour! :-)

larsbrinkhoff commented 7 years ago

@RogerLevy SP-Forth is now on GitHub: http://github.com/rufig/spf

I don't know if this is an official copy, but seeing as the owner is "rufig", it could be.

ChristerNilsson commented 7 years ago

http://factorcode.org

tcoram commented 7 years ago

Tachyon Forth on Parallax Propeller Gforth on Linux/Windows SwiftX on STM32L432, STM32F411, etc. MPE Forth on Freescale K20,K64. MyForth (Charlie Shattuck's Forth) on SiLabs 8051 and Arduino (I had used my own home grown forth on MSP430 and an old STM32 but most of it was proprietary and I couldn't release the MCU specific code... but it did ship product!) I used to do some stuff on the Green Arrays GA144.

MyForth on 8051 hit the sweet spot for me... (I think) it was inspired by ColorForth/ArrayForth and is very minimalistic.

howerj commented 7 years ago

I'm learning Forth by writing my own, libforth. It's written in C and I've manage to port it from Linux to an STM32F4 (Alan Carvalho de Assis did most of the work) and a cut down version as a Linux kernel module. I'm trying to make it as ANS Forth compliant as possible.

I'm also working on a translation of the J1 (thanks James!) to VHDL (which I've called the H2), that's taking up most of my time at the moment. The SoC is mostly complete, I just need to write the firmware for it. I've written an assembler for a psedu-Forth like language for it.

I think Forth is a great language, but I've struggled to use it for actual applications which is unfortunate. Has anyone here managed to use Forth at work?

leonwagner commented 7 years ago

I use Forth at work. :)

There’s a list of featured customer applications on our website if you’d like to see how a few others are using it:

https://www.forth.com/resources/forth-apps/ https://www.forth.com/resources/forth-apps/

Best regards,

Leon Wagner FORTH, Inc.

On Jun 27, 2017, at 11:32, Richard James Howe notifications@github.com wrote:

I'm learning Forth by writing my own, libforth. It's written in C and I've manage to port it from Linux to an STM32F4 (Alan Carvalho de Assis did most of the work) and a cut down version as a Linux kernel module. I'm trying to make it as ANS Forth compliant as possible.

I'm also working on a translation of the J1 (thanks James!) to VHDL (which I've called the H2), that's taking up most of my time at the moment. The SoC is mostly complete, I just need to write the firmware for it. I've written an assembler for a psedu-Forth like language for it.

I think Forth is a great language, but I've struggled to use it for actual applications which is unfortunate. Has anyone here managed to use Forth at work?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-311445732, or mute the thread https://github.com/notifications/unsubscribe-auth/AON9efCDpLReilEGJapUetNff55U7eJEks5sIUqqgaJpZM4DnBNs.

tcoram commented 7 years ago

Forth at work? I do mostly prototype (and low production) work with Forth, for customers who don't care so much about programming languages, but want a gadget that meets a need. But I also tend to work alone (SW and HW) or very small teams (where I am responsible for overall design and specifically SW) so I am not hit with the "must be in C" requirement. I'm talking mostly embedded stuff here. When I have an OS, I tend to go with stuff like C/C++, Lua, Clojure (Lisp) and other languages appropriate to the domain. If you can't afford a garbage collector (tiny embedded systems) I definitely prefer Forth. I've found that the smaller the target systems (maybe it has to be an 8-bit micro or a very tiny low power Cortex-M) the more I can get done with Forth in hand. /todd

On Tue, Jun 27, 2017, at 02:32 PM, Richard James Howe wrote:

I'm learning Forth by writing my own, libforth. It's written in C and I've manage to> port it from Linux to an STM32F4 (Alan Carvalho de Assis did most of the work) and a> cut down version as a Linux kernel module. I'm trying to make it as ANS Forth compliant> as possible.

I'm also working on a translation of the J1 (thanks James!) to VHDL (which I've called the H2), that's taking up most> of my time at the moment. The SoC is mostly complete, I just need to write the firmware for it. I've> written an assembler for a psedu-Forth like language for it.

I think Forth is a great language, but I've struggled to use it for actual applications which is> unfortunate. Has anyone here managed to use Forth at work?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub[1], or mute the thread[2].>

Links:

  1. https://github.com/ForthHub/discussion/issues/2#issuecomment-311445732
  2. https://github.com/notifications/unsubscribe-auth/ADV8eYtXDy8z475OdsHWD3gXN3pkVMz-ks5sIUqogaJpZM4DnBNs
noqsi commented 7 years ago

I use LSE-ARM (https://github.com/noqsi/LSE-ARM) for prototypes of instruments intended to fly in space. One evolved into the REXIS instrument on OSIRIS-Rex (launched last year) and the photometric cameras on TESS (to be launched next year). For these, the LSE code in the microcontroller served as prototype for VHDL code in an FPGA: the flight instruments do not have microcontrollers.

For NICER (launched earlier this month) the AT91SAM7A3 microcontroller survives, and much low level C code from LSE-ARM survives, but the LSE-ARM Forth code has been replaced by C.

I use the hosted version, LSE64 (https://github.com/noqsi/LSE64) for various little bitpushing jobs and as a calculator. In the past, I’ve used it for lab bench automation.

John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd@noqsi.com

saulpw commented 7 years ago

Yes, it was my idea to use Forth at my last job. It was not used for the whole system, but as a platform to run some DSP and machine learned classifiers on a very small embedded device (4MHz, 48k RAM, battery life was paramount). The rest of the system, including the lower level algorithmic components (like matrix math), was in C. The advantage of using Forth over C for the 'glue', was being able to develop algorithms and numeric features in higher-level languages like MATLAB and R, and rapidly translate them into corresponding Forth code. Once the 'shape' of the algorithm was working, tweaking the parameters could be done very quickly, often at runtime.

It was my intent that an interpretive platform like this would allow us to upload new algorithms by simply replacing the Forth dictionary, instead of having to reflash the entire device. This would have given us the flexibility to have custom algorithms (learned by each user's own activity), and I would have loved to allow users to play around with their own algorithms. Unfortunately, this never came to pass, for non-technical reasons outside of my control.

The platform did work as designed, being remarkably easy to tune and optimize. I created a performance profiler and simulator, such that I could record the cycles used by each 'heavy' word, and the "N" of the input to that word, and along with an annotation of O(N), figure out the rough coefficients and constants, and then provide an estimate of performance for newer algorithms. I hoped this could become an input to the machine learning code itself, so that it could choose slightly weaker features if they were more efficient, but this too never came to pass.

Ultimately, I became even more impressed with the incredible flexibility and power of Chuck Moore's conceptual design. However, it was very difficult to get non-embedded engineers to spend even a few hours learning it and playing with it, so this power and flexibility went largely underused. If I decide to use Forth on a future project, I'll make sure that the whole team is willing to come along.

anse1 commented 7 years ago

VoidVolker writes:

What forth systems you use and for what OS?

I avoid using forth for any OS that can also support type safe languages. I really like forth for playing with embedded things though. In case gcc supports the target, I always use my own contraption, stubforth. All of the ports are available on github and there's also gallery in the wiki: https://github.com/anse1/stubforth/wiki

What is your favourite forth system or systems?

I dismissed most of the portable embedded C-forths out there back when I wrote stubforth because their runtime didn't integrate well with other C code around. I prefer C for writing portable embedded code, but prototyping it and playing with the dozens of peripherals on modern µCs interactively using forth totally beats a GDB remote stub.

GarthWilson commented 7 years ago

howerj said, "I think Forth is a great language, but I've struggled to use it for actual applications which is unfortunate. Has anyone here managed to use Forth at work?"

In our little company, I'm the whole engineering department, and no one tells me how to do my work. For programming very low-priced microcontrollers that don't have the resources to run Forth (or any HLL for that matter), I use assembly language, and I've written macros for flow-control structures imitating Forth's; but on the workbench I use Forth. The biggest application I wrote in Forth was some automated test equipment using STD bus around 1991. I've tried to learn C but I'm not getting anywhere with it. I seem to have an RPN brain. Forth was extremely easy for me to pick up. If you can handle any more of the Forth-versus-C argument, see the writeup on my C experience at http://wilsonminesco.com/stacks/Cbeef.html .

beretta42 commented 7 years ago

On Jun 27, 2017 2:35 PM, "Leon Wagner" notifications@github.com wrote:

I use Forth at work. :)

Lucky man!

MitchBradley commented 7 years ago

You make your own luck. I have used Forth at work at many companies. Except for the companies that I founded myself, it was often an uphill battle to get Forth accepted - up until the point where enough people saw the incredible productivity that resulted from doing appropriate things in Forth.

It would often start with "I'll scratch your disk if you port Forth to our system" (actual comment from a Sun Microsystems employee over 30 years ago) and end with people asking me to get Forth running so they could debug a difficult problem. Sun is now part of Oracle, who still uses my Forth-based boot firmware. I taught a Forth/Open Firmware class at Oracle last year.

You have to be willing to go against the conventional wisdom. If you accept no-to-Forth for an answer, then that is what the answer will be.

I am currently using my CForth on an ESP32 to program an agricultural control system.

Forth is insanely good for manufacturing diagnostics.

On 6/27/2017 10:47 AM, Brett M. Gordon wrote:

On Jun 27, 2017 2:35 PM, "Leon Wagner" notifications@github.com wrote:

I use Forth at work. :)

Lucky man!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-311480453, or mute the thread https://github.com/notifications/unsubscribe-auth/AEoszS2OTlodol04whMsGHx7DeJw0Ir2ks5sIWpJgaJpZM4DnBNs.

fatman2021 commented 7 years ago

Gforth and GraForth

On Tue, Jun 27, 2017 at 5:16 PM, Mitch Bradley notifications@github.com wrote:

You make your own luck. I have used Forth at work at many companies. Except for the companies that I founded myself, it was often an uphill battle to get Forth accepted - up until the point where enough people saw the incredible productivity that resulted from doing appropriate things in Forth.

It would often start with "I'll scratch your disk if you port Forth to our system" (actual comment from a Sun Microsystems employee over 30 years ago) and end with people asking me to get Forth running so they could debug a difficult problem. Sun is now part of Oracle, who still uses my Forth-based boot firmware. I taught a Forth/Open Firmware class at Oracle last year.

You have to be willing to go against the conventional wisdom. If you accept no-to-Forth for an answer, then that is what the answer will be.

I am currently using my CForth on an ESP32 to program an agricultural control system.

Forth is insanely good for manufacturing diagnostics.

On 6/27/2017 10:47 AM, Brett M. Gordon wrote:

On Jun 27, 2017 2:35 PM, "Leon Wagner" notifications@github.com wrote:

I use Forth at work. :)

Lucky man!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <https://github.com/ForthHub/discussion/issues/2#issuecomment-311480453 , or mute the thread https://github.com/notifications/unsubscribe-auth/ AEoszS2OTlodol04whMsGHx7DeJw0Ir2ks5sIWpJgaJpZM4DnBNs.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-311488057, or mute the thread https://github.com/notifications/unsubscribe-auth/AFT-k9JBirDf0-2r4lybKh79sy7YVCPoks5sIXFAgaJpZM4DnBNs .

-- www.fiverr.com/jacobdahlen/

RogerLevy commented 7 years ago

@ChristerNilsson Is Factor a Forth? It has so many differences from classic Forth it should be considered its own language don't you think? Kind of like how JavaScript is only superficially similar to Java ...

larsbrinkhoff commented 7 years ago

For the purposes of this group, I think "Forth" is largely undefined.

RogerLevy commented 7 years ago

@larsbrinkhoff at the risk of starting a debate, I think that's just silly. certainly Forths differ in capabilities and semantics but I think they all share enough in common that we can have at least a simple, loose definition - 2 stacks, dictionary, colon definitions - personally I'd also add that it should be typeless, have cells, and be interactive otherwise it's a "Forth-like" or "Forth-inspired"

I'm getting pedantic though and my true feeling is that it doesn't really matter in the context of this thread.

I just think that Factor is different enough that it would actually add legitimacy to it if you treat it as its own language ... you can't hope to port code as easily between a "proper" Forth and Factor as much as you could between 2 "proper" Forths. It just has too many "goodies" and the performance scale and assumptions are totally different

We need some lines in the sand. Lines in the sand not Trump walls :)

AndreasKlimas commented 7 years ago

Am 28.06.2017 um 18:40 schrieb RogerLevy notifications@github.com:

@larsbrinkhoff https://github.com/larsbrinkhoff at the risk of starting a debate, I think that's just silly. certainly Forths differ in capabilities and semantics but I think they all share enough in common that we can have at least a simple, loose definition - 2 stacks, dictionary, colon definitions - personally I'd also add that it should be typeless, have cells, and be interactive otherwise it's a "Forth-like

An almost complete definition. But: At least in my world, no useful application is possible without some sort of persistence. So I would add „block" to this list.

Andreas Klimas

I'm getting pedantic though and my true feeling is that it doesn't really matter in the context of this thread.

I just think that Factor is different enough that it would actually add legitimacy to it if you treat it as its own language ... you can't hope to port code as easily between a "proper" Forth and Factor as much as you could between 2 "proper" Forths. It just has too many "goodies" and the performance scale and assumptions are totally different

We need some lines in the sand. Lines in the sand not Trump walls :)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ForthHub/discussion/issues/2#issuecomment-311717474, or mute the thread https://github.com/notifications/unsubscribe-auth/ARuwI6aYxBYMBphgA3x11yB_ex2C8GvDks5sIoHkgaJpZM4DnBNs.