Camelia, the Perl 6 bug

IRC log for #parrot, 2008-06-23

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 AndyA joined #parrot
00:17 Ademan joined #parrot
00:26 bacek_ hi again...
00:32 dalek r28655 | Whiteknight++ | gsoc_pdd09:
00:32 dalek : [gsoc_pdd09] Made necessary changes so that Parrot and libparrot will compile. Parrot does not run, miniparrot will not compile, and build process doesn't go past that.
00:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28655
00:33 dalek r28656 | jkeenan++ | trunk:
00:33 dalek : Merging nom4 branch into trunk.  This removes config/auto/m4.pm and associated test file.  Cf.:  https://rt.perl.org/rt3/Ti​cket/Display.html?id=43857.
00:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28656
00:33 dalek r28657 | coke++ | trunk:
00:33 dalek : RT#56076 ([PATCH] MACOSX_DEPLOYMENT_TARGET not defined during OSX PPC Rakudo build)
00:33 dalek : This adds (proactively, in some cases) the MACOSX_DEPLOYMENT_TARGET env. var
00:33 dalek : to the various languge builds; we've found this to be required on OSX with
00:33 dalek : the current code base.
00:33 dalek : Patch courtesy Packy Anderson (packy++ at dardan dot com)
00:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28657
00:35 TiMBuS joined #parrot
00:36 dalek r28658 | jkeenan++ | trunk:
00:36 dalek : Correct POD formatting errors.
00:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28658
00:39 dalek r28659 | jkeenan++ | nom4:
00:39 dalek : Branch has been merged into trunk and is no longer needed at HEAD.
00:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28659
00:40 dalek r28660 | jkeenan++ | nom4-28604:
00:40 dalek : Branch to which this tag corresponds has been merged into trunk; tag is no longer needed.
00:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28660
01:09 teknomunk joined #parrot
01:25 Zaba joined #parrot
01:30 kid51 Has anyone recently attempted to  'make perl6' on Mac OS X 10.4 on PPC?  This command:  /Users/jimk/work/parrot/pbc_to_exe perl6.pbc -- seems to hang indefinitely (meaning:  I had to Control-C it after 20 minutes of no change).
01:36 apeiron FWIW, it doesn't show up on Leopard Intel.
01:46 tetragon left #parrot
01:46 tetragon joined #parrot
01:52 Theory joined #parrot
02:06 GeJ joined #parrot
02:28 cjfields joined #parrot
02:42 DietCoke joined #parrot
02:42 DietCoke New version of perlcritic.t sent in a patch for folks to play with.
02:43 DietCoke tcl: after 10000 {puts hello}
02:43 Eevee joined #parrot
02:43 polyglotbot RESULT[invalid command name "("␤]
02:47 tetragon joined #parrot
02:54 dalek r28661 | Whiteknight++ | gsoc_pdd09:
02:54 dalek : [gsoc_pdd09] you know those mistakes you make, and when the compiler points them out you think to yourself "damnit! how could I make such a stupid mistake"? Here's fixes for about a hundred of those that I've made.
02:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28661
02:57 TiMBuS hahaha
03:00 Theory joined #parrot
03:02 tetragon joined #parrot
03:12 jjore joined #parrot
03:15 tetragon joined #parrot
03:25 cjfields joined #parrot
03:29 bacek_ Whiteknight++
04:04 tetragon joined #parrot
04:04 japhb tetragon: connection flapping?
04:04 tetragon japhb: Yep
04:08 tetragon Is the current teapot conveyor supposed to have a rotating ring of particles on it?
04:09 japhb yes
04:09 tetragon When I first saw it, it looked like a rendering issue until it coalesced
04:09 japhb heh
04:09 japhb It looks better if you uncomment the line for GL_POINT_SMOOTH, but it turns out that's broken on a lot of systems.
04:10 japhb Some systems it just runs slowly, others the particles disappear altogether.
04:10 japhb I'm going to have to switch to textured quads instead of point particles, which I was planning to anyway, just not quite yet.
04:10 tetragon I'll probably be sans-ppc for part of this week.  Getting this thing's LCD panel replaced
04:10 japhb ah
04:11 japhb Do you still have a Mac OS X box?
04:11 tetragon Just the 32-bit Intel
04:11 japhb Well, at least you still have your preferred OS ...
04:11 tetragon But I'm still on the iBook for now
04:12 japhb Any cygwin people about?
04:13 tetragon My backup laptops are all Linux
04:13 Whiteknight I used to be sort of a cygwin person
04:13 tetragon And GL_POINT_SMOOTH works for me
04:13 Whiteknight which doesnt help, i'm sure
04:14 japhb Whiteknight: :-) Given that I'm looking for feedback on a cygwin patch, no.  :-)
04:14 japhb tetragon: what's your video card?
04:14 tetragon (with the exception of work stuff, my normal usage patterns are sufficiently OS-agnostic that any sufficiently Unixy system could work)
04:18 tetragon japhb: ATI Mobility Radeon 9550
04:18 tetragon (32MB VRAM)
04:18 japhb Go ATI.  Finally with the unsucky video drivers.  Though Apple probably helped ...
04:22 tetragon hehe
05:07 Psyche^ joined #parrot
05:11 Zaba_ joined #parrot
05:14 dalek r28662 | Whiteknight++ | gsoc_pdd09:
05:14 dalek : [gsoc_pdd09] fixed all compiler errors. Still doesn't build.
05:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28662
05:48 omega joined #parrot
06:05 dalek r28663 | petdance++ | trunk:
06:05 dalek : Minor tweaky for speedup
06:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28663
06:13 dalek r28664 | petdance++ | trunk:
06:13 dalek : fixed an unqouted period
06:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28664
06:13 dalek r28665 | petdance++ | trunk:
06:13 dalek : removed unnecessary and expensive -B check, since we only push certain extensions into our list
06:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28665
06:21 dalek r28666 | petdance++ | trunk:
06:21 dalek : hide a colon in "vim:" so the real vim doesnt get confused
06:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28666
06:24 apeiron joined #parrot
06:27 dalek r28667 | petdance++ | trunk:
06:27 dalek : Don't recompile the -based regexes each line. Also save off  before doing the next m//
06:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28667
06:54 nothingmuch joined #parrot
06:54 nothingmuch does jgoff hang out here?
06:55 iblechbot joined #parrot
07:01 Zaba joined #parrot
07:20 cosimo joined #parrot
07:39 askie joined #parrot
07:49 nothingmuch left #parrot
07:57 clunker3 joined #parrot
08:06 Zaba moin
08:11 Zaba perl6: pi / 2;
08:11 polyglotbot RESULT[3.14159]
08:24 Zaba_ joined #parrot
08:32 masak joined #parrot
09:27 bacek Zaba_, bot just little bit outdated.
09:27 Zaba_ oh okay
09:27 Zaba_ :>
09:28 moritz p6eval on #perl6 does it right
09:29 masak in the thread on perl6-users, the error message is "Scope  not found for PAST::Var '$temp'"
09:29 masak two questions:
09:29 masak 1. why two spaces between 'Scope' and 'not'?
09:29 masak 2. don't we want to emulate Perl 5 error messages when sensible?
09:30 moritz 1. dunno - could be fixed, presumably
09:30 moritz 2. I think the system for error messages will be changed anyway
09:30 moritz for example to allow easier i18n
09:31 masak I'd like something in the way of 'Global symbol "$temp" requires explicit package name at - line 4.'
09:32 TiMBuS .return self.'panic'("Scope ", scope, " not found for PAST::Var '", name, "'")
09:32 TiMBuS from compilers/pct/src/PAST/Compiler.pir
09:36 masak what's the point in returning the name of a scope that wasn't found?
09:36 masak TiMBuS: thanks, btw
09:37 TiMBuS no problem, anything to put off implementing these lazy lists in my language
09:37 moritz ;)
09:37 TiMBuS i procrastinate by doing something productive
09:37 TiMBuS lol
09:38 masak that doesn't sound too bad, actually
09:39 TiMBuS someone wanna make a patch or just tell pmichaud about it
09:40 moritz I'll write a patch and send to parrotbug
09:42 TiMBuS i still have to make that patch for 'reverse' but i still havent gotten around to reversing unicode strings
09:42 moritz TiMBuS: I wrote something about that on perlmonks, just a second...
09:42 TiMBuS because its actually kinda difficult i have to make a new buffer and i have no idea what parrot's stance on 'malloc' is
09:43 moritz TiMBuS: for the Unicode related part you might want to read http://www.perlmonks.org/?node_id=657862
09:43 TiMBuS will do
09:45 moritz patch sent
09:49 TiMBuS ive also noticed that a few string operations assume that a 'Parrot_fixed_8_encoding_ptr' encoded string is fixed-length but its actually utf-8
09:49 moritz patch is in #56252 btw
09:49 moritz TiMBuS: iirc there are some big changes to the string handling on the way
09:50 TiMBuS oh
09:50 * masak wonders if the big refactoring on $_, $/ et al is also on the way
09:50 moritz masak: pmichaud worked on that yesterday, so I guess it's on the way ;)
09:50 masak \o/
10:00 bacek moritz, can you check: S29-str/uc.t and lc.t works for me.
10:01 bacek o.
10:01 bacek karma moritz
10:01 bacek karma bacek
10:01 bacek lazy bot...
10:02 Zaba_ he's down
10:03 moritz bacek: what do you mean by "works for me"?
10:03 moritz bacek: the unicode fudging needs to be there for parrot build wihtout ICU
10:07 moritz bacek: apart from that, they do pass
10:08 moritz looking at S29-num/exp.t it seems that the fudge message needs to be updated
10:08 bacek unicode already fudged in lc/uc.
10:09 bacek Looks like they can be added to spectest_regression.
10:10 bacek Don't change exp.t. Just wait till pmchaud apply some patches and unfudge it :)
10:10 moritz bacek: ah wait, no - I check {lc,uc}first instead
10:10 bacek Actually I just can commit my version.
10:10 bacek (u|l)cfirst already in regression.
10:10 moritz lc fails with get_string() not implemented in class 'Range' for me
10:11 moritz and uc says # Looks like you planned 11 tests, but ran 17
10:11 bacek hm...
10:12 bacek What about -G?
10:12 moritz same thing
10:13 bacek yak... Got 17 too..
10:13 moritz actually one of the tests is outdated
10:13 bacek 'fudge' bug
10:13 moritz is(uc("ß"), "SS", "uc() of non-ascii chars may result in two chars");
10:13 moritz the newest unicode release has a single character for upper case ß (which nobody uses :/)
10:15 bacek yak...
10:15 moritz I'm working on uc.t right now
10:16 bacek 'design by committee' suck all the time...
10:17 moritz bacek: I commited the corrected version
10:17 bacek moritz, some of comments definitely wrong... It should be 'parsefail' for = .uc
10:19 moritz bacek: and the last line produces 3 SKIP outputs
10:21 moritz fixed. Now uc.t can be added to spectest_regression
10:21 bacek 'fudge' bug...
10:21 moritz many of those, actuallly
10:21 * bacek rebuilding parrot... It will take about 15 minutes
10:22 bacek moritz, yes... It's not ready to include in spectest_regression...
10:23 moritz it's now, see #perl6 ;)
10:25 bacek :)
10:25 bacek afk for a while
10:26 moritz we really need regression tests for fudge :/
11:12 cognominal left #parrot
11:22 cognominal joined #parrot
11:44 purl joined #parrot
11:55 bacek joined #parrot
12:36 tetragon joined #parrot
12:38 Whiteknight joined #parrot
12:38 cognominal joined #parrot
12:42 dalek r28668 | Whiteknight++ | gsoc_pdd09:
12:42 dalek : [gsoc_pdd09] update to trunk r28667
12:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28668
12:50 DietCoke joined #parrot
12:51 DietCoke how often does polyglotbot update its source?
13:01 gryphon joined #parrot
13:26 iblechbot joined #parrot
13:26 Zaba joined #parrot
13:35 paco joined #parrot
13:37 Coleoid_ joined #parrot
14:00 * cognominal dreams of a strict mode in grammar that forbids naked strings as litterals. Half of the time I do that, I really want to call a rule
14:03 jhorwitz joined #parrot
14:05 slightlyoff joined #parrot
14:06 slightlyoff left #parrot
14:12 cjfields joined #parrot
14:14 davidfetter joined #parrot
14:17 pmichaud okay, either I'm confused or there's something really wrong here
14:18 pmichaud can someone tell me where I'm overlooking something...?  (process follows)
14:18 pmichaud I'm running r28667
14:18 pmichaud fresh build (make realclean) of parrot and perl6
14:19 pmichaud I have a (p6) program called 'x':
14:19 Andy joined #parrot
14:19 pmichaud $ cat x
14:19 pmichaud say '1..0';
14:19 pmichaud $
14:19 pmichaud if I run 'x' using perl6.pbc, everything works
14:19 pmichaud $ ./parrot perl6.pbc x
14:19 pmichaud 1..0
14:19 pmichaud $
14:19 pmichaud $ ./parrot perl6.pbc x
14:19 pmichaud 1..0
14:19 pmichaud $
14:20 pmichaud (oops, sorry for double-paste)
14:20 Andy I hope everyone appreciates the tenths of seconds I removed from the rakudo make test runs!
14:20 Andy ENTIRE TENTHS OF SECONDS, I TELL YOU
14:20 pmichaud if I run 'x' using perl6.pir, I get an error
14:20 pmichaud $ ./parrot perl6.pir x
14:20 pmichaud Null PMC access in isa()
14:20 pmichaud current instr.: '!EXPORT' pc 9291 (src/gen_builtins.pir:6134)
14:20 pmichaud called from Sub 'parrot;Perl6Str;onload' pc 901 (src/gen_builtins.pir:589)
14:20 pmichaud $
14:20 pmichaud now the question is.... WHY?
14:21 pmichaud (note that perl6.pbc is built by doing   parrot -o perl6.pbc perl6.pir )
14:22 cjfields Andy++
14:22 * cjfields appreciates Andy
14:23 pmichaud or, the underlying question:   shouldn't   parrot perl6.pir   and parrot perl6.pbc do essentially the same thing in this case?
14:24 Andy cjfields: TENTHS OF A SECOND!
14:24 * cjfields is deaf now
14:24 cjfields heh
14:26 NotFound pmichaud: maybe a path problem?
14:26 pmichaud NotFound: like, what kind of path?
14:26 cosimo joined #parrot
14:26 NotFound pmichaud: the path for a pbc being loaded.
14:27 pmichaud I think there's only one perl6.pbc in this case
14:27 pmichaud actually, it would be useful to know if anyone can reproduce.
14:28 pmichaud I guess I'll send a message to the list.
14:28 cjfields I can reproduce:
14:29 NotFound $ ../../parrot perl6.pir x
14:29 NotFound Null PMC access in isa()
14:29 NotFound current instr.: '!EXPORT' pc 9291 (src/gen_builtins.pir:6134)
14:29 NotFound called from Sub 'parrot;Perl6Str;onload' pc 901 (src/gen_builtins.pir:589)
14:29 pmichaud perfect.
14:29 purl if it seems perfect, your understanding is less than perfect.
14:29 nopaste "cjfields" at 128.174.124.54 pasted "parrot perl6.pir x" (5 lines) at http://nopaste.snit.ch/13371
14:29 pmichaud my understanding of purl is "perfect".  :-)
14:30 jhorwitz pmichaud: i CANNOT produce on r28322, if that helps you isolate it.
14:30 jonathan pmichaud: I'm too tied up with other things and groggy from illness to think well, but - yes, I'd expect the .pir and .pbc to do the same; might I suggest looking at initialization ordering of :init :load subs as one possible thing to explore.
14:30 avar should perl6.pir x return '1..0' ?
14:30 pmichaud avar:  it should display "1..0\n" on stdout
14:30 cjfields I'm on r28668, Mac OS X (Leopard, Intel)
14:31 avar is x an internal function you wrote?
14:31 pmichaud it's just a perl6 program that does   "say '1..0';"
14:31 avar ah, I thought it was the x op:)
14:31 pmichaud jonathan: the null PMC comes from doing a lookup of the 'sprintf' sub.
14:32 avar pmichaud: can perl6.pbc run any programs?
14:33 cjfields pmichaud: I'm getting the same thing with an empty file (created using 'touch')
14:33 cjfields maybe I/O?
14:34 pmichaud cjfields: ah yes -- since perl6.pir is failing during initialization, it doesn't really matter what program we send as input.
14:34 nopaste "pmichaud" at 76.183.97.54 pasted "trace output just before null pmc" (17 lines) at http://nopaste.snit.ch/13372
14:35 pmichaud I think that :load / :init shouldn't matter here, since the entire perl6.pir file is compiled before any subs get run.
14:37 pmichaud oddly, if I do tracing with -t4, I get a different error.
14:37 pmichaud and tracing with -t4 produces an error even for perl6.pbc
14:38 jonathan pmichaud: I can't imagine it being GC related, but you have checked with -G?
14:38 pmichaud yes, and I got the same results.
14:38 jonathan OK, good it's not that.
14:39 pmichaud $ ./parrot -G perl6.pir
14:39 pmichaud Null PMC access in isa()
14:39 pmichaud current instr.: '!EXPORT' pc 9291 (src/gen_builtins.pir:6134)
14:39 pmichaud called from Sub 'parrot;Perl6Str;onload' pc 901 (src/gen_builtins.pir:589)
14:39 pmichaud $
14:40 * pmichaud tries r28322, since that one worked for jhorwitz
14:43 avar joined #parrot
14:44 DietCoke pmichaud: might be related to an :onload vs. :init or some other :thing.
14:44 pmichaud DietCoke: I don't see how it could be, though.
14:45 pmichaud running a .pir or its corresponding .pbc "should" do the same thing, unless there are :immediate subs
14:45 DietCoke binary search? :|
14:45 DietCoke ah, :immediate.
14:45 pmichaud I can confirm that r28322 works for me.
14:46 pmichaud $ ./parrot perl6.pir
14:46 pmichaud >
14:46 pmichaud jhorwitz++
14:46 jhorwitz yay.  now comes the hard part.  :)
14:46 pmichaud I need to step away for a bit... will write this up when I get back.
14:47 * pmichaud has had a very frustrating night chasing down lexical and bytecode issues.
14:47 avar joined #parrot
14:49 avar joined #parrot
14:51 avar joined #parrot
15:11 cjfields pmichaud: tested out 'parrot -t4 perl6.pir x', got 'Null PMC access in find_method()' instead, which
15:11 cjfields I'm guessing is what you got as well
15:12 NotFound Same here.
15:12 diakopter pmichaud: "has had a ... night..." wow; up all night?
15:13 NotFound This is interesting: '../../parrot -t4 perl6.pbc x' also fils.
15:13 NotFound fails
15:22 DietCoke j "killer app" horwitz, how's it going?
15:22 confound DietCoke: that's a really unwieldy nickname
15:24 rjbs "kap" for short
15:28 cjfields NotFound: '-t4' bug appears to be independent of the 'Null PMC access in isa()'
15:28 cjfields I tried it with a separate perl6 test which works w/o '-t4'
15:29 cjfields and get the same error
15:29 NotFound Agree.
15:35 jhorwitz DietCoke: putting out fires at $DAYJOB right now....  :-P
15:37 DietCoke I will trade you for insanely boring merge task.
15:40 DietCoke hurm. nevermind. =-)
15:43 * jhorwitz hands over site outage to DietCoke  :)
15:52 DietCoke no TOO LATE!
15:52 gryphon joined #parrot
15:55 NotFound I'v made a quick hack: making isa and isa_pmc return 0 in null.pmc solves the problem.
15:56 pmichaud no, that just hides the problem.
15:56 pmichaud it shouldn't be null in the first place.
15:56 NotFound That's my definition of "quicj hack" ;)
15:56 sjansen joined #parrot
15:58 pmichaud perl6.pir works as of r28536
15:59 sjansen joined #parrot
16:00 cognominal pmichaud: it seems to me that  the "$<sym> = " are  useless in the routine_declarator regex of rakudo.
16:00 pmichaud useless because...?
16:01 cognominal because they are not used in actions.pm
16:01 pmichaud they're there for compatibility with STD.pm
16:01 cognominal the #=  does the job
16:02 cognominal ha, ok
16:03 pmichaud perl6.pir works as of r28570
16:03 NotFound My hack pass all tests, looks like the current behavior of isa with a null pmc is untested, and I've not found documentation for it.
16:04 pmichaud the behavior of any op (except is_null, unless_null, if_null) on a null PMC is to throw an exception.
16:04 pmichaud so the current implementation is correct.
16:05 NotFound What will be a good place to test it? t/oo/isa.t ?
16:06 pmichaud I don't know that we need to test every op to make sure it throws an exception on the null PMC.  But if we're going to test isa, then yes, t/oo/isa.t would likely be the place to do it.
16:06 pmichaud better might be to nave a t/pmc/null.t  that goes through all of the available ops and makes sure they throw exceptions.
16:07 pmichaud (instead of spreading the tests throughout lots of t/op/* files.
16:07 NotFound Ideally, a program that automatically writes that test will be good.
16:08 pmichaud or just reads a list of tests from a file like src/ops/ops.num
16:09 NotFound Actually 'does' return 0, with this comment: /* XXX maybe a hack to get TGE running again */
16:09 pmichaud that sounds like a TGE bug
16:10 pmichaud the problem with such hacks is that it hides the underlying problem.
16:10 pmichaud in rakudo's case, the fact that a lookup of 'sprintf' is returning null is a serious problem.
16:10 pmichaud it's a serious _parrot_ problem, at that.
16:10 pmichaud if we keep hiding the problems, eventually we can't find them to fix them.
16:11 DietCoke pmichaud++
16:11 NotFound pmichaud: Yes, I had problems of that type trying to find utf8 related problems.
16:11 pmichaud I'd argue that the "does return 0" hack ought to be removed and we figure out what in TGE is having trouble.
16:14 pmichaud perl6.pir works in r28608
16:21 pmichaud perl6.pir fails in r28633
16:26 gmansi joined #parrot
16:36 avar pmichaud: you can use git-bisect to find where the problem occured
16:41 pmichaud except I'm not using git :-)
16:42 pmichaud and I'm doing a bit more selective choosing than a simple bisection.
16:44 pmichaud perl6.pir fails in r28627
16:47 * DietCoke hopes he gets a new version of Iterator soon that allows him to release a new version of the binary search tool.
16:48 pmichaud perl6.pir passes in r28626
16:48 pmichaud hrm.
16:49 pmichaud well, that doesn't tell me much.  :-(
16:50 NotFound 28627: [rakudo]: * Add a version of 'sprintf' (RT#56208, bacek++) * Patch courtesy Vasi..
16:51 pmichaud right.  That's the point at which sprintf was added, but it doesn't explain why perl6.pbc works and perl6.pir fails.
16:51 pmichaud they should either both succeed or both fail.
16:51 DietCoke which one of those lines is failing in the .pir ?
16:51 NotFound At least explains why the problem was not noticed before.
16:52 pmichaud well, it just means that r28627 is the first point where we can see the problem.
16:52 pmichaud (which might be exactly what NotFound++ said :-)
16:52 pmichaud okay, there's a bug in Str.pir.
16:52 pmichaud fixing.
16:53 pmichaud actually, before I do that....
16:55 NotFound What I say not always maps directly to what I try to say, I lack an english compiler with good warnings ;)
17:02 Khisanth joined #parrot
17:07 NotFound pmichaud: probably unrelated, but have you looked at my patch in #39930 ?
17:10 pmichaud looking.
17:12 pmichaud +1   # NotFound++
17:27 purl joined #parrot
17:34 japhb ouch
17:34 japhb ww
17:39 cognominal how can I test that a vlue is undef in nqp?
17:40 pmichaud might have to use inline PIR.  Parrot doesn't have a convenient method-based form.  Or, we could perhaps create a defined operator.
17:40 NotFound cognominal: Are you looking at #56252
17:40 NotFound ?
17:41 cognominal nope, why the question?
17:42 NotFound I'm reviewing that patch, but I don't know how to add a pct test for the condition. Looks related to your question.
17:43 pmichaud we just need to check if scope is empty string
17:47 NotFound Yes, but I'm unable to understand even the existing tests in t/compilers/pct/past.t ;)
17:49 pmichaud I think the tests in t/compilers/pct/past.t just make sure the library loads and other sanity checks.  I don't think they actually exercise pct.
17:49 pmichaud For that we've been using the nqp tests, primarily.
17:49 NotFound That problem apart, the patch looks good and pass all tests.
17:51 NotFound This perl6 one-liner show it: $ ./perl6 -e'say $undefined; ---> Scope not found for PAST::Var '$undefined'
17:52 cotto_work joined #parrot
17:53 pmichaud yes, but if a scope is specified, we should indicate the scope being searched for.
17:55 NotFound I don't read the discussion mentioned in the ticket, but looks like the scope is unspecified.
17:55 pmichaud sometimes the scope is unspecified, yes.
17:55 pmichaud sometimes it's specified.
17:57 NotFound Mmmmm... then it looks like the have_scope branch needs a different handler.
17:57 pmichaud no, we just need a smarter error message
17:58 pmichaud here, I'll fix it.
18:00 dalek r28669 | pmichaud++ | trunk:
18:00 dalek : [pct]:
18:00 dalek : * Fix "Scope not found" error message (RT#56252)
18:00 dalek : * Based on patch courtesy Moritz Lenz <moritz@casella.verplant.org> moritz++
18:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28669
18:03 Zaba what does rt stand for? and does it stand for anything?
18:03 Zaba purl :/
18:04 Whiteknight rt?
18:04 Whiteknight oh, purl quit
18:04 Whiteknight he's the worst
18:04 Infinoid rt.perl.org
18:05 Infinoid Zaba: it stands for Request Tracker
18:06 NotFound http://www.parrotcode.org/resources.html calls it: "Parrot Issue Tracker - The Parrot Bugtracking System". The relation to the RT acronym is not very clear in that page ;)
18:07 pmichaud NotFound: submit a patch?  ;-)
18:07 wknight8111 joined #parrot
18:08 NotFound I need to read the page about web patches first ;)
18:08 pmichaud afk, lunch.
18:09 pmichaud but, before I go... anyone know how to determine if $P0 is a PMCProxy ?
18:09 davidfetter bon appetit
18:09 Ivatar joined #parrot
18:09 pmichaud i.e.,   given   $P0 = get_class <something>   --- I want to know if $P0 is a PMCProxy
18:11 Zaba joined #parrot
18:11 pmichaud (but not a subclass of PMCProxy)
18:11 pmichaud lunchtime
18:14 cognominal bon appétit.
18:15 cognominal French rébus :  Ga.
18:15 cognominal which gives:  G grand a petit
18:16 cognominal that is J'ai grand apétit.
18:18 davidfetter he
18:18 davidfetter +h
18:19 DietCoke pmichaud: $S0 = typeof $P0; if $S0 == "PMCProxy" ...
18:20 DietCoke as opposed to "isa" which will probably tell you if it's a subclass.
18:34 pmichaud DietCoke: yes, that works, but we've had to overload the 'name' vtable entry for P6object
18:34 pmichaud so it's not super-clean.
18:35 Whiteknight joined #parrot
18:44 dalek r28670 | pmichaud++ | trunk:
18:44 dalek : [rakudo]:
18:44 dalek : * Fix problem with 'sprintf' method appearing in wrong namespace.
18:44 dalek : * Oddly, the problem appeared because running 'perl6.pir' gave
18:44 dalek :   different results (an exception) from running 'perl6.pbc'.  I
18:44 dalek :   have no clue why the difference existed.
18:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28670
18:46 jjore joined #parrot
18:53 dalek r28671 | pmichaud++ | trunk:
18:53 dalek : [rakudo]:
18:53 dalek : * Fix ranges on incrementing strings (e.g., 'A'..'BK')
18:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28671
19:16 barney joined #parrot
19:20 Zaba joined #parrot
19:42 cotto_work all of the tests in  t/stm/basic.t are failing
19:48 Zaba_ joined #parrot
19:50 cjfields joined #parrot
19:53 nopaste "cotto" at 131.107.0.101 pasted "test failures with r28671" (15 lines) at http://nopaste.snit.ch/13374
20:12 bacek morning everyone.
20:18 Zaba joined #parrot
20:47 NotFound cotto_work: all test pass for me.
20:49 cotto_work wierd.  lemme try a fresh checkout
20:54 rdice joined #parrot
20:58 pmichaud in gdb, how can I determine the name of a sub (given that I know its PMC address?)
20:59 pmichaud ohhhhhhhhhh shoot.
20:59 pmichaud never mind.
20:59 cotto_work NotFound, all tests pass now
21:00 NotFound cotto_work: did you make a realclean?
21:00 cotto_work yes
21:00 jhorwitz pmichaud: if you happened to find out how to do that, let me know!
21:01 pmichaud I just figured out why lexicals aren't working right for me.  :-(
21:01 pmichaud at least, I _think_ I figured it out.
21:02 pmichaud unfortunately, I have little clue how to fix it.
21:03 pmichaud when compiling perl6.pbc from perl6.pir, perl6.pir does a .include of the various src/gen_*.pir files
21:04 pmichaud this includes the actions and the grammar (gen_actions.pir and gen_grammar.pir)
21:04 pmichaud each action corresponds to a regex in the grammar -- i.e., it has the same name as the corresponding grammar regex
21:04 pmichaud i.e., there are two subs with identical names in the compiled source (although they're in different namespaces)
21:05 pmichaud but when there's a lexically nested sub, as would be the case for any nested blocks within an action method, it simply says :outer('name_of_method')
21:05 pmichaud but in this case, there are two .subs with that name
21:05 jonathan ...it chooses the first one it finds, even if it's from a different namespace?
21:06 pmichaud jonathan: I don't know how it chooses
21:06 jonathan Most likely, the first one. ;-)
21:06 pmichaud but I can definitely demonstrate that _block49 is grabbing the wrong :outer
21:06 pmichaud i.e., it's not getting the :outer it should.
21:07 pmichaud (I don't know what :outer it's getting, but it's not the correct one.)
21:08 ruoso joined #parrot
21:08 NotFound pmichaud: Is that related to the sprintf pbc/pir problem?
21:09 jonathan pmichaud: I've found the bit of code that's doing this - it is, as I guessed, just picking the first one with a matching name, regardless of namespace.
21:10 jonathan if (STREQ(sub->name, unit->outer->name)) {
21:10 pmichaud NotFound: I'm not sure what was up with the pbc/pir problem.  that one was totally bizarre.
21:11 pmichaud I wonder what happens with a :multi ?
21:13 pmichaud jonathan: where's the bit of code located?
21:13 NotFound Maybe the problem is that compiling pir has undesired side effects, like importing things to main or hll namespaces.
21:13 jonathan compilers/imcc/pbc.c
21:13 jonathan Search for find_outer in there.
21:15 pmichaud any quick thoughts about how to fix this?  Or should I just compose a message to the list?
21:15 jonathan Give me ten mins to try and hack something up
21:16 pmichaud okay.  I'm not sure that searching for the same namespace is always the correct solution, either.
21:16 jonathan Yeah
21:16 jonathan I'ts not
21:16 jonathan Hmm
21:16 jonathan Inner namespace?
21:17 jonathan { my $a = 42; class Foo { method x { $a } }; say Foo.new.x
21:17 pmichaud yeah, that's a good example.
21:17 jonathan Right.
21:17 jonathan Is "outer must be in same namespace or an enclosing namespace" good enough or is there a counter-example for this too?
21:18 pmichaud well, I'm still worried about the case of :multi
21:18 pmichaud what I'd really like to do is to be able to give every sub a unique id and then let :outer refer to it, instead of its name.
21:19 jonathan Would it be hard to emit :outer(['The' ; 'Sub' ; 'We' ; 'Want' ])
21:19 jonathan To make explicit to outer exactly which sub we're talking about?
21:19 pmichaud oh, I can emit pretty much anything.
21:19 pmichaud but how do I distinguish one :multi from another?
21:20 jonathan Hmm. Ouch.
21:20 bacek joined #parrot
21:20 pmichaud thus I'd like a unique id
21:20 pmichaud it only has to be unique within a compilation unit
21:20 pmichaud or some other property on a sub that can be set at compile time
21:20 jonathan I think best is to hit the mailing list, I think this needs Allison's input.
21:20 pmichaud then we could search through the list of subs and find the one with the matching property
21:21 pmichaud okay, I'll hit mailing list.  This is a big roadblock for passing lots of tests at the moment.
21:21 pmichaud (and it also affects $_ handling)
21:21 jonathan Ouch.
21:21 jonathan OK, I can look into implementing the solution that is agreed upon.
21:22 pmichaud good.  so far this has only taken up eight hours of my time.  :-|
21:23 pmichaud although I think that I can now write a short test case.
21:25 NotFound pmichaud: as a relax, you can take a quick look at #56262 ;)
21:26 jonathan At least the eight hours led to an understanding of what's wrong.
21:26 pmichaud yes.
21:28 pmichaud NotFound:  I wonder what they mean by "current character set".
21:29 NotFound pmichaud: according to the current state, nothing.
21:36 bacek_ joined #parrot
21:37 NotFound I wrote that ticket because I think the issue must be solved before any other work in strings, charset and encodings.
21:37 pmichaud I think that mandelbrot shouldn't assume that the value coming back is a byte.
21:38 NotFound pmichaud: yeah, but what cab be the correct way?
21:38 pmichaud although it works fine now... so what needs to change in chr?
21:38 NotFound If the opcode must be not changed, his documentation must be.
21:39 pmichaud yes, I think we just get rid of "in the current character set", since there is no such beastie.
21:41 NotFound But if it returns something intended only for plain byte usage, maybe the name 'chr' os misleading.
21:42 NotFound s/os/is
21:42 pmichaud it doesn't return something intended only for plain byte usage
21:42 pmichaud the name 'chr' means "give me the string character corresponding to a codepoint"
21:42 pmichaud and that's what the current opcode does
21:43 pmichaud we might want to have a separate opcode that says "give me a fixed_8 string with this byte/these bytes"
21:43 pmichaud although that sounds like a method/function to me.
21:43 japhb +1 on the method/function version
21:43 pmichaud i.e., not every operation needs to be an opcode.  :-)
21:43 japhb I don't see that that operation warrants an opcode
21:44 japhb But it can still be useful for ... OpenGL.  Because dangit, everything comes back to that.
21:44 japhb :-)
21:45 japhb (A typical way an OpenGL application would display a string in a given (western) font is to use special entry points that look up every byte in a string in an array of instructions of how to draw each character)
21:46 japhb Of course, there are two-byte and four-byte variants, but I'm not sure that most OpenGL variants will handle them efficiently.
21:46 NotFound I'm not sure, maybe the way to go is to drop the charset specification in strings, asserting that the charset is always unicode and different encodings for it.
21:47 pmichaud I think that pdd28 might already do something like this.  I haven't read it in great detail.
21:48 NotFound pdd28 looks very confusing to me.
21:51 NotFound "Parrot was designed from the outset to support multiple string formats: multiple character sets and multiple encodings. We don’t standardize onUnicode internally, converting all strings to Unicode strings..."
21:51 moritz nothing wrong so far, IMHO
21:52 NotFound This is the part that can be changed: we can standarize on unicode charset without converting to a certain encoding.
21:54 GeJ joined #parrot
21:55 japhb NotFound: explain how this works in more detail, please ... my immediate reaction was "How will that mess with strings that contain non-standard characters" and "What exactly does it mean to standardize on a charset without an encoding?  Just that 'any Unicode encoding, but no non-unicode encoding'?"
21:56 moritz NotFound: that would imply handling byte data as non-strings
21:57 moritz NotFound: and it relies on the perception that all encodings are unicode compatible (ie you can have lossless round-trip conversions). Don't think that's the case, actually
21:57 japhb moritz: I agree with your thinking on the latter comment.  On the former comment, has Parrot addressed Perl 6's Buf/Str dichotomy yet?
21:58 NotFound japhb: the intention will be to make impossible the existence of a string with non-standard characters.
21:58 japhb (It happens that I'm about to face this problem with my OpenGL stuff, for at least the NCI portions of the problem)
21:58 japhb NotFound: In that case, we very much need to have a parallel set of operations on opaque buffers.
21:59 moritz japhb: I think it's addressed in the charset pdd, but it's a long time since I last read it
21:59 pmichaud part of the point of pdd28 will be to provide a fixed-width encoding for most of Parrot's strings.
22:00 moritz pmichaud: for those that are considered unicode, right?
22:00 NotFound japhb: we already have that, the latin-1 is used in that way.
22:00 japhb And again, I agree with moritz that Unicode does not imply lossless round-trip to any other charset.  In particular: what about current Unicode and *the next release of Unicode*.  Such a round trip could not be lossless without relaxing the stricture.
22:00 pmichaud moritz: I don't know that we're limiting that statement to unicode
22:01 NotFound japhb: but we don't need that, all that is needed is a mapping to any other charset, from unicode, that is, take it as an encoding.
22:01 NotFound s/from/to
22:01 moritz pmichaud: ok, makes sense - I'm just not really familiar with non-unicode charsets
22:02 pmichaud I don't know that parrot plans to natively support much beyond the unicode charset
22:02 pmichaud (other charsets might be available via libraries, though.)
22:02 NotFound By the way, pdd28 states wrongly that utf16 is fixed length.
22:02 japhb NotFound: so let's say you're working on the next (as yet unreleased) version of the Unicode standard, using Parrot.  How would you do that?  How would you encode characters from a future version of Unicode, that aren't standardized in the version of Unicode that your Parrot was built to support?
22:02 pmichaud that's worth a message to the list.
22:02 moritz that is incorrect indeed
22:03 moritz ucs2 is fixed width, but it's nto a complete unicode encoding
22:04 NotFound japhb: what the current code does is to let the work to external libraries for certain operations, that does not need to be changed.
22:05 japhb NotFound: that assumes A) that we guarantee said external libraries to exist in all Parrots (at least starting at Parrot 1.0), and B) Their edge case behavior is the edge case behavior we want.
22:06 japhb (And I don't know the plans on either)
22:09 NotFound But we don't need a complete support in the lower levels, we just need to be sure to not put obstacles to it. The current state have a lot ot them.
22:11 moritz NotFound: it's the old "flexibilty vs. quick (partial) success" discussion
22:12 moritz NotFound: many perl 5 hackers know the pain that a broken string concept implies, and try very, very hard to provide a solid, general solution
22:12 NotFound For example, even if many people may want to be able to write identifiers in his native language, surely to expect that subroutine lookups will take into account all case, normalizations and composed stuff is too much.
22:12 moritz NotFound: so the goal is to have a really flexible system, although it will take some time to implement (and other approaches could be quicker, but probably not as general)
22:13 moritz NotFound: re "is too much" - why? because no other language does it currently?
22:14 moritz it's at least a good idea to have the hooks in place - for example the perl 6 regex engine needs all that magic anyway
22:14 moritz and to do it fast, it has to be done at the low level, which means in parrot itself
22:14 apeiron_ joined #parrot
22:15 pmichaud indeed, this is one of the big reasons I chose to write the regex engine in PIR instead of C -- I wanted to leave the unicode and string handling to Parrot.
22:15 moritz and once you have all that stuff, you can just as well use it for sub calls on the PIR level
22:15 NotFound moritz: it can be done, but it implies to have all unicode information available inside the interpreter.
22:15 kid51 joined #parrot
22:15 pmichaud Parrot is expected to understand unicode, yes.
22:15 pmichaud Currently it does this by linking to ICU; that may or may not be the permanent solution.
22:15 moritz NotFound: well, that can lazily be loaded - if it's not needed, it doesn't need to be loaded
22:16 Theory joined #parrot
22:16 pmichaud right now for systems w/o ICU I've been doing small workarounds in the unicode.c file.
22:16 pmichaud (the hard one to manage is case conversion.)
22:16 NotFound pmichaud: and as you said before, too much hacks makes difficult to fix things later.
22:17 pmichaud that's not exactly what I said.  :-)
22:17 pmichaud I said that hiding the bugs makes it difficult to find and fix them later.
22:17 pmichaud in this case the workarounds are fairly explicit, and all conditioned on the HAVE_ICU flag.
22:17 moritz rm unicode.c # reveal all unicode related bugs related to not having ICU
22:17 pmichaud and they aren't really workarounds as much as providing missing functionality.
22:19 nopaste "pmichaud" at 76.183.97.54 pasted "finally(!) able to reproduce the lexicals bug." (63 lines) at http://nopaste.snit.ch/13376
22:21 NotFound Well, I don't have a strong opinion about the issue of dropping the charset part, but I'm almost sure that the strings, charsets and encodings needs more clarification before having a lot of 'legacy' issues.
22:23 pmichaud away from irc for a bit while I compose a long :outer message.
22:24 ank joined #parrot
22:37 Limbic_Region joined #parrot
22:38 Limbic_Region Hey, is perl6.exe building for anyone else using Win32/Cygwin?
22:39 Limbic_Region it is still working fine in Win32/MinGW but Cygwin blows up - not sure if it is a known issue as I haven't been following things for the last few days
22:42 japhb Limbic_Region: Would you mind testing a cygwin patch for OpenGL for me?
22:43 bacek joined #parrot
22:43 Limbic_Region japhb - if it doesn't require me to think - I am brain dead
22:44 Limbic_Region oh, and for anyone interested in the Cygwin build issue of perl6.exe - I can zero in on the build that broke it if it would help (anyone?)
22:44 japhb I don't think it does, assuming you have OpenGL set up for cygwin ... it's the June 18 patch (the later one) attached to RT #55978 ( http://rt.perl.org/rt3/Tic​ket/Display.html?id=55978 )
22:46 Limbic_Region checking if I have OpenGL or not - I think I did earlier for some cool colored box demo
22:46 Limbic_Region but I don't use it regularly
22:46 japhb nodnod
22:47 Limbic_Region ok, I have it - not current, but it worked at one time
22:47 Limbic_Region should I update or test with what I have?
22:47 japhb Another cygwin user created the first version of the patch, but chromatic asked for changes, and I haven't been able to get a cygwin user to test the fixed version of the patch.
22:48 japhb I don't think it really matters ... as long as you have the header files installed (gl.h and glut.h)
22:48 Limbic_Region I am fairly sure either particle or jonathan have cygwin too - but they don't admit it
22:48 japhb heh
22:49 Limbic_Region ok - which patch am I applying and then what am I doing to test/verify?
22:49 japhb parrot-opengl-cygwin-2008-06-18.patch
22:50 Limbic_Region duh
22:50 Limbic_Region I see that now
22:50 japhb You should be able to Configure, make, and then run:
22:50 japhb ./parrot examples/opengl/triangle.pir
22:50 japhb and
22:50 japhb ./parrot examples/opengl/shapes.pir
22:50 Limbic_Region give me a few
22:50 japhb (And not have them explode, but rather display something)
22:50 japhb np
22:50 japhb thank you!
22:51 * moritz observes again that windows sucks as a development platform
22:52 moritz when I first switched to linux I was disappointed by many things - but I coud just run gcc $file without worrying too much about pathes and stuff
22:52 moritz it just worked
22:52 bacek joined #parrot
22:52 kid51 joined #parrot
22:53 japhb Linux (especially linux/386) is remarkably forgiving to coders.  Enough that porting from that to anything else is just a world of hilarity.
22:53 japhb "All the world is not a VAX."
22:53 teknomunk joined #parrot
22:54 bacek morning everyone
22:55 Limbic_Region moritz - Win32 doesn't suck as a development platform if you are developing for Win32 - it has a very self-centric view of the world
22:55 Limbic_Region moritz - but I think the same could be said of *nix
22:56 moritz Limbic_Region: it sucked for me before I even knew about linux - but maybe that was just me ;-)
22:56 * japhb glares at glGetString, and then says in the Darla voice from Finding Nemo, "WHY ARE YOU NOT WORKING?!?"
22:56 Limbic_Region moritz - well, unless you are a .NET or C# developer - downloading MS's devloper toolkit - MSVC++ etc - you are hosed
22:57 Limbic_Region Darla - you mean Dory?
22:57 japhb Darla, the "Fish Killer" girl with braces
22:57 Limbic_Region oh, yeah
22:57 Limbic_Region <---------- brain dead
22:57 Limbic_Region parrot is building now
22:57 japhb cool
22:58 Limbic_Region after that, I will isolate what build caused perl6.exe to stop building on Cygwin
22:58 japhb nod
22:59 Limbic_Region triangle.pir works and is cool
22:59 japhb yay
22:59 japhb and shapes.pir?
23:00 * Limbic_Region is still mesmerized
23:00 Limbic_Region yes, very cool
23:00 japhb excellent
23:00 japhb Thank you muchly.
23:00 moritz Limbic_Region: I was talking about the ol' days where you couldn't download MSVC++ for free
23:00 jimk joined #parrot
23:00 Limbic_Region moritz - yeah.  I don't develop on Win32 myself but I was making a similar comment to one of the BizTalk developers in my shop
23:01 Limbic_Region he looked at me like I was speaking a foreign language
23:01 Limbic_Region he then proceeded to tell me how wrong I was
23:01 moritz ;)
23:01 Limbic_Region and I realized, if you take a M$ point of view, it is a perfect development platform
23:01 * moritz would like to continue this dicussion, but has to go to bed :/
23:01 Limbic_Region japhb - you should apply that patch - very cool
23:02 Limbic_Region sleep well
23:02 japhb Limbic_Region: working on it.
23:02 Limbic_Region isn't parrot -V supposed to report the build rev?
23:07 dalek r28672 | japhb++ | trunk:
23:07 dalek : [OpenGL] Better cygwin support, courtesy of donaldh++
23:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28672
23:07 japhb I thought that went away because of problems with non-SVN developers
23:21 Limbic_Region *shrug* - was just trying to figure out what rev I was at to get a starting point for the binary search
23:21 Limbic_Region it appears that perl6.exe failed somewhere between 28575 and 28600
23:21 Limbic_Region but I need to double check that
23:21 Limbic_Region since I did a realclean in languages/perl6
23:22 Limbic_Region it may have just been a cleanup issue
23:22 * Limbic_Region further investigates
23:27 Limbic_Region yep, I am pretty sure all it needed was a realclean in languages/perl6 - I wonder if that's the issue OS X 10.4 PPC
23:28 jimk Limbic_Region:  No, I'm very diligent about doing make realclean.  Problem is that until now I have rarely gone into the languages directories and called 'make perl6' -- particularly on my slow iBook.
23:30 Limbic_Region ah
23:30 Limbic_Region I hadn't followed the thread - as I am not an OS X
23:30 Limbic_Region user
23:34 Limbic_Region japhb - if there are any pending cygwin patches, email me the RT IDs - Joshua.Gatcomb@gmail.com
23:35 japhb Limbic_Region: I don't think there are any more from me.  Checking ...
23:35 Limbic_Region I just meant in general
23:40 japhb ok
23:42 Limbic_Region I like to contribute in whatever way I can since I don't actually develop code
23:43 Limbic_Region if that means testing patches because everyone else is sane enough not to use cygwin, then so be it
23:50 cjfields joined #parrot
23:51 cjfields_ joined #parrot
23:57 japhb Limbic_Region: :-)
23:58 japhb Limbic_Region++ # Taking one on the chin for the rest of us
23:59 Theory joined #parrot

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

Parrot | source cross referenced