Biscuit Language - releases

0.9.0 - BETA (Apr 11, 2021)

Documentation

File Platform Kind
blc-0.9.0-win64.zip Windows Binary
blc-0.9.0-macos.zip macOS Binary
blc-0.9.0-linux.zip Linux Binary
blc-0.9.0-source.zip Source

Change log


Use LLD as default linker on Windows and Linux (experimental on macOS).
Update command line arguments to match unix common naming standarts.
Improve build system api and remove some obsolete functions.
Change build pipeline to call compile/compile_all explicitly.
Fix switch related parser bugs.
Fix unit mixing when using multithreaded build pipeline.
Add support of shared library output.
Add cmake build target Utils.
Add hash into CodeLocation.
Add namespace support.
Add unnamed symbols. (underscore used as name is not inserted into scope)
Add support of inline function group members.
Use faster custom system library and SDK lookup on Windows.
Compiler now reports unused private or local symbols.
Cleanup modules.

0.8.0 - BETA (Jan 8, 2021)

Documentation

File Platform Kind
blc-0.8.0-win64.zip Windows Binary
blc-0.8.0-macos.zip macOS Binary
blc-0.8.0-linux.zip Linux Binary
blc-0.8.0-source.zip Source

Change log


Migration to LLVM 11.
Add multiple return values and group declarations.
Add automatic documentation generator (-docs flag).
Add debug allocator.
Add new FileSystem module.
Add #import directive for modules
Add BL Doctor for better unit testing.
Add first prototype of modules and #import hash directive.
Add support of shebang and silent execution.
Add -silent and -rs options.
Add -verify-llvm option to enable LLVM IR verification.
Add modules: thread, sync, fs
Add forward of command line arguments into bl executed by interpreter (-r, -rs).
Add multithread compilation.
Support custom allocators in containers.
Compiler now returns numerical maximum error code if compilation fail.
Less descriptive terminal output during compilation.
Fix segfault on error get line.
Fix invalid character when comment block is very last in source file.
Fix garbage in unknown symbol reports.
Fix attempt to generate type info for incomplete types referenced by aliases.
Fix invalid multi-line string literals parsing.
Fix usage of function call to initialize loop iterator.
Fix invalid generation of more complex PHI expressions.

0.7.1 - BETA (Sep 13, 2020)

Documentation

File Platform Kind
blc-0.7.1-win64.zip Windows Binary
blc-0.7.1-macos.zip macOS Binary
blc-0.7.1-linux.zip Linux Binary
blc-0.7.1-source.zip Source

Change log


Fix nested self-references to incomplete types.
Fix crash on incomplete struct RTTI generation.
Fix crash error report at the end of file.
Fix invalid report for duplicate arguments.
Fix invalid duplicate switch value checking.
Fix invalid IS_DEBUG builtin value in debug mode.

0.7.0 - BETA (Jul 26, 2020)

Documentation

File Platform Kind
blc-0.7.0-win64.zip Windows Binary
blc-0.7.0-macos.zip macOS Binary
blc-0.7.0-linux.zip Linux Binary
blc-0.7.0.zip Source

Change log


 DI generation reimplemented.
 Memory allocations provided via allocator API.
 Unit testing reimplemented to support native code testing.
 Speed up compilation with use of llvm.memset intrinsic for default values.
 Add default variable initialization.
 Add noinit hash directive for variables.
 Add builtin dynamic array.
 Add slice_init and slice_terminate builtins.
 Add -no-vcvars to disable VS environment injection.
 Add implicit cast from dynamic array to slice.
 Add support of Tracy profiler.
 Add function call default argument values.
 Add #call_location hash directive.
 Add default argument type inferring.
 Add explicit function overload.
 Fix invalid type ID generation for incomplete structure types.
 Fix naming of array types in type info.
 Fix number serialization in print.
 Fix invalid insertion of empty vargs.
 Fix invalid casting of volatile-typed expressions.

0.6.0 - BETA (May 5, 2020)

Documentation

File Platform Kind
blc-0.6.0-win64.zip Windows Binary
blc-0.6.0-macos.zip macOS Binary
blc-0.6.0.zip Source

Change log


Add implicit cast from array to slice. (Fixed compile time vs constant IR code emit).
Fix invalid conversion of the sizeof result to Any.
Fix local functions in nested scope.
Fix nested function implicitly capturing members of upper scope.
Fix segfault on global initializer nesting.
Fix LLVM cast assertions on string array to slice conversion.
Fix invalid sizeof operator result on array elem values and struct memers.
Fix lambda functions inside nested scope.
Add implicit conversion from pointers to bool.
Add union data type.
Add support of Windows terminal color output.
Add testing formaters for printing float values.
Add support of MSVC CoveView and PDB debug database generation via LLVM API.

0.5.2 - BETA (Feb 3, 2020)

File Platform Kind
blc-0.5.2-win64.zip Windows Binary
blc-0.5.2-macos.zip macOS Binary
blc-0.5.2.zip Source

Change log


Add support of user defined struct member tags.
Add BL Build System.
Improved builtin API.
Better Windows support.
Bugfixes.

0.5.1 - BETA (Dec 1, 2019)

File Platform Kind
blc-0.5.1-win64.zip Windows Binary
blc-0.5.1-macos.zip macOS Binary
blc-0.5.1-linux-x86-64.tar.xz Linux Binary
blc-0.5.1.zip Source

Change log


Complete rework of compile-time value representation.
Command line arguments are now presented in command_line_arguments global.
Custom executable startup (removed dependency on crt on macos and linux).
Structure inheritance.
Switch statement.
No need to write semicolons after functions and typedefs in global scope.
Structure members are now separated by semicolon.
Enum variants are now separated by semicolon.
Bugfixes.

0.5.0 - BETA (Oct 1, 2019)

Change log


Statical runtime type info.
Fix global immutables.
Configuration file generation.
Improve documentation.
Defer statement.
DWARF generation.
Basic STD functions.
Experimental wrappers for SDL2, SDL2_Image and Vulkan.
Two new demos.
Vim syntax highlighter.

0.3.1 - BETA (Aug 26, 2018)

Change log


Initial release.
LLVM basic features.