From 5b1629cd7d8e6bde36abe5a4bc48da93a1315449 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Sun, 1 Feb 2026 17:34:37 +0200 Subject: [PATCH] Add support for Chicken keywords --- Makefile | 11 ++++++----- retropikzel/named-pipes/test.scm | 4 ---- retropikzel/pstk.scm | 24 +++++++++++++++--------- retropikzel/pstk.sld | 3 +++ retropikzel/pstk/VERSION | 2 +- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index d403d7a..e5e1fa0 100644 --- a/Makefile +++ b/Makefile @@ -35,14 +35,15 @@ uninstall: init-venv: build rm -rf venv scheme-venv ${SCHEME} ${RNRS} venv - cp ${TESTFILE} venv/test.scm - cp ${TESTFILE} venv/test.sps - sed -i 's/srfi 64/srfi :64/' venv/test.sps + echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (srfi 64) (retropikzel ${LIBRARY}))" > venv/test.scm + echo "(import (rnrs) (srfi :64) (retropikzel ${LIBRARY}))" > venv/test.sps + cat ${TESTFILE} >> venv/test.scm + cat ${TESTFILE} >> venv/test.sps cp -r ../foreign-c/foreign venv/lib cp -r retropikzel venv/lib/ if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes srfi.64; fi - if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install --always-yes ${PKG}; fi - ./venv/bin/akku install akku-r7rs chez-srfi + if [ "${RNRS}" = "r7rs" ]; then ./venv/bin/snow-chibi install ${PKG}; fi + if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/akku install akku-r7rs chez-srfi; fi run-test: init-venv if [ "${RNRS}" = "r6rs" ]; then ./venv/bin/scheme-compile venv/test.sps; fi diff --git a/retropikzel/named-pipes/test.scm b/retropikzel/named-pipes/test.scm index dc2e22c..8703b47 100644 --- a/retropikzel/named-pipes/test.scm +++ b/retropikzel/named-pipes/test.scm @@ -1,7 +1,3 @@ -(import (scheme base) - (scheme file) - (scheme write) - (retropikzel named-pipes)) (define pipe-path "/tmp/named-pipes-test") (when (file-exists? pipe-path) (delete-file pipe-path)) diff --git a/retropikzel/pstk.scm b/retropikzel/pstk.scm index 52998c2..8c66de2 100644 --- a/retropikzel/pstk.scm +++ b/retropikzel/pstk.scm @@ -1,12 +1,11 @@ -(random-source-randomize! default-random-source) - (define (temp-name) + (random-source-randomize! default-random-source) (let ((file (string-append "/tmp/pstk-" - (number->string (random-integer 1000)) - "-" - (number->string (random-integer 1000)) - "-" - (number->string (random-integer 1000))))) + (number->string (random-integer 1000)) + "-" + (number->string (random-integer 1000)) + "-" + (number->string (random-integer 1000))))) (if (file-exists? file) (temp-name) file))) @@ -41,8 +40,14 @@ (define *use-keywords?* #t) -(define (keyword? x) #f) ;; TODO: handle keywords? -(define (keyword->string x) x) +(define (keyword? x) + (cond-expand + (chicken (chicken-keyword? x)) + (else (error "Keywords not supported on this implementation")))) +(define (keyword->string x) + (cond-expand + (chicken (chicken-keyword->string x)) + (else (error "Keywords not supported on this implementation")))) (define nl (string #\newline)) @@ -193,6 +198,7 @@ (improper-list->string x #t)) ")")) ((eof-object? x) "#") + ((keyword? x) (keyword->string x)) (else "#")))) (define string-translate diff --git a/retropikzel/pstk.sld b/retropikzel/pstk.sld index 25261f0..bacd299 100644 --- a/retropikzel/pstk.sld +++ b/retropikzel/pstk.sld @@ -162,5 +162,8 @@ ttk/available-themes ttk/set-theme ttk/style) + (cond-expand + (chicken (import (prefix (chicken keyword) chicken-))) + (else)) (include "pstk.scm")) diff --git a/retropikzel/pstk/VERSION b/retropikzel/pstk/VERSION index 90a27f9..af0b7dd 100644 --- a/retropikzel/pstk/VERSION +++ b/retropikzel/pstk/VERSION @@ -1 +1 @@ -1.0.5 +1.0.6