mirror of https://github.com/flysand7/ciabatta.git
Update readme
This commit is contained in:
parent
b4d8fe5adc
commit
e2158eed8b
36
readme.md
36
readme.md
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue