Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 April 2012.
00:01 losinggeneration joined 00:02 jevin joined
benabik Bleh. 00:02
whiteknight one test in one file is hanging, and I can't figure out why 00:06
everything else seems like it's passing
actually, a few tests fail in that file, but all other files are fine 00:08
benabik Sadly, I haven't poked at regexen. 00:09
cotto whiteknight: you could bug pmichaud_
whiteknight actually..... I might have found it
cotto or you could just fix it yourself
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
...maybe not 00:23
00:27 kid51 joined
whiteknight ...but, maybe I did... 00:37
benabik quantum bug fix! 00:38
whiteknight This codebase is confusing me 00:39
benabik o/~ On top of PAST.Compiler.coerce... all covered with cheese... o/~ 00:41
whiteknight GOT IT 00:42
benabik There are a lot of gotos in this switch. 00:43
\\o/ whiteknight++
cotto ~~ 01:01
benabik The "fun" part about hacking on a compiler is that errors tend to be subtle and explode nowhere near their cause. 01:09
whiteknight how do I build Rakudo with current Parrot master? 01:12
actually, the error is for a too-recent version of NQP 01:14
benabik perl Configure.pl ; make 01:16
cotto whiteknight++
whiteknight yeah, it's telling me that my NQP isn't the right version
and I need to test Rakudo with the version of NQP I just patched 01:18
benabik It shouldn't be complaining about too new a version. 01:19
whiteknight eff it, I just ripped the check out of Configure.pl 01:20
...and there's another check somewhere in the makefile
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:24
whiteknight actually, I guess the version is older 01:27
the numbering is a little confusing
2012.04-43 is older than 2012.04-1 01:28
2012.04.1
cotto sounds like something snuck into you $PATH 01:32
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:34
whatever, I've spent all the tuits on this that I have to give tonight 01:36
I'm out. Goodnight 01:37
02:10 Hunger joined
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
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.
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? 07:58
moritz well, there's lots of literature on writing compilers 08:12
but I guess that doesn't quite answer your question
masak maybe the Squaak tutorial will help: www.parrotblog.org/2008/03/targetin...ot-vm.html 08:34
09:14 lucian joined
prologic masak, thanks, I've seen that. I'll take another look 09:20
just have questions that are unanswered at this stage until I'm ready to start writing the compiler part to target parrot pir
masak asking here is probably a good idea. 09:22
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
they're the main questions I have in my mind right now
(still learning and reading parrot/pir docs)
moritz well, there are tools in parrot that can generate PIR (and thus bytecode) for you 09:27
for example PCT (parrot compiler toolkit) lets you construct PAST, Parrot Abstract Syntax Tree 09:28
and compiles it to PIR for you
as for the runtime lib, anything that can compile to PIR or PBC is fine 09:29
ie you can write it in your own language, in PIR, winxed, NQP or some other language
prologic hmm that confuses me even more :) 09:30
but bare with me
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:31
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
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!)
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:36
prologic okay cool that clears taht up - I thought that's the case 09:37
translating an oo model to plain low-level assembler-style (pir) isn't really possible I guess
tadzik you can write in winxed, can't you?
prologic I can see how winxed easily translates class/functions to pir fairly straightforwardly by just making use of .sub and .namespace
but that's probably really simplistic
tadzik before your compiler becomes self-hosting 09:38
prologic winxed is just a light syntax layer over pir from the looks right?
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
nine prologic: if you like pain, do it in pir! :)
prologic haha okay
winxed will remove a lot of the boiler-plate and tediousness huh 09:40
ok!
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 :)
moritz except with fewer segfaults
prologic had my fair share, x86, MC6800
so some more stupid questions 09:42
nine moritz: since I did it on DOS, there were no segfaults...just "interesting" effects ;)
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)?
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 :-)
prologic of course
hence I'm asking questions now - I'm not ready to start targetting parrot yet :)
my language implementation isn't stable enough to start thinking about that, let alone starting to think about self-hosting 09:44
but I digress
and once I have a working runtime model that I can play with and test using parrot, then what?
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
prologic merge/mash the output files and get parrot to compile them together
moritz right
prologic sot the only compiling to pbc/pir would be the actual message chains themselves 09:46
in whatever representation I end up with (after writing the runtime model in winxed/pir)
moritz well, depends on what your language offers
if your language has control flow (and it's not just implemented as messages), you'd compile that too
prologic can you expand on that?
moritz like, branching and loops and so on 09:47
prologic it's all just messages and objects
so all the control flow would be implemented in the runtime model
moritz convenient for the compiler writer :-)
prologic absolutely 09:48
and homoiconic :)
well that's the plan anyway here
moritz then it's probably easier to emit PIR than to use the compiler toolkit
prologic yeap
that was my plan also
I've already done all the hardwork that the PCT offers
sorry :)
I used some rather good libraries
namely funcparserlib - a combinator recursive descent parser lib 09:49
the parser is only a few dozen lines of code
the other 100 or so is around actually constructing the chain of messages!
and operator precedence reshuffling and rules - which I'm going to drop I think
is there a python library for parrot (like there is the C library)? 09:51
moritz I'm not aware of any 09:52
09:52 lucian joined
prologic okay that's alright 09:52
and btw what is miniparrot? I noticed this executable in the build dir after compiling parrot 09:53
moritz I don't know 09:54
I suspect it has something to do with the bootstrapping build or so 09:55
arnsholt IIRC it's a pared down parrot for bootstrapping, yeah 09:59
Similar to miniperl in the Perl 5 build process
prologic ahh k 10:00
so not really useful for anyone else :) 10:01
oh and you guys mentioned this the other night iirc
but parrot has no concurrency support as yet right?
tadzik not in master branch yet 10:02
prologic kk
tadzik you can ask nine about it while he's around :)
prologic I was going to attempt to implement cooperative coroutines in my langauge anyway
so I don't need concurrency support in parrot right now
but I will want that later to spawn multiple vm(parrot) instances as real os threads
nine prologic: you might want to have a look at niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf 10:18
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:19
10:58 brrt left 11:06 ligne joined
prologic this is an upcoming new parrot feature? 11:15
nine prologic: yep...just getting the finishing touches
prologic cool
dalek rrot: f2caeaf | jkeenan++ | / (2 files):
_handle_ccflags_status() has been simplified, so we can simplify the corresponding step tests.
11:16
11:18 kid51 joined
prologic nine, I look forward to it 11:18
but for now I still have to work more on stabalizing my language :)
12:29 bluescreen joined 12:31 nbrown joined 12:59 davidfetter joined 13:02 ttbot joined
Coke does winxed support .HLL ? 13:04
13:05 mj41 joined 13:12 PacoAir joined
benabik ~~ 13:24
13:37 JimmyZ joined 13:42 contingencyplan joined 13:44 whiteknight joined
whiteknight good morning, #parrot 13:44
tadzik good afternoon whiteknight
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.
whiteknight good morning tadzik
nine++ # GC bug squashing
atrodo Crazy idea, I wonder how well a kickstarter to fund a developer to work on parrot's guts would go 13:49
tadzik hmm 13:50
I would donate to that :)
Coke Or you could donate to the foundation. 13:53
tadzik true 13:55
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
tadzik aye 13:57
nine whiteknight: just one thing to do for the university before I can finally start with the new timer implementation.
whiteknight that's awesome 14:00
JimmyZ the parrot git repo is too big... It's hard to clone it 14:17
tadzik yeah
JimmyZ I have to re-download the repo after receiving objects paused 14:18
*the whole
atrodo JimmyZ> Try the --depth <n> option on git clone, that will only download n revisions 14:19
JimmyZ atrodo: will try it 14:20
atrodo: thanks
whiteknight is that something we can fix? 14:21
atrodo Can't make a git repo smaller without losing history 14:22
JimmyZ I think there many history about /languages
there are 14:23
nine Putting tar balls of the repo on some server for download could help. 14:40
FlightGear people have similiar problems, but their repo is several GB large. 14:43
15:01 dmalcolm joined
JimmyZ atrodo: That means I can't push ... 15:06
atrodo JimmyZ> Really? Didn't know that
JimmyZ atrodo: :) 15:07
nine JimmyZ: if you want I can put a tar ball on my server for you 15:12
15:18 jwilliams joined
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:21
PerlJam "csp"? do you mean "cps"? (continuation passing style) 15:23
nine csp might be communicating sequential processes (sounds like actor model to me) 15:24
16:22 jashwanth joined
dalek nxed: 5c598cc | NotFound++ | winxedst2.winxed:
annotate switch cases
16:42
cotto ~~ 17:00
17:17 brrt joined 17:58 lucian joined 17:59 dukeleto joined
dukeleto ~~ 17:59
cotto hio dukeleto 18:05
18:16 davidfetter joined 18:20 brrt joined
dalek kudo/nom: dda5b09 | moritz++ | src/core/Mu.pm:
hide some dispatchers from backtraces
18:39
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.
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.
moritz in sovjet russia, houses close on you! 18:48
davidfetter moritz, how's your russian? 18:49
moritz davidfetter: Nil :-)
well, I guess I know one word.
davidfetter what's that? 18:50
moritz njet
davidfetter that's a good word to know 18:51
so is "spaseebo" (spah-SEE-buh)
moritz what does it mean? 18:52
awwaiid means "thank you" I think 18:55
19:08 Khisanth joined, brrt joined 19:20 dukeleto joined
Coke curl -kL install.perlbrew.pl | bash 19:30
urk?
curl -kL install.perlbrew.pl | bash 19:31
спасибо
there we go.
20:26 perlite_ joined 21:12 brrt left
benabik ~~ 22:06
Coke ho, benabik 22:07
benabik 'lo Coke, what's happening?
Coke GAH! DAYJOB! 22:09
other than that, not much.
benabik That good, huh?
Coke oh, it's a fine job, just have a project due in stages this month. 22:11
benabik I didn't assume it was always bad, just that it wasn't fun right now. :-) 22:24
22:46 whiteknight joined
whiteknight good evening, #parrot 22:46
benabik o/ whiteknight 22:47
whiteknight hello benabik 22:59