ciabatta/readme

47 lines
1.8 KiB
Plaintext
Raw Normal View History

2022-06-20 03:51:19 +00:00
ABOUT
2022-06-26 04:39:15 +00:00
Ciabatta - An implementation of CRT for x86-64 windows and linux platforms.
The goal is to provide a platform-independent CRT with the purpose of
explicitly defining some of platform-defined behaviours in order to simplify
the development and providing additional functionality to aid the developers in
writing cross-platform applications.
Note that Undefined Behaviour is impossible to define on a CRT level, since the
semantics of the language can only be changed at the compiler level. Sometimes
the compilers will replace CRT function calls with builtin functions, which is
meant as an optimization, e.g. replacing some forms of prinf() with puts() or
replacing strlen with an x86 rep movsb instruction. Even if ciabatta does have
a specific behaviour under given UB conditions, that behaviour is not
guaranteed.
The goals:
- Providing API for sockets, unicode processing (not just encodings), maybe
the support for common image and data file formats and other useful
non-standard functionality.
- Making it easy to port the library to a new platform, e.g. a custom OS
kernel or a different processor architecture.
- Defining implementation-defined behaviours of some of the functions and
explicitly documenting them.
- Make it reasonably fast compared to MSVCRT and GLIBC.
PLATFORM SUPPORT
OS/Kernel:
- Windows (64-bit)
- TODO: Linux
Processor Architecture
- x86-64
2022-06-20 03:51:19 +00:00
USAGE
2022-07-30 02:11:30 +00:00
For clang users: add the following flags to your compilation command:
-I <path/to/ciabatta/inc> -nostdlib -mfma
Don't forget to link to the following libraries:
2022-07-30 05:29:01 +00:00
-lciabatta.lib -luser32 -lkernel32 -lDbgHelp
2022-06-20 03:51:19 +00:00
CONTRIBUTING
2022-06-26 04:39:15 +00:00
Pull requests are always welcome.
2022-06-20 03:51:19 +00:00
LICENCE
2022-06-26 04:39:15 +00:00
TBD, but probably i'll make it MIT or WTFPL :kekw: