Releases: powerlang/egg
Releases · powerlang/egg
Release list
v0.3.0
Highlights since v0.1.17.
New modules
- EPM (Egg Package Manager): config-driven workflows —
new,init,start,dev,install,list,test. - ArgParser: command/option parser with parse-result objects, used by EPM and friends.
- Random: PCG XSH-RR PRNG.
- TOML: parser + writer with tests.
- SUnit: full test framework module, with
TestSuite class>>forModule:andTestSuite>>runDebugfor log-as-you-go runs. - Compiler.Tests module (
SmalltalkScannertests, etc.).
Compiler & Bootstrap
- New self-hosted Smalltalk compiler/parser stack: AST nodes, binding classes, environments, semantic visitor.
BootstrappedKerneland a refactor splittingBootstrapperintoLoader+SymbolProvider.- Catch2-based C++ tests for the parser, source loader, and compilation.
MethodDictBuilderabstraction extracted.- Tonel reader: support
Extensiontypes, comments, method category,$-escaped delimiters, block reader fix, sorted methods, class comments, tests. - LargeInteger encoded as little-endian bytes; parser cleanup.
- Inliner: never inline cascade messages.
- Parse/compile errors enriched with
file:line:colcontext.
VM / Runtime (C++)
- DNU support:
- VM dispatches DNU through
_doesNotUnderstand:with:rather than aborting. Runtime::sendLocal_to_*andEvaluator::messageNotUnderstood_now intern selectors viaaddSymbol_so unknown selectors raise a clean MNU instead of crashing.- Top-level
try/catchinMain.cppsurfaces runtime errors asError: ....
- VM dispatches DNU through
- Process / stack model:
ProcessVMStackbacked by an explicit per-process buffer, with newprimitiveProcessVMStackInitializeWith*primitives. - Ensure / non-local returns: VM ensure support, better closure non-local return unwinding,
returnTounderprimitive. - Primitives added:
HostExit, float-from-integer creation, additional float primitives, missing host primitives for the Pharo runtime, filesystem & env primitives, search-path module loading. - Hardening:
- SmallInteger arithmetic & bitwise overflow fallback; portable
intptr_tmul-overflow helper for MSVC. Float>>timesTwoPower:primitive fixed.StringReplaceFromToWithStartingAtbounds fixed.- Integer and
at:primitives hardened. commitMemoryUpTo_length calculation fixed in the allocator.DynamicSymbolProvidersymbol table now GC-protected.- Fail gracefully on module-load exceptions; warn (not abort) on missing primitive.
- Skip undermessage registration when the symbol is not yet interned (avoids stale
nullptr-keyed dispatch). failPrimitiveWith_helper.
- SmallInteger arithmetic & bitwise overflow fallback; portable
Kernel
String class>>new(delegates tonew: 0).ProtoObject _uLongAtOffset:/_uLongAtValidOffset:put:.WideSymbol class>>intern:operates on the argument.ProtoObject>>doesNotUnderstand:passes the receiver intoMessageNotUnderstood.ReadStreampeek methods refactored.- Property tables fixed.
MessageNotUnderstood class>>printOn:added.ensuresupport fixes.Float>>=only consults FPU status when the argument is also aFloat.
Module loader
- Relative module search paths; throw on missing module.
- Dotted module names and load-from-path supported.
Build & infra
- Build system migrated to a
conanfile.py; dropped-s compiler.cppstd=20workaround. - Default Debug builds now use
-O1for usable VM speed. egg_runtimelibrary extracted;bootstrapper_liblinked intocompiler_tests; declaredegg_runtime↔bootstrapper_libcycle.- Build dirs and settings.json ignored.
STONWriterinitialized on module load.
Documentation
- Updated README with building table and C++ platform status.
- Expanded contributor docs (style guides + runtime READMEs).
- Coding style extracted into CODING_STYLE.md.
- Git commit labelling format documented.
Tests
- New regression tests:
test182BitShiftRightFullWidth, additional bitwise/shift tests with a runnablemain:.
v0.1.17
Merge pull request #134 from powerlang/jp/more-webside Jp/more webside
v0.1.16
[ci: release] make release output go to release subdir, fix paths for…
v0.1.14
[ci: update] use checkout v4 instead of v3 in windows too
v0.1.13
Merge pull request #102 from powerlang/jp/macos-4gb Jp/macos 4gb
v0.1.12
image-segments: revert isString changes for building
v0.1.11
v0.1.9
ci: make windows build install pkg-config, take 3
v0.1.8
ci: make windows build install pkg-config, take 3
v0.1.6
ci: make windows build install pkg-config