Skip to content

Commit

Permalink
Merge pull request #2 from EimaMei/dev
Browse files Browse the repository at this point in the history
merge
  • Loading branch information
EimaMei authored Jun 28, 2023
2 parents 010ccd2 + a54026f commit 540a438
Show file tree
Hide file tree
Showing 13 changed files with 2,700 additions and 1,164 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: linux

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: apt
run: sudo apt-get install libxcursor-dev
- name: make
run: make
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,5 @@ src/
*.7z
*.zip
*.hide
*.S
*.S
*.json
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ OUTPUT = build
NAME = test
EXE = $(OUTPUT)/$(NAME)

SRC = example.c
SRC = examples/array.c
FLAGS = -O0 -std=c99 -Wall -Wextra -Wpedantic
LIBS =
INCLUDE = -I"."
Expand All @@ -24,4 +24,4 @@ dump_asm:
$(CC) -g $(FLAGS) $(INCLUDE) $(LIBS) -S $(SRC) -o sili.S

$(OUTPUT):
mkdir $(OUTPUT)
mkdir $(OUTPUT)
21 changes: 9 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# Sili Toolchain
Sili Toolchain is a cross-platform public domain software toolchain specialized for C development, featuring many features, improvements and fixes to the language. Made specifically for C99 and up, but can also be used in C++.
Sili Toolchain is a cross-platform software toolchain for modern C programming, providing many new features, improvements and fixes to the language's barebones STL. It is specifically designed for C99 and above but can also be used in C++ codebases.

# Main goals of Sili Toolchain
# Main goals
## Modernize C
Implement a proper STL for C that is much more feature-rich, safe, readable and just generally better, while also being an alternative to the C++ one.
## Be fast & useful
Keep a balance between having exceptional performance and giving more options to the end-user.
## Be portable
`sili.h` is a single-header library, meaning it can be drag 'n dropped to any project. Furthermore, Sili Toolchain is cross-platform, meaning it'll work on all major desktop OSses without issue.
The toolchain aims to modernize C by implementing a proper STL that is more feature-rich, fast, safe and understandable. It serves as an alternative to the bloated C++ STL.
## Performance & Utility
Sili Toolchain strives to strike a balance between having exceptional performance and while providing more options to end-developers.
## Portability
`sili.h` is a single-header library, allowing for easy integration into any project. Furthermore, Sili Toolchain is designed to be cross-platform, supporting all major desktop operating systems.

# Features
- Standard types (`u8`, `i32`, `u64` etc).
- Macros that define what architecture/OS/compiler/standard you are on (`SI_CPU_X86`, `SI_SYSTEM_WINDOWS`, `SI_COMPILER_CLANG`, `SI_STANDARD_C99`, `SI_STANDARD_ANSI` etc).
- Architecture/OS/Compiler/Standard indentification macros (`SI_CPU_X86`, `SI_SYSTEM_WINDOWS`, `SI_COMPILER_CLANG`, `SI_STANDARD_C99`, `SI_STANDARD_ANSI` etc).
- Useful macros (`typeof()`, `SI_ASSERT`/`SI_STATIC_ASSERT`, `SI_BIT`, `foreach` etc).
- Robust string implementation (`siString`, fully compatible with `char*`).
- Better arrays (`siArray(<type>)`, compatible with other C arrays`).
Expand All @@ -25,7 +24,7 @@ Keep a balance between having exceptional performance and giving more options to
- ... and more to come!

# Examples
Go to [example.c](example.c) to see examples for almost every feature in the toolchain. You can also unexpand the brackets to hide the examples you're not interested in viewing with your IDE of choice.
[needs a rework later]

# License
`sili.h` is dual-licensed to the public domain and under the MIT license, meaning it can be used in any want you'd like to. Credit is appreciated but unneeded.
Expand All @@ -41,6 +40,4 @@ Go to [example.c](example.c) to see examples for almost every feature in the too
- `insert()`/`remove()` for siString/siArray.

# Improvements
- Improve si_array_make.
- Possible better debugging improvements.
- Make thread priority values cross-platform.
Loading

0 comments on commit 540a438

Please sign in to comment.