Camelia, the Perl 6 bug

IRC log for #parrot, 2008-06-09

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced