C++ Yacc CMake Lex Shell C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Doc
bin/Linux-x86_64
obj
src
test
.clang-format
.gitignore
.travis.yml
Oopsilon.sln
README.md
appveyor.yml

README.md

Oopsilon logo

Windows Linux
Linux build status Windows build status

Oopsilon 05/2017 Platforms: Windows, FreeBSD, OS X, Linux

Overview

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.

Oopsilon

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.

Design

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:

Philosophy

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.

Licence

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.

FAQs

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 auto deducing 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.