This is the Oopsilon QS/L tree. This is the source code to the Oopsilon compiler and the Foundation library.
Oopsilon is an experimental programming system. For a fuller treatment of Oopsilon than provided in this readme, please see The Red Book.
The name is an acronym; it stands for Object Oriented Programming System Incorporating the Latest Object Theory and Innovative Thought. Oopsilon is a critical programming environment: it has a negative character, that is to say, it attacks conventional paradigms of programming. At the same time it proposes the way things might develop to build a better computing.
The language belongs to the Smalltalk family of programming languages, which is characterised by its total dynamic approach, pure object-oriented paradigm, and a measure of similarity to the functional languages (the language feature Blocks is essentially form of lambda function; blocks are used extensively.)
Several documents related to the design of Oopsilon are available:
- The Red Book: Oopsilon '17: The Language and its Implementation is the Oopsilon reference manual. Start here.
- Oopsilon Implementation Diaries: some reports on how Oopsilon is being implemented.
Oopsilon takes as its starting point the idea that nothing can be taken for granted: we must attempt to negate everything that is given. The meaning of critique is shown in such works as Kant's Critique of Pure Reason or Adorno's 'Negative Dialectics.' Not coincidentally, these thinkers enumerated above are great philosophical influences on Oopsilon.
Oopsilon's source code, herein defined as that code found within this repository, is available for use under the terms of the Peer Production Licence; please see CPYRIGHT for further information.
Alternatively, Oopsilon's source code may be used under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike (Scotland) Licence 2.5; please find these terms in full at creativecommons.org.
A few frequently asked questions about Oopsilon:
On what platforms does Oopsilon work?
- FreeBSD, DragonFly BSD, NetBSD, OpenBSD, OS X
- GNU/Linux, Musl/BusyBox/Linux
- Solaris, OpenIndiana
- Windows, ArcaOS, OS/2
How is Oopsilon built?
- Oopsilon leverages the CMake build system for building the C/FL consolidation.
- Building the QS/L Distribution requires a modern C++ compiler.
- The build is tested with Microsoft C/C++ Optimising Compiler 19.0 (MS Visual Studio 2017,) with GNU G++ 5.4.0, and with Clang 3.8.0.
- Other compilers may work but are untested. If you make it work, please consider contributing your efforts.
- Support for Open Watcom is desirable but not yet available. If Open Watcom
adds C++11 ranged loops and the
autodeducing type, it should work.
- The Fast Lexical Analyser FLEX is required for building.
- The QS/L Distribution is built with Nightly, a build script which prepares the build and then invokes CMake to build the consolidation. It is documented in Nightly.