Branch
Hash :
54e14e75
Author :
Thomas de Grivel
Date :
2025-09-21T14:17:49
fix struct type offset calculation for macos amd64
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, for the latest release see KC3 v0.1.15.
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 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. libkc3
(Facts*)
→ p_facts
securelevel(0) > 0
env_eval_callable
cfn_eval
cfn_link
cfn_prep_cif
buf_parse_pcallable
buf_parse_cfn
securelevel(0) > 0
kc3_system
kc3_system_pipe_exec
securelevel(0) > 0
securelevel(0) > 0
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 1
securelevel(0) > 2
ikc3
RPC.request("input")
%RPC.Response{out: "plop\n",
err: "warning: message\n",
result: (Sw) 5}
build system
runj
as a git submodule to parallelize configure
and update_sources sort
as a git submodule to have a portable sort
algorithm that gives consistent results across Linux and BSD. test infrastructure
runj
to call test_runner in parallel sleep 2
that slowed each ikc3 test 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))))