Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets.
Set by moderator on 25 June 2010.
Chandon Sweep runs shouldn't happen unless a mark run has happened, yes? 00:01
whiteknight yeah. it's stop-the-world 00:03
mark+sweep happen together
make sure in your VTABLE_mark routines you are marking all children
I'll build it in a minute
00:04 ash__ joined
dalek rtcl-nqp: 5d36f07 | Coke++ | (2 files):
t/cmd_expr.t can now run to completion.
00:07
cotto_work pmichaud: ping 00:12
darbelo cd 00:15
cotto_work git pull 00:16
Infinoid darbelo@magnet:#parrot $ 00:17
Coke mikehh: I have a fix for the diag output. testing, will commit shortly.
tcurtis You know, it occurs to me now that there's no reason for Tree::Transformer to be a subclass of Tree::Walker. 00:21
tcurtis will probably fix that later tonight.
Coke ugh. generating TAP is haaaard. 00:22
a failed TODO test sends output to STDOUT. a failed test sends output to stderr. 00:25
(using test;:more)
(the perl version)
mikehh rakudo (3d2cb82) builds on parrot r47953 - make test PASS, spectest_smolder -> #34680 (pugs r31528) FAIL - Ubuntu 10.04 amd64 (gcc with --optimize) 00:27
t/spec/S32-num/rat.rakudo - Failed test: 798
18 TODO PASSes in 4 files
dalek rtcl-nqp: 6d8e6cb | Coke++ | lib/test_more.tcl:
slight improvement to our TAP compliance

