changelog shortlog graph tags branches files raw help

Mercurial > org > docs / changeset: ffi

changeset 12: 31db7a83d2c6
parent 11: d0a90a87b824
child 13: 26a97fc6dcda
author: ellis <ellis@rwest.io>
date: Tue, 12 Dec 2023 21:50:16 -0500
files: core/api/readme.org core/app/skel.org core/ffi.org core/readme.org infra/notes.org infra/readme.org infra/scripts.org
description: ffi
     1.1--- a/core/api/readme.org	Sat Dec 09 20:50:45 2023 -0500
     1.2+++ b/core/api/readme.org	Tue Dec 12 21:50:16 2023 -0500
     1.3@@ -1,3 +1,6 @@
     1.4 {{{header(Core API Docs,Richard Westhaver,ellis@rwest.io)}}}
     1.5 #+OPTIONS: ^:nil toc:nil num:nil html-postamble:nil
     1.6 #+EXPORT_FILE_NAME: index
     1.7+
     1.8+This documentation is automatically generated based on the most recent
     1.9+official core build.
     2.1--- a/core/app/skel.org	Sat Dec 09 20:50:45 2023 -0500
     2.2+++ b/core/app/skel.org	Tue Dec 12 21:50:16 2023 -0500
     2.3@@ -72,6 +72,27 @@
     2.4 :imports ("lisp/lisp.sk" "rust/rust.sk")
     2.5 #+end_src
     2.6 
     2.7+Another example with rules and components:
     2.8+
     2.9+#+begin_src skel
    2.10+;;; skelfile @ 2023-10-08.02:37:25 -*- mode: skel; -*-
    2.11+:name skel
    2.12+:author "ellis"
    2.13+:version "0.1.0"
    2.14+:description "a hacker's project compiler"
    2.15+:license "MPL"
    2.16+:vc :hg
    2.17+:tags ("lisp")
    2.18+:rules ((build () (print (asdf:make :skel/cli)))
    2.19+        (clean () #$rm -rf */*.fasl$#))
    2.20+:docs ((:org "readme"))
    2.21+:components
    2.22+((:elisp "sk"))
    2.23+:stash "~/dev/comp/stash"
    2.24+:shed "~/dev/comp/shed"
    2.25+:snippets
    2.26+((autogen #$sbcl --eval '(ql:quickload :app/cli/skel)' --eval '(asdf:make :app/cli/skel)'$#))
    2.27+#+end_src
    2.28 ** version control
    2.29 =skel= integrates closely with our Version Control System (VCS) which
    2.30 is built on [[https://www.mercurial-scm.org/][Mercurial]], but we also interact with and host many [[https://git-scm.com/][Git]]
     3.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2+++ b/core/ffi.org	Tue Dec 12 21:50:16 2023 -0500
     3.3@@ -0,0 +1,46 @@
     3.4+{{{header(core/ffi,Richard Westhaver,ellis@rwest.io)}}}
     3.5+
     3.6+This doc is about the [[https://en.wikipedia.org/wiki/Foreign_function_interface][Foreign Function Interface]] (FFI) features of the
     3.7+=core=. 
     3.8+
     3.9+Besides accessing system, OS, and external libraries via binding code
    3.10+(dynamically in Lisp, statically in Rust), we also expose parts of the
    3.11+core in a C-compatible fashion. In Lisp, we use the SB-ALIEN interface
    3.12+to load (with dlopen) and call foreign symbols. In Rust we mostly use
    3.13+rust-bindgen and the built-in rustc features.
    3.14+
    3.15+* Libraries
    3.16+The following binding libraries are provided with supporting
    3.17+code. There is some cross-over between the Lisp and Rust bindings
    3.18+depending on what library features we need and where. Some of the
    3.19+bindings are very minimal or for experimental-use only only.
    3.20+** xkb
    3.21+These bindings are actually directed at libxkbcommon instead of
    3.22+x11/xkb directly.
    3.23+*** xkbcommon
    3.24+https://xkbcommon.org/doc/current/md_doc_2quick-guide.html
    3.25+** rocksdb
    3.26+[[https://github.com/facebook/rocksdb/wiki][RocksDB Wiki]]
    3.27+** btrfs
    3.28+The kernel headers btrfs and btrfs_tree will be wrapped at some point
    3.29+in addition to the userspace library (btrfsutil) documented below.
    3.30+*** btrfsutil
    3.31+https://github.com/kdave/btrfs-progs
    3.32+** uring
    3.33+https://man.archlinux.org/man/io_uring.7.en
    3.34+** alpm
    3.35+https://man.archlinux.org/man/core/pacman/libalpm.3.en
    3.36+https://github.com/archlinux/alpm.rs/tree/382af70cdbff8e1f65c0bf8df79693786f44429c/alpm/examples
    3.37+** zstd
    3.38+zstd compression bindings: https://github.com/facebook/zstd
    3.39+** tree-sitter
    3.40+bindings to tree-sitter parser generator and language libraries: https://github.com/tree-sitter/tree-sitter
    3.41+** blake3
    3.42+temporary package for CL implementation of Blake3 SHA. Wraps C
    3.43+implementation (libblake3).
    3.44+** bqn
    3.45+These bindings are for libcbqn which can be build from CBQN:
    3.46+https://github.com/dzaima/CBQN
    3.47+** k
    3.48+https://codeberg.org/ngn/k
    3.49+bindings for ngn/k (libk).
     4.1--- a/core/readme.org	Sat Dec 09 20:50:45 2023 -0500
     4.2+++ b/core/readme.org	Tue Dec 12 21:50:16 2023 -0500
     4.3@@ -1,10 +1,35 @@
     4.4 {{{header(docs/core,Richard Westhaver,ellis@rwest.io)}}}
     4.5 #+EXPORT_FILE_NAME: index
     4.6 
     4.7+#+begin_src shell :dir ~/dev/comp/core/ :results pp :exports results
     4.8+  tokei -t=rust,lisp
     4.9+#+end_src
    4.10+
    4.11+#+RESULTS:
    4.12+#+begin_example
    4.13+===============================================================================
    4.14+ Language            Files        Lines         Code     Comments       Blanks
    4.15+===============================================================================
    4.16+ Lisp                  114        13419        10455         1234         1730
    4.17+-------------------------------------------------------------------------------
    4.18+ Rust                  142        12407        10732          443         1232
    4.19+ |- Markdown           101          804            0          709           95
    4.20+ (Total)                          13211        10732         1152         1327
    4.21+===============================================================================
    4.22+ Total                 256        25826        21187         1677         2962
    4.23+===============================================================================
    4.24+#+end_example
    4.25+
    4.26 - [[file:notes.org][Notes]] :: Internal Notes
    4.27 
    4.28-- [[file:app][App Docs]] :: High-level App Documentation
    4.29+* [[file:app][APP]] 
    4.30+App Docs
    4.31+
    4.32+* [[file:lib][LIB]] 
    4.33+Library Docs
    4.34 
    4.35-- [[file:lib][Lib Docs]] :: High-level Lib Documentation
    4.36+* [[file:ffi.org][FFI]] 
    4.37+FFI Docs
    4.38 
    4.39-- [[file:api][API Docs]] :: API Reference
    4.40+* [[file:api][API]] 
    4.41+API Reference
     5.1--- a/infra/notes.org	Sat Dec 09 20:50:45 2023 -0500
     5.2+++ b/infra/notes.org	Tue Dec 12 21:50:16 2023 -0500
     5.3@@ -0,0 +1,1 @@
     5.4+{{{header(infra/notes,Richard Westhaver,ellis@rwest.io)}}}
     6.1--- a/infra/readme.org	Sat Dec 09 20:50:45 2023 -0500
     6.2+++ b/infra/readme.org	Tue Dec 12 21:50:16 2023 -0500
     6.3@@ -1,4 +1,22 @@
     6.4 {{{header(docs/infra,Richard Westhaver,ellis@rwest.io)}}}
     6.5 #+EXPORT_FILE_NAME: index
     6.6 
     6.7+#+begin_src shell :dir ~/dev/comp/infra :results pp :exports results
     6.8+  tokei -t=css,lisp,makefile,shell,js
     6.9+#+end_src
    6.10+
    6.11+#+RESULTS:
    6.12+#+begin_example
    6.13+===============================================================================
    6.14+ Language            Files        Lines         Code     Comments       Blanks
    6.15+===============================================================================
    6.16+ CSS                     2          227          190            9           28
    6.17+ Lisp                    2          152          109           11           32
    6.18+ Makefile                1          156          110           20           26
    6.19+ Shell                  31         1185          866          198          121
    6.20+===============================================================================
    6.21+ Total                  36         1720         1275          238          207
    6.22+===============================================================================
    6.23+#+end_example
    6.24+
    6.25 - [[file:notes.org][Notes]] :: Internal Notes.
     7.1--- a/infra/scripts.org	Sat Dec 09 20:50:45 2023 -0500
     7.2+++ b/infra/scripts.org	Tue Dec 12 21:50:16 2023 -0500
     7.3@@ -0,0 +1,31 @@
     7.4+{{{header(infra/scripts,Richard Westhaver,ellis@rwest.io)}}}
     7.5+
     7.6+#+begin_src shell :dir ~/dev/comp/infra/scripts :results list replace :output results
     7.7+  ls
     7.8+#+end_src
     7.9+
    7.10+#+RESULTS:
    7.11+- arch-upgrade.sh
    7.12+- autogen.lisp
    7.13+- aws-set-env.sh
    7.14+- build-emacs.sh
    7.15+- bundle-dir.sh
    7.16+- check.lisp
    7.17+- eval.sh
    7.18+- get-cargo-tools.sh
    7.19+- get-cl.sh
    7.20+- get-code.sh
    7.21+- get-emacs.sh
    7.22+- get-linux.sh
    7.23+- get-lust.sh
    7.24+- get-rocksdb.sh
    7.25+- get-rust.sh
    7.26+- get-sbcl.sh
    7.27+- git-vendor-pull.sh
    7.28+- init.sh
    7.29+- print-colors.sh
    7.30+- record-gif.sh
    7.31+- sbcl-save-core.sh
    7.32+- sc.sh
    7.33+- ts-install-langs.sh
    7.34+- wg-gen-keys.sh