Releases: rail5/bashpp
Releases · rail5/bashpp
v0.5.0
VSCode Extension v0.5.2
- Brought syntax rules up to speed with Bash++ v0.5.0 by adding support for the
@super
keyword - Specially-highlight the
@this
and@super
keywords even when followed by a "dot chain"- I.e.,
@this.innerObject.method
should show@this
highlighted as a keyword, and.innerObject.method
highlighted as an object reference - Previously, the entire string was simply highlighted as an object reference
- I.e.,
- Bug fix: properly highlight
@this
and@super
as keywords within double-quoted strings - Also properly highlight
@{this}
and@{super}
as keywords
v0.4.16
v0.4.15
- Spec: Fixed whatis entry
- DPKG: Install STL in libstd-bpp package
- Distribution bug fix: Store STL files without extensions in source
- STL: Shared data structures now all inherit from SharedObject base
class
SharedObject base class now also provides extended locking
mechanisms to allow a single process's lock to persist across
several distinct read-write operations, before being unlocked again
for other processes to use.
Calling the .lock method and the .unlock method respectively will
accomplish this. - Behavior change: allow dynamic cast rvalues to be empty/unset
without throwing an error
Simply return nullptr in that case - Bug fix: Properly identify lvalues within supershells within dynamic
casts
Again, the lexer needs to be fully overhauled.
Work has at least nominally began on this but will take time
v0.4.12
v0.4.11
- STL: Added SharedArray class for use by multi-process concurrent
applications - Bug fix: lvalue vs. rvalue identification inside test conditions
If we see what would ordinarily be a connective (such as || or &&)
inside a test condition (ie, [[ condition ]] or [ condition ] ),
then, unlike in the ordinary case for a connective, the next token
cannot be an lvalue - Build system: parallel STL builds
- Bug fix: Input redirection in bash while loops
- STL: Re-added Array class
- Bug fix: Multi-value array assignments
Object assignments in which the rvalue was a decently-populated
array previously failed and only inserted the first element of
said array. Obvious oversight, now fixed, and arrays are copied
in full
v0.4.10
- Additions to the standard library:
Added SharedQueue class for concurrent multi-process access to the
same queue.
Added SharedStack class for concurrent multi-process access to the
same stack
SharedQueue and SharedStack are data structures that are safe to use
among multiple forked processes concurrently. They use the
filesystem as a back-end for the stored data.
Reads and writes are atomic and concurrency-safe.
The data can be encrypted for security.
Here is an article about this addition:
https://log.bpp.sh/2025/06/17/multiprocess-concurrency-shared-data-structures.html
v0.4.9
- Bug fix: Make static 'inaccessible entity' placeholders inline so
that each unit shares the same definition
Note also that this is (AFAIK) a C++17-and-later feature, that
inlining the definition should result in there being only one
definition across multiple units
If we don't do this, scope checks will always fail
v0.4.8
v0.4.7
- Safer dynamic casting
- Lexer: Properly determine lvalues v. rvalues in the context of
two-token bpp commands like dynamic_cast and new - Removed dead code
- Bug fix: Properly handle subshell pre-code and post-code
- Bug fix: Properly scan the entity stack for the latest code entity
Now we have a function: BashppListener::latest_code_entity() which
traverses the entity stack until it finds the most recent code entity
and returns it. - Bug fix: Maintain one global list of includes
This fixes a particular bug, where, for example:
File A includes File B using include_once
File B includes File C using include_once
We return from parsing File B
File A includes File C using include_once
With each file having its own include list, 'C' would've been added
to B's includes but not A's. So A wouldn't have known not to try
including it again. Now we have a single global include list, and
each parse holds a pointer to it - Bug fix: Protect against direct system method access
Object reference rules should block ids with double underscores - Bug fix: Allow system methods to be referenced before they're fully
defined