Skip to content

Compatibility Notes

Folds edited this page Apr 4, 2019 · 6 revisions

This project is an authorized dynamic fork, which started with version 3040 of the Osmosian Order's compiler and IDE. It also includes code from version 4700 of the Osmosian Order's compiler and IDE. This project is designed to be fully syntax compatible with the Osmosian Order's official releases. In special situations, compiler features are added to this project's compiler at the same time that they are added to the Osmosian Order's latest development version.

Versions 3001-3040 were published by the Osmosian Order of Plain English Programmers at www.osmosian.com . Each version was bootstrapped from the previous version.

Version 4700 is currently published by the Osmosian Order. It includes several syntax features that are not included in version 3040. Version 4700's executable can compile the source code for version 3040, but version 3040's executable cannot compile the source code for version 4700. The version 4700 syntax features are:

  • Multi-line headers, with alternate wordings
  • "reamish" files are not considered to be source code, so "writer" files and source code can be in the same project folder(s).
  • "can't" is a synonym for "can not" and "cannot", not "ca not".
  • synonyms for "backward"
  • more synonyms for "at" and "on".
  • similes are handled differently from other uses of "as".
  • new prepositions.

Version 4001 was the master version in this repository from April 28, 2017 through June 2, 2017. It supported version 4700's new syntax features, but did not make use of them. This means that version 4001 can compile the source code for version 3040, and vice versa. It also means that version 4001 can compile the source code for version 4700, and vice versa. 4001's compiler also added the following features:

  • Executables compiled by versions 3001-3040 and 4700 always return 0 upon completion.
    Executables compiled by versions in the 40xx series return a return code that can be changed at run time. This return code has been implemented in a way that is both forward- and backward-compatible.

Version 4010 was the master version in this repository from June 3, 2017 through June 9, 2017. It supported version 4700's new syntax features, and made use of them. This means that version 4010 can compile the source code for version 3040, but version 3040 cannot compile the source code for version 4010. Version 4010 can compile the source code for version 4001, and vice versa. Version 4010 can compile the source code for version 4700, and vice versa. 4010's compiler also added the following features:

  • "lexiconish" files are not considered to be source code, so spell-check lexicon files and source code can be in the same project folder(s).
  • Allow two-level projects. If the project folder contains a noodle subfolder, compile the source files in the folder and its immediate subfolders.

Version 4011 was the master version in this repository from June 10, 2017 through June 28, 2017. It supported version 4700's new syntax features, and made use of them. It was fully syntax-compatible with version 4010, and had the same cross-compatibility (with respect to other versions) as version 4010.

Version 4013 was the master version in this repository from June 29, 2017 through September 17, 2018. In addition to versions 4010's and 4700's new syntax features, it also treated "ain't" as a synonym for "isn't" and "aren't". This feature is part of the Osmosian Order's latest development version. Version 4013 can compile the source code for version 3040, but version 3040 cannot compile the source code for version 4013. Version 4013 can compile the source code for versions 4001-4011 and 4700. Version 4013's compiler's to test (the compiler) routine calls a routine to test (the compiler - parse ain't). Versions 4001-4011 and 4700 can compile version 4013 if (and only if) this call is commented out from version 4013's source code. Briefly, the 4013 feature is:

  • "ain't" is a synonym for "is not" and "are not", not "ai not".

Versions 4016 through 4018 are fully syntax-compatible with version 4013, and have the same cross-compatibility (with respect to other versions) as version 4013.

  • Version 4016 was the master version in this repository from September 18, 2018 through March 28, 2019.
  • Version 4017 was the master version in this repository from Mach 29, 2019 through April 3, 2019.
  • Version 4018 became the master version in this repository on March 29, 2019.