<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>I
was playing around with the component-class.component-slots function a bit more
and the idea of declaring components slots with “:component T”. The
goal is to be able to declare an unbound slot that is still listed as one of
the component-slots.  This doesn’t quite work right now because it
tries to instantiate a class of type t, and fails.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>Looking
at the code, I can add a check into the initialize-component-slots function
that doesn’t try to make an instance when that is the value for type of
component. But this is a bit odd because T is a type…<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>Alternatively
we thought about using “:component nil” to indicate the same, but
this kind of appears to be saying I don’t want it to be a component. This
does capture the idea of getting an unbound slot though.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>Alternatively
we could add to the standard-component-direct-slot a slot named componentp or
some such.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>I’m
leaning towards :component nil, and add a bit of documentation. Any thoughts?
Is this a bad idea for some other reason? Any better suggestions? I don’t
actually have a component right now that I need to be able to do that, but it
seems like something I would want and I was working on a child-components
function which got me thinking about it.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>Next
to this, I am implementing a nice child-components function that will give you
the values of all the slots that are component-slots, and have components in
them.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'>Nathan
Bird<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<div>

<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center tabindex=-1>

</div>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:Tahoma'>From:</span></b><span
style='font-size:10.0pt;font-family:Tahoma'> bese-devel-bounces@common-lisp.net
[mailto:bese-devel-bounces@common-lisp.net] <b>On Behalf Of </b>Nathan Bird<br>
<b>Sent:</b> Wednesday, May 03, 2006 6:56 PM<br>
<b>To:</b> bese-devel@common-lisp.net<br>
<b>Subject:</b> [Bese-devel] ucw special slots</span><o:p></o:p></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>A standard
component has a number of slots used by UCW for ‘stuff’  i.e.
component.place, parent, calling-component.  When trying to do automatic component
rendering by rendering all of the slots, we have to filter out all of the ucw
ones, otherwise we end in rendering circles.  Is there some way of
determing whether it is a UCW information slot other than by checking its name
against a list?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The function
component-class.component-slots is close, but that seems to only give slots
declared with the :component keyword, and an ordinary slot on a component class
is still made as an ordinary slot, even if it is later filled with a
component.  It looks like I can declare it with :component T, to delay
filling it but still make it a component slot… I think this will meet all
my needs.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Is there
something that already does this that I haven’t found yet? Am I missing
some better way?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Nathan<o:p></o:p></span></p>

</div>

</div>

</body>

</html>