~ chicken-core (chicken-5) 71d2cf87f101bd10411a4bd0dd20eeac5dc484eb


commit 71d2cf87f101bd10411a4bd0dd20eeac5dc484eb
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Sun Jan 21 14:14:09 2018 +0100
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Mon Jan 22 13:17:54 2018 +1300

    Move "system" into chicken.process (posix.scm)
    
    We already have system* in there, and it exports both, so it only
    makes sense to move the definition from library.scm here too.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/chicken-uninstall.scm b/chicken-uninstall.scm
index bb4e7852..6141e176 100644
--- a/chicken-uninstall.scm
+++ b/chicken-uninstall.scm
@@ -35,6 +35,7 @@
           (chicken irregex)
           (chicken port)
           (chicken pathname)
+          (chicken process)
           (chicken process-context)
           (chicken string))
 
diff --git a/chicken.import.scm b/chicken.import.scm
index 24bc00a8..d0908e29 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -155,7 +155,7 @@
    (symbol-append . chicken.base#symbol-append)
    symbol-escape
    (syntax-error . chicken.syntax#syntax-error)
-   system
+   (system . chicken.process#system)
    (unregister-feature! . chicken.platform#unregister-feature!)
    (vector-copy! . chicken.base#vector-copy!)
    (vector-resize . chicken.base#vector-resize)
diff --git a/library.scm b/library.scm
index 992fdb9d..a8b2f184 100644
--- a/library.scm
+++ b/library.scm
@@ -1212,14 +1212,6 @@ EOF
 		   (lp val forward)))))
 	obj)))
 
-(define (system cmd)
-  (##sys#check-string cmd 'system)
-  (let ((r (##core#inline "C_execute_shell_command" cmd)))
-    (cond ((fx< r 0)
-	   (##sys#update-errno)
-	   (##sys#signal-hook #:process-error 'system "`system' invocation failed" cmd) )
-	  (else r) ) ) )
-
 
 ;;; Dynamic Load
 
diff --git a/posix.scm b/posix.scm
index fdd97dbb..24a96cf8 100644
--- a/posix.scm
+++ b/posix.scm
@@ -180,6 +180,16 @@
 (import chicken scheme chicken.posix chicken.platform)
 
 
+;;; Execute a shell command:
+
+(define (system cmd)
+  (##sys#check-string cmd 'system)
+  (let ((r (##core#inline "C_execute_shell_command" cmd)))
+    (cond ((fx< r 0)
+	   (##sys#update-errno)
+	   (##sys#signal-hook #:process-error 'system "`system' invocation failed" cmd))
+	  (else r))))
+
 ;;; Like `system', but bombs on nonzero return code:
 
 (define (system* str)
diff --git a/types.db b/types.db
index 298c4e97..b65647e1 100644
--- a/types.db
+++ b/types.db
@@ -1402,7 +1402,6 @@
 
 (symbol-escape (#(procedure #:clean) symbol-escape (#!optional *) *))
 
-(system (#(procedure #:clean #:enforce) system (string) fixnum))
 (##sys#void (#(procedure #:pure) void (#!rest) undefined))
 
 ;; chicken (internal)
@@ -2099,6 +2098,7 @@
 
 ;; process
 
+(chicken.process#system (#(procedure #:clean #:enforce) chicken.process#system (string) fixnum))
 (chicken.process#system* (#(procedure #:clean #:enforce) chicken.process#system* (string #!rest) undefined))
 (chicken.process#qs (#(procedure #:clean #:enforce) chicken.process#qs (string) string))
 
Trap