RETRO FORTH

RETRO FORTH

Forth Programming Language

⭐️4.4 / 5
Rating
🙌5
Ratings
📼6 scs
Content
📦w/o updates
Updates frequency
🗣❌ unsupported
Your locale

All Versions of RETRO FORTH

2021.1

February 7, 2021

Updated to the latest image and documentation. This also brings some small bug fixes and corrections need removes deprecated functions from the language.
More

2020.1

February 10, 2020

Updated to the latest RETRO system and documentation. I've also made some more updates to the UI, adding a light mode and fixed numerous bugs.
More

2019.8

August 11, 2019

It's been a long time coming, but a new update is here. This update brings a new interface that improves usability on iPhone and overall readability. It also brings in a new settings screen, allowing selection of the icon to better fit your preferences. Beyond this, nearly every aspect of the underlying system has been updated. Of note, the runtime is now completely rewritten and is faster and more stable than before. Optimizations have been made to the gopher support. The system is also now running the latest image which adds numerous improvements to the language, removes deprecated functions, and has a number of performance enhancements. The documentation is improved as well. The manual is now nicely formatted, and is significantly expanded, with more examples and deeper explanations of the functions and their usage. The glossary browser is also updated with the latest words.
More

2018.8

August 1, 2018

This release brings many changes and improvements to the language and editor. Interface: - darker colors, better text contrast - file manager improvements: - files now sorted alphabetically - support for renaming files - now uses only ~~~ for code blocks Core Language Improvements - renamed functions for better consistency with the namespaces - puts => s:put - putc => c:put - putn => n:put - putf => f:put - words => d:words - s:with-format => s:format - removed tors as it was unused - new words: - d:words-with - set:make - { and } Other Improvements - file:slurp now matches the documentation - removed ui:get-input (proved too buggy) - new floating point words - f:NAN - f:INF - f:-INF - f:nan? - f:inf? - f:-inf? - f:sqrt - f:round - f:square - new file words: - file:open[for-reading] - file:open[for-append] - file:open[for-writing]
More

2018.4.23

April 23, 2018

A minor update to followup on 2018.4: - Replace the `editor` namespace with `config` - Add new options to control font, sizing in the editor, output, and toolbars separately See the "User Interface" document for some notes & examples on using these. This also contains an updated Glossary, fixing a couple of small typos and adding the new words. I've also removed the buggy "highlight code blocks" option as it was causing some instability. Previously: It's been a while... so here's what's new: - rewrote `s:eq?`, leading to significant performance improvements - added `times[with-index]` and `I`, `J`, `K` for loop indexes - faster code generation - reduced size of the standard library by about 1/2KiB by some clever reordering of code - updated the documentation - added some words in the new `editor` namespace to allow changing fonts, sizing. See the "User Interface" documentation for more details and some examples. - updated the examples - some general stability improvements thanks to expanded error checks
More

2018.4

April 19, 2018

It's been a while... so here's what's new: - rewrote `s:eq?`, leading to significant performance improvements - added `times<with-index>` and `I`, `J`, `K` for loop indexes - faster code generation - reduced size of the standard library by about 1/2KiB by some clever reordering of code - updated the documentation - added some words in the new `editor` namespace to allow changing fonts, sizing. See the "User Interface" documentation for more details and some examples. - updated the examples - some general stability improvements thanks to expanded error checks
More

2018.1

January 23, 2018

I work to continue improving RETRO for you. This release brings in the latest image (RETRO-2018.1), adds support for the '\r' escape sequence in strings (when using `s:with-format`), and adds `f:ceiling` to the floating point vocabulary. The Glossary has been updated and now includes more examples. More significant is that RETRO now makes better use of hardware keyboards (if available), with a variety of keyboard shortcuts to make interaction faster and easier.
More

2017.12.18

December 17, 2017

This is a small maintenance release before the holidays. It has fixes a bug that could cause RETRO to crash in some rare instances, has a bunch of internal cleanups in the editor, and removes some assets that are no longer needed to reduce the application size a little.
More

2017.12

December 4, 2017

This release brings a number of improvements. The most immediate is a new dictionary browser ("Glossary") which makes it easy to find the basic documentation for each function in the core language. Other changes include expansions to the floating point and string vocabularies, bug fixes, and internal optimizations to save a little space while improving performance.
More

2017.11

October 31, 2017

Updated to the latest RETRO image with many internal improvements and a few new functions to allow easier debugging. New words: - `FREE` - `s:const` - `d:lookup-xt` Improvements: - Quotations are now smaller and faster - Jumps are now smaller and faster - Use of `@` and `!` prefixes is smaller and faster - Reorganized memory layout to reduce size a little Bug fixes: - Changing string size limits now works correctly - Resolved issue with `n:MIN` - `set:for-each` now restores the active buffer on completion Other: - Fixed some mistakes in the Glossary
More

