From 9ef800dfc80da6a1da52cafbcad7ab6992c0ba41 Mon Sep 17 00:00:00 2001 From: "Tarn W. Burton" Date: Mon, 8 Jan 2024 08:02:24 -0500 Subject: [PATCH] Some fixes for extrinsic --- .github/workflows/test.yml | 3 +++ code/extrinsic/interface.lisp | 7 +++++-- code/extrinsic/test/expected-failures.sexp | 2 +- code/extrinsic/test/test.lisp | 8 ++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9f051ee..35ddd0d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,6 +16,9 @@ jobs: fail-fast: false matrix: lisp: + - abcl + - clasp + - ecl - sbcl runs-on: ubuntu-latest container: diff --git a/code/extrinsic/interface.lisp b/code/extrinsic/interface.lisp index 51e9efe..50b8c04 100644 --- a/code/extrinsic/interface.lisp +++ b/code/extrinsic/interface.lisp @@ -111,6 +111,8 @@ (defmethod cyclosis:make-file-stream ((client extrinsic-client) path direction if-exists if-does-not-exist element-type external-format) + (when (eq if-does-not-exist :create) + (ensure-directories-exist path)) (let ((target (cl:open path :direction direction :if-exists if-exists :if-does-not-exist if-does-not-exist @@ -228,6 +230,7 @@ #'extrinsic-format) (defmethod cyclosis:whitespace-char-p ((client extrinsic-client) ch) + #+abcl (java:jcall "isWhitespace" *readtable* ch) #+ccl (ccl::whitespacep ch) #+clasp (eq (core:syntax-type *readtable* ch) :whitespace) @@ -237,8 +240,8 @@ "ecl_readtable_get(ecl_current_readtable(), ECL_CHAR_CODE(#0), NULL) == cat_whitespace" :one-liner t) #+sbcl (sb-impl::whitespace[2]p ch *readtable*) - #-(or ccl clasp cmucl (and ecl (not bytecode)) sbcl) - (and (member char '(#\tab #\newline #\linefeed #\page #\return #\space)) + #-(or abcl ccl clasp cmucl (and ecl (not bytecode)) sbcl) + (and (member ch '(#\tab #\newline #\linefeed #\page #\return #\space)) t)) (cyclosis:define-interface *client*) diff --git a/code/extrinsic/test/expected-failures.sexp b/code/extrinsic/test/expected-failures.sexp index b47dc70..b30a550 100644 --- a/code/extrinsic/test/expected-failures.sexp +++ b/code/extrinsic/test/expected-failures.sexp @@ -1 +1 @@ -#+(or clasp cmucl ecl sbcl) :NIL-VECTORS-ARE-STRINGS +#+(or abcl clasp cmucl ecl sbcl) :NIL-VECTORS-ARE-STRINGS diff --git a/code/extrinsic/test/test.lisp b/code/extrinsic/test/test.lisp index 182094a..772ee08 100644 --- a/code/extrinsic/test/test.lisp +++ b/code/extrinsic/test/test.lisp @@ -74,12 +74,8 @@ (defun test (&rest rest) (let ((system (asdf:find-system :cyclosis-extrinsic/test))) (apply #'ansi-test-harness:ansi-test - :directory (merge-pathnames - (make-pathname - :directory '(:relative - "dependencies" - "ansi-test")) - (asdf:component-pathname system)) + :directory (merge-pathnames #P"dependencies/ansi-test/" + (asdf:component-pathname system)) :tests *tests* :expected-failures (asdf:component-pathname (asdf:find-component