»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
00:12 davef left 00:21 Sunbeam[Pinged] left 00:22 Sunbeam joined 00:40 simcop2387 left 00:42 fridim_ left 17:49 ilogger2 joined 17:53 payload joined 18:12 nihiliad joined 18:14 fridim__ joined
ruoso mildew: say "Hello evalbot!" 18:15
p6eval mildew: OUTPUT«Use of uninitialized value $profile in string eq at mildew line 295.␤Use of uninitialized value $profile in string eq at mildew line 295.␤Hello evalbot!␤»
pugs_svn r27518 | ruoso++ | [re-mildew] fix warning on line 295 18:16
18:16 fridim__ left 18:31 masak joined 18:34 tann joined 18:39 kidd_ joined
ruoso just sent a proposal on the 'overriding methods declared by roles' issue... 18:42
18:42 explorer joined
moritz_ ruoso++ 18:46
18:46 xinming_ joined
ruoso I think that solves a bit the problem, since roles that degenerate to interfaces still don't require any additional keyword 18:48
moritz_ aye 18:49
I don't like the 'augment method' though
hm
ruoso you don't like the keyword or the concept?
moritz_ the keyword
thinking a bit more about it, it's exactly the thing we do for classes 18:50
so not too bad
ruoso yeah... that's what I thought
moritz_ glad to see that TimToady++ re-thought the file test thing 18:51
masak when does one use 'augment method' and when 'supersede method'?
Tene masak: Yes, I have Parrot talking to a gui lib 18:52
masak Tene: wootness.
ruoso masak, see my last post to p6l
masak ruoso: aye, I will.
Tene masak: I wrapped Elementary, one of the Enlightenment libraries.
masak Tene: I think you should blog about it, unless you already have.
Tene masak: I was planning on adding some OO to it first. 18:53
masak: there are some significant issues about putting any real effort into it, though...
masak oki, your choice. just pointing out that what you have already is blog-worthy. 18:54
Tene 1) Not exactly commonly installed or convenient to build. It's fairly experimental, even for the Enlightenment folks
2) It randomly segfaults on startup, in the library parts, not Parrot.
masak moritz_: I arrived at a much smaller, cleaner patch thanks to your tip. pushing it now. 18:55
Tene However, I did get callbacks working.
masak Tene: sounds very promising.
Tene and I trust you much more than myself about what's blog-worthy.
moritz_ sees that masak++ is No. 2 to on the ironman feed list, and wonders if that's sorted by frequency, or ranking somehow 18:56
masak moritz_: URL?
oh, that list.
it might be that I was among the first to apply.
moritz_ anyway, with parrot HEAD the spectests are much cleaner now 19:00
masak moritz_: oh, and your tests in t/spec/S32-str/encode.t are nice and all, but I made 5 out of 7 pass by letting .encode return [] and .decode ""
:P
moritz_ "Non-zero wait status: 6" twice
masak I think we need more tests. 19:01
masak writes some more tests
moritz_ and two infinite recursion cases
Tene masak: oh, and the wrapped lib is usable from all of the HLLs. 19:02
masak Tene: handy.
moritz_ masak: uhm, what did you do to eqv to make that work=
s/=/?/
masak moritz_: Buf does Positional
dalek kudo: 0bca00c | masak++ | (3 files):
implemented skeletal Buf type

