Repository navigation
Which file do I want?
Take one row. Every download already contains what that row needs.
| I want to | File |
|---|---|
| Run a bulletin board — the board and all its tools | icyboard-0.2.3-<platform>.zip |
| Write PPL in VS Code | ppl-vscode-0.2.3-<platform>.vsix |
| Write PPL in Helix, Neovim, Zed or another LSP editor | ppl-lsp-0.2.3-<platform>.tar.gz (.zip on Windows) |
| Read the manual | icyboard-manual-0.2.3.pdf |
<platform> is one of:
| Platform | Your machine |
|---|---|
linux-x64 |
Linux on a 64-bit PC |
windows-x64 |
Windows on a 64-bit PC |
macos-arm64 |
Mac with Apple Silicon (M1 and later) |
macos-x64 |
Mac with an Intel processor |
You do not need more than one. icyboard-*.zip already holds the ppl-lsp
language server next to the board in bin/, and each ppl-vscode-* package
holds the server for its platform. ppl-lsp-* on its own is for editors other
than VS Code when you are not installing the board.
ppl-vscode-0.2.3-no-server.vsix is the exception: it carries no server and
expects ppl-lsp on your PATH already. Take it only if your platform is not
in the list above.
Fourth public beta. This release includes the Windows board-creation fix and
file-area maintenance and deletion fixes. It also extends PPL 4.00 and improves
file transfers, conference selection and door handling.
Compatibility
- PPL 4.00 remains unstable. Review the area and directory numbering changes
below and recompile affected PPEs. - Relative file-area paths in lists inside a board now use the nearest ancestor
containingicboard.toml, matching the normal BBS layout. Standalone lists
retain list-relative paths. Use absolute paths for externally located lists
or differently named board configurations. - Before the version bump, full CI checks passed on Linux and macOS, and the
Windows embedded-help checks passed. Release-package builds and manual runtime
checks still need review before publishing. This remains a beta release.
Added
icbfile deletedeletes an exact, case-insensitive filename from disk and
removes its database entry. Already-missing files can have their entries
removed; disk deletion failures retain the entry.- PPL 4.00 ZIP writer APIs, bulletin and survey access, and
Board.AddUserand
Board.FindUser. - Native PPL 4.00 date/time values and arithmetic, and PPL/PPE target 3.01 support.
- Native DOS setup console, DOS image setup and X00 installation helpers,
door arguments and private drop files, and socket-connected doors. - PPL 4.00 can read archives:
Archive.Open()returns anArchiveReaderthat
lists members, reads them as bytes or text and extracts single files, in every
format unarc-rs supports (ZIP, RAR, 7z, ARJ, LHA, ACE, ARC, ZOO, TAR and more).
ArchiveEntry.Kinddistinguishes files, directories, links and special entries.
Changed
- PPL message areas are numbered from 1:
Area.Number, the area inAreaId()
and theAREAcommand now use the same number.AreaId(conf, 0)and a plain
conference number still address the first area. PPEs that added one to
Area.Numberor passed zero-based areas above 0 toAreaId()must be updated. - File directories are numbered from 1 as well:
Directory.Numberand
@DIRNUM@now show the number theFcommand takes, andDirectory.Number
is 0 for a directory that does not exist. PPEs that added one to
Directory.Numbermust be updated.
Fixed
- Single-file ZMODEM uploads complete the session handshake instead of reporting
a remote cancellation at 100% (#27). Additional queued files beyond the upload
limit are skipped without receiving their payloads. - ZMODEM binary CRC-16 headers and subpackets use the protocol's network byte order,
allowing transfers with independent clients that select CRC-16. - Missing advertisement rule files no longer reject uploads: archive
transformations are skipped, preserving the original file and FILE_ID.DIZ
extraction. Enabled virus scanning and approval policies still apply. - The bundled
area,cnfn,dir,doorandscript2PPEs for new boards
are recompiled with the current compiler. - Windows board creation no longer aborts with
Embedded English fingerprint mismatch: hlp!.md(#28, #32). Checkouts
preserve embedded source bytes, and catalog fingerprint verification runs
in tests rather than blocking startup. icbfileresolves nested board area lists against the board root instead of
opening a different database (#31).check --prunewithout--areachecks
every area in the supplied list. Unavailable storage and inspection errors
fail explicitly; cached BBS listings refresh externally changed entries.- Conference plaintext passwords accept stored and entered mixed case.
- X/YMODEM packet timeouts and final ACK recovery, ZMODEM flow control,
8 KiB receive subpackets and 1 KiB uploads. - SSH reads apply backpressure when the consumer falls behind (#30).
- PPL file-channel handling, UTF-8 text reads, dot-relative PPE resources,
malformed list/loop diagnostics and empty index-list crashes. - Conference join ordering and registration checks, new-file scan date input,
logoff display hooks, PCBoard user-record compatibility and local status rows. - POSIX locale selection on all platforms, native stdio door buffering and
door terminal restoration. - The
AREAcommand's search list and its confirmation showed zero-based
numbers, so choosing a listed number joined the wrong area. - Entering
-2147483648as an area or bulletin number ended the session
instead of reporting an invalid number. @DIRNUM@,@DIRNAME@andSession.Directoryalways reported the first
directory. They now follow the directory last listed withF, and joining a
conference resets them to its first directory.
What's Changed
- icy_net: hold back the SSH server when the reader falls behind by @NuSkooler in #30
New Contributors
- @NuSkooler made their first contribution in #30
Full Changelog: 0.2.2...0.2.3