Update readme

This commit is contained in:
flysand7 2023-07-29 00:50:04 +11:00
parent b4d8fe5adc
commit e2158eed8b
1 changed files with 19 additions and 19 deletions

View File

@ -9,18 +9,22 @@ following goals:
- Providing C standard library that fully implements all C features. Some - Providing C standard library that fully implements all C features. Some
standard libraries lack many features of C11 and C23, like threads.h or standard libraries lack many features of C11 and C23, like threads.h or
aligned_alloc in case of msvcrt. aligned_alloc in case of MSVCRT.
- Making standard library that is easy to port to other platforms, for example - Making standard library that is easy to port to other platforms, for example
an embedded platform or a custom operating system. an embedded platform or a custom operating system.
- Allowing applications to debug and step into standard library functions - Allowing applications to debug and step into standard library functions
- Reasonably fast CRT compared to MSVCRT and glibc. (Hello MSVCRT!)
- Reasonably fast CRT compared to MSVCRT and glibc, e.g. making malloc use
a faster allocator, avoid runtime checks where possible, heavely rely on
inlining.
- Extend the possibilities of C standard library with commonly used - Extend the possibilities of C standard library with commonly used
functionality: implementing POSIX standard (including directories and functionality: implementing POSIX standard, capability for unicode
sockets), capability for unicode processing. processing, API to traverse directories, hash functions, better strings API,
crash handlers.
Ciabatta is not binary-compatible with other CRT libraries. That means that any Ciabatta is not binary-compatible with other CRT libraries. That means that any
libraries that your project uses have to also be compiled with Ciabatta, libraries that your project uses have to also be compiled with Ciabatta,
otherwise you might run into issues. otherwise you will run into issues.
Please note that as of today ciabatta is still during development and does not Please note that as of today ciabatta is still during development and does not
implement many of the features that need to be implemented. Using it at current implement many of the features that need to be implemented. Using it at current
@ -42,9 +46,11 @@ functionality.
## Building ciabatta ## Building ciabatta
Before proceeding please note that ciabatta can only be compiled and used Before proceeding please note that ciabatta can only be compiled and used
with `clang`. It may be able to work with `gcc` with some minor adjustments with `clang` and `cuik`. It may be able to work with `gcc` with some minor adjustments
but I didn't test. but I didn't test.
You can get `cuik` in [the GitHub repository](https://github.com/RealNeGate/Cuik)
For executing the script you will need at least python 3.3 and the pyjson5 package For executing the script you will need at least python 3.3 and the pyjson5 package
``` ```
@ -83,24 +89,18 @@ In order to compile your project with ciabatta see the following sections
### Compiling with ciabatta on windows ### Compiling with ciabatta on windows
1. Add the following flags to your compilation command: 1. Add the following flags to your compilation command:
`-nostdlib -I ./include utf8.obj -mfma` `-nostdlib -D _CIA_OS_WINDOWS -I /include utf8.obj -mfma`
2. Link to the following libraries: 2. Add the following sources to the compile command:
`-l ./lib/ciabatta.lib` `./lib/ciabatta.lib ./lib/cia.lib ./lib/crt.lib`
**Note:** The `include` folder refers to the folder you copied from ciabatta. Set the path to it accordingly. **Note:** The `include` folder refers to the folder you copied from ciabatta. Set the path to it accordingly.
### Compiling with ciabatta on linux ### Compiling with ciabatta on linux
- In case of static linking: 1. Add the following flags to your compilation command:
1. Add the following flags to your compilation command: - `-nostdlib -D _CIA_OS_LINUX -I ./include -mfma`
- `-nostdlib -static -I ./include` 2. Link to the following libraries
2. Link to the following libraries - `./lib/ciabatta.a`
- `./lib/ciabatta.a`
- In case of dynamic linking:
1. Add the following flags to your compilation command:
- `-nostdlib -no-pie -I ./include`
2. Link to the following libraries:
- `./lib/ciabatta.so ./lib.ctors.o ./lib.entry.o`
## Contributing ## Contributing