This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [ANN]: a big pile o' stuff



This is a small patch to boot.scm from Greg's thing.

With this patch, module names like (ice-9 ...) are translated to
(guile ...) by the module system.  Hopefully this will reduce the pain
of moving from ice-9 to guile, and will allow for a peaceful and
controlled transition.

Ick.

-- mike

*** guile/boot.scm.old	Mon Feb  8 11:45:37 1999
--- guile/boot.scm	Mon Feb  8 11:50:17 1999
***************
*** 1453,1460 ****
    (set-module-transformer! (current-module) transformer)
    (set! scm:eval-transformer transformer))
  
  (define (process-define-module args)
!   (let*  ((module-id (car args))
  	  (module (resolve-module module-id #f))
  	  (kws (cdr args)))
      (beautify-user-module! module)
--- 1453,1466 ----
    (set-module-transformer! (current-module) transformer)
    (set! scm:eval-transformer transformer))
  
+ (define (ice-9->guile name)
+   (cons (if (eq? (car name) 'ice-9)
+ 	    'guile
+ 	    (car name))
+ 	(cdr name)))
+ 
  (define (process-define-module args)
!   (let*  ((module-id (ice-9->guile (car args)))
  	  (module (resolve-module module-id #f))
  	  (kws (cdr args)))
      (beautify-user-module! module)
***************
*** 1474,1480 ****
  	      ((use-module use-syntax)
  	       (if (not (pair? (cdr kws)))
  		   (error "unrecognized defmodule argument" kws))
! 	       (let* ((used-name (cadr kws))
  		      (used-module (resolve-module used-name)))
  		 (if (not (module-ref used-module
  				      '%module-public-interface
--- 1480,1486 ----
  	      ((use-module use-syntax)
  	       (if (not (pair? (cdr kws)))
  		   (error "unrecognized defmodule argument" kws))
! 	       (let* ((used-name (ice-9->guile (cadr kws)))
  		      (used-module (resolve-module used-name)))
  		 (if (not (module-ref used-module
  				      '%module-public-interface
***************
*** 2373,2379 ****
  ;; modules to the use-list of the current module, in order
  (define (process-use-modules module-names)
    (for-each (lambda (module-name)
! 	      (let ((mod-iface (resolve-interface module-name)))
  		(or mod-iface
  		    (error "no such module" module-name))
  		(module-use! (current-module) mod-iface)))
--- 2379,2385 ----
  ;; modules to the use-list of the current module, in order
  (define (process-use-modules module-names)
    (for-each (lambda (module-name)
! 	      (let ((mod-iface (resolve-interface (ice-9->guile module-name))))
  		(or mod-iface
  		    (error "no such module" module-name))
  		(module-use! (current-module) mod-iface)))