Skip to content

mikewarot/mstoical

Repository files navigation

MSTOICAL - April 21, 2022
(c) 2022 Michael Warot

This is a fork of Stoical, which I found at http://stoical.sourceforge.net/

I hope to adequately honor the gift which was given.

When I came across Stoical, I thought that it might offer a route around the dead end that I often saw in Forth implementations. Usually you get to the point where you need to work with non-trivial data structures, and the limitations of the cell based stack become a brick wall. By adding types and some fairly substatial data structures, those inadequacies of Forth should be overcome.

It is my belief that MSTOICAL will eventually be able to mirror the capabilities of Lisp, with slightly fewer parenthesis.

I've long been interested in Forth and variants. I came across STOICAL
a few years ago, and tried a few times to get it working, with not much luck.
Thanks to a tremendous wave of support from those who answered my questions
at HackerNews, and went far beyond. We now have a viable program that I'll
be working on for the forseable future.

Current goals are
  Fixup everything to use new name
  remove Debian package folder stuff (that I don't understand)
  Code Cleanup / Bug Fixes
  Documentation
  Many working examples

Note: If you install mstoical and find that backspace doesn't worrk correctly, you need to install readline, then run ./configure again, and reinstall

  sudo apt-get install libreadline-dev
  ./configure
  sudo make install

S  T  O  I  C  A  L					http://stoical.sf.net

(c) 2002 Jonathan Moore Liles

----Structure - -     -

STOICAL's implementation is based largely on my own feelings about efficiency.
I have written the source code in C so that it can interface with the libraries
that are at the heart of the Unix system. C, though, was not designed to make
writing threaded compilers easy. So, needless to say, the code isn't as pretty
now as it was when I started. STOICAL is still a very new language, despite its
roots. Surprisingly however, It possesses many features rarely found in even the
most modern languages, and even more surprisingly, it provides them in
combination. These include: POSIX Threading, POSIX Regular Expressions,
associative arrays, dynamic memory allocation, socket based networking,
floating point arithmetic, passive garbage collection, passive type-checking,
and more. A full description of these features can be found in the FEATURES
distribution file.

Of all the Forths that I have benchmarked, STOICAL has been the fastest by far.
However, for the sake of reasonable comparison these were all Forths written in
C. 

The system can run code written for STOIC, provided that it includes no CODE<
definitions, and does a minimum amount of pointer arithmetic. Practically, this
isn't a problem due to the fact that virtually no software has ever been
written for STOIC, and conceptually it is part of STOICAL's progressive outlook
on the future.

STOICAL has a fascinating history, I suggest you read all of the included
documentation.

----Compilation and Installation - -      -

STOICAL was developed with the help of Debian GNU/Linux. However, any other
modern Linux distribution should do fine, provided that you have the
appropriate development files and libraries installed. If you have any trouble
in this regard, then please utilize the forums and mailing lists, which may be
accessed through the web site at http://stoical.sf.net.

Use ./configure --help to see a list of available build options.  In a perfect
world all that you should be required to do is:

	./configure
	make
	su -c 'make install'
	(superuser password)

There are also some files that, unfortunately, must be installed by hand. These
are the Vim syntax highlighting and file type detection files located under
the vim/ directory of this distribution. You are encouraged to install these
in your ~/.vim directory, as they will greatly enhance your experience with
STOICAL. Emacs users have an editor that is a language in and of itself, and
therefore have no need for STOICAL; Or friends, for that matter ;-)

----Platforms - -        -

STOICAL has been built and tested on the following platforms:

Sparc - Linux 2.2 Debian 2.2
Alpha - Linux 2.2 Debain 2.2
PPC RS/6000 Linux 2.4 Debian 2.2
Intel x86/SMP Linux 2.4 Debian 2.3
Intel x86 - FreeBSD 4.5-STABLE (no threads)

If you would like to build STOICAL for a platform not listed here, please send
an email explaining your situation to the following address:

"stoical-support" <[email protected]>

----Documentation - -        -

During the build process, STOICAL will generate documentation from its C and
STOICAL sources. This, and other, more general documentation can be found under
the doc/ subdirectory.

----Examples - -       -

The examples/ tree contains sample source code that you should be able to run
immediately after building STOICAL (assuming that your build options were
compatible with the needs of the examples)

Of course there will be more to come. As always, documentation is a work in
progress.

------------- cut here -------------

If you enjoyed reading this README file, then please send $.02 USD enclosed
with a self addressed, stamped envelope to:

MATA Bus Stop,
Corner of 3rd and Main, Memphis TN
C/O Guy Who Smells Like Fish, Esq. III

I can't say to what use exactly your funds will be put, but I am quite certain
that you won't want to know about it. As to the envelope, I believe he recycles
them for pennies with the local stalkers. Did I mention that he looks uncannily
like Richard M. Stallman?


About

MStoical - a Forth like language, but better

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published