Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 6 June 2008.
Whiteknight there were 60 commits this weekend, it looks like 00:06
that is, if you don't mind my technical jargon, a crapload 00:07
00:09 AndyA joined
kid51 I think it's good for a summer weekend where most of the USA is in a sweltering heatwave. 00:09
00:12 Zero_Yao joined 00:17 bacek joined 00:25 tetragon joined
Whiteknight yeah, i guess you're right. I spent much of the weekend indoors myself 00:30
although i didn't do any coding
dalek r28187 | Whiteknight++ | gsoc_pdd09: 00:31
: [gsoc_pdd09] updating to trunk 28186
diff: www.parrotvm.org/svn/parrot/revision?rev=28187
confound seen chromatic 00:43
whoops
kid51 Yes, purl has taken a leave of absence.
Whiteknight is RT down?
for that matter, is all of perl.org down? 00:44
kid51 No I just got a refresh at rt.perl.org 00:45
And I can ping www.perl.org
I don't think purl is on perl.org, anyway. It's more likely on feather.
confound I think purl's on hachi's machine. 00:46
Whiteknight okay, i just got in to RT
confound I'm pretty sure purl isn't on feather.
Juerd purl's not on feather. 00:47
00:50 TonyC joined
dalek r28188 | jkeenan++ | trunk: 00:56
: Applying slightly edited version of patch submitted by Andy Bach in
: rt.perl.org/rt3/Ticket/Display.html?id=52894: utilize File::Temp to
: create tmp file for testing presence of perldoc.
diff: www.parrotvm.org/svn/parrot/revision?rev=28188
01:00 TiMBuS joined, tetragon joined
Whiteknight How do I use headerizer to copy all function prototypes to a header file? 01:10
or is that supposed to happen automatically, from the build? 01:11
01:13 Zaba_ joined
Whiteknight anybody here know anything about Configure.pl or the makefile? 01:18
kid51 Whiteknight: I am more or less a maintainer of Configure.pl. makefile is area I know only a little about. Questions? 01:49
01:55 jimk joined
jimk was disconnected by heat lightning! 01:58
jimk nods at #parrot and gives him a small kipper
02:00 kid51 joined
dalek r28189 | chromatic++ | trunk: 02:02
: [encodings] Documented all functions in src/encodings/*.c.
diff: www.parrotvm.org/svn/parrot/revision?rev=28189
02:02 jimk joined
dalek r28190 | chromatic++ | trunk: 02:03
: [src] Improved parameter passing documentation, especially for interpreter data
: structures (Bram Geron, RT #46593).
diff: www.parrotvm.org/svn/parrot/revision?rev=28190
02:10 tetragon joined
Tene I almost have class definition working in cardinal. 02:11
I'm just running into some weird problems with instantiating classes.
I'm now checking online to try to figure out what exactly the semantics are that I need. 02:16
Looks like there's something weird about assigning to attribute vars, too that I should work out. 02:19
02:23 teknomunk joined
Tene pmichaud: ping 02:34
02:36 teknomunk joined 02:42 teknomunk joined 02:59 teknomunk joined
dalek r28191 | tene++ | trunk: 03:01
: [cardinal]
: * Beginning of class definition support
: * 'self' implemented
: * attribute vars work inside of methods
diff: www.parrotvm.org/svn/parrot/revision?rev=28191
Tene That was a fun commit to build. 03:05
dalek r28192 | tene++ | trunk:
: Fix svn metadata.
diff: www.parrotvm.org/svn/parrot/revision?rev=28192
03:15 teknomunk_ joined 03:23 Theory joined 03:28 teknomunk_ joined
pmichaud tene: pong 03:57
afk # sleep 04:14
04:35 Ademan joined
Tene pmichaud: figured it out. 04:37
04:40 masak joined 05:01 Zaba joined
bacek perl6: my Int $foo; say (try{$foo='xyz'}) ~~ undef; 05:37
WW
05:39 grim_fandango joined
cizra Hey, I downloaded Parrot for the first time today. 05:50
Is it OK to have failed tests?
moritz shouldn't occur 05:52
which OS and architecture are you on?
cizra Umm.. lemme check 05:53
Ubuntu on x86_64
moritz seems fairly standard
please report test failures to parrotbug@perl.org
cizra Lemme paste the error.
pastie.org/211340 05:54
How? Just send a mail?
moritz there's a "parrotbug" utility in the parrot tree 05:55
at top level
oh wait, no need to report that
it's "only" a coding standard test
cizra Indeed there is.
moritz which means it will probably be fixed anyway 05:56
nothing platform dependant
and shouldn't affect parrot's stability on your system either
bacek moritz, no, it isn't. It's 'spawn' faileru
failure
cizra So, do I report it or not?
moritz bacek: oh, you're right 05:57
moritz doesn't have his wits together
cizra: yes, please.
cizra *nod*
moritz cizra: and ignore everything else I might say today ;)
cizra OK
moritz has a huge test in 3hrs, can't get any sleep anymore, and is totally nervous
cizra Umm.. The category is "core", right? 05:58
moritz thinks so
cizra Severity?
critical high medium low wishlist none
moritz medium
bacek send moritz bottle of vodka for relaxation 05:59
moritz good idea: relaxing prior to exams. Bad idea: being drunk during exam. 06:00
bacek: anyway, I apreciate your care for me ;) 06:01
cizra How do I figure out which version of glibc I have?
bacek moritz, sometime I've just drink with teachers instead of exams :) 06:02
dpkg -i libc6
moritz (debian based distributions)++
bacek cizra, sorry, wrong command
cizra *nod*
I got it
So, what else?
bacek apt-cache show libc6 06:03
cizra, drink vodka with moritz :)
moritz cizra: output of the test itself... 06:04
cizra I don't drink.
bacek cizra, can you run 'prove --verbose t/op/spawnw.t'? It will output more info
cizra, moritz doesn't drikn too. At least now :)
moritz bacek: actually I only drink very seldom at all ;) 06:05
cizra All tests successful.
I don't drink, ever and ever.
Aha
I think I nailed the bug.
How do I update my bug report? 06:06
The test fails when LC_ALL and/or LANG are set.
moritz did you sent it already?
cizra yep
moritz you'll get an email shortly with a bug id
just reply to that email
cizra Right. 06:07
moritz cizra++ # investing time in bug reports
cizra \\o/
karma cizra
(where's that karma bot when you need it?) 06:08
moritz purl-- # being absent
masak cizra++ # we might not know the position, but we sure know the momentum 06:09
bacek mmd-- # it suck all the time...
masak bacek: please explain 06:10
if it's so bad, don't use it
moritz masak: see #perl6. rakudo fails to smartmatch because of mmd issues
masak I see 06:11
bacek masak, I can't stop use it...
masak isn't that just rakudo being bad atm?
moritz ISTR that smartmatch is one of the few cases that shouldn't use MMD at all
masak: I think that parrot and perl 6 partly disagree on how MMD should behave 06:12
masak that sounds very strange
cizra masak: I didn't understand the second one.
masak moritz: wouldn't smartmatch be the most benefitting operator for smartmatch there ever was?
cizra: the one about momentum? just trying to make an oblique reference to Scrodinger's uncertainty principle 06:13
cizra Oh.
Also, it's Schrƶdinger (=
masak Scrƶdinger. right
moritz masak: dunno. Just reed S03:2771 ff
masak moritz: oki 06:14
cizra You still missed the 'h' :-p
masak cizra: sorry it's early in the morning :)
Schrƶdinger
...of course 06:15
moritz actually I got it wrong - it does seem to use mmd, but it's allowed to assume that no aditional candidates will be defined at run time
masak that's a relief
otherwise I would have lost a sizeable bit of faith in mmd, actually
cizra Hmm. I think I replied to that bug, but nothing happened on the perlbug tracker.
masak "yeah, well, we decided not to use it for smartmatch"
moritz cizra: perl.org mail server are a bit slow sometimes 06:16
cizra OK
Tene glad to see cizra hanging out here
cizra \\o/ 06:17
06:17 barney joined 06:18 Psyche^ joined
cizra hangs out here.. hangs.. sways slightly with the wind.. gets a post-hanging erection.. 06:23
06:33 uniejo joined 06:41 Zaba_ joined
cizra Tene: Ooh. Cardinal has an irb mockup. 06:45
It doesn't apparently support readline, though.
Tene eh? 06:46
howso?
cizra ../../parrot cardinal.pbc, then type in some code and hit enetr.
Then press up arrow on keyboard.
Tene works for me 06:47
cizra Real irb gets the previous command. This one shows some escape characters.
Tene you maybe compiled parrot without readline support
cizra Perhaps.
Hmm, no support for blocks.. 06:48
Tene hm? blocks?
cizra {|i| puts i}
Tene is that the same as do ... end?
cizra no 06:49
Hm, yes
Yes, it is
Tene identical?
no semantic difference?
cizra there is
Tene What's the difference?
cizra Blocks can be passed into functions
lemme give you an example 06:50
0.upto(5) {|i|
puts i }
.. which also can be written as
0.upto(5) do |i|
puts i
done
whoops, end
moritz so it's a lambda? 06:51
looks a lot like perl 6 pointy blocks
cizra I'm not sure. Sure sounds similar.
masak yes, they are the same. 06:53
cizra Beware of samdanielson.com/2007/3/19/proc-new...da-in-ruby this distinction
shorten cizra's url is at xrl.us/bmqa6
Tene Hm. 06:55
moritz ah, that's very similar to perl 6 again ;)
return() returns from something which a 'sub' or 'method' or 'marcro' keyword
dalek r28193 | tene++ | trunk: 06:56
: [cardinal]
: * add {} syntax for blocks # cizra++
diff: www.parrotvm.org/svn/parrot/revision?rev=28193
masak speaking of which, does rakudo implement return yet?
moritz masak: no. 06:57
masak :/
Tene masak: blocking on exceptions implementation 06:59
masak oh.
I thought exceptions were implemented in parrot
Tene masak: there are "working" exceptions, but they're not compliant with the current spec
masak aha 07:00
Tene allison++ is working on that in a branch
masak return() will make some things much simpler 07:01
Tene cizra: since I actually don't use ruby, the most helpful thing you could do for me would be to complain about things not working as you'd like, provide tests, open tickets, whatever medium you prefer. 07:03
Of course, patches are always nice too.
cizra *nod* 07:04
Waah. I ought to be working on the work work.
0.upto(5) {|i| puts i} 07:08
Syntax error at line 1, near "0.upto(5) "
Tene there's something weird about line endings required in places they shouldn't be.
I need to track it down.
also... 07:09
07:10 iblechbot joined
dalek r28194 | tene++ | trunk: 07:11
: [cardinal]
: * upto() builtin for Ints (cizra++)
diff: www.parrotvm.org/svn/parrot/revision?rev=28194
cizra 0.upto(5) 07:14
Syntax error at line 1, near "0.upto(5)\\n"
Tene Hm. Try assigning to a variable and calling upto() on that. 07:15
Oh, right, I know why that's happening.
There's some issues in the grammar there that I haven't worked out yet, so I restricted it to only allow method calls on variables for now to work around it. 07:16
07:17 baest joined
Tene Wow, I should have tested that. 07:17
I forgot to switch decrement to increment.
cizra irb(main):001:0>i = 5 07:18
irb(main):001:0>i.upto(10)
Lexical 'i' not found
Also, that irb prompt has a space after it.
Should have, that is
Tene Right now, the interactive interpreter makes a new lexical environment for each line it compiles.
pmichaud has plans to fix that, but has been too busy on other things to do it yet. 07:19
cizra OK, so how do I interpret whole files?
Tene just use a filename as an argument
cizra OK 07:20
Tene parrot cardinal.pbc file.rb
cizra Syntax error at line 2, near "i.upto(5) "
Tene a = 1; a.upto(5) { |i| puts i; }
works for me
cizra That ; shouldn't be necessary. 07:21
Tene I'm trying to see if I can get it to parse without that required terminator
right
cizra the second one
Muhaha, upto counds downwards
Tene Another easy thing would be adding builtins. 07:28
cizra What are those?
Tene Almost as easy would be reworking the class hierarchy
like upto()
cizra Hmm.. Are you aware that Ruby treats 5 as a full-blown object of the Fixnum class? 07:29
Also, who's pmichaud?
Tene He's the main developer of the grammar engine and much of the compiler tools. 07:30
cizra OK. Who else is involved in this Ruby compiler?
(Carrot would have been a nicer name)
Tene kjs wrote the first draft of the grammar, but that's it.
cizra OK 07:31
Uh. Sure seems complicated. 07:36
Tene What seems complicated?
dalek r28195 | tene++ | trunk:
: [cardinal]
: * upto() should increment, not decrement (tene--)
cizra the compiler code
dalek : * allow a statement to lack a trailing terminator at the end of a block
diff: www.parrotvm.org/svn/parrot/revision?rev=28195
Tene The grammar? It is. I've cleaned it up a bit, but ruby's grammar is complicated in general. 07:37
cizra alias carrot='parrot cardinal.pbc' 07:38
Tene why 'carrot'?
cizra It sounds fine and rhymes with parrot.
Tene 'kay
cizra Umm.. Do I need the SVN access yet? 07:39
dalek r28196 | fperrad++ | trunk: 07:40
: [Lua]
: - more robust
diff: www.parrotvm.org/svn/parrot/revision?rev=28196
cizra Ruby's initialize methods don't need that "self" in 08-class-t 07:41
07:41 cosimo joined
Tene Huh. I wasn't sure whether they did or not. I was just copying from the examples I could find on my system. 07:41
Is the return value of initialize used for anything ever? 07:42
cizra I don't think so.
Tene Okay, I'll fix that.
cizra Also, why is running make test so damn slow?
moritz first make it run, then make it right, then make it fast ;) 07:43
Tene Parsing. The grammar engine hasn't been optimized much at all yet.
cizra Well, 10 lines of Ruby code shouldn't take like 10 seconds to run.
By the way, the 08-class-t runs without the self. 07:44
dalek r28197 | tene++ | trunk: 07:46
: [cardinal]
: * The return value of initialize() isn't used.
diff: www.parrotvm.org/svn/parrot/revision?rev=28197
Tene cizra++ 07:47
cizra: Parrot is a bit strict about commit access to their svn repo. If you want in, send in a few patches, then you'll have to sign a licensing agreement. 07:48
cizra Gosh. 07:49
Tene I'd also be open to the idea of moving cardinal to a separate repository, if you have objections to that paperwork and plan to pay a lot of attention to working on cardinal.
It has to do with their sponsorhip by the perl foundation and other legal issues. The license agreement basically says "You give the perl foundation the right to release all code you commit under an open source license, it's actually your code so you can give us copyright of it, you're not under any other weird legal agreements, etc." 07:51
Time for me to sleep now. 07:57
g'night.
cizra ciao 07:58
09:05 Zero_Yao joined 09:09 ruoso joined
cizra Weird stuff. I replied by mail to my bug report AGES ago, but it hasn't shown up in the tracker. 09:31
Does Parrot optimize away tail recursion? 09:35
moritz I think it's trivial with cps 09:42
cizra What's cps? 09:43
moritz continuation passing style 09:46
actually not 100% correct
but sub calls are done through continuations, not stack
so to do tail recursion optimatzion, you just have to re-use the current continuation
cizra OK 09:48
Sounds like I'll learn a bunch.
Is there any difference between using registers or local variables? 09:50
(performance, I meant) 09:52
Yay! I just wrote my very own Fibonacci numbers calculator, using only registers and register operations! 09:54
\\o/
moritz re performance, dunno 10:00
YaY, exam passed. 2/4 done. 10:02
cizra Mine are all done :-p 10:05
moritz envies cizra 10:06
10:19 ank joined 10:22 nopaste joined 10:45 tetragon joined 10:57 TonyC joined 11:18 AndyA joined 11:35 bacek joined
TiMBuS is there any reason why i cant seem to pass a 'package' declared pmcarray to a function? 12:04
pmichaud ...package declared pmcarray? in PIR or ... ? 12:05
TiMBuS i get "Null PMC access in find_method()"
yes, pir
bacek mmd-- # For referencing NULL PMC in dispatch 12:06
for dereferencing.
pmichaud I'm not sure what a 'package declared pmcarray' is.
TiMBuS get_global $P12, "funstack"
unless_null $P12, vivify_10
new $P12, "ResizablePMCArray"
that
pmichaud okay, got that. Where is it being used? 12:07
TiMBuS im just pushing a pmc onto it
get_global $P14, "funstack"
$P14."push"($P13)
pmichaud the first set of lines didn't actually create funstack as a ResizablePMCArray 12:08
TiMBuS oh..
pmichaud it did a lookup for funstack, and if no value was found it uses a (temporary) ResizablePMCArray in its place.
TiMBuS im using the compiler toolkit here so
pmichaud you may need to set 'isdecl' somewhere
TiMBuS =/ its set
works when i change it to lexical 12:09
pmichaud can I see the code that is creating the past structure? 12:10
cizra A friend asked me:
how could parrot be as fast as for instance ruby, if it needs to translate the ruby source into pir and then/or directly into parrot assembler and run that then?
What's a good answer?
TiMBuS ruby does that as well?
pmichaud ruby does translation also, just not into PIR
cizra no
moritz cizra: tell him that compile time normally doesn't really matter compared to run time
cizra Well, we were talking about Ruby-on-Parrot
TiMBuS unless you had a 'ruby machine' heh 12:11
pmichaud at some point I hope/expect that we'll be translating PAST to bytecode and skipping the PIR intermediate step.
cizra I know a Haskell machine was build at some point.
TiMBuS lisp machine as well
moritz cizra: and that once parrot does very good optimizations all high level languages will profit from it, so there's more incentive to do it
TiMBuS how long till we have a parrot machine?
:D
cizra TiMBuS: That was one-of-a-kind fun project.
moritz: sounds fun 12:12
TiMBuS oh, pmichaud
12:12 iblechbot joined
TiMBuS the code creating the stack is just: 12:12
PAST::Var.new(
:name('funstack'),
:viviself('ResizablePMCArray'),
:scope('package'),
i bet im missing something arent i
D:
pmichaud :isdecl(1)
TiMBuS its there.. or is the comma a problem? 12:13
pmichaud :isdecl(1) isn't in what you just pasted... 12:14
TiMBuS did it mispaste =/
cizra What are "stack machines" and "register machines"? Are stack machines just with the stack like Forth, without any registers? Is a stack available in register machines?
TiMBuS im no expert but i would think a stack machine would have registers, probably less registers though. 12:18
the intel arch would be a stack machine, right?
pmichaud oh no, intel is definitely a register machine. 12:19
TiMBuS really?
pmichaud en.wikipedia.org/wiki/Stack_machine # reasonable explanation
12:20 tetragon joined
pmichaud in a stack machine, there's not really an 'add dest, src1, src2' instruction 12:20
instead, it would be
push s1
push s2
add
moritz like forth does
and postscript
pmichaud and the result of the 'add' would be left on the top of the stack 12:21
TiMBuS well there you go.
cizra OK 12:22
So the main difference lies in the opcode arguments.
pmichaud in the way operations obtain their arguments and store results, yes.
cizra Thanks 12:23
TiMBuS pmichaud, heres the code again, on one line so it isnt cut off: 12:27
PAST::Var.new(:name('funstack'),:viviself('ResizablePMCArray'),:scope('package'),:isdecl(1))
see im not crazy its totally there
pmichaud the code for that should be
get_global $P12, "funstack"
unless_null vivify_10 12:28
$P12 = new "ResizablePMCArray"
set_global "funstack", $P12
vivify_10:
is it not generating the set_global?
TiMBuS nope
pmichaud sounds like a bug then. :-|
checking... 12:29
oh, try :lvalue(1)
TiMBuS that does it 12:30
wait what.
12:34 Zaba joined 12:38 Whiteknight joined
bacek summon pmichaud 12:49
12:50 Whiteknight joined
DietCoke yapc:eu is looking less and less likely. 12:53
pmichaud pong 12:55
bacek pmichaud, #55506. I'm very tired of NULL pmc access in type()... 12:56
pmichaud patching Parrot to ignore NULL probably isn't the answer, though. 12:57
bacek pmichaud, ok. I'll try to find more info what happens... 12:59
pmichaud the problem here is that the assignment is returning a NULL value. 13:00
wait, that's not quite it.
$a=' 13:01
13:01 gryphon joined
pmichaud $a='foo'; generates an exception 13:01
which try {...} catches
...so then what's the return value of C<try>? 13:02
bacek Non initialised $P<n> 13:03
$P60 = 'foo'() 13:04
pop_eh:
...
'is'($P60,...)
pmichaud what should the value of try { ... } be if an exception occurs?
bacek reading spec 13:05
13:06 acmoore joined
bacek pmichaud, probably 'undef' 13:12
I can't find it in spec.
But in S02-builtin_data_types/type.t: is((try{$foo = 'xyz'}), undef, 'Int restricts to integers'); 13:13
jonathan Is has $.a, $.b even valid?
I guess syntax error...
bacek Anyway, returning NULL is bad idea for me.
BTW, is I have sub foo(_) and sub foo(_,_) I should able to call it with NULL or two NULLs... 13:21
Getting type of argument not always required for MMD 13:22
DietCoke As I recall, there was at one point a dispatch problem with NULL and _
bacek s/is/if
13:25 paco joined 13:31 Andy joined
pmichaud I'm guessing that has $.a, $.b should generate something like "$.b not found in scope" 13:33
13:37 jhorwitz joined 13:46 cognominal joined
Whiteknight Does C89 allow bitfields? I mean, I assume it does, bitfields were even present in K&R 13:54
I dont think I've seen any bitfields in use so far in Parrot 13:56
Tene pmichaud: ran into a repeated zero-length match last night with: rule stmts { [ <stmt> <term>+ ]+ }; token term { ';' | \\n | <before <endofblock>> } 13:58
13:58 Limbic_Region joined
Tene pmichaud: I found a workaround, but you asked me to let you know whenever I see it. 13:59
14:15 rdice joined
pmichaud Tene: got it, thanks! 14:19
14:20 Zero_Yao joined
pmichaud my $b = try { die 'xyz'; }; say $b; 14:20
wrong chan, sorry
Zero_Yao hi, guys, I want to set break point at static funtion such as 'compile_to_bytecode' in IMCC, but I got: ''compile_to_bytecode has no debugger info'. What is wrong? I have '-g' option to CC. 14:37
pmichaud does gdb normally allow breakpoints to static functions? 14:38
Zero_Yao pmichaud, I use dbx on solaris, and I can set break point at static funciton before.
jhorwitz i don't remember ever having a problem with that with gdb 14:39
pmichaud then I don't know. :-) 14:40
DietCoke Zero_Yao: what options did you use for Configure.pl ?
Zero_Yao DietCoke, I tried both 'perl Configure.pl' and 'perl Configure.pl --inline'
and I just write a simple test function, and dbx can stop at static function correctly. 14:41
14:59 davidfetter joined
DietCoke odd 15:19
I'd throw it at the list and see if anyone can help.
davidfetter missed the context 15:20
15:22 sjansen joined
DietCoke ... check the logs, man. =-) 15:28
logs?
parrot logs?
irc log?
purl?
moritz parrot logs are at irclog.perlgeek.de/parrot/today
moritz acts as dipspurl 15:29
DietCoke yawns 15:34
davidfetter peeks at /topic and blushes 15:35
15:49 Zaba_ joined
dalek Jeff Horwitz | mod_parrot: 16:01
link: www.perlfoundation.org/parrot/index...mod_parrot
16:14 Zaba joined 16:22 pdcawley joined 16:24 cosimo joined 16:32 clunker3 joined
dalek r28198 | Whiteknight++ | gsoc_pdd09: 16:33
: [gsoc_pdd09] adding some details about flags, both internal and external
diff: www.parrotvm.org/svn/parrot/revision?rev=28198
16:34 Theory joined 16:35 IllvilJa joined
davidfetter wonders whether oracle's using parrot somewhere 16:36
IllvilJa, any hints? 16:37
IllvilJa Not AFAIK, but that does not necessary mean "no" :-). 16:38
davidfetter heh 16:39
davidfetter hoping to make parrot part of postgres at some point
well, get pg to use parrot in some intelligent way
16:40 kj joined
dalek r28199 | kjs++ | trunk: 16:52
: [tutorial] add solution to exercise in ep 5
diff: www.parrotvm.org/svn/parrot/revision?rev=28199
16:54 purl joined
Tene I've worked with oracle-the-company a few times, and I'm very confident saying "no chance at all". 16:58
DietCoke I know of one place that ever used parrot in production, and we pretty much broke it with backwards incompatible changes (not unsurprising given our version #s) 17:01
dalek r28200 | kjs++ | trunk:
: [tutorial] add solution to ex in ep 5
diff: www.parrotvm.org/svn/parrot/revision?rev=28200
r28201 | kjs++ | trunk: 17:07
: [tutorial] add solution to ex in ep 7. (and whoops: previous commit should have said 'ep 6' , not 'ep 5')
diff: www.parrotvm.org/svn/parrot/revision?rev=28201
r28202 | Whiteknight++ | gsoc_pdd09: 17:09
: [gsoc_pdd09] changes to structure
diff: www.parrotvm.org/svn/parrot/revision?rev=28202
r28203 | kjs++ | trunk: 17:10
: [tutorial] add solution to ex in ep 8
diff: www.parrotvm.org/svn/parrot/revision?rev=28203
DietCoke (was dan's workplace, btw.) 17:14
17:24 particle joined 17:26 barney joined
dalek r28204 | chromatic++ | trunk: 17:32
: [PMC] Changed isa_str member of the vtable to a hash. This allows more reuse
: of constant strings within the system and simplifies isa checks to a hash
: lookup, not repeated string manipulation. MRO setup has changed slightly too,
: and there's an opportunity for refactoring here by calling a new function to
: initialize MRO and the isa hash from the PMC class initializer.
: Note that you need to reconfigure Parrot and probably make realclean after
: applying this patch. If you see segfaults in dynpmcs (especially in
: languages/), you didn't make realclean.
diff: www.parrotvm.org/svn/parrot/revision?rev=28204
r28205 | chromatic++ | trunk: 17:40
: [src] Copied some logic from string_equal into STRING_compare; the latter can
: make a few assumptions that the former cannot, and this plus the isa_hash
: commit speed up the Rakudo-building benchmark by 4.89%.
diff: www.parrotvm.org/svn/parrot/revision?rev=28205
cotto-work the latest build for perl6 explodes, even with make realclean 17:47
looks like a fakecutable issue 17:48
barney, ping 17:51
barney hi cotto
cotto-work do you know of a good example of a language spec that I could use as a basis for the PHP spec I'm writing? 17:52
barney Not really. Perl 6 ? 17:53
cotto-work heh
perl6 is a whole different class of language
particle there's a spec for lolcode... 17:54
is that the same class as php? ;)
cotto-work I can haz languidge spek?
barney In spirit, HQ9+ might be closer. 17:55
particle are you thinking of a syntax spec, or full language including semantics?
for syntax, i'd use ebnf
cotto-work a full spec, although there are a lot of places where "do the obvious thing" would be sufficient 17:56
barney You could ask Whiteknight whether he can recomment a Wikibook as a template 17:57
cotto-work vim + POD seems to be working 17:58
barney I meant as a template for content 17:59
Funny. In PHP $ref1 = &$var; seems to be the same as $ref1 =& $var; 18:01
cotto-work The more I read the code, the more I find wacky stuff like that. 18:02
I'm not quite desensitized yet, though.
barney Do you mean that this might not have been a sound a design decision? =:) 18:03
pmichaud Funny. In Perl $ref1 =- $var; seems to be the same as $ref1 = -$var; 18:04
Whiteknight what about wikibooks?
cotto-work wouldn'
it wouldn't hurt
I've only got about 7KB of documentation written, so reformatting it wouldn't be too painful. 18:08
18:08 grim_fandango joined
pmichaud jonathan: I just thought of a potential lazy-list blocker -- it will be difficult to overload set_pmc_keyed from ResizablePMCArray. Our alternative would be that List has an RPA attribute instead of inheriting from RPA. 18:14
and we'd have to get the various RPAs that occur to magically morph themselves into Lists at every opportunity. 18:15
I guess that's not too bad, all things considered. 18:16
18:23 rdice joined
DietCoke pmichaud: that's what HLL mapping is for, neh? 18:26
well, to avoid RPAs from occuring the first place.
pmichaud does HLL mapping also map :slurpy's ? 18:27
DietCoke ISTR it used to, at least. if it doesn't, it should.
pmichaud at any rate, we still end up with RPA's coming from PGE and/or PCT.
DietCoke any place where parrot is creating a PMC for you, you can expect it to use the right mapping.
;(if it doesn't it's a bug)
PCT/PGE, perhaps you can have them do a lookup on the HLL mapping before instantiating. 18:28
pmichaud that sounds a bit tricker. We have to know who the hll caller actually is.
*trickier
anyway, while I think we can get most RPAs to HLL map to List, I'm not convinced we can reliably get all of them. 18:29
and if we want to call Parrot libraries, we probably need to be able to handle RPAs anyway. 18:30
DietCoke (parrot libraries) that is a whole missing parrot of parrot HLL interop, I think.
"missing part"
pmichaud based on what was done with P6object I don't think getting RPA to work will be a bit issue -- it's just something we have to be aware of. 18:31
s/bit/big/ # can't type anymore :-(
jonathan pmichaud: I was pondering that lists would separately maintain an evaluated an unevaluated portion, as separate arrays. So it's cheaper if you have an iterator of some kind in there. 18:32
Otherwise you have to splice all of the time.
Which is probably costly.
pmichaud I didn't think we needed to separately maintain it, though 18:35
unless you're thinking that push would be a lot faster than splice
jonathan I think so; isn't a splice a case of, copy the iterator and all after it along some elements? 18:36
pmichaud I was thinking that it can just be a list of mixed evaluated and unevaluated portions, where we keep track of the initial evaluated portion
but having it as separate lists makes sense, I guess
jonathan We can do. But splicing just feels a tad expensive. Unless we work out a way to make splicing cheat under the hood and be fast.
pmichaud I think I'll go with the two list approach first 18:37
one nice thing about the single list approach is that adding/removing generators is still a simple pop/push
and I think that we build lists far more often than we index them
jonathan Hmm, true. 18:38
Well, maybe. :-)
pmichaud also, we get the right semantics from :slurpy for "free"
and I'm pretty sure we'll have a lot of :slurpy
18:39 Ivatar joined
jonathan True. Hmmm. Will think on it some. :-) 18:41
pmichaud well, once we have the basics in place we can try different models and see what works.
Wouldn't surprise me if we ultimately end up with PMCs for a lot of these :-)
jonathan I think having an implementation that *works* is more a priority than one that's fast. 18:42
pmichaud exactly.
jonathan And I guess benchmarks are the way to work out what is fast.
DietCoke can always throw someone at the conversion of PIR to PMC later.
jonathan There's a few too many factors, to be able to just guess what will be fastest. :-)
OK, going to grab some food. 18:44
dalek r28206 | fperrad++ | trunk:
: [configure]
: fix on Windows
: patch of kid51++
diff: www.parrotvm.org/svn/parrot/revision?rev=28206
r28207 | Whiteknight++ | gsoc_pdd09: 18:50
: [gsoc_pdd09] moving stuff around, fixing my big mess.
diff: www.parrotvm.org/svn/parrot/revision?rev=28207
19:01 jisom joined 19:03 jan joined 19:08 NotFound joined
NotFound Hello. 19:08
dalek r28208 | bernhard++ | trunk: 19:09
: [Plumhead]
: Mention --run-nqp in the synopsis.
diff: www.parrotvm.org/svn/parrot/revision?rev=28208 19:10
Jeff Horwitz | Parrot: 19:12
link: www.perlfoundation.org/parrot/index.cgi?parrot
Jeff Horwitz | Articles of Incorporation: 19:16
link: www.perlfoundation.org/parrot/index...orporation
shorten dalek's url is at xrl.us/bkyfj
dalek will@coleda.com | Articles of Incorporation: 19:22
link: www.perlfoundation.org/parrot/index...orporation
shorten dalek's url is at xrl.us/bkyfj
dalek r28209 | bernhard++ | trunk: 19:24
: [Plumhead PHC]
: Try to add variable name binding, but not succeeding.
diff: www.parrotvm.org/svn/parrot/revision?rev=28209
19:36 purl joined
Auzon hi purl! 19:36
19:45 Zaba joined 19:47 AndyA joined
tewk pmichaud: inside a pge closure {{ }} is there any way to print the current match object for debug reasons? 19:59
pmichaud _dumper(match) 20:00
(assuming dumper is loaded.)
tewk so I need to load dumper inside the closuer {{ }} 20:02
pmichaud oh, it can be loaded outside of the closure, too. 20:03
(e.g.,as part of the HLLCompiler initialization)
tewk and match will be a lexical in the closure.
pmichaud yes, 'match' is a pmc register pointing to the current match object in the closure
tewk Would you happen to have a file:line reference to a HLLCompiler initialization example? 20:04
pmichaud what are you invoking the match from?
the best examples for HLLCompiler initialization are probably in languages/abc, languages/lolcode, compilers/nqp, etc. 20:05
but if you're just wanting to get to "I can dump a match object" and aren't already doing HLLCompiler stuff, then you don't need HLLCompiler
the load_bytecode '_dumper.pbc' can be done from, e.g., main 20:06
tewk I'm putting {{ print "HERE1" }} statements into my grammar.pg file as debug statments. 20:09
pmichaud that works too :-) 20:10
tewk But I'm going to add {{ _dumper(match) }} in a couple of places 20:11
20:36 grim_fandango joined
cognominal why the glossary is missing from www.parrotcode.org/docs/? 20:38
moritz who stole it? 20:39
NotFound t/pmc/orderedhash test is failing in --optimize build.
pmichaud NotFound: Might be a known issue. 20:40
NotFound: don't know if there's an RT ticket for it yet.
20:42 Zaba joined
cotto-work NotFound, I think you forgot to attach your patch for #44499 20:50
NotFound Ooopppsss. Again!
Done now, thanks. 20:52
cotto-work np 20:53
DietCoke the glossary is available here: www.parrotcode.org/glossary.html 21:12
DietCoke will update the docs index.
done. 21:25
cotto-work I'm curious about the Parrot/Perl6 workshop at yapc::na 21:30
It doesn't seem like it'll take 2h to get people set up with a working rakudo build 21:31
DietCoke it's not just about getting them to a build. 21:35
-> 21:36
NotFound Do you take into account the time required to install cpan, a lot of modules, and several fails while building some of these?
pmichaud I think we want to do a build, but also give an orientation as to where things are 21:41
e.g., for those who want to extend it
cotto-work i.e. encourage budding hackers
pmichaud exactly.
cotto-work I can definitely see the value in that.
pmichaud I guess that means that by the workshop I should make sure rakudo has the ability to accept code written in p6 :-) 21:42
cotto-work might be good to make sure the fakecutable works by that time
pmichaud that's somewhat out of my hands, unfortunately.
I think we can say "the fakecutable works sometimes, but if not, use ./parrot perl6.pbc"
most people don't have trouble with that. 21:43
21:46 donaldh joined
cotto-work True. It's nice to assume that we'll have smart users. 21:49
21:49 bacek joined
moritz has a shellscript for that, just calls ../../parrot perl6.pbc "$@" 21:51
21:58 donaldh_ joined 21:59 sjansen joined
NotFound What fails in the executable perl6? 22:00
cotto-work hello world
purl hello world is, like, www.roesler-ac.de/wolfram/hello.htm
Infinoid NotFound: *** glibc detected *** ./perl6: double free or corruption (!prev): 0x00000000008cc470 ***
NotFound Works for me. 22:01
Infinoid r28205 fails for me on amd64 22:02
Infinoid updates
NotFound Mmmmm.... I was testing in a build with my last patch, looks like a cleaner version fails. 22:08
22:10 Limbic_Region joined
Infinoid r28209 fails too 22:12
NotFound I'm starting to agree with the "woks sometimes" 22:20
Limbic_Region oooh, making perl6.exe in Cygwin errors out while core dumping 22:27
now that's a new one
;-)
anyone interested in the output?
Infinoid Limbic_Region: sounds like probably the same error we're seeing on linux 22:29
Limbic_Region ok then
Infinoid over here the C library barfs saying something about double free
what's it look like over there? :)
Limbic_Region running it again now to see
Infinoid the crash occurs while trying to do the "hello world" bit
Limbic_Region 312 [main] parrot 192 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack) 22:30
apparently, it can't dump core to even tell me what the error might be
Infinoid awesome 22:31
Limbic_Region will check back in after the linux issue is resolved to see if the cygwin is still there
../../parrot.exe -o perl6.pbc perl6.pir
that's the line right before the failed core dump
dalek r28210 | Whiteknight++ | gsoc_pdd09: 22:42
: [gsoc_pdd09] some fixes and a placeholder for GC-related tomfoolery
diff: www.parrotvm.org/svn/parrot/revision?rev=28210
22:44 kid51 joined
dalek r28211 | jkeenan++ | trunk: 23:14
: Correct error in call to File::Temp.
diff: www.parrotvm.org/svn/parrot/revision?rev=28211
23:14 ank joined