Releases
0.63.0
Publish the inference report to gh-pages
Compare
Sorry, something went wrong.
No results found
rultor
released this
27 Aug 15:04
Language
Receiver is now an explicit void named ^: [^ x] > lt, ? > ^, and :^ argument binding
New I glyph — the identity object, one-character spelling of x > [x]
Removed the % self-reference token, superseded by >> file-local handles
T terminator now takes arguments and a method chain (T "why it failed", T.foo)
$ accepted as the head of a reversed dispatch
Compact tuple *N after a reversed dispatch (name. *1) dropped
Trailing whitespace on any line, text blocks included, is now a parse error
Missing ] on a formation head reported as its own error
Duplicate attribute names in one formation rejected
Meta directive names, void names and >> handles validated against the NAME grammar
Metas must sit at indent 0; root identifiers must be followed by a dot (QQ.io.stdout rejected)
New parse validators: aliases, attribute names, object presence
Parser error recovery: Savepoint/Rollback/Recovery keep parsing past a broken line
cti and move-voids-up stages removed
Compiler and Maven plugin
New eo-inference module and eo:inference goal — resolves, per object, which formation it was copied from
New eo:merge goal — package members merged into the object they belong to (string/upper.eo into string)
New eo:coverage-report goal — LCOV report, eo.minCoverage threshold, wired into verify
purify.xsl marks safe-to-cache formations @pure; PhSticky memoizes their dataization
Maven proxy support: protocol, credentials and nonProxyHosts honoured
Cache keys now fold in parse XSL fingerprints, lints/wpa versions, trackSteps, inference tables and analysed XMIR
GlobalCache extracted from Parsing; OyCached.contains() memoized
ChPattern and CommitHashesMap deleted
Printer penalty weights configurable (eo.penaltyIndent, eo.penaltyBracket, eo.penaltyExcess, eo.width)
Printer split into Node, Style, Vertical, Horizontal, Phi, Starred, Arguments; alias restoration added
Coverage manifest no longer counts atoms, voids, root objects or throwing tests
Runtime
printf and scanf reimplemented in pure EO; Java EOprintf/PrintfArgs removed
New objects: file.deleted, file.moved, file.size, file.touched, directory.listed
New string objects: upper, lower, english, turkish, padded-left, padded-right, padded-zeros, truncated
as-char, as-decimal, as-fixed, as-scientific moved from string to number; as-hex to bytes
tuple.with removed
Posix/Win32 packages renamed to posix/win32; EO_string package folded into EOstring$...
New syscalls: stat, symlink, inet_addr, strerror, gettimeofday, WSAStartup, 64-bit _ftime64_s
Pointer-width Winsock socket descriptors instead of a fixed Java long
UTF-8 validation in string.slice and string.length; buffer-length checks before native write/send
Partial writes retried in file.open, socket.as-output and directory.tmpfile
PhDefault and CopiedAttrs use ReentrantLock instead of synchronized
PhNest and OnClasspath removed
Build
qulice 0.31.2, lints 0.4.8, jcabi-parent 0.73.4, cactoos 0.60+, groovy 5.1.1
Smells threshold enforced exactly in CI
benchmark, integration, jmh-benchmark-action and suppressions workflows removed
README benchmark section dropped
You can’t perform that action at this time.