Return to PortaLinux Runtime

CinnamonWolfy's (pocketlinux32) C Helper Library - Release Archive


While this is technically not part of the Codeberg Migration since it's not actually part of the Project, it is part of its history. And, yes, pocketlinux32 and CinnamonWolfy are the same person.

CinnamonWolfy's C Helper Library (originally released under the pocketlinux32 handle), mainly known as pl32lib/pl32lib-ng, was a helper library originally built for creating language interpreters resembling the style and syntax of the Bourne Shell. It implemented a memory tracker, a string tokenizer, a file interface similar to the C Standard Library's that also implemented memory buffers that utilized the same interface as regular files, and a Bourne Shell-like interpreter with custom commands. It would be temporarily shelved in May 2022, after being utilized for a configuration file generator utility for Cisco enterprise network equipment.

In late 2022, pl32lib would be revisited and reworked into the 0.95-ng release, which completely got rid of the interpreter, and tweaked some of the function calls. this refreshed version of pl32lib, pl32lib-ng, would go on to become the first custom C runtime utilized within PortaLinux, with it being introduced in release 0.10.1 of the PortaLinux Build System. It would eventually become the de-facto PortaLinux C runtime, due to its memory tracker as well as string tokenizer, being used to implement early versions of pl-srv, pltermlib and pltk, as well as an early implementation of the PortaLinux Markup Language (libplml)

On July 15th of 2023, pl32lib would be discontinued and forked off into a new project, that project being the PortaLinux Runtime. This was done due to the featureset needed for PortaLinux surpassing what a simple C99 helper library could provide, and thus marks the end of pl32lib.

Here are the releases of this project repo (some releases are missing):

v0.02

Released on 2022/3/8 by CinnamonWolfy


Second release. pl32-memory was completely rewritten, pl32-parse was expanded to pl32-shell and pl32-file was added.

Confirmed fully functional: pl32-memory, pl32-shell (string manipulation parts)

Incomplete: pl32-shell, pl32-file

Not implemented yet: pl32-term

v0.03

Released on 2022/3/13 by CinnamonWolfy


Third release. pl32-memory has been rewritten for the second and final time. pl32-shell was slightly modified to use the slightly modified pl32-memory API. Both of these modules are fully complete and fully functional.

Ready for use: pl32-memory, pl32-shell

Incomplete: pl32-file

Not implemented yet: pl32-term

v0.04

Released on 2022/3/19 by CinnamonWolfy


Fourth release. pl32-shell's parsing has been upgraded to mimic that of the POSIX shell (sh). The pl32-shell API also changed: plShell now requires you to provide your own command buffer, as does plShellInteractive. plShellInteractive also now clears the input buffer after each entry. The testcase for pl32-shell has been updated to use the slightly modified API. A very simple and barebones build system, compile, has been added. This system is temporary and will be replaced at some point. README.md has been updated to reflect these changes.

Ready for production use: pl32-memory, pl32-shell

Incomplete: pl32-file

Not implemented yet: pl32-term

v1.00

Released on 2022/4/1 by CinnamonWolfy


Sixth release. All modules have been completed and are fully functional. This is the first fully stable release of pl32lib. The wiki will be updated to reflect the changes made in this release.

pl32-shell function plShellFreeArray is no longer an internal function. You can now use this function to free arrays with one function call.

Ready for production use: All

v1.01

Released on 2022/4/3 by CinnamonWolfy


Seventh release. Here are the changes:

v1.02: Concatenate files

Released on 2022/4/23 by CinnamonWolfy


Eighth release. Here are the new features:

v2.00: API broken...

Released on 2022/4/26 by CinnamonWolfy


NOTICE: Yup. I had to break the API, and it hasn't even been 3 releases from 1.00... I didn't wanna do this, considering that it is only one function that changed. It didn't change entirely either, it's only one extra parameter that I needed to add. But alas, it had to be done. The other choice would have been a broken package.

Anyways, here are the new features:

v3.00: Yes... again.

Released on 2022/5/2 by CinnamonWolfy


NOTICE: I, once again, broke API compatibility with the previous release. While I can't promise that the API will remain on 3.x from now on, I will try to keep it there as long as I can. Apart from pl32-shell, nothing has changed. If your projects uses any of the other modules, you will be safe for years to come. It's mainly the pl32-shell API that will remain unstable for a while, plTokenize and plParser being the exception to this.

Anyways... Ninth Tenth release and here's what changed from the last update:

v0.95-ng: Refreshed codebase

Released on 2022/12/5 by CinnamonWolfy


After all of those API breaks and all of the messy and inefficient pl32-shell code, I've decided I will be doing a rewrite of all of the modules, except pl32-memory and pl32-file, as those have been complete since v1.00 and are easy to read (in the case of pl32-memory, it's been feature-complete, and thus unmodified since v0.03). I've also decided to stop using the LGPL, as it's too restrictive for my taste and I've opted to use MPL v2.0 instead.

First Release of ng. Here are the new changes:

Future Goals:

v1.00-ng: A stable API at last

Released on 2022/12/8 by CinnamonWolfy


pl32lib finally has a stable base API. This API will, for the most part, stay the same for the rest of this library's lifetime. The only thing that will change is the occasional addition of functions

Second Release of ng. Here are the new changes:

v1.01-ng: Improved build system and hardened pl32-memory

Released on 2023/1/15 by CinnamonWolfy


Third Release of ng. Here are the changes:

v1.02-ng: plStrtok fixed, Contributions notice, Slight build system changes

Released on 2023/1/23 by CinnamonWolfy


Fourth release of ng. Here are the changes:

v1.03-ng: pl32-file bugfixes and updated build system

Released on 2023/3/13 by CinnamonWolfy


Fifth Release of ng. Here are the new changes:

v1.04-ng: plPanic, plchar_t and plstring_t added

Released on 2023/5/13 by CinnamonWolfy


Sixth Release of ng. Here are the changes:

Future release feature goals:

v1.05-ng: C++ bindings, plstring_t helper functions, plMTFreeArray behavior change

Released on 2023/6/16 by CinnamonWolfy


Seventh release of ng. Here are the changes:

Future release feature goals: