diff --git a/README.md b/README.md new file mode 100644 index 0000000..cbbfed0 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# scsl : The Shimmering Clarity Standard C++ Library + +scsl is a collection of software I found myself needing to use repeatedly. + +Full [Doxygen documentation](https://docs.shimmering-clarity.net/scsl/) +is available. + + \section Introduction + + This is a collection of C++ code that I find useful in building things. + It arose from two main use cases. + + ### The modem + +On the one hand, I was building a wireless modem for some Z80 computers I +have. I needed to be able to store a phonebook of SSIDs and WPA keys, as +well as short names to host:port descriptors. I had a limited amount of +persistent NVRAM storage and no SD card or other removeable media, so +typical desktop-oriented serialization mechanisms weren't going to really +work well. Furthermore, when working with microcontrollers, I prefer not to +dynamically allocate memory as much as possible. This led to building out +Arena, TLV::Record to store the records, and finally Dictionary to make use +of both of them. + +Closely related to this, I've been working on building an ARM-based handheld +computer, for which I would also need a memory arena. + +### The text editors + +Some time ago, I wrote a console text editor of my own; then later, started +working on a graphical editor. For this, I needed some data structures to +manage memory in the editor. Thus, Buffer was born. + +### Finally + +I'd been writing Go professionally for a while, but C was my first love. I +recently started a job that is mostly in C++, and the best way for me to +learn is to build a bunch of stuff with it. So, I took a bunch of micro- +controller stuff I'd been writing and started building out some other stuff. + + +## License + +Copyright 2023 K. Isom + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + diff --git a/README.rst b/README.rst deleted file mode 100644 index 552001d..0000000 --- a/README.rst +++ /dev/null @@ -1,27 +0,0 @@ -scsl : The Shimmering Clarity Standard C++ Library -================================================== - -scsl is a collection of software I found myself needing to use repeatedly. - -Full `Doxygen documentation`_ is available. - -.. _Doxygen documentation: https://docs.shimmering-clarity.net/scsl/ - - -License -------- - -Copyright 2023 K. Isom - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - diff --git a/scsl.h b/scsl.h index d1bee0b..948bda2 100644 --- a/scsl.h +++ b/scsl.h @@ -55,7 +55,7 @@ namespace scsl { /// /// On the one hand, I was building a wireless modem for some Z80 computers I /// have. I needed to be able to store a phonebook of SSIDs and WPA keys, as -/// well as short names to host:port descriptors. I had a limited amount of of +/// well as short names to host:port descriptors. I had a limited amount of /// persistent NVRAM storage and no SD card or other removeable media, so /// typical desktop-oriented serialization mechanisms weren't going to really /// work well. Furthermore, when working with microcontrollers, I prefer not to