Price History of RETRO FORTH

Description of RETRO FORTH

RETRO FORTH is a concatenative programming language with roots in Forth. Designed to be compact, learnable, and easy to adapt to specific needs, it has been developed and refined through continual use by a small community over more than a decade. Forth is a stack based programming language created in the late 1960's by Chuck Moore. Over the intervening decades it has evolved through use, with many dialects along the way. The Retro dialect was created in the late 1990's, and has been continually developed and supported for over 15 years. It is a structured, imperative stack-based language with modern facilities including quotations and reflection. It features: - latest version of the RETRO language - a code editor using Markdown subset - literate programming style - code is extracted from fenced blocks in Markdown source allowing easy mixing of code and commentary - allows use of unicode & emoji in source & commentary - interactive listener interface for quick interactions - simple console output and text input - editor provides quick access to numbers and symbols - support for fetching textual data from Gopher servers - file manager - documentation browser It also includes documentation and several optional examples.
Show less

RETRO FORTH: FAQ

Does RETRO FORTH work on iPad devices?

Yes, RETRO FORTH works on iPad devices.
RETRO FORTH was launched by Charles Childers.
The minimum supported iOS version for the RETRO FORTH app is iOS 12.4.
The average rating for the RETRO FORTH app is 4.4.
The Primary Genre Of The Retro Forth App Is Developer Tools.
The latest RETRO FORTH version released is 2021.1.
The latest RETRO FORTH update was rolled out on July 1, 2024.
The RETRO FORTH app launched on February 6, 2023.
The RETRO FORTH app contains no objectionable material and is suitable for children aged Charles Childers.
You can use the RETRO FORTH app in English.
Unfortunately, RETRO FORTH is not on Apple Arcade.
Unfortunately, in-app purchases are not part of RETRO FORTH.
No, RETRO FORTH does not support compatibility with Apple Vision Pro.

Screenshots of RETRO FORTH

iphone
ipad

More Applications by Charles Childers

Alternatives to RETRO FORTH

Reviews of RETRO FORTH

  • Precipitous learning curve

    Hi Charles,
    There are a few things that would help someone new to Retro, but not to FORTH, and I would like to suggest them, in the hopes that they could make Retro Forth a little more attractive to, say, Fathers who are beginning to teach their 9-year-olds about programming, and who themselves have lots of experience.

    First and foremost is the documentation.
    If the Documentation reader were to retain where the user was when they switch to the split to try the given examples, it would reduce frustration immensely.
    Because we’re new to Retro, if not to Forth, an early (very early) Link to a list of the differences between, say, an ANSI Forth (and yes, I know that no ANSI standard has been released) and Retro would be a tremendous help.
    A quick description of the tabs, what they do and how you use them is in order, extremely early in the documentation.
    I will admit that, having spent decades with the Forth83 interface, having an immediate mode that operates like a terminal is very helpful. The split allows one to see documentation and output at the same time, which is cool, but each entry disappears at the first space, and frankly, with no view of any part of the stack, it’s hard to tell that anything is happening at all.
    While the prefixing idea certainly has merit (and your community have adopted it without great insurrections) there should be some means of discerning which prefixes have been added to which words. While it is pretty easy to decide that a function you are creating belongs among the ones that fetch a value or store it, some of the others aren’t so obvious from the other side. Should eq? Be system, math, text, comparisons, or yet some other subset of the dictionary? What did the programmer who assigned it think like... except we don’t know the programmer personally, and apparently we don’t know all the prefixes used in the basic Retro system.
    Any of these conveniences can be given a visibility/actuation button to turn them on and off, so that, with all turned off, the program looks exactly as it does now, which is no doubt pleasing to the community of Retro users.

    Words tab:
    Pursuant to the problem of figuring out what the system-creator prefixed words with, or just finding the little buggers in the first place, there needs to be some kind of lookup. If it recognized subsets of words and made a list, it would become useful. Like the documentation, it _ought_ to be able to keep your place, and it might keep your last search, but currently, switching tabs returns the Words tab to the beginning.

    Vocabulary words:
    I spent some considerable time, back in the early 90s, arguing for inclusion of decompiling words and documentation words in the Standard: View, See, etc. You can limit those that decompile from the living code to keep them from decompiling _your_ code, pretty easily, but being able to see the code _we_ write is a must. Even Words, as much of a spew as it is, can be invaluable in the first contact with a new Forth, and frankly, as age settles in, is pretty valuable thereafter.

    Those are my reflections on my first hour of experience. I have no doubt that, with enough weeks of reading the documentation and drawing charts and writing code on paper so I can test them immediate, that I will be up to speed with the rest of the community, but those necessities are counter to the principles that Charles Moore established as his reasons for creating FORTH in the first place. Not to mention that no 9-year-old is going to read the documentation for longer than about 2 minutes.