Commit graph

160 commits

Author SHA1 Message Date
LDA
8b2bdbe220 [FIX] Actually do proper stringification.
It just kept bothering me.
2024-06-15 13:48:39 +02:00
LDA
1ad6f0d976 Merge branch 'mem-moment' of https://git.telodendria.io/lda/Cytoplasm into mem-moment 2024-06-15 13:44:13 +02:00
LDA
9f706102c4 Merge branch 'master' of https://git.telodendria.io/Telodendria/Cytoplasm into mem-moment 2024-06-15 13:43:45 +02:00
lda
5003ddc281 Merge branch 'master' of https://git.telodendria.io/Telodendria/Cytoplasm into mem-moment 2024-06-08 12:08:30 +02:00
Jordan Bancino
b9dc169917 Merge pull request 'Fix file descriptor leakage' (#35) from lda/Cytoplasm:tls-file-leak into master
Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/35
2024-06-07 14:00:44 -05:00
lda
d983296dd2 [MOD] As it turns out, you do need to free thr fd. 2024-06-03 19:42:09 +02:00
lda
007b8f6d43 [MOD/WIP] Blazing-fast memory allocator 🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
This still however removes `MemoryIterate' from allocations, because
it's a real performance pickle. From my tests parsing large sync
replies, this commit is near instant(pv reports 23MiB/s on a 2MB sync).

Still need a good compromise along MemoryIterate(like maybe find out a
clever way to only make it run on a small subset, or maybe just randomly
run it from time to time, or maybe just roll without it except on some
soft of debug mode????)
2024-06-03 16:18:29 +02:00
lda
9108fef701 Fix inconsistent sanitation with the database (#32)
Cytoplasm's Db currently doesn't sanitate database entries consistently, and this PR should be a quick fix for this.

Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/32
Co-authored-by: lda <lda@freetards.xyz>
Co-committed-by: lda <lda@freetards.xyz>
2024-05-26 15:31:14 -05:00
lda
138ea1c8e9 [FIX] Oops. 2024-05-26 22:06:56 +02:00
lda
cdf4430a9e [FIX] Fix issue with const strings which may be invalidated 2024-05-26 22:01:06 +02:00
Jordan Bancino
346b912a06
ArraySort(): Fix bound checking bug.
Closes #31.
2024-05-18 10:50:18 -04:00
Jordan Bancino
5d87da31cd j2s generated code is now C99.
It also no longer requires on the now-defunct Int64.h.
2024-01-13 18:55:31 -05:00
Jordan Bancino
461357b526 Move headers from src/include to include/Cytoplasm.
This makes it easier to build Cytoplasm as a component of another
program (for example, Telodendria), or as a standalone system library.
2024-01-13 18:40:31 -05:00
Jordan Bancino
cd7df7bbb4 Enable higher optimization on fancy compilers. 2024-01-13 18:22:37 -05:00
Jordan Bancino
c489eff517 Set -Wextra on fancy compilers. 2024-01-13 18:11:44 -05:00
Jordan Bancino
039a487bdf Merge branch 'master' of https://git.telodendria.io/Telodendria/Cytoplasm 2024-01-13 17:57:31 -05:00
Jordan Bancino
31c9bc7f1c Update Cytoplasm license text for 2024. 2024-01-13 17:56:58 -05:00
Jordan Bancino
11e0a34c02 Update README.md 2024-01-13 17:49:36 -05:00
Jordan Bancino
08166dd3a7 Don't use install because it is not POSIX.
Closes #13.
2024-01-13 17:26:17 -05:00
Jordan Bancino
c3429f035c Update CHANGELOG.md 2024-01-13 17:18:17 -05:00
Jordan Bancino
662696ce12 C99 Compliance (#29)
This pull request brings Cytoplasm up from C89 to C99, which makes it much more portable across platforms. In particular, this pull request solves a number of issues with 32-bit platforms.

Closes #28.
Closes #12.
Closes #20.

Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/29
2024-01-13 17:13:45 -05:00
Jordan Bancino
d0969d0dd7 Add a simple CI workflow for compiling Cytoplasm. (#27)
This will allow us to pick up compiler warnings from other systems, mainly 32-bit ones. 32-bit systems have different integer sizes that cause all kinds of warnings that we should really address.

Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/27
2024-01-13 11:08:44 -05:00
Jordan Bancino
d7da8e0a54 Merge pull request 'Fix potential double-free issue in Cytoplasm' (#22) from lda/Cytoplasm:fix-router-issue into master
Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/22
2024-01-04 19:32:57 -05:00
lda
44b7f45bb7 [FIX] Fix other potential double-free
Was done "à la va-vite" since I can't really work on it directly right now.
2024-01-01 07:57:11 -05:00
lda
3788d044e6
[FIX] Fix potential double-free issue in Cytoplasm 2023-12-14 18:31:20 +01:00
Jordan Bancino
928e9c8223 Update CHANGELOG.md 2023-12-02 10:26:24 -05:00
lda
17f1a41519 HttpRouter: Decode path parts before matching. (#19)
Required by Telodendria/Telodendria#44.

Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/19
Co-authored-by: lda <lda@freetards.xyz>
Co-committed-by: lda <lda@freetards.xyz>
2023-12-02 10:25:28 -05:00
Jordan Bancino
29070c8f41 Fix memory leak in code generated by j2s code.
Closes #17.
2023-11-20 09:51:08 -05:00
Jordan Bancino
bc67393036 Update CHANGELOG.md 2023-11-06 21:28:10 -05:00
Jordan Bancino
ba1ac5b42b Add JsonMerge().
Closes #15.
2023-11-06 19:59:46 -05:00
Jordan Bancino
01da37f7d7 Bump version number. 2023-11-06 14:20:42 -05:00
Jordan Bancino
618bcbbac3 j2s: Add 'extern' type and ignored fields.
Closes #14.
2023-11-06 14:19:49 -05:00
Jordan Bancino
d242597e73 Allow customization of compiler used in configure. 2023-11-04 15:58:23 -04:00
Jordan Bancino
4e73273cbd Add CHANGELOG.md 2023-11-01 12:20:52 -04:00
Jordan Bancino
dadc1ac5c7 Provide build instructions and logo.
Closes #8.
2023-11-01 11:26:48 -04:00
Jordan Bancino
8ffade37b1 Add a meta header.
This allows programs to print the name and version of the library that
is currently in use.
2023-11-01 11:26:27 -04:00
Jordan Bancino
6ab1c7919b Explicitly set the make compiler to cc.
This makes it work out of the box on GNU systems where GNU make defaults
to c99, which doesn't accept -std=c89.
2023-11-01 11:25:32 -04:00
Jordan Bancino
03fe5ca355 Move http man page to Cytoplasm from Telodendria. 2023-11-01 08:33:37 -04:00
Jordan Bancino
75ecb22724 Remove int64 and uint64; add http. 2023-11-01 08:28:35 -04:00
Jordan Bancino
cced0ad883 Closes #3 2023-10-30 14:41:58 -04:00
Jordan Bancino
51898d5bac Update README.md 2023-10-30 15:31:49 -04:00
Jordan Bancino
2ea041d99d main() is already included in the library.
The runtime stub doesn't need to be a separate object.
2023-10-30 14:11:22 -04:00
Jordan Bancino
2714a822b0 j2s now generates the proper includes. 2023-10-30 13:43:35 -04:00
Jordan Bancino
7c1173eef8 Install tools to system.
Note that int64 and uint64 should probably be removed.
2023-10-30 12:21:14 -04:00
Jordan Bancino
3a683dbb70 Fix includes in headers.
These are installed to the system and some compilers may not  find the
headers in the current directory if we don't do this, even though
according to the C standard, either should work.
2023-10-30 12:10:41 -04:00
Jordan Bancino
e69769d4d2 Update configure 2023-10-30 11:29:15 -04:00
LoaD Accumulator
c23f8a4be6 [FIX] Fix issue related to TLS (#1)
The Makefile didn't properly set TLS_IMPL, effectively causing no
TLS implementation to be put in.

Co-authored-by: LoaD Accumulator <lda@freetards.xyz>
Reviewed-on: https://git.telodendria.io/Telodendria/Cytoplasm/pulls/1
Co-authored-by: LoaD Accumulator <lda@noreply.git.telodendria.io>
Co-committed-by: LoaD Accumulator <lda@noreply.git.telodendria.io>
2023-10-04 15:02:38 -04:00
LoaD Accumulator
b6388eb7fe
[FIX] Fix issue related to TLS
The Makefile didn't properly set TLS_IMPL, effectively causing no
TLS implementation to be put in.
2023-10-03 16:56:39 +02:00
Jordan Bancino
dcbb488f7d Add install and uninstall recipes. 2023-10-02 16:02:51 -04:00
Jordan Bancino
8395a05807 Clean up Makefile generation to make so it isn't so repetitive. 2023-09-28 23:21:31 -04:00