mirror of
https://git.sr.ht/~crc_/retroforth
synced 2024-11-16 19:48:56 +01:00
work on the Release Notes
FossilOrigin-Name: 43915e692942b8bf2c479a4757da1f74708c3c94c14983c84708ff6e0c36cbef
This commit is contained in:
parent
c2d45fc227
commit
d3c3b99d08
1 changed files with 73 additions and 7 deletions
|
@ -9,12 +9,78 @@
|
|||
- fix a bug in s:WHITESPACE and use it in c:whitespace?
|
||||
- reorganize source tree
|
||||
- add s:get-word
|
||||
- moved the assembler into rx.muri
|
||||
- add prefix:\
|
||||
- add prefix:^
|
||||
- deprecate as{
|
||||
- deprecate }as
|
||||
|
||||
In progress:
|
||||
Security.
|
||||
|
||||
Starting with 2020.1, each release will include a signing key to
|
||||
allow verification of the release. Additionally, each release will
|
||||
include the signing key to be used for the following release so
|
||||
that there is both reliable key rotation and a verifiable chain
|
||||
of trust across releases.
|
||||
|
||||
Tooling updates.
|
||||
|
||||
The HTML export for the examples has been updated. It now averages
|
||||
a 7.4% decrease in conversion and a 26% decrease in exported file
|
||||
size.
|
||||
|
||||
Assembler.
|
||||
|
||||
The assembler is now provided by Rx. This was a technical challenge,
|
||||
but well worth the effort. By making it part of the kernel it has
|
||||
become possible to use assembly, rather than raw bytecode, in all
|
||||
parts of retro.forth. This is allowing for a significant amount of
|
||||
hand tuning to the standard library, reducing the memory footprint
|
||||
and improving performance overall.
|
||||
|
||||
Some highlights of this:
|
||||
|
||||
- Reduced the assembler size from 661 cells to 109 cells
|
||||
- No increase to the size of the reserved space for Rx
|
||||
- Renamed the `en`d instruction to `ha`lt
|
||||
- Added new prefixes for working with the assembler instead of
|
||||
requiring use `as{` and `}as`.
|
||||
- Deprecated `as{` and `}as` (these will be removed in the
|
||||
2020.04 release)
|
||||
|
||||
Example of the changes:
|
||||
|
||||
(old)
|
||||
as{ 'liliad.. i #2 d #3 d 'lica.... i 'n:put r }as
|
||||
|
||||
(new)
|
||||
\liliad.. `2 `3 \lica.... ^n:put
|
||||
|
||||
Standard Library.
|
||||
|
||||
I fixed bugs in a few places, including the `c:whitespace?` word.
|
||||
The assembler was moved into the kernel; this has allowed me to
|
||||
remove all uses of raw bytecode from the main sources which aids
|
||||
in readability. I also used the assembler to hand tune a number
|
||||
of words to reduce the image size and improve performance.
|
||||
|
||||
Nga.
|
||||
|
||||
Reorganized the source tree. This separates the implementations
|
||||
by language and tries to keep things better structured. The Forth
|
||||
code for the I/O devices is now in a separate directory, allowing
|
||||
it to be more easily shared across implementations. Bugs related
|
||||
to the numeric range queries were fixed.
|
||||
|
||||
The JavaScript implementation has seen a number of changes. Dead
|
||||
code was removed, the formatting was redone to ensure consistency,
|
||||
a framebuffer device was added, and performance was improved. The
|
||||
code now consists of multiple files, making editing easier, and
|
||||
the interface layout has been updated.
|
||||
|
||||
Retro on Unix.
|
||||
|
||||
I added an `s:get-word`, removed some deprecated words, and updated
|
||||
the memory limits to reduce overall memory usage under the default
|
||||
configuration.
|
||||
|
||||
- refactor and improve the nga-in-javascript implementation
|
||||
- add a framebuffer (via canvas element)
|
||||
- remove dead code
|
||||
- reformat consistently
|
||||
- performance improvements
|
||||
- split the glossary tool into smaller parts
|
||||
|
|
Loading…
Reference in a new issue