~ chicken-core (chicken-5) a8a9c1dd21be5cfbcff78671782f4f6101f2479d
commit a8a9c1dd21be5cfbcff78671782f4f6101f2479d
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Aug 4 13:29:57 2025 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Aug 4 13:29:57 2025 +0100
we just use "/" everywhere
diff --git a/egg-environment.scm b/egg-environment.scm
index 1dbda373..ee68df7c 100644
--- a/egg-environment.scm
+++ b/egg-environment.scm
@@ -75,7 +75,7 @@ EOF
(string-append default-bindir "/" (foreign-value "C_CSI_PROGRAM" c-string)))
(define default-builder
- (make-pathname default-bindir (foreign-value "C_CHICKEN_DO_PROGRAM" c-string)))
+ (string-append default-bindir "/" (foreign-value "C_CHICKEN_DO_PROGRAM" c-string)))
(define target-librarian (foreign-value "C_TARGET_LIBRARIAN" c-string))
(define target-librarian-options (foreign-value "C_TARGET_LIBRARIAN_FLAGS" c-string))
@@ -120,14 +120,15 @@ EOF
(define cache-directory
(or (get-environment-variable "CHICKEN_EGG_CACHE")
- (make-pathname (or (system-cache-directory)
- (current-directory))
- chicken-install-program)))
+ (string-append (or (system-cache-directory)
+ (current-directory))
+ "/"
+ chicken-install-program)))
(define cache-metadata-directory
;; Directory where the VERSION, TIMESTAMP and STATUS files are
;; stored (under their corresponding egg directory).
- (make-pathname cache-directory ".cache-metadata"))
+ (string-append cache-directory "/.cache-metadata"))
(define +version-file+ "VERSION")
(define +timestamp-file+ "TIMESTAMP")
diff --git a/manual/Module (chicken pathname) b/manual/Module (chicken pathname)
index 13b3e2e2..a1bd95ec 100644
--- a/manual/Module (chicken pathname)
+++ b/manual/Module (chicken pathname)
@@ -31,8 +31,7 @@ For any component that is not contained in {{PATHNAME}}, {{#f}} is returned.
Returns a string that names the file with the
components {{DIRECTORY, FILENAME}} and (optionally)
{{EXTENSION}} with {{SEPARATOR}} being the directory separation indicator
-(usually {{/}} on UNIX systems and {{\}} on Windows, defaulting to whatever
-platform this is running on).
+({{/}}).
{{DIRECTORY}} can be {{#f}} (meaning no
directory component), a string or a list of strings. {{FILENAME}}
and {{EXTENSION}} should be strings or {{#f}}.
@@ -78,7 +77,7 @@ Performs a simple "normalization" on the {{PATHNAME}}, suitably for
or {{unix}} and defaults to on whatever platform is currently
in use. All relative path elements and duplicate separators are processed
and removed. If {{NAME}} ends with
-a {{/}} or is empty, the appropriate slash is appended to the tail.
+a {{/}} or is empty, a slash is appended to the tail.
No directories or files are actually tested for existence; this
procedure only canonicalises path syntax.
diff --git a/pathname.scm b/pathname.scm
index b8ab39be..3edf5f01 100644
--- a/pathname.scm
+++ b/pathname.scm
@@ -83,9 +83,7 @@
(irregex-match-data? (absolute-pathname-root pn)))
(define-inline (*char-pds? ch)
- (if ##sys#windows-platform
- (memq ch '(#\\ #\/))
- (eq? #\/ ch)))
+ (eq? #\/ ch))
(define (chop-pds str)
(and str
@@ -100,7 +98,7 @@
(define make-pathname)
(define make-absolute-pathname)
-(let ((pds (if ##sys#windows-platform "\\" "/")))
+(let ()
(define (conc-dirs dirs)
(##sys#check-list dirs 'make-pathname)
@@ -112,7 +110,7 @@
(loop (cdr strs))
(string-append
(chop-pds (car strs))
- pds
+ "/"
(loop (cdr strs))))))))
(define (canonicalize-dirs dirs)
@@ -150,7 +148,7 @@
(let ((dir (canonicalize-dirs dirs)))
(if (absolute-pathname? dir)
dir
- (##sys#string-append pds dir)))
+ (##sys#string-append "/" dir)))
file ext))))
(define decompose-pathname
@@ -240,11 +238,8 @@
(cdr parts)))
(else (cons part parts))))
(lambda (path #!optional (platform bldplt))
- (let ((sep (if (eq? platform 'windows) #\\ #\/)))
- (define (pds? c)
- (if (eq? platform 'windows)
- (memq c '(#\/ #\\))
- (eq? c #\/)))
+ (let ((sep #\/))
+ (define (pds? c) (eq? c #\/))
(##sys#check-string path 'normalize-pathname)
(let ((len (string-length path))
(type #f)
Trap