parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
00:07 pmichaud joined 00:08 leo joined 00:09 AndyA joined 00:11 polyglotbot joined 00:12 pmichaud joined 00:14 leo joined 00:15 dalek joined
dalek r32413 | cotto++ | trunk: 00:16
: [pipp] tighten tag parsing, add echo tags
diff: www.parrotvm.org/svn/parrot/revision?rev=32413
r32414 | pmichaud++ | trunk:
: [rakudo]: Partial spectest-progress.csv update -- more later.
diff: www.parrotvm.org/svn/parrot/revision?rev=32414
00:17 jonathan joined
jonathan feather sure seems to have a few issues... 00:22
jonathan sleeps 00:53
01:00 polyglotbot joined
Tene rakudo: say 'omg' 01:00
polyglotbot OUTPUT[omg␤]
Tene lolcode: VISIBLE "omg polyglotbot works again" 01:01
polyglotbot OUTPUT[omg polyglotbot works again␤]
cotto pipp: <?="ohai!"?> 01:02
polyglotbot OUTPUT[ohai!]
Tene tcl: [doesn't work anymore] 01:03
polyglotbot OUTPUT[Parrot VM: Can't stat languages/tcl/tcl.pbc, code 2.␤main: Packfile loading failed␤]
cotto pipp: <?="also"?> <?="doesn't"?> <?="work"?> 01:07
polyglotbot OUTPUT[also ="doesn't"?> work]
01:24 Whiteknight joined 01:43 petdance joined 01:57 Limbic_Region joined
bacek_ summon pmichaud :) 02:05
Tene++ # ressurecting polyglotbot 02:09
chromatic Tcl probably needs 'make realclean'. 02:10
Coke invalidated the bytecode today, removing some deprecated ops.
02:28 bacek joined
bacek_ karma 02:37
karma bacek
purl bacek has karma of 70
bacek_ little bit more.
cotto pipp:<?="bacek"?>++ 02:41
|! 02:42
bacek_ cotto: cheating! :) 02:43
cotto I figure it's not cheating if I use a recently-implemented feature. 02:44
I don't mind cheating anyway. ;)
Tene pipp: <?="bacek"?>++ 02:53
polyglotbot OUTPUT[bacek++]
Tene need the space 02:54
bacek_ karma bacek 02:55
purl bacek has karma of 70
cotto karma <?="bacek"?>
purl <?="bacek"?> has karma of 1
cotto lucky guy
bacek_ heh, cheating doesn't work as expected ;)
cotto pipp:<?=" bacek"?>++ 02:56
pipp: <?=" bacek"?>++
polyglotbot OUTPUT[ bacek++]
cotto karma backe
purl backe has neutral karma
cotto karma bacek
purl bacek has karma of 71
03:12 Ademan joined 03:17 Psyche^ joined 04:06 MariachiElf joined
bacek_ is Object inherited from Any in rakudo? 04:14
pmichaud Any is inherited from Object. 04:18
bacek_ pmichaud: thanks
pmichaud rakudo: say Any ~~ Object; 04:19
polyglotbot OUTPUT[1␤]
pmichaud rakudo: say Object ~~ Any;
polyglotbot OUTPUT[1␤]
pmichaud hmm.
bacek_ rakudo: say Num ~~ Object
polyglotbot OUTPUT[1␤]
bacek_ rakudo: say Num ~~ Any
polyglotbot OUTPUT[1␤]
bacek_ hmm...
rakudo: say Num ~~ Int
polyglotbot OUTPUT[0␤]
bacek_ rakudo: say Int ~~ Num
polyglotbot OUTPUT[0␤]
bacek_ rakudo: class Foo {}; say Foo ~~ Object 04:20
polyglotbot OUTPUT[1␤]
bacek_ rakudo: class Foo {}; say Foo ~~ Any
polyglotbot OUTPUT[1␤]
bacek_ pmichaud: looks like I can't reimplement 'succ'/'pred' using MMD
pmichaud ....why not? 04:21
bacek_ I thinks about adding 'prefix:++ multi(Object)' and 'prefix:++ multi(_)' 04:22
so, first version will call 'succ', scond 'inc arg' 04:23
pmichaud just make a single prefix:++ that calls inc.
(like it was before) 04:24
then we'll create a vtable function in Object that calls succ
bacek_ Ah, ok.
btw, I reimplemented junctions collapsion in boolean context. It's short-circuit now. 04:26
hmm... Looks like my mail didn't reach list (yet)
pmichaud: S03's succ/pred is suboptimal... We always have to create new object and copy it over old one for 'prefix:++'... 04:38
pmichaud that's not a big deal in this case, though. 04:39
mostly we'll be incrementing/decrementing Ints, which won't go through succ/pred
bacek_ yes of cause. Just... Suboptimel :)
Suboptimal
purl Suboptimal is a nice way of saying "Rather Fucked Up (tm)"
bacek_ postfix versions will be just awful... $P0 = clone a; inc a; 4 clones for single increment. 04:41
pmichaud 4 clones? 04:42
bacek_ 'clone a'. Then in 'succ' we have to "clone" object with previous value. 04:43
pmichaud there's always the possibility of writing custom VTABLE_increment or postfix:<++> if it's an issue.
bacek_ at least 2 :)
pmichaud ....why do we have to clone an object in 'succ'?
bacek_ and S03-operators/autoincrement treats 'succ' as in-place change. 04:44
pmichaud succ isn't an inplace change
bacek_ We have to create copy of object with "next" value
pmichaud anyway, I count 3 clones.
we know there has to be at least one. 04:45
bacek_ ++$var
--$var
are equivalent to
$var.=succ
$var.=pred
pmichaud note that .succ isn't an inplace method there -- it's being called via the inplace operator
.succ simply returns the next value -- it doesn't modify the invocant. 04:46
$var .= succ is the same as $var = $var.succ
at any rate, I'm not in charge of the spec. :-)
bacek_ can we change it? :) 04:47
pmichaud you can ask on perl6-language about it.
but I can say that since doing increment/decrement on anything other than Ints is fairly rare, it doesn't seem worth the effort (and loss of potential flexibility) to try to optimize it further. 04:48
bacek_ fair enough
pmichaud and we do still make it possible for people to write custom operators that avoid it if necessary
bacek_ Method 'succ' not found for invocant of class 'Int' 04:51
Yak. Auto-boxing
pmichaud make sure to use :vtable('increment') and not 'increment' :vtable 04:53
otherwise the vtable function will get installed in the subclasses.
bacek_ .sub '' :method :vtable('increment') 04:54
?
pmichaud yes.
bacek_ it works!
S03-operators/autoincrement.t still passed 04:55
nopaste? 04:56
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl nopaste is probably at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/
nopaste "bacek" at 211.29.157.151 pasted "succ/pred reimplementation for pmichaud to review" (88 lines) at nopaste.snit.ch/14502 04:57
pmichaud I'm busy with containers at the moment -- can you attach it to the rt ticket for me to look at a bit later?
bacek_ yes, of cause 05:00
afk #meeting...
05:01 magnachef__ joined
dalek r32415 | pmichaud++ | rakon: 05:14
: [rakudo]: Remove rounders.t from spectest.data (needs non-cheating version)
diff: www.parrotvm.org/svn/parrot/revision?rev=32415
05:47 magnachef joined
Coke tcl doesn't work in polygotbot because tcl isn't in core. 05:53
05:53 magnachef__ joined
Tene Yeah, I know. I was just :(in about it. 05:56
Coke was telling chromatic. 05:57
Tene ah 06:00
Right. There are more people on IRC than just myself.
I remember now. 06:01
dalek r32416 | pmichaud++ | rakon: 06:40
: [rakudo]: Make sure that "$a" and "{3}" return Str.
diff: www.parrotvm.org/svn/parrot/revision?rev=32416
cotto seen barney 06:50
purl barney was last seen on #parrot 13 hours, 23 minutes and 9 seconds ago, saying: k
nopaste "moritz" at 89.13.220.217 pasted "Test failure in t/pmc/pmc.t" (9 lines) at nopaste.snit.ch/14503 07:13
chromatic Looks like fallout of removing type ids. 07:18
It passes for me though. 07:22
Did you reconfigure?
moritz yes 07:23
realclean + configure
(before the reconfigure rakudo wouldn't even build)
chromatic Strange. 07:24
purl But true.
szabgab hi ppl, is the code of dalek and purl available somewhere?
moritz I think purl is an Infobot, which is on cpan 07:25
chromatic moritz, it's t/pmc/pmc_3.pasm, I think. 07:26
The culprit anyway.
szabgab looking at infobot on CPAN
moritz $ ./parrot t/pmc/pmc_3.pasm 07:29
All names ok.
Segmentation fault
purl (Core dumped)
moritz chromatic: do you want a bt?
chromatic Yes please. 07:30
moritz nopaste.snit.ch/14504
chromatic interp->scheduler is invalid, right? 07:31
moritz how do I check?
chromatic p interp->scheduler
moritz (my gdb-fu is nearly 0 ;)
$1 = (PMC *) 0x833ec34
chromatic p interp->scheduler->vtable->delete_keyed_int 07:32
moritz Cannot access memory at address 0xdeadbfcb 07:33
chromatic p interp->scheduler->vtable
0xdeadbeef, I imagine
moritz yes
chromatic Here's the problem.
During finalization before full exit, Parrot sweeps all PMC pools and destroys everything still alive.
It's already destroyed the scheduler PMC before it destroys the Timer PMC. 07:34
The Timer PMC's destructor wants to unschedule the timer task.
Boom.
moritz sounds like it's not the first time you encountered something like that ;) 07:35
chromatic It's not. We have an order of destruction problem. 07:36
dalek r32417 | pmichaud++ | trunk:
: [rakudo]: partial spectest-progress.csv update
diff: www.parrotvm.org/svn/parrot/revision?rev=32417
chromatic There's no really good solution, other than building a dependency graph of object relationships. 07:42
07:46 uniejo joined
dalek r32418 | chromatic++ | trunk: 08:00
: [ops] Removed experimental new_i_s opcode, which was deprecated anyway, as it
: used type IDs (and getting it to work with string names is more trouble than
: it's worth for a deprecated, experimental op anyway). Only the FIA tests
: relied on it.
diff: www.parrotvm.org/svn/parrot/revision?rev=32418
r32419 | chromatic++ | trunk: 08:08
: [PIR] Revised PIR language so that .const directive takes the string name of a
: PMC type instead of the integer ID. This changed several libraries and tests,
: but all tests pass for me now. See RT #48024.
diff: www.parrotvm.org/svn/parrot/revision?rev=32419
08:22 elmex joined
elmex Zaba: hi 08:22
09:00 cosimo joined 09:33 Ademan joined 10:00 kj joined 10:06 wolverian joined 10:13 cout joined 10:52 TonyC joined 10:54 nopaste joined 11:09 nopaste joined, barney joined 11:13 TonyC joined
bacek hi all 11:20
hello purl
cotto barney, I've started hacking on Pipp's grammar and actions. svn up early and often, and let me know if there are any parts of the code I should avoid.
also, the "sea" is anything outside PHP tags, not just HTML. 11:22
I'm trying to make that part of the grammar dtrt, but I wouldn't be disappointed if you managed to fix it first. 11:23
I need sleeps. I'll see if you respond, but I'm out. 11:25
night
11:31 iblechbot joined
barney cotto++ 11:31
11:32 TonyC joined
barney WRT behavior of 'sea', a (TODO) test case would be nice 11:33
11:49 gaz joined
dalek r32420 | bernhard++ | trunk: 12:24
: Pipp: Use token <ws_char> for defining the token <ws>.
: Do not capture <ws_char>.
diff: www.parrotvm.org/svn/parrot/revision?rev=32420
barney Is there an example for a <ws> rule that requires whitespace within an identifier? 12:25
Like the default <ws> rule does?
12:26 gaz joined
moritz <after \\w> \\s+ <before \\w> # something like this? 12:28
bacek moritz: you promised to review t/junction tests :) 12:33
moritz bacek: I promised to do it in 6 hours or later, and it became later ;( 12:34
bacek no worries! 12:35
I can accept applying patch from #60390 as regrets :) 12:36
dalek r32421 | bernhard++ | trunk: 12:37
: Pipp: explicitly require whitespace after 'echo'
diff: www.parrotvm.org/svn/parrot/revision?rev=32421
moritz I don't have a working copy here (I'm at $work right now), so patch monkeying ;( 12:39
barney moritz: the rule " 'echo' '_count' " should match 'echo count' but not 'echo_count'
bacek moritz: fair enough 12:40
barney PHP has function calls without parentheses
moritz barney: did you mean 'echo _count'? 12:41
rakudo: rule w { <after \\w> \\s+ <before \\w> :: | \\s* }: "echo_count" ~~ m/\\w+ <w> \\w+/; say $/ 12:44
polyglotbot OUTPUT[Statement not terminated properly at line 1, near ": \\"echo_co"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 26705 (src/gen_grammar.pir:3187)␤called from Sub
..'parrot;Perl6;Grammar;statementlist' pc 25361 (src/gen_grammar.pir:2654)␤called fro...
barney The problem is that I have a function called 'echo_count', so the rule 'echo' <arguments> should not match first
moritz rakudo: rule w { <after \\w> \\s+ <before \\w> : | \\s* }: "echo_count" ~~ m/\\w+ <w> \\w+/; say $/
polyglotbot OUTPUT[Statement not terminated properly at line 1, near ": \\"echo_co"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 26705 (src/gen_grammar.pir:3187)␤called from Sub
..'parrot;Perl6;Grammar;statementlist' pc 25361 (src/gen_grammar.pir:2654)␤called fro...
moritz barney: then you need a word boundary assertion, I think 12:45
bacek moritz: AFAIU barney needs LTM... 12:46
moritz rakduo: if "echo_count" ~~ m/echo>>/ { say "yes" } else { say "no" }
rakudo: if "echo_count" ~~ m/echo>>/ { say "yes" } else { say "no" }
polyglotbot OUTPUT[no␤]
moritz rakudo: if "echo _count" ~~ m/echo>>/ { say "yes" } else { say "no" }
polyglotbot OUTPUT[yes␤]
barney What does the >> mean? 12:47
moritz right word boundary
rakudo: if "echo _count" ~~ m/echo\\b/ { say "yes" } else { say "no" }
polyglotbot OUTPUT[yes␤]
moritz rakudo: if "echo_count" ~~ m/echo\\b/ { say "yes" } else { say "no" }
polyglotbot OUTPUT[no␤]
moritz barney: maybe \\b as a general word boundary is more readable for the average Perl 5 hacker ;) 12:48
but in general a nice ws rule leads to a more readable grammar 12:50
and I don't understand rakudo's ws rule :( 12:51
barney neither do I 12:52
Can I use the builtin <ws> rule and just add the language specific comment rules ? 12:53
moritz maybe cardinal's ws rule is more understandable 12:55
not really, it seems
barney As my current workaround works I'll leave that for now. 12:57
First I need to support parameter passing for user defined functions, so that I can continue with a testing lib written in PHP 12:59
13:01 petdance joined
bacek is RT very slow today??? 13:19
I can't merge 2 tickets. It returns empty page... 13:20
And my mail from 10+ hours still doesn't reach ticket... 13:21
moritz: any particular bugs for rambling ex-developer? 13:29
Infinoid RT seems to load ticket pages fine, here
13:30 purl joined
moritz bacek: no, I lost contact with the RT queue some weeks ago :( 13:30
bacek moritz: how that?
moritz bacek: no time to follow it 13:32
dalek r32422 | bernhard++ | trunk: 13:34
: Pipp: set 'arity' for function definitions
diff: www.parrotvm.org/svn/parrot/revision?rev=32422
13:36 masak joined, kjinlabs joined
barney Is there a channel for twin city workshop ? 13:49
pmichaud (ws rule) PCT provides a <ww> rule that matches between two word characters 14:01
thus one can use <!ww> to say "must mot match between two word characters"
so a sample ws rule can be token ws { <!ww> \\s+ | \\s* } 14:02
er, I have that backwards
token ws { <!ww> \\s* | \\s+ }
which means "if we're not between two word characters, then zero spaces is okay, otherwise we need at least one space" 14:03
barney pmichaud: tnx, i'll try that 14:13
bacek pmichaud: good morning :) 14:16
pmichaud good morning :-) 14:17
bacek failed closing tickets in RT... 14:21
dalek r32423 | bernhard++ | trunk: 14:27
: Pipp: Refactor the <ws> rule using <!ww>
diff: www.parrotvm.org/svn/parrot/revision?rev=32423
particle hi-o 14:28
pmichaud hello, particle
bacek pmichaud: Bool.succ/pred update data in-place.
pmichaud bacek: ? 14:29
bacek looks like a bug
src/classes/Bool.pir +47
14:29 Aisling joined
pmichaud yes, looks like a bug. We can either remove the succ/pred name from the method, or redefine those to not be vtable and return the correct value. 14:30
I think I prefer the latter at the moment.
bacek +1 for latter 14:31
and applying #60390 :)
pmichaud +.sub '' :method :vtable('increment') 14:33
+ self = self.'succ'()
+ .return(self)
+.end
... that can't be correct.
self is a PMC register. 14:34
are there any tests for succ/pred ? 14:35
bacek pmichaud: S03-operators/autoincrement.t
they passed
but they looks suspicious for me 14:36
pmichaud ah, because the test is wrong.
bacek (last 2)
pmichaud the succ method is doing an inplace update.
$.value += 42; 14:37
should be
$.value + 42
bacek indeed. 14:38
14:44 gryphon joined
bacek pmichaud: actually no... 14:49
it should be Incrementer.new($.value +42)
Incrementor.new( value => $.value + 42); 14:50
Or Incrementor have to have constructor from Int. 14:51
15:03 jhorwitz joined 15:18 cosimo joined
pmichaud bacek: oh, yes -- that's a different bug. 15:25
there's a couple of bugs there :-)
bacek pmichaud: indeed :) I can't attach new version of patch. RT is broken... 15:27
Or my firefox broken... 15:33
dalek r32424 | fperrad++ | trunk: 15:34
: [Lua]
: - fix testts, new syntax .const 'Name' 15:35
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32424
15:42 cosimo joined
dalek r32425 | pmichaud++ | trunk: 16:03
: [rakudo]: spectest-progress.csv update: 211 files, 4413 passing
diff: www.parrotvm.org/svn/parrot/revision?rev=32425
r32426 | fperrad++ | trunk: 16:05
: [Lua]
: - fix compilers & libs, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32426
16:05 magnachef joined, rurban joined
barney Can I use globals in an actions.pm file? Set a flag that I'm in a function body, so that I can set the scope accordingly. 16:07
16:09 hercynium joined
particle you can drop into pir and do whatever you want 16:11
PIR< $P0 = get_global '$foo' >; 16:12
barney I tried using 'our' vars, but they were always undefined, even when they should have been initialised in previous method calls 16:16
particle rakudo definitely uses our variables to good effect 16:17
our @?BLOCKS etc
@?BLOCK 16:18
have you taken a look at how rakudo does it? 16:19
barney Yes, I've seen that.
particle did you note that in perl6.pir, we have:
## create a list for holding the stack of nested blocks
$P0 = new 'List'
set_hll_global ['Perl6';'Grammar';'Actions'], '@?BLOCK', $P0
perhaps you're missing that? 16:20
barney I was wondering why there wasn't a set_hll_global ['Perl6';'Grammar';'Actions'], '$?INIT', $P0 16:21
particle i'm wondering that, too. need to ask jonathan
barney But I try using an array for flagging.
pmichaud since NQP only supports binding, there's generally not a need to do specialized initializations for scalar vars. 16:26
particle even though $?INIT is really an array?
pmichaud it is?
purl Oh no it isn't!
pmichaud then why isn't it @?INIT ?
particle $?INIT.push(...) 16:27
great question.
pmichaud oh
$?INIT isn't an array, it's a PAST::Block
particle ah
pmichaud you're not pushing onto an "INIT" array, you're adding to the Block that is the INIT block.
or something like that.
particle heh, okay.
pmichaud $?INIT seems like the wrong name for it, at any rate. 16:28
okay, let's see if I can close out the rakon branch.
dalek r32427 | fperrad++ | trunk:
: [WMLScript]
: - fix, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32427
particle what needs doing to make that happen? fix tests&bugs?
pmichaud yes. 16:29
I have a few other refactors I want to look at. 16:30
particle are they rakon-specific refactors?
pmichaud yes.
particle k
pmichaud: i'm running spectests now, i'd like to help 16:34
pmichaud sure thing -- there's stuff you can help with. knowing how your spectests come out would be a good thing -- I get some segfaults in mine. 16:35
particle i'm a little busy with other work, but i'll see what i can do
ok
i ran spectest last night and have the results handy
this morning, actions.pm is different, so i'm rerunning now
pmichaud yes, I ran across a few bugs. :-) 16:36
spectests++ # catching bugs
particle i'm getting some bonus tests 16:37
string-interpolation, boolean-context
pmichaud yes, those are the ones we're aiming at by the fixing
we can't untodo those until we merge back to trunk, though.
particle that's what i expected. ok
assign-is-not-binding
these are all good wins 16:38
it may be another 10m before i have results
rakudo is really slow on windows these days
pmichaud it's slowing down a bit here, too.
or it may just be the standard "everything seems slower over time" perception. 16:39
particle it takes way more than 10m to run spectest now
pmichaud oh, that's quite a bit slower then.
I was noticing that on my machine as well, though. Maybe some Parrot change slowed things down. 16:40
yesterday I discovered that I can no longer run the rx.t spectest with -G, because I run out of memory.
actually, that probably tells me the day on which "whatever change" occurred. 16:41
just a sec
pmichaud starts a bisection 16:43
16:44 Theory joined
particle :) 16:46
dalek r32428 | pmichaud++ | trunk: 16:47
: [rakudo]: Remove -G flag from test_summary.pl,
: as it results in "out of memory" errors on my machine
: for the S05-mass/rx.t tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=32428
16:47 Theory joined
particle pmichaud: short spectest failure results follow: 16:55
t\\spec\\S03-operators\\context.rakudo 35 5 20-24
t\\spec\\S12-class\\declaration-order.t 5 1280 2 0 ??
t\\spec\\S16-filehandles\\io_in_while_loops. 13 2 13-14
rakudo: say ~(item 3, 2).WHAT 16:58
polyglotbot OUTPUT[Array␤]
particle > say ~(item 3, 2).WHAT;
List
which is correct?
pmichaud I think it should be List. 17:00
particle ok, then the test is wrong
S03-operators/context.t:54
rakudo: ~(item 2).WHAT
polyglotbot RESULT["Int"] 17:01
particle rakudo: ~2.WHAT
polyglotbot RESULT["Int"]
particle rakudo: ~($ 2).WHAT
polyglotbot RESULT["Int"]
pmichaud (re-reading spec), oh, perhaps it should be Array 17:03
I'm not sure.
particle yep, spec says item contextualizer creates an Array from a list 17:04
pmichaud where do you see that?
particle L<S03/"The item contextualizer"> 17:05
line 1920 or so
dalek r32429 | bernhard++ | trunk: 17:08
: Pipp: Try to use lexical scope for variables used within a function.
: But do not succeed.
diff: www.parrotvm.org/svn/parrot/revision?rev=32429
pmichaud the declaration-order.t is an odd segfault -- iirc it's even occurring in trunk. 17:09
I haven't looked at io_in_while_loops yet 17:10
r32340 fixes context.t
particle yes, that's from a change jonathan made before the branch 17:11
dalek r32430 | pmichaud++ | rakon:
: [rakudo]: item contextualizer on a list returns an Array
diff: www.parrotvm.org/svn/parrot/revision?rev=32430
particle it was segfaulting only on windows, until i refactored actions.pm with .isa
i try to spread segfaults equally among platforms
hey, you stole my commit! :P 17:12
17:12 gryphon joined
pmichaud jonathan++ does it to me all the time. :-) 17:16
particle ok, in_in_while_loops could be off-by-one
need better diagnostics in that test
eew, io is all screwy 17:18
pmichaud yes, io is screwy.
I'm willing to regress on that particular test for the time being until we get IO cleaned up.
particle something is very wrong there
i think masak won't be happy with that
pmichaud he needs that particular feature? 17:19
particle looks like my $line = =$fh is binding
seems every time i access $line, it runs =$fh
add 'diag($line)' to io_in_while_loops.t line 29 (just before is(...)) 17:20
you get 1\\n3\\n5\\n
if you remove is(...) you get 1\\n2\\n3\\n4\\n5\\n6\\n
pmichaud okay, I think I see where this is going. 17:23
fixed in r32431. 17:25
dalek r32431 | pmichaud++ | rakon: 17:26
: [rakudo]: Add '!VALUE' method to IOIterator .
diff: www.parrotvm.org/svn/parrot/revision?rev=32431
pmichaud ...and now a lot of things make a ton of sense to me.
particle: can you test if that gets rid of all of our failing tests in the branch? I need to get some lunch here 17:27
if so, then I'll do my other refactors and code cleanups and merge to trunk.
message jonathan if you could get a simple 'is also' implemented (defining methods only, no need to worry about existing instances) then I think we could start writing a Prelude-in-Perl-6 module. 17:29
purl Message for jonathan stored.
pmichaud afk (lunch) 17:33
17:39 PerlJam joined
cognominal is also? 17:44
particle is running spectest now 17:54
17:54 jan joined
particle cognominal: 'is also' allows you to add behaviors to classes 17:57
class Foo {...}; class Foo is also { method bar () {...} }; #adds method bar to class Foo 17:58
cognominal something like some fature (forgot the name) of objc 2.0
?
particle it's a feature of 'open' classes vs 'closed' classes
perl 6 classes are open by default, but you have to be explicit that you're changing the class's behavior 17:59
i'm not familiar with objc
looks like objc calls it 'categories' 18:01
A category allows you to add methods to an existing class—even to one to which you do not have the source.
cognominal yes, categories
purl rumour has it categories is easy
cognominal forget categories 18:02
purl cognominal: I forgot categories
Patterner purl: interfaces? 18:04
purl somebody said interfaces was a keyboard/chair at www.teos-inc.com/wpfloat.htm
particle it seems 'is open' in perl 6 is just like objc categories, in that you can't add attributes, only methods
Patterner purl: forget interfaces
purl Patterner: I forgot interfaces
particle however, perl 6 also has 'is instead' which lets you totally redefine the class. i don't think objc lets you do that
cognominal I am getting interesting in objc because it is used on Macs, on the iPhone and by Cappucino a powerful web app framework. 18:06
Cappuccino is client side because the code is compiled to javascript. 18:07
Cappuccino?
purl Cappuccino is probably cocoa for the web, cappuccino.org/ you write my client code in Objective-J that is prepocessed in javascript, it steals from ruby on rails toom because it has a tool similar to capistrano
dalek r32432 | fperrad++ | trunk: 18:25
: [m4]
: - fix, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32432
r32433 | fperrad++ | trunk: 18:28
: [lisp]
: - fix, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32433
18:32 magnachef joined
masak pmichaud, particle: thank you for thinking of me before regressing something :) no, I don't think we use =$fh in November. go ahead an regress it if you like. 18:42
masak is implementing .fmt tonight
particle good to hear, masak, but pmichaud++ fixed it :)
masak particle: that's ok too :)
particle now i have a test failure in the harness, but not outside :( 18:43
masak particle: that happens sometimes, I hear
it's the Harness Specialization of the Observer Paradox.
particle i'm quite familiar with that paradox ;) 18:44
masak :P 18:46
PerlJam if parrot had a documentation subsystem, paradox would be a good name for it 18:55
masak ooh 18:56
18:56 mberends joined
masak likes 18:56
dalek r32434 | fperrad++ | trunk: 19:10
: [regex]
: - fix, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32434
19:12 chromatic joined
jhorwitz particle: gonna call the hotel -- we good for our rates? 19:18
pmichaud yes, I need to book my hotel also.
chromatic Me too. 19:20
19:21 hercynium joined
dalek r32435 | fperrad++ | trunk: 19:37
: [dotnet]
: - fix, new syntax .const 'Name'
: (see r32419)
diff: www.parrotvm.org/svn/parrot/revision?rev=32435
particle jhorwitz: yep 19:42
jhorwitz and the bird is the word? 19:43
particle you can email, as well, jeanine will take care of it quickly
either way, yes.
jhorwitz what's her e-mail?
particle mailto:jconforti@jdvhotels.com as it says on the wiki :P
jhorwitz doesn't RTFM just to annoy particle 19:44
chromatic doesn't backlog, just to annoy everyone
dalek r32436 | pmichaud++ | rakon: 19:47
: [rakudo]: update svn:ignore property
diff: www.parrotvm.org/svn/parrot/revision?rev=32436
particle pmichaud: spectests pass, except for declaration-order (known) and S29-num/complex fails in the harness but not outside :( 19:48
pmichaud okay. I'm working on refactors now.
Tene ohshit I need to figure out hotels 19:52
jhorwitz I CAN HAS HOTEL RUM?
Tene HAY JHORWITZ! wanna share a room with me? 19:54
oh, no, "prefer single room" 19:55
wiki++
jhorwitz Tene can RTFM, unlinke me 19:56
^unlike
Tene RTFW
your W was upside-down. 19:57
jhorwitz :)
Tene The important question is whether I'll remember that this needs to be done long enough to do it, or if I'll just have to strong-arm my way into someone's room once I get there. 19:58
dalek r32437 | particle++ | rakon:
: [rakudo] s/mutable/objectref/
diff: www.parrotvm.org/svn/parrot/revision?rev=32437
Tene Oh, right, I got paid today, so I have money again kinda.
jhorwitz $++
masak is List:Array::Mapping:Hash in Rakudo? 20:02
pmichaud somewhat, yes.
masak ok.
pmichaud there aren't many places that produce a Mapping.
at least, not that I've found yet.
masak no.
should I put .fmt on Mapping then, not Hash? 20:03
seems other utility methods reside there. 20:04
pmichaud it has a different meaning there?
I mean, .fmt on Mapping is different from .fmt on say, List ?
masak pmichaud: aye.
pmichaud I think the general rule of thumb is that non-modifying methods go on the immutable class, while modifying methods go on the mutable one 20:05
so yes, .fmt would go on Mapping
masak great
it turns out that implementing .fmt matches my level of experience with PIR quite nicely, so this is joyful work -- not too difficult, but still challenging. 20:06
pmichaud excellent :-)
masak is `new 'Iterator', self` same as `self.'iterator'()`? 20:08
pmichaud use either self.'iterator'() or iter self 20:09
('iter' is an opcode)
masak oki
pmichaud we're moving away from the new 'Iterator' approach.
masak I see.
pmichaud: the difference between .fmt on List and .fmt on Mapping is that the former delegates to sprintf($fmt, $elem) for every element of the list, while the latter delegates to sprintf($fmt, $key, $value) for every pair of the mapping. 20:11
pmichaud masak: okay, thanks 20:13
masak Mapping didn't have an 'iterator' method. adding it. 20:15
pmichaud note that 'iterator' for mapping is supposed to return Pairs, I think. See S09. 20:25
and then all of .keys, .values, .kv, etc are supposed to be defined in terms of .iterator 20:26
(they aren't at present -- it's one of those things I've been wanting to fix)
(but needed to get containers working right first)
masak um. so what do I do? my patch is done now, and I was just about to submit it to RT. but it does add an 'iterator' method to Mapping which iterates over keys, not pairs. 20:37
is it enough if I remove the 'iterator' method from Mapping again, and rewrite the .fmt method to call the 'pairs' method instead? 20:38
if I do that, I could even delegate to the .fmt method in Pair :) 20:39
particle that seems the right thing to do
masak it does, doesn't it?
I'll just assume that pmichaud has replied 'yes' to the above. 20:40
dalek r32438 | particle++ | rakon:
: [rakudo] add docs for IO's !VALUE() method
diff: www.parrotvm.org/svn/parrot/revision?rev=32438
particle okay, pmichaud, i've done my review of the rakon branch diffs and corrected any wrongs i see. 20:41
after your refactors, seems it's clear to merge with trunk.
masak ok, I sent a patch to RT. I could have just committed it directly, I guess, but I'd like someone to review it and check that I haven't made any blatant mistakes. 20:49
pmichaud masak++ # I'll review the patch once I finish with rakon (in an hour or so) 21:05
masak perfect. gives me time to write today's blog post in the meantime. 21:06
Tene pmichaud: explain the name 'rakon' to me? 21:08
oh, 'kontainer'?
pmichaud short for "rakontainer"
masak how kute.
21:09 bacek joined
particle masak: does 'join'() ever return a non-string? 21:23
masak particle: I'm trying to thing of a case when it does.
must be a corner case, feels like.
particle i'm just hoping you checked, as i review your code :) 21:24
masak oh.
actually, I haven't reflected on that at all :/
testing.
purl testing is Don't use #perl for testing! or experiri vovere est or make tests pass for existing features, fail for unimplemented features and skip for wishlist features
masak slaps purl 21:25
purl o/` Hit me baby, one more time o/`
masak particle: seems 'join'() returns empty string on empty list
particle also, the comment for Mapping::fmt should probably just say '...implicit call to sprintf on every pair...' 21:26
masak: good news then :)
that's what i expected, but i wanted to make sure you thought about that
masak particle: aye. didn't change the docs when I changed the code...
particle ah
masak particle: I hadn't -- have now :)
particle um, you did change the docs, since 'fmt' is new 21:27
masak particle: no, I mean I wrote the code, wrote the docs, rewrote the Mapping sub, forgot to rewrite the docs for same, and submitted the patch. 21:28
particle i see.
masak sorry if that wasn't clear :)
particle one tiny nit, there's some trailing whitespace in every file but Pair.pir 21:29
nbd, easy to clean
masak I can fix that and the docs at the same time, and submit a new patch
did I add the trailing whitespace? must check again.
particle yes, you did 21:30
i'm just reviewing the patch file, i didn't apply it
masak particle: are you referring to the fact that there are two newlines after some subs?
particle no
masak ...but to...? 21:31
pmichaud lines that have a space before the newline
masak ah.
yes, that's ungood.
will remove and resend
pmichaud I'm running spectest now for the rakon branch merge
there's still a fair bit of refactoring I want to do, but I think I can do it in trunk.
particle my initial review looks good otherwise, masak++. 21:32
masak yay!
particle pmichaud: i agree, there's not much to refactor in the branch
pmichaud most of the classes/*.pir files have gotten pretty crufty lately
particle Any doesn't have a default ACCEPTS? 21:34
pmichaud it probably inherits from Object
particle Object.pir doesn't define ACCEPTS either 21:35
it does, however, define REJECTS in terms of ACCEPTS
21:36 ruoso joined
pmichaud what should .ACCEPTS return on Object/Any ? 21:36
particle if it's an abstract method at that point, than an exception 21:37
pmichaud ...isn't that what happens now? ;-)
particle :P
that's false laziness 21:38
masak Any Any scalars are identical $_ === X
according to S03
but I dunno if that's relevant to what you're discussing.
particle ok then, it should .return (self)
pmichaud no, it should probably do infix:<===>(self, topic)
masak aye.
particle i'd better switch back to trunk before i code this up 21:39
masak: does the spec say anything about Object?
masak particle: no.
pmichaud that's partially why I left it out. 21:40
21:40 japhb joined
pmichaud If the spec doesn't say one is there, and the spectests don't require one, I'm not a fan of adding one. 21:41
particle okie
dalek r32439 | pmichaud++ | rakon: 21:43
: [rakudo]: Some final refactors ( !VALUE --> Scalar ) before merge to trunk
diff: www.parrotvm.org/svn/parrot/revision?rev=32439
chromatic TimToady, ping 21:49
dalek r32440 | fperrad++ | trunk: 21:58
: [ook]
: - fix syntax
diff: www.parrotvm.org/svn/parrot/revision?rev=32440
r32441 | pmichaud++ | trunk: 22:08
: [rakudo]: merge rakon branch to trunk
diff: www.parrotvm.org/svn/parrot/revision?rev=32441
r32442 | pmichaud++ | rakon:
: Remove completed rakon branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=32442
22:19 bacek joined
bacek good morning 22:19
Am I only one who can't update RT tickets? 22:20
Infinoid bacek: where does it fail?
bacek Infinoid: on web. When I try to attach new version of patch it returns empty page after timeout. 22:21
22:21 magnachef joined
bacek And my emails to perl-bug-followup just disappearing... 22:21
pmichaud I'm posting to RT right now w/o any difficulty. 22:22
bacek pmichaud: hm... It's new ticket? 22:24
or update of old one?
22:26 register joined
cognominal > my foo $i; 22:26
No handler to delete.
this is weird, it triggers an error in the scheduler
masak I recognize that error. someone got it the other day when accessing variables that hadn't been initialized with 'my'. 22:27
pmichaud bacek: update of existing tickets.
bacek pmichaud: yak... Ok, I'll try again. 22:28
'Waiting for rt.perl.org'...
Ho! It works. But I'm using different provider ATM... 22:29
(Australian internet)--
masak cognominal: rt.perl.org/rt3/Ticket/Display.html?id=60304
bacek pmichaud: I've attached new 'succ'/'pred' to #60390. 22:30
I also changed S03/autoincrement.t but scary to commit it...
- $.value += 42; 22:31
+ Incrementor.new( value => $.value + 42);
22:32 jsut|work joined
masak sees the name 'Incrementor', thinks it's an awful name, then realizes he wrote that test a while ago 22:32
bacek :)
masak: I'm going to commit my changes in spec. Now your turn to fix it :) 22:33
masak heh.
I'm a doctor, not a Rakudo programmer! 22:34
bacek masak: take it easy. It's even not in Parrot svn :) 22:35
masak bacek: I'm not sure I grok that last comment. 22:36
isn't Rakudo using the Pugs test suite? in what way would a test be in Parrot svn?
bacek 'succ'/'pred' should return new objects, not modify self in-place...
masak right. 22:37
bacek 'not a Rakudo programmer' :)
masak well, maybe a little...
bacek Just wear a hat of 'Pugs programmer' and fix it :)
masak heh
22:38 Whiteknight joined
masak bacek: so you're saying I should fix Pugs? :) 22:38
cognominal rule scoped { 22:39
<fulltypename>* ...
should not that be <fulltypename>?
bacek masak: indeed :) 22:40
masak cognominal: I think I've seen examples in the spec with two or more fulltypenames
particle my Int Str $x; 22:44
22:44 magnachef__ joined
particle $x = "3"; 22:44
22:44 Ademan joined
masak particle: that's not an Int. 22:44
particle no, it's an Int Str :) 22:45
masak particle: were you present when we discussed Int Str on #perl the other week?
particle i used a poor example, maybe, but you can have more than one type
yes, i was on #perl6
masak ah, meant that.
particle: it is perhaps more evident that you can when N-1 of the types are roles 22:46
particle my Serializable Printable Singleton Int = 3;
masak 'xactly 22:47
bacek my Unspeakable Evil Int :) 22:48
have to go in 20 minutes (if I can trust battery meter in laptop :) 22:50
Whiteknight kjs here?
kjs?
purl it has been said that kjs is Klaas-Jan Stol <mailto:parrotcode@gmail.com> from The Netherlands or KHTML (read Safari/Koqueror)'s JavaScript engine... or called kj these days.
22:50 magnachef joined 22:51 particle1 joined, Debolaz__ joined, Aisling_ joined, jhorwitz_ joined 22:52 Hinrik_ joined
bacek What happened on 2008-10-05? -70 passing tests... 22:54
22:54 Theory joined, rhr joined, hachi joined, awwaiid joined, gmansi joined, Andy joined, Infinoid joined 22:55 contingencyplan joined, slavorgn joined
bacek afk # flat batteries... 22:57
cognominal thx 23:01
23:06 Psyche^ joined
chromatic Oh boy, a Unicode bug! 23:12
masak *gasp*
chromatic: rt.perl.org/rt3/Ticket/Display.html?id=58820 23:15
23:19 idemal joined
chromatic Oh boy, a Unicode bug with IMCC implications! 23:30
Tell me it has to run on GCC 2.96 on Mac OS X and I'll be the happiest boy in the world! 23:31
pmichaud 58820 is the one that prompted my ticket.
I don't think there are IMCC implications on this one -- it's just the escape opcode.
The escape opcode is producing a string with NUL bytes, which when fed back into IMCC causes compile errors. But the NUL bytes shouldn't be there. 23:32
chromatic Yeah, that sounds reasonably easy to diagnose.
I'll take a look in a little while.
pmichaud Excellent.
23:34 mire joined 23:36 Ademan joined
jonathan pmichaud: hi - how's the branch gone? 23:41
pmichaud it's gone.
jonathan Not had chance to look...
Oh, merged?
purl well, merged is fine
pmichaud as in, merged to trunk.
jonathan All bugs fixed?
pmichaud yes.
jonathan pmichaud++
pmichaud new ones found and fixed also.
jonathan Nice work!
pmichaud I'm closing out tickets.
jonathan Great!
pmichaud I've closed about 6 tickets thus far
jonathan Wow. 23:42
Nice work.
pmichaud 58340, 58526, 58744, 58578, 59382 so far
masak pmichaud++
23:44 Limbic_Region joined
jonathan Wow. 23:45
jonathan is impressed 23:46
pmichaud there's also probably quite a few passing spectests that need to be unskipped or untodo'd
I didn't update the spectest suite yet.
jonathan Well, there's a script for that. ;-)
pmichaud I'm hoping I can also use other people's tuits for that, too :-) 23:47
I'm saving my tuits for other things.
jonathan Sure, good plan. 23:48
23:58 magnachef__ joined
pmichaud perl6.ops:63: warning: request for implicit conversion from ‘void *’ to ‘struct PMC *’ not permitted in C++ 23:59
easy fix or file a ticket?