Telesto Standard Library
The standard library is in the std namespace. It is intended to cover a rather wider
range of functionality than the C++ standard library while not being nearly as extensive as Java, for example.
The std namespace is the root for all standard library namespaces. They are:
- .lists - A few collection/array classes, along with the base list interface.
- .io - Various input/output classes, istream and ostream interfaces, text stream wrappers, file & directory
classes, an input stream buffer class, and a Writer for ANSI terminal convenience.
- .base - Wrappers for the basic value types, the thread class, a System class (similar to Java), signals and
events.
- .net - Sockets, Servers, MulticastGroup, UDP classes, URL and NetAddress classes.
- .text - The string interface (language support makes this appear to be instanciable), classes for various
string types (StringASCII/UTF8/16/32... EBDIC?). Number/Time/Date/DateTime-Format, Regex.
- .util - Date Time Timer Random.
- .math - .consts { PI } .trig { cos/sin/csc/sec/tan/arc.. } .algo { FFTs, etc }. I really want this namespace
to be fairly extensive. Hopefully there's alot of truely free libraries out there that can be more or less tossed in
here on a whim.
- .ui - While I'm tempted to just make this an access point for whatever Toolkit the user chooses (ie GTK or Qt, as
long as someone writes some bindings), I'd just as quickly create a very basic set of classes and include Cairo as
.ui.drawing, and OpenGL functions in .ui.gl.
- .sync - Support for concurrent programming, various mutexes (whatever you want that to mean), semaphors, atomic
operations (at least inc/dec on platforms that support it).
- .native - A SystemInfo class for, well, yeah. A NativeUtil class for any other operations that end up being reasonably common, especially conversion between arrays of bytes and closure objects (which are indistinct from function
pointers in the language). And, NativeObjectPtr, a class that represents a value received from a C-like library call
that is a pointer to something, but you don't need to access the contents.
Implementation
I hope to find libraries with permissive licenses to fill out most of the standard library, especially things like
the UI and Regex. A large amount may be writable in Telesto itself (once a functional compiler exists, of course), though.