PortaLinux Runtime - Release Archive
The PortaLinux Runtime is a runtime library created for PortaLinux applications written in the C and C++ programming languages. It strictly abides by the C99/C11 and POSIX-2008 standards and thus can be ran on more platforms than just Linux.
It started off as a heavily modified fork of pl32lib release 1.06-ng, and the merger of it with libplml. Much of what the current runtime has originated within pl32lib, with the Rust-like strings coming from the "ng" codebase refresh.
Here are the releases of this project repo:
- pl32lib/pl32lib-ng releases (2021/9/22 - 2023/7/15) (INCOMPLETE)
- v0.01: Initial release
- v0.02: Error Handling, Proper Types, and Memory Tracker Update
- v0.03: plrt-string implemented
- v0.04: Achieved pl32lib-ng parity
- v0.05: Surpassed libplml features, Minor
plstring_tbugfix - v0.06: Various bugfixes,
plRTStrcmpadded - v0.06.1: Minor bug fix
- v0.07: PLML Array support added, Fixed tokenizer bugs
- v1.00-rc1: Ready for stable API release
- v1.00: First stable release
- v1.01: File caching
- v1.02: PLML Token String Generator, Official Deprecration Notice of C++ Header
- v1.02.1: Small patch for PLML Token Generator
- v1.02.2: Minor changes
- v1.02.3: Actually finished implementing
plRTStrdup, Added Tokenizer Handling of Tabs - v1.03: Added
plRTStrDecompress, Added Meson Build Support, OptionalsignalHandler - v1.03.1: Fixed ABI Breakage
- v1.03.2: Updated API Documentation
- v1.04:
plRTGetDirentsreturns actual directory entry list, Documentation updated - v1.04.1: Improved build system
- v1.04.1-hotfix: Typo strikes again!
- v1.04.2:
plRTGetDirentsBehavior Change - v1.04.3: PLML bugfix
- v1.04.4: Parser bugfix
- v1.05:
plFInsertandplFRemove,plFGetsrefactor, Memory files rework - v1.06:
plFPutPLCharandplFGetPLChar, Parser and PLML Bugfixes - v1.07: Text-mode Memory Files
v0.01: Initial release
Released on 2023/7/16 by CinnamonWolfy
First release. Here are the features:
- Forked from pl32lib-ng (unmaintained)
- Slightly modified Memory Tracker API to make it cleaner
View Commit Download ZIP Download TAR.GZ
v0.02: Error Handling, Proper Types, and Memory Tracker Update
Released on 2023/7/29 by CinnamonWolfy
Second release. Here are the features:
- plrt-types.h added
- This header contains all of the common types used within the runtime, which includes typedefs, structs, enums and all of the stuff within stdint.h and stddef.h
- This header currently also contains the function prototypes used by the error handler. This will most likely be moved into its own header
- plrt-error module added
- This module has an strerror-style error string creator function, and an enhanced
plPanicthat uses it. I might add a perror-style error printing function in the future - While the function definitions are currently in plrt-types.h, it will most likely be moved into its own header in the next release
- Memory tracker updated to use the new error handler functions
I'm most likely not gonna be posting a new release for a while. My current life situation is not the best, and I really need to get some form of income, which means that I won't be updating this repo for a while. I hope y'all understand
Sophie (pocketlinux32/CinnamonWolfy)
View Commit Download ZIP Download TAR.GZ
v0.03: plrt-string implemented
Released on 2023/8/5 by CinnamonWolfy
Third release. Here are the new changes
- plrt-string has been fully implemented
- It uses the new error handling system
- It also uses the new fat pointers and string structs
I got this out a lot sooner than I thought. Then again, I haven't started yet at my new day job. I will start soon, however, which means this might be the last release for a while (actually this time). I hope y'all understand
Sophie
View Commit Download ZIP Download TAR.GZ
v0.04: Achieved pl32lib-ng parity
Released on 2023/9/11 by CinnamonWolfy
Fourth release. Here are the features:
- plrt-token has been fully implemented
- Parity with pl32lib-ng has been fully implemented
Known Bugs
- Compiling with -O2 or -Os is broken on GCC (Optimized compilation on Clang is completely functional, however)
View Commit Download ZIP Download TAR.GZ
v0.05: Surpassed libplml features, Minor plstring_t bugfix
Released on 2023/10/28 by CinnamonWolfy
Fifth release. Here are the features:
- PLML parser added
- This is a complete reimplementation of the libplml API. Apart from the API, there is no libplml code in pl-rt, as pl-rt's parser is fairly different from pl32lib-ng's
- Floating-point support has been added to the parser after rewriting it
- Array support has been implemented in the token type (enum and union), but has yet to be properly implemented in the parser
- Fixed
plRTMemMatchbug that would return a null pointer if both of the memory blocks were the same size (basically used as a fancy strcmp) - An actual
plRTStrcmpwill be implemented in the next release, alongside all of the other PLML stuff - Tweaked plrt-string functions to make plstrings more compatible with Standard C Library functions
View Commit Download ZIP Download TAR.GZ
v0.06: Various bugfixes, plRTStrcmp added
Released on 2023/10/29 by CinnamonWolfy
Sixth release. Here are the features:
- PLML Parser bugfixes
- The parser is now capable of parsing weird ways of declaring a token
- Tokenizer bugfixes
plRTTokenizedoes not swallow quote character if used as an ending positionplRTTokenizedoesn't allow for one-char whitespace strings to be parsedplRTParserdoes not add a null pointer to the returned string array- Added plRTStrcmp
View Commit Download ZIP Download TAR.GZ
v0.06.1: Minor bug fix
Released on 2023/11/10 by CinnamonWolfy
Seventh release. Here are the new features:
- Fixed a minor bug in plrt-types
- Added some more error handling enums and strings
View Commit Download ZIP Download TAR.GZ
v0.07: PLML Array support added, Fixed tokenizer bugs
Released on 2023/12/1 by CinnamonWolfy
Eighth release. Here are the new features:
- The PLML parser now supports one-dimensional arrays
- Unintentional side effect: It supports multiple types in one array. That is not permitted in TOML and thus PLML. I plan on fixing this in the next release
- Fixed parser bug
- It can now properly handle spaces at the beginning of a string
Future Features:
- Adding a simple logging system to pl-rt
- Fix PLML parser side effect
View Commit Download ZIP Download TAR.GZ
v1.00-rc1: Ready for stable API release
Released on 2023/12/18 by CinnamonWolfy
Ninth release. Here are the new features:
- plrt-posix module added
- Imported
plRTSpawnfrom pl-srv - Imported
plRTGetDirentsfrom pl-srv - Created new logging system
- Due to the new pl-rt logger and imports from pl-srv, pl-rt is now dependent on the POSIX API, which means it is no longer fully portable
- PLML parser is now standards-compliant
- Arrays only accept one type of token now
Future goals:
- Create comprehensible and straightforward documentation
Developer Notes:
pl-rt is almost ready for a full stable release. all that is needed right now are the docs, and i will release. but as of now, the portalinux api is now fully stable ^w^
View Commit Download ZIP Download TAR.GZ
v1.00: First stable release
Released on 2024/1/18 by CinnamonWolfy
Tenth release. Here are the new features:
- Tokenizers return raw tokens
- Strings now look like "string"/'string' rather than just string. Same applies to arrays.
- This might break some compatibility with pre-rc releases, but it helped fix some very nasty bugs within the plml parser.
- PLML parser now parses boolean arrays correctly.
- This was a real nasty one. Fixed by new tokenizer behavior described above.
- Documentation has been written
- These docs are a brief overview. I will release some more in-depth docs on my website.
This took quite a while but it was worth it. PortaLinux finally has a stable base API.
View Commit Download ZIP Download TAR.GZ
v1.01: File caching
Released on 2024/2/17 by CinnamonWolfy
Eleventh release. Here are the new features:
- Added
plFLoadandplFUnloadto plrt-file - These functions cache or "load" a filesystem file into memory and write back all of the changes or "unload" the file from memory
Developer Notes:
i had made these for pl-srv, but it turns out i won't need them in there. oh well x3
this can be quite useful for a text editor or high-perf apps, so i'm leaving it in
there will be a 1.02 after pl-srv 1.00-rc1
View Commit Download ZIP Download TAR.GZ
v1.02: PLML Token String Generator, Official Deprecration Notice of C++ Header
Released on 2024/3/17 by CinnamonWolfy
Twelfth release. Here are the changes:
- pl-rt can now generate TOML-compatible PLML token strings that can be written to files
- Added for pl-srv 1.00-rc1
- Removed unfinished/broken C++ header
- May be readded in 1.02.1 (Not guaranteed)
View Commit Download ZIP Download TAR.GZ
v1.02.1: Small patch for PLML Token Generator
Released on 2024/4/9 by CinnamonWolfy
Thirteenth Release. Here are the changes:
plMLGenerateTokenStrcreated a bug within pl-srv where it would not parse a string if there was no newline in it, and crash- This is primarily a bug within the PLML parser itself, but I would like to just get something out now
View Commit Download ZIP Download TAR.GZ
v1.02.2: Minor changes
Released on 2024/5/9 by CinnamonWolfy
Fourteenth Release. Here are the new changes:
plFGetsandplFPutsreturn values changed to match the original Standard C library calls- This will break some compatibility, but it's a necessary change. besides, it's a small enough change done very early into pl-rt's lifecycle
(Re-released, as I missed updating the header version)
View Commit Download ZIP Download TAR.GZ
v1.02.3: Actually finished implementing plRTStrdup, Added Tokenizer Handling of Tabs
Released on 2024/5/18 by CinnamonWolfy
Fifteenth release. Here are the changes:
plRTStrduphas been fully implemented- Yeah, I don't know how this got past v1.00, but oh well, it's fixed now lol
plRTTokenizeis now able to handle tab (\t) characters
View Commit Download ZIP Download TAR.GZ
v1.03: Added plRTStrDecompress, Added Meson Build Support, Optional signalHandler
Released on 2024/7/5 by CinnamonWolfy
Sixteenth release. Here are the changes:
- Added
plRTStrDecompress - You can now convert C strings and pl-rt strings between each other
- Added Meson Build System
plRTSetSignalmust be specifically enabled- This is so that you don't have to add an empty signalHandler to your program to make the linker not error out
View Commit Download ZIP Download TAR.GZ
v1.03.1: Fixed ABI Breakage
Released on 2024/7/12 by CinnamonWolfy
Seventeenth release. Here are the changes:
- Fixed minor ABI breakage caused by release 1.02.2
View Commit Download ZIP Download TAR.GZ
v1.03.2: Updated API Documentation
Released on 2024/7/22 by CinnamonWolfy
Eighteenth release. Here are the changes:
- Updated the documentation of plrt-string
View Commit Download ZIP Download TAR.GZ
v1.04: plRTGetDirents returns actual directory entry list, Documentation updated
Released on 2024/8/5 by CinnamonWolfy
Nineteenth release. Here are the changes
plRTGetDirentsnow returns an array of directory entries (struct dirent) instead of plstring_t.- The list is unsorted by default. To sort the list, use
plRTSortDirents. - To get the old behavior back, set preprocessor variable
PLRT_COMPAT_FEATURELVLto 4. - Updated documentation.
View Commit Download ZIP Download TAR.GZ
v1.04.1: Improved build system
Released on 2024/8/16 by CinnamonWolfy
Twentieth release. Here are the changes:
- Improved build system
configurenow replaces~with the home directory of the logged-in usercompilenow creates install directories before installing
View Commit Download ZIP Download TAR.GZ
v1.04.1-hotfix: Typo strikes again!
Released on 2024/11/29 by CinnamonWolfy
Twenty-first release, Here are the changes:
- Fixed a typo in the build system that makes directory creation during installation fail
- I might've forgotten to test it, sorry (not really)
View Commit Download ZIP Download TAR.GZ
v1.04.2: plRTGetDirents Behavior Change
Released on 2024/12/2 by CinnamonWolfy
Twenty-second release. Here are the changes:
plRTGetDirentsnow returns . and .. in directory listing
View Commit Download ZIP Download TAR.GZ
v1.04.3: PLML bugfix
Released on 2024/12/17 by CinnamonWolfy
Twenty-third release. Here are the changes:
- Fixed a bug within the PLML parser
- Commented out lines would crash the entire program due to missing checks
View Commit Download ZIP Download TAR.GZ
v1.04.4: Parser bugfix
Released on 2024/12/29 by CinnamonWolfy
Twenty-fourth release. Here are the changes:
- Fixed broken behavior within
plRTTokenize - A check was not clearing a variable, which ended up breaking PLML parsing
View Commit Download ZIP Download TAR.GZ
v1.05: plFInsert and plFRemove, plFGets refactor, Memory files rework
Released on 2025/6/6 by CinnamonWolfy
Twenty-fifth release. Here are the changes:
plFInsertandplFRemoveadded- Basically an upstreaming of pltermlib's buffer editor functions
plFGetsrefactoredplFGetsnow uses plrt-string functions instead of rhe libc string functions- Memory files reworked
- Memory files are now a lot more memory-efficient, since they no longer allocate 64kb by default (remnant quirk from pl32lib)
- All of plrt-file now fully uses plrt-string functions instead of libc string functions
View Commit Download ZIP Download TAR.GZ
v1.06: plFPutPLChar and plFGetPLChar, Parser and PLML Bugfixes
Released on 2025/7/5 by CinnamonWolfy
Twenty-sixth release. Here are the changes:
plFPutPLCharandplFGetPLCharadded- A version of the
plFGetC/plFPutCroutines that usesplchar_tinstead of assuming ASCII - Parser/PLML Bugfix
- Fixed a bug in both the string tokenizer and PLML parser that would make the PLML parser panic if the file given has an empty line after
View Commit Download ZIP Download TAR.GZ
v1.07: Text-mode Memory Files
Released on 2025/10/20 by CinnamonWolfy
Twenty-seventh release. Here are the changes:
- Text-mode memory files have been implemented
- This will allow for proper Unicode character buffers
- Added
plFMemCreateandplFMemIncreaseSizein order to have more control over memory files - Tweaked
plFReadandplFWritein order to be able to perform I/O operations - OVERSIGHT: The
sizemember of theplptr_tstructure gets treated as the array size instead of overall buffer byte size, like it normally is.
View Commit Download ZIP Download TAR.GZ