João v2.0.1
This update focuses on making João more optimized, while also squashing a bunch of bugs.
Optimizations 🏃♀️
- Fixed the Scope class being accidentally copied every time it was used for variable access, resulting in João now running more than twice as fast.
- Removed a few unnecessary string copies, resulting in an additional ~10% speedup.
- The
Scopelet
internal struct no longer has a superfluous string member. Resulted in a 1.4% speedup.
Features 🔋
- The
/file
methods are now better about reporting errors when opening, reading, and writing to files. /file.open()
's second argument, to determine whether the file (if existing) is blanked, now does not require the 2nd argument to be aBool
; it is cast into one implicitly.- João no longer produces a weird temporary file when used in interactive mode.
Bugfixes 🧼
- Fixed member accesses returning a Value of
Function
type with anullptr
inside whenever a member access fails. João safely throws aBadMemberAccess
runtime instead. - Fixed minor memory leak associated with interactive mode.
- Fixed the
typeof()
function not giving reasonable results for Values of typeNull
orFunction
. - Fixed parse failure when using the
../
scoping operator repetitively.