2018-03-07 15:34:07 +01:00
|
|
|
# Contributing
|
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
RETRO is an open-source project, but I am opinionated and may be
|
|
|
|
picky when accepting changes to the core language.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
## Repositories
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
### Fossil
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
I use fossil to manage the RETRO source.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
URL: http://forthworks.com:8000
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
### Git
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
I also provide a git mirror of the fossil repository.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
URL: https://git.sr.ht/~crc_/retroforth
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
## Mailing Lists
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
There are three mailing lists.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
- https://lists.sr.ht/~crc_/retroforth-announce
|
|
|
|
- https://lists.sr.ht/~crc_/retroforth-discuss
|
|
|
|
- https://lists.sr.ht/~crc_/retroforth-devel
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
## Bug Reports
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
You can email bug reports directly to me, report them in the #retro
|
|
|
|
IRC channel, or submit them to the online bug tracker at
|
|
|
|
https://sr.ht/~crc_/retroforth/trackers
|
2018-03-07 15:34:07 +01:00
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
## General Structure
|
|
|
|
|
|
|
|
There is a VM (implementations are in `vm`) named Nga. This implements
|
|
|
|
a MISC style processor and system specific I/O extensions.
|
|
|
|
|
|
|
|
The VM runs an image (implemented primarily in `image`, from `rx.muri`
|
|
|
|
and `retro.forth`) that provides the actual language and a standard
|
|
|
|
library of words.
|
|
|
|
|
|
|
|
System specific I/O extensions are provided and can be found in the
|
|
|
|
`interface` directory. These include things related to the actual
|
|
|
|
user interfaces, as well as wrappers to the I/O devices implemented
|
|
|
|
in the VM.
|
|
|
|
|
|
|
|
Examples can be found in the `example` directory. These are converted
|
|
|
|
to HTML with syntax highlighting and are published at http://forth.works
|
|
|
|
|
|
|
|
Documentation can be found in the `doc` directory. The Glossary is
|
|
|
|
managed via a CSV formatted database (`doc/words.csv`) which is edited
|
|
|
|
by `tools/glossary.retro`.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
|
|
|
## Legal
|
|
|
|
|
|
|
|
All contributions to the main sources (existing interfaces, kernel,
|
|
|
|
standard library) must be public domain or under the ISC license
|
|
|
|
(see LICENSE.md). Please add the appropriate copyright notices to
|
|
|
|
the LICENSE and/or source files.
|
|
|
|
|
2020-09-18 19:05:02 +02:00
|
|
|
New examples or tools can be under similar liberal licenses. Include
|
|
|
|
the copyright and license text in the sources.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
|
|
|
I will not accept contributions under the GPL, LGPL, AGPL, or other
|
2020-09-18 19:05:02 +02:00
|
|
|
licenses that are too long to reasonably embed in the header of a
|
|
|
|
source file.
|
2018-03-07 15:34:07 +01:00
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
I do builds under GCC and CLANG on FreeBSD, NetBSD, Linux, macOS,
|
|
|
|
and Haiku. I build RRE for Windows using TCC on a Windows box.
|
|
|
|
Changes to the source must build cleanly on all test systems.
|
|
|
|
|
|
|
|
Note that Haiku uses GCC 2.95.3 for backwards compatibility with
|
|
|
|
BeOS R5 so sources must compile on this as well as modern compilers.
|