Skip to content

Releases: bamless/jstar

J* version 1.9.2

28 Nov 16:59
Compare
Choose a tag to compare
v1.9.2

J* version 1.9.2

J* Version 1.8.6

12 Jul 23:03
Compare
Choose a tag to compare

J* AUR page

New and improved cli:

  • Replaced linenoise-ng with replxx
  • Added multiplatform output coloring
  • Added syntax highlighting
  • Various other quality of life changes

J* Version 1.8.4

05 May 11:21
Compare
Choose a tag to compare

J* Version 1.8.2

04 Apr 00:53
Compare
Choose a tag to compare

J* AUR page

  • Slight changes to core library
  • Moved join method from String class to Iterable class
  • Added new standard iterators: ConcatIter, TakeIter, SkipIter
  • Added support for Tuple/List concatenation using +
  • Added * overload to String for construction of repeated strings
  • Minor bugfixes

J* Version 1.8.1

16 Mar 14:36
Compare
Choose a tag to compare

J* AUR page

  • Bugfixes
    • Fixed bug in 'compiler.c' during compilation of 'unpacking' assignments/variable assignments
    • Fixed bug in 'jstarc' regarding construction of output path during directory compilation
  • Quality of life changes
    • jstarc app now outputs colored output on compilation errors
    • Better handling of paths in jstarc app

J* Version 1.8

08 Mar 16:19
Compare
Choose a tag to compare

J* AUR page

  • Reworked import system.
    Now, upon executing an import statement, the module name will be defined in the current scope instead of the global one. Same thing applies to the names of an import for statement. This is more consistent with the rest of the language that always defines names in the closest surrounding scope
  • As a consequence of the changes to the import system, the import ... for * syntax is not allowed anymore
  • Can now overload the power operator ^ using the __pow__ overload method
  • Added bitwise operators to the language:
    • Infix:
      • Bitwise and operator &. Overloads: __band__ and __rband__
      • Bitwise or operator |. Overloads: __bor__ and __rbor__
      • Bitwise xor operator ~. Overloads: __xor__ and __rxor__
      • Bitwise left shift operator <<. Overloads: __lshift__ and __rlshift__
      • Bitwise right shift operator >>. Overloads: __rshift__ and __rrshift__
    • Prefix
      • Bitwise complement ~. Overload __invert__
  • When applied to Numbers, bitwise operators implicitly convert the arguments to 32-bit unsigned integers and then perform the operation. Thus, one should be careful when using numbers greater than 2^32 - 1 or smaller than 0, as overflow wrapping will take place.
  • Quality of life changes in the jstar app, especially regarding multi-line input
  • Minor fixes in the jstarc app

J* Version 1.7

20 Feb 15:52
Compare
Choose a tag to compare

J* AUR page

  • Removed then and do keywords from the language.
    • This declutters the source code significantly
    • Thanks to the fact that we don't accept side-effect-free expressions as statements, we don't really need to check for a newline between the condition and the start of the block, making one-line if, for and while possible without then or do.
    • Obviously, now then and do are no longer resserved and can be used as names!
  • Reworked CLI app to work without then and do keywords.
    Furthermore, some modifications have been implemented that should make the cli handle multi-line input better.
  • Minor bugfixes and performace improvements

J* Version 1.6.1

16 Feb 19:16
Compare
Choose a tag to compare

J* AUR page

Changelog of versions 1.6 and 1.6.1:

  • Slightly changed the structure of the core library:
    • any, all, reduce and other free-functions that operate on iterables have been moved in the Iterable class as methods.
    • toList has been removed in favor of the List constructor.
    • Added a sum method to Iterable that consumes it and returns the sum of its elements.
    • Added toList, toTable and toTuple methods to Iterable that consume it and return the appropriate collection.
    • The IZip iterator can now "zip" only two iterables instead of a variable amount.
  • Faster foreach execution:
    • Added a new instruction OP_FOR_PREP that is responsible for caching the __iter__ and __next__ methods on the stack for faster method calls
    • v1.6.1: modified the behaviour of OP_FOR_PREP, OP_FOR_NEXT and OP_FOR_ITER to cache more aggressively and reduce stack manipulation.
  • Better error reporting on binary file deserialization errors
  • Slight changes to jsrDisassembleCode API, that now takes in a filepath to be used in error reporting
  • Bugfixes:
    • v1.6.1: Fixed a bug that broke the iteration protocol by calling __next__ multiple times in IFilter
    • Removed unused const type in the .jsc file format

J* Version 1.5

31 Jan 15:28
Compare
Choose a tag to compare

J* Version 1.4.1

05 Dec 00:15
Compare
Choose a tag to compare
  • Added new static syntax to the language for defining module-private function, classes and variables
  • Modified standard library to make use of new static functionality
  • Corrected minor bugs in compilation to file code
  • Other small bugfixes

J* AUR page