Hash :
c2fb36ca
Author :
Thomas de Grivel
Date :
2025-07-15T20:19:01
fix: marshall function parameter mismatches - Add missing heap parameter to marshall_tag call in kc3.c:718 - Add missing heap parameter to marshall_uw call in marshall.c:278 - Add missing heap parameter to marshall_tag call in marshall.c:282 - Fix marshall_heap_pointer function signature to match header declaration - Fix marshall_list parameter to be const s_list * to match header - Update test macros to include heap parameter and rename to MARSHALL_TEST_BUF_* - Fix direct marshall_u32 calls in test functions to include heap parameter
KC3 is a programming language with meta-programmation and a graph database embedded into the language. It aims to be the language for semantic programming, and programming the semantic web.
You can easily convert each KC3 function to a C function. KC3 is both a language and a runtime.
This is a development branch see KC3 v0.1.14 for a stable release.
KC3 is currently a programming language project, inspired by C, Elixir and Common Lisp. It could be described as C with Elixir modules, pattern matching, and a semantic object system. The idea is to plug modules, closures, pattern matching, a graph database and metaprogramming into C99 with an extremely small set of dependencies.
Components :
libkc3 library is a full KC3 parser and interpreter. ikc3 is the interactive interpreter (verbose). kc3s is the script interpreter (same as ikc3 but terse). lib/kc3/0.1
using the make lib_links command. kc3_httpd. All binaries can be compiled for four targets :
assert is disabled. assert is enabled dlsym and thus
all Cfn at the moment) Supported operating systems (additional dependencies) :
Supported architectures :
To install and test KC3 for yourself, you can follow the KC3 Installation Guide.
There are now four full applications written in KC3 that we know of :
make demo make demo_gl make test_httpd with all the KC3 releases and
documentation. env_init_args --copy Join us on kmx.io Discord server !
Follow the KC3 guides to discover how to use KC3 for your own projects.
(Macro) fn (x) { x } \n) (TAG_VOID: 1, TAG_TUPLE: (1+ (max (height tuple->tags))))