adds stubbed .encode and .decode methods to Str and Buf, respectively.
moritz_ masak: bah, you're evil 19:03
making it return an empty list...
masak moritz_: :> 19:04
moritz_ so only the tests fail that do a sting comparison
masak aye.
fixing that now.
moritz_ maybe it should even be 'does Positional[Int]' if Rakudo can handle that
tann p6eval: .say for 10..1; 19:06
moritz_ rakudo: .say for 10..1 19:07
p6eval rakudo 08928d: ( no output )
moritz_ 10..1 is an empty range
tann pugs: .say for 10..1;
p6eval pugs: ( no output )
masak rakudo: class Blargh does Positional[Int] { }
p6eval rakudo 08928d: ( no output ) 19:08
masak moritz_: good idea. I'll add that.
moritz_ rakudo: class A does Positional[Int]; my $x = A.new; $x.push: 5; say $x; 19:09
p6eval rakudo 08928d: OUTPUT«Method 'push' not found for invocant of class 'A'␤»
moritz_ rakudo: class A does Positional[Int]; my $x = A.new; $x[0] = 5; say $x
p6eval rakudo 08928d: OUTPUT«elements() not implemented in class 'A'␤in Main (/tmp/6En0Vwxzrf:2)␤»
moritz_ rakudo: class A does Positional[Int]; my $x = A.new; $x[0] = 5; say "alive"
p6eval rakudo 08928d: OUTPUT«elements() not implemented in class 'A'␤in Main (/tmp/xKfxmyyh1m:2)␤»
tann moritz_: so how can i go *backward*? ie. 10..1
masak moritz_: you don't get .push or .[] just because you do Positional... 19:10
moritz_ tann: it's supposed to be 10..1:by(-1), but it's not yet implemented
masak: sure I get []
19:10 Whiteknight joined
moritz_ masak: the question is where it stores it 19:10
tann pugs: .say for 10..1:by(-1);
p6eval pugs: OUTPUT«*** ␤ Unexpected ":by"␤ expecting "_", fraction, exponent, term postfix or operator␤ at /tmp/FQcLffNzNb line 1, column 15␤»
moritz_ uhm, I mean I should get it
masak moritz_: then that's a bug? the 'elements' thing?
moritz_ not 100% sure 19:11
S02 says "The C<Positional>
role implies the ability to support C<< postcircumfix:<[ ]> >>."
tann rakudo: for 1..10 { my @a = 1..5; my $i = (0..4).pick; @a[$i,@a.end] = @a[@a.end,$i]; say @a.perl }
moritz_ that's a bit vague, I'd say
p6eval rakudo 08928d: OUTPUT«[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤[1, 5, 3, 4, 2]␤»
tann moritz_: seems like a bug in rakudo
masak moritz_: aye 19:12
moritz_ rakudo: my @a = 1..5; for 1..10 { my $i = (0..4).pick; @a[$i,@a.end] = @a[@a.end,$i]; say @a.perl }
p6eval rakudo 08928d: OUTPUT«[1, 5, 3, 4, 2]␤[1, 2, 3, 4, 5]␤[1, 5, 3, 4, 2]␤[1, 2, 3, 4, 5]␤[1, 5, 3, 4, 2]␤[1, 2, 3, 4, 5]␤[1, 5, 3, 4, 2]␤[1, 2, 3, 4, 5]␤[1, 5, 3, 4, 2]␤[1, 2, 3, 4, 5]␤»
moritz_ tann: agreed; care to submit a bug report? 19:13
rakudo: say my $i = (0..4).pick; say $i.perl
p6eval rakudo 08928d: OUTPUT«2␤[2]␤»
moritz_ uhm.
tann: maybe not a bug...
pugs_svn r27519 | masak++ | [t/spec/S32-str] fudged encode.t for Rakudo
r27519 | masak++ |
r27519 | masak++ | Also added two tests to check against a vacuous Buf implementation.
moritz_ tann: if it returns an array, it's always 1 in numeric context 19:14
tann moritz_: should be a list instead of an array?
pugs: for 1..10 { my @a = 1..5; my $i = (0..4).pick; @a[$i,@a.end] = @a[@a.end,$i]; say @a.perl }
p6eval pugs: OUTPUT«\(1, 2, 5, 4, 3)␤\(1, 2, 3, 4, 5)␤\(1, 5, 3, 4, 2)␤\(1, 2, 3, 5, 4)␤\(5, 2, 3, 4, 1)␤\(5, 2, 3, 4, 1)␤\(5, 2, 3, 4, 1)␤\(1, 2, 5, 4, 3)␤\(1, 2, 3, 5, 4)␤\(1, 2, 3, 4, 5)␤»
moritz_ maybe it should be a scalar instead of a container of scalars
tann moritz_: pugs seems to get it right 19:15
moritz_ S32 says "Due to the normal semantics of returning a C<Capture>, a pick of a
single element may be used as an item without requiring C<.[0]>."
ok, rakudo doesn't do captures
masak nor Parcels. 19:16
moritz_ sees no Parcel in the spec
masak it's from a future spec. :P
tann moritz_: if it's not a bug in rakudo, it can be quite an outrageous feature that breaks lots of code :)
19:17 frettled left, frettled joined
masak rakudo: say 4[0] 19:17
p6eval rakudo 08928d: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'Int'␤»
masak rakudo: say 4.list[0]
moritz_ tann: ok, it's a bug ;-)
p6eval rakudo 08928d: OUTPUT«4␤»
masak tann: if you want something backwards-compatible (which works after the correct behaviour is implemented), you can do @a.pick.list[0] 19:18
tann masak: yes, me aware of that 19:19
dalek kudo: d9bf358 | masak++ | t/spectest.data:
[spectest.data] added t/spec/S32-str/encode.t
19:20
tann masak: the problem is in the spec, there's an example along the line "if you really want a random integer, you probably need my $n = (1..100).pick;"
masak what's problematic about it? 19:21
tann masak: and i follow that to pick a random index for my quicksort pivot which actually turns out to be an array obj...and when used as an array index, it hideously screws up my quicksort :) 19:22
masak tann: welcome to the world of development on top of Rakudo.
if you don't like workarounds, it's going to be a bumpy ride. :)
19:23 |Jedai| joined
moritz_ tann: I'm working on a fix 19:23
masak moritz_++
tann masak: was trying to demonstrate some cool stuff in p6 in my blog .... and in this instance, the new shiny .pick .... but unfortunately, hasn't worked yet :( 19:24
moritz_: mucho gracias!
now i can finish my blog :)
masak ...post.
masak has a pet peeve 19:25
moritz_ masak: only one? ;-)
masak :P
tann masak: don't let it shorten your longevity
masak oh, surely not. sour people are better conserved. 19:26
moritz_ tann: bah, it's not that easy...
I thought that I could just return a single element from .pick()
but that trips up another test
masak interesting. which one?
moritz_ which tests that [[1,2],[3,4]] does not flatten
masak ah, of course. 19:27
spectests++
tann spec says .pick returns a "selection" .. ie. list/capture or array?
moritz_ rakudo: for 1..5 { say [[1, 2], [3, 4]].pick.perl } 19:28
p6eval rakudo 08928d: OUTPUT«[[1, 2]]␤[[1, 2]]␤[[3, 4]]␤[[3, 4]]␤[[3, 4]]␤»
masak std: Selection
p6eval std 27519: OUTPUT«Undeclared name:␤ Selection used at 1 ␤ok 00:02 36m␤»
moritz_ tann: a capture, I'd presume
rakudo: for 1..5 { say [[1, 2], [3, 4]].pick(*).perl }
p6eval rakudo 08928d: OUTPUT«[[1, 2], [3, 4]]␤[[3, 4], [1, 2]]␤[[1, 2], [3, 4]]␤[[3, 4], [1, 2]]␤[[3, 4], [1, 2]]␤»
masak moritz_: wow, that could make for a good rap song generator. 19:29
moritz_ I don't understand that... with my local patch it also says [[1, 2], [3, 4]] or [[3, 4], [1, 2]]
then why does test 15 fail?
masak rakudo: for 1..3 { .say for ['funk that woozy', 'whoz da op?'].pick(*) } 19:30
p6eval rakudo 08928d: OUTPUT«whoz da op?␤funk that woozy␤funk that woozy␤whoz da op?␤whoz da op?␤funk that woozy␤»
masak yo.
moritz_ lol 19:31
uhm
I was looking at the wrong test
masak: care to look at test 14? 19:32
erm, 15
ok ?([[1, 2], [3, 4]].pick.[0].join('|') eq any('1|2', '3|4')), '[[1,2],[3,4]].pick does not flatten';
is that .[0] actually correct?
I mean if it returns a single item
masak well, the item is an Array...
moritz_ then it should just be .pick.join('|')
masak oh. yes.
moritz_ so, test FAIL, patch WIN? 19:33
19:33 pmurias joined
pmurias ruoso: hi 19:33
masak seemingly.
tann moritz_: looks like a bogus test 19:36
pugs_svn r27520 | moritz++ | [t/spec] extended and corrected pick.t
moritz_ I think it's from the time before we had the explicit Capture return 19:37
tann ah...
time to recompile :)
moritz_ just pushed
dalek kudo: f55d489 | moritz++ | src/builtins/any-list.pir:
make one-item List.pick() return a scalar

