changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: lisp/ffi/xkb

changeset 89: 05e6cd6ea89e
parent 88: 17bdf95bc114
child 90: d4a89cf4d32b
author: ellis <ellis@rwest.io>
date: Sat, 09 Dec 2023 02:33:24 -0500
files: lisp/ffi/tree-sitter/pkg.lisp lisp/ffi/tree-sitter/tests.lisp lisp/ffi/xkb/constants.lisp lisp/ffi/xkb/pkg.lisp lisp/ffi/xkb/tests.lisp lisp/ffi/xkb/xkb.asd tests.org todo.org
description: lisp/ffi/xkb
     1.1--- a/lisp/ffi/tree-sitter/pkg.lisp	Sat Dec 09 00:56:36 2023 -0500
     1.2+++ b/lisp/ffi/tree-sitter/pkg.lisp	Sat Dec 09 02:33:24 2023 -0500
     1.3@@ -49,8 +49,11 @@
     1.4    :ts-node-is-null
     1.5    :ts-node-eq
     1.6    :ts-tree-cursor-new
     1.7+   :ts-language-version
     1.8    :load-tree-sitter-json
     1.9-   :tree-sitter-json))
    1.10+   :tree-sitter-json
    1.11+   :load-tree-sitter-rust
    1.12+   :tree-sitter-rust))
    1.13 
    1.14 (in-package :tree-sitter/pkg)
    1.15 
    1.16@@ -64,7 +67,11 @@
    1.17     (sb-alien:load-shared-object "/usr/local/lib/libtree-sitter-json.so" :dont-save t)
    1.18     (push :tree-sitter-json *features*)))
    1.19 
    1.20-(define-alien-routine tree-sitter-json (* ts-language))
    1.21+(defun load-tree-sitter-rust () 
    1.22+  (unless (member :tree-sitter-rust *features*)
    1.23+    (sb-alien:load-shared-object "/usr/local/lib/libtree-sitter-rust.so" :dont-save t)
    1.24+    (push :tree-sitter-rust *features*)))
    1.25+
    1.26 ;;; Alien Types
    1.27 (define-alien-type ts-state-id unsigned-int)
    1.28 (define-alien-type ts-symbol unsigned-int)
    1.29@@ -134,3 +141,6 @@
    1.30 (define-alien-routine ts-tree-cursor-new ts-tree-cursor (node ts-node))
    1.31 
    1.32 (define-alien-routine ts-language-version unsigned-int (v (* ts-language)))
    1.33+
    1.34+(define-alien-routine tree-sitter-json (* ts-language))
    1.35+(define-alien-routine tree-sitter-rust (* ts-language))
     2.1--- a/lisp/ffi/tree-sitter/tests.lisp	Sat Dec 09 00:56:36 2023 -0500
     2.2+++ b/lisp/ffi/tree-sitter/tests.lisp	Sat Dec 09 02:33:24 2023 -0500
     2.3@@ -9,7 +9,18 @@
     2.4 
     2.5 (load-tree-sitter)
     2.6 
     2.7-(deftest ts-basic ()
     2.8+(deftest ts-json ()
     2.9   (load-tree-sitter-json)
    2.10-  (let ((parser (ts-parser-new)))
    2.11-    (ts-parser-set-language parser (tree-sitter-json))))
    2.12+  (let ((parser (ts-parser-new))
    2.13+        (lang (tree-sitter-json)))
    2.14+    (is (= (ts-language-version lang) 14))
    2.15+    (is (ts-parser-set-language parser lang))))
    2.16+
    2.17+(deftest ts-rust ()
    2.18+  (load-tree-sitter-rust)
    2.19+  (let ((parser (ts-parser-new))
    2.20+        (lang (tree-sitter-rust)))
    2.21+    ;; (is (= (ts-language-version lang) 14))
    2.22+    (is (ts-parser-set-language parser lang))))
    2.23+
    2.24+
     3.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2+++ b/lisp/ffi/xkb/constants.lisp	Sat Dec 09 02:33:24 2023 -0500
     3.3@@ -0,0 +1,33 @@
     3.4+("stdint.h" "stdio.h" "stdarg.h" "xkbcommon/xkbcommon-names.h" "xkbcommon/xkbcommon-keysyms.h" "xkbcommon/xkbcommon.h")
     3.5+
     3.6+((:integer xkb-keycode-invalid "XKB_KEYCODE_INVALID" nil t)
     3.7+ (:integer xkb-layout-invalid "XKB_LAYOUT_INVALID" nil t)
     3.8+ (:integer xkb-level-invalid "XKB_LEVEL_INVALID" nil t)
     3.9+ (:integer xkb-mod-invalid "XKB_MOD_INVALID" nil t)
    3.10+ (:integer xkb-led-invalid "XKB_LED_INVALID" nil t)
    3.11+ (:integer xkb-keycode-max "XKB_KEYCODE_MAX" nil t)
    3.12+ (:integer xkb-keysym-max "XKB_KEYSYM_MAX" nil t)
    3.13+ (:enum xkb-keymap-format ((xkb-keymap-format-text-v1 "XKB_KEYMAP_FORMAT_TEXT_V1")))
    3.14+ (:enum xkb-log-level ((xkb-log-level-critical "XKB_LOG_LEVEL_CRITICAL")
    3.15+                       (xkb-log-level-error "XKB_LOG_LEVEL_ERROR")
    3.16+                       (xkb-log-level-warning "XKB_LOG_LEVEL_WARNING")
    3.17+                       (xkb-log-level-info "XKB_LOG_LEVEL_INFO")
    3.18+                       (xkb-log-level-debug "XKB_LOG_LEVEL_DEBUG")))
    3.19+ (:enum xkb-keymap-compile-flags ((xkb-keymap-compile-no-flags "XKB_KEYMAP_COMPILE_NO_FLAGS")))
    3.20+ (:integer xkb-keymap-use-original-format "XKB_KEYMAP_USE_ORIGINAL_FORMAT" nil t)
    3.21+ (:enum xkb-key-direction ((xkb-key-up "XKB_KEY_UP")
    3.22+                           (xkb-key-down "XKB_KEY_DOWN")))
    3.23+ (:enum xkb-state-component ((xkb-state-mods-depressed "XKB_STATE_MODS_DEPRESSED")
    3.24+                             (xkb-state-mods-latched "XKB_STATE_MODS_LATCHED")
    3.25+                             (xkb-state-mods-locked "XKB_STATE_MODS_LOCKED")
    3.26+                             (xkb-state-mods-effective "XKB_STATE_MODS_EFFECTIVE")
    3.27+                             (xkb-state-layout-depressed "XKB_STATE_LAYOUT_DEPRESSED")
    3.28+                             (xkb-state-layout-latched "XKB_STATE_LAYOUT_LATCHED")
    3.29+                             (xkb-state-layout-locked "XKB_STATE_LAYOUT_LOCKED")
    3.30+                             (xkb-state-layout-effective "XKB_STATE_LAYOUT_EFFECTIVE")
    3.31+                             (xkb-state-leds "XKB_STATE_LEDS")))
    3.32+ (:enum xkb-state-match ((xkb-state-match-any "XKB_STATE_MATCH_ANY")
    3.33+                         (xkb-state-match-all "XKB_STATE_MATCH_ALL")
    3.34+                         (xkb-state-match-non-exclusive "XKB_STATE_MATCH_NON_EXCLUSIVE")))
    3.35+ (:enum xkb-consumed-mode ((xkb-consumed-mode-xkb "XKB_CONSUMED_MODE_XKB")
    3.36+                           (xkb-consumed-mode-gtk "XKB_CONSUMED_MODE_GTK"))))
     4.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2+++ b/lisp/ffi/xkb/pkg.lisp	Sat Dec 09 02:33:24 2023 -0500
     4.3@@ -0,0 +1,32 @@
     4.4+(defpackage :xkb
     4.5+  (:use :cl :std/alien)
     4.6+  (:export 
     4.7+   :load-xkb
     4.8+   :xkb-context :xkb-keymap
     4.9+   :xkb-keycode :xkb-keysym
    4.10+   :xkb-layout-index :xkb-layout-mask
    4.11+   :xkb-level-index :xkb-mod-index
    4.12+   :xkb-mod-mask :xkb-led-index :xkb-led-mask
    4.13+   :xkb-level-invalid :xkb-keycode-max :xkb-keymap-use-original-format 
    4.14+   :xkb-keysym-max :xkb-keycode-invalid :xkb-mod-invalid :xkb-layout-invalid
    4.15+   :xkb-led-invalid))
    4.16+
    4.17+(in-package :xkb)
    4.18+
    4.19+(defun load-xkb ()
    4.20+  (unless (member :xkb *features*)
    4.21+    (sb-alien:load-shared-object "libxkbcommon.so" :dont-save t)
    4.22+    (push :xkb *features*)))
    4.23+
    4.24+(define-alien-type xkb-context (struct xkb-context))
    4.25+(define-alien-type xkb-keymap (struct xkb-keymap))
    4.26+(define-alien-type xkb-state (struct xkb-state))
    4.27+(define-opaque xkb-keycode)
    4.28+(define-opaque xkb-keysym)
    4.29+(define-opaque xkb-layout-index)
    4.30+(define-opaque xkb-layout-mask)
    4.31+(define-opaque xkb-level-index)
    4.32+(define-opaque xkb-mod-index)
    4.33+(define-opaque xkb-mod-mask)
    4.34+(define-opaque xkb-led-index)
    4.35+(define-opaque xkb-led-mask)
     5.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2+++ b/lisp/ffi/xkb/tests.lisp	Sat Dec 09 02:33:24 2023 -0500
     5.3@@ -0,0 +1,9 @@
     5.4+(defpackage :xkb/tests 
     5.5+    (:use :cl :rt :xkb))
     5.6+(in-package :xkb/tests)
     5.7+(defsuite :xkb)
     5.8+(in-suite :xkb)
     5.9+
    5.10+(deftest xkb-basic ()
    5.11+  (xkb:load-xkb)
    5.12+  (is (= xkb:xkb-keysym-max 536870911)))
     6.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2+++ b/lisp/ffi/xkb/xkb.asd	Sat Dec 09 02:33:24 2023 -0500
     6.3@@ -0,0 +1,20 @@
     6.4+;;; xkb.asd-*- mode: lisp; -*-
     6.5+(eval-when (:compile-toplevel :load-toplevel :execute)
     6.6+  (require :sb-grovel))
     6.7+
     6.8+(defpackage :xkb.sys
     6.9+  (:use :cl :asdf :sb-grovel :sb-alien))
    6.10+
    6.11+(in-package :xkb.sys)
    6.12+
    6.13+(defsystem :xkb
    6.14+  :depends-on (:sb-grovel :std)
    6.15+  :components ((:file "pkg")
    6.16+               (grovel-constants-file "constants"
    6.17+                                      :package :xkb))
    6.18+  :in-order-to ((test-op (test-op :xkb/tests))))
    6.19+
    6.20+(defsystem :xkb/tests
    6.21+  :depends-on (:std/rt :xkb)
    6.22+  :components ((:file "tests"))
    6.23+  :perform (test-op (op c) (uiop:symbol-call '#:rt '#:do-tests :xkb)))
     7.1--- a/tests.org	Sat Dec 09 00:56:36 2023 -0500
     7.2+++ b/tests.org	Sat Dec 09 02:33:24 2023 -0500
     7.3@@ -200,7 +200,7 @@
     7.4             "lisp/lib/packy/packy.asd" "lisp/lib/nlp/nlp.asd" "lisp/lib/dot/dot.asd"
     7.5             "lisp/ffi/rocksdb/rocksdb.asd" "lisp/ffi/btrfs/btrfs.asd" "lisp/ffi/uring/uring.asd"
     7.6             "lisp/ffi/k/k.asd" "lisp/ffi/bqn/bqn.asd" "lisp/ffi/tree-sitter/tree-sitter.asd" 
     7.7-            "lisp/ffi/blake3/blake3.asd" "lisp/ffi/alpm/alpm.asd")))
     7.8+            "lisp/ffi/blake3/blake3.asd" "lisp/ffi/alpm/alpm.asd" "lisp/ffi/xkb/xkb.asd")))
     7.9     (mapc (lambda (x) (asdf:load-asd (pathname x))) systems))
    7.10   (asdf:load-system :std)
    7.11   (asdf:load-system :std/rt)
    7.12@@ -487,5 +487,17 @@
    7.13 : #<PASS ALPM-VERSION-TEST337> 
    7.14 : No tests failed.
    7.15 
    7.16+*** xkb
    7.17+#+begin_src lisp :results output replace :exports results
    7.18+  (load "lisp/ffi/xkb/tests.lisp")
    7.19+  (asdf:test-system :xkb)
    7.20+#+end_src
    7.21+
    7.22+#+RESULTS:
    7.23+: in suite xkb with 1/1 tests:
    7.24+: #<PASS XKB-BASIC-TEST378> 
    7.25+: No tests failed.
    7.26+
    7.27 * emacs
    7.28 =sudo pacman -Syu libvoikko librsvg imagemagick=
    7.29+
     8.1--- a/todo.org	Sat Dec 09 00:56:36 2023 -0500
     8.2+++ b/todo.org	Sat Dec 09 02:33:24 2023 -0500
     8.3@@ -1,48 +1,56 @@
     8.4-* TODO migrate to sb-grovel [0%]                                   :lisp:ffi:
     8.5+* TODO migrate to sb-grovel [88%]                                  :lisp:ffi:
     8.6 :PROPERTIES:
     8.7 :CUSTOM_ID: bb365025-e5e7-4407-acba-32e30d1a245a
     8.8 :END:
     8.9 - State "TODO"       from              [2023-11-27 Mon 23:42]
    8.10 [[file:lisp/ffi/]]
    8.11-** TODO blake3
    8.12+** DONE blake3
    8.13 :PROPERTIES:
    8.14 :CUSTOM_ID: 656c2683-8780-407c-b955-3defc4959595
    8.15 :END:
    8.16+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.17 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.18-** TODO bqn
    8.19+** DONE bqn
    8.20 :PROPERTIES:
    8.21 :CUSTOM_ID: b4757746-525b-49e4-b8ac-677375867d8f
    8.22 :END:
    8.23+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.24 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.25-** TODO btrfs
    8.26+** DONE btrfs
    8.27 :PROPERTIES:
    8.28 :CUSTOM_ID: b3b411fe-6b2d-4338-9e23-83536336a487
    8.29 :END:
    8.30+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.31 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.32-** TODO k
    8.33+** DONE k
    8.34 :PROPERTIES:
    8.35 :CUSTOM_ID: 8a463084-efa0-4535-8239-b1c4955bde4c
    8.36 :END:
    8.37+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.38 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.39-** TODO rocksdb
    8.40+** DONE rocksdb
    8.41 :PROPERTIES:
    8.42 :CUSTOM_ID: 2d4d70af-228f-424c-8374-9fc8ed5c6f92
    8.43 :END:
    8.44+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.45 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.46-** TODO tree-sitter
    8.47+** DONE tree-sitter
    8.48 :PROPERTIES:
    8.49 :CUSTOM_ID: 0cdf3412-cb00-4069-8e1b-b49c736377cf
    8.50 :END:
    8.51+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.52 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.53-** TODO uring
    8.54+** DONE uring
    8.55 :PROPERTIES:
    8.56 :CUSTOM_ID: 45a52407-ccaf-4ea1-99c4-d6f7ba0b2731
    8.57 :END:
    8.58+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.59 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.60-** TODO zstd
    8.61+** DONE zstd
    8.62 :PROPERTIES:
    8.63 :CUSTOM_ID: 6ade8dd8-83b1-470d-a0da-a352ce4c2d06
    8.64 :END:
    8.65+- State "DONE"       from "TODO"       [2023-12-09 Sat 01:57]
    8.66 - State "TODO"       from              [2023-11-29 Wed 19:00]
    8.67 ** TODO xkb
    8.68 :PROPERTIES: