{"id":173,"date":"2008-01-29T08:39:37","date_gmt":"2008-01-29T16:39:37","guid":{"rendered":"http:\/\/wp.colliertech.org\/cj\/?p=173"},"modified":"2008-01-29T20:59:18","modified_gmt":"2008-01-30T04:59:18","slug":"from-langnet-2008-tuesday","status":"publish","type":"post","link":"https:\/\/wp.c9h.org\/cj\/?p=173","title":{"rendered":"From Lang.NET 2008 &#8211; Tuesday"},"content":{"rendered":"<p>0834<br \/>\nNo snow today.  The commute was easy.  Last night, I downloaded the DLR and worked with it a little.  I&#8217;ve hosted <a href=\"http:\/\/colliertech.org\/downloads\/DLR\/Microsoft.Scripting.dll.gz\">a gzipped binary version of the assembly<\/a> on colliertech.org as well as <a href=\"http:\/\/colliertech.org\/downloads\/DLR\/Microsoft.Scripting.tar.bz2\">a bzip2ed tarball of the source<\/a>.  A quick google search tells me that the OSI has approved the Microsoft Public License (Ms-PL).  I asked #debian-devel on oftc whether the license meets the Debian Free Software Guidelines, and received a tentative &#8220;probably.&#8221;<\/p>\n<p>I&#8217;m building a tarball dist of the source using <a href=\"http:\/\/dnpb.sf.net\/\">Prebuild<\/a>&#8216;s autotools target.  I&#8217;ve not built any libraries sans snk before, so Prebuild was generating incorrect Makefile.am files in this case.  I&#8217;ll submit the fix here Real Soon Now. &#8211; done<\/p>\n<p>Miguel told me that the Second Life folks have created a Continuation system.  This can be used to implement Perl6&#8217;s continuations, I bet&#8230;<\/p>\n<p>0859<br \/>\nNotes on the <a href=\"http:\/\/wiki.colliertech.org\/index.php?title=Lang.NET_2008\/Tuesday\">wiki<\/a><br \/>\nDemocratizing The Cloud With Volta<\/p>\n<p>Volta is a framework for making the creation of &#8220;Web 2.0&#8221; applications (multi-tiered, asynchronous) easier.<\/p>\n<p>0939<br \/>\nIt looks like you&#8217;ll need gmcs from svn to compile the DLR.  I&#8217;ve gotten an autotools system built using Prebuild&#8230; now to make dist and put it up on the web server&#8230;<br \/>\nHere it is.  Note that I have very little bandwidth allocated, so you&#8217;ll probably not be able to get it.  Sorry :)<\/p>\n<p>http:\/\/colliertech.org\/downloads\/DLR\/dlr-solution-1.0.tar.gz<\/p>\n<p>1016<br \/>\nSeo Sanghyeon got my attention on #debian-devel and told me that he&#8217;s been building patches which make IronPython build on Mono for a year now.  Nifty :)  He maintains a list of <a href=\"http:\/\/fepy.sourceforge.net\/doc\/ironpython-mono-report.html\">reports<\/a> about versions of Iron Python on Mono at the <a href=\"http:\/\/fepy.sf.net\/\">FePy<\/a> project page.<\/p>\n<p>1125<br \/>\nI&#8217;ve been kinda&#8217; ignoring the presentations and fiddling with the DLR autotools distribution.  There is now a *very* simple example included in the solution distribution.  It basically includes a &#8216;using Microsoft.Scripting.Ast&#8217; and a definition of &#8216;Microsoft.Scripting.Ast.CodeBlock cb;&#8217; along with a Console.WriteLine(&#8220;Hello World&#8221;).  Basically enough to prove that the assembly links correctly.<\/p>\n<p>I&#8217;ll go see if meebey is interesed in packaging all this stuff as a .deb&#8230;<\/p>\n<p>1315<br \/>\nSome folks on #mono recommended that we not package the DLR in its current state, as it is pre-release.  I mentioned that we could build a package that we ensured would not make its way out of sid.  Nobody objected, so I&#8217;m going to see if I can figure it out.<\/p>\n<pre style=\"color: black; font-size: 8pt;\">\r\n12:09 &lt;@cj&gt; meebey: you about?\r\n12:10 &lt;@meebey&gt; cj: wussup?\r\n12:10 &lt;@cj&gt; meebey: can you download this?\r\n12:10 &lt;@cj&gt; http:\/\/colliertech.org\/downloads\/DLR\/dlr-solution-1.0.tar.gz\r\n12:11 &lt;@cj&gt; meebey: if you can, can you .deb-ify it?\r\n12:11 &lt;@meebey&gt; cj: what the heck is that and why should I package it? :)\r\n12:12 &lt;@cj&gt; meebey: it's the \"Dynamic Language Runtime.\"  A set of classes to \r\n            ease the implementation of dynamic languages on the [CLI]\r\n12:13 &lt;@meebey&gt; cj: how come its on your server? who developed it, does it run \r\n                on mono and which license it is under\r\n12:13 &lt;@cj&gt; meebey: It's on my server because I cropped it out of a few \r\n            packages.  It was developed by Microsoft and is released under the \r\n            Ms-PL (OSI approved, uncertain about DFSG)\r\n12:14 &lt;@cj&gt; meebey: I wrapped an autotools build system around it\r\n12:15 &lt; vargaz-away&gt; cj: I think we should package the DLR with the languages \r\n                     which use it, since it is not api stable at all.\r\n12:15 &lt;@cj&gt; vargaz-away: ah.  wasn't aware of that.  I was wondering why it was \r\n            being bundled with every language implementation.\r\n12:16 &lt;@meebey&gt; so I should wait for a language that uses it\r\n12:31 &lt;@cj&gt; meebey: IronPython and IronRuby are two of the first.  There's also \r\n            LOLSCRIPT\r\n12:31 &lt;@meebey&gt; cj: ironpython would be in debian already if not a developer \r\n                would block it\r\n12:33 &lt;@cj&gt; meebey: the pre-release version is on the DLR... the stuff that's \r\n            been released isn't generalized into a separate assembly\/namespace\r\n12:34 &lt;@cj&gt; meebey: can you add an attribute to a .deb that ensure that it \r\n            never leaves sid?\r\n12:35 &lt;@cj&gt; meebey: if so, it might be worthwhile to package an alpha version \r\n            of the DLR\r\n12:35 &lt;@meebey&gt; cj: just file a RC bugreport, then it will not migrate to \r\n                testing\r\n12:36 &lt;@cj&gt; meebey: feel like mentoring me through the process of building the \r\n            dlr package?  It may be released by the time I figure it all out \r\n            anyway :)\r\n12:39 &lt;@cj&gt; I'd probably need to create a debian\/ directory and put a rules and \r\n            control file, eh? :)\r\n12:54 &lt;@meebey&gt; cj: start with dh_make, the debian new maintainer guideline, \r\n                the debian policy and the debian cli policy\r\n12:55 &lt;@meebey&gt; cj: most important the last one :-P with that you will get sexy \r\n                CLI packages\r\n12:56 &lt;@meebey&gt; cj: for specific questions join #debian-mono on OFTC\r\n<\/pre>\n<p>1328<br \/>\n<a href=\"http:\/\/blog.secondlife.com\/author\/babbagelinden\">Babbage Linden<\/a> stopped by <a href=\"irc:\/\/irc.gnome.org\/mono\">#mono<\/a> to talk with Miguel about Second Life&#8217;s currently-executing rolling reboot to the Mono-based scripting engine.  I grabbed him and asked him to join me on <a href=\"irc:\/\/irc.freenode.net\/perl6\">#perl6<\/a> to discuss with <a href=\"http:\/\/www.wall.org\/~larry\/\">Larry<\/a> his group&#8217;s implementation of closures on the .NET platform.  Here&#8217;s an excerpt:<\/p>\n<pre style=\"color: black; font-size: 8pt;\">\r\n12:15 &lt; babbagelinden&gt; evening all\r\n12:16 &lt; cj&gt; TimToady: babbagelinden is responsible for second life's \r\n            continuation implementation\r\n12:16 &lt; cj&gt; babbagelinden: TimToady is the primary author of the perl6 spec\r\n12:17 &lt;@TimToady&gt; er, yeah, that's me\r\n12:17 &lt; babbagelinden&gt; hi tim\r\n12:17 &lt;@[particle]&gt; babbagelinden: his friends call him larry wall :)\r\n12:18 &lt; cj&gt; babbagelinden: TimToady earlier asked... are the 2nd life \r\n            continuations real continuations or just database continuations?\r\n12:18 &lt;@TimToady&gt; how would you characterize the limitations of your \r\n                  continuations?\r\n12:18 &lt; PerlJam&gt; his enemies call him larry wall too\r\n12:18 &lt;@TimToady&gt; I usually just answer to \"hey you\"\r\n12:18 &lt; cj&gt; \"don't call me late for dinner!\"\r\n12:18 &lt; babbagelinden&gt; well, it's horribly inefficient as you end up copying \r\n                       the CLI stack to the heap as a continuation\r\n12:19 &lt;@[particle]&gt; urk\r\n12:19 &lt; babbagelinden&gt; and it causes assembly bloat due to the generated stack \r\n                       frame classes\r\n12:19 &lt;@TimToady&gt; so you presumablyu \r\n12:19 &lt; babbagelinden&gt; (which will be less bad with generic code sharing)\r\n12:19 &lt;@TimToady&gt; only when explicitly asked to do so\r\n12:19 &lt; babbagelinden&gt; and managed pointers aren't currently supported\r\n12:19 &lt; babbagelinden&gt; apart from that it mostly works :-)\r\n12:20 &lt; babbagelinden&gt; and it works on any CLI runtime: .NET or Mono on any \r\n                       platform\r\n12:20 &lt;@TimToady&gt; but you wouldn't use it for, say, backtracking in logic \r\n                  programming...\r\n12:20 &lt; babbagelinden&gt;  i wouldn't use it if i was building a vm\r\n12:20 &lt;@TimToady&gt; if you wanted to evaluate many alternatives rapidly\r\n12:21 &lt; babbagelinden&gt; but it's a usable hack if you're bolting someone elses \r\n                       vm in to your system :-)\r\n12:21 &lt;@[particle]&gt; are there bsr\/ret ops?\r\n12:22 &lt; babbagelinden&gt; the approach has been used a number of times to \r\n                       implement migrating agents in Java\r\n12:22 &lt;@TimToady&gt; here I reveal my profound ignorance, but does SL generally \r\n                  use its own VM or someone else's?\r\n12:22 &lt; babbagelinden&gt; see JavaGoX and brakes\r\n12:22 &lt; cj&gt; babbagelinden: the reason your team developed this was to save a \r\n            second life character's state when moving from one server to \r\n            another, wasn't it?\r\n12:22 &lt; babbagelinden&gt; we were using our own vm\r\n12:23 &lt; cj&gt; babbagelinden: so it's probably optimized for \r\n            once-ever-now-and-then use?\r\n12:23 &lt; babbagelinden&gt; it's mainly to deal with migrating running scripts \r\n                       between processes\r\n12:23 &lt; babbagelinden&gt; but it works well enough that we can use it for threading\r\n12:23 &lt; cj&gt; TimToady: they are in the process (this very moment) of moving from \r\n            their VM to Mono :)\r\n12:23 &lt;@TimToady&gt; are different VMs compatible at the continuation level?\r\n12:24 &lt; babbagelinden&gt; yes, if you use a soap formatter\r\n12:24 &lt; babbagelinden&gt; you could pass a continuation from mono to .NET\r\n12:24 &lt; cj&gt; babbagelinden: that's pretty fancy.  migrating states between \r\n            processes...\r\n12:24 &lt; babbagelinden&gt; which would be fun\r\n12:24 &lt; babbagelinden&gt; if you used a binary formatter it might work\r\n12:25 &lt; babbagelinden&gt; but its less likely\r\n12:25 &lt;@TimToady&gt; my guys tend to like yaml, but it's like \"whatever..\" :)\r\n12:25 &lt;@[particle]&gt; so you can write it to disk, and save the continuation for \r\n                    after the processor has lunch or whatever\r\n12:25  * cj grabs some lunch...\r\n12:26 &lt;@TimToady&gt; babbagelinden: thanks for the braindump\r\n12:27 &lt; babbagelinden&gt; np\r\n12:27 &lt; babbagelinden&gt; there are details on my blog\r\n12:27 &lt; babbagelinden&gt; http:\/\/blog.secondlife.com\/author\/babbagelinden\r\n12:27 &lt; lambdabot&gt; Title: babbagelinden ? Official Linden Blog\r\n12:27 &lt;@TimToady&gt; I'm sure if I really knew what I was talking about I'd have \r\n                  more questions... :)\r\n12:27 &lt;@TimToady&gt; 'k thanks\r\n12:27 &lt; babbagelinden&gt; you need to scroll back a couple of years for the theory \r\n                       ;-)\r\n<\/pre>\n<p>1402<br \/>\nThere was an interesting talk on <a href=\"http:\/\/submain.com\/codeit.right\">a tool<\/a> which integrates FxCop and re-factoring tools.  It was given by <a href=\"mailto:sergeb@submain.com\">a guy<\/a> whose name is probably Serge.  This is an obvious extension.  I&#8217;m glad someone has done it. :)<\/p>\n<p>1419<br \/>\nCurrently there is a &#8220;Power Shell&#8221; talk.  It seems neat, but it seems only to be applicable to win32.  It might be neat to create a managed shell application.  The CLI representation of, for instance System.Diagnostics.Process, is pretty useful.  Making an alternate graphical representation of the textual content displayed to a shell is a pretty neat concept.<\/p>\n<p>1424<br \/>\nBabbage invited Miguel to take a look at the Second Life Mono sandbox.  Miguel&#8217;s desktop crashed while trying to start <a href=\"http:\/\/s3.amazonaws.com\/preview-secondlife-com\/SecondLife_i686_1_18_6_77968_Mono_ADITI.tar.bz2\">the Linux client<\/a>.  I was able to get the client running, but it looks like I can&#8217;t get through Microsoft&#8217;s firewall.  Miguel was able to get on using <a href=\"http:\/\/s3.amazonaws.com\/preview-secondlife-com\/SecondLife_1_18_6_77968_ADITI.dmg\">the OS X client<\/a>.<\/p>\n<p>2026<br \/>\nI finished up a .deb of the DLR before I left the campus today.  It is on the laptop, and I&#8217;m on the wife&#8217;s computer, so publishing it will have to wait until I get around to pulling it out of my backpack.  Probably won&#8217;t happen until tomorrow morning.  Compiling the .dll requires a version of gmcs from subversion.  It won&#8217;t normally require such a new version to run it, but you&#8217;ll find hit an exception in some edge cases if you try to run a DLR language on the stock 1.2.6.<\/p>\n<p>2048<br \/>\nI guess I was wrong about not having time to do it tonight.  I&#8217;ve uploaded the various debian package source bits and the architecture-independent .deb to my web server.<\/p>\n<p><a href=\"http:\/\/colliertech.org\/downloads\/DLR\/\">http:\/\/colliertech.org\/downloads\/DLR\/<\/a><\/p>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?via=cjamescollier\" class=\"twitter-share-button\">Tweet<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>0834 No snow today. The commute was easy. Last night, I downloaded the DLR and worked with it a little. I&#8217;ve hosted a gzipped binary version of the assembly on colliertech.org as well as a bzip2ed tarball of the source. A quick google search tells me that the OSI has approved the Microsoft Public License [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[108,180,38,60,17,79,103,181,64,116,37,7,163,18,109,78,138,166,137,66,83],"tags":[],"class_list":["post-173","post","type-post","status-publish","format-standard","hentry","category-alpha","category-autotools","category-c","category-colliertech","category-debian","category-free-software","category-freenode","category-irc","category-journalism","category-language","category-microsoft","category-mono","category-networking","category-perl","category-pre-release","category-second-life","category-snow","category-software","category-weather","category-web-20","category-wiki"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1YDIB-2N","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=\/wp\/v2\/posts\/173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=173"}],"version-history":[{"count":0,"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=\/wp\/v2\/posts\/173\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.c9h.org\/cj\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}