summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ocicl.csv10
-rw-r--r--src/inline-bots.lisp6
-rw-r--r--src/main.lisp6
-rw-r--r--src/readtable.lisp14
-rw-r--r--src/rw-lock.lisp8
-rw-r--r--src/state.lisp6
-rw-r--r--src/tg/method-macros.lisp7
-rw-r--r--src/tg/type-macros.lisp9
8 files changed, 44 insertions, 22 deletions
diff --git a/ocicl.csv b/ocicl.csv
index 176d9fe..177add3 100644
--- a/ocicl.csv
+++ b/ocicl.csv
@@ -1,4 +1,5 @@
1alexandria, ghcr.io/ocicl/alexandria@sha256:e433c2e076ed3bcf8641b97b00192680db2201d305efac9293539dee88c7fbf7, alexandria-20240503-8514d8e/alexandria.asd 1alexandria, ghcr.io/ocicl/alexandria@sha256:e433c2e076ed3bcf8641b97b00192680db2201d305efac9293539dee88c7fbf7, alexandria-20240503-8514d8e/alexandria.asd
2autoload, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/autoload/autoload.asd
2babel, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel.asd 3babel, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel.asd
3babel-streams, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel-streams.asd 4babel-streams, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel-streams.asd
4babel-tests, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel-tests.asd 5babel-tests, ghcr.io/ocicl/babel@sha256:9d9fcde71acc2b5c39572de4f11756a08c1d8801caa86c581b85dabaa35928b3, babel-20250905-4eaf3f2/babel-tests.asd
@@ -32,6 +33,9 @@ dexador, ghcr.io/ocicl/dexador@sha256:defc8d669790e22ac9a9eccf52fe14b10cf986402c
32dexador-test, ghcr.io/ocicl/dexador@sha256:defc8d669790e22ac9a9eccf52fe14b10cf986402c7b32c0049df45f64a039e1, dexador-20250825-4db4b93/dexador-test.asd 33dexador-test, ghcr.io/ocicl/dexador@sha256:defc8d669790e22ac9a9eccf52fe14b10cf986402c7b32c0049df45f64a039e1, dexador-20250825-4db4b93/dexador-test.asd
33dexador-usocket, ghcr.io/ocicl/dexador@sha256:defc8d669790e22ac9a9eccf52fe14b10cf986402c7b32c0049df45f64a039e1, dexador-20250825-4db4b93/dexador-usocket.asd 34dexador-usocket, ghcr.io/ocicl/dexador@sha256:defc8d669790e22ac9a9eccf52fe14b10cf986402c7b32c0049df45f64a039e1, dexador-20250825-4db4b93/dexador-usocket.asd
34documentation-utils, ghcr.io/ocicl/documentation-utils@sha256:b2a1b3f3bcd1a738af85ae2b0168d408c177661eab6d6bbebb254e394d983f54, documentation-utils-20230511-98630dd/documentation-utils.asd 35documentation-utils, ghcr.io/ocicl/documentation-utils@sha256:b2a1b3f3bcd1a738af85ae2b0168d408c177661eab6d6bbebb254e394d983f54, documentation-utils-20230511-98630dd/documentation-utils.asd
36dref, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/dref/dref.asd
37dref-test, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/dref/dref-test.asd
38dref-test-package-inferred, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/dref/test/data/dref-test-package-inferred.asd
35fast-http, ghcr.io/ocicl/fast-http@sha256:44e98b5239c0ded4921dc0b04ae272cff00583d93797a657543db782979eb50c, fast-http-20240503-2232fc9/fast-http.asd 39fast-http, ghcr.io/ocicl/fast-http@sha256:44e98b5239c0ded4921dc0b04ae272cff00583d93797a657543db782979eb50c, fast-http-20240503-2232fc9/fast-http.asd
36fast-http-test, ghcr.io/ocicl/fast-http@sha256:44e98b5239c0ded4921dc0b04ae272cff00583d93797a657543db782979eb50c, fast-http-20240503-2232fc9/fast-http-test.asd 40fast-http-test, ghcr.io/ocicl/fast-http@sha256:44e98b5239c0ded4921dc0b04ae272cff00583d93797a657543db782979eb50c, fast-http-20240503-2232fc9/fast-http-test.asd
37fast-io, ghcr.io/ocicl/fast-io@sha256:7ba35a0eddf00b3c25656b3c5a93e95460f6cb8f807afbc04ef4f50076d95aff, fast-io-20240503-a4c5ad6/fast-io.asd 41fast-io, ghcr.io/ocicl/fast-io@sha256:7ba35a0eddf00b3c25656b3c5a93e95460f6cb8f807afbc04ef4f50076d95aff, fast-io-20240503-a4c5ad6/fast-io.asd
@@ -60,7 +64,13 @@ log4cl, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6
60log4cl-examples, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl-examples.asd 64log4cl-examples, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl-examples.asd
61log4cl.log4slime, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl.log4slime.asd 65log4cl.log4slime, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl.log4slime.asd
62log4cl.log4sly, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl.log4sly.asd 66log4cl.log4sly, ghcr.io/ocicl/log4cl@sha256:bd33f6e5ad346892e852492e7101bc18d263f9ef2ba6192178568d1b20337112, log4cl-20240503-fe3da51/log4cl.log4sly.asd
67mgl-pax, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/mgl-pax.asd
68mgl-pax-bootstrap, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/mgl-pax-bootstrap.asd
69mgl-pax-test, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/mgl-pax-test.asd
70mgl-pax.asdf, ghcr.io/ocicl/mgl-pax-bootstrap@sha256:3139a60412c5b3f8817e251c5a774149b8b19bfee2dc279833034bddb2480866, mgl-pax-20251022-c1c1edb/mgl-pax.asdf.asd
63multilang-documentation-utils, ghcr.io/ocicl/documentation-utils@sha256:b2a1b3f3bcd1a738af85ae2b0168d408c177661eab6d6bbebb254e394d983f54, documentation-utils-20230511-98630dd/multilang-documentation-utils.asd 71multilang-documentation-utils, ghcr.io/ocicl/documentation-utils@sha256:b2a1b3f3bcd1a738af85ae2b0168d408c177661eab6d6bbebb254e394d983f54, documentation-utils-20230511-98630dd/multilang-documentation-utils.asd
72named-readtables, ghcr.io/ocicl/named-readtables@sha256:c6380ffa68acf18ba97ef7b88e84ea174fc5605c8a9b23d80ef2583b44f68017, named-readtables-20250524-8bd0045/named-readtables.asd
73named-readtables-test, ghcr.io/ocicl/named-readtables@sha256:c6380ffa68acf18ba97ef7b88e84ea174fc5605c8a9b23d80ef2583b44f68017, named-readtables-20250524-8bd0045/named-readtables-test.asd
64net.didierverna.asdf-flv, ghcr.io/ocicl/net.didierverna.asdf-flv@sha256:e5cd087d41cf24302a92d9bac426a925f8868b554be2414c0f012c961e3ddb8c, asdf-flv-20240503-3f1de41/net.didierverna.asdf-flv.asd 74net.didierverna.asdf-flv, ghcr.io/ocicl/net.didierverna.asdf-flv@sha256:e5cd087d41cf24302a92d9bac426a925f8868b554be2414c0f012c961e3ddb8c, asdf-flv-20240503-3f1de41/net.didierverna.asdf-flv.asd
65parse-declarations-1.0, ghcr.io/ocicl/parse-declarations-1.0@sha256:9305fa9624205b16fd1fc51cb1cc4282a18e50eee9ac75b66a14f6f2c5df9518, parse-declarations-20240503-549aebb/parse-declarations-1.0.asd 75parse-declarations-1.0, ghcr.io/ocicl/parse-declarations-1.0@sha256:9305fa9624205b16fd1fc51cb1cc4282a18e50eee9ac75b66a14f6f2c5df9518, parse-declarations-20240503-549aebb/parse-declarations-1.0.asd
66parse-number, ghcr.io/ocicl/parse-number@sha256:11f3f9f512871e1f96cea6b8260aa3610e34e8fd7272bbcdb210fd3c5dd8025c, parse-number-20240503-cb9e487/parse-number.asd 76parse-number, ghcr.io/ocicl/parse-number@sha256:11f3f9f512871e1f96cea6b8260aa3610e34e8fd7272bbcdb210fd3c5dd8025c, parse-number-20240503-cb9e487/parse-number.asd
diff --git a/src/inline-bots.lisp b/src/inline-bots.lisp
index f4d8a8d..db9d8ff 100644
--- a/src/inline-bots.lisp
+++ b/src/inline-bots.lisp
@@ -3,16 +3,16 @@
3(defpackage :ukkoclot/src/inline-bots 3(defpackage :ukkoclot/src/inline-bots
4 (:documentation "This package deals with removing unwanted inline bot usage") 4 (:documentation "This package deals with removing unwanted inline bot usage")
5 (:use :c2cl :ukkoclot/src/tg) 5 (:use :c2cl :ukkoclot/src/tg)
6 (:import-from :com.dieggsy.f-string :enable-f-strings)
7 (:import-from :conf) 6 (:import-from :conf)
8 (:import-from :log) 7 (:import-from :log)
8 (:import-from :named-readtables :in-readtable)
9 (:import-from :serapeum :->) 9 (:import-from :serapeum :->)
10 (:import-from :state) 10 (:import-from :state)
11 (:import-from :ukkoclot/src/readtable :readtable)
11 (:local-nicknames (:db :ukkoclot/src/db)) 12 (:local-nicknames (:db :ukkoclot/src/db))
12 (:export :blacklist-inline-bot :on-inline-bot :whitelist-inline-bot)) 13 (:export :blacklist-inline-bot :on-inline-bot :whitelist-inline-bot))
13(in-package :ukkoclot/src/inline-bots) 14(in-package :ukkoclot/src/inline-bots)
14 15(in-readtable readtable)
15(enable-f-strings)
16 16
17(-> blacklist-inline-bot (integer) (values &optional)) 17(-> blacklist-inline-bot (integer) (values &optional))
18(defun blacklist-inline-bot (inline-bot-id) 18(defun blacklist-inline-bot (inline-bot-id)
diff --git a/src/main.lisp b/src/main.lisp
index 13da5af..f435bf3 100644
--- a/src/main.lisp
+++ b/src/main.lisp
@@ -5,12 +5,13 @@
5 (:nicknames :ukkoclot) 5 (:nicknames :ukkoclot)
6 (:use :c2cl :iterate :ukkoclot/src/inline-bots :ukkoclot/src/tg) 6 (:use :c2cl :iterate :ukkoclot/src/inline-bots :ukkoclot/src/tg)
7 (:import-from :alexandria :when-let) 7 (:import-from :alexandria :when-let)
8 (:import-from :com.dieggsy.f-string :enable-f-strings)
9 (:import-from :conf) 8 (:import-from :conf)
10 (:import-from :log) 9 (:import-from :log)
10 (:import-from :named-readtables :in-readtable)
11 (:import-from :serapeum :-> :drop) 11 (:import-from :serapeum :-> :drop)
12 (:import-from :state :*state* :make-state) 12 (:import-from :state :*state* :make-state)
13 (:import-from :str) 13 (:import-from :str)
14 (:import-from :ukkoclot/src/readtable :readtable)
14 (:import-from :ukkoclot/src/db :with-db) 15 (:import-from :ukkoclot/src/db :with-db)
15 (:import-from :ukkoclot/src/serializing :fixup-value) 16 (:import-from :ukkoclot/src/serializing :fixup-value)
16 (:import-from :ukkoclot/src/strings :escape-xml :is-tg-whitespace :is-tg-whitespace-str) 17 (:import-from :ukkoclot/src/strings :escape-xml :is-tg-whitespace :is-tg-whitespace-str)
@@ -18,8 +19,7 @@
18 (:jzon :com.inuoe.jzon)) 19 (:jzon :com.inuoe.jzon))
19 (:export :main)) 20 (:export :main))
20(in-package :ukkoclot/src/main) 21(in-package :ukkoclot/src/main)
21 22(in-readtable readtable)
22(enable-f-strings)
23 23
24(defvar *in-prod* nil) 24(defvar *in-prod* nil)
25 25
diff --git a/src/readtable.lisp b/src/readtable.lisp
new file mode 100644
index 0000000..ee5af0a
--- /dev/null
+++ b/src/readtable.lisp
@@ -0,0 +1,14 @@
1;; SPDX-License-Identifier: EUPL-1.2
2;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
3(defpackage :ukkoclot/src/readtable
4 (:documentation "Defines the custom readtable used within this project.")
5 (:use :c2cl)
6 (:import-from :named-readtables :defreadtable)
7 (:import-from :com.dieggsy.f-string :f-string-reader)
8 (:export :readtable))
9(in-package :ukkoclot/src/readtable)
10
11(defreadtable readtable
12 (:merge :standard)
13 (:dispatch-macro-char #\# #\f #'f-string-reader)
14 (:case :upcase))
diff --git a/src/rw-lock.lisp b/src/rw-lock.lisp
index b8d08b1..2a5e2c3 100644
--- a/src/rw-lock.lisp
+++ b/src/rw-lock.lisp
@@ -4,10 +4,12 @@
4 (:documentation "Implementation of a shared/read-write lock.") 4 (:documentation "Implementation of a shared/read-write lock.")
5 (:use :c2cl :bt2 :iterate) 5 (:use :c2cl :bt2 :iterate)
6 (:import-from :alexandria :whichever :with-gensyms) 6 (:import-from :alexandria :whichever :with-gensyms)
7 (:import-from :com.dieggsy.f-string :enable-f-strings) 7 (:import-from :named-readtables :in-readtable)
8 ;; These imports make this SBCL-dependent, but technically speaking we could live without them.
8 (:import-from :sb-sys 9 (:import-from :sb-sys
9 :allow-with-interrupts :with-local-interrupts :without-interrupts) 10 :allow-with-interrupts :with-local-interrupts :without-interrupts)
10 (:import-from :serapeum :->) 11 (:import-from :serapeum :->)
12 (:import-from :ukkoclot/src/readtable :readtable)
11 (:export 13 (:export
12 #:rw-lock 14 #:rw-lock
13 #:rw-lock-p 15 #:rw-lock-p
@@ -19,9 +21,7 @@
19 #:release-write-lock 21 #:release-write-lock
20 #:with-write-lock)) 22 #:with-write-lock))
21(in-package :ukkoclot/src/rw-lock) 23(in-package :ukkoclot/src/rw-lock)
22 24(in-readtable readtable)
23(eval-when (:compile-toplevel :load-toplevel :execute)
24 (enable-f-strings))
25 25
26;; TODO: Use atomic-integer in best-case for read locks to decrease contention 26;; TODO: Use atomic-integer in best-case for read locks to decrease contention
27(defstruct (rw-lock (:constructor make-rw-lock%)) 27(defstruct (rw-lock (:constructor make-rw-lock%))
diff --git a/src/state.lisp b/src/state.lisp
index 9f1a38f..e2052e3 100644
--- a/src/state.lisp
+++ b/src/state.lisp
@@ -4,10 +4,11 @@
4 (:documentation "Holds the global state") 4 (:documentation "Holds the global state")
5 (:nicknames :state) 5 (:nicknames :state)
6 (:use :c2cl :ukkoclot/src/rw-lock) 6 (:use :c2cl :ukkoclot/src/rw-lock)
7 (:import-from :com.dieggsy.f-string :enable-f-strings)
8 (:import-from :conf :config :*config* :bot-token) 7 (:import-from :conf :config :*config* :bot-token)
8 (:import-from :named-readtables :in-readtable)
9 (:import-from :serapeum :->) 9 (:import-from :serapeum :->)
10 (:import-from :ukkoclot/src/db :db) 10 (:import-from :ukkoclot/src/db :db)
11 (:import-from :ukkoclot/src/readtable :readtable)
11 (:export 12 (:export
12 #:*state* 13 #:*state*
13 #:state 14 #:state
@@ -22,8 +23,7 @@
22 #:id% 23 #:id%
23 #:set-id%)) 24 #:set-id%))
24(in-package :ukkoclot/src/state) 25(in-package :ukkoclot/src/state)
25 26(in-readtable readtable)
26(enable-f-strings)
27 27
28(defstruct (state (:constructor make-state%)) 28(defstruct (state (:constructor make-state%))
29 (lock (make-rw-lock :name "state's lock") :type rw-lock :read-only t) 29 (lock (make-rw-lock :name "state's lock") :type rw-lock :read-only t)
diff --git a/src/tg/method-macros.lisp b/src/tg/method-macros.lisp
index 9ab9e89..17903df 100644
--- a/src/tg/method-macros.lisp
+++ b/src/tg/method-macros.lisp
@@ -4,16 +4,15 @@
4 (:documentation "Macros for easy defining TG methods.") 4 (:documentation "Macros for easy defining TG methods.")
5 (:use :c2cl :iterate) 5 (:use :c2cl :iterate)
6 (:import-from :alexandria :make-keyword :with-gensyms) 6 (:import-from :alexandria :make-keyword :with-gensyms)
7 (:import-from :com.dieggsy.f-string :enable-f-strings) 7 (:import-from :named-readtables :in-readtable)
8 (:import-from :serapeum :-> :take) 8 (:import-from :serapeum :-> :take)
9 (:import-from :state) 9 (:import-from :state)
10 (:import-from :str) 10 (:import-from :str)
11 (:import-from :ukkoclot/src/readtable :readtable)
11 (:import-from :ukkoclot/src/transport :do-call :http-method) 12 (:import-from :ukkoclot/src/transport :do-call :http-method)
12 (:export :define-tg-method)) 13 (:export :define-tg-method))
13(in-package :ukkoclot/src/tg/method-macros) 14(in-package :ukkoclot/src/tg/method-macros)
14 15(in-readtable readtable)
15(eval-when (:compile-toplevel :load-toplevel :execute)
16 (enable-f-strings))
17 16
18(eval-when (:compile-toplevel :load-toplevel :execute) 17(eval-when (:compile-toplevel :load-toplevel :execute)
19 (defstruct (param (:constructor make-param%)) name type default skip-if-default) 18 (defstruct (param (:constructor make-param%)) name type default skip-if-default)
diff --git a/src/tg/type-macros.lisp b/src/tg/type-macros.lisp
index 02437ec..97cce1c 100644
--- a/src/tg/type-macros.lisp
+++ b/src/tg/type-macros.lisp
@@ -4,18 +4,17 @@
4 (:documentation "Macros for easy defining TG types.") 4 (:documentation "Macros for easy defining TG types.")
5 (:use :c2cl :iterate) 5 (:use :c2cl :iterate)
6 (:import-from :alexandria :make-keyword :symbolicate :with-gensyms) 6 (:import-from :alexandria :make-keyword :symbolicate :with-gensyms)
7 (:import-from :com.dieggsy.f-string :enable-f-strings) 7 (:import-from :named-readtables :in-readtable)
8 (:import-from :serapeum :->) 8 (:import-from :serapeum :->)
9 (:import-from :str) 9 (:import-from :str)
10 (:import-from :ukkoclot/src/serializing :parse-value)
11 (:import-from :ukkoclot/src/hash-tables :gethash-lazy) 10 (:import-from :ukkoclot/src/hash-tables :gethash-lazy)
11 (:import-from :ukkoclot/src/readtable :readtable)
12 (:import-from :ukkoclot/src/serializing :parse-value)
12 (:local-nicknames 13 (:local-nicknames
13 (:jzon :com.inuoe.jzon)) 14 (:jzon :com.inuoe.jzon))
14 (:export :define-tg-type)) 15 (:export :define-tg-type))
15(in-package :ukkoclot/src/tg/type-macros) 16(in-package :ukkoclot/src/tg/type-macros)
16 17(in-readtable readtable)
17(eval-when (:compile-toplevel :load-toplevel :execute)
18 (enable-f-strings))
19 18
20(eval-when (:compile-toplevel :load-toplevel :execute) 19(eval-when (:compile-toplevel :load-toplevel :execute)
21 (defstruct (field (:constructor make-field%)) name type default skip-if-default) 20 (defstruct (field (:constructor make-field%)) name type default skip-if-default)