Camelia, the Perl 6 bug

IRC log for #ironperl, 2009-02-18

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

All times shown according to UTC.

Time Nick Message
09:54 diakopter joined #ironperl
09:54 cj joined #ironperl
15:44 diakopter cj: yo :)
15:45 diakopter so, I've worked out many of the details of my runtime
15:46 cj hey hey
15:46 cj cool beans.
15:47 cj I'm trying to set up a libperl P/Invoke PoC
15:48 cj do you know how to make tshark decode ESP?
15:50 cj (he says in an off-topic sort of way)
15:53 * diakopter doesn't know what tshark nor ESP are
15:53 cj okay :)
15:53 diakopter ok, now I do
15:53 diakopter (know what they are)
15:54 diakopter still don't know how to pipe them
15:54 diakopter :)
15:54 diakopter want to hear some details of the runtime?  your critique/thoughts would be helpful/appreciated, if you have the time
15:54 cj sure :)  I'm a little ignorant, so I may ask for clarification.
15:54 diakopter ok
15:54 diakopter I'll be verbose
15:56 diakopter a 'runtime' is a level of abstraction for software that *synchronously* processes instructions, doing whatever translation/de-abstraction is necessary to make a program execute.  A runtime for a language can be [any degree of] a full virtual machine, or it can be simply libraries, a calling convention, a stack, a heap, etc.
15:57 diakopter so, the Perl runtime is a bytecode VM, where the bytecode can (sometimes) be machine-specific, but it's largely fully virtual (fully cross platform)
15:58 cj I'm with you so far :)
15:58 diakopter the .Net runtime is the .Net CLR on windows and mono CLR on linux or windows.
15:58 diakopter though much of the operating can be said to be part of the runtime
16:00 diakopter the DLRuntime (for .net 2/3/3.5) is comprised of additional libraries on top of the CLRuntime that help its programs create the dynamism they need
16:01 diakopter the DLR's additional layer of abstraction can be thought of as mostly lookup tables for type-resolution and method-resolution.
16:01 diakopter where there is polymorphic caching for great performance improvement
16:02 diakopter anyway
16:07 diakopter the runtime layer I'm designing creates an environment that doesn't use/map the built-in types at all
16:07 diakopter both the primitives and the BCL/FCL
16:08 diakopter because there are several features/requirements of Perl 6 that wouldn't be able to use the built-in primitives or BCL types, since those types are not extensible
16:08 diakopter (they're not extensible b/c they're so heavily optimized, I guess)
16:11 diakopter so the runtime keeps all stages of compilation entirely transparent to the user (the program being compiled, the environment, I/O).  no sandboxing or guard conditions, unless you specify or build it...  and stage compilation.  asynchronous parsing, compilation, interpretation, garbage collection, each in its own thread
16:36 diakopter cj: you still there? :D
16:37 cj diakopter: I'm *always* there
16:37 * cj reads up
16:37 cj BCL/FCL?
16:38 diakopter base class library, foundational class library?
16:38 diakopter I think?
16:38 cj alrighty
16:38 diakopter foundation class libraries
16:39 cj where is ilbot2 dumping this log?
16:39 diakopter oh...
16:39 diakopter well, don't send the url to anyone please..
16:39 cj oh, alright
16:39 diakopter http://irclog.perlgeek.de/ironperl/today
16:39 cj I was just curious if the DLR folks know of these limitations and whether they can fix it in the future
16:39 cj probably something to bring up in your talk at lang.net
16:40 diakopter :)
16:47 diakopter so anyway, the runtime stack/heap (including all objects/pointers), the AST, and all objects (including their histories, versioned!) will all be stored in the same data structure.  I'm actually experimenting with using an in-memory RDBMS for that data structure.... we'll see how that goes.
16:50 diakopter thoughts on that?

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