Releases: Matanek/Silex
Release list
Silex v0.47.1
Why upgrade?
This release reduces small-allocation costs in native Windows programs on
both ARM64 and x64. The default backend remains native on all six platforms;
language and ownership semantics are unchanged.
Changes
- The Windows ARM64 and x64 native backend uses the system heap for strings,
collections, classes, and copy/collection callbacks instead of reserving
virtual memory per allocation. Adapters preserve scratch and SIMD registers;
value and ownership semantics remain unchanged. - Distribution qualification now checks allocation, copying and cycles, then
fixed work in Debug and Release, on every native target. Measurements remain
separate from correctness tests. - The historical 0.47.0 notes distinguish shared changes, target-specific
mechanisms and the actual scope of measurements.
The fixed-work diagnostic
compares the Windows candidate with 0.47.0 on the same host, with twelve Release
samples per configuration: medians move from 146.25 to 11.69 ms on x64 and from
178.10 to 14.94 ms on ARM64. These results include process startup and do not
predict application-level speedups. Linux and macOS x64 retain their existing
allocation paths; their extension remains unfinished and no gain is claimed.
Impact and migration
Recompile Windows programs to use the new allocator. No source migration or
backend change is required.
Silex v0.47.0
Why upgrade?
This release restores the native backend as the default on every host,
including macOS ARM64. It reduces allocation and copying costs in native
programs and fixes lifetime and code-generation errors in both backends.
Changes
run,test, andcompilewithout--backendnow selectnative.
LLVM remains explicitly available on macOS ARM64 through--backend llvm.- On macOS ARM64, small native allocations use the system heap
(calloc/free) instead of a memory mapping per allocation. A
fixed-work CCD diagnostic
in Release, with 16 bodies, four moving walls, and 24 steps, measures
16.48–17.06 ms/step before and 1.70–2.51 ms/step after this change,
with identical physics code and final states. These two measurement pairs
isolate allocator cost: they are neither a guaranteed general speedup nor
a complete comparison between published versions. - The ARM64 native backend narrows nested aggregate copies, admits more scalar
regions, and optimizes checked-view kernels. It correctly preserves SIMD
registers and floating-point components across calls. - LLVM fixes recursive class-graph copies, tagged-enum equality, inherited
calls, resources, collections, and callbacks. Both backends strengthen cycle
collection and preservation of descendants that are still live. - The compiler releases unneeded analysis data earlier and bounds temporary
memory used by some analyses and evaluations.
Impact and migration
On macOS ARM64, add --backend llvm to retain the default backend used in
0.45–0.46. Other hosts keep their existing default. Recompile your programs to
benefit from the fixes; no syntax migration is required. The figures above
apply only to the stated native macOS ARM64 diagnostic, not other
architectures or application FPS.
Silex v0.46.1
Why upgrade?
This release prevents an older Silex installation from blocking silex login
when its authentication directory still has overly broad permissions.
Changes
- The client automatically tightens a legacy storage directory to
0700when
it does not contain a registry credential yet. - It continues to reject symbolic links and any credential found in a
directory that another local user may have been able to read.
Impact and migration
No manual action is required when the directory does not contain a registry
credential yet. A credential already present under permissive directory modes
remains rejected and must be revoked before signing in again.
Silex v0.46.0
Why upgrade?
Authors who publish packages regularly can remain signed in to the Cloudflare
registry without reauthorizing GitHub every day.
Changes
silex loginnow keeps access for 30 days. Publishing or running
silex loginrenews it automatically when seven days or less remain,
for up to 90 days after the initial GitHub authorization.silex logoutstill revokes registry access and removes the local copy
when the service is reachable.
Impact and migration
The official registry preserves the 24-hour flow for Silex 0.45.0 clients.
Update Silex to use the longer connection. GitHub authorization is required
again after 30 days of inactivity or after 90 days at the latest; no Git
repository or additional permission is required. Public installs remain
anonymous.
Silex v0.45.0
Why upgrade?
This release prepares package publishing and installation through the
Cloudflare registry. It can publish a snapshot of a local directory without a
Git repository and keep versions installable independently of the author's
repository. It also adds language expressions and extends the LLVM backend
qualified on macOS ARM64.
Changes
silex loginauthenticates authors through their GitHub identity without
repository access;silex logoutrevokes the local credential.silex publish <directory>sends sources and declared artifacts to the
registry.--dry-runlists included and excluded files and the snapshot
digest without network access or publication.silex installdetects the Cloudflare registry protocol when it is enabled
on the official domain, verifies downloaded objects, and keeps access to
the old index during the transition.- The language supports value-producing
matchexpressions, scalar literal
patterns, and user-defined arithmetic operators. - LSP completion covers more incomplete expressions, inherited members, and
workspace changes. - LLVM becomes the default backend on qualified macOS ARM64 hosts; other
platforms keep the native backend by default. The native ARM64 and X64 paths
also receive fixes and optimizations.
Impact and migration
The Cloudflare registry must be active on registry.silex-lang.org before
silex publish can upload. Before the cutover, --dry-run works offline and
installs continue to read the old index. After the cutover, older Silex clients
cannot install versions stored only on Cloudflare: update the client. Packages
can now be published from a directory without Git; a repository link remains
optional for contributors. Existing source code needs no change to use the
new language constructs.
Silex v0.44.1
Full Changelog: v0.44.0...v0.44.1
Silex v0.44.0
Full Changelog: v0.43.0...v0.44.0
Silex v0.43.0
Full Changelog: v0.42.0...v0.43.0
Silex v0.42.0
Full Changelog: v0.41.0...v0.42.0
Silex v0.41.0
Full Changelog: v0.40.0...v0.41.0