Skip to content

Releases: blazingkin/blz-ospl

BLZ v2.6

17 Sep 16:33
Compare
Choose a tag to compare

Changelog for 2.6. A version with pictures is available on the language site

Version 2.6

  • Add blz -p list command line option to list loaded packages
  • Add exit(exit_code) to specify an exit code
  • Add raw_print(char) to print bytes
  • Changes to how packages are loaded. First try BPM packages, then BLZPACKES, then installation directory
  • Complete rewrite of block parsing
  • Improve parsing error messages
  • Improve runtime error messages
  • Functions now return last line evaulated by default
  • Allow all Array primitive methods to support !
  • Fix bug in ceil that gave incorrect results
  • Allow for overriding of < and == in constructors, other methods are inferred from these
  • The user-defined show method will be called on objects when attempting to cast them to strings
  • Add split_on_token to strings
  • Add to_json to strings, numbers, booleans, arrays, hashes and nil
  • Add nil? to objects
  • Add size and sample to arrays
  • Try Catch Blocks are now supported
  • Add {arguments} environment variable
  • Add read, read_line, read_all, and write to resources (files and network connections)
  • Add lambda using (arg1, arg2, arg3 -> expression) syntax
  • Add proper support for escape characters \# and \" in strings
  • Add string replace method to replace characters
  • Add throw builtin to throw custom values as errors
  • Add lexer to catch more syntax errors and correctly parse everything

Test Mode

  • blz -t source.blz another.blz runs all methods in the given sources that start with test

REPL

  • Supports blocks (for, while, if, methods) but not constructors

Test Package

  • Add expect, a testing framework
  • Add Expect::is, Expect::is_not, Expect::is_less_than, Expect::is_greater_than, Expect::is_nil, Expect::is_false, Expect::is_true (and example is expect(2 + 2).is(4))

JSON Package

  • Add parse_json(json_string) method that will parse json or throw a JSONError if the json is invalid.

CSV Package

  • Add parse_csv(string) method that will parse csv

Math Package

  • Add trig functions sin, cos, tan, cot, sine, cosine, tangent, cotangent

FileSystem Package

  • open(path, mode) allows for opening files
  • open_http(path), open_https(path), open_url(path) allow for opening network resources

Lists Package

  • Add LinkedList constructor
  • Add range(start_or_end, end) method to get easily get all integers in a range

Project Structure / Organization

  • Use maven to build
  • Add unit tests for many ASTNodes
  • Move parse classes to their own package
  • Clean up old unused code
  • Restructure Tests folder
  • Allow for error message testing

Other

  • Function names can now have : in the middle of them (please don't use this in production)
  • Add EXPERIMENTAL async builtin (please don't use this in production)

BLZ v2.5

16 Feb 17:48
39a20b9
Compare
Choose a tag to compare

There's a blog post with details, but here are the changes

  • Constructors
  • Core Library
  • Bang! operator
  • Import improvements
  • Performance improvements
  • More tests
  • Lots of bug fixes

BLZ-OSPL v2.4

22 Oct 07:38
Compare
Choose a tag to compare
  • Yet another AST parser / interpreting system (this is the best one yet)
  • Else is finally a supported language feature
  • Core package library, including helpful functions like print
  • Massive speedups
  • More test coverage

BLZ-OSPL v2.3

08 Aug 04:43
Compare
Choose a tag to compare

The biggest feature release yet:

  • Numbers are now unbounded
  • Completely new SimpleExpression system that is much faster and more consistent
  • Functions are now callable using the SimpleExpression system
  • Add Increment / Decrement operators
  • Huge additions to the internal testing suites
  • MASSIVE improvements to language performance

BLZ-OSPL v2.1

10 Jun 18:03
Compare
Choose a tag to compare

Simple Expressions, Rationals, Tests, Optimizations

With this release, the language starts a move to more intelligent parsing.

BLZ-OSPL v2.0

19 Apr 21:38
Compare
Choose a tag to compare
Merge pull request #1 from blazingkin/ReleaseCandidate1

Version 2.0

BLZ-OSPL v1.1R1

19 Apr 21:39
Compare
Choose a tag to compare
Updated gitignore and bat file

Adding class files to the gitignore and updating the bat file to work
with the new executable jar