Skip to content

Releases: TeamShadow/shadow

Shadow Reference Compiler 0.8

24 Aug 01:49
95012e6
Compare
Choose a tag to compare
Pre-release

This Shadow Reference Compiler 0.8 Beta release includes the following major language features:

  • Classes
  • Interfaces
  • Singletons
  • Exceptions
  • Fields and local variables
  • Methods
  • If and switch statements
  • Loop structures
  • Arrays
  • Immutable classes and references
  • Operator overloading
  • Generics
  • Standard library
  • Garbage collection

Improvements over the previous release:

  • Pure clang support (instead of using gcc as the linker)
  • Native x64 Windows binaries (instead of only x86 binaries that require MinGW)
  • More useful Console methods
  • Better installation scripts
  • Countless bug fixes

Although this release seems like a minor upgrade in terms of features, the exception handling is vastly improved with many bugs removed. Also, the move to pure clang makes it easier to link in libraries in C from the Linux, macOS, and Windows platforms, especially since clang has become such a mature toolchain. The greater interoperability with existing C libraries makes threading an easier challenge. One risk is that tighter coupling with existing libraries will make Shadow less platform-independent. This release marks a significant departure in code generation for Windows platforms compared to the others.

Major language features not included in this release are:

  • Threading and message passing (though these features are in active development)
  • Method references
  • Local methods (closures)
  • Enums

Other smaller issues not included are:

  • Faster and more accurate conversion from floating-point values to String representations and back
  • Standard library classes for networking, GUI, and many other useful things

Shadow Reference Compiler 0.7.5

28 Jul 19:14
Compare
Choose a tag to compare
Pre-release

This Shadow Reference Compiler 0.7.5 Beta release includes the following major language features:

  • Classes
  • Interfaces
  • Singletons
  • Exceptions
  • Fields and local variables
  • Methods
  • If and switch statements
  • Loop structures
  • Arrays
  • Immutable classes and references
  • Operator overloading
  • Generics
  • Standard library
  • Garbage collection

Syntax changes:

  • All inner classes are now "static" in the sense that they are not connected to a particular outer class object
  • No more multi-dimensional arrays: Shadow only has arrays of arrays (like Java), no single arrays with multiple dimensions (like C#)

Improvements over the previous release:

  • Addition of reference-count garbage collection
  • Move to Antlr4 for the grammar, simplifying many aspects of the compiler
  • More parse errors reported (instead of quitting after a single parse error)
  • Extensions to make it easier to call C code from Shadow (and Shadow code from C)
  • All generic classes are generated at compile time, removing the need for a complicated dynamic run-time generic (and array) class generation system
  • Improved compilation speed
  • Much better Mac support
  • Partial compilation to optimized .bc binary bitcode files instead of the unoptimized, bulkier, human-readable .ll IR files
  • Expanded standard library
  • Dynamic creation of generic class objects when necessary
  • Shorter and less repetitive type-checking errors
  • LLVM 3.8 and higher support (addressing a breaking change in LLVM IR syntax)
  • Better integration with Eclipse plug-in
  • Better installation scripts
  • Countless bug fixes

Major language features not included in this release are:

  • Threading and message passing (though these features are close)
  • Method references
  • Local methods (closures)
  • Enums

Other smaller issues not included are:

  • Faster and more accurate conversion from floating point values to String representations and back
  • Standard library classes for networking, GUI, and many other useful things

Shadow Reference Compiler 0.6

02 Mar 02:41
Compare
Choose a tag to compare
Pre-release

This Shadow Reference Compiler 0.6 Beta release includes the following major language features:

  • Classes
  • Interfaces
  • Singletons
  • Exceptions
  • Fields and local variables
  • Methods
  • If and switch statements
  • Loop structures
  • Arrays
  • Immutable classes and references
  • Operator overloading
  • Generics
  • Standard library

Improvements over the previous release:

  • Greatly improved compilation speed
  • Documentation tool Shadox for automatically generating documentation
  • Partial compilation
  • Expanded standard library
  • Full implementation of nullable references, including nullable arrays
  • Simplified singleton usage
  • Unified extends and implements keywords into is keyword
  • Countless bug fixes
  • Dynamic creation of generic class objects when necessary
  • Shorter and less repetitive type-checking errors
  • LLVM 3.7 and higher support (addressing a breaking change in LLVM syntax)

Major language features not included in this release are:

  • Memory management
  • Threading and message passing
  • Method pointers
  • Local methods (closures)
  • Enums

Other smaller issues not included are:

  • Better data flow and control flow analysis for improved optimization
  • Faster and more accurate conversion from floating point values to String representations and back
  • Standard library classes for networking, GUI, and many other useful things

Shadow Reference Compiler 0.5

17 Oct 15:49
Compare
Choose a tag to compare
Pre-release

This Shadow Reference Compiler 0.5 Beta release includes the following major language features:

  • Classes
  • Interfaces
  • Singletons
  • Exceptions
  • Fields and local variables
  • Methods
  • If and switch statements
  • Loop structures
  • Arrays
  • Immutable classes and references
  • Operator overloading
  • Generics
  • Bare-bones standard library

Major language features not included in this release are:

  • Memory management
  • Threading and message passing
  • Method pointers
  • Local methods (closures)
  • Enums

Other smaller issues not included are:

  • Partial compilation
  • Expanded standard library
  • Better data flow and control flow analysis for improved optimization
  • Faster and more accurate conversion from floating point values to String representations and back