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