Zxbasic

Latest version: v1.17.3

Safety actively analyzes 687918 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 13

1.6.8

===
+ ! Fixed some bugs in the assembler
+ ! Fixed a bug when calling a function in advance
+ ! Fixed a problem in tox, setting the terminal to UTF-8

1.6.7

===
+ Added more testing and bitbucket pipelines using tox
+ ! Do not optimize user inlined ASM. It must go as is.
+ Added option `--mmap` to generate memory maps
+ Added option `--ignore-case` to allow variable names to be case insensitive
+ ! Fixes optimizer bugs
+ ! Fix to make make it to work in python 2.7
+ ! Refactorize the assembler to use centralized configuration

1.6.6

===
+ ! Fixed a bug in constant evaluation
+ ! Allows non constant initialization of scalar variables like DIM a$ = "hi"
+ ! Fix bugs in the assembler not allowing complex expressions
+ ! Fix a rare crash when using functions before declaring them

[v1.4.0.x](https://github.com/boriel/zxbasic/tree/v1.4.0.x)
===

This is a long (near 3 year) set of versions in which the compiler
was refactored in many places. The compiler migrated from one-pass
no objects compiler to a multiple pass object like compiler.
This not only makes the code much more maintainable and elegant, but
also a bit faster.

Technical stuff:
Now the AST uses an heterogeneous AST pattern, allowing both children
traversal using indexes (and also primitives like `node.appendChild`)
and attribute traversal which depends on the `symbolTYPE` being parsed.
e.g. for `symbolBINARY` (binary expressions), we have `node.left`, `node.right`,
`node.operand`, but also `node.children[0]`, `node.children[1]`.

The major feature in this release is the posibility to declare nested functions.
These functions are declared within others, and can only be called from within
their respective parent function body.

1.3.0

===
+ ! Fixed a bug in `USR <string>`
+ ! Fixed a bug in `SAVE` / `LOAD`
+ ! Fixed a serious bug in the preprocessor
+ ! Fixed a bug with `DIM` and constants
+ ! Fixed a bug with `SHL`/`SHR` for 0 shifts
+ Added `-D` option. ZXBasic now allows commandline macro definition
+ ! Fixed a bug with `CODE` and `INKEY$`
+ ! Fixed a bug with string slicing assignation (e.g. `a$(3) = "x"`)
+ ! Fixed a bug with arrays of integer assignation (e.g. `a(3) = 5`, being a of Integer type)
+ ! Fixed a bug with peephole optimizer (`-O3`)
+ Some changes and code refactorization towards 2.x branch

1.2.9

===
+ ! Fixed a serious bug with ALL integer (signed/unsigned) operands
which were not working correctly under some circumstances.
+ ! Fixed some bugs which made the compiler to crash when a syntax error is found.
+ ! Fixed a bug in `ALIGN` (assembler)
+ ZXBasic python version is now PyPy compatible.
+ `RND` is now MUCH faster and produces better random patterns (thanks to Britlion)
+ Compiler speed is now almost 100% faster!
+ Some code optimization
+ Added a recursive pattern fill library with an example (thanks to Britlion)
+ Fixed some bugs in the preprocessor which prevented some chars to be written
+ Fixed a bug with `PRINT` and comma position
+ Fixed a bug in `PEEK` which was related to the backend
+ Fixed more than 50 other minor bugs in both the compiler and the assembler
+ `THEN` keyword is now optional in `IF` statements

1.2.8

===
+ Code rearranged and restructured for future deep refactorizations.
+ ! Complete rewritten backend (or almost!) to fix a bug in code
generation which was being suboptimal.<br />Now generated code is
much faster and take less memory than before!
+ Added support for Bitwise syntax (`|`, `&`, `~`)
+ Fixed some bugs in ASM
+ ! Fixed some bugs in the peephole optimized (`-O3`)
+ ! Fixed a bug with line continuation comments /' ...
+ ! Fixed bugs in ASM parser regarding to comments
+ Added `ATTRADDR()` function in `<attrib.bas>`
+ ! Many more bugs fixed related to `STRING` memory leak
+ ! Fixed a bug related to parameters.
+ Some optimizations for code size and speed for `FLOAT` types
+ Optimization for `STRING` parameters
+ Optimization for 32 bit values
+ ! Fixed a bug for `Uinteger`/`Integer` arrays assignation
+ ! Fixed 2 bugs in `CAST` operation and type conversion
+ ! Fixed a bug in `OVER` attribute during `PRINT`
+ Added PONG game example
+ ! Fixed a bug in `POKE`
+ ! `PRINT` optimized and slightly faster. Now fully compatible with
**Sinclair Basic** (no *Out of Screen* error on program exit)
+ ! `CSRLN` and `POS` optimized to this new `PRINT` scheme!
... and much much more

Page 10 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.