| Newsgroups |
gmane.comp.lang.io |
| Message-ID |
<CALPGu0hBRqJNuykP-m3JX5XR0J5R=5twgDCsYj2Nuasz8w8uWw@mail.gmail.com> |
--EZwjnUocCcOjVtBGDWhLWV64Nug2JcNWBJFzm4a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
While browsing the generated HTML reference, I noticed the description
of "Object print" is inaccurate, because it returns self, not nil
(just like println):
Object print - Prints a string representation of the object. Returns Nil.
Object println - Same as print, but also prints a new line. Returns self.
The doc comment seems to be located within C function lobbyPrint [1],
which gets installed as just "print" in the Object's method table [2],
just to be later overwritten by an Io method definition [3]. (I'm not
sure if this is how things works. I may have guessed things
incorrectly.)
[1]: https://github.com/stevedekorte/io/blob/master/libs/iovm/source/IoObject.c#L889-L921
[2]: https://github.com/stevedekorte/io/blob/master/libs/iovm/source/IoObject.c#L179
[3]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L458
Should the doc comment be updated and moved to be together with the
method in file A2_Object.io ?
### Method lobbyPrint
What's the purpose of lobbyPrint? Since the "print" slot gets
reassigned, the original lobbyPrint is not reachable from Io side,
right? Should it be kept and bound to the name "lobbyPrint" or should
it be discarded?
Testing it shows that it outputs some kind of proto list:
Io> Object clone do(appendProto(List) appendProto(Map)
appendProto(Number)) lobbyPrint
Object_0x872a808 do(
appendProto(Object_0x86a1538, Object_0x86cce48,
Object_0x86ceb80, Object_0x86b8590)
Note the repeated Object names in the proto list. If the code is
modified to update the "name" variable for each proto inside the while
loop, then it prints:
Io> Object clone do(appendProto(List) appendProto(Map)
appendProto(Number)) lobbyPrint
Object_0x88bc4a0 do(
appendProto(Object_0x86c4538, List_0x86efdc0, Map_0x86f1af8,
Number_0x86db590)
### Method println
Method println seems to be duplicated in [1] and [2]. One returns
self, the other returns getSlot("self"). I guess the latter is
correct, so the first one can be removed, right?
[1]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L354
[2]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L461
--EZwjnUocCcOjVtBGDWhLWV64Nug2JcNWBJFzm4a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body style="background-color: #fff;">
<span style="display:none"> </span>
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id="ygrp-text" >
<p>While browsing the generated HTML reference, I noticed the description<br>
of "Object print" is inaccurate, because it returns self, not nil<br>
(just like println):<br>
<br>
Object print - Prints a string representation of the object. Returns Nil.<br>
Object println - Same as print, but also prints a new line. Returns self.<br>
<br>
The doc comment seems to be located within C function lobbyPrint [1],<br>
which gets installed as just "print" in the Object's method table [2],<br>
just to be later overwritten by an Io method definition [3]. (I'm not<br>
sure if this is how things works. I may have guessed things<br>
incorrectly.)<br>
<br>
[1]: https://github.com/stevedekorte/io/blob/master/libs/iovm/source/IoObject.c#L889-L921<br>
[2]: https://github.com/stevedekorte/io/blob/master/libs/iovm/source/IoObject.c#L179<br>
[3]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L458<br>
<br>
Should the doc comment be updated and moved to be together with the<br>
method in file A2_Object.io ?<br>
<br>
### Method lobbyPrint<br>
<br>
What's the purpose of lobbyPrint? Since the "print" slot gets<br>
reassigned, the original lobbyPrint is not reachable from Io side,<br>
right? Should it be kept and bound to the name "lobbyPrint" or should<br>
it be discarded?<br>
<br>
Testing it shows that it outputs some kind of proto list:<br>
<br>
Io> Object clone do(appendProto(List) appendProto(Map)<br>
appendProto(Number)) lobbyPrint<br>
Object_0x872a808 do(<br>
appendProto(Object_0x86a1538, Object_0x86cce48,<br>
Object_0x86ceb80, Object_0x86b8590)<br>
<br>
Note the repeated Object names in the proto list. If the code is<br>
modified to update the "name" variable for each proto inside the while<br>
loop, then it prints:<br>
<br>
Io> Object clone do(appendProto(List) appendProto(Map)<br>
appendProto(Number)) lobbyPrint<br>
Object_0x88bc4a0 do(<br>
appendProto(Object_0x86c4538, List_0x86efdc0, Map_0x86f1af8,<br>
Number_0x86db590)<br>
<br>
### Method println<br>
<br>
Method println seems to be duplicated in [1] and [2]. One returns<br>
self, the other returns getSlot("self"). I guess the latter is<br>
correct, so the first one can be removed, right?<br>
<br>
[1]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L354<br>
[2]: https://github.com/stevedekorte/io/blob/master/libs/iovm/io/A2_Object.io#L461<br>
</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>
<div style="clear:both"> </div>
<div id="fromDMARC" style="margin-top: 10px;">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
Posted by: Lucas Buchala <[email protected]> <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<div style="clear:both"> </div>
<table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://groups.yahoo.com/neo/groups/iolanguage/conversations/messages/13377;_ylc=X3oDMTJxZjF0a2o3BF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzEzMzc3BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTUxNzYxNDc0Mg--?act=reply&messageNum=13377">Reply via web post</a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:[email protected]?subject=Re%3A%20print%2C%20println%2C%20and%20lobbyPrint" style="text-decoration: none; color: #2D50FD;">
Reply to sender </a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:[email protected]?subject=Re%3A%20print%2C%20println%2C%20and%20lobbyPrint" style="text-decoration: none; color: #2D50FD">
Reply to group </a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://groups.yahoo.com/neo/groups/iolanguage/conversations/newtopic;_ylc=X3oDMTJlMjU1c3RxBF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTUxNzYxNDc0Mg--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://groups.yahoo.com/neo/groups/iolanguage/conversations/topics/13377;_ylc=X3oDMTM2cDdncHRrBF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzEzMzc3BHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTUxNzYxNDc0MgR0cGNJZAMxMzM3Nw--" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
(1)
</td>
</tr>
</tbody>
</table>
<div id="megaphoneModule">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
<div>
<div class="stream" style="margin-bottom:10px;">
<div style="background-color:white;">
<div class="sn-img" style="display:inline;"><img name="tn_file" style="padding:0px 10px;vertical-align:top;margin-top:5px;" src="https://s.yimg.com/ru/static/images/yg/img/megaphone/1464031581_phpFA8bON" height="82" width="82"></div>
<div class="mod-txt" style="display:inline-block;">
<a rel="nofollow" name="sub_url" target="_blank" href="https://yho.com/1wwmgg" style="color:#0000FF;display:block;margin-left:5px;text-decoration:none;"><span style="font-size:15px;">Have you tried the highest rated email app?</span></a>
<div style="max-width:530px;padding:2px 5px;">With 4.5 stars in iTunes, the Yahoo Mail app is the highest rated email app on the market. What are you waiting for? Now you can access all your inboxes (Gmail, Outlook, AOL and more) in one place. Never delete an email again with 1000GB of free cloud storage.</div>
</div>
</div>
</div> </div>
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/iolanguage/info;_ylc=X3oDMTJldGJ1ZW92BF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTUxNzYxNDc0Mg--" style="text-decoration: none;">Visit Your Group</a></span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
<li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;">
<span class="cat"><a href="https://groups.yahoo.com/neo/groups/iolanguage/members/all;_ylc=X3oDMTJmb2g3bms3BF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE1MTc2MTQ3NDI-" style="text-decoration: none;">New Members</a></span>
<span class="ct" style="color: #ff7900;">1</span>
</li>
</ul>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJkNWUxbm5nBF9TAzk3MzU5NzE0BGdycElkAzY2Nzc0NzYEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNTE3NjE0NzQy" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> • <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<br>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">
<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->
</div> <!-- |**|end egp html banner|**| -->
<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>
<img src="http://geo.yahoo.com/serv?s=97359714/grpId=6677476/grpspId=1705006764/msgId=13377/stime=1517614742" width="1" height="1"> <br>
<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img&cf12=CP" width="1" height="1">
<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}
#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}
#ygrp-mkp #ads {
margin-bottom: 10px;
}
#ygrp-mkp .ad {
padding: 0 0;
}
#ygrp-mkp .ad p {
margin: 0;
}
#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}
#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}
#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}
#activity span {
font-weight: 700;
}
#activity span:first-child {
text-transform: uppercase;
}
#activity span a {
color: #5085b6;
text-decoration: none;
}
#activity span span {
color: #ff7900;
}
#activity span .underline {
text-decoration: underline;
}
.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}
.attach div a {
text-decoration: none;
}
.attach img {
border: none;
padding-right: 5px;
}
.attach label {
display: block;
margin-bottom: 5px;
}
.attach label a {
text-decoration: none;
}
blockquote {
margin: 0 0 0 4px;
}
.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}
.bold a {
text-decoration: none;
}
dd.last p a {
font-family: Verdana;
font-weight: 700;
}
dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}
dd.last p span.yshortcuts {
margin-right: 0;
}
div.attach-table div div a {
text-decoration: none;
}
div.attach-table {
width: 400px;
}
div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}
div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}
div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}
.green {
color: #628c2a;
}
.MsoNormal {
margin: 0 0 0 0;
}
o {
font-size: 0;
}
#photos div {
float: left;
width: 72px;
}
#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}
#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}
#reco-category {
font-size: 77%;
}
#reco-desc {
font-size: 77%;
}
.replbq {
margin: 4px;
}
#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}
#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}
#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}
#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}
#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}
#ygrp-mlmsg * {
line-height: 1.22em;
}
#ygrp-mlmsg #logo {
padding-bottom: 10px;
}
#ygrp-msg p a {
font-family: Verdana;
}
#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}
#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}
#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}
#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}
#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}
#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}
#ygrp-text {
font-family: Georgia;
}
#ygrp-text p {
margin: 0 0 1em 0;
}
#ygrp-text tt {
font-size: 120%;
}
#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
--EZwjnUocCcOjVtBGDWhLWV64Nug2JcNWBJFzm4a--