FunctionalScriptCLIPRsReleasesPlaygroundGitHub ↗

root / changelog / 0.52.0

← Previous: 0.51.0 · Next: 0.53.0 →
  • BREAKING CHANGES: compiler: fjs/fsc is renamed to fjs/compiler; import functionalscript/fjs/compiler/… instead of functionalscript/fjs/fsc/…. (#2354)
  • BREAKING CHANGES: effects/node: ServerResponse is ServerResponse<O>, its body a List<O, Vec, IoChannel> rather than a Vec, pulled at the socket's pace, and it carries a required release. (#2298, #2313)
  • BREAKING CHANGES: effects/node: IncomingMessage.body is List< ReadRequestBytes, Vec, IoChannel> rather than Vec; a listener that wants the bytes folds the list. IncomingMessage carries a required chunkedResponse. The runner no longer answers 413 to a large body. (#2312, #2313)
  • BREAKING CHANGES: effects/node: Http gains ReadRequestBytes, and Fs gains open, fstat, pread and close over a Handle, so an exhaustive map over NodeOp needs five more arms. (#2312, #2313)
  • BREAKING CHANGES: effects/node/virtual: State.requests holds _QueuedRequest, whose body is readonly Vec[] and which carries a required chunkedResponse, so every fixture that queues a request changes shape; State.responses holds RecordedResponse, whose body is readonly Vec[] and which carries a required failure, so a consumer of a recorded response joins the chunks; State gains bodies, handles and handleNext. (#2298, #2312, #2313)
  • BREAKING CHANGES: nanvm: a corpus Value can be a named callback, callback(name), or a thunk answering a value, returns(v), so Value gains Callback and Returns and Info gains callback and returns. (#2322, #2352)
  • web: a file of any size is served from one open file, one chunk in memory at a time, where a file past one Vec was refused with 413. A request answered without reading its body closes the connection. (#2298, #2312, #2313)
  • nanvm-lib: an array answers join, every, some, find, findIndex, findLast, findLastIndex, map, filter, reduce, reduceRight, flat, flatMap and toSorted, and so every Array member function the compiler admits. (#2321, #2322, #2323)
  • nanvm-lib: a string answers every String member function the compiler admits, from at and charCodeAt through slice, padStart, trim, replaceAll and split. (#2327, #2328, #2329, #2330)
  • nanvm-lib: a number answers toFixed, toExponential and toPrecision, and toString takes a radix on an integer-valued number and on a bigint. (#2331)
  • nanvm-lib: converting an object calls its own toString and valueOf, as JavaScript does, and reading a function's text throws a TypeError instead of answering "function". Relational operators convert their left operand first. (#2350, #2352)
  • fjs compile … .rs spells a string with a lone surrogate by its UTF-16 code units instead of refusing the module; media/rust exports utf16Literal. (#2326)
  • ebnf/railroad: new — toDiagrams reads a rule set back as syntax diagrams, drawn by website/demo/railroad's railroadSvg. (#2358)
  • website: syntax-diagram demos for the JSON, DataJS, JavaScript token and Markdown grammars; examples drop-downs on the DataJS and EDAG demos, through the new website/demo/examples; a page opens with its demo, and lists its contents as one list with icons. (#2338, #2351, #2356, #2358)
Support FunctionalScript: GitHub Sponsors ↗ · Open Collective ↗ · Patreon ↗