[hunchentoot-devel] Subclassing ACCEPTOR
Sebastian Tennant
sebyte at smolny.plus.com
Mon Dec 12 14:07:56 UTC 2011
Hi list,
(make-package :vhost :use '(:common-lisp))
;;; => #<PACKAGE "VHOST">
(in-package :vhost)
(defclass vhost (tbnl:acceptor)
((tbnl::name
:initform
(error "Please give this VHOST a meaningful name."))))
;;; => #<STANDARD-CLASS VHOST>
(describe 'vhost)
;;; => VHOST::VHOST
;;; [symbol]
;;;
;;; VHOST names the standard-class #<STANDARD-CLASS VHOST>:
;;; Class precedence-list: VHOST, HUNCHENTOOT:ACCEPTOR, STANDARD-OBJECT,
;;; SB-PCL::SLOT-OBJECT, T
;;; Direct superclasses: HUNCHENTOOT:ACCEPTOR
;;; No subclasses.
;;; Direct slots:
;;; HUNCHENTOOT::NAME
;;; Initform: (ERROR "A virtual host must have a meaningful name.")
(defvar *vhost1* (make-instance 'vhost))
;;; => *VHOST1* <--- WHY NO ERROR ???
(describe *vhost1*)
;;; => #<VHOST (host *, port 80)>
;;; [standard-object]
;;;
;;; Slots with :INSTANCE allocation:
;;; PORT = 80
;;; ADDRESS = NIL
;;; NAME = #:G1150 <--- this is what I want to prevent
;;; [...]
Practical Common Lisp - page 214:
"... if multiple classes specify an initform the new class uses the one from
the most specific class. This allows a subclass to specify a different
default value than the one it would otherwise inherit."
What am I doing wrong here?
Sebastian
--
Emacs' AlsaPlayer - Music Without Jolts
Lightweight, full-featured and mindful of your idyllic happiness.
http://home.gna.org/eap
More information about the Tbnl-devel
mailing list