Releases: bamless/jstar
Releases · bamless/jstar
J* version 1.9.2
J* Version 1.8.6
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
- Bugfixes
J* Version 1.8.2
- 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
- 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
- Reworked import system.
Now, upon executing animport
statement, the module name will be defined in the current scope instead of the global one. Same thing applies to the names of animport 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__
- Bitwise and operator
- Prefix
- Bitwise complement
~
. Overload__invert__
- Bitwise complement
- Infix:
- When applied to
Number
s, 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 than2^32 - 1
or smaller than0
, 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
- Removed
then
anddo
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
andwhile
possible withoutthen
ordo
. - Obviously, now
then
anddo
are no longer resserved and can be used as names!
- Reworked CLI app to work without
then
anddo
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
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 theIterable
class as methods.toList
has been removed in favor of theList
constructor.- Added a
sum
method toIterable
that consumes it and returns the sum of its elements. - Added
toList
,toTable
andtoTuple
methods toIterable
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 ofOP_FOR_PREP
,OP_FOR_NEXT
andOP_FOR_ITER
to cache more aggressively and reduce stack manipulation.
- Added a new instruction
- 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 inIFilter
- Removed unused const type in the
.jsc
file format
J* Version 1.5
J* Version 1.4.1
- 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