[[project @ 2001-08-06 22:18:23 by ghouston] ghouston**20010806221823 Ignore-this: 56fac8f13fce29deaf5f7cd1863d3ac9 * syscalls.scm (itimer): define and export. it's an interface to "alarm", not "setitimer". weird. (open/access-mask, define and export (from scsh fdflags.scm). * newports.scm (open-file, open-input-file, open-output-file): define and export. clobbers Guile primitives. use modules (scsh syscalls), (scsh let-opt), (scsh utilities), (scsh bitwise). * init.scm: don't duplicate comments already in USAGE. * USAGE, INCOMPAT: updated. ] hunk ./ChangeLog 1 +2001-08-06 Gary Houston + + * syscalls.scm (itimer): define and export. it's an interface + to "alarm", not "setitimer". weird. + (open/access-mask, define and export (from scsh fdflags.scm). + * newports.scm (open-file, open-input-file, open-output-file): + define and export. clobbers Guile primitives. + use modules (scsh syscalls), (scsh let-opt), (scsh utilities), + (scsh bitwise). + * init.scm: don't duplicate comments already in USAGE. + * USAGE, INCOMPAT: updated. + hunk ./INCOMPAT 14 -enabled-interrupts, interrupt-set, itimer, %set-unix-signal-handler, +enabled-interrupts, interrupt-set, %set-unix-signal-handler, hunk ./INCOMPAT 46 -[check that the following are still true in 0.5.2] +open/async, open/fsync, open/shared-lock, open/exclusive-lock are +not defined. hunk ./INCOMPAT 49 -the interfaces to the I/O system may be incompatible. +[FIXME: check that the following are still true] hunk ./USAGE 147 -;; redefines regexp? +;; replaces regexp? hunk ./USAGE 212 -(%exec %%fork cwd user-gid user-effective-gid set-gid user-supplementary-gids user-uid user-effective-uid set-uid user-login-name pid parent-pid set-process-group become-session-leader set-umask process-times cpu-ticks/sec set-file-mode set-file-owner set-file-group read-symlink delete-directory set-file-times file-info file-info:type file-info:gid file-info:inode file-info:atime file-info:mtime file-info:ctime file-info:mode file-info:nlinks file-info:uid file-info:size sync-file sync-file-system seek/set seek/delta seek/end tell pipe signal-process signal-process-group pause-until-interrupt user-info user-info:name user-info:uid user-info:gid user-info:home-dir user-info:shell name->user-info uid->user-info ->uid ->username %homedir group-info group-info:name group-info:gid group-info:members ->gid ->groupname directory-files env->alist alist->env fdes-flags set-fdes-flags fdes-status set-fdes-status open/read open/write open/read+write open/non-blocking open/append open/exclusive open/create open/truncate open/no-control-tty fdflags/close-on-exec sleep sleep-until system-name) +(%exec %%fork cwd user-gid user-effective-gid set-gid user-supplementary-gids user-uid user-effective-uid set-uid user-login-name pid parent-pid set-process-group become-session-leader set-umask process-times cpu-ticks/sec set-file-mode set-file-owner set-file-group read-symlink delete-directory set-file-times file-info file-info:type file-info:gid file-info:inode file-info:atime file-info:mtime file-info:ctime file-info:mode file-info:nlinks file-info:uid file-info:size sync-file sync-file-system seek/set seek/delta seek/end tell pipe signal-process signal-process-group pause-until-interrupt itimer user-info user-info:name user-info:uid user-info:gid user-info:home-dir user-info:shell name->user-info uid->user-info ->uid ->username %homedir group-info group-info:name group-info:gid group-info:members ->gid ->groupname directory-files env->alist alist->env fdes-flags set-fdes-flags fdes-status set-fdes-status open/read open/write open/read+write open/non-blocking open/append open/exclusive open/create open/truncate open/no-control-tty open/access-mask fdflags/close-on-exec sleep sleep-until system-name) hunk ./USAGE 249 -(fdport? set-port-buffering bufpol/block bufpol/line bufpol/none call/fdes close-after with-current-input-port* with-current-output-port* with-current-error-port* with-current-input-port with-current-output-port with-current-error-port set-current-input-port! set-current-output-port! set-current-error-port!) +;; replaces open-file, open-input-file, open-output-file +(fdport? set-port-buffering bufpol/block bufpol/line bufpol/none open-file open-input-file open-output-file call/fdes close-after with-current-input-port* with-current-output-port* with-current-error-port* with-current-input-port with-current-output-port with-current-error-port set-current-input-port! set-current-output-port! set-current-error-port!) hunk ./init.scm 4 - ;; replaces: - ;; map map-in-order for-each member assoc iota list-index - ;; delete delete! hunk ./init.scm 5 - - ;; replaces: - ;; string-downcase string-downcase! - ;; string-upcase string-upcase! string-index - ;; string-fill! string-copy string->list hunk ./init.scm 6 - hunk ./init.scm 16 - (scsh utilities) ; replaces primitive delete. + (scsh utilities) hunk ./init.scm 32 - (scsh rx re) ; replaces regexp? + (scsh rx re) hunk ./init.scm 59 - ;; replaces pipe, sleep hunk ./newports.scm 12 + :use-module (scsh let-opt) + :use-module (scsh utilities) + :use-module (scsh bitwise) + :use-module (scsh syscalls) hunk ./newports.scm 17 + +(begin-deprecated + ;; Prevent `export' from re-exporting core bindings. This behaviour + ;; of `export' is deprecated and will disappear in one of the next + ;; releases. + (define open-file #f) + (define open-input-file #f) + (define open-output-file #f)) + hunk ./newports.scm 28 + open-file open-input-file open-output-file hunk ./newports.scm 63 -;; the Guile versions of these don't take compatible arguments. hunk ./newports.scm 71 -;(define (open-input-file fname . maybe-flags) -; (let ((flags (:optional maybe-flags 0))) -; (open-file fname (deposit-bit-field flags open/access-mask open/read)))) +(define open-file open) + +(define (open-input-file fname . maybe-flags) + (let ((flags (:optional maybe-flags 0))) + (open-file fname (deposit-bit-field flags open/access-mask open/read)))) hunk ./newports.scm 77 -;(define (open-output-file fname . rest) -; (let* ((flags (if (pair? rest) (car rest) -; (bitwise-ior open/create open/truncate))) ; default -; (maybe-mode (if (null? rest) '() (cdr rest))) -; (flags (deposit-bit-field flags open/access-mask open/write))) -; (apply open-file fname flags maybe-mode))) +(define (open-output-file fname . rest) + (let* ((flags (if (pair? rest) (car rest) + (bitwise-ior open/create open/truncate))) ; default + (maybe-mode (if (null? rest) '() (cdr rest))) + (flags (deposit-bit-field flags open/access-mask open/write))) + (apply open-file fname flags maybe-mode))) hunk ./syscalls.scm 37 - signal-process signal-process-group pause-until-interrupt + signal-process signal-process-group pause-until-interrupt itimer hunk ./syscalls.scm 48 - open/no-control-tty fdflags/close-on-exec + open/no-control-tty open/access-mask + fdflags/close-on-exec hunk ./syscalls.scm 715 +(define itimer alarm) hunk ./syscalls.scm 1125 +(define open/access-mask (logior open/read open/write open/read+write)) +