Subject: GOOPS #:class alocation broken in Guile 2.2

From: Christopher Allan Webber <[email-masked]>
Date: Thu, 15 Dec 2016 13:39:47 -0600

In Guile 2.2:

(define-class <foo> ()
  (bar #:allocation #:class
       #:init-value 'baz))

(slot-definition-allocation (class-slot-definition <foo> 'bar))
  => #:instance

In Guile 2.0 this properly returns #:class.

Also, curiously, Guile 2.2 breaks if you present the keywords in the
wrong order:

(define-class <foo> ()
  (bar #:allocation #:class
       #:init-value 'baz))

oop/goops.scm:352:0: In procedure class-precedence-list:
oop/goops.scm:352:0: In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): #:init-value

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(#{8sync}# systems actors) [1]> ,bt
In current input:
   1205:0  4 (_)
In oop/goops.scm:
   2978:4  3 (_ _ . _)
   811:17  2 (%prep-layout! #<<class> <foo> 30b1b40>)
   767:19  1 (%compute-layout _ 0 #f)
    352:0  0 (class-precedence-list _)

I'm guessing that's related!