Camelia, the Perl 6 bug

IRC log for #ironperl, 2009-02-16

| Channels | #ironperl index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
03:45 cj yawnpong
06:05 diakopter hi
06:05 diakopter heh
06:06 diakopter yawnpong at 7:44 pm pacific time?
16:48 diakopter cj: yo
16:52 cj diakopter: yes.  long day :)
16:52 diakopter already?  oh, yesterday
16:53 cj yeah, that
16:53 diakopter so
16:54 diakopter I found/downloaded an enormous number of DLR/compiler-related .net projects, along with some really interesting tools from msft
16:55 diakopter namely, the latest public oslo CTP and the latest public phoenix CTP
16:55 diakopter also read a *ton* of DLR/compiler/.Net-related blog entries.  largely on msdn.
16:55 diakopter got a bunch of new ideas.
16:55 diakopter my plans are starting to solidify
16:55 cj CTP?
16:56 diakopter community technology preview?
16:56 cj alrighty.  I've not heard of oslo or phoenix
16:58 diakopter oslo is a bunch of tools around language/format/parser definitions/languages, look for oslo/mgrammar.  it's kinda similar to Perl 6's grammar/token/rule scheme
16:58 diakopter to be released as an add-on to vs2008 and vs2010 when it's released
16:59 cj nifty
16:59 diakopter phoenix is their C++/MSIL analysis/optimization framework
17:00 diakopter oh, also I got the latest rotor and associated ebooks
17:00 cj roter is the alternate CLR implementation, no?
17:00 diakopter wasn't mono started based on rotor?
17:01 cj no.  written from the ground up using the gnome C libs.  the first mcs was written in C and then bootstrapped to c#
17:01 cj the mono runtime is still c, of course
17:02 diakopter oh
17:02 cj bio break.  brb
17:03 diakopter well, rotor is in C
17:07 cj ah.  I wasn't aware of that.  MS is usually pretty c++ happy
17:12 diakopter I also got the AbstractIL SDK and F#
17:13 diakopter my vsts08 is... full.
17:13 diakopter oh, I wanted to ask you... what's the recommended way to build mono from svn trunk/head?  is there a script or do I have to visit every single directory in some particular order
17:14 diakopter cj: see above when you get a chance
17:17 cj standard ./autogen.sh && make && make install works, but I would take a look at this: http://www.mono-project.com​/Parallel_Mono_Environments
17:17 cj what OS are you building on?
17:18 diakopter ubuntu 9/4
17:18 cj okay.  directhex is your OS support guy there, btw.
17:18 diakopter but.. mono in which subdir?
17:18 cj you should 'apt-get build-dep mono' to start
17:18 diakopter right, I built it
17:18 cj check out mono to something like /usr/src/svn/mono
17:18 diakopter but building all the stuff
17:18 cj and check mcs out to /usr/src/svn/mono/mcs
17:18 diakopter all the other subdirs
17:18 diakopter oh, I checked out the entire tree
17:19 diakopter so I'm looking to build the whole thing
17:19 cj holy crap.  *all* of it?
17:19 diakopter well
17:19 diakopter I like to have everything available
17:19 cj that's over the top.  maybe you should check out all of gnome while you're at it.
17:19 cj :)
17:20 diakopter mainly monodevelop. I couldn't find a list/script of its dependencies
17:20 cj apt-get build-dep monodevelop ?
17:20 diakopter but.. from svn?
17:21 diakopter the version of mono in ubuntu is extremely old
17:21 cj that's enough to get most everything needed.  the final pieces can be figured out from running ./configure
17:21 cj #monodevelop can tell you the final bits.  I *think* they're in the README
17:21 diakopter not very wlel
17:21 diakopter well
17:21 cj gtk-sharp, gtktextview-sharp or something
17:22 cj (phone, hold on)
18:10 diakopter cj: interesting that Perl is a dependency of Rotor
18:10 cj :)
18:10 diakopter there's C in rotor, but the C# compiler itself is C++
18:10 cj perl is a dependency of everything.  :)
18:10 diakopter heh
18:13 diakopter it's going to be interesting to see what exactly can be lifted/shifted over to linux/mono from windows.  many of these MSIL DLLs aren't redistributable (legally).  I may have to investigate alternate licensing from msft
18:16 diakopter cj: hm
18:16 diakopter setting up the linux environment is taking a lot longer than I anticipated.
18:16 diakopter I guess if I *really want* the latest cool stuff from mono/monodevelop... :)
18:17 cj yeah, bleeding edge is a bit of a pain
18:17 cj I don't usually get anything more recent than Ubuntu offers unless I'm patching it
18:20 diakopter cj: btw, a *correct* implementation of Perl 6 must also *be* (or fully/correctly embed/link) a Perl 5 interpreter/compiler
18:20 diakopter so the task really is a lot larger than most people think.  you probably knew that already, though.
18:21 cj I had an inkling
18:21 cj shouldn't be too hard to P/Invoke into libperl, though
18:21 cj good enough for a first pass
18:22 diakopter har
18:22 diakopter that'll be fun.
18:22 cj *shrug*  not so hard, I wouldn't think.
18:22 cj want me to write a small PoC?
18:22 cj in C#
18:23 diakopter not now; I've read about P/Invoke enough to understand the concepts/constraints (not the mechanics though, of course)
18:23 diakopter I need to figure out a way to call viv from a .Net app though
18:23 diakopter and capture STDOUT
18:23 cj what is viv?
18:24 cj you can just spawn a process.  need me to write something up quick?
18:24 diakopter the Perl 5 wrapper script around Larry's Perl 6 parser (converted to Perl 5)
18:24 diakopter well, it doesn't run on Windows outside of cygwin
18:24 diakopter so cygwin needs involved
18:24 diakopter well now wait a sec
18:24 diakopter maybe it does nowadays; lemme check again
18:25 cj really?  It won't work with activeperl?
18:25 diakopter I refuse to use activeperl
18:25 diakopter I use strawberry perl
18:25 diakopter for a while it was using a library (re::engine::TRE) that wouldn't install/run on *any* Perl on windows.
18:26 diakopter but now I think that Larry eliminated that dependency
18:26 cj :)
19:10 diakopter cj: Got a SIGSEGV while executing native code. This usually indicates
19:10 diakopter a fatal error in the mono runtime or one of the native libraries
19:11 diakopter used by your application.
19:11 diakopter Aborted (core dumped)
19:11 diakopter make[9]: *** [../../../class/lib/net_2_0/I18N.West.dll] Error 134
19:11 diakopter want the stack traces?
19:11 cj hurm
19:11 cj yeah, pastebin it :)
19:12 diakopter http://mono.pastebin.com/f3aa34c8c
19:15 diakopter cj: see above
19:15 cj what were you building?
19:15 cj mono it seems
19:18 cj what's the compiler line that's giving that?
19:18 diakopter it's probably 10,000 lines up
19:19 diakopter oh
19:19 diakopter MCS     [net_2_0] I18N.West.dll
19:19 diakopter that's all the detail it has
19:19 cj oh, right.  I see.
19:21 diakopter <sigh />
19:21 cj you might want to back that directory up before the latest commit and try again
19:22 diakopter I think I need to focus on the DLR source (on windows) and worry less about linux/mono cross-platformness for now
19:22 cj pushd ../mcs/glass/I18N && svn log | grep '^r' | head -3
19:23 cj sounds good to me
19:24 diakopter what I'm currently thinking is to virtualize all components of the runtime
19:24 cj what does that mean to you? :)
19:25 diakopter that is, as far as the DLR (and C#/MSIL, as we think of that layer) is concerned, there's ever always just 1 IronPerlClass with just 1 IronPerlMethod.  I don't want any bit of the type system JITed at any layer, and I'm fairly certain this is the way to do that.
19:26 diakopter brb
19:43 diakopter back
19:43 diakopter your thoughts on what I wrote?
19:43 cj hokay
19:43 cj only one class with one method
19:43 cj and the argument to the method is the code to eval?
19:44 diakopter object[] detailsIncludingDevil ;)
19:45 diakopter I've been looking at all the non-MS Iron* implementations
19:45 diakopter and they're all using the old DLR apis
19:45 cj hah
19:45 diakopter prior to its recent vast overhauling
19:45 diakopter maybe there was another overhauling in the past, but there was also a major recent one.
19:47 diakopter but anyway
19:47 diakopter The other reason for the even-more-virtualized runtime is that Perl needs total control of the type system
19:48 diakopter and the CLR just can't offer that
19:48 diakopter if you use its types directly, I mean.
19:48 diakopter I don't just mean DynamicObjects
19:49 diakopter I mean DynamicTypeChecker as DynamicTypeSystem ... DynamicDispatch(not necessarily tied to the objects/methods)
19:49 diakopter all this to say
19:49 diakopter I'll be able to use a lot of the code *in* the DLR
19:49 diakopter as a starting point
19:50 diakopter but it also really needs more generalization.
19:54 diakopter I mean, hrm.
19:59 diakopter hrm hrm hrm
20:00 diakopter what are the invariants here (in Perl)?
20:00 diakopter the way TimToady's designed/imagined it, *not* many.
20:15 diakopter okay, here goes the class organization, based on the very few invariants I can identify (so far)
20:15 diakopter in the IronPerl.Interpreter namespace, we need to model several items
20:17 diakopter we also need to explicitly model all state items (variables), so really, using *any* of the existing DLR/CLR "bare metal" is out
20:17 diakopter we could use them if we didn't also need to model everything *at runtime*
20:18 diakopter anyway
20:18 diakopter since we *do* have the ability to generate/inject CLI classes at runtime from MSIL
20:19 diakopter and objects from those classes
20:20 diakopter each Perl.Object *instance* will need its own class
20:23 diakopter with static fields, since those are guaranteed threadsafe
20:23 diakopter so in other words, using the CLI's type system as variable storage
20:26 diakopter well no, backing up a bit.
20:31 diakopter cj: you still around?
20:39 diakopter hmm
20:39 diakopter after looking at this a lot more
20:40 diakopter following my original idea (compiling to IronRuby) is starting to make a lot better sense
20:40 diakopter note that I didn't say compiling to Ruby source
21:13 diakopter heading out
21:13 diakopter afk
21:30 cj went to lunch
21:30 cj tata
22:17 diakopter back
22:17 diakopter hrm
22:18 diakopter after much thought, I've switched back to the plan to design/write my own "dlr", but using some of the ideas from Microsoft's DLR
22:19 diakopter I just can't shoehorn Perl's dynamism into MSIL that uses the CLS/CLI type/invocation system.  I want to build my own VM/interpreter on the CLR
22:19 diakopter ok; afk again; ttyl
22:32 cj :)
23:28 diakopter (back) .. no thoughts on that?

| Channels | #ironperl index | Today | | Search | Google Search | Plain-Text | summary