RE: Bitcoin scripting language extensions, collaboration requested
<[email protected]> 02 Feb 2014 03:56:17 -0800
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
SSBlbWFpbGVkIHlvdSBkaXJlY3RseSwgYnV0IGluIGNhc2UgaXQgd2VudCBhc3RyYXkgSSB0
aG91Z2h0IEkgc2hvdWxkIHJlcGx5IHdpdGggdGhlIHN1YnN0YW5jZSBvZiB0aGF0IGhlcmUs
IHRvby4NCg0KRmlyc3Qgb2ZmLCBJJ2xsIGRyYXcgeW91ciBhdHRlbnRpb24gdG8gbXkgb3du
IHdvcmsgb24gRnVycGh5IGF0IGh0dHA6Ly91c2Vycy5iZWFnbGUuY29tLmF1L3BldGVybC9m
dXJwaHkuaHRtbCwgY3VycmVudGx5IG9uIGhpYXR1cyBiZWNhdXNlIG9mIG15IG90aGVyIHBy
aW9yaXRpZXMsIHNvIHlvdSBjYW4gc2VlIHdoZXJlIHRoZXJlJ3MgYW55IG92ZXJsYXAgYmV0
d2VlbiB0aGF0IGFuZCB5b3VyIG5lZWRzIChpdCB3b24ndCBiZSAxMDAlLCBtYXliZSBub3Qg
ZXZlbiA1MCUsIGJ1dCBsb29raW5nIHdpbGwgaGVscCBmaXJtIHVwIG91ciBpbnNpZ2h0cyku
IEkgc2hvdWxkIG1lbnRpb24sIHRoZSBjb2RlIHF1b3RhdGlvbiBzeXN0ZW0gaW4gRnVycGh5
IGlzIGp1c3QgYSBzeW50YWN0aWMgc3VnYXIgbGF5ZXIgYW5kIGlzIG5vdCBwYXJ0IG9mIHRo
ZSB1bmRlcmx5aW5nIG1hY2hpbmVyeTsgdGhhdCByZWR1Y2VzIHJ1biB0aW1lIGlzc3VlcyBh
bmQgc29tZSBpbXBsZW1lbnRhdGlvbiBpc3N1ZXMuDQoNCk5leHQsIEknbGwgYXNrIGFib3V0
IHlvdXIgc3Ryb25nIHR5cGluZyByZXF1aXJlbWVudC4gVGhlIHRoaW5nIGlzLCBpZiB0aGUg
dHlwaW5nIGhhcyB0byBiZSBkZWVwbHkgaW50ZWdyYXRlZCBpbnRvIHRoZSB2aXJ0dWFsIG1h
Y2hpbmUsIGl0IGNhbiBiZSBkb25lLCBidXQgdGhhdCBpbiB0dXJuIG1ha2VzIGl0IGNvbXBs
ZXggKHdvcmtpbmcgYWdhaW5zdCB5b3VyIFJJU0Mgc2ltcGxpY2l0eSBwaGlsb3NvcGh5KS4g
T24gdGhlIG90aGVyIGhhbmQsIGlmIGl0IGNhbiBiZSBwYXJ0IG9mIGEgbGF5ZXIgb24gdG9w
IG9mIGEgc2ltcGxlIHZpcnR1YWwgbWFjaGluZSwgZXZlcnl0aGluZyB3aWxsIGJlIG11Y2gg
c2ltcGxlciBhbmQgYmV0dGVyIHNlcGFyYXRlZCAocmVhZDogbW9kdWxhcmlzZWQgdGhlIHJp
Z2h0IHdheSksIGJ1dCB0aGF0IG1heSBwcmVzZW50IHByb2JsZW1zIGlmIGl0IG9wZW5zIHVw
IGEgZ2FwIGhhY2tlcnMgbWlnaHQgYmUgYWJsZSBwcnkgaW50bywgZGVwZW5kaW5nIG9uIGp1
c3Qgd2hhdCBlbHNlIHlvdXIgZXZlbnR1YWwgZGVzaWduIGVuZHMgdXAgY29tbWl0dGluZyB0
by4gW0FkZGVuZHVtOiB0aGUgZWFzaWVzdCB3YXkgdG8gcHJvdmlkZSB0eXBpbmcgaW4gdGhl
IHNvdXJjZSBpcyB0byBwcm92aWRlIGl0IGluIGFuIHVuZGVybHlpbmcgbGF5ZXIsIHRoZW4g
aGF2ZSB0aGUgY29tcGlsZXIgcmVjb2duaXNlIHdoYXQgd291bGQgYmUgbXVjaCBsaWtlIHN0
YWNrIGVmZmVjdCBjb21tZW50cyBpbiBGb3J0aCBhbmQgdXNlIHRob3NlIGJvdGggYXMgcnVu
IHRpbWUgYXNzZXJ0aW9ucyAod2hpY2ggY291bGQgYmUgZGlzYWJsZWQpIGFuZCBhcyBjb21w
aWxlIHRpbWUgdGhpbmdzIHRvIGNvbmZpcm0gYW5kIHRvIGRyaXZlIHRoZSB0eXBlcyB0byB1
c2UuXQ0KDQpPbiB3aGF0IEkndmUgc2VlbiBzbyBmYXIsIEknZCBzdWdnZXN0IHlvdSBpbXBs
ZW1lbnQgYSBwcm90b3R5cGUgc2NyaXB0aW5nIGxhbmd1YWdlIHRvIGhvbGQgdXAgYWdhaW5z
dCB5b3VyIHRoaW5raW5nIGFuZCBmaXJtIGl0IHVwLiBGb3IgdGhhdCwgSSdkIHN1Z2dlc3Qg
c29tZXRoaW5nIEZvcnRoLWlzaCAobWF5YmUgZXZlbiBGdXJwaHkhKSwgaW1wbGVtZW50ZWQg
YWxvbmcgdGhlIGxpbmVzIG9mIEVmb3J0aCBvciBIZm9ydGggZm9yIGNvbnZlbmllbmNlIHJh
dGhlciB0aGFuIG9wdGltaXNlZCBmb3Igc3BlZWQgaW4gdGhlIHByb3RvdHlwZS4gSXQgc2hv
dWxkIGFsc28gYmUgaW1wbGVtZW50ZWQgb24gdG9wIG9mIHRoZSBPYmVyb24gdmlydHVhbCBt
YWNoaW5lIG9yIHNpbWlsYXIgKGdvb2dsZSBXaXJ0aCBhbmQgT2Jlcm9uIGZvciBkZXRhaWxz
KS4gVGhhdCdzIGJvdGggYmVjYXVzZSB0aGF0IGxldHMgaXQgc25hcmYgYWxsIHNvcnRzIG9m
IHVzZWZ1bCB0aGluZ3MgbGlrZSBpdHMgc3Ryb25nLCBleHRlbnNpYmxlIHR5cGluZyBzeXN0
ZW0gYW5kIGl0cyBnYXJiYWdlIGNvbGxlY3Rpb24sIGFuZCBiZWNhdXNlIHRoZSBPYmVyb24g
dmlydHVhbCBtYWNoaW5lIGlzIGFscmVhZHkgYWNjZXNzaWJsZSwgcG9ydGFibGUoaXNoKSBh
bmQgcmVhc29uYWJseSBwcm92ZW4gYW5kIHJvYnVzdCAtIGFsbCB0aGluZ3MgdGhhdCB3b3Vs
ZCBzYXZlIHJlaW52ZW50aW5nIHRoZSB3aGVlbCBmb3IgYSBtZXJlIHByb3RvdHlwZSBzY3Jp
cHRpbmcgbGFuZ3VhZ2UuDQoNCkFzIHlvdSBzZWUsIHRoaXMgaXMganVzdCBmb2N1c3Npbmcg
b24geW91ciB0b3BpY3MgKGEpIGFuZCAoYikgYXQgdGhpcyBzdGFnZSwgYXMgeW91IHN1Z2dl
c3RlZC4gWW91ciBmZWVkYmFjayB3b3VsZCBiZSB3ZWxjb21lLg==
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
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>I emailed you directly, but in case it went astray I thought I should reply with the substance of that here, too.<br><br>First off, I'll draw your attention to my own work on Furphy at http://users.beagle.com.au/peterl/furphy.html, currently on hiatus because of my other priorities, so you can see where there's any overlap between that and your needs (it won't be 100%, maybe not even 50%, but looking will help firm up our insights). I should mention, the code quotation system in Furphy is just a syntactic sugar layer and is not part of the underlying machinery; that reduces run time issues and some implementation issues.<br><br>Next, I'll ask about your strong typing requirement. The thing is, if the typing has to be deeply integrated into the virtual machine, it c
an be done, but that in turn makes it complex (working against your RISC simplicity philosophy). On the other hand, if it can be part of a layer on top of a simple virtual machine, everything will be much simpler and better separated (read: modularised the right way), but that may present problems if it opens up a gap hackers might be able pry into, depending on just what else your eventual design ends up committing to. [Addendum: the easiest way to provide typing in the source is to provide it in an underlying layer, then have the compiler recognise what would be much like stack effect comments in Forth and use those both as run time assertions (which could be disabled) and as compile time things to confirm and to drive the types to use.]<br><br>On what I've seen so far, I'd sug
gest you implement a prototype scripting language to hold up against your thinking and firm it up. For that, I'd suggest something Forth-ish (maybe even Furphy!), implemented along the lines of Eforth or Hforth for convenience rather than optimised for speed in the prototype. It should also be implemented on top of the Oberon virtual machine or similar (google Wirth and Oberon for details). That's both because that lets it snarf all sorts of useful things like its strong, extensible typing system and its garbage collection, and because the Oberon virtual machine is already accessible, portable(ish) and reasonably proven and robust - all things that would save reinventing the wheel for a mere prototype scripting language.<br><br>As you see, this is just focussing on your topics (a
) and (b) at this stage, as you suggested. Your feedback would be welcome.</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>
<table cellspacing=4px style="margin-top: 20px; margin-bottom: 10px;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA " >
<a style="text-decoration: none; color: #2D50FD" href="http://groups.yahoo.com/group/concatenative/post;_ylc=X3oDMTJwdmtzZW9kBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzQ5NTYEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMzkxMzQyMTc4?act=reply&messageNum=4956">Reply via web post</a>
</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
<a href="mailto:[email protected]?subject=RE%3A%20Bitcoin%20scripting%20language%20extensions%2C%20collaboration%20requested" style="text-decoration: none; color: #2D50FD;">
Reply to sender </a>
</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; ">
<a href="mailto:[email protected]?subject=RE%3A%20Bitcoin%20scripting%20language%20extensions%2C%20collaboration%20requested" style="text-decoration: none; color: #2D50FD">
Reply to group </a>
</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #FFF; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
<a href="http://groups.yahoo.com/group/concatenative/post;_ylc=X3oDMTJlajBxZXM3BF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTM5MTM0MjE3OA--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px; color: #2D50FD; background-color: #F2F2F2; border: 1px solid #EAEAEA; " >
<a href="http://groups.yahoo.com/group/concatenative/message/4950;_ylc=X3oDMTM0dXN2OTZnBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzQ5NTYEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMzkxMzQyMTc4BHRwY0lkAzQ5NTA-" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
(7)
</td>
</tr>
</tbody>
</table>
<!------- Start Nav Bar ------>
<!-- |**|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; ">Recent Activity:</span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
<div style="clear: both; padding-top: 2px; color: #1e66ae;">
<a href="http://groups.yahoo.com/group/concatenative;_ylc=X3oDMTJlY3YxZ2FnBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTM5MTM0MjE3OA--" style="text-decoration: none;">Visit Your Group</a>
</div>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="http://groups.yahoo.com/;_ylc=X3oDMTJkYW5lZHMyBF9TAzk3NDc2NTkwBGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMzkxMzQyMTc4" 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;">Switch to: <a href="mailto:[email protected]?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:[email protected]?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="http://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<!-- |**|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=1839274/grpspId=1705006764/msgId=4956/stime=1391342178" width="1" height="1"> <br>
<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 -->
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV--