Skip to content

Releases: HassiumTeam/Hassium

Hassium Version 4.2.0

08 Sep 01:33
Compare
Choose a tag to compare

New

Added the until loop (inverse of while loop).
Added support for overloading the operators on switch case statements with the syntax case [op] <val>.
Added user defined properties.
Added constructors for builtin Types module. Can do str = string (45);, etc.
Added global eval function for compiling a source string to a module object.
Added global function help for displaying helpdocs to the screen for a func or class.
Added global functions for getting docstring data, getdocdesc, getdocoptparams, getdocparams, and getdocreturns.
Added support for docstrings with the following format:

# @desc Class containing the test method.
# @returns MyClass
class MyClass {
    # @desc Constructs a new MyClass and returns it.
    # @returns The new MyClass object.
    func new () {
    }

    # @desc Prints the given messages to the screen.
    # @param msg The first additional message.
    # @optional params msgs The other messages to print.
    # @returns null.
    func test (msg, params msgs) {
        println (msg);
        foreach (msg_ in msgs) {
            println (msg_);
        }
    }
}

Fixed

Major memory leak with expression statements.
REPL weirdness.

Hassium Version 4.1.0

24 Aug 22:37
Compare
Choose a tag to compare

New

Added a package manager with the argument --pkg.
Added REPL to Hassium with the argument -repl.
Added compiler warnings.
Added source location error reporting for unhandled exceptions.
Added a Makefile.
Added peek, pop, push methods to list.
Made types modifiable.

Fixed

Major speed improvements, speed on average has been improved by ~500% on fibs testing.
Some minor bugs with StopWatch and StringBuilder.

Hassium Version 4.0.0

16 Aug 03:16
Compare
Choose a tag to compare

New

Once again, Hassium has been rewritten from scratch and changed from the core. The compiler and runtime environment are more efficient and capable of delivering the programmer a high-quality development experience. Some of the major changes to the language include a switch in naming conventions for functions and locals to an all lowercase and shortened format, similar to Python, as well as a sane type system and a more functional try catch implementation.

Fixed

Numerous bugs from Hassium V3.X have been fixed, such as empty stack exceptions, is operator failures, and a typing system that required the user to be in the context of the type.

Hassium Version 3.3.0

13 Sep 03:22
Compare
Choose a tag to compare

New:
Added support for concise comparison. Example a > b <= c
Added labels and gotos. Syntax <labelName>: <code> goto <labelName>
Added the do-whlie loop. Syntax do <statement> while (<expression>)
Added multi-assignment. Syntax <var>, <var>, <var> = <value>
Let switch-case statements specify which operator they use instead of just ==. Syntax case <operator> <value>
Added using keyword to dispose of objects. Syntax using (<var> = <value>) <body>
Added the thread do statement to automatically start a thread. Syntax thread do <statement>
Added the BitConverter class to the Types module.
Added the unary ! factorial operator.
Added the binary `<=>swap operator. Added thelength``property to the``BitArray`` class and made it iter-able.

Fixed:
Fixed division not returning a float.
Fixed the && operator not being parsed.
Fixed bools not working with && and `||``
Fixed symbol table error with one line funcs.
Fixed crashing bug if home drive environment variable is not set.

Hassium Version 3.2.0

28 Aug 22:36
Compare
Choose a tag to compare

New:
Added Drawing module with Bitmap and Color classes.
Added private Traits.

Changed:
Changed args to be an optional parameter to main instead of a global variable.
Changed generic exception message.
Changed exception message for private member access.

Fixed:
Fixed the scanning of integer literals in the lexer.

Hassium Version 3.1.4

27 Aug 17:59
Compare
Choose a tag to compare

New:
Added private class members with the priv keyword. See Classes wiki for details.

Fixed:
Let tuples be passed as a variadic parameter.

Hassium Version 3.1.3

27 Aug 06:03
Compare
Choose a tag to compare

New:
Added variadic parameters with the params [name] parameter (see wiki on functions).
Added support for functions inside of functions.
Added support for classes inside of functions.
Added the returnValue property to threads.
Added the DirectoryInfo class to the IO module.
Added the -s --show-tokens flag to show lexer tokens.
Added the -t --time flag to show execution time.

Fixed:
Fixed bug with scanning int literals in an attribute access context.

Hassium Version 3.1.2

26 Aug 05:50
Compare
Choose a tag to compare

New:
Added thread statement. Syntax thread { #body }. Read wiki for information.
Added null-coalescing ?? operator.
Added set property to FileReader.position.
Added exception handling for attempts to set readonly properties.

Fixed:
Fixed builtin property setting bug.

Hassium Version 3.1.1

25 Aug 07:52
Compare
Choose a tag to compare

New:
Added initial attribute setting for function returns. Sytnax c = new MyClass () { attrib = val, attrib2 = val2 };
Added enforced variable typing. Syntax <type> <name> = <value>
Added getBit and setBit functions to char and int.
Added global printf function.
Added iter to dictionary.
Added ^ xor operator.

Fixed:
Fixed how labels are imported, makes things faster.
Issues with string.format.

Hassium Version 3.1.0

24 Aug 07:07
Compare
Choose a tag to compare

New:
Added the global keyword, used to define global variables. Syntax: global x = 3;
Added the defining of global variables outside a function or class declaration.
Added VM exception handling for FileNotFound.
Added BitArray class to the Types module.
Added DateTime class to the Util module.
Added FileInfo class to the IO module.
Added getImports function to module class.
Added getBit and setBit functions for manipulating bits to the integer and char types.

Fixed:
Typo in the CGI class.
Bug with invoking modules.
Bug with string.format.