Releases: TeamShadow/shadow
Shadow Reference Compiler 0.8
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 usinggcc
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
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
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, includingnullable
arrays - Simplified singleton usage
- Unified
extends
andimplements
keywords intois
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
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