it only stores a single scalar. Since we don't have captures at the moment, this seems to be a sensible workaround for people using the result of
  @numbers.pick as array index.
  tann++ for bringing this to our attention again.
tann kudos to moritz_, the man
masak $moritz_.push($kudos) 19:38
moritz_ bows 19:39
tann $moritz_.push($RAkudos)
moritz_ dotnetmasters.com/historyofcfamily.htm btw, nice read 19:40
while writing this patch I found my PIR to be rather rusty
payload i have a sub foo($a, $b) .... can i pass a @x = 1,2 so that $a = 1 and $b = 2 ? like the python foo(*array) ?
moritz_ I needed about 6 recompiles until I got the Perl 6 equivalent of @result == 1 ?? @result[0] !! @result working 19:41
payload: foo(|@x)
payload ah thx
moritz_ noticed he just hilighted payload in that commit message ;-) 19:42
19:42 szabgab joined
payload rakudo: my @x = 2,5; say "moufoo".substr(|@x) 19:43
p6eval rakudo 08928d: OUTPUT«ufoo␤»
payload rakudo: my $x = [2,4]; say "moufoo".substr(|$x)
p6eval rakudo 08928d: OUTPUT«ufoo␤»
19:44 |Jedai| left
payload rakudo: say "moufoo".substr(|(2,3)) 19:44
p6eval rakudo 08928d: OUTPUT«ufo␤»
tann "C# is introduced as part of the release version of Microsoft .NET. C++ developers on the Microsoft platform rejoice over the concept of “managed code”, which means they finally receive the same automatic memory management features that Visual Basic has had since 1991 and Java has had since 1995." and perl 1987? :) 19:46
araujo hah
moritz_ and lisp since... 19:47
payload before 0 i think 19:49
rakudo: say time 19:50
p6eval rakudo f55d48: OUTPUT«1247428209.46307␤»
moritz_ rakudo: say Temporal.new
p6eval rakudo f55d48: OUTPUT«Null PMC access in getprop()␤in Main (src/gen_setting.pm:3340)␤»
moritz_
.oO( ... )
19:51
rakudo: say Nonexistant.new
p6eval rakudo f55d48: OUTPUT«Could not find non-existent sub Nonexistant␤»
19:51 SmokeMachine joined
moritz_ rakudo: say non-existent.new # lame, I know 19:51
p6eval rakudo f55d48: OUTPUT«Could not find non-existent sub non-existent␤»
tann rakudo: my @a = 1..5; @a.rotate(2); say @a.perl; 19:53
moritz_ tann: p6eval doesn'T like the bold markers
rakuO: my @a = 1..5; say @a.rotate(2).perl 19:54
tann moritz_: uh oh...didn't know i just committed a sin :)
moritz_ rakudo: my @a = 1..5; say @a.rotate(2).perl
p6eval rakudo f55d48: OUTPUT«[3, 4, 5, 1, 2]␤»
moritz_ tann: not a sin, it just didn't match ^rakudo:
19:56 masak left
tann moritz_: should there be a visible link to rt on rakudo.org? or that would just lead to too many bogus tickets? 19:59
moritz_ tann: id would not, since you can't submit throug the web interface anyway ;-) 20:00
anyway, if you tell me which page it would fit on I can add it 20:01
tann oh man, submitting rakudo bugs is so unix-like :)
moritz_: methinks, "how to help" (or possibly "project status")? 20:02
payload rakudo: "foo".match(/bar/).perl.say;$/.perl.say; 20:03
p6eval rakudo f55d48: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "",␤ Str => "",␤ from => 3,␤ to => -2,␤)␤undef␤»
payload not the correct result i think 20:04
moritz_ payload: what woulc you have expected?
payload should be from => 0, to => 0 and maybe $/ should contains the same instead of being undef ?
moritz_ from => 0, to => 0 could be successful zero-width match 20:05
anything evaluation to False in boolean context is allowed, afaict
payload but what does from => 3, to => -2 tell me? 20:06
20:07 pmurias left
moritz_ nothing interesting 20:08
tann rakudo: my @a = 1,2,3; say @a.perl; my @b = [1,2,3]; say @b.perl; say @b[0].perl; 20:10
p6eval rakudo f55d48: OUTPUT«[1, 2, 3]␤[[1, 2, 3]]␤[1, 2, 3]␤»
tann should @b.perl shows [[1, 2, 3]]? 20:11
moritz_ yes
tann oh, it does
moritz_ because you store an array in the first item
tann need new glasses
20:13 nbrown joined 20:15 icwiener_ joined
payload rakudo: my $m = "foo".match(/o/);$m.perl.say;$/.perl.say; 20:34
p6eval rakudo f55d48: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "o",␤ Str => "o",␤ from => 1,␤ to => 2,␤)␤undef␤»
payload rakudo: my $m = "foo" ~~ /o/;$m.perl.say;$/.perl.say;
p6eval rakudo f55d48: OUTPUT«Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "o",␤ Str => "o",␤ from => 1,␤ to => 2,␤)␤Match.new(␤ # WARNING: this is not working perl code␤ # and for debugging purposes only␤ ast => "o",␤ Str => "o",␤ from => 1,␤ to =>
..2,␤)␤»
payload match doesnt set $/... i have to find the spec for that 20:35
moritz_ S05 probably, either way 20:36
20:37 kate21de joined 20:40 tann_ joined, tann left
payload i think the match method isnt specced 20:41
moritz_ see perlcabal.org/syn/S05.html#Substitution
payload it's not specced and not tested that the match method should not set $/ 20:46
moritz_ so let's get some spec clarification, shall we? 20:47
payload yes ^^
but i think the current behaviour is wrong
it should set $/
moritz_ mail sent. 20:51
20:56 kate21de1 joined 21:04 nihiliad left, nihiliad joined 21:05 dukeleto joined 21:14 kate21de left 21:21 explorer left 21:22 Jedai joined 21:24 mtkatwork joined, mtkatwork left 21:27 nacho__ joined
ruoso moritz_, just replied to your message... 21:29
ruoso .oO( is using twitter too much, now he thinks that should notify people after sending a message )
21:35 nbrown_ joined
payload "notify people after sending a message" sounds like xmpp 21:35
is there twitter to xmpp stuff? ^^ 21:36
21:41 nbrown left
ruoso payload, surprisingly, even if twitter is itself implemented over XMPP technology, it doesn't expose itself via XMPP 21:42
which is a shame, since if it was the XMPP federation would allow a lot of nice things to happen 21:43
but otoh wouldn't force everyone to use their crappy service...
ruoso considered re-implementing what twitter does by adhering to XMPP as-is 21:44
ruoso thought, otoh, that it would be too much work for too few benefits
21:46 skids joined 21:55 explorer joined 21:56 nbrown_ left 21:57 dukeleto left 22:03 nbrown joined 22:05 broquaint joined
tann_ rakudo: my @a = 1..5; @a.delete(3); say @a.perl; 22:07
p6eval rakudo f55d48: OUTPUT«Null PMC access in isa()␤in method Any::map (src/gen_setting.pm:191)␤called from method List::perl (src/gen_setting.pm:939)␤called from Main (/tmp/y5mpTXjJ4S:2)␤»
tann_ moritz_: ^^ not yet implemented? 22:08
moritz_ tann_: no, bug. 22:09
tann_ pugs: my @a = 1..5; @a.delete(3); say @a.perl;
p6eval pugs: OUTPUT«\(1, 2, 3, undef, 5)␤»
moritz_ (and I think it's known already)
rt.perl.org/rt3/Ticket/Display.html?id=67446 22:10
tann_ rakudo: my @a = 1..5; @a.splice(3.1); say @a.perl;
p6eval rakudo f55d48: OUTPUT«[1, 2, 3, 4]␤»
moritz_ 3.1? 22:11
tann_ guess: offset, length :)
like p5 :)
moritz_ with ., not , ?
tann_ oopsie 22:12
rakudo: my @a = 1..5; @a[2].delete; say @a.perl; 22:13
p6eval rakudo f55d48: OUTPUT«Method 'delete' not found for invocant of class 'Int'␤»
tann_ pugs: my @a = 1..5; @a[2].delete; say @a.perl;
p6eval pugs: OUTPUT«*** Argument is not a Hash or Array element or slice in delete: VInt 3␤ at /tmp/LpwgxwPJrp line 1, column 15-27␤»
22:14 ihrd joined 22:15 davef joined
pmichaud hello 22:15
phenny pmichaud: 16:20Z <masak> tell pmichaud this is how far I got: gist.github.com/145678 -- when running this on t/spec/S32-str/encode.t, I get "Method 'decode' not found for invocant of class 'Perl6Buf'", which makes me think I've gone wrong somewhere.
s1n pmichaud: where in the spec is the best place to find WALK details?
moritz_ s1n: S12 22:16
s1n moritz_: thanks
moritz_ pmichaud: I think you can safely ignore masak's message, he already pushed a version that doesn't suffer from that problem
pmichaud moritz_: okay, ignoring. :-) 22:17
moritz_ pmichaud: btw with rakudo master and parrot HEAD I'm down to 4 four failures in 'make spectest'
pmichaud moritz_: yes, and I know the cause (and fix) for two of them.
moritz_ two are non-zero wait status
pmichaud As soon as my spectest finishes here I should be able to fix the other two.
moritz_ and two are infinite recursions
22:17 ihrd left
pmichaud (the infinite recursions are the ones I'm fixing) 22:17
moritz_ ok 22:18
btw I get the same error both on gcc-4.3 and on clang HEAD
pmichaud the non-zero wait status ones aren't easily fixed -- they have to do with exception issues in Parrot, I think.
payload rakudo: my $_ = [1,2,3,4]; .[0..^*/2].say; .[*/2..^*].say; 22:22
p6eval rakudo f55d48: OUTPUT«12␤34␤»
payload rakudo: my $_ = [1,2,3,4,5]; .[0..^*/2].say; .[*/2..^*].say;
p6eval rakudo f55d48: OUTPUT«123␤345␤»
moritz_ somehow your code really looks scary ;-)
payload ^^ 22:23
maybe it's too late to think well but how do i split an array into halfs? 22:24
pmichaud depends on how you want a odd-element array to split
payload without overlapping
moritz_ payload: basically like you did, but adding an .int
pmichaud keep in mind that rakudo's ranges don't always handle * correctly 22:25
(bare *, that is)
moritz_ or go to */2 -1 instead of ^*/2 22:26
pmichaud or just use splice.
moritz_ anyway, bed time for me, see you all tomorrow
22:27 dukeleto joined
payload oh yes 22:28
splice looks nicer
*/2-1 works also
but i don't know where to spam .int ^^ 22:29
22:30 PacoLinux left
payload argh damn 22:31
splice is destroying
pmichaud true, it does modify the array. 22:32
I would guess [0..(*/2).floor] and [(*/2).floor^..*]
although rakudo will probably have a little difficulty with ..* in the latter. 22:33
payload yes it has... i will use .elems for now 22:34
22:41 broquaint left 22:52 ihrd joined, ihrd left 23:01 nacho__ left 23:03 Whiteknight left
dalek kudo: d153cdc | pmichaud++ | src/classes/Num.pir:
Clean up Num.succ and Num.pred, which were infinite looping.
23:13
kudo: 4024702 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to take advantage of latest gc cleanups.
s1n what is a Selector? 23:15
WALK's :omit and :include take a Selector, is that a regex? the example uses $?CLASS though 23:17
23:21 icwiener_ left 23:25 kidd_ left 23:29 Jedai left