+++ /dev/null
-# Bazaar revision bundle v0.9
-#
-# message:
-# Use proper SRFI-35 constructs.
-#
-# committer: Ludovic Courtes <address@hidden>
-# date: Sat 2007-09-01 13:22:34.372999907 +0200
-
-=== modified file ChangeLog
-2007-09-01 Ludovic Courtès <address@hidden>
-
- Use proper SRFI-35 constructs.
-
- * g-wrap.scm (&gw-bad-typespec, &gw-bad-typespec-option,
- &gw-name-conflict, &gw-stacked): Use `define-condition-type'
- instead of `define-class'.
- (gw-handle-condition): New, replacement for the set of
- `handle-condition' methods.
- (raise-bad-typespec, raise-bad-typespec-option, raise-stacked):
- Specify all fields when invoking the `condition' macro, as
- required per SRFI-35.
- (make-typespec): Use `condition-has-type?' instead of `is-a?'.
- (generate-wrapset): Use `gw-handle-condition' instead of
- `handle-condition'.
-
- * g-wrap/util.scm: Autoload `(g-wrap)'.
- (&gw-bad-element): Use `define-condition-type'.
- (guard/handle): Use `gw-handle-condition'.
- (call-with-output-file/cleanup): Likewise.
-
- * scheme48/g-wrap/scheme48.scm (generate-packages): Use
- `gw-handle-condition'.
-
-=== modified file g-wrap.scm
---- g-wrap.scm
-+++ g-wrap.scm
-@@ -42,6 +42,7 @@
- (&gw-bad-typespec
- raise-bad-typespec
- raise-stacked
-+ gw-handle-condition
-
- <gw-item>
- description
-@@ -101,49 +102,63 @@
- get-wrapset generate-wrapset compute-client-types
- ))
-
-+\f
-+;;;
- ;;; Conditions
--
--(define-class &gw-bad-typespec (&error &message)
-- (spec #:getter typespec-form #:init-value #f)
-- (type #:getter type #:init-value #f)
-- (options #:getter typespec-options #:init-value #f))
--
--(define-class &gw-bad-typespec-option (&error &message)
-- (option #:getter typespec-option))
--
--(define-class &gw-name-conflict (&error &message)
-- (name #:getter conflicting-name)
-- (namespace #:getter conflict-namespace))
--
--(define-class &gw-stacked (&message)
-- (next #:getter next-condition))
-+;;;
-+
-+(define-condition-type &gw-bad-typespec &error
-+ gw-bad-typespec-error?
-+ (spec bad-typespec-form)
-+ (type bad-typespec-type)
-+ (options bad-typespec-options)
-+ (message bad-typespec-message))
-+
-+(define-condition-type &gw-bad-typespec-option &error
-+ gw-bad-typespec-option-error?
-+ (option bad-typespec-option)
-+ (message bad-typespec-option-message))
-+
-+(define-condition-type &gw-name-conflict &error
-+ gw-name-conflict-error?
-+ (name conflicting-name)
-+ (namespace conflicting-namespace)
-+ (message name-conflict-message))
-+
-+(define-condition-type &gw-stacked &error
-+ gw-stacked-error?
-+ (next stacked-error-next-condition)
-+ (message stacked-error-message))
-
- (define-method (format-error msg . args)
- (display "g-wrap: " (current-error-port))
- (apply format (current-error-port) msg args)
- (newline (current-error-port)))
-
--(define-method (handle-condition (c &gw-stacked))
-- (format-error "~A:" (condition-message c))
-- (handle-condition (next-condition c)))
--
--(define-method (handle-condition (c &gw-bad-typespec))
-- (cond
-- ((type c)
-- (format-error "bad typespec `~A ~A': ~A"
-- (type c) (typespec-options c) (condition-message c)))
-- (else
-- (format-error "bad typespec `~A': ~A" (typespec-form c)
-- (condition-message c)))))
--
--(define-method (handle-condition (c &gw-bad-element))
-- (format-error "bad element ~S in tree ~S" (element c) (tree c)))
--
--(define-method (handle-condition (c &gw-name-conflict))
-- (format-error "name conflict: ~A in namespace ~A: ~A"
-- (conflicting-name c) (conflict-namespace c)
-- (condition-message c)))
--
-+(define (gw-handle-condition c)
-+ (cond ((condition-has-type? c &gw-stacked)
-+ (format-error "~A:" (gw-stacked-error-message c))
-+ (gw-handle-condition (stacked-error-next-condition c)))
-+ ((condition-has-type? c &gw-bad-typespec)
-+ (cond
-+ ((bad-typespec-type c)
-+ (format-error "bad typespec `~A ~A': ~A"
-+ (type c) (typespec-options c) (bad-typespec-message c)))
-+ (else
-+ (format-error "bad typespec `~A': ~A" (bad-typespec-form c)
-+ (bad-typespec-message c)))))
-+ ((gw-bad-element-error? c)
-+ (format-error "bad element ~S in tree ~S"
-+ (bad-element c) (bad-element-tree c)))
-+ ((gw-name-conflict-error? c)
-+ (format-error "name conflict: ~A in namespace ~A: ~A"
-+ (conflicting-name c) (conflict-namespace c)
-+ (name-conflict-message c)))
-+ (else
-+ (format-error "unhandled error condition: ~A" c))))
-+
-+
-+\f
- ;;;
-
- ;; An <gw-item> is "something" that shows up in the generated
-@@ -202,31 +217,38 @@
- (symbol->string
- (name type))) "_" suffix)))
-
-+\f
-+;;;
-+;;; Raising error conditions
-+;;;
-+
- ;; Here because needs <gw-type>
- (define-method (raise-bad-typespec type (options <list>) (msg <string>) . args)
- (raise (condition
- (&gw-bad-typespec
-- (type type) (options options)
-+ (spec #f) (type type) (options options)
- (message (apply format #f msg args))))))
-
- (define-method (raise-bad-typespec spec (msg <string>) . args)
- (raise (condition
- (&gw-bad-typespec
-- (spec spec)
-+ (spec spec) (type #f) (options #f)
- (message (apply format #f msg args))))))
-
- (define-method (raise-bad-typespec-option option (msg <string>) . args)
- (raise (condition
- (&gw-bad-typespec-option
-- (option option)
-+ (spec #f) (type #f) (option option)
- (message (apply format #f msg args))))))
-
--(define-method (raise-stacked (next &condition) (msg <string>) . args)
-+(define-method (raise-stacked next (msg <string>) . args)
-+ ;; NEXT should be a condition.
- (raise (condition
- (&gw-stacked
- (next next)
- (message (apply format #f msg args))))))
--
-+
-+\f
- ;;;
- ;;; Values
- ;;;
-@@ -367,10 +389,10 @@
- (check-typespec-options type options)
- (guard
- (c
-- ((is-a? c &gw-bad-typespec-option)
-+ ((condition-has-type? c &gw-bad-typespec-option)
- (raise-bad-typespec type options "bad typespec option ~S: ~A"
-- (typespec-option c)
-- (condition-message c))))
-+ (bad-typespec-option c)
-+ (bad-typespec-message c))))
- (let ((typespec (make <gw-typespec> #:type type)))
- (for-each (lambda (opt) (parse-typespec-option! typespec type opt))
- options)
-@@ -799,7 +821,7 @@
- (let ((had-error? #f))
- (guard
- (c
-- (#t (handle-condition c)
-+ (#t (gw-handle-condition c)
- (set! had-error? #t)))
- (generate-wrapset lang (get-wrapset lang name) basename))
- (if had-error?
-
-=== modified file g-wrap/util.scm
---- g-wrap/util.scm
-+++ g-wrap/util.scm
-@@ -32,10 +32,14 @@
- #:use-module (srfi srfi-34)
- #:use-module (srfi srfi-35)
- #:use-module (oop goops)
--
-+
-+ ;; XXX: This introduces a circular dependency, but `autoload' allows us to
-+ ;; work around it.
-+ #:autoload (g-wrap) (gw-handle-condition)
-+
- #:export
-- (&gw-bad-element
-- element tree
-+ (&gw-bad-element gw-bad-element-error?
-+ bad-element bad-element-tree
-
- call-with-output-file/cleanup
- slot-push!
-@@ -51,15 +55,16 @@
-
- ;;; Condition stuff
-
--(define-class &gw-bad-element (&error)
-- (element #:getter element)
-- (tree #:getter tree))
-+(define-condition-type &gw-bad-element &error
-+ gw-bad-element-error?
-+ (element bad-element)
-+ (tree bad-element-tree))
-
- (define-macro (guard/handle . body)
- (let ((cond-name (gensym)))
- `(guard
- (,cond-name
-- (else (handle-condition ,cond-name)))
-+ (else (gw-handle-condition ,cond-name)))
- ,@body)))
-
- ;;; General utilities
-@@ -77,7 +82,7 @@
- (c
- ((condition-has-type? c &error)
- (set! had-errors? #t)
-- (handle-condition c)))
-+ (gw-handle-condition c)))
-
- (call-with-output-file file-name proc)))
-
-
-=== modified file scheme48/g-wrap/scheme48.scm
---- scheme48/g-wrap/scheme48.scm
-+++ scheme48/g-wrap/scheme48.scm
-@@ -240,7 +240,7 @@
- (basedir (dirname filename)))
- (guard
- (c
-- (#t (handle-condition c)
-+ (#t (gw-handle-condition c)
- (set! had-error? #t)))
- (let ((wrapsets (map (lambda (name) (get-wrapset 'scheme48 name)) ws-names)))
- (call-with-output-file/cleanup filename
-
-=== modified directory // last-changed:address@hidden
-... 78u
-# revision id: address@hidden
-# sha1: a24de442febbd27e80362272657453807bcdbbff
-# inventory sha1: 5c6c33a5e2bf2627ed7c2c582d96daa3ccda72a3
-# parent ids:
-# address@hidden
-# base id: address@hidden
-# properties:
-# branch-nick: g-wrap
-
-# Bazaar revision bundle v0.9
-#
-# message:
-# Error condition fixes and linting in `g-wrap.scm'.
-# committer: Ludovic Courtes <address@hidden>
-# date: Sat 2007-09-01 15:52:51.880000114 +0200
-
-=== modified file ChangeLog
- 2007-09-01 Ludovic Courtès <address@hidden>
-
- * g-wrap.scm (g-wrap): Don't use `srfi-11', don't export
- `provide-type-class!' (unbound), export the condition type
- predicates.
- (gw-handle-condition): Fixed typos, handle
- `gw-bad-typespec-option-error?' properly.
- (raise-bad-typespec-option): Don't provide initializers for
- `spec' and `type'.
- (for-each-function): Removed.
- (wrap-type!): Use `format-error' instead of `error'.
-
-=== modified file g-wrap.scm
---- g-wrap.scm
-+++ g-wrap.scm
-@@ -33,13 +33,14 @@
- #:use-module (ice-9 pretty-print)
- #:use-module (oop goops)
- #:use-module (srfi srfi-1)
-- #:use-module (srfi srfi-11)
- #:use-module (srfi srfi-34)
- #:use-module (srfi srfi-35)
- #:use-module (g-wrap util)
-
- #:export
- (&gw-bad-typespec
-+ gw-bad-typespec-error? gw-bad-typespec-option-error?
-+ gw-stacked-error? gw-name-conflict-error?
- raise-bad-typespec
- raise-stacked
- gw-handle-condition
-@@ -93,10 +94,9 @@
-
- add-item! add-type! add-constant! add-function!
- add-client-item!
--
-- provide-type-class!
-+
- defines-generic?
--
-+
- wrap-type! wrap-function! wrap-constant!
-
- get-wrapset generate-wrapset compute-client-types
-@@ -130,29 +130,35 @@
- (next stacked-error-next-condition)
- (message stacked-error-message))
-
-+
- (define-method (format-error msg . args)
- (display "g-wrap: " (current-error-port))
- (apply format (current-error-port) msg args)
- (newline (current-error-port)))
-
- (define (gw-handle-condition c)
-- (cond ((condition-has-type? c &gw-stacked)
-- (format-error "~A:" (gw-stacked-error-message c))
-+ (cond ((gw-stacked-error? c)
-+ (format-error "~A:" (stacked-error-message c))
- (gw-handle-condition (stacked-error-next-condition c)))
-- ((condition-has-type? c &gw-bad-typespec)
-+ ((gw-bad-typespec-error? c)
- (cond
- ((bad-typespec-type c)
- (format-error "bad typespec `~A ~A': ~A"
-- (type c) (typespec-options c) (bad-typespec-message c)))
-+ (type c) (bad-typespec-options c)
-+ (bad-typespec-message c)))
- (else
- (format-error "bad typespec `~A': ~A" (bad-typespec-form c)
- (bad-typespec-message c)))))
-+ ((gw-bad-typespec-option-error? c)
-+ (format-error "bad typespec option: ~A: ~A"
-+ (bad-typespec-option c)
-+ (bad-typespec-option-message c)))
- ((gw-bad-element-error? c)
- (format-error "bad element ~S in tree ~S"
- (bad-element c) (bad-element-tree c)))
- ((gw-name-conflict-error? c)
- (format-error "name conflict: ~A in namespace ~A: ~A"
-- (conflicting-name c) (conflict-namespace c)
-+ (conflicting-name c) (conflicting-namespace c)
- (name-conflict-message c)))
- (else
- (format-error "unhandled error condition: ~A" c))))
-@@ -238,7 +244,7 @@
- (define-method (raise-bad-typespec-option option (msg <string>) . args)
- (raise (condition
- (&gw-bad-typespec-option
-- (spec #f) (type #f) (option option)
-+ (option option)
- (message (apply format #f msg args))))))
-
- (define-method (raise-stacked next (msg <string>) . args)
-@@ -681,9 +687,6 @@
- (define-method (fold-functions kons knil (ws <gw-wrapset>))
- (fold kons knil (reverse (slot-ref ws 'functions))))
-
--(define-method (for-each-function proc (ws <gw-wrapset>))
-- (for-each proc (reverse (slot-ref ws 'functions))))
--
- (define-method (consider-types? (wrapset <gw-wrapset>) (item <gw-item>))
- #t)
-
-@@ -746,7 +749,7 @@
- (let ((class (hashq-ref (class-slot-ref
- (class-of wrapset) 'type-classes) class-name)))
- (if (not class)
-- (error "unknown type class ~S" class-name)) ;; FIXME: better handling
-+ (format-error "unknown type class ~S" class-name)) ;; FIXME: better handling
- (add-type! wrapset (apply make class args))))
-
- (define-method (wrap-function! (wrapset <gw-wrapset>) . args)
-
-=== modified directory // last-changed:address@hidden
-... s51
-# revision id: address@hidden
-# sha1: c5134d678b6211ff4f5356dbec6c5bfd2b98efc7
-# inventory sha1: 5fb72eb7784cab95dfade3d4a24f0ce3decc3e39
-# parent ids:
-# address@hidden
-# base id: address@hidden
-# properties:
-# branch-nick: g-wrap