goes to stdout, sometimes to stderr. This at least keeps the run quiet for TODO tests.
00:36
cotto_work tcurtis: typo in the Tree::Walker docs: "This conveniently include PCT::Node" 00:38
tcurtis cotto_work: fix committed. 00:40
pmichaud cotto_work: pong
cotto_work pmichaud, I'm not sure if the current approach to string parsing is correct, namely for strings with an explicitly specified encoding and/or charset. 00:41
pmichaud cotto_work: in nqp?
cotto_work in PIRATE 00:42
github.com/bacek/pir/blob/master/sr...ns.pm#L838 github.com/bacek/pir/blob/master/sr...ar.pm#L483
Will that code put the exact bytes from the file into the ByteBuffer?
pmichaud I don't know. I suppose it would depend on the implementation of POST::String (which bacek++ wrote) 00:43
in general, Parrot's storage of strings and handling of encoding specifiers has been a little confusing to me. 00:44
cotto_work POST::String is an eventual child of POST::Node with some extra methods. 00:45
POST::Node -> Value -> Constant -> String
dalek rrot: r47955 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library (3 files):
Start updating docs by writing POD for Tree::Walker.
rrot: r47956 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Walker.pod:
Fix copy-paste failure.
rrot: r47957 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Walker.pod:
Fix typo. cotto++
00:46 ash_ joined
cotto_work Do you know if there's a way to test that the current code dtrt? 00:46
mikehh partcl-nqp (6d8e6cb) - make ok, make test PASS - t/cmd_expr.t - TODO passed: 287 - Files=59, Tests=1196 - parrot at r47953 - Ubuntu 10.04 amd64 (gcc with --optimize) 00:48
darbelo Infinoid: ?
mikehh Coke: much cleaner output
Coke \\o/
| 00:49
\\
ow, that looks painful.
pmichaud cotto_work: I would guess the way to check is to generate various strings and check the .pbc output.
cotto_work darbelo, any thoughts from you on this predicament? 00:50
since you're doing some string hacking
whiteknight Chandon: I get a build error. Parrot_pmc_list_insert_by_number seems to have conflicting definitions 00:51
darbelo cotto_work: I'd have to see what the code does before saying it's wrong ;) 00:52
cotto_work Those links are a starting point.
github.com/bacek/pir/blob/master/sr...ns.pm#L838 github.com/bacek/pir/blob/master/sr...ar.pm#L483
Chandon whiteknight: With the latest SVN? 00:53
whiteknight Chandon: yeah
lemme try again with gcc
darbelo cotto_work: Other than missing ucs4, that part looks fine :) 00:54
mikehh btw, my one major problem with git - how the heck do you work out what (6d8e6cb) just looking at it - at least r47953 tells you where you are at 00:55
Chandon whiteknight: Is there some way to get headerizer to pull that declaration from the .pmc and put it in some useful place?
tcurtis cotto_work: by the way, why the particular interest in docs for my GSoC stuff? Interested in using it? Or just iwbni there were up-to-date docs?
whiteknight Chandon: let me look at the file
okay, it builds with GCC 00:56
I'll have to trac down why clang barfs
cotto_work I'm just looking at what you're doing with PIRATE and trying to make sure the bus number gets raised.
darbelo I'll look at it again after some sleeps.
cotto_work plus I love code that writes or modifies code
unless it has too many parentheses
darbelo: thanks 00:57
tcurtis cotto_work: I hate C macros, too!
:P
pmichaud afk for a bit
whiteknight Chandon: I see that failure you are talking about. Most certainly a GC-related error
cotto_work msg cotto add ucs4 to the list of encodings in PIRATE 00:59
purl Message for cotto stored.
Chandon whiteknight: What did I get wrong? It looks like I mark the alarms list in the Scheduler mark() function, and if the Scheduler itself wasn't getting marked it should blow up way worse...
whiteknight Chandon: no idea. it all looks decent to me 01:01
Chandon good times
purl DON'T OPEN IT! IT'LL CRASH AOL!
whiteknight Chandon: Were you getting this error before your last big commit? 01:08
if not, you may want to back that commit out and start putting it back in chunk at a time
whiteknight has to go do some packing 01:11
Chandon whiteknight: Derf. I'm guessing it's a bit older than that. 01:13
whiteknight Chandon: okay. chromatic wrote up a nice guide about debugging GC errors somewhere 01:20
search through docs/ to see if anything pops up
I'm signing off for the night. Talk to you later 01:21
Chandon Sounds like a plan. Good night.
whiteknight goodnight
01:41 Mokurai joined
Coke google for "parrot chromatic debug gc" is probably better. 02:13
I think that dates back to his ORA days
cotto_work gc debugging?
when you find the link, that'd be a good place to put it. 02:14
cotto_work wonders who Coke was responding to
Chandon I found my bug. It looked like this: /* PObj_custom_mark_SET(SELF) */ 02:22
I feel a little bit like I'm on the wrong end of this conversation: Is it plugged in? Yes? Is it turned on? Yes? Which wall outlet is it plugged into? What, it works now? You're welcome. 02:25
cotto_work That's really one of those things that pmc2c should be taking care of automatically. If you have a custom mark VTABLE function, it doesn't make sense to avoid using it. 02:26
Chandon That's a reasonable argument. 02:27
cotto_work You're not the first to get bitten. 02:28
cotto_work decommutes 02:29
kid51 chromatic on debugging GC problems in Parrot: tinyurl.com/287ktuc 02:36
02:42 janus joined
dalek rrot: r47958 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern.pod:
Add docs for Tree::Pattern.
02:44
02:50 TiMBuS joined
cotto ~~ 03:05
Oh look. A message.
dalek r: 12f0853 | cotto++ | src/PIR/Grammar.pm:
add ucs4 as pointed out by darbelo++
03:09
03:15 theory joined 03:38 eternaleye joined 03:40 LoganLK joined
tcurtis cotto: I added more docs for Tree::Pattern and Tree::Pattern::Match. 04:05
dalek rrot: r47959 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern (2 files):
Add POD for Tree::Pattern::Match.
04:06
rrot: r47960 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern.pod:
Add Tree::Pattern::Match POD to the see also of the Tree::Pattern POD.
sorear Chandon: ping
Chandon sorear: Hey. 04:09
sorear Chandon: the old PDD on events had lots of details on how to interrupt running ops from a signal handler 04:15
it's a lot simpler now since the cgoto cores are gone; basically you just need to (save and) overwrite the current op dispatch table with a bunch of pointers to your yield op
Chandon sorear: That's an amusing solution, but couldn't that end up being a pretty big table? 04:18
sorear Er... it's a pretty big table that has to exist regarless 04:20
and it's only about 10kb anyway
04:21 davidfetter left
Chandon I should probably benchmark that against the current :check_events scheme. I really have no idea which way would be faster. 04:27
cotto tcurtis, an overview document would be nice too to show how everything fits together
but what you're written is helpful 04:30
thanks
tcurtis cotto: I'll write some more of the API-reference style docs first, but I'll add that to my todo list. 04:42
cotto btw. it's pretty cool to have someone fresh out of high school hacking awesome stuff into Parrot. 04:56
tcurtis It's pretty cool to be hacking on awesome stuff like Parrot fresh out of high school. 04:57
05:19 fperrad joined 06:02 Mokurai left 06:05 uniejo joined, jan joined 06:37 theory joined 06:53 tcurtis joined
dalek rrot: r47961 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library/PCT/Pattern.nqp:
Fix a bug in the .subst method. Which clearly is not seeing much use.
08:12
09:37 lucian joined 10:36 cosimo joined 10:39 ruoso joined 10:50 bkuhn joined 11:28 clinton joined 11:39 kid51 joined 11:44 cygx joined 11:52 khairul joined 12:50 ambs joined
arnsholt PDD 27 claims that PAST::Var should have an attribute parameter, but when I say PAST::Var.new(:parameter) it claims that there is no such method 13:10
Am I doing it wrong?
jnthn yes, UR DOIN IT RONG. 13:11
:scope('parameter')
arnsholt D'oh. Of course
Docs. Doin it rong ^^
13:14 ttbot joined
Coke those docs could use a touch of care, though.. 13:20
13:27 plobsing joined 13:58 Mokurai joined 14:01 bubaflub joined, JimmyZ joined
Coke TAP rant - no easy way to map test numbers in final output to the actual test. 14:08
dalek rrot: r47962 | gerd++ | trunk (2 files):
according to TT #1699 add the checksum file generation
14:14
14:15 ash_ joined 14:16 patspam joined 14:28 clinton joined 14:36 theory joined 15:35 patspam joined, eternaleye joined 15:39 gbacon joined
Chandon What's this assertion failure trying to tell me? ./src/pmc/imageio.pmc:266: failed assertion 'id - 1 == VTABLE_elements(interp, PARROT_IMAGEIO(info)->todo)' 16:03
16:16 jan joined 16:37 Andy joined
dalek rrot: r47963 | khairul++ | branches/gsoc_instrument (5 files):
Added tests for InstrumentGC.
16:42
cotto_work ~~ 16:43
17:12 tcurtis joined 18:01 bubaflub joined
dalek rrot: r47964 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/PCT (2 files):
Add POD for PCT::Pattern.
18:20
rrot: r47965 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/PCT/Pattern.pod:
Add SYNOPSIS for PCT::Pattern POD.
cotto_work Yay for documentation~\\ 18:23
!
msg cotto Don't forget to update your ... patch to use !!! and to use its arguments, if any. 18:43
purl Message for cotto stored.
18:59 gbacon joined 19:35 patspam joined 20:15 shockwave joined
shockwave purl paste 20:15
purl paste is, like, (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
nopaste "shockwave" at 192.168.1.3 pasted "Index of array question." (7 lines) at nopaste.snit.ch/21774 20:17
shockwave Hi.
Is there some flag to cause Parrot to throw an exception when the above happens. Namely, setting the index of an array out-of-bounds. 20:18
Except maybe, just one value passed the length of the array, and hence adding a new value to the array.
ash_ so... you want a fixed size array
?
shockwave No.
But, in the snippet I posted I'm setting the index 5. That array is empty. 20:19
So that should be no good.
I'm guessing that internally the array is really an ordered map?
20:19 jsut_ joined
particle it's resizable, why should it be no good to assign past the end? it seems to be documented that way 20:20
ash_ shockwave: internally its an array, it just resizes to fit the index
shockwave particle. I would understand one element. But 6 elements passed the end? That makes no sense. 20:21
particle shockwave: have you used perl before?
this behaves just like a perl array would in this situation
shockwave ash_, so you're saying that setting index 5 also sets all the values of the indexs before that?
ash_ shockwave: it fills the space with Undef's actually
yup
shockwave particle: no, I've never used Perl.
particle aha. 20:22
ash_ 0, 1, 2, 3, 4 all have Undef in them
shockwave ash_: Oh, I see.
ash_ in your example
purl it has been said that in your example is $line and $blah same thing?
ash_ if you access an element that is out of bounds it also returns Undef
particle purl, forget in your example
purl particle: I forgot in your example
ash_ but in your case, it resized the array to be 6 elements long when you assigned $P0[5] = $S0
shockwave ash_: I see. That means that some runtime checking will need to be performed to throw exceptions, if that's what one wants. 20:23
ash_: Thanks for the answer.
ash_: I'm clear on the behavior, now.
particle you can write your own pmc that behaves how you want
shockwave Thank you too, particle
particle derived from rpa, if you want 20:24
shockwave particle: I haven't written my own PMC, yet. But, I'm guessing that in the near future, I will be doing that just.
(I'm assuming you mean in C, right)
particle i'm guessing the same thing :)
you can write pmcs in c, yes, or in pir
shockwave particle: By pir do you mean as in creating a class and derriving from, say, the array class? 20:25
particle i'd derive from resizablepmcarray (rpa), yes 20:26
shockwave particle: Oh, yeah. My current array and map classes do just that.
Actually, I take that back.
They derrive from some other object, and have a RPA and other members to do their bidding. 20:27
Someday, those classes will probably PMCs written in C.
particle you'll probably want to override set_keyed_int, to raise an exception if the length is extended by more than one
ash_ shockwave: if you call $I0 = elements $P0 after your assignment you can see how much space is allocated
(it should say 6)
particle yes, it's not difficult to translate the pir classes into c
shockwave particle: Yeah, I've seen a few of the PMC's templates. They don't seem too scary. 20:28
I'm trying to hold on, though. I really need to get this compiler out the door, and that's probably something that will come in version 2. 20:29
ash_, good idea.
particle sure, keep it simple
shockwave Again, thanks both.
20:32 shockwave left
Coke (you could also do this via an object instead of a pmc.) 20:46
20:46 LoganLK joined
Chandon So I add a .pmc and t/pmc/packfile.t starts failing. What all do I need to do to make that work? 20:47
bacek Chandon, read this file :) 20:48
Good morning, humans
Chandon Apparently PBC_COMPAT is a thing. Neat. 20:49
ash_ anyone know why the gcc would complain that my switch statement doesn't have a default case when it does? 20:51
Chandon It's not seeing it for some reason? Maybe you did "#define default 5" earlier in the file... 20:53
ash_ Chandon: github.com/ashgti/parrot/blob/gsoc_...i.pmc#L324 is the switch the default case is the last case 20:54
bacek defualt != default 20:56
ash_ ...
i r spake gud
Chandon Also #if (DOUBEL_SIZE > 8) /* FLOATVAL is a long double */ 20:57
ash_ yeah, i fixed that, i haven't commited it yet 20:58
21:02 joeri joined
sorear protip: use a syntax highlighting editor 21:16
this will catch misspelled keywords
ash_ vim syntax highlighting fails me :-( 21:18
dalek rrot: r47966 | Chandon++ | branches/gsoc_threads (8 files):
[gsoc_threads] Fix some failing tests.
21:21
kudo: 4715825 | jonathan++ | src/builtins/List.pir:
Support get_pmc_keyed_int in List so we can has interop with Perl 6 arrays and
21:31
kudo: ac5e926 | jonathan++ | src/core/traits.pm:
Implement trait_mod:<is> for rw on packages. Not checked for yet.
kudo: 085fac8 | jonathan++ | src/builtins/List.pir:
Remove a fossil.
kudo: dbde7cf | jonathan++ | src/metamodel/ClassHOW.pir:
Under-construction class type objects should at least be able to say they're
purl undefined is false, but so are some defined values
kudo: 7dbad1c | jonathan++ | src/Perl6/ (3 files):
Do not assume that lack of is rw on an attribute means no accessor, and

is specified, and to look to any provided default. Also, a little re-ordering of metaclass code gen.
kudo: fdf7bb9 | jonathan++ | src/metamodel/Attribute.nqp:
If the attribute doesn't explicitly have rw or readonly specified, fall back and
kudo: f9e5226 | jonathan++ | src/metamodel/Attribute.nqp:
Unbreak attribute introspection for .rw.
kudo: 7017d2b | jonathan++ | t/spectest.data:
Turn on S12-class/rw.t.
tcurtis moritz: have nearly two days really passed without you finding any new bugs in my code? :) 21:34
21:50 Psyche^ joined
dalek r: fb1e994 | bacek++ | src/POST/Compiler.pm:
Store generated Subs in proper namespaces
21:52
r: bba512d | bacek++ | src/PIR/Actions.pm:
Revert to lookup main sub by name.
r: 4163f7a | bacek++ | src/POST/ (2 files):
Factor out POST::Key.to_pmc method
r: c16f19d | bacek++ | t/pbc/call.txt:
Add (failing) test for proper constant Sub handling.
bacek hmmm... dalek reported commits in revert order...
sorear would you have preferred a topological sort? 21:55
21:56 integral joined
bacek straight forward timeline will be good enough :) 21:56
22:10 somebody_ joined
dalek rrot: r47967 | tcurtis++ | branches/gsoc_past_optimization/docs/user/library/Tree/Pattern/Any.pod:
Add POD for Tree::Pattern::Any.
22:10
22:15 somebody__ joined 22:40 somebody_ joined
tcurtis Someone really should update docs.parrot.org. 22:47
I don't know who has the ability to do that or I'd suggest they do so specifically. 22:48
darbelo tcurtis: That's would be the last realease manager, or Coke. 22:49
I think I had to let Coke do it when I did a release, but might be misremembering. 22:50
tcurtis Coke: ping 22:51
thanks, darbelo. 22:52
bacek: ping
23:02 GodFather joined 23:04 somebody__ joined
bacek tcurtis, pong 23:06
tcurtis bacek: do dynops need to be constant folded? How does IMCC determine which ops to fold? Is the big fat manually maintained list in IMCC_subst_constants it? 23:09
23:10 GodFather joined
bacek tcurtis, let me check. I'm not familiar with imcc 23:10
tcurtis Related question, how can I load the necessary dynops in NQP, if so?
bacek (imcc) looks like you are right about imcc approach. 23:11
I think we can safely ignore dynops in pirate.
tcurtis Even the ones that IMCC appears to fold?
bacek Just because we can't enforce any semantics.
Yes. I suspect this list wasn't updated after recent reshuffling of ops. 23:12
(nqp) There is no way to load dynops in nqp, afaik
tcurtis Is .loadlib only valid outside of a .sub? 23:16
bacek yes
tcurtis Alright. 23:17
23:17 dalek joined 23:20 PerlJam joined 23:21 dukeleto joined, pmichaud joined, Util joined
dalek r: f42d77a | bacek++ | src/POST/Sub.pm:
Return 0 for unspecified boolean modifier from POST::Sub.
23:23
r: 77f8e01 | bacek++ | src/POST/Compiler.pm:
Add more stuff into generated Sub PMC.
r: a296e40 | bacek++ | src/POST/Sub.pm:
Fix POST::Sub.nsentry accessor.
tcurtis msg plobsing In IMCC_subst_constants trac.parrot.org/parrot/browser/trun...zer.c#L884 , several dynops are constant-folded. How does this work? Is it safe to do that? Does a lot of old PIR rely on constant-folded versions of the relevant dynops? 23:25
purl Message for plobsing stored.
tcurtis bacek, I'm msging plobsing about IMCC constant-folding dynops(since it does appear to cause certain PIR programs to work under IMCC but not with PIRATE). 23:27
ash_ trac.parrot.org/parrot/browser/trun...zer.c#L926 wow, imcc won't allow NUM's to be floats, they have to be doubles?
tcurtis has a suspicion that the constant folding in IMCC might not actually even use the actual op.
ash_ (or long doubles)
dalek r: a83f574 | bacek++ | src/POST/Compiler.pm:
Add workaround for old POST::Sub.subid behaviour.
23:28
bacek tcurtis, it doesn't... 23:29
tcurtis, do you have examples of dynops which doesn't work with pirate? 23:30
nopaste "tcurtis" at 192.168.1.3 pasted "bacek, here's an example of PIR code that runs under IMCC but doesn't under PIRATE unless we constant-fold some dynops" (23 lines) at nopaste.snit.ch/21784 23:33
bacek tcurtis, .loadlib NYI in PIRATE.
tcurtis Oh.
Nevermind. It looks like there are constant variants of cmod and such. 23:35
23:37 somebody_ joined
dalek rrot: r47968 | Chandon++ | branches/gsoc_threads/src/pmc/timer.pmc:
[gsoc_threads] Now with working Timers.
23:38
ash_ --m=32 doesn't seem to work on OS X... 23:48
(perl Configure.pl option)
23:48 somebody__ joined
bacek tcurtis, .loadlib is partially implemented now :) 23:51
dalek r: 105a3d3 | bacek++ | src/PIR/Actions.pm:
Partially implement .loadlib handling.
23:54 Psyche^ joined 23:56 somebody_ joined