<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body text="#000000" bgcolor="#ffffff">
OK. The only issue is that the Hyperspec is internally inconsistent.<br>
I think we agree that the following is just a mistake:<br>
<br>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">"(typespec var*) is an abbreviation for (type typespec var*)".
</span></font></pre>
<br>
So what CCL is doing is correct.<br>
<br>
-- Dan<br>
<br>
Kent M Pitman wrote:
<blockquote type="cite" cite="mid:00e401c9de3c$253d05d0$1502a8c0@howard">
<!--[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]--><o:SmartTagType name="country-region" namespaceuri="urn:schemas-microsoft-com:office:smarttags">
<o:SmartTagType name="place" namespaceuri="urn:schemas-microsoft-com:office:smarttags"><!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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";
color:black;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;}
pre
{margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
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><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</o:SmartTagType></o:SmartTagType>
<div class="Section1">
<p class="MsoNormal"><font size="2" face="Arial" color="navy"><span style="font-size: 10pt; font-family: Arial; color: navy;">I didn't go
back and research what I wrote,
but in my mind I think (<i><span style="font-style: italic;">typespec</span></i>
<i><span style="font-style: italic;">var</span></i>*) is only usable
for a restricted set
of names (mostly legacy names like fixnum, etc. just as for many [but
maybe not
the exact same set] of those names there are type predicates by name
rather
than the TYPEP function) and that the only generally safe thing to do
in type
declarations is (TYPE <i><span style="font-style: italic;">typespec</span></i>
<i><span style="font-style: italic;">var</span></i>*). It is true
that for all valid (<i><span style="font-style: italic;">typespec</span></i>
<i><span style="font-style: italic;">var</span></i>*)
it means (TYPE <i><span style="font-style: italic;">typespec</span></i>
<i><u><span style="font-style: italic;">var</span></u></i>*), but
maybe there is a passage
that has this restriction which is just hidden, hard to find, or exists
only in
my mind. </span></font><font size="2" face="Wingdings" color="navy"><span style="font-size: 10pt; font-family: Wingdings; color: navy;">J</span></font><font size="2" face="Arial" color="navy"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial" color="navy"><span style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<div>
<div align="center" style="margin-left: 0.5in; text-align: center;" class="MsoNormal"><font size="3" face="Times New Roman" color="black"><span style="font-size: 12pt; color: windowtext;">
<hr width="100%" size="2" align="center" tabindex="-1"></span></font></div>
<p style="margin-left: 0.5in;" class="MsoNormal"><b><font size="2" face="Tahoma" color="black"><span style="font-size: 10pt; font-family: Tahoma; color: windowtext; font-weight: bold;">From:</span></font></b><font size="2" face="Tahoma" color="black"><span style="font-size: 10pt; font-family: Tahoma; color: windowtext;"> Dan
Weinreb
[<a href="mailto:dlw@itasoftware.com" class="moz-txt-link-freetext">mailto:dlw@itasoftware.com</a>] <br>
<b><span style="font-weight: bold;">Sent:</span></b> Tuesday, May 26,
2009 3:51
PM<br>
<b><span style="font-weight: bold;">To:</span></b> Sudhir Shenoy<br>
<b><span style="font-weight: bold;">Cc:</span></b> Gary Byers;
Openmcl-devel
Devel; Kent Pitman<br>
<b><span style="font-weight: bold;">Subject:</span></b> Re:
[Openmcl-devel] Type
declaration question</span></font><font color="black"><span style="color: windowtext;"><o:p></o:p></span></font></p>
</div>
<p style="margin-left: 0.5in;" class="MsoNormal"><font size="3" face="Times New Roman" color="black"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
<p style="margin-left: 0.5in;" class="MsoNormal"><font size="3" face="Times New Roman" color="black"><span style="font-size: 12pt;">[CC'ing
<st1:country-region w:st="on"><st1:place w:st="on">Kent</st1:place></st1:country-region>
Pitman,
just in case he's interested, even<br>
though it's "not his job" any more. <st1:country-region w:st="on"><st1:place w:st="on">Kent</st1:place></st1:country-region>, start at the<br>
bottom of this mail, as usual...]<br>
<br>
Sudhir Shenoy wrote: <o:p></o:p></span></font></p>
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Hi Gary,<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Thanks for that (as always) detailed reply. So, I guess the <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">declaration was being silently ignored prior to this.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">However, in the Hyperspec (under the section on Declaration TYPE, <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">i.e., Body/d_type.htm), it is explicitly stated (in Notes) that <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">"(typespec var*) is an abbreviation for (type typespec var*)". <o:p></o:p></span></font></pre>
<p style="margin-left: 0.5in;" class="MsoNormal"><font size="3" face="Times New Roman" color="black"><span style="font-size: 12pt;">Indeed,
it does, and
that's inconsistent with section 3.3.2, so we have<br>
a problem.<br>
<br>
<o:p></o:p></span></font></p>
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">I don't <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">know if this applies to compound type specifiers but in any case it is <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">no biggie since I can simply use the longer form everywhere.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre>
<p style="margin-left: 0.5in;" class="MsoNormal"><font size="3" face="Times New Roman" color="black"><span style="font-size: 12pt;">Yes, I
think that's a
good idea.<br>
<br>
<o:p></o:p></span></font></p>
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Many thanks<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Sudhir<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">On May 26, 2009, at 11:20 AM, Gary Byers wrote:<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre>
<blockquote type="cite" style="margin-top: 5pt; margin-bottom: 5pt;">
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">"(DECLARE (TYPE (UNSIGNED-BYTE 64) FOO))" says that FOO is of type <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">(UNSIGNED-BYTE 64) within the scope of that declaration.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">In some cases, the TYPE declaration specifier can be omitted;<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">"(DECLARE (FIXNUM FOO)) is shorthand for "(DECLARE (TYPE FIXNUM FOO)".<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">The spec may be a little unclear about which cases allow this <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">shorthand;<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">section 3.3.2 describes a declaration as being something whose CAR<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">is a "declaration identifier", and the glossary defines a "declaration<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">identifier" to be one of a predefined set of symbols or a symbol which<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">specifies a type; it doesn't seem to allow compound type specifiers<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">(like (UNSIGNED-BYTE 64)) to be used as declaration identifiers, <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">though<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">other passages in the spec suggest that they should be allowed here.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">(See <a href="http://trac.clozure.com/openmcl/ticket/465" moz-do-not-send="true"><http://trac.clozure.com/openmcl/ticket/465></a>).<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">I don't think that CCL has ever allowed compound type specifiers to<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">be used as declaration identifiers. Prior to some changes that Gail<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">made in the trunk a few weeks ago, it tended to quietly ignore <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">declarations<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">that it couldn't make sense of (and that would include cases where a <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">compound type specifier was being used as shorthand for a TYPE <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">declaration);<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">a warning is now signaled in that case.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">On Tue, 26 May 2009, Sudhir Shenoy wrote:<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre>
<blockquote type="cite" style="margin-top: 5pt; margin-bottom: 5pt;">
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Can anyone tell me what the proper declaration for a 64 bit unsigned<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">integer is? I was using "(declare ((unsigned-byte 64) foo))" which I<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">am fairly sure worked prior to CCL 1.3 but now I get a compilation<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">warning and the fasl is not generated. I checked the CLHS and there<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">doesn't seem to be an upper bound on the number of bits in the<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">unsigned-byte declaration.<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">I have this in some low level i/o conversion (reading in a IEEE float<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">value of 8 bytes and converting to a Lisp number) code where I use<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">(ldb (byte 1 63) foo) to extract the sign-bit, for example. Is <o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">there a<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">better way to do this?<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Thanks<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Sudhir<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">_______________________________________________<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Openmcl-devel mailing list<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><a href="mailto:Openmcl-devel@clozure.com" moz-do-not-send="true">Openmcl-devel@clozure.com</a><o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><a href="http://clozure.com/mailman/listinfo/openmcl-devel" moz-do-not-send="true">http://clozure.com/mailman/listinfo/openmcl-devel</a><o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre>
</blockquote>
</blockquote>
<pre wrap="" style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><o:p> </o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">_______________________________________________<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;">Openmcl-devel mailing list<o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><a href="mailto:Openmcl-devel@clozure.com" moz-do-not-send="true">Openmcl-devel@clozure.com</a><o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"><a href="http://clozure.com/mailman/listinfo/openmcl-devel" moz-do-not-send="true">http://clozure.com/mailman/listinfo/openmcl-devel</a><o:p></o:p></span></font></pre>
<pre style="margin-left: 0.5in;"><font size="2" face="Courier New" color="black"><span style="font-size: 10pt;"> <o:p></o:p></span></font></pre>
</div>
</blockquote>
</body>
</html>