From 445c5a5c3b6e1d6cfdf0a00fcd33371b7985b5e0 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 11 Jun 2025 15:30:46 +0200 Subject: [PATCH] create new package scopes/csys: new communication system implementation --- csys/csys.lisp | 17 +++++++++++++++++ scopes-core.asd | 1 + scopes-csys.asd | 20 ++++++++++++++++++++ test/etc/config-csys.lisp | 12 ++++++++++++ test/test-csys.lisp | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 csys/csys.lisp create mode 100644 scopes-csys.asd create mode 100644 test/etc/config-csys.lisp create mode 100644 test/test-csys.lisp diff --git a/csys/csys.lisp b/csys/csys.lisp new file mode 100644 index 0000000..fd54a3d --- /dev/null +++ b/csys/csys.lisp @@ -0,0 +1,17 @@ +;;;; cl-scopes/csys - concurrent cybernetic communication systems + +(defpackage :scopes/csys + (:use :common-lisp) + (:local-nicknames (:actor :scopes/core/actor) + (:async :scopes/util/async) + (:config :scopes/config) + (:core :scopes/core) + (:message :scopes/core/message) + (:shape :scopes/shape) + (:util :scopes/util) + (:alx :alexandria)) + (:export #:*dispatcher*)) + +(in-package :scopes/csys) + +(defvar *dispatcher* nil) diff --git a/scopes-core.asd b/scopes-core.asd index ac7f40e..b15ba68 100644 --- a/scopes-core.asd +++ b/scopes-core.asd @@ -17,6 +17,7 @@ "core/actor" "core/message" "forge/forge" "logging" "util/async" "util/util")) + (:file "csys/csys" :depends-on ("core/core")) (:file "core/message" :depends-on ("core/actor" "shape/shape")) (:file "forge/forge" :depends-on ("util/iter" "util/util")) (:file "logging" :depends-on ("config" "util/util")) diff --git a/scopes-csys.asd b/scopes-csys.asd new file mode 100644 index 0000000..9805f3d --- /dev/null +++ b/scopes-csys.asd @@ -0,0 +1,20 @@ +;;;; cl-scopes/scopes-csys.asd + +(in-package #:asdf-user) + +(defsystem :scopes-csys + :author "cyberconcepts.org Team " + :license "MIT" + :version "0.0.1" + :homepage "https://www.cyberconcepts.org" + :description "Concurrent cybernetic communications systems." + :depends-on (:scopes-core) + :components ((:file "csys/csys")) + :long-description "scopes/csys: Concurrent cybernetic communications systems." + :in-order-to ((test-op (test-op "scopes-csys/test")))) + +(defsystem :scopes-csys/test + :depends-on (:scopes-csys) + :components ((:file "test/test-csys")) + :perform (test-op (o c) + (symbol-call :scopes/test-csys :run))) diff --git a/test/etc/config-csys.lisp b/test/etc/config-csys.lisp new file mode 100644 index 0000000..dad17b9 --- /dev/null +++ b/test/etc/config-csys.lisp @@ -0,0 +1,12 @@ +;;;; cl-scopes/test/etc/config-csys - configuration for `scopes-csys` tests + +(in-package :scopes/test-csys) + +(config:root) + +(config:add :logger :class 'logging:config + :loglevel (config:from-env :loglevel :info) + :logfile (t:test-path "scopes-test.log" "log") + :console nil) + + diff --git a/test/test-csys.lisp b/test/test-csys.lisp new file mode 100644 index 0000000..482cb56 --- /dev/null +++ b/test/test-csys.lisp @@ -0,0 +1,34 @@ +;;;; cl-scopes/test-csys - testing for the scopes-csys system. + +(defpackage :scopes/test-csys + (:use :common-lisp) + (:local-nicknames (:alx :alexandria) + (:actor :scopes/core/actor) + (:async :scopes/util/async) + (:config :scopes/config) + (:core :scopes/core) + (:csys :scopes/csys) + (:logging :scopes/logging) + (:message :scopes/core/message) + (:shape :scopes/shape) + (:util :scopes/util) + (:t :scopes/testing)) + (:export #:run) + (:import-from :scopes/testing #:deftest #:== #:!=)) + +(in-package :scopes/test-csys) + +;;;; test runner + +(defun run () + (async:init) + (let* ((t:*test-suite* (make-instance 't:test-suite :name "csys"))) + (load (t:test-path "config-csys" "etc")) + (unwind-protect + (progn + (test-basic)) + (async:finish) + (t:show-result)))) + +(deftest test-basic () + (== csys:*dispatcher* nil))