Releases: kc3-lang/kc3
KC3 v0.1.14
New in kc3-0.1.14 :
- pretty printer
- auto indent KC3 code
- map
access
get
(get key value)put
(return a new map)
- struct
access
get
put
- facts database (triple store) accessible from KC3
new database (Ptr)
add_tags
collect_with
collect_with_tags
remove_tags
with_tags
with
with_macro
- HTTPd v0.2.0
- dynamic pages (MVC)
- models are defined in
./app/models/
- controllers are defined in
./app/controllers/
- templates are defined in
./app/templates/
- views are defined in
./app/views/
- dynamic router is defined in
./config/router.kc3
- For now we don't match request method and just match the start of
the URL withStr.starts_with?(url, route.path)
- If there is no route or no controller or the controller does
not return a HTTP response, a 404 error is returned. Other
frameworks like Ruby on Rails or Phoenix do return a 500...
- For now we don't match request method and just match the start of
- models are defined in
- dynamic pages (MVC)
- threads
env_fork_init
env_fork_clean
Thread.new(fn)
- fx v0.2.0
- file explorer
- preview files
- text
- image
- video
- audio
- binary (hexdump -C)
- properties
- create
- POST "/properties/*path"
- delete
- DELETE "/properties/*path"
- create
- preview files
- file explorer
KC3 v0.1.13
KC3 v0.1.13
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.
We are currently fundraising for the project to become real and there is a working prototype available at https://git.kmx.io/kc3-lang/kc3/, please see the https://www.kmx.io/en/donations.html page for helping out.
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.
Supported operating systems (additional dependencies) :
BSD
Linux (libbsd, libmd)
MacOS X (libmd)
Windows (MSys2)
Supported architectures :
aarch64 (arm64, Apple M1, Apple M2)
amd64
i386
sparc64
New in this release
- libkc3
- pretty printer
- indentation (str, if, do, fn, struct, map)
- pretty printer
- ikc3
- facts
- Facts.with_tags(facts, s, p, o, fn (fact) {}) -> cursor
- facts
- lib
- File.exists?
- File.is_directory?
- File.list
- File.stat
- HTTPd v0.1.1
- file server (lftp)
- route_request
- error_404_page
- directory_page
- slash (lftp)
v0.1.10
- OpenGL demo (
make demo_gl
)- OpenGL 3.3 with shaders (portable)
- makes use of C3 data structures.
- pin operator (for pattern matching)
- macros
- special operators
- their arguments do not get evaluated
- they return a value
- parsed without syntax
Ideally it would look like this :ic3> defspecial_operator op (a, b, c) { true } special_operator (a, b, c) { true } ic3> op 1 2 3 true
- See C3 module in
lib/c3/0.1/c3.facts
- if, then, else.
- rational numbers and corresponding operations
- complex numbers and corresponding operations
- float 128 bit (F128) and corresponding operations