Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-27

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 losinggeneration joined #parrot
00:02 jevin joined #parrot
00:02 benabik Bleh.
00:06 whiteknight one test in one file is hanging, and I can't figure out why
00:06 whiteknight everything else seems like it's passing
00:08 whiteknight actually, a few tests fail in that file, but all other files are fine
00:09 benabik Sadly, I haven't poked at regexen.
00:09 cotto whiteknight: you could bug pmichaud_
00:09 whiteknight actually..... I might have found it
00:09 cotto or you could just fix it yourself
00:10 cotto that's a great option
00:10 whiteknight if I poke around randomly and look lost and confused for long enough, eventually something good is bound to happen
00:23 whiteknight ...maybe not
00:27 kid51 joined #parrot
00:37 whiteknight ...but, maybe I did...
00:38 benabik quantum bug fix!
00:39 whiteknight This codebase is confusing me
00:41 benabik o/~ On top of PAST.Compiler.coerce...  all covered with cheese...  o/~
00:42 whiteknight GOT IT
00:43 benabik There are a lot of gotos in this switch.
00:43 benabik \o/ whiteknight++
01:01 cotto ~~
01:09 benabik The "fun" part about hacking on a compiler is that errors tend to be subtle and explode nowhere near their cause.
01:12 whiteknight how do I build Rakudo with current Parrot master?
01:14 whiteknight actually, the error is for a too-recent version of NQP
01:16 benabik perl Configure.pl ; make
01:16 cotto whiteknight++
01:16 whiteknight yeah, it's telling me that my NQP isn't the right version
01:18 whiteknight and I need to test Rakudo with the version of NQP I just patched
01:19 benabik It shouldn't be complaining about too new a version.
01:20 whiteknight eff it, I just ripped the check out of Configure.pl
01:20 whiteknight ...and there's another check somewhere in the makefile
01:24 benabik It really shouldn't complain about too new a version.  It seems possible that you're not using the version of nqp you think you are.
01:27 whiteknight actually, I guess the version is older
01:27 whiteknight the numbering is a little confusing
01:28 whiteknight 2012.04-43 is older than 2012.04-1
01:28 whiteknight 2012.04.1
01:32 cotto sounds like something snuck into you $PATH
01:34 whiteknight I don't get it, nqp's VERSION file says 2012.04.1, but when I build it and do ./nqp --version it gives me a different value
01:36 whiteknight whatever, I've spent all the tuits on this that I have to give tonight
01:37 whiteknight I'm out. Goodnight
02:10 Hunger joined #parrot
06:51 moritz msg whiteknight your nqp pull request breaks rakudo; it seems to need some updates to src/Perl6/World.pm, method compile_in_context -- though I'm not quite sure what to do
06:51 aloha OK. I'll deliver the message.
07:01 brrt joined #parrot
07:16 nine msg whiteknight I got the bastard! It was just a missing lock in the GC. The problem is that I'm very reluctant to add code when I don't have a good testcase demonstrating the neccessity of the code. So I added locks only in PMC allocator functions but not for example in the fixed size allocator which blew up here...
07:16 aloha OK. I'll deliver the message.
07:58 prologic Hey guys, are there any guides on going from parser/interpreter to compiler/vm (parrot) for a language designer that's relatively new at this?
08:12 moritz well, there's lots of literature on writing compilers
08:12 moritz but I guess that doesn't quite answer your question
08:34 masak maybe the Squaak tutorial will help: http://www.parrotblog.org/200​8/03/targeting-parrot-vm.html
09:14 lucian joined #parrot
09:20 prologic masak, thanks, I've seen that. I'll take another look
09:20 prologic just have questions that are unanswered at this stage until I'm ready to start writing the compiler part to target parrot pir
09:22 masak asking here is probably a good idea.
09:26 prologic ok well not having ever written a vm before or bytecode, my main questions lie around questions like a) what should my compiler / code generator look like? b) how much of my language's runtime do I need to implement in PIR? (all of it, some of it, or can/should you just translate the ast into appropriate pir?)
09:26 prologic they're the main questions I have in my mind right now
09:26 prologic (still learning and reading parrot/pir docs)
09:27 moritz well, there are tools in parrot that can generate PIR (and thus bytecode) for you
09:28 moritz for example PCT (parrot compiler toolkit) lets you construct PAST, Parrot Abstract Syntax Tree
09:28 moritz and compiles it to PIR for you
09:29 moritz as for the runtime lib, anything that can compile to PIR or PBC is fine
09:29 moritz ie you can write it in your own language, in PIR, winxed, NQP or some other language
09:30 prologic hmm that confuses me even more :)
09:30 prologic but bare with me
09:31 prologic so some of the design features around my toy (at this stage) language are that it has a prototype object model and uses message passing (ala Smalltalk, Io)
09:32 prologic I've already written (prototyped) a lot of the working features in Python (as the host language) such as the lexer, parser and ast (which is just a chain of messages) as well as the required runtime model (if you can call it much of one)
09:32 prologic right now (possibly because I'm still in the learning stages) I can't quite see the transition path to a working vm (using parrot as the actual vm and not writing one from scratch!)
09:36 moritz well, you need to generate code for parrot, and you need to port the runtime part (including the object model) to parrot code
09:37 prologic okay cool that clears taht up - I thought that's the case
09:37 prologic translating an oo model to plain low-level assembler-style (pir) isn't really possible I guess
09:37 tadzik you can write in winxed, can't you?
09:37 prologic I can see how winxed easily translates class/functions to pir fairly straightforwardly by just making use of .sub and .namespace
09:37 prologic but that's probably really simplistic
09:38 tadzik before your compiler becomes self-hosting
09:38 prologic winxed is just a light syntax layer over pir from the looks right?
09:39 prologic not decided on writing the runtime using winxed or plain pir yet
09:39 tadzik oh, you probably don't want to write it in pir
09:39 nine prologic: if you like pain, do it in pir! :)
09:39 prologic haha okay
09:40 prologic winxed will remove a lot of the boiler-plate and tediousness huh
09:40 prologic ok!
09:41 nine Though I have to admit, that I kinda liked working in PIR for a while. Reminded me of hacking x86 assembly back when I was a child ;) Those were the days...
09:41 prologic absolutely :)
09:41 moritz except with fewer segfaults
09:41 prologic had my fair share, x86, MC6800
09:42 prologic so some more stupid questions
09:42 nine moritz: since I did it on DOS, there were no segfaults...just "interesting" effects ;)
09:42 prologic my runtime (I'll write it in winxed I guess) should look and behave almost identically to the one I've prototyped in Python (my host language)?
09:43 prologic to a point where I can create simple objects/methods/etc and test them in parrot
09:43 moritz if your prototype was good, yes :-)
09:43 prologic of course
09:43 prologic hence I'm asking questions now - I'm not ready to start targetting parrot yet :)
09:44 prologic my language implementation isn't stable enough to start thinking about that, let alone starting to think about self-hosting
09:44 prologic but I digress
09:44 prologic and once I have a working runtime model that I can play with and test using parrot, then what?
09:45 prologic write a compiler that compiles (in Python where everything is implemented right now) to compile the message chain(s) down to equivilent PIR/winxed objects that match the runtime I've just built in winxed?
09:45 moritz yes
09:45 prologic merge/mash the output files and get parrot to compile them together
09:45 moritz right
09:46 prologic sot the only compiling to pbc/pir would be the actual message chains themselves
09:46 prologic in whatever representation I end up with (after writing the runtime model in winxed/pir)
09:46 moritz well, depends on what your language offers
09:46 moritz if your language has control flow (and it's not just implemented as messages), you'd compile that too
09:46 prologic can you expand on that?
09:47 moritz like, branching and loops and so on
09:47 prologic it's all just messages and objects
09:47 prologic so all the control flow would be implemented in the runtime model
09:47 moritz convenient for the compiler writer :-)
09:48 prologic absolutely
09:48 prologic and homoiconic :)
09:48 prologic well that's the plan anyway here
09:48 moritz then it's probably easier to emit PIR than to use the compiler toolkit
09:48 prologic yeap
09:48 prologic that was my plan also
09:48 prologic I've already done all the hardwork that the PCT offers
09:48 prologic sorry :)
09:48 prologic I used some rather good libraries
09:49 prologic namely funcparserlib - a combinator recursive descent parser lib
09:49 prologic the parser is only a few dozen lines of code
09:49 prologic the other 100 or so is around actually constructing the chain of messages!
09:49 prologic and operator precedence reshuffling and rules - which I'm going to drop I think
09:51 prologic is there a python library for parrot (like there is the C library)?
09:52 moritz I'm not aware of any
09:52 lucian joined #parrot
09:52 prologic okay that's alright
09:53 prologic and btw what is miniparrot? I noticed this executable in the build dir after compiling parrot
09:54 moritz I don't know
09:55 moritz I suspect it has something to do with the bootstrapping build or so
09:59 arnsholt IIRC it's a pared down parrot for bootstrapping, yeah
09:59 arnsholt Similar to miniperl in the Perl 5 build process
10:00 prologic ahh k
10:01 prologic so not really useful for anyone else :)
10:01 prologic oh and you guys mentioned this the other night iirc
10:01 prologic but parrot has no concurrency support as yet right?
10:02 tadzik not in master branch yet
10:02 prologic kk
10:02 tadzik you can ask nine about it while he's around :)
10:02 prologic I was going to attempt to implement cooperative coroutines in my langauge anyway
10:02 prologic so I don't need concurrency support in parrot right now
10:02 prologic but I will want that later to spawn multiple vm(parrot) instances as real os threads
10:18 nine prologic: you might want to have a look at http://niner.name/Hybrid_Th​reads_for_the_Parrot_VM.pdf
10:19 nine prologic: in short: you just create a Task PMC, set it's code attribute to some sub, add shared data and schedule it and Parrot will execute it on a thread
10:58 brrt left #parrot
11:06 ligne joined #parrot
11:15 prologic this is an upcoming new parrot feature?
11:15 nine prologic: yep...just getting the finishing touches
11:15 prologic cool
11:16 dalek parrot: f2caeaf | jkeenan++ | / (2 files):
11:16 dalek parrot: _handle_ccflags_status() has been simplified, so we can simplify the corresponding step tests.
11:16 dalek parrot: review: https://github.com/parrot/parrot/commit/f2caeaf273
11:18 kid51 joined #parrot
11:18 prologic nine, I look forward to it
11:18 prologic but for now I still have to work more on stabalizing my language :)
12:29 bluescreen joined #parrot
12:31 nbrown joined #parrot
12:59 davidfetter joined #parrot
13:02 ttbot joined #parrot
13:04 Coke does winxed support .HLL ?
13:05 mj41 joined #parrot
13:12 PacoAir joined #parrot
13:24 benabik ~~
13:37 JimmyZ joined #parrot
13:42 contingencyplan joined #parrot
13:44 whiteknight joined #parrot
13:44 whiteknight good morning, #parrot
13:44 tadzik good afternoon whiteknight
13:45 whiteknight msg moritz: Thanks, I tried to test Rakudo last night but was running into problems getting NQP configured correctly. I'll give it another spin tonight and try to track down the rakudo failures
13:45 aloha OK. I'll deliver the message.
13:45 whiteknight good morning tadzik
13:45 whiteknight nine++ # GC bug squashing
13:49 atrodo Crazy idea, I wonder how well a kickstarter to fund a developer to work on parrot's guts would go
13:50 tadzik hmm
13:50 tadzik I would donate to that :)
13:53 Coke Or you could donate to the foundation.
13:55 tadzik true
13:56 tadzik but my contribution alone would not be significant enough, and kickstarter may provoke many enough me-s to make it something worthwhile
13:56 atrodo plus it could help to raise awareness
13:57 tadzik aye
13:57 nine whiteknight: just one thing to do for the university before I can finally start with the new timer implementation.
14:00 whiteknight that's awesome
14:17 JimmyZ the parrot git repo is too big... It's hard to clone it
14:17 tadzik yeah
14:18 JimmyZ I have to re-download the repo after receiving objects paused
14:18 JimmyZ *the whole
14:19 atrodo JimmyZ> Try the --depth <n> option on git clone, that will only download n revisions
14:20 JimmyZ atrodo: will try it
14:20 JimmyZ atrodo: thanks
14:21 whiteknight is that something we can fix?
14:22 atrodo Can't make a git repo smaller without losing history
14:22 JimmyZ I think there many history about /languages
14:23 JimmyZ there are
14:40 nine Putting tar balls of the repo on some server for download could help.
14:43 nine FlightGear people have similiar problems, but their repo is several GB large.
15:01 dmalcolm joined #parrot
15:06 JimmyZ atrodo: That means I can't push ...
15:06 atrodo JimmyZ> Really? Didn't know that
15:07 JimmyZ atrodo: :)
15:12 nine JimmyZ: if you want I can put a tar ball on my server for you
15:18 jwilliams joined #parrot
15:21 jwilliams a quick question. is parrot based on csp model? i came across to read a webpage seemingly refers to this, but couldn't find it right now. so just want to check.
15:23 PerlJam "csp"?  do you mean "cps"?  (continuation passing style)
15:24 nine csp might be communicating sequential processes (sounds like actor model to me)
16:22 jashwanth joined #parrot
16:42 dalek winxed: 5c598cc | NotFound++ | winxedst2.winxed:
16:42 dalek winxed: annotate switch cases
16:42 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/5c598ccae4
17:00 cotto ~~
17:17 brrt joined #parrot
17:58 lucian joined #parrot
17:59 dukeleto joined #parrot
17:59 dukeleto ~~
18:05 cotto hio dukeleto
18:16 davidfetter joined #parrot
18:20 brrt joined #parrot
18:39 dalek rakudo/nom: dda5b09 | moritz++ | src/core/Mu.pm:
18:39 dalek rakudo/nom: hide some dispatchers from backtraces
18:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dda5b09563
18:41 dukeleto cotto: i won't be making it to LFNW this weekend
18:41 cotto dukeleto: ok.  I've got a co-worker talking, but I still don't have a ticket.
18:42 dukeleto cotto: trying to close on a house. What a cluster of waiting and paperwork.
18:42 cotto dukeleto: I'm sure whiteknight would laugh.
18:48 moritz in sovjet russia, houses close on you!
18:49 davidfetter moritz, how's your russian?
18:49 moritz davidfetter: Nil :-)
18:49 moritz well, I guess I know one word.
18:50 davidfetter what's that?
18:50 moritz njet
18:51 davidfetter that's a good word to know
18:51 davidfetter so is "spaseebo" (spah-SEE-buh)
18:52 moritz what does it mean?
18:55 awwaiid means "thank you" I think
19:08 Khisanth joined #parrot
19:08 brrt joined #parrot
19:20 dukeleto joined #parrot
19:30 Coke curl -kL http://install.perlbrew.pl | bash
19:30 Coke urk?
19:31 Coke curl -kL http://install.perlbrew.pl | bash
19:31 Coke спасибо
19:31 Coke there we go.
20:26 perlite_ joined #parrot
21:12 brrt left #parrot
22:06 benabik ~~
22:07 Coke ho, benabik
22:07 benabik 'lo Coke, what's happening?
22:09 Coke GAH! DAYJOB!
22:09 Coke other than that, not much.
22:09 benabik That good, huh?
22:11 Coke oh, it's a fine job, just have a project due in stages this month.
22:24 benabik I didn't assume it was always bad, just that it wasn't fun right now. :-)
22:46 whiteknight joined #parrot
22:46 whiteknight good evening, #parrot
22:47 benabik o/ whiteknight
22:59 whiteknight hello benabik

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

Parrot | source cross referenced