#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
Set by moderator on 17 April 2008.
07:48 irclogbot joined
moderator #parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
07:55 moritz joined 08:16 Zaba_ joined 08:32 ruoso joined 08:40 IllvilJa joined, mj41 joined 08:46 Zaba joined 09:13 wknight8111 joined 09:26 Psyche^ joined
dalek r27115 | fperrad++ | trunk: 09:58
: [gettext]
: - fix build on MinGW32
: - more consistent with gmp.pm and others
diff: www.parrotvm.org/svn/parrot/revision?rev=27115
10:33 kid51 joined
kid51 Does anyone know what packages are needed to install OpenGL on Debian Linux? 10:34
Zaba what do you mean by installing OpenGL?
kid51 Installing it such that configuration steps auto::opengl and gen::opengl detect it and work it into Parrot -- as we've been doing the past several days. 10:36
We established that OpenGL "comes with" Mac OS X -- so I've used it successfully on my iBook. But I tried to do so yesterday on an Ubuntu box and failed to get to the spinning triangle. 10:37
When I did apt-cache search opengl, many selections came up but it wasn't entirely clear what packages I needed to add for this purpose. 10:38
Zaba you need opengl headers, I think
well and of course drivers appropriate for hardware which provide libGL, which you most likely have already. 10:39
/bin/sh: line 1: 6886 Segmentation fault ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc 10:41
hmm, works after make clean 10:46
(as usual)
rotty kid51: apparently, you need at least mesa-common-dev (as this contains GL/gl.h) 10:50
tetragon kid51: freeglut-dev is a package that provides the required header 10:52
kid51 Thanks. 10:53
tetragon: Just got an error on Mac similar to the one you posted in 53170. I just posted my build log. 10:56
tetragon I'm abot to test the patch 10:57
Zaba hmm 11:04
in perl6, are there exception objects? 11:07
tetragon kid51: I got r27101 to build with chromatic's patch 11:10
Zaba hmm 11:18
Zaba runs rakudo on spec test 11:19
tetragon kid51: It built, but I got the same crash during test 11:20
kid51: t/op/sprintf.t test 174 is crashing with chromatic's patch 11:23
11:24 Zaba_ joined
tetragon looks up where to set the watchpoint 11:27
Zaba rakudo is not very good on spec tests so far, it seems.. 11:30
Zaba would really like to contribute if he just knew how to code in pir properly 11:31
dalek r27116 | fperrad++ | trunk: 11:35
: [digest]
: - rename gen::digest to gen::crypto
: - add tests for gen::crypto
: Courtesy of kid51
diff: www.parrotvm.org/svn/parrot/revision?rev=27116
kid51 Zaba: You're not alone in that! 11:47
Zaba I mostly code perl5 myself
kid51 me too; it meets all my personal and day-job needs 11:48
Zaba what puzzles me is that there are so much ??s in failed tests list
kid51, though I really like perl6 from what I read about/in it
kid51 Which failed tests lists? Those for parrot, or those for perl6?
Zaba perl6, spectest 11:49
kid51 I only began to go into languages/perl6/ recently, so I mostly don't know what I'm talking about. But I think that most of those tests were imported from the now-suspended Pugs project. So we expect to have many failures there as yet. 11:50
Zaba yes, there are many
but only few actually state total tests/which of them failed
kid51 Unlike the Parrot tests, where if we have a failure (e.g., the one tetragon just reported), it needs immediate attention.
Zaba perl6 mostly fails with 'syntax error's on those pugs tests 11:51
kid51, so was pugs officially suspended and is no more being worked on?
pmichaud (explanation of '??') if there's a "syntax error" in a test, then we can't run it to find out how many tests there are, thus ?? gets reported. 11:56
where "syntax error" can mean either that it's really an error or that rakudo simply doesn't know how to parse that particular construct yet
Zaba seems like it was mostly rakudo 11:57
pmichaud sure, that's probably the case
Zaba for example, "}\\n\\n{" seems to have confused it in some of those tests
pmichaud but yes, if a file has a syntax error in it, we never even get to see the "1..23" that tells us there are 23 tests that were supposed to run.
Zaba I see.
pmichaud however, given the new fudge and test organization, we really ought to be able to drastically reduce the ??s 11:58
Zaba sounds quite good :>
pmichaud so this is a very useful observation
Zaba { say "test"; } { say "moep"; } 11:59
pmichaud that's not valid Perl 6
Zaba this is not a valid perl6 code, is it?
but with a semicolon there between } and { it is, right?
pmichaud yes.
Zaba so sub { something } more code requires a semicolon after } in perl6 too, right? 12:00
pmichaud if it's being followed by something on the same line, yes 12:01
sub foo { something } \\n { say "bar"; } # ok
sub foo { something } { say "bar"; } # error 12:02
sub foo { something }; { say "bar"; } # ok
Zaba I see.
that makes perfect sense.. more sense than perl5's way even 12:03
does rakudo implement type checking currently?
kid51 pmichaud: At our buildfest in NYC last week, someone who got to Hello World asked, "So where do I find the Perl 6 syntax?" -- and I didn't have a quick answer.
pmichaud kid51: closest answer at the moment is the synopses, I think 12:04
Zaba: rakudo has limited support for type checking -- jonathan's been adding it
Zaba pmichaud, limited in what?
Coke tetragon: "make -j2" should work. If you find that a "make" works when "make -j2" don't, open a bug ticket. 12:05
pmichaud limited in that it doesn't quite work everywhere, and some constructs it doesn't understand yet 12:07
for example, I don't know if it understands things like Dog|Cat yet
tetragon Coke: I haven't found that -j2 affects anything except backscroll readablilty 12:08
GeJ tewk++ 12:12
I was trying to create some bindings this week-end for some Enlightenment library and spent a couple of hours how to create the dlfunc calls. 12:14
kid51 to $job 12:15
GeJ ncigen seems really interesting. 12:16
Zaba ncigen? 12:20
12:22 wknight8111 joined 12:24 tetragon joined
GeJ code.google.com/soc/2008/perl/appin...7990EB6EC1 12:38
shorten GeJ's url is at xrl.us/bjons
wknight8111 seen chromatic 12:45
purl chromatic was last seen on #parrot 3 days and 9 hours ago, saying: Nice work. [Apr 18 21:01:53 2008]
12:50 shamu joined 12:51 contingencyplan joined
dalek r27117 | fperrad++ | trunk: 12:58
: [digest]
: - allows SHA256 & SHA512 when OpenSSL 0.9.8
diff: www.parrotvm.org/svn/parrot/revision?rev=27117
Infinoid msg kid51 packages.ubuntu.com/freeglut3-dev (if you haven't already sorted that out) 12:59
purl Message for kid51 stored.
13:01 bpphillips-1 joined
Coke Infinoid: another patch for you regarding the ops syntax : rt.perl.org/rt3/Ticket/Display.html?id=52570 13:01
13:02 jhorwitz joined
Infinoid Aaw, for me? You shouldn't have. 13:05
Coke =-0 13:09
er, =-)
Infinoid I think this has been an especially volatile week for parrot development
lots of big changes, lots of stuff going on
Coke While I disagree, I let it accept ":flag1:flag2" for now. I just happened to write them all with the space.
For the first time in some time, I had to resolve a conflict on that patch, so yah. =-) 13:10
Infinoid patch fails to apply cleanly, rejects hunks in src/ops/pmc.ops and src/ops/debug.ops, even with r27116 (the rev the patch was apparently generated from)
but I'm still able to read through the patch
I like it. 13:11
13:15 skids joined 13:16 sjansen joined
Coke I may need to re-up. 13:20
Infinoid the only addition I'd consider is making $flags a hashref populated by the parsing code, and using exists($flags{pic}) instead of regexes 13:21
seems cleaner, and makes things look more like pmc2c.
Zaba Infinoid, that indeed looks cleaner 13:23
Infinoid well, exists($$flags{pic}) or exists($flags->{pic}) if you prefer... whatever. 13:25
Coke Infinoid: I think that can go in as a separate patch. 13:30
Infinoid agreed 13:32
Zaba hmm 13:34
some crypto tests fail here
(parrot)
Coke the failures are just copyrights. 13:42
Zaba t/codingstd/trailing_space.t 1 256 1 1 1 13:45
t/steps/auto_crypto-03.t 5 1280 17 5 10-12 15-16
hm 13:46
there's some trailing whitespace in config/gen/crypto.pm line 72
Infinoid fixes that 13:48
dalek r27118 | infinoid++ | trunk: 13:50
: [digets] Remove some trailing whitespace introduced by r27117.
: Zaba++ for reporting it.
diff: www.parrotvm.org/svn/parrot/revision?rev=27118
Zaba and about crypto.. mhm
I assume the problem's on my side 13:51
Infinoid not necessarily. r27117 changed crypto
13:53 iblechbot joined
Zaba shall I pastebin prove -v output? 13:53
13:54 Andy joined
Coke ... DOH. 13:54
I'm trying to figure out why that file is showing binary. the mime type is "plain/text"
dalek r27119 | coke++ | trunk: 13:57
: The mime type is 'text/plain', not 'plain/text'
: (ugh, do we need to update the file_metadata test?)
diff: www.parrotvm.org/svn/parrot/revision?rev=27119
14:00 ccube joined
Coke wonders what mime type "text/script" is supposed to be. 14:21
14:26 ambs joined
ambs seen alias 14:27
purl alias was last seen on #perl 7 hours and 54 minutes ago, saying: job done
ambs seen merlyn
purl merlyn was last seen on #moose 32 days and 16 hours ago, saying: ... methodsandmessages.vox.com/library/...ltalk.html [Mar 20 15:09:20 2008]
14:29 rdice joined
dalek r27120 | coke++ | trunk: 14:41
: A file of type "plain/text" (instead of text/plain)
: was added to the repo recently, confusing svn
: into thinking it was binary.
: Test for this by checking all the mime types (which we already had to do
: anyway..) against an explicit list of those we allow... which is basically
: all the sane types I found in the repo.
: Remove the one remaining obviously wrong file type this exposed.
diff: www.parrotvm.org/svn/parrot/revision?rev=27120
r27121 | coke++ | trunk: 14:47
: [codingstd] Nothing to see here, move along.
diff: www.parrotvm.org/svn/parrot/revision?rev=27121
15:05 mj41 joined 15:15 jalbo joined
jalbo Hello. 15:16
Coke jalbo: hio 15:19
Tene jalbo: hi 15:21
15:23 gryphon joined 15:28 Theory joined
Zaba hmm 15:31
t/distro/file_metadata.t 2 512 5 2 3-4
rafb.net/p/xLNi9D82.html 15:32
jalbo I'm having same error.
Zaba seems like some svn attributes are messed.. 15:33
Infinoid just fixed that :)
dalek r27122 | infinoid++ | trunk:
: [tcl] Fix file metadata for pkgIndex.tcl.
diff: www.parrotvm.org/svn/parrot/revision?rev=27122
nopaste "Infinoid" at 96.238.213.50 pasted "crypto failures on linux/amd64" (36 lines) at nopaste.snit.ch/12760 15:34
Infinoid Zaba: are those the same failures you are seeing?
Zaba wait
jalbo Doing testing now...
Zaba too
Infinoid, yes, exactly 15:35
Infinoid hmm. not actually a failure in crypto, just in the config tests for crypto
oh, and r27118 =~ s/digets/digest/ 15:36
jalbo No, I was still in previous build, updating now. 15:37
Coke Infinoid: what change did you make there? 15:38
as I just ran that test locally and got no errors pre commit. 15:39
Infinoid Coke: I followed the advice given by file_metadata.t:
svn ps svn:keywords "Author Date Id Revision" languages/tcl/library/msgcat/pkgIndex.tcl
svn ps svn:eol-style native languages/tcl/library/msgcat/pkgIndex.tcl
particle iirc those don't fail until the file has been committed 15:40
Infinoid I've noticed that file_metadata.t ignores my new files unless I update MANIFEST first
Coke That's not a new file.
Infinoid well, I don't know then
Coke particle: odd, because svn pg should return the *local* values, and therefore should fail.
Infinoid particle: mk_manifest_and_skip.pl will cause it to start noticing your files without having to commit 15:41
I've been doing that for the new stub pmcs I've been adding to the pdd13pbc branch, and it's been working well.
Coke I'm not sure that's the right fix for files that are copied wholesale into the repo, but I'm pretty sure that one isn't going to matter, so nevermind.
particle when's the oscon hackathon? weekend before, or after?
Coke (the patch to .tcl)
Infinoid: thanks for the cleanup
Infinoid np, nice that the test told me what to do :) 15:42
pmichaud oscon hackathon (if any) is after oscon, iirc 15:43
before oscon is too difficult to arrange with other oscon events 15:44
(at any rate, I can't make it before oscon, as I'll be vacationing in northern calif and oregon :-)
Infinoid pmichaud: if you come through the Lake Tahoe area, I'll buy you a beer. 15:45
hmm. maybe codingstd/distro tests which know how to fix it (like file_metadata.t and trailing_space.t) should have an option to do so. t/codingstd/trailing_space.t --cleanup
t/distro/file_metadata.t --jfdi 15:46
jalbo Updated to 27122, no metadata errors now. 15:47
t/steps/auto_crypto-03.t (Wstat: 1280 Tests: 17 Failed: 5) 15:48
Failed test number(s): 10-12, 15-16
Non-zero exit status: 5
pmichaud Infinoid: mmmm, Lake Tahoe. So far we not going quite that far east.
Infinoid fair enough. its not the most convenient place to drive to
pmichaud but it's awful pretty when you get there :-)
Coke Infinoid: I'd rather not have it do that. If we're going to do that, let's move to commit hooks. 15:49
Infinoid Coke: even better :)
pmichaud I just wrote a short shell script that fixes metadata settings 15:50
so when file_metadata.t carps, I just invoke the shell command to fix it :-)
Infinoid file_metadata.t is nice for giving you the commands you need to run 15:55
unfortunately, the trailing space and tab tests require manual editing, and I guess I'm just lazy.
particle we can employ perltidy and a 'make tidy' target 15:56
and obtw why don't you write pirtidy while you're at it
we already have a parser, in languages/pir 15:57
16:02 slightlyoff joined
Infinoid eh. a simple s/\\s+$//; s/\\t/ /g is sufficient 16:03
Coke there is a pirtidy.pl already. 16:11
(but it's written in perl, not PIR0 16:12
wknight8111 does it need to be written in PIR? 16:17
particle no 16:32
*but*
it'd be nice to have something that can take a parse tree and spit out re-formatted source
given a ruleset, for *any* hll
it could be written in nqp 16:33
cognominal should that mean annotation convention for the grammar? 16:39
like "is indent" or "has indent" 16:40
particle i'd like to have a library, written in nqp or pir, which takes rules (like perltidy) and applies them to a parse tree generated from PCT 16:41
so, that means it could be used for ruby, js, perl 6, etc
Infinoid "does prettyprint"
or maybe that's something else
particle so is, has, does are all at the language's syntax level 16:42
that's not something i care about *yet*
but certainly could be useful in perl 6 to specify somehow
cognominal hum can we derive a grammar without changing rules but adding 'deparsing rules' annotations 16:43
particle as long as there's a way to store them in the parse tree, yes
then use an action file to emit the prettified source
cognominal btw, I am working on a parsing tree trimmer to make the parsing tree shorter and more readable 16:44
160 line for a 27 chars programs does not make it very useful grammar debugging tool. 16:46
particle nice 16:48
who made a mess of the imcc parser? 16:54
lots of warnings 16:55
Infinoid I regenerated imclexer.c a few days ago 16:57
16:58 Zaba joined, chromatic joined
nopaste "particle" at 24.19.3.148 pasted "messy imcc parser warnings" (43 lines) at nopaste.snit.ch/12761 17:00
"jalbo" at 213.96.228.50 pasted "Drop :const in isa and getclass, rt.perl.org/rt3//Public/Bug/Display...?id=53066" (153 lines) at nopaste.snit.ch/12762 17:02
jalbo I'm testing this changes, all tests pass here.
Infinoid is that new? imcparser.c hasn't been touched in a while 17:05
particle i don't know, i haven't built parrot in a while 17:06
compilers\\imcc\\instructions.c(141) : error C2059: syntax error : '}'
it could be that i'm noticing it only because my build failed shortly afterwards 17:07
i don't think c likes having empty curly brackets 17:08
17:08 cjfields joined
particle coverity... what's going on with that lately? 17:28
chromatic No scans since mid-February. 17:29
I've sent David a few messages here and there, but haven't heard back.
17:30 sjansen joined
Coke particle: c c or c chromatic? 17:31
particle ok, as long as somebody's on top of it 17:33
chromatic I'm on top of the big nothing happening anyway.
particle i know i can count on you. 17:35
care to fix my build?
Coke anyone aside from Infinoid have feedback on the ops syntax update?
pmichaud I haven't been following it closely, but :flag1 :flag2 is my preference 17:36
Coke in general, no one seems to complain about having to not write goto NEXT(); =-) 17:37
wknight8111 where can we get more information about the update? I haven't read anything about it
chromatic particle, what's your build problem? Is it the same as tetragon's?
Coke wknight8111: mailing list: :"[PATCH] Simplify ops syntax" 17:38
wknight8111 thanks coke
Coke it's a minor thing. i figured if it was hated, someone would have spoken up.
particle compilers\\imcc\\instructions.c(141) : error C2059: syntax error : '}'
chromatic Hm, an empty array initializer. 17:40
pmichaud oh, that's mine.
I did that when removing restoreall/saveall
particle ah. that's who i should blame
pmichaud I'll fix it... just a sec. 17:41
chromatic You can delete more code in there. Nice.
pmichaud well, I didn't want to get rid of it entirely in this case
in case we ever re-introduce an opcode that needs special handling and is of the 'read' sort.
otoh, if we wanted to get rid of cleari, clearn, clearp, clears then this might be a good time to do it :-) 17:42
dalek r27123 | jkeenan++ | trunk: 17:44
: Temporarily disabling tests in response to Mark Glines' report of test failures in rt.perl.org/rt3/Ticket/Display.html?id=53126.
diff: www.parrotvm.org/svn/parrot/revision?rev=27123
Infinoid Zaba++'s report, actually. I'm just a routing protocol. 17:45
chromatic pmichaud, I meant the loop over reads.
pmichaud right, I was planning to leave it there in the code. But I'll comment it out.
chromatic Why comment it out? It's dead code. 17:46
pmichaud it might come back if we get another special "read" op?
chromatic Is that likely?
pmichaud I hope not. But I guess we could eliminate r_special as well, then? 17:47
(just looking into that)
chromatic Looks like it.
pmichaud so, we'd just be left with w_special then for the clear[isnp] ops. Sounds good to me. 17:48
pmichaud grabs his trusty Acme Code Ripper (TM)
removing r_special does seem to rip out a fair amount of code 17:50
I'll do it in two stages -- one to get code compiling again, another to do a more thorough cleaning.
chromatic Perfect. 17:51
purl if it seems perfect, your understanding is less than perfect.
chromatic One fewer global in IMCC is also very good.
cognominal Coke: "anyone aside from Infinoid have feedback on the ops syntax update?". Are these flags yet used anywhere. If yes were?
Coke cognominal: I'm adding in :flow; the only other one I see in use is :pic
pmichaud (just a rebuild and make test away from committing.)
Coke cognominal: mainly trying to add :flow, not remove other dead flags. 17:52
cognominal I don't say they are dead, I ask if they are used yet.
I see their use for a restricted parrot. 17:53
particle coke: after i build parrot successfully based on patrick's fix, commit it and i'll test
the security pdd is on the list of things todo
17:55 ambs joined
cognominal well, in the mean time there is obvious stuff like a restricted parrot cannot open files and sockets 17:55
Infinoid is that something I'll have to care about, for the new .pbc file writing code? 17:56
chromatic No.
Infinoid great.
dalek r27124 | allison++ | trunk: 17:57
: [pdd] Add interface specification to Strings PDD.
diff: www.parrotvm.org/svn/parrot/revision?rev=27124
r27125 | allison++ | trunk: 17:58
: [pmc] Correcting bad documentation in the String PMC found while working on the
: Strings PDD.
diff: www.parrotvm.org/svn/parrot/revision?rev=27125
17:59 allison joined
mj41 hi, does anybody use tt.perl6.cz/ ? or is it still useless? :-) 18:01
18:02 ambs joined
pmichaud re-testing... ran into a test failure (svn up hopefully fixes it) 18:02
dalek r27126 | allison++ | trunk: 18:04
: [pdd] Removing obsolete documentation from datatypes PDD, since the updated
: content exists in other PDDs.
diff: www.parrotvm.org/svn/parrot/revision?rev=27126
pmichaud particle: r27127 18:05
dalek r27127 | pmichaud++ | trunk:
: [imcc]:
: * Fix empty const array introduced by removing saveall/restoreall.
diff: www.parrotvm.org/svn/parrot/revision?rev=27127
particle rebuilds
pmichaud someone want to double-check me.... is the "ins_reads2" function in instructions.c actually *used* anywhere? 18:06
oh, I found it. 18:07
okay.
oh, no I didn't. back to earlier question.. is it actually *used* anywhere?
aha. It's not used anywhere because I dead-code removed it last night. 18:08
cool, more ripping. :-)
chromatic Always nice.
pmichaud hmmm, that's not it. checking more. 18:10
looks like that function was never called.
18:11 barney joined
dalek r27128 | allison++ | trunk: 18:13
: [pdd] Launching the Strings PDD out of draft.
diff: www.parrotvm.org/svn/parrot/revision?rev=27128
18:16 Ivatar joined
particle parrot's failing a lot of tests now 18:21
chromatic Did you make realclean recently? 18:23
dalek r27129 | pmichaud++ | trunk:
: [imcc]:
pmichaud there was a PBC_COMPAT update last night as a result of eliminating saveall/restoreall
dalek : * More dead code removal. The ins_reads2 function is never called,
: so we get rid of it and the r_special array.
diff: www.parrotvm.org/svn/parrot/revision?rev=27129
Infinoid All tests successful here on r27127 18:24
Infinoid does it again
pmichaud all tests successful here on r27129.
chromatic #ps in 3 18:27
particle Failed 45/580 test scripts. 216/11212 subtests failed. 18:30
ambs particle, what arch? 18:32
Coke guesses winders.
particle msvc
ambs Coke, yeah, I guessed that as well after asking
Coke chromatic: that's not quite what I meant, but by all means, you can lead this dance. =-)
watch out, I will CRUSH your toes if you're not careful. 18:33
chromatic I'm actually a good dancer.
Well, okay. Adequate.
ambs yay! 18:35
/bin/sh: line 1: 8911 Segmentation fault ./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
Coke ugh, I hate that error.
chromatic is this after a make realclean?
Coke (if so, did you build with -j ?) 18:36
18:36 davidfetter joined
ambs chromatic, not yet. doing it now 18:36
Coke .flanders! 18:37
chromatic Yeah, if PBC files depended on PBC_COMPAT we might be able to avoid this somewhat.
Coke generated PBC file? I can do that. 18:38
(and static ones as well.)
Infinoid (we have static PBC files?)
chromatic the native PBC tests
Coke we're skipping those atm, neh? 18:39
chromatic Yeah, too much PBC_COMPAT churn.
Ivatar hmm, I had problems with miniparrot yesterday... seems to be fixed now.
chromatic I was getting sick of fixing them for kid51.
ambs and yes, make clean solved it
nopaste "particle" at 24.19.3.148 pasted "win32 build output and test failures (long)" (5856 lines) at nopaste.snit.ch/12763
Infinoid I suppose I'll have to update those when I change the .pbc file format
Coke now that "make -j" works, perhaps we can address the next level of "why do I have to make realclean". 18:40
ambs hehehe
Coke (one of which is the generated pbc fils.)
chromatic s/one/most/
Coke pmichaud: if you record it on my voicemail I can transcribe it for you. =-)
ccube Why is the Array class a subclass of ResizablePMCArray instead of the other way around?
pmichaud Array is fixed size 18:41
it's easier to create a fixed size object from a variable-sized one than vice-versa :-)
Coke I don't think it used to be that way, diddit?
chromatic As long as I can remember, so at least ten minutes.
ccube So to check for a container I need to isa against ResizablePMCArray instead of Array
pmichaud better is probably "does array" 18:42
Coke array.pmc's pmcclass doesn't extend anything.
pmichaud as opposed to isa. there might be multiple container base classes, as opposed to one master one.
ccube From a pedagogical standpoint the more fundamental class should have a more fundamental name
Coke RPA extends FPA which doesn't extend anything.
ccube Call what is currently ResizablePMCArray Array, and call Array FixedArray 18:43
Coke ccube: can we argue about one thing at a time? easier for us old timers. =-)
array does not subclass RPA, that I can see.
ccube Well what is a better way to check if can create an iterator on a given PMC? 18:44
pmichaud $I0 = does $P0, 'array'
ccube I was checking by isa 'Array' and isa 'Hash' 18:45
Coke don't do that.
ccube does that work for hashes too
Coke does $P0, 'hash'
pmichaud $I0 = does $P0, 'hash'
ccube isa is deprecated?
pmichaud no, but isa checks class hierachy, as opposed to a role
Coke I don't think so.
particle ccube: get_iter $P0
...ask the pmc for it's iterator 18:46
pmichaud whether or not a PMC can have an iterator on it is part of its interface or role, not what class it happens to be
ccube ok, does that return NULL pmc when you can't iterate over $P0?
ambs All tests successful, 26 tests and 570 subtests skipped.
(27129) 18:47
Coke (that's easy enough to check, btw.) 18:48
particle ccube: look it up
ccube yep
i'm checking
get_iter is experimental ? 18:49
particle is it? it's been around forever
i guess we can move it out of experimental.
ccube in src/ops/experimental.ops - not in docs
particle lemme check the pdd 18:50
pmichaud I think get_iter is experimental, otherwise I'd have been using it more often instead of $P0 = new 'Iterator', $P1
particle =item nextkey_keyed
PMC* nextkey_keyed(INTERP, PMC* self, PMC* key, INTVAL what)
PMC* nextkey_keyed_int(INTERP, PMC* self, INTVAL key, INTVAL what)
PMC* nextkey_keyed_str(INTERP, PMC* self, STRING* key, INTVAL what)
Advance to the next position while iterating through an aggregate. [NOTE: this
feature needs review together with the Iterator PMC.]
that note at the bottom means it's not settled yet
so, use get_iter, until we replace it 18:51
ccube get_iter doesn't appear to be an op. it's not in include/parrot/oplib/ops.h 18:53
Coke at this point, somethings presence in experimental.ops isn't really an indication of its status. 18:54
chromatic Yeah, no one's moved them around in ages.
particle right
ccube It isn't an op at all, looks like a vtable method 18:55
particle the pmc pdd includes nextkey_keyed, though
get_iter is an op
Coke it's just "iter".
particle: doesn't seem to be.
particle ah, right.
'iter'
get_iter is the vtable function, iter is the op
$P1 = iter $P0
stupid me-- 18:56
ccube hmm, iter called on a string PMC returns a true iterator, then my code fails when I try to reference index it 19:01
Coke ISTR String used to support iterator, doing char-by-char. 19:02
what does it do on an Int?
ccube don't know yet
but if you can't call shift on it they I believe you shouldn't get an object from iter that tests true 19:03
particle iterator pmc is a ball of mud
chromatic Just for fun, if someone has time, try getting a PMC keyed iterator on a NameSpace.
ccube That's what I'm trying to do
I am writing a simple class information program that is running into all sorts of problems 19:04
chromatic The NameSpace PMC tests don't test that.
ccube it found that nice bug yesterday where key_string was passing the buck to Parrot_Key_get_string and Parrot_Key_get_string was passing the buck back to key_string - blew the stack 19:05
a hazard of the buck passing style of programming 19:06
chromatic Yeah, I tried to fix that up, and now I think there's something funky in NameSpace's key handling.
dalek r27130 | infinoid++ | trunk:
: [PMC] Back out vtable consting patches r27028 and r27029, per design discussion in #parrotsketch.
diff: www.parrotvm.org/svn/parrot/revision?rev=27130
r27131 | infinoid++ | trunk: 19:07
: [core] Un-const a caller of VTABLE_isa.
diff: www.parrotvm.org/svn/parrot/revision?rev=27131
ccube Is a there a tool that can tell you when functions are unintentionally calling each other recursively? 19:08
chromatic It's not really unintentional. As far as I can tell, it's just NameSpace producing a bad Key. 19:09
ccube Well if intentional, you need to create a bottom
chromatic If NameSpace produced the right type of Key, it wouldn't happen. 19:10
I think it's a bug.
I don't know exactly where it is, but there's my prediction.
ccube yes, I would call blowing the stack a bug
Infinoid r27131 broke the build, forgot to update the prototype too. fixing...
ccube Why are you calling a function that's just going to call you without changing anything?
chromatic It's not going to call back directly, ccube. It's a bug. 19:11
dalek r27132 | infinoid++ | trunk: 19:12
: [core] Remove const from the prototype too. Infinoid--
diff: www.parrotvm.org/svn/parrot/revision?rev=27132
Coke particle: you going to announce the SOC stuff? 19:13
particle on #ps? 19:14
Coke <nod>
particle okies.
Coke particle: can I go ahead and commit the ops syntax stuff? 19:16
particle coke: ok, can't make anything worse
ccube hmm, Hash reports that it doesn't hash or Hash, NameSpace neither, ResizablePMCArray says it doesn't array or Array 19:17
so it looks like I'm back to isa
dalek allison@perl.org | milestones:
link: www.perlfoundation.org/parrot/index...milestones
Coke ccube... can you provide a test, please? 19:18
nopaste "coke" at 72.228.52.192 pasted "ccube : this prints '1' for me." (5 lines) at nopaste.snit.ch/12764 19:19
"ccube" at 74.70.96.161 pasted "does fails" (80 lines) at nopaste.snit.ch/12765 19:20
Coke ccube: try "array", not "Array"
ccube tried that first
Coke "hash" not "Hash"
ccube tried that first too
Coke see my test.
try that.
ccube maybe it works for a newly generated Hash, but not one you get in the tree that results from inspect 19:22
particle s/does/provides/ maybe?
chromatic No, provides is only for PMCs in the .pmc file.
nopaste "chromatic" at 63.105.17.30 pasted "does on RPA, Array, Hash, and OrderedHash" (26 lines) at nopaste.snit.ch/12766 19:23
Coke particle: committed.
purl The chicken is involved, but the pig is *committed*.
dalek r27133 | coke++ | trunk: 19:24
: Apply patch in RT #52570 to simplify ops a bit, and make the syntax for
: flags/classes a bit more rigorous.
diff: www.parrotvm.org/svn/parrot/revision?rev=27133
nopaste "coke" at 72.228.52.192 pasted "ccube: this prints "Hash\\n1"" (8 lines) at nopaste.snit.ch/12767 19:25
particle Infinoid: what if you build a static parrot, and want to run postgres? 19:26
Infinoid particle: both schemes use "loadlib", so if "loadlib" doesn't exist, you're SOL either way 19:27
I guess my question is whether those things should be pir-only or not, assuming that's possible
dalek allison@perl.org | milestones:
link: www.perlfoundation.org/parrot/index...milestones
ccube coke, try it on the Hash you get from the PMC returned by inspect, like I am doing (I have done s/Array/array/ and s/Hash/hash/) 19:28
Coke ccube: I did that.
as I demonstrated in the example.
nopaste.snit.ch/12767
so inspect seems to be returning a 'Hash', which does 'hash'. 19:29
chromatic Does loadlib not exist in a static Parrot?
Coke (parrotsketch) is someone translating us into spanish?
ccube yes, but with $P1 = inspect $P0 try it on $P2 = $P1['methods'] 19:30
particle si y no.
Coke ccube: see, these details help. =-)
particle huh? what?
ccube: can you nopaste an example? 19:31
holy unreachable code, batman!
ccube take the program I pasted earlier and change Array to array and Hash to hash and try it
Coke ccube: which class are you inspecting?
ccube Any
but I have tried Class and Array
and NameSpace
purl hmmm... NameSpace is XSLT, other stuff isn't
Coke if I do 'methods' I get a null PMC back.
pmichaud Array might not have any methods on it. 19:32
ccube I wouldn't be asking you guys to debug my program for me if I didn't think it would help parrot 19:33
Infinoid purl, forget NameSpace
purl Infinoid: I forgot namespace
pmichaud Also, Array isn't really a "Class". It's a PMCProxy :-)
If this sounds confusing, it's because it is. :-|
szbalint chromatic: yeah, those kinds of blog posts are good. Keep them coming!
Coke ccube: what do you expect that program to output?
particle coke: i get millions of warnings when building ops files 19:34
pmichaud I'm not sure if it's possible to inspect Class, Array, or Namespace
ccube print what inspect returns and if the object is a container print what it contains recursively (up to MaxDepth)
particle Class has an inspect method
pmichaud ccube: perhaps Data::Dumper would do this, also?
ccube (that is the objects in the inspect hash)
I am trying to learn parrot not dump data 19:35
particle runtime/parrot/include/Data/Dumper.pir
load_library 'Data/Dumper.pbc' or whatever
ccube I am trying to find out how given ops work
pmichaud ccube: understood -- was just pointing that Data::Dumper does much the same thing. You could look at how it does things. 19:36
particle data::dumper doesn't use inspect, for sure
ccube so I shouldn't use inspect?
particle there are tests for inspect for class and object pmcs
Coke ccube: so the bug is that if you inspect something, and it has a methods key, you're not seeing any values? 19:37
ccube no - inspect returns a hash container and I call my display_container function on that if any of the VALUES in the container are containers, then recursively display them
Coke and it's doing that. what's the problem? 19:38
ccube that's the intention
Coke methods is a Hash, you find that. then what breaks?
ccube for me the version I pasted does not disply NameSpace or methods
nopaste "particle" at 24.19.3.148 pasted "win32 build output after coke's commit" (7177 lines) at nopaste.snit.ch/12768
ccube when I was using isa, it did (at least for Hashes)
Coke the version you pasted is broken. 19:39
ccube In what respect ?
Coke if you fix the 'Array' -> 'array', and 'Hash' -> 'hash' for does, how is your output then not correct?
ccube I said that I had done that locally
same result 19:40
Coke yes, but then you said 'the code you pasted'. the more precise you are, the easier it is to help you. =-)
Ok. I see .const string Indent=' '
.const int MaxDepth = 6
.sub main :main
.param pmc argv
.local int argc
argc = argv
if argc >= 2 goto ok
die "Need to provide a classname"
ok:
.local string classname
classname = argv[1]
$P0 = get_class classname
$I0 = defined $P0
if $I0 goto valid
die "Invalid classname"
valid:
$P1 = inspect $P0
$I0 = 0
display_container($P1, $I0)
particle points to NOPASTE
Coke .end
GAH.
sorry. 19:41
I see: "methods: Hash". What is wrong with this?
it was an accident. I know about nopaste.. thanks for your understanding. :P
pmichaud $I2 = does $P2, 'Hash'
I see no $P2 here.
Coke (that certainly changes the output. =-) 19:42
ccube coke, yes I FIRST tried 'array' and 'hash' as you said, that didn't work so I tried 'Array' and "Hash', that's what I pasted, the I went back to 'array' and 'hash' again
Coke pmichaud has found your typo. Enjoy.
pmichaud ccube: $I2 = does $P2, 'Hash' # I see no $P2 here.
(and yes, 'Hash' should be 'hash')
ccube ok, that let me fix that 19:43
pmichaud also note that
$P1 = box[$S0]
is likely wrong if box is an array container as opposed to a hash container
if box is a Hash or hash-like object, then shifting over the iterator returns keys in the hash 19:44
Infinoid japhb: I was not criticizing your approach, quite the opposite. I'm just wondering whether NCI will improve to the point that this stuff becomes easier :)
pmichaud but if box is an Array or array-like object, then shifting over the iterator returns the elements of the container
Infinoid japhb: sounds like OpenGL is an interesting test case for NCI. 19:45
pmichaud and so when box is an array-like container, we can't use the shifted elements of the iterator as keys to the container
ccube gee, i thought the point of an iterator was to act the same over all containers
so I have to have a separate display_hash and display_array? 19:46
chromatic Yeah, but hashes and arrays are somewhat different.
pmichaud iterating over a hash is effectively the same as iterating over hash.keys() 19:47
japhb Infinoid: Oh, I didn't at *all* take your question as criticism. I read it as an honest set of questions.
Infinoid: Yes, it appears I keep pushing the NCI limits. :-) 19:48
pmichaud japhb++ # push limits
particle tewk++ # expand limits
ccube ok guys, thanks for the help 19:49
Infinoid japhb: if it makes you feel any better, libfuse will be fun too. It was a PITA with perl5 - it wants to call multiple callbacks in multiple threads at once, from threads it creates internally, without calling a thread-context initializer function first
Coke particle: please resend your nopaste link.
particle nopaste: "particle" at 24.19.3.148 pasted "win32 build output after coke's commit" (7177 lines) at nopaste.snit.ch/12768
japhb Infinoid: EWWW.
Infinoid so I had to play nasty games with TLS and store away a copy of perl's context structure, to dup as needed
japhb Infinoid: it sounds like libfuse's design is pretty hateful to bindings writers. 19:50
chromatic Any shared library that doesn't use opaque pointers is hateful to bindings writers. 19:51
Infinoid I am amazed that it works at all. The bindings explicitly disabled multithreaded operation for years, which kinda sucks for a filesystem. :)
japhb quite
particle every thread has a different operating system 19:53
japhb As it is, I haven't solved the threading issue with the GLUT callbacks -- GLUT very deeply assumes global state is a design feature for its target audience
particle err, filesystem.
(joking while eating)--
Infinoid hopefully not :) 19:54
japhb must go AFK for a bit, bbl if you need me ...
Coke particle: unless ($flags =~ /\\b:flow\\b) ; # fails to match when $flags contains the string ":flow". hurmm.m 19:59
(so it's always running the condition)
meaning it's always adding goto NEXT(), which is why you have your warnings.
particle \\: ?? 20:00
Infinoid removing the leading \\b makes it match 20:02
pmichaud \\b:flow\\b is probably wrong, yes
as that would mean that there has to be a word character prior to the :
Infinoid the : itself is a good delimiter for the left side :)
Coke ... what Infinoid said.
testing now.
a holdover from the "," version. 20:03
pmichaud if you want to enforce spaces, then \\s:flow\\b
Coke (and it still builds, compiles, and passes all tests.
pmichaud: can't.
dalek r27134 | coke++ | trunk: 20:05
: Fix re that checked for :flow tag (holdover from previous iteration).
: The RE failed, which means the goto NExT() was added everywhere, which results
: in unreachable code on any ops that were tagged :flow.
diff: www.parrotvm.org/svn/parrot/revision?rev=27134
particle rebuilds 20:06
particle reconfigs, then rebuilds
same 20:07
c:\\usr\\local\\parrot\\trunk\\src\\ops\\io.ops(71) : warning C4702: unreachable code 20:08
c:\\usr\\local\\parrot\\trunk\\src\\ops\\io.ops(72) : warning C4702: unreachable code
c:\\usr\\local\\parrot\\trunk\\src\\ops\\io.ops(71) : warning C4702: unreachable code
c:\\usr\\local\\parrot\\trunk\\src\\ops\\io.ops(72) : warning C4702: unreachable code
c:\\usr\\local\\parrot\\trunk\\src\\ops\\io.ops(73) : warning C4702: unreachable code
etc
Coke are you still getting one at core.ops(53) ?
particle no 20:09
Coke then those are different. hang on.
particle the first is core.ops(154)
Coke do you swear these errors didn't used to occur? =-)
particle i so swear.
Coke Parrot_load_bytecode_sc seems to end with two goto NEXT()'s. 20:11
particle the mail arrives, and for the 3rd day in a row, i visit catalogchoice.com
ambs lol
Coke aha.
particle: I think the generated code is being passed to the multiple variants of an opcode. 20:12
so when it's added once, it's then copied and then added again.
hoisting the :flow check out of the loop will probably do it. checking... 20:13
particle i'll check the .c file
Coke yup, that seems to generate proper code. 20:14
20:15 ruoso joined
Coke particle: re-up, try again. 20:16
dalek r27135 | coke++ | trunk:
: [ops]
: Only add the implicit goto NEXT(); once per opcode, instead of accumulating
: it once per variant.
diff: www.parrotvm.org/svn/parrot/revision?rev=27135
particle c:\\usr\\local\\parrot\\trunk\\src\\ops\\object.ops(81) : warning C4702: unreachable code 20:17
Coke (and thanks for catching the warnings) - I am used to seeing warnings, so I'm not sure I would have noticed this ("make test passes? whee!")
particle many fewer warnings, but still ~20
Coke probably YA bug.
particle most in object.ops, some in string.ops
Coke ah. some of these aren't marked as ":flow" when they should be! 20:18
can you nopaste the list? will make it easier to track down.
nopaste "particle" at 24.19.3.148 pasted "win32 build output after r27135" (83 lines) at nopaste.snit.ch/12769
japhb BAK, if there was any remaining NCI/OpenGL discussion 20:20
particle is it done yet? :P 20:21
Coke be so nice if those warnings told me the OP name. =-) 20:22
japhb particle: thbbt. :-)
You can blame stomach flu for lack of progress, unfortunately 20:23
Coke particle: that should kill some more, let me know what's left. :| 20:28
particle object.ops 565, 570, 575, 580, 585 20:29
dalek r27136 | coke++ | trunk:
: [ops]
: Mark some :flow ops as such.
: Delete some superfluous goto NEXT();
diff: www.parrotvm.org/svn/parrot/revision?rev=27136
Coke particle: that's the copyright section. :P
particle don't blame me 20:30
ops2c must be reporting faulty numbers
however, i can tell you they don't warn in core_ops_switch
just core_ops
Coke I'm guessing its: opcode_t * 20:31
Parrot_pic_infix___ic_p_p (opcode_t *cur_opcode, PARROT_INTERP) {
PANIC(interp, "How did you do that");return 0;
}
20:31 rdice joined
dalek r27137 | kjs++ | trunk: 20:31
: [src] localize variables by adding 'else' clause, and remove some newlines within 1 statement, after which it's still well under 80 columns.
diff: www.parrotvm.org/svn/parrot/revision?rev=27137
particle maybe. return 0 should go
Coke hah! I bet that was broken before! =-) 20:32
particle: concur. You wanna commit that one?
lib/Parrot/Op.pm line 394
Though that whole thing seems fishy in the first place. 20:33
particle testing now 20:34
no warnings with that change
Coke particle:++
particle++ #even.
particle coke++ # DRY - making op bodies smaller 20:35
however, i kinda feel the attribute should be the exception and not the rule
Coke sorry it took a few iterations. Thanks for the feedback.
particle: it is!
particle really? i thought most ops had goto NEXT()
Coke goto NEXT(); is added by default. if it is present, it's not added.
particle ah. 20:36
perfect.
purl La perfection est atteinte non quand il ne reste rien ļæ½ ajouter, mais quand il ne reste rien ļæ½ enlever
Coke at least better.
next step is to look at all the flags we are declaring. I am tempted to make it a fixed list and die on the build if one that isn't kosher is specified.
... and then we can remove the ones that are crufty and will never be implemented.
particle speak with allison if it looks like any are security related 20:37
i'd like to have an op security model that groups ops into categories
then we can specify by category which ops to enable/disable or flag as unsafe
as well as being able to specify by name 20:38
dalek r27138 | kjs++ | trunk:
: [src] localize variables and align assignment operators.
diff: www.parrotvm.org/svn/parrot/revision?rev=27138
r27139 | particle++ | trunk: 20:40
: [ops2c] silence final msvc warnings by removing unreachable code in generated PANIC() macro - coke++
diff: www.parrotvm.org/svn/parrot/revision?rev=27139
jonathan This week's "why I missed parrotsketch" excuse: I was on a plane, and too stingy to pay for expensive airport wifi to pre-file. 21:02
Coke jonathan: FAIL!
seen obra?
purl obra was last seen on #perl 14 days and 2 hours ago, saying: what dist did you try to install that showed the problem? [Apr 8 11:58:05 2008]
jonathan how does one get purl to tell them the messages? 21:03
Coke messages?
purl To access purl's messages, msg me with the word "messages".
jonathan Cool, thanks.
Infinoid: will get to your questions when more than 5% of my braincells are working, which should hopefully happen after I've slept. 21:04
Infinoid no worries, I've got enough to keep me busy
particle jonathan: expect loads of test failures with trunk head 21:05
i'm hoping to find out why soon
but i'm sleepy too
jonathan particle: wasn't planning on doing anything tonight... 21:08
Last few days have generally been very busy seeing people, and then sleeping early on a night because I've felt a tad under the weather.
Managed to catch a cold within a couple of days of being in the UK.
particle Failed 45/580 test scripts. 216/11212 subtests failed. 21:09
ambs good night 21:18
purl sleep well too
21:18 ambs left 21:41 AndyA joined 22:02 mire joined
particle seems that "print $S" isn't causing parrot to error on win32 22:03
instead, it segfaults.
Infinoid bonus! 22:04
limited time offer, low low prices. 22:14
particle hrm. interesting. 22:18
nopaste "particle" at 24.19.3.148 pasted "bt of seggy with parrot t/compilers/imcc/syn/symbols_1.pir" (14 lines) at nopaste.snit.ch/12770 22:19
Infinoid intl.dll? gettext? 22:20
Infinoid wonders if he broke particle with r27065 22:21
particle you did
i've attempted to fix locally
Infinoid hmm. you could always reintroduce the typo... :) 22:23
22:24 Limbic_Region joined
wknight8111 it's an extension of "if it ain't broke, don't fix it" 22:26
"if fixing it breaks it, don't fix it"
Infinoid fixing the typo fixed RT #53112 22:27
and apparently, broke msvc.
Patterner "FixedIntegerArray: Can't resize! current instr.: 'parrot;PGE::Util;__onload' pc -1 ((unknown file):-1)" parrot Perl6Grammar.pir PGE/builtins.pg 22:29
particle Patterner: did you realclean lately? 22:30
Patterner yes
r27139
particle harumph. 22:31
ah. this looks much better with the typo in place 22:33
ok, now i know what to fix
Limbic_Region thanks to whomever fixed the Win32/Cygwin bug preventing the build 22:38
both Win32/MinGW and Win32/Cygwin are now stuck in nqp after parrot.exe is successfully linked
which means perl6.exe can't be built either :-( 22:39
22:59 kid51 joined 23:05 tetragon joined
tetragon realises that she still has a gdb session open on the r27081 crash 23:08
kid51 tetragon: Was there any resolution of that problem we were looking at this morning? 23:10
tetragon The crash? Not as of last I checked (this morning) 23:11
Really should finish looking up everything I need to be able to set a usable watchpoint for chromatic 23:20
23:22 cognominal left 23:28 cognominal joined 23:36 skids joined
tetragon Crash still happening for me on a clean r27139 23:36