»ö« | 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.
spx2 lol , my code didn't compile because of a SPACE character 00:03
that was pretty lame
dalek kudo: 48c1791 | pmichaud++ | docs/release_guide.pod:
More release_guide.pod improvements.
00:06
00:09 nihiliad joined
TimToady spx2: when in doubt you can feed code to the STD parser to see what it thinks, and sometimes get a better error message 00:10
std: while(1) { .say }
p6eval std 27472: ( no output ) 00:11
TimToady heh
spx2 std: sub bc($n,$k){[*]map ->$x, $y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
p6eval std 27472: ( no output )
spx2 TimToady: check it out
TimToady but it won't like the absence of a space after [*]
since that's a listop
spx2 std: sub bc($n,$k){[*]map ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
p6eval std 27472: ( no output )
spx2 hmm 00:12
TimToady std: 1
p6eval std 27472: OUTPUT«ok 00:02 36m␤»
spx2 that space character between $x and $y made it choke over here
TimToady std: while(1) { .say }
00:12 cls_bsd joined
p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤while() interpreted as function call at line 1 ; please use whitespace instead of parens␤Unexpected block in infix position (two terms in a row) at /tmp/cGRaz3KEfi line 1:␤------> while(1) { .say }␤ expecting any of:␤ infix or 00:12
..meta-infix␤ i…
spx2 TimToady: what's the std thing ?
TimToady std: sub bc($n,$k){[*]map ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k));}
p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/WN9WIlVHOW line 1:␤------> sub bc($n,$k){[*]map ->$x,$y{$x/$y},(($k+1..$n)Z(1..$n-$k␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤
..postfix_prefix_meta_operator␤ prefix_circ…
TimToady running the standard parser
spx2 yeah ! 00:13
that's it
TimToady you can also run it directly if you have a pugs repo
spx2 also is there like some module for writing tests in p6 /
?
TimToady cd src/perl6 and make
spx2 TimToady: I run rakudo
TimToady then use tryfile to run a file 00:14
well, parse a file
it doesn't run it
rakudo is trying to approximate STD's parser
but not there yet
eventually rakudo will simply run STD
spx2 hmm, so pugs is more evolved than rakudo ?
I mean , does it implement more of the specs than rakudo ? 00:15
jnthn rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) { ... } }
p6eval rakudo 19b8db: ( no output )
jnthn rakudo: role xxx { multi trait_mod:<is>(Code $block, xxx $trait) is export { ... } }
p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/xSnFsOhiRF:2)␤»
jnthn rakudo: class C { multi foo() is export { } } 00:16
p6eval rakudo 19b8db: ( no output )
jnthn rakudo: role R { multi foo() is export { } }
p6eval rakudo 19b8db: ( no output )
jnthn rakudo: role R { multi foo() is export { ... } }
p6eval rakudo 19b8db: ( no output )
jnthn rakudo: role R { multi trait_mod:<is> is export { ... } }
p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/zgBoqDeEzv:2)␤» 00:17
jnthn rakudo: class C { multi trait_mod:<is> is export { ... } }
p6eval rakudo 19b8db: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/Bnnass71W2:2)␤»
jnthn oh, I know what's wrong.
Your trait_mod:<is> in that namespace is hiding the one in the outer namespace.
Not quite sure what the answer is to that. 00:18
TimToady spx2: not really, just a different subset of the specs, and rakudo is certainly closer to the current specs 00:20
pugs has had a certain amount of design rot
though to the extent that *anything* written in Haskell is more evolved than *anything* written in C, you are correct :) 00:22
jnthn TimToady: If you has an answer on the trait_mod issue, I'm curious to know. But no hurry, I'm going to sleep now, so I won't care about it until tomorrow, and on Thursday I'm going to the mountains for 10 days, so if you're lucky I won't care for nearly two weeks. ;-)
spx2 is there a name for [*] ? 00:24
shorthand notation for reduce ?
TimToady it's the reduce metaoperator
jnthn reduction meta-operator
spx2 thank you :)
TimToady S03:3739 00:25
00:26 payload left 00:36 Whiteknight left
jnthn -> sleep 00:38
00:39 DemoFreak left, payload joined
dalek kudo: 116fa46 | jnthn++ | src/ (2 files):
Fix nextwitha and callwith.
00:41
kudo: 70bfd5c | jnthn++ | :
Merge branch 'master' of [email@hidden.address]
Tene jnthn: did I hear that you fixed lexicals with .wrap?
spx2 what happens if I'm iterating @a Z @b where len @a != len @b ? 00:49
pmichaud rakudo: say 1,2 Z 4,5,6
p6eval rakudo 70bfd5: OUTPUT«1425␤»
pmichaud stops on the shortest list
spx2 thanks 00:50
skids (unless a list ends in *, but that's not quite there yet.)
spx2 skids: what's the * supposed to mean ?
pmichaud "whatever"
skids repeat the last element of the list to fill out until the end of the next longest array.
pmichaud ....what if all of the lists end in * ? 00:51
skids Then you get lazy infinite.
pmichaud interesting. :-)
spx2 pmichaud: you mean like this www.youtube.com/watch?v=Xz7_3n7xyDg ? 00:52
Tene rakudo: my $a; .say for gather take $a += $_ for 1..5 00:53
p6eval rakudo 70bfd5: OUTPUT«15␤15␤15␤15␤15␤»
Tene pmichaud: is this a rakudobug?
pmichaud Tene: it's not yet decided 00:55
it's the "take the same item in the loop" issue
although I've been wondering if take should treat its parameters as always being "is copy"
Tene rakudo: .say for gather take 100 + (state $a += $_) for 1..5
p6eval rakudo 70bfd5: OUTPUT«Null PMC access in get_pmc_keyed()␤in Main (/tmp/68nYhCpA1K:2)␤» 00:56
pmichaud I suspect there are still issues with the handling of the lhs of "for"
skids Hrm, how do you return an empty list from a sub with return type List is () is type Nil ? 00:57
*if
last
pmichaud Nil isn't a type
rakudo gets that wrong, currently.
but you should be able to do return ()
Tene rakudo: .print for gather for <0 1 3 4 3 3 5> { take 0 + (state $a += $_) }
p6eval rakudo 70bfd5: OUTPUT«0111111»
skids rakudo: my List foo { return (); }; $a = foo(); $a.WHAT.say 00:58
p6eval rakudo 70bfd5: OUTPUT«Malformed declaration at line 2, near "List foo {"␤in Main (src/gen_setting.pm:3340)␤»
skids rakudo: my List foo () { return (); }; $a = foo(); $a.WHAT.say
p6eval rakudo 70bfd5: OUTPUT«Malformed declaration at line 2, near "List foo ("␤in Main (src/gen_setting.pm:3340)␤»
skids rakudo: my List sub foo () { return (); }; my $a = foo(); $a.WHAT.say 00:59
p6eval rakudo 70bfd5: OUTPUT«Return value type check failed; expected List, but got Nil␤in sub block_18 (/tmp/HhBfcxD1NL:2)␤called from Main (/tmp/HhBfcxD1NL:2)␤» 01:00
skids there we go.
pmichaud Right.
Rakudo gets that wrong, currently. 01:01
lisppaste3 skids pasted "p6 zip implementation, sans slice" at paste.lisp.org/display/83206
Tene rakudo: my $a; .chr.print for (gather take 100 + ($a += $_) for <0 1 3 4 3 3 5>)[2133464530.comb] 01:02
p6eval rakudo 70bfd5: OUTPUT«helloworld»
skids Tene: that was fairly evil. 01:08
Tene rakudo: .chr.print for 100 <<+<< (gather take +($*a += $_) for <0 1 3 4 3 3 5>)[2133464530.comb] 01:09
p6eval rakudo 70bfd5: OUTPUT«helloworld»
Tene Better
I don't like the characters in there literally... working on some way to encode them in a sequence.
skids hex the decimal-1, increment it, let it stringify for comb? 01:11
Tene I'd prefer to generate the sequence with only small constants from something like 1..7 01:12
skids give rakudo's radix literals a little workout?
01:22 frew_ joined
Tene Is there a method form of infix:Z? 01:27
01:27 hcchien joined
skids Tene: see my paste 01:28
Oh, method, not sub? Don't think so. 01:35
jdv79 i just thought of something - if it took me 5 or so years to learn p5 fairly well how long will it take to learn p6? 01:38
well, more like 2 now that i think about it more
skids Depends on how deeply. There's always little corners that can escape attention until you run into them. 01:39
jdv79 p6 seems much "larger" than p5 01:40
skids But hopefully those will be less, having the benefit of hindsight.
Well, in some ways.
P5 has a lot more "between the lines"
jdv79 hope so:)
xinming_ jdv79: If you learnt how to programming in perl 5, You'll just need to learn how to write it in perl 6. 01:44
jdv79: and the most important thing is how to programming, Not the syntax sugar. :-)
jdv79: yes, perl 6 will be much larger, but it still remains in perl, you don't need to think too much differently in perl 6. 01:45
skids Laziness will be fun though. Changes the way you go about working on a problem. 01:46
xinming_ jdv79: And btw, If you use perl 5, when you switch to perl 6, You just get the nicer and more consistent syntax. 01:47
last I wanted to ask a question about laziness: once it's in place, if you do something like "[+] map { payback(int(rand() * 100)+1) }, ^$plays", will it take the same amount of memory no matter how big $plays is? 01:48
tann "rakudo gets that wrong, currently" is my new signature :)
skids last: lazy lists are intended to keep memory profile low -- not necessarily minimal, but low. 01:52
It will prbably vary by implementation.
last skids: but it will probably be O(1) memory use rather than O(N), right? 01:53
skids It should chunk it up, at least, but an implementation might decide "hey I got plenty of memory" 01:54
But one would hpe implementations would target O(1) for values of N > some not-too-insane-number. 01:55
The tuning of laziness is still a bit vague in the spec. There's some stuff on S07, but little about making things "more lazy than usual" yet. 01:56
01:58 Tene left
jdv79 its not how to code in general but the idioms 01:59
that has breadth
skids I suspect the early adopters will be writing code that looks nothing like P5 in a year or so, once everything sinks in and the new features start to get used in combination with each other. 02:01
02:04 amoc joined 02:09 jdv79 left, jdv79_ joined 02:12 jdv79 joined 02:13 jdv79_ left, Limbic_Region left
nothingmuch q=/w 46 02:18
02:19 xinming joined 02:20 SmokeMachine joined 02:22 amoc left, amoc joined 02:24 jdv79 left 02:25 Tene joined, SmokeMachine left 02:27 FCO left, cdarroch left 02:29 last left
Tene pmichaud: should (list)>>.method and (list)».method be exactly the same? 02:29
... oh, nm. I must have done something stupid. 02:30
02:30 xinming_ left 02:46 xinming_ joined 02:52 DC joined 03:02 xinming left
Tene Okay, here we go 03:03
rakudo: say [~] (98 <<+<< (([,] gather take ($_+2+int($_/3))%3 xx $_+1 for 0..3).map: { $*b++ * 3 + $^a })[2133474530.comb])>>.chr
p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤helloworld␤»
03:14 frankshaw joined 03:16 DC left 03:17 HemanShaw joined 03:19 frankshaw left, tann left 03:22 molaf joined 03:29 alanhaggai joined
s1n is rakudo's harness the only way of writing perl6 tests in perl6 right now? 03:37
sjohnson no
pugs: print "will do it too"
p6eval pugs: OUTPUT«will do it too»
03:38 alester joined 03:39 molaf left
s1n pugs: use Test; plan 1; my $a = 1; is($a, 1, 'hello world'); 03:41
p6eval pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤ at /tmp/bMKZiXXgyO line 1, column 1␤»
s1n rakudo: use Test; plan 1; my $a = 1; is($a, 1, 'hello world'); 03:42
p6eval rakudo 70bfd5: OUTPUT«1..1␤ok 1 - hello world␤»
s1n hmm
Tene s1n: Test.pm emits TAP. You can use that with *any* TAP aggregator or harness. 03:45
03:54 ihrd joined 03:55 molaf joined 03:59 jauaor joined 04:09 HemanShaw left 04:12 DC joined 04:14 DC left, HemanShaw joined 04:15 SmokeMachine joined 04:23 nacho_ left, molaf left, nihiliad left, araujo left 04:25 jrtayloriv joined, ihrd left 04:38 jrtayloriv left 04:40 skids left, tann joined 04:43 tann_ joined, ihrd joined 04:44 Khisanth left 04:47 tann left 04:49 synth left 04:50 synth joined 04:54 khisanth_ joined 05:02 araujo joined
pmichaud s1n: Rakudo's t/harness simply adapts Test::Harness to be able to invoke "perl6" instead of "perl" on the test files. 05:07
s1n pmichaud: does it depend on parrot's harness? 05:08
(or any of parrot's test facilities?)
and are you open to patches that allow for t/harness to used on a test set outside of rakudo/t/spec? 05:10
05:12 justatheory joined 05:13 khisanth_ is now known as Khisanth 05:15 synthEEEE joined, justatheory left 05:20 ihrd left
pmichaud it doesn't depend on any of parrot, no. 05:20
05:20 azawawi joined
azawawi good morning 05:20
pmichaud as for patches... depends on the patch. In general I'd say "yes"
05:24 ihrd joined 05:34 synth left 05:46 frew_ left 05:48 ihrd left 05:55 yahooooo left 06:08 yahooooo joined 06:11 rfordinal joined 06:17 Matt-W joined 06:21 alester left, amoc left 06:28 HemanShaw left, frankshaw joined 06:33 eternaleye left, rfordinal left
pugs_svn r27478 | azawawi++ | [S:H:P6] Removed reference to Text::VimColor 06:35
06:36 amoc joined, HemanShaw joined 06:43 FurnaceBoy left 06:47 rfordinal joined 06:50 HemanShaw left, frankshaw left 06:51 rfordinal left, Jedai joined 06:55 eternaleye joined 07:03 iblechbot joined 07:05 meppl joined 07:06 azawawi left, frankshaw joined 07:10 edpratomo joined 07:14 dakkar joined 07:22 frankshaw is now known as HemanShaw, finanalyst joined
Matt-W Morning 07:26
moritz_ good morning Matt-W
Matt-W hey moritz_ 07:28
My server survived a move last night :D
now I'm pondering having a go at the release process for pmichaud 07:29
07:29 zamolxes left 07:38 DemoFreak joined 07:57 eMaX left 08:09 edpratomo left 08:11 zamolxes joined 08:16 clintongormley joined 08:17 frew_ joined 08:18 frew left 08:24 Jedai left
pugs_svn r27479 | moritz++ | [perl6-projects.org] don't underline links 08:27
08:30 meppl left
szabgab rakudo: say time; 08:34
p6eval rakudo 70bfd5: OUTPUT«1247042057.13949␤»
szabgab rakudo: say localtime;
p6eval rakudo 70bfd5: OUTPUT«Could not find non-existent sub localtime␤»
szabgab rakudo: say Time::localtime;
p6eval rakudo 70bfd5: OUTPUT«Null PMC access in invoke()␤in Main (/tmp/hOv2xLbMsI:2)␤»
szabgab rakudo: say gmtime; 08:35
p6eval rakudo 70bfd5: OUTPUT«Could not find non-existent sub gmtime␤»
Matt-W eeep 08:36
null pmc!
szabgab rakudo: my $x = Temporal::DateTime.new; $x.say
p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤0000-00-00T00:00:00+0000␤»
08:51 digitalise joined
szabgab is there a file I can try lines() on ? 08:53
it seems 'file'.lines() does not work
Method 'lines' not found for invocant of class 'Str'
nor does lines('file', 2) 08:54
moritz_ szabgab: you first have to open it.
lines($str) would look more like $str.split("\n") to me
rakudo: say $*IN.lines(2).perl 08:55
szabgab according to the spec I think it should work on filenames as well
p6eval rakudo 70bfd5: OUTPUT«["Land der Berge, Land am Strome,", "Land der Äcker, Land der Dome,"]␤»
szabgab rakudo: say $*IN.lines(3).perl
p6eval rakudo 70bfd5: OUTPUT«["Land der Berge, Land am Strome,", "Land der Äcker, Land der Dome,", "Land der Hämmer, zukunftsreich!"]␤»
08:59 payload left 09:02 synthEEEE left, DemoFreak left
jnthn moritz_: What makes you think the patch wasn't committed? 09:02
moritz_: I copied that ID from the output from git push...
moritz_ jnthn: I'm talking about the tests 09:03
that you mentioned in the ticket
jnthn Oh, wish you'd been clear on that.
moritz_ sorry.
jnthn ah, yes, seems I hadn't committed those. 09:04
Done now.
pugs_svn r27480 | jnthn++ | [t/spec] Tests for RT#66978.
jnthn makes coffee 09:05
09:10 riffraff joined
Matt-W morning jnthn 09:22
jnthn hi Matt-W
finanalyst rakudo: lines('README').say
p6eval rakudo 70bfd5: OUTPUT«=head1 Rakudo Perl 6This is Rakudo Perl, a Perl 6 compiler for the Parrot virtual machine.Rakudo Perl is Copyright (C) 2008-2009, The Perl Foundation.Rakudo Perl is distributed under the terms of the Artistic License 2.0.For more details, see the full text of the license in 09:23
..the fil…
09:23 tann_ left
jnthn Didn't safe mode prevent IO? 09:23
rakudo: lines('/etc/passwd').say
p6eval rakudo 70bfd5:
..OUTPUT«root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/shman:x:6:12:man:/var/cache/man:/bin/shlp:x:7:7:lp:/var/spool/lpd:/bin/shmail:x:8:8:mail:/var…
jnthn o_O 09:24
moritz_ jnthn: it's very limited, that "safe" mode :/
jnthn moritz_: Ah.
09:24 Jedai joined
finanalyst szabgab: lines does work with a filename, though not as a method on a string. 09:24
moritz_ it just replaces things in the symbol table
jnthn moritz_: Aye. 09:25
Hopefully we can find some better way.
moritz_ that would be great.
szabgab is readline() now gone ?
moritz_ I think so, yes
szabgab so the recommended way to read a line from a file is =$fh now ? 09:26
my $line = =$fh;
jnthn .get
moritz_ $fh.get
jnthn prefix:<=> is has a kill. :-)
std: =$fh 09:27
p6eval std 27472: OUTPUT«ok 00:02 35m␤»
jnthn ...oh.
moritz_ 'oh' is a good comment
TimToady: see above, should '=$fh' still parse?
szabgab open() or oh;
09:38 M_o_C joined
Matt-W only if there's a prefix:<=> defined 09:41
which there shouldn't be by default
jnthn The other curious thing is that it didn't complain about $fh being undefined. 09:43
std: multi prefix:<=> { }; =$fh
p6eval std 27472: OUTPUT«Potential difficulties:␤ Variable $fh is not predeclared at /tmp/MWAFi2Mijf line 1:␤------> multi prefix:<=> { }; =$fh␤ok 00:03 41m␤»
jnthn But there it does.
So I suspect it's not a leftover prefix:<=>, but it's parsing it as...something else. 09:44
Matt-W yes that seems likely 09:45
but what
jnthn dunno 09:46
don't have an std
to get a parse tree
.oO( not having an std is usually a good thing... )
Matt-W we know you mean something else this time :) 09:47
09:48 meppl joined 09:55 charsbar_ joined, ejs joined 09:56 payload joined, charsbar left, alanhaggai_ joined 10:01 payload left, payload1 joined 10:06 ejs left 10:09 HemanShaw left 10:10 frankshaw joined 10:11 frankshaw is now known as HemanShaw 10:12 alanhaggai left
literal I think Damian made a Perl Monks post sometime detailing of his modules are production-safe, experimental, or worse :P 10:13
lambdabot literal: You have 4 new messages. '/msg lambdabot @messages' to read them.
10:13 rfordinal3643 joined
literal there I go again, replying to some old statement in the buffer 10:13
10:20 pmurias joined 10:21 rfordinal joined 10:27 masak joined
masak greetings, futurologists. 10:27
jnthn has seen the future and it's not orange. 10:30
Damm false advertising.
;-)
literal did someone say that it would be orange? 10:32
Matt-W yes 10:33
Orange did
repeatedly
Matt-W thinks the future has lazy evaluation
masak and LTM. 10:34
Matt-W yes 10:35
masak literal: I might be late or a no-show for tonight's meeting. but those of you who show up, please go ahead.
if I can, I'll join in later. 10:36
pmurias masak: it's perl6-gsoc again?
masak pmurias: every Wednesday. :)
literal ok 10:38
masak jnthn++ # "awesomizing" 10:44
10:45 rfordinal3643 left
jnthn ;-) 10:45
jnthn is having a day of hacking and packing
masak "hack'n'pack", the new lifestyle of the globetrotting programmer. 10:46
10:49 cognominal left 10:51 last joined
masak rakudo: class A { method foo {"A.foo"} }; class C { has A $.a handles *; }; my C $c .= new; say C.foo 10:51
p6eval rakudo 70bfd5: OUTPUT«Method 'foo' not found for invocant of class ''␤»
masak NYI?
jnthn I'm sure we had tests for handles * 10:52
oh
rakudo: class A { method foo {"A.foo"} }; class C { has A $.a handles *; }; my C $c .= new; $c.foo
p6eval rakudo 70bfd5: ( no output )
jnthn indeed, I know why that is
masak ok? 10:54
jnthn masak: file rakudobug
They should both work.
masak files 10:56
oh -- I called the type object's .foo 10:57
10:59 digitalise left 11:04 pmurias left 11:19 desertm4x joined
he_ Question from a newbie in these corners: are all the tests run under "make spectest" in rakudo expected to succeed? 11:31
11:32 jan_ left
masak he_: ideally, yes. 11:32
but in between releases results may vary.
(that's assuming you're running bleeding. in a release, all should succeed) 11:33
masak should stop saying "running bleeding"
I mean "running from the git HEAD"
moritz_ master, even 11:37
masak right. 11:39
he_ I'm also new to git, but I updated with "git fetch"(?) a couple of days ago and built on NetBSD/i386 4.0, and got several failures during "make spectest". 11:40
moritz_ he_: you need 'git pull', 'git fetch' doesn't update the files in the repository 11:41
but yes, we have known problems with parrot's garbage collector
he_ Well, ... since I'm new at git, I may have done "git pull" as well. 11:42
Anyway, I don't suppose you have a similar service as parrot to collect test results?
11:43 Chillance joined
moritz_ no :( 11:43
masak tries to book flight tickets and becomes aware, for the first time, of the plethora of "free flights" meta-booking systems online, all of them useless 11:44
jnthn oh, I go straight to expedia or the sites of the budget airlines I know fly from near me. 11:45
Search results tend to be full of such crap 11:46
11:46 M_o_C left
masak expedia? 11:46
11:48 mikehh__ is now known as mikehh
he_ Anyway, I'm going to send a nopaste of the old test result, and have started a new round. 11:48
lisppaste3 he_ pasted "Spectest summary report from NetBSD/i386 4.0" at paste.lisp.org/display/83225
jnthn masak: expedia is travel/flight booking site that I find not to suck too much.
masak tries that, then 11:49
jnthn masak: In the, it tells me choices and prices and mostly stays out of the way enough to not annoy me.
*In that
masak sounds wonderful.
11:52 meppl left
masak unfortunately, their proposed price was the highest so far. :/ 11:53
jnthn Aye - they don't include all the budget airlines. 11:54
Though they ain't always so "budget" always. 11:55
masak I've yet to find a budget airline that does Stockholm-Lisbon. the best I have so far is Air Portugal, who offer to take me for a large sum of money. 11:57
11:58 Jedai left
jnthn Aye, I didn't find a load of choice of budget airlines serving Lisbon. 11:58
masak that's consisten with my collected data so far. 12:00
for that matter, there seems to be many budget airlines in Europe not serving Stockholm.
jnthn Especially Arlanda 12:02
Ryanair serve Skavsta.
Which is "Stockholm"
Just like Ryanair used to list Bratislava as Vienna. 12:03
;-)
masak yes, I have mixed feelings about that lying-about-cities strategy.
I can see why they do it, but...
...having to ride a bus for two hours to get to the city they claimed you landed in is not much fun. 12:04
then again, you get what you pay for.
I've already ruled out ryanair, because they don't go to Lisbon.
but even if they did, I'd think twice about using their services again. 12:05
publius-ovidius.livejournal.com/301476.html
jnthn I mostly put up with Rynair 'cus they are sometimes so much cheaper than the alternative.
masak I used to do that as well. 12:06
jnthn But it's run by a smarmy asshat.
masak seems so.
12:08 cognominal joined, sri_kraih_ joined
Matt-W I had fun with Ryanair 12:09
they took us to Gothenburg City
which is... a runway and a hut
not flown with anybody at all for some time now though. Ryanair seem to have gone even more downhill in the intervening time 12:10
masak I'm glad they're not an alternative this time. 12:11
I think I'll go with TAP (fitting, huh?) and the large sum of money.
moritz_ Matt-W: that's my experience too, Ryanair going downhill 12:12
jnthn wouldn't have minded going by train, but it's a LONG way.
Matt-W wonders how hard it would be to go to lisbon on the train
12:12 Jedai joined
masak checks train connections before committing on the flight 12:12
Matt-W I suppose, eurostar to paris and then from paris to somewhere and then from somewhere to lisbon
possibly several somewheres
jnthn Yeah
Matt-W if lucky, paris->madrid->lisbon
jnthn You cna probably get south through France at a decent speed on the TGVs. 12:13
Matt-W yes
jnthn There is I'm sure a Paris -> Madrid overnighter though.
Matt-W however, flying is likely much cheaper
and definitely faster
and definitely more stressful
jnthn yeah, that's what I concluded
And my flight is with SkyEurope.
Matt-W admittedly another reason I'm not going to YAPC::EU
I really hate flying
there are only two things I like about it 12:14
jnthn They're not asshats like Ryanair. However, they're on the verge of bankruptcy.
Matt-W oh dear
The first thing I like about flying is the acceleration push for takeoff
The second thing is that it gets me from place to place quite quickly
(on average)
moritz_ stockholm -> Faro is 100...200 Euro with Air Berlin, one way
then you'd ahve to take the train to lisbon, ,or so
Matt-W I flew air berlin once
they weren't too bad
jnthn Faro is right down south, right?
Matt-W there were rolls 12:15
and mints
jnthn Oh, Air Berlin serve Currywurst on board! :-D
Matt-W jnthn: this was Stansted->Dusseldorf, so there wasn't time for Currywurst
moritz_ jnthn: no idea, it's the only Portugese airport tha air berlin serves
Matt-W I had some fun speaking to the cabin crew in German
and then watching them assume that my parents also spoke German
jnthn heh
That's why I like SkyEurope 12:16
moritz_ (and last time I didn't get any Currywurst, but neither Glasgow->Standsted nor Standsted->Nuernberg is very long)
jnthn I can chat up^Wto the cabin staff in Slovak. :-)
Matt-W :)
I don't think I can chat up in German
I don't know enough vocabulary
masak trans-Europe train site says it's too far from Stockholm to Lisbon. :/
Matt-W hello? trans-Europe?
masak (my choice of words.) 12:17
would have been cool, though.
Matt-W yes
especially if it had a power point
you could arrive with a git branch implementing LTM :)
and what an entrace that would be
12:17 cognominal_ joined
masak "Longest Train-journey Matching" 12:18
12:18 cognominal left
moritz_ pmichaud shaking you to death because you stole his job :-) 12:18
jnthn masak: Oh, get a grip. It's not like you're doing Vladivostok to Moscow. ;-) 12:19
masak moritz_: I've gotten the feeling that pmichaud doesn't much mind when people do tasks for him... :)
moritz_ masak: I know, but I had the opurtunity for a bad joke here...
masak nope, going Stockholm-Paris by train is already more expensive than the TAP flight option... 12:20
moritz_: ah :)
jnthn masak: Heh, the price doesn't surprise me.
Train travel in France and Sweden and Germany is expensive-ish. 12:21
Matt-W in the UK it's extremely expensive
jnthn Matt-W: Yes, and usually delayed too.
jnthn much prefers Russian train pricing :-)
moritz_ you could try stockholm -> madrid and then the train 12:22
Matt-W haha
jnthn $30 USD for an overnight journey including ability to lie down is kinda awesome.
masak moritz_: I'll do that.
Matt-W bahn.de says london->lisbon is minimum of 4 changes, 26 hours
ooh 12:23
it'd be faster if one started early in the morning
jnthn masak: Uh, I just realized handles probably shouldn't work on proto-objects since they have no state and thus nothing to dispatch on.
Matt-W that includes an overnight wait at a station in darkest somewhere
jnthn masak: But it's failing to work in a wrong way.
Matt-W oh well, I'm not going anyway
masak jnthn: aye.
Matt-W jnthn: yes it seems likely that you need a real object, since you're calling methods on it in the end... 12:24
12:24 sri_kraih left
jnthn The coffee took a while to take effect this morning. ;-) 12:24
masak what do you know, Stockholm-Madrid is cheaper than Stockholm-Lisbon!
moritz_ masak: that doesn't surprise me at all
Matt-W what about if you add madrid-lisbon on the end
masak Matt-W: I'm on it. 12:25
masak feels like he's the computer guy in a movie
12:25 Chillance left
masak "When you book your train travel from Madrid to Lisbon, the most direct route to this Portuguese capital is an overnight trip. You will get to eat, rest and arrive refreshed in Lisbon, ready to explore this multi-cultural city built upon seven legendary hills." 12:26
seven hills? I thought that was Rome...
12:26 Chillance joined
moritz_ me too 12:27
Matt-W maybe it's both of them
maybe they stole them from Rome in an undocumented past adventure
masak
.oO( undocumented PAST )
12:29
moritz_ or maybe it's the other way round :-)
acording the the wikipedia Lisboa is also built on seven hills. 12:30
That seemed to be quite fashionable back then 12:31
masak wtf? train Madrid-Lisbon costing as much as flisht Stockholm-Madrid?
s/sh/gh/ 12:32
jnthn huh?
oh, flight
that's maybe not so surprising. 12:33
masak hm -- well, I can optimize it down to about the same price as a direct flight. 12:34
doesn't seem worth it.
Matt-W no
a shame
train travel is much cooler
masak gotta go. 12:35
see you tonight.
12:35 masak left 12:41 skids joined, icwiener joined 12:45 M_o_C joined 12:46 amoc left 12:47 rfordinal left 12:48 rfordinal joined 12:55 Patterner left 12:56 cls_bsd left 13:02 synth joined, cls_bsd joined 13:04 pmurias joined 13:06 rfordinal left
pmurias skids: do you think having a TODO file for smop would be usefull? 13:08
13:13 jan_ joined 13:14 meppl joined 13:16 donaldh joined 13:21 Psyche^ joined, Psyche^ is now known as Patterner, mizioumt joined 13:24 iblechbot left
pmurias moritz_: how are the nick colors assigned in the log? 13:31
13:31 whoppix left
moritz_ pmurias: the first $n nicks with the most lines get a color from a list each 13:32
13:33 eMaX_ left
jnthn So you can influence that by talking less or more relative to other people on the channel? ;-) 13:35
moritz_ aye. 13:36
13:38 Chillance_ joined 13:39 Chillance_ left, Chillance_ joined 13:52 omega_ left 13:54 Chillance left 13:56 KyleHa joined, omega joined 14:00 finanalyst left
skids pmurias: As long as it gets updated, sure, they are always helpful. 14:00
moritz_ (note that the count is only for the current day) 14:01
and per-channel
skids pmurias: if and when I actually get to doing something other than reading/bugfixing, it will likely be S09 compact structures/compact arrays because that's where my interests lie. 14:08
(and it's something that may be a while coming via Parrot/rakudo, so SMOP can help there banging out the details) 14:09
14:10 SmokeMachine left 14:13 alanhaggai_ left 14:16 iblechbot joined 14:19 SmokeMachine joined 14:25 eMaX joined 14:26 desertm4x left, desertm4x joined 14:27 jauaor left 14:28 jonathanturner joined
pmichaud Good morning, #perl6 14:35
jnthn morning, pm 14:36
14:42 elmex left
pmichaud (expedia) my strategy tends to be to use expedia to find good fares, but then book directly from the airline. 14:43
14:43 exodist joined, last left, elmex joined 14:50 payload1 left 14:51 nothingmuch left 14:52 nothingmuch joined, amoc joined 14:58 justatheory joined 14:59 eMaX left 15:00 justatheory left 15:01 eMaX joined, exodist left, zamolxes left 15:02 frodwith joined, frodwith left 15:03 frodwith joined, frodwith left 15:04 frodwith joined 15:13 agentzh left 15:14 agentzh joined 15:20 donaldh left, donaldh joined 15:21 last joined 15:22 last left 15:23 masak joined 15:26 elmex_ joined 15:32 nihiliad joined 15:35 justatheory joined, masak left
jnthn .oO( give us today our daily bredband ) 15:36
15:40 elmex left, elmex_ is now known as elmex
moritz_ sushee.no-ip.org/shot.png Su-Shee++'s proposed layout for perl6-projects.org 15:43
KyleHa Looks good to me too. 15:44
15:46 mikehh left
sbp I'd swap Download with Wikis and Blogs 15:49
15:49 mikehh joined
sbp the amount of times I've screamed at a site... "just tell me where to download it!" 15:49
15:50 eMaX left
jonathanturner sbp: Indeed. Might be helpful to have a date of the latest release as well, to let you know if you should upgrade 15:50
15:50 dakkar left
jnthn moritz_: I really like the look of that. 15:50
sbp good idea
jnthn moritz_: Actually I'd put the download button further up
e.g. exchange it's position with the Wikis and Blogs thing. 15:51
sbp jnthn: oh yeah, good idea
jnthn Maybe Documentation wants to be above Specification too?
moritz_ ok, thanks for your feedback
jnthn That is, which do we most want ot direct new people to?
But visually, it's shiny. :-) 15:52
moritz_ I was about to complain about the download bottom because we don't want to offer The One True Download for The One True Implementation... oh well.
jnthn We could exchange it for a "box"
"Download Rakudo: source, binaries"
kind of thing
pmichaud "Downloads"
sbp well it's like XSLT applications 15:53
pmichaud plural
sbp you ask people what XSLT apps there are out there
they reel off a list of implementations
jnthn And other links to download releases of other implementations.
sbp and you say oh, okay, so which one should I use?
moritz_ anyway, that's kind of details right now, I was more asking about feedback for the design in general.
sbp and everybody says: Saxon
pmichaud (design in general) +1
sbp similar kind of thing with perl6 right now
jnthn moritz_: Oh, in that sense, +2
sbp who isn't going to say Rakudo?
jnthn ;-)
moritz_ sbp: ruoso and pmurias :-) 15:54
sbp hehe
that just proves my point
jnthn While smop/mildew is an implementation that's looking very promising in the long run, I'd be reluctant to point people who just want to play with a Perl 6 compiler to see what Perl 6 can do at them right now. 15:55
(Which is what people looking for a big shiny downloads button are probably after.) 15:57
moritz_ right
15:57 last joined
moritz_ if we have multiple such implementations in the future, I can make random redirects for them :-) 15:57
pmichaud it might be interesting to point people to play with std, though.
moritz_ but first it should be easier to get to run 15:58
like, not requiring a perl at a hard coded path
15:58 last left
pmichaud multiple implementations -- just add a "I'm Feeling Lucky" button for the download :-) 15:59
jnthn lol!
moritz_ lol
jnthn On April Fools Day, we re-direct randomly to a LOLCODE download instead.
16:07 rfordinal joined 16:08 jrtayloriv joined 16:10 last joined 16:11 tann joined
Patterner I like bit.ly/BestLOL 16:15
16:20 mikehh_ joined 16:22 Su-Shee joined
Su-Shee hi. 16:22
16:24 beggars joined
moritz_ hi Su-Shee 16:29
16:29 Psyche^ joined
TimToady \o> 16:30
<waving and holding the top of my head on while the coffee brews> 16:31
pmichaud (salute? broken arm? not e..... aha)
"not enough coffee" was my next guess
16:32 SmokeMachine left, eMaX joined, tann left
Su-Shee here's a light version (as in color not low fat. ;) sushee.no-ip.org/shot-light.png 16:33
moritz_ I like that even better 16:34
Su-Shee me too. i think, I'll also make the colors less bright. 16:35
moritz_ (the only thing I'm not sure about is the white link text; I never trust white text to be readable)
16:35 REPLeffect joined
KyleHa I might make all the "reading material" the same color...docs, specs, and blog-like substances...but that's because I have no sense of design appeal. 16:36
16:36 DemoFreak joined, mikehh left
Su-Shee I don't style docs and specs in light candy colors :)) 16:37
moritz_ ;-)
16:37 cdarroch joined 16:40 Patterner left, Psyche^ is now known as Patterner
Su-Shee a little less bright: sushee.no-ip.org/shot-light-less-bright.png 16:42
moritz_ I liked the previous one better
PerlJam Su-Shee: what moritz_ said. 16:43
TimToady yes, complements camelia's colors better 16:44
PerlJam you might want to tone down the shine on Camelia's wings though
(just a little)
moritz_ noooo! ;-) 16:45
Su-Shee moritz_: no problem, it will still look 2.0-ish :)
TimToady it does make her look like painted metal, but that's okay
PerlJam Su-Shee++ very cool
moritz_ it'd better look 6.0-ish!
TimToady the tilt is just a little odd because it makes it look like her legs and mouth are bending due to gravity :) 16:46
rather than just naturally being that way...
pmichaud she's showing her age already?
PerlJam no, she's a little gimpy to appeal to handicapped people ;> 16:47
pmichaud and her glasses make her look really bug-ey.... Oh.
moritz_ (showing age) that's okay for an imortal ;-)
16:47 M_o_C left
Su-Shee PerlJam: much better with less shine. 16:48
16:48 SmokeMachine joined
TimToady the main problem with the shine is that it makes the top wings look 3d while the rest of her remains flat 16:49
pmichaud afk # lunch, then parrot install issues 16:50
TimToady at minimum, perhaps if the lower wings also have a bit of shine, it might balance that up
pmichaud how does it look without any shine?
TimToady but the concept of a butterfly with non-flat wings is a bit odd from the outset 16:51
the shine probably made more sense with the black background than with light
PerlJam Camelia is a different kind of butterfly anyway :)
pmichaud TimToady: at 3 meters, the wings might be more like airfoils :-)
TimToady troonough
Su-Shee this is the orginal cut out and a little scaled down: sushee.no-ip.org/camelia-transparent-800.png
pmichaud right, I was wondering how it would look in the overall page w/o shine 16:52
(I agree that the shine made more sense on black background for some reason)
moritz_ maybe first flip it (left <-> right) and then tilt it?
pmichaud anyway, I do need lunch
PerlJam shine those wings right and you get Camelia with 4 balloons instead of wings.
pmichaud afk
PerlJam er, I guess that would be shining them wrong :)
TimToady well, everyone's an art critic :) 16:54
sbp not me
well okay, a little bit
TimToady you're just an art critic critic :)
sbp hehe
Su-Shee that's will all wings in shine, but less intense: sushee.no-ip.org/camelia-allshine.png 16:56
(and the wrong shadow) 16:57
sbp once I saw some TV programme where a member of the House of Lords was alleged to have compared art critics to a eunuch at an orgy in the following terms: “they'd like to join in, but they don't have the wherewithal...”
16:57 riffraff left
TimToady the lower shine doesn't work because it superposes over the pink. it really only works if it starts in the black 16:58
16:58 mj41 left 16:59 rfordinal left
sbp presses Control+Command+Option+7 to negate the screen... 16:59
Camelia looks really good in negative
TimToady the nose shine is a bit too curvy
sbp (modulo the eyes)
TimToady I do think she can change the color of her wings at will 17:00
but probably not her face
sbp hmm, okay 17:01
PerlJam A bug-eyed, yellow-faced, flying camel?
sbp have you observed Camelia(s) in the wild, or are you getting this from book-knowledge?
TimToady well, yes, essentially...
17:01 mj41 joined
TimToady genetic engineering is an empirical science 17:01
17:02 eMaX left
sbp imagebin.ca/img/LmMMLgv.png (inverted) 17:03
the eyes scare me. reminds me of Evil Spock, too 17:04
17:05 IllvilJa joined
Su-Shee camelia allshine with a little shine in the black: sushee.no-ip.org/camelia-shine-logo2.png 17:07
and without: sushee.no-ip.org/camelia-shine-logo.png
sbp hmm. can you move the bottom shine even closer to the edges? 17:08
TimToady I agree, the bottom shine should be closer to the edge than the top shines
since the lower wings are smaller
otherwise it doesn't make them look round at all
PerlJam I agreee too fwiw 17:10
sbp oh man. I only just got that the left upturned 6 actually represents a p
it's not even a 6 for goodness' sake; it's reversed
TimToady and I do like the absence of nose shine; I think the face needs to remain completely in the cartoon category
PerlJam sbp: the effect is subtle, so like Perl, there's always new things to discover :)
sbp wonders if there's a befunge93 perl6 compiler hidden in the pixel matrix 17:11
TimToady but it's really that fundamental P vs 6 asymmetry that drives the rest of the design
and philosophically, asks the question "Is 6 really a version of P, or is it something different?" 17:12
sbp hmm, I actually saw a serious study of that a year or two ago 17:13
a team mutating glyph forms to find out what the boundaries of prototypical glyph recognition are
well, the gradient
TimToady yes, we did similar experiments in linguistics and phoneme recognition 17:14
sbp but to keep it simple they constrained themselves to like a grid of possibilities
which I thought was a bad idea. bit like trying to spell things on a clock
phonemes? hmm, that always annoyed me about the IPA
nice and neat divisions of phonemes, whereas in practice it's not quite like that...
TimToady IPA is phones, not phonemes :P 17:15
but yes, which is why they allow all sorts of modifiers of the central notion
and every now and then they have to add a new symbol as a new langauge is discoverred 17:16
there's a language in (I believe) New Guinea that came up with an interlabial lateral
jnthn
.oO( but isn't IPA = Indian Pale Ale? )
sbp looks up phones vs. phonemes on Wikipedia 17:17
TimToady: I enjoy trying to make the sounds in the spaces where they say it's impossible
TimToady or possibly phonetic vs phonemic
sbp which is a bit futile really since I can't even roll my r's, but there you go
TimToady I do a mean triple trill, but as far as I know no languages use that
sbp add it to perl6!
there is an articulated perl6, right? 17:18
moritz_ we already have triple dots in Perl 6
Su-Shee hm. the shine is reluctant to fit.
sbp or we could just whistle the binary utf-8 encoded representation at one another
17:26 donaldh left 17:28 tann joined 17:36 Pismire joined 17:37 molaf joined
pugs_svn r27481 | lwall++ | [STD] complain usefully about illegal pod directives like =$fh 17:46
moritz_ std: my $fh; =$fh
p6eval std 27472: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/Ux3Bnb26bL line 1:␤------> my $fh; =$fh␤ expecting any of:␤ prefix or noun␤ statement end␤FAILED 00:02 36m␤»
TimToady std: 81 17:48
p6eval std 27472: OUTPUT«ok 00:02 36m␤»
17:55 mizioumt left
TimToady std: =$fh 17:56
p6eval std 27472: OUTPUT«ok 00:02 35m␤»
TimToady the std rebuild seems to have a hitch in it's getalong 17:57
*its
grr, can we just change English now?
shower &
17:58 FurnaceBoy joined
sbp if it's was good enough for Emily Dickinson, it's good enough for us 17:59
pmichaud I'm wondering if std is treating the leading = as some sort of pod escape
std: + =$fh
sbp (she also used “have'nt” and “opon” consistently) 18:00
p6eval std 27472: ( no output )
TimToady yes, that's what I just fixed
pmichaud ah
TimToady but 72 <<< 81
pmichaud oh, didn't see the commit there
moritz_ TimToady: it currently doesn't compile on the server... 18:01
TimToady or rather 72 ⋘ 81
moritz_ ./std CORE.setting
##### PARSE FAILED #####
Malformed constant at CORE.setting line 68:
------> constant pi is export = 3.14159_26535_89793_23846_2
TimToady okay, I know what's wrong
moritz_ is there any use in trying a 'make clean'?
TimToady no
fix coming 18:02
in fact, make clean is what I should have done here a little more often
18:04 M_o_C joined
pugs_svn r27482 | lwall++ | [STD] special form of constant declaration didn't allow traits 18:07
18:09 rfordinal joined, rfordinal left
TimToady シャワします、よ!& 18:10
18:11 eMaX joined
sbp phenny: "シャワします、よ!"? 18:12
phenny sbp: "The SHAWA, I!" (ja to en, translate.google.com)
sbp slacker
oh, SHAWA, not SCHWA...
18:13 ruoso joined 18:14 Pismire2 joined
pmurias ruoso: hi 18:17
18:19 meppl left
pmurias ruoso: multis are the source of the slow CORE loading 18:21
18:23 M_o_C left
ruoso hi pmurias 18:23
pmurias, the multi initialzation? or some use of multis during the initialization? 18:24
pmurias multi initalization 18:25
18:25 Pismire2 left 18:26 hercynium left 18:27 Pismire left
pmurias ruoso: i've started writing a simple call graph printer/profile as find it hard to guess what's eating the speed 18:27
ruoso pmurias, that's cool
pmurias, Multi initialization is just a role declaration... 18:28
what's so slow about it?
pmurias what i meant creating multis is slow 18:29
ruoso ah... right 18:30
18:30 M_o_C joined
pmurias if you don't load CORE/int.pm you hardly notice the loading of the setting 18:30
ruoso pmurias, how much of that is the initialization of the punned class?
(which is currently not cached) 18:31
18:31 athomason joined
pmurias dunno, haven't checked that yet 18:31
ruoso checking on software transactional memory, since locking has so much impact in performance 18:33
18:38 sjohnson left 18:39 sjohnson joined 18:41 eMaX left 18:42 amoc left, zamolxes joined 18:47 justatheory_ joined
TimToady std: =$fh 18:47
p6eval std 27482: OUTPUT«##### PARSE FAILED #####␤Illegal pod directive at /tmp/1Uqmdsnwmt line 1:␤------> =$fh␤ expecting pod_comment␤FAILED 00:02 35m␤»
moritz_ pmichaud: I thought a bit more about the release process. When a pumpking wants to regress on a few tests (let's say, due to parrot's GC problems), but doesn't want to make that permanent - should he create a branch for the release? 18:52
18:53 justatheory_ left 18:54 skipper_ joined 18:55 justatheory_ joined 19:01 justatheory left
moritz_ std: .say if /foo/ for <bar baz>; 19:02
p6eval std 27482: OUTPUT«ok 00:02 36m␤»
TimToady heh 19:03
moritz_ if somebody asks me if I'm /sure/, I verify ;-)
afk
19:04 skipper_ left, skipper joined 19:07 masak joined
masak #perl6-soc meeting starting now, if anyone is thus inclined. 19:08
19:26 christine left
pugs_svn r27483 | kyle++ | [t/spec] Test ordering of multi calls in roles, classes, and their parents. 19:32
19:32 christine joined 19:34 mikehh_ is now known as mikehh
ruoso enabling STM would require adding "current transaction context" into the "current continuation" 19:35
which would probably mean that finding the "current transaction context" would involve looking into the "back" continuations until find any 19:39
pugs_svn r27484 | pmurias++ | [re-smop] added a compile time option and env variable that when set 19:45
r27484 | pmurias++ | will enable printing out info usefull for creating a call graph
ruoso we actually need a system that supports nested transactions 19:50
which excludes most of the C implementations 19:51
pmurias ruoso: i have to read up on STM as i'm only vaguly distantly familiar with it
ruoso pmurias, it's like having each memory segment you alloc being handled by a database
you BEGIN and you COMMIT, and sometimes a transaction rollsback without you expecting it to 19:52
(actually, you're supposed to expect it to rollback eventually)
19:55 kate21de joined
ruoso considering using BerkeleyDB in-memory databases... 19:56
pmurias isn't that slow? 19:57
PerlJam pmurias: as compared with hitting a disk?
pmurias: or do you just mean slower than non-stm memory accesses?
pmurias my experience with BerkleyDB is not very reasurring 19:58
ruoso PerlJam, It would be interesting to have any comparison between bdb and other stm implementations 19:59
TimToady phone 20:00
20:00 justatheory_ left 20:01 pmurias left
ruoso looking if PostgreSQL MVCC can be embedded stand-alone as a library 20:02
20:03 meppl joined
Tene I got some Perl 6 into a Hello World contest run by some guy recruiting employees for his NINJA company: saymix.com/ 20:12
moritz_ a "hell of a world" contest? ;-) 20:13
Tene it came from this job posting: sfbay.craigslist.org/sfc/eng/1246353621.html
The actual job posting turns out to be: www.trustedopinion.com/pub/careersabout.do which disagrees in several ways 20:14
kinda weird
but it was a fun hello world
20:14 icwiener_ joined
Tene rakudo: say [~] (98 <<+<< (([,] gather take ($_+2+int($_/3))%3 xx $_+1 for 0..3).map: { $*b++ * 3 + $^a })[2133474530.comb])>>.chr 20:14
p6eval rakudo 70bfd5: OUTPUT«Use of uninitialized value␤helloworld␤»
20:14 clintongormley left 20:15 icwiener left
jnthn Tene++ 20:20
Nice!
WIN: We were uncertain to receive any Perl 6.
And it was awesome.
Land of happy.
moritz_ aye
that's what gained Tene++ his previos ++ ;-) 20:21
20:22 donaldh joined
Tene Yes, I got "[~] ( Top Tier ) [~]" !!! 20:23
TimToady jnthn: on traits, I think we need to have a different name for the semantic multis from the trait_mod syntax creator 20:24
jnthn std: "[~] ( Top Tier ) [~] 20:25
std: [~] ( Top Tier ) [~]
p6eval std 27484: OUTPUT«##### PARSE FAILED #####␤(Possible runaway string from line 1)␤Can't understand next input--giving up at /tmp/kdHu8mdJex line 2:␤------> ;␤ expecting escape␤FAILED 00:04 39m␤»
std 27484: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/W4K8hEtw7z line 2:␤------> ;␤ expecting any of:␤ prefix or noun␤ whitespace␤Undeclared names:␤ Tier used at 1 1 ␤ Top used at 1 1 ␤FAILED 00:02 38m␤»
jnthn ...semicolon?!
But I didn't send in a ; std! 20:26
:-)
TimToady: Different name in what sense?
TimToady: As in, what would you name differently?
TimToady trait_mod:<is> would redispatch internally to TRAIT_IS or some such 20:28
20:28 cbk joined
jnthn The call? 20:28
TimToady so you only need one trait_mod:<foo> to introduce the syntax, and however many TRAIT_FOO definitions you want to implement it
jnthn Hmm 20:29
TimToady jnthn: std adds a ; for you on the end
jnthn Ah, generous. ;_)
TimToady it should probably catch that and report EOF instead
jnthn So a sub foo is export would call TRAIT_IS? 20:32
ruoso one interesting side effect of actually using a database as the memory would be the ease of generating a dump of the current state of the runtime
jnthn TimToady: What should declaring a trait_mod:<is> multi actually do though? 20:34
That is, if it actually declares a TRAIT_IS really then we just gave the same problem a different name...
TimToady it doesn't declare a TRAIT_IS, it redispatches to TRAIT_IS 20:35
there's only one trait_mod:<is>, and it's in the CORE 20:36
the user only does TRAIT_IS 20:37
jnthn Ah, I see
And users write a TRAIT_IS?
KyleHa Is there documentation on how to write in Perl 6 what I'd do with 'tie' in Perl 5?
jnthn And they have to get it exported somwehre trait_mod:<is> will find it? 20:38
TimToady that's what I was trying to say
jnthn OK.
TimToady correct
jnthn OK, that makes sense.
TimToady does that help?
jnthn If you can get that into S14, I'll hack on it when I return.
Yes, it solves the problem.
If creating a little quirkiness.
Since people are used to declaring category:<symbol> stuff from e.g. operator overloading. 20:39
ruoso KyleHa, you just need to implement the API, no need to tie
KyleHa ruoso: OK, where's the API? Is there an example?
ruoso KyleHa, the API is being described in S32 20:40
it's still incomplete
but provides a lot of information already
20:41 masak left, HemanShaw left
moritz_ S32? setting library? 20:42
ruoso moritz_, yes
isn't there where Array, Scalar and the other built-in types are described?
moritz_ ruoso: yes, but that doesn't describe how to "tie" a scalar 20:43
or write a different scalar container type
(which is more Perl 6 lingo, I think)
ruoso moritz_, of course it does
it's just a matter of implementing that methods
and you're done
TimToady my @array is MyArray; 20:44
ruoso or... my @array := MyArray.new
20:44 Su-Shee left
moritz_ that's not scalars 20:47
ruoso er... 20:48
moritz_ for assignment, do I have to add an infix:<=> multi? or .STORE? or what?
ruoso well... that's the part of the API which I think is mostly incomplete...
but in SMOP, the Scalar API is .FETCH and .STORE
and that's all
since your scalar ~~ SCalar 20:49
it will be accepted in any multi that expects an scalar
although assignment is kinda special
20:50 justatheory joined
pmichaud back 20:51
18:52 <moritz_> pmichaud: I thought a bit more about the release process. When a pumpking wants to regress on a few tests (let's say, due to parrot's GC problems), but doesn't want to make that permanent - should he create a branch for the release? 20:52
ruoso btw... just posted a message about the role composition issue...
ruoso decommute &
pmichaud moritz_: I think just fudge them out in master, make the release, then fudge them back in
(where "fudge" means "comment them out in spectest.data") 20:53
Hopefully we won't ever have to do that in reality. Hopefully after Parrot gets its -G stuff cleaned up we'll never have to do it again :-)
PerlJam pmichaud: Murphy's Law. 20:54
20:54 ruoso left
moritz_ pmichaud: I admire your faith. 20:54
pmichaud PerlJam: sure, thus "hopefully"
cbk ruoso, can one make an array without any predetermined limit
pmichaud as chip once said: "I find your lack of lack of faith disturbing."
PerlJam heh
pmichaud anyway, I think commit+release+revert is probably easier to manage and explain than creating a separate branch. Although someday we may start making separate branches for every release. 20:56
moritz_ pmichaud: that was my initial thought, but then again it's easy to forget to revert such things
pmichaud moritz_: this is true also. But I suspect someone will notice. 20:58
at some point we probably need to check and see if any of the things we've already regressed on in spectest.data are candidates for being put back in :-)
jnthn Well, making augment work again would win various of them back. :-) 21:00
pmichaud oh yeah
jnthn But that's blocking on context vars. Or at least, doing it neatly is.
pmichaud adds "context vars" to his "do by yapc::eu" list.
jnthn If the latest scope decl is set in a context var, it becomes a fairly trivial change.
pmichaud well, it's not just context vars -- we also need the ability to set context vars in regexes
which means the regex parser has to be able to parse them 21:01
jnthn ah yes
that is a little trickier.
I guess it's the parsing side of that, which is the harder part?
pmichaud if we left it with very simple expressions and initializations, not too bad.
21:01 Whiteknight joined
pmichaud i.e., PGE could stub in something very simple. 21:01
but in some senses it argues for going ahead and getting PGE's regex parser to be more STD-like in the first place 21:02
jnthn nod
I guess that's going to have to happen soon anyway.
21:03 meppl left
cognominal_ I note that in scala one can alias "this", that is the Perl 6 "self". I find that a pretty nice feature. 21:11
That makes clear one refer to some member of the a trait. 21:12
I forgot to say that aliasing is happening in the trait.
that would be a rôle in Perl 6
21:13 molaf left, jrtayloriv left 21:17 eMaX joined 21:29 masak joined
masak arohner.blogspot.com/2009/07/can-yo...-this.html 21:29
someone care to write some awesome Perl 6 code as a comment to that post? :)
moritz_ -[+] @p.map: * * log(*, $b) # does that count as awesome? ;-) 21:31
masak I think so.
does the log(*, $b) really work?
jnthn A lot of *s. ;-)
I'm not so sure it would... 21:32
moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: { $^p * log($^p, 2) }
masak me neither.
p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in method Any::map (/tmp/eKtrFSmhvL:2)␤called from Main (/tmp/eKtrFSmhvL:2)␤»
moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: { $^p * log($^p)/log(2) }
p6eval rakudo 70bfd5: OUTPUT«1.48547529722733␤»
jnthn Longer but imo more readable. 21:33
moritz_ our Num multi method log ( Num $x: Num :$base = Num::e ) is export
it *should* work.
masak bug? :)
moritz_ masak, a job for you!
masak rakudo: say log(1, 10) 21:34
p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in Main (/tmp/psZJMbZLuC:2)␤»
masak submits ze rakudobug
jnthn ooh la la...ze rakudobug
masak incroyable! 21:35
moritz_ log() is not even in the setting yet.
masak by the way, is this BUG or TODO?
moritz_ a TODO
masak oh, good. for jnthn, I mean. :)
skids Just make sure you use log($cabin) in the report.
moritz_ a subset of the specced functionality is already implemented 21:36
masak skids: gotcha.
jnthn log($that_bug)
masak
.oO( nothing wrong with the -Ofun setting... )
actually, I see another bug there... :) 21:37
moritz_ oh, but it should be :base(2)
masak rakudo: say log(1, 10)
moritz_ it's a named only
p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in Main (/tmp/Yup16MtgP9:2)␤»
masak I don't know about you, but '1 params' does not make an awesome message...
TimToady if it were named optional, then 1.log(10) would work
masak submits a rakudobug about that
TimToady positional optional, I mean 21:38
and you can still name it if you liek
*like
quick, fix the spec to be the prettiest thing before using it in the followup :) 21:39
21:39 hercynium joined
masak that'd be a first. 21:39
fixing the spec so that a blog comment will be prettier. 21:40
moritz_ lol
TimToady we could add log2 and log10
masak the spec changes are approaching Jedi-mind-trick levels. :)
moritz_ log10 is already in
jnthn Well, we already had int1, int2, int3, int4... ;-) 21:41
TimToady but not int10
masak "what do you mean it's not in the spec, it's right there!" *wave*
TimToady what's up with that
aw, heck, just add entropy()
PerlJam "these are not the specs you are looking for"
pugs_svn r27485 | moritz++ | [S32/Num] log's base is positional
masak PerlJam: :)
no seriously. having spec writers and implementors stand by to make a blog comment be as awesome as possible has never happened before in the history of program language design. 21:42
TimToady blog-driven design works for me 21:43
jnthn Language-pimpability driven design
Urk, why does my train leave tomorrow at the ridiculous time of 07:50... 21:44
TimToady you live in the wrong timezone
moritz_ TimToady: is it OK to implement two log multis instead of one with an optional parameter?
masak I haven't experienced that time of day in many days now...
TimToady sure
masak I miss it.
PerlJam so ... is the ultimate perl 6 retort to that post going to "my language is so awesome, it already knows what entropy is"?
jnthn masak: same, but I'm not sure I miss it ;-)
masak jnthn: it's paradoxical. my natural state of being is definitely not morning-person, but I like the mornings because I feel the most focused then. 21:45
TimToady what is the relationship of a 100-year language to entropy, anyway :)
masak TimToady: a 100-year language withers away continually, but it doesn't matter, because people are having so much fun rebuilding it all the time. :)
PerlJam TimToady: It'll be funny when our great-great-great-grand kids are looking back and laughing at us for talking about Perl as if were _only_ a 100-year language :) 21:46
masak: That sounds like the start of some Hawking radiation equivalent for a programming language. 21:47
jnthn masak: I don't find I'm that focused then, but I do find it kinda nice getting to midday and having actually got stuff done.
masak jnthn: yes, that too. it's also quite fun to watch colleagues tumble in bleary-eyed at 8 o'clock or so. but that's when I nail the 5 o'clock wakeup, haven't done that in a while. 21:48
PerlJam What's that temple in Japan (?) that they tear down and build anew every 20 or so years?
KyleHa Perljam: www.youtube.com/watch?v=Xe1TZaElTAs 21:49
jnthn decides that the heavy metal band that sing like pirates is NOT the music he wants for the train tomorrow...
Six hour train journey :-) 21:50
I might finally find time to learn Hiragana.
moritz_ what, you're not rakudo hacking? ;-)
TimToady らくど hacking 21:51
jnthn moritz_: I find trains mostly uncomfortable places to hack :-|
TimToady: Thing is, even when I can read all of the syllables in that, I'll still be none the wiser what it means. ;-) 21:52
moritz_ jnthn: I find trains to be perfect places to discover rakudobugs ;-)
TimToady you will if you pronounce it, and discover it sounds just like "rakudo" 21:53
jnthn heh 21:54
And to think I knew く was ku and din't even guess the rest.
moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map -> $p { $p * log $p, 2 }
p6eval rakudo 70bfd5: OUTPUT«Statement not terminated properly at line 2, near "-> $p { $p"␤in Main (src/gen_setting.pm:3340)␤» 21:55
masak only recognizes の
moritz_ rakudo: my @P = 0.2, 0.5, 0.3; say -[+] @P.map: -> $p { $p * log $p, 2 }
p6eval rakudo 70bfd5: OUTPUT«too many arguments passed (2) - 1 params expected␤in method Any::map (/tmp/npqYY3sFL0:2)␤called from Main (/tmp/npqYY3sFL0:2)␤»
moritz_ bah, I have to actually push my changes :)
masak :P
moritz_ but first I have to wait for my spectests to finish. sigh. 21:56
TimToady might be prettier as a for loop, though NYI
21:57 mkfort joined
jnthn oh noes, I coined "less than awesome" 21:59
TimToady rakudo: say -[+]($_ for 1..10)
p6eval rakudo 70bfd5: OUTPUT«get_number() not implemented in class 'Iterator'␤in Main (/tmp/NnCBuHMPfJ:2)␤»
jnthn Why'd you write $_ for 1..10 rather than just 1..10? 22:00
Other than to fail Rakudo? ;-)
TimToady to see if the for loop would return a list
as it's specced to do
jnthn ah
no, our for loops are a bit too traditional for that just yet. ;-)
moritz_: I guess log is going in Any? 22:02
jnthn just spotted the pleamichaud post :-)
masak which post is that? 22:03
pmichaud jnthn: for better "too many arguments" errors -- think we need to trap those exceptions and rework the message, or ...?
masak pmichaud: is it a Parrot message? doesn't Parrot want awesome messages also? 22:04
pmichaud masak: I can't say for sure. :-)
but yes, it's a Parrot message at the moment.
moritz_ jnthn: aye 22:05
22:05 M_o_C left
jnthn pmichaud: It's a parrot message. 22:05
pmichaud jnthn: yes, I know that
moritz_ jnthn: it turns out I also need to move the Complex log 22:06
jnthn pmichaud: I'm going to punt on that until we know what we're doing with regards to Parrot.
pmichaud I'm saying that if/when we want to replace parrot messages with our own, do we do it by trapping exceptions or ...?
yes, we can punt on it for a short while
jnthn Yeah, we'd have to trap exceptions.
pmichaud it depends on the parrot calling conventions to some extent
jnthn But if we end up writing our own binder and having Parrot just give us a capture, for example...
Then we get to throw our own exceptions.
22:06 skids left
pmichaud exactly :-) 22:06
jnthn Actually my feeling is increasingly that "make Parrot give us a capture" is going to be a reasonably way to go. 22:07
*reasonable
22:07 KyleHa left
pmichaud I think that's likely the case also. I'm only curious about how hard it will be to do that. 22:08
jnthn Given we almost already do do it.
pmichaud ooc, when does the exception get thrown. At the point of the get_params opcode? 22:09
jnthn Yeah
pmichaud so we mainly need our own equivalent opcode to "get_params"?
jnthn get_params and set_returns are what actually do the work. 22:10
moritz_ rakudo: say log(-exp(1) + 0i)
jnthn Well, perhaps, yes. It depends on Parrot.
pmichaud and we don't generate any ":param" nodes in the past?
p6eval rakudo 70bfd5: OUTPUT«1+3.14159i␤»
jnthn If Parrot will build us something capture-like then we can just hand that straight off to a dynop for processing.
pmichaud I'm thinking that we don't even need Parrot to build it for us
jnthn The only issue we really have is, I think arg passing from C can be a bit odd.
pmichaud in our own version of get_params we just unpack the args directly into whatever we want 22:11
jnthn For example, I'm not convinced that a Perl6MultiSub invoked in certain ways will work.
(As in, invoked in a way other than setting up the args.)
But Allison seems keen on packaging the arguments up in a PMC in her refactor, from what I can tell.
Which would unify that.
pmichaud I'm not saying we change the way that parrot packages up the args 22:12
we leave that alone
we just change the way they're unpacked
moritz_ a GCable object for each sub/method call?
pmichaud moritz_: we already have a GCable for each method call, to handle the slurpy named args
jnthn Yes, but the problem is that at the moment they're not packed, and there's different code paths in Parrot for handling that, afaiu.
pmichaud ...get_params has different code paths? 22:13
jnthn So depending how the arguments are being passed can change how you get hold of them.
As far as I can follow, yes.
pmichaud ick.
jnthn I may have mis-understood.
pmichaud I think you're probably right.
jnthn which given inter_call.c would hardly be surprising.
I never figured out how the heck the data structures in there really work. 22:14
pmichaud so perhaps the answer is to unpack the ones we recognize, and pass the others to Parrot's get_params :-P (no, just kidding!)
jnthn :-P
pmichaud well, by far the bulk of calls to Perl6MultiSub will be coming from PIR, not C
jnthn What I can tell you is that, the code in there is rather...complex...
pmichaud so perhaps we start with that, and see what else fails
jnthn And having implemented something to package up the args (see Perl6MultiSub) into a list and a hash, and observed that it's drastically shorter than what Parrot has... 22:15
I suspect we're shuffling data around all over the place.
pmichaud I suspect that's correct.
jnthn Anyway, YAPC::EU is close. 22:16
Allison will be there.
I'll corner her in the nicest possible way and try to get an idea of what she's aiming for and what the timescale is.
"plz I can has planz?" 22:17
And maybe "plz we can influence planz?" :-)
pmichaud we could do a "good cop/bad cop" routine
jnthn :D
pmichaud you can be the "good cop"
I'll rant loudly and throw cups and bang shoes on the table
PerlJam pmichaud channels orwant?
pmichaud I might even channel a little mst. No, on second thought -- that's going too far :-P
moritz_ every programming language community should have an mst - but not more than one ;-) 22:18
masak there cannot be more than one!
jnthn ;-)
PerlJam moritz_: How many tchrist's should a programming language community have?
moritz_ PerlJam: 0.1 ;-) 22:19
pmichaud there's more than one way to mst it. :-)
masak GET BLOGGING, YOU SORRY LOT!
pmichaud I did! I even signed up for ironman! (finally, but haven't been added yet)
I expect to fail spectacularly in the ironman. :-) 22:20
moritz_ it sometimes take some time
pugs_svn r27486 | moritz++ | [t/spec] tests for two-arg log() function
moritz_ ah well, the contest is just an excuse, no?
masak I was one of the first to sign up, and I think I've been blogging every week since then.
22:20 amoc joined
pmichaud whenever I go nine days without a blog post, I think I'll write a post that simply says "IRONMAN FAIL. AGAIN" 22:20
22:20 iblechbot left
PerlJam I started to write 2 perl6 related blog posts and got distracted enough that I never finished them. Such is the case often for me. 22:20
masak pmichaud: it has to contain the word 'perl', too.
moritz_ hacked up his blog software to allow publishing by date 22:21
pmichaud masak: no, "ironman" is sufficient, I think.
moritz_ just for the 3 weeks Norway vacation + ironman
masak pmichaud: oh, ok.
by the way, what did + and ++ at one time mean in function signatures? perlmonks.org/?node_id=462987 22:22
useless knowledge now, but I'm curious. :)
pmichaud tbh, I don't recall what they meant. 22:23
sjohnson anyone else here enjoy the bliss of porting a .sh script into Perl?
masak glad to hear not only I have a well-functioning gc, then. :)
sjohnson: there's bliss involved, yes. 22:24
jnthn If only Parrot's one only collected the useless, unrequired stuff.
pmichaud right now Parrot suffers from an over-aggressive gc 22:25
jnthn Yes, and ironically still also leaks memory!
pmichaud "You only have one C pointer referencing this PMC.... you probably don't need it."
22:26 desertm4x left
jnthn Probabalistic GC. 22:26
masak Fatalistic GC.
moritz_ russian GC ;-)
22:26 desertm4x joined
masak we should make that into a musical number. 22:26
pmichaud I call 9839. 22:27
(a musical number)
rakudo: say "\c9839" 22:28
p6eval rakudo 70bfd5: OUTPUT«♯␤»
masak XD
pmichaud (yes, I thought it was pretty sharp :-) 22:29
jnthn <groan>
Never a flat moment on #perl6.
masak not that tone, please.
jnthn Sorry. I'll change my tune. 22:30
pmichaud rakudo: say "\c119070"
p6eval rakudo 70bfd5: OUTPUT«𝄞␤»
pmichaud okay, it wasn't likely.
PerlJam don't end on a sour note
jnthn PerlJam: Yes, that's the key thing. 22:31
masak one could even say it's instrumental to success... 22:37
PerlJam and here I was thinking no one wanted to continue the canon.
(although I guess this is more of a fugue) 22:38
masak hope no-one runs autounfugue.pl, then... 22:39
masak will pipe down now
PerlJam yeah, you don't want to get winded.
masak I'll shut up and write some coda. 22:40
(though apparently shutting up is not my forte) 22:42
dang, playing on words is too much pun! 22:43
-Opun 22:44
jnthn neglects to keep a score of who has punned most 22:45
masak that person would surely some kind of maestro of musical puns... 22:46
PerlJam a magical mystical musical maestro 22:47
(sorry the ems cried out for alliteration)
pmichaud is disappointed at the treble he's caused.
PerlJam leaves for TKD 22:48
masak pmichaud: yes, we really haven't been conducting ourselves... 22:49
at least we all refrained from dragging chromatic into it. 22:51
pmichaud that would've been too much e-scale-ation 22:53
22:53 nihiliad left
masak yes, a major intermezzo. 22:53
23:03 jrtayloriv joined 23:05 ihrd joined
masak ihrd: o/ 23:05
jnthn ihrd: \o 23:06
ihrd masak: Ж-:)
masak ihrd: kak dela? 23:07
ihrd jnthn: 8()
jnthn ihrd: Как дела?
ihrd )))
jnthn aww, masak beat me, but I got the Cyrillic win!
ihrd нормально 23:08
masak I was thinking, "aww, jnthn got the Cyrillic win..."
23:08 hercynium left
masak is нормально a good thing or a bad thing? :) 23:08
23:08 hercynium joined
ihrd it is absolutly netral 23:09
we use it when we can`t say how things going in one short word
masak I guess it means "oh, the usual" or something like that.
ihrd hm, yes and no 23:10
masak my question was more whether "the usual" is good or bad. :)
23:10 ihrd left
masak apparently, connection's not to good, in any case. :/ 23:10
jnthn masak: Heh, we have in Slovak "ujde to" which is this kinda "meh, so so" kinda not good could be worse -ish thingy. 23:11
But not bad either.
:-)
I suspect it's a similar sentiment.
masak I've heard 'bolshe-menje' in Russian as well. it seems to mean 'so-so'. 23:12
uh, s/j/y/ in English transcription.
jnthn heh, I tend to read "j" as English "y" most of the time now if I see it in a non-English word. 23:13
masak you'd have to unlearn that for Japanese, then. :)
s1n jnthn: before you head out on vacation, i want to ask you about trait_mod 23:15
jnthn masak: Yes, tell me about it! :-(
That's why I'm so desparate to learn the Hiragana and Katakana and do everything from those... 23:16
s1n: ano, mozes
masak jnthn: ohnoeshowlongwillyoubeonvacation?
jnthn oh crap
s1n: Yes, you can
jnthn doesn't cope well with simultaneous conversations in multiple languages :-)
masak: Oh, calm down. This one is shorter than the last one!
s1n jnthn: i have been trying to convert my code that did trait_auxillary, but i get a dispatch error when i start using trait_mod 23:17
masak jnthn: are you chatting in slovak in some other channel when you make those slips? I kinda hope you are... :)
jnthn masak: Yeah.
masak: It's great practice.
masak good. then we don't need to seek some grimmer explanation.
jnthn: aye, definitely. I should do that with Mandarin.
jnthn I'm tyring to get more "in the flesh" language partners too. 23:18
masak likes that 'you can' in Slovak is 'mozes'
masak imagines Barack Obama shouting "Ano, Mozes!"
jnthn ...
s1n: I saw your comment about that. 23:19
masak jnthn: how does one say "we can"? 'mozeme'?
s1n jnthn: any take on what i was doing wrong?
jnthn s1n: It resulted in a discussion with TimToady++ who today proposed a solution.
s1n jnthn: ahh okay, i didn't see that in the scrollback
23:20 donaldh left
jnthn You're not really doing anything wrong per se, it's just that the way S14 has it results in oddities like the one you found. 23:20
If you want it to work at the moment
Then declare your multi trait_mod:<is> outside of the role.
23:20 donaldh joined
s1n jnthn: the sample i posted is, but it's in a module, exported 23:21
lemme see if i can cull a p6eval
rakudo: role xxx {}; module Foo { multi trait_mod:<is>(Code $block, xxx $trait, $arg) is export { ... }; } 23:22
p6eval rakudo 70bfd5: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/OeGMGUAvK2:2)␤»
23:22 desertm4x left
s1n the one i posted above was one i was testing from the spec 23:22
err s/above/yesterday/ 23:23
jnthn Ah, OK, my workaround was too specific. :-)
rakudo: role xxx {}; multi trait_mod:<is>(Code $block, xxx $trait, $arg) is export { ... };
p6eval rakudo 70bfd5: ( no output )
jnthn This works
s1n outside a module?
jnthn The problem is that in a package, your triat_mod:<is> ends up getting installed in the namespace and found.
And all multi-variants outside of that package are thus ignored. 23:24
Including the export one.
That's basically what's at the root of this.
s1n hmm, which namespace is the trait_mod being installed in? Foo? 23:25
jnthn Foo
And then the dispatch from within Foo finds that.
s1n hmm, that's going to be a hard work around to make work :/
it 23:26
oops
jnthn Yes, I know. :-(
23:26 payload joined
s1n it's modifying the module data, so .... shrugs 23:26
is there a ticket for this? is it currently being worked? 23:27
(in case it's a low priority or will be worked later) 23:28
jnthn TimToady proposed a change in the way we handle traits that would fix it.
It hasn't hit S14 yet.
And I only learned of it earlier on today, but I'm about to go on vacation.
I'm perfectly happy if somebody goes ahead and implements said solution while I@m away.
s1n okay, i'll make a ticket so you don't forget about it :)
23:29 eMaX left
s1n would like to help but has to read the scrollback to see if i could 23:29
23:29 jrtayloriv left
jnthn In fact, it's probably quite easy. If you're lucky, not even any PIR knowledge needed. 23:29
23:29 ihrd joined
s1n jnthn: any ideas as to where to look? 23:31
23:31 Whiteknight left
jnthn Did you read what needed doing? 23:31
Or do you mean, where to look to find that discussion? 23:32
s1n yeah but it's all above my head conceptually (multi dispatch and all)
jnthn If you're wanting to write your own traits, I suspect it's not so much over your head. :-)
Basically you need to: 23:33
s1n jnthn: you can thank Tene for that :)
jnthn 1) Modify the things in traits.pm in the setting to be called TRAIT_IS rather than trait_mod:<is>
s1n i never _really_ understood them, just kinda molded them together in my head until it kinda made sense
s1n listens intently 23:34
jnthn 2) Write a trait_mod:<is> that just passes on the argumetns it gets to TRAIT_IS
e.g.
multi trait_mod:<is>(*@pos_args, *%named_args) { TRAIT_IS(|@pos_args, |%named_args); }
Then you will write not a trait_mod:<is> in your module, but a multi TRAIT_IS that you'll export. 23:35
The important thing is that you don't change anything (e.g. in actions.pm) that emits calls to trait_mod:<is>.
s1n so in the user code, it's TRAIT_IS instead of trait_mod:<is>?
jnthn Correct.
This avoids the problem. 23:36
Because we don't call TRAIT_IS
We call trait_mod:<is>
23:36 masak left
s1n is this for only modules that have trait_mod? 23:36
jnthn And thus you just have to export your TRAIT_IS to somewhere the trait_mod:<is> can find it.
Yes, but in the setting that is only traits.pm
There are no other places you'll need to change.
In fact, you can probably just patch that file. 23:37
s1n do all the other traits in modules have to call TRAIT_*?
TimToady and your multi trait_mod:<is> wants a lift, I suspect, to get the user's view of TRAIT_IS
jnthn TimToady: erm. huh?
TimToady: Doesn't that completely unsolve the problem we solved by splitting them up?
(The problem being that the view of trait_mod:<is> was an undesirable one)? 23:38
s1n: Yes.
s1n so there's TRAIT_* and trait_mod<*>? that doesn't seem very clean 23:39
jnthn s1n: All of this said, this has not hit the spec yet. And that can suggest a sort of non-commitalness to the solution.
(I don't know in this case. It could just be that TimToady++ didn't get around to patching the spec yet, or that this could change.)
Not clean - yes, I think I was a little "hmm" about it in that sense too. :-) 23:40
TimToady maybe the name indirection actually needs to happen at export/import time 23:41
s1n i don't think we should have this confusion to make the implementation easier :)
jnthn Hmm.
s1n (just to poke at jnth and pmichaud a bit more :))
jnthn :-P 23:42
TimToady: It could be.
TimToady: I don't have any thoughts on a "magic answer".
s1n jnthn: i don't have any thoughts on any answer :)
jnthn TimToady: I'm not so keen that we break the symmetry and tell users to define something other than trait_mod:<is> though.
23:42 ihrd left
TimToady I call it TRAIT_IS here when I define it but it shows up there as trait_mod:<is> 23:42
jnthn Can we flip it the other way around? 23:43
So users are defining a trait_mod:<is>?
TimToady wait, multis don't hide other things with different longnames anyway
jnthn And we're calling a TRAIT_IS?
Well, they don't in lexical scopes, I know that much.
But in nested packages too?
TimToady multi dispatch never looks in packages 23:44
jnthn erm
?
multi foo() { }; foo()
Is that not looking in the package?
TimToady it's the lexical alias of foo that it sees
jnthn :-S
TimToady that's our multi, a my multi would work the same
jnthn So basically we install the multi also in the lexpad? 23:45
TimToady we *must not* pay attention to packages, or we don't have immutable candidate lists at compile time
jnthn Hmm
That's a good point.
TimToady that's what 'our' does
and imports go only to the lexical scope by default 23:46
jnthn OK, but in that case
multi foo($a) { }; module Bar { multi foo() { }; } 23:47
Inside Bar, how many multi candidates? 2?
TimToady 2
jnthn And how do we know that?
By looking at the enclosing lexical scope>?
TimToady because they have different longnames
yes, lexical scope
jnthn OK, so 23:48
s1n jnthn: how many would rakudo find now? 1?
jnthn multi foo($a) { }; module Bar { multi foo($a) { }; }
In that case, how many candidates? 1?
The inner one?
TimToady we never, never, ever, ever look in the package unless specifically requested to do so, whereupon we warn the programmer that his program will probably run 1000x slower
jnthn s1n: Correct.
TimToady: The irony being that in Rakudo at the moment it's likely to be faster :-P 23:49
And the more interesting case
multi foo($b) { }; module Bar { multi foo($a) { }; } # how many?
TimToady only because rakudo is 1000x too slow at everything :P
jnthn below the belt! :-P
But true.
:'(
s1n this definitely sounds like i'll make a ticket 23:50
no spec change needed then?
jnthn If only we'd know what Perl 6 would look like 3 Parrot architects ago.
23:50 cdarroch left
TimToady oddly, still 2, I think, since a positional is a kind of mandatory nameable parameter 23:51
jnthn OK
TimToady and foo(:b(42)) should find the outer one
jnthn aye
and more fun
23:51 nacho_ joined
jnthn ::T := Int; ::S := Int; multi foo(T $a) { }; module Bar { multi foo(S $a) { }; } # how many? 23:52
TimToady but that does mean that we're probably fine on the trait_mod:<is> declaration without introducing TRAIT_IS
jnthn Yes.
It just means I've gotta tweak multi-dispatch again.
TimToady asssuming they're declared with mandatory pairs, I think 23:53
jnthn But hey, I'm experienced at that.
Yes
The traits are done as mandatory pairs.
See the signatures in src/setting/traits.pm
Yes, they're Perl 6! ;-)
And yes, the ones for containers are funky right now. 23:54
TimToady I don't see such a file
are you in a branch? or do I need to something other than git fetch? 23:55
jnthn In Rakudo?
no, it's head
or master
or whatever the oh-yes-we're-git-we-have-our-own-words word is. ;-)
github.com/rakudo/rakudo/blob/70bfd.../traits.pm 23:56
(and yes, I know there's a lot of hate in there. the previous traits impl didn't go on multi dispatch at all...) 23:57
s1n jnthn: i filed a ticket, with an IRC log link so that you can remember all of this when you return :)
jnthn, TimToady: thanks for going over that with me 23:58
TimToady I didn't see any mandatory nameds in there, offhand 23:59