»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:02
pjcj joined,
jasonmay joined
00:03
envi left
00:05
kaydsoft left
00:08
gdey left,
gdey joined
00:10
MayDaniel left
00:12
icwiener left
00:13
gdey left
00:20
masonkramer joined
|
|||
AzaToth | rakudo: my $ⓨ = "alloha"; say $ⓨ | 00:29 | |
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Confused at line 22, near "my $\u24e8 = \"a"» | ||
donri | rakudo: my $börk-börk = "Swedish chef!"; say $börk-börk | 00:30 | |
p6eval | rakudo 6f9116: OUTPUT«Swedish chef!» | ||
AzaToth | donri: so, why aint $ⓨ ok? | ||
00:31
moosenewbie joined
|
|||
AzaToth | imo, it's unicode | 00:31 | |
jnthn | rakudo: say 'ⓨ' ~~ /<ident>/ | ||
AzaToth | or did I miss something? | ||
p6eval | rakudo 6f9116: OUTPUT«» | ||
jnthn | rakudo: say ?('ⓨ' ~~ /<ident>/) | ||
p6eval | rakudo 6f9116: OUTPUT«Bool::False» | 00:32 | |
donri | maybe it makes distinction between punctuation etc | ||
jnthn | It's not an identifier character, it seems. | ||
donri: Yes. | |||
donri | maybe it can be used infix? | ||
jnthn | Yes, it's probably fine for an infix. | ||
AzaToth | rakudo: say ?('ⓔ' ~~ /<ident>/) | ||
p6eval | rakudo 6f9116: OUTPUT«Bool::False» | ||
jnthn | .u ⓔ | 00:33 | |
phenny | U+24D4 CIRCLED LATIN SMALL LETTER E (ⓔ) | ||
jnthn | Hmm | ||
rakudo: say ?('ⓔ' ~~ /\w/) | 00:34 | ||
p6eval | rakudo 6f9116: OUTPUT«Bool::False» | ||
AzaToth | using compose it's Compose + ( + e + ) | ||
da Super key | |||
it _looks_ like a letter at least ツ | |||
plobsing | rakudo: my $GoodThing™ = "shiny"; say $GoodThing™; | 00:35 | |
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Confused at line 22, near "my $GoodTh"» | ||
AzaToth | hehe | ||
plobsing | but I want to trademark my variable names! | ||
jnthn | AzaToth: Looking at www.fileformat.info/info/unicode/ch.../index.htm suggests it doesn't have a bunch of properties. | ||
AzaToth | rakudo: my $℠ = "alloha"; say $℠ | 00:36 | |
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Confused at line 22, near "my $\u2120 = \"a"» | ||
AzaToth | .u ℠ | ||
phenny | U+2120 SERVICE MARK (℠) | ||
AzaToth | jnthn: so symbols are not good for identifiers then I assume | 00:37 | |
jnthn: does the specification spe cify anywhere what is valid for identifier? | 00:39 | ||
jnthn | AzaToth: I'd suspect in S02 | 00:40 | |
AzaToth | I so suspected too | ||
00:40
stifynsemons left
|
|||
arnsholt | Anything that Unicode says is alpha-numeric is a good first-approximation, IIRC | 00:40 | |
AzaToth | but perlcabal.org/syn/S02.html#Lexical_Conventions doesn't really specify that deeply | ||
"In the abstract, Perl is written in Unicode, and has consistent Unicode semantics regardless of the underlying text representations. By default Perl presents Unicode in "NFG" formation, where each grapheme counts as one character. A grapheme is what the novice user would think of as a character in their normal everyday life, including any diacritics. " | 00:41 | ||
00:41
mfollett left,
moosenewbie left
|
|||
jnthn | AzaToth: It says: | 00:41 | |
An I<identifier> is composed of an alphabetic character followed by | |||
any sequence of alphanumeric characters. The definitions of alphabetic | |||
and numeric include appropriate Unicode characters. | |||
AzaToth | ah, down there | 00:42 | |
plobsing | rakudo: my @ℕ := 1, 2, 3, ... *; say @ℕ[100]; | 00:45 | |
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Comma found before apparent series operator; please remove comma (or put parens around the ... listop, or use 'fail' instead of ...) at line 22, near " ... *; sa"» | ||
plobsing | rakudo: my @ℕ := 1, 2, 3 ... *; say @ℕ[100]; | ||
p6eval | rakudo 6f9116: OUTPUT«101» | ||
dalek | p/ctmo: 8b83fce | jonathan++ | / (4 files): First cut of storing/looking things up in the SC. Will need something for putting one assembled at compile time in place too. |
00:47 | |
p/ctmo: 8b1576b | jonathan++ | src/HLL/SerializationContextBuilder.pm: Fill out get_slot_past method in SC builder. |
|||
p/ctmo: 9d84745 | jonathan++ | src/HLL/SerializationContextBuilder.pm: Start to fill out some of the SC builder bits. |
|||
00:54
envi joined
|
|||
jnthn | sleep & | 01:01 | |
01:05
kanishka joined
|
|||
AzaToth | rakudo: class aq { method a { return class { method b { return 3; } } }; }; say(aq.a.b); | 01:08 | |
p6eval | rakudo 6f9116: OUTPUT«3» | ||
AzaToth | rakudo: class q { method a { return class { method b { return 3; } } }; }; say(q.a.b); | ||
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
AzaToth | feature or bug? | ||
donri | I wish take would use $_ | 01:12 | |
flussence | std: class q { method a { return class { method b { return 3; } } }; }; say(q.a.b); | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Unable to parse argument list at /tmp/BzWtgg41gn line 1:------> ass { method b { return 3; } } }; }; say⏏(q.a.b);Couldn't find final ')'; gave up at /tmp/BzWtgg41gn line 1:------> method b { return 3; } } }; }; | ||
..say(q.a.[33… | |||
AzaToth | rakudo: class c { method a { return class { method b { return 3; } } }; }; say(c.a.b); | 01:16 | |
p6eval | rakudo 6f9116: OUTPUT«3» | ||
AzaToth | I assume q.XXX. overrules here | ||
donri | Duno if anyone here uses Convore but convore.com/perl-6/ | 01:22 | |
jdhore | ew, convore :( | ||
plobsing | donri: never seen it before. is there much if any of an advantage over gchat or irc? | 01:23 | |
donri | plobsing: threaded live-chats | 01:24 | |
plobsing | I don't know what that means, but it sounds a lot like IRC | ||
jdhore | It's basically like really crappy IRC | 01:25 | |
donri | IRC isn't threaded, logged and searchable etc | ||
The only good thing about IRC is that everyone uses it | 01:26 | ||
plobsing | irclog.perlgeek.de/perl6/2011-02-18#i_3308184 | ||
jdhore | It's logged and searchable | ||
Yep, what he just linked | |||
donri | Yea that just works and requires no setup | 01:27 | |
plobsing | all hail the perl geek | ||
donri | Anyway, ignore Convore if you like, just thought there should be a Perl 6 group. | 01:28 | |
There is a Perl one but I dislike when they're grouped together | |||
Like on Reddit. | |||
sorear | good * #perl6 | ||
plobsing | Perl? on Reddit? isn't that the very definition of "glutton for punishment"? | 01:29 | |
jdhore | surprisingly, no | 01:30 | |
sorear | When people here say "ツ", I hear "tsu". It's not a smilie at *all*. | 01:36 | |
donri | Is it a smiley though? | 01:37 | |
sorear | hello AzaToth | ||
01:41
mfollett joined
01:45
stkowski left
01:53
ab5tract left
01:56
DarkWolf84 joined
|
|||
DarkWolf84 | hello #perl6 | 01:56 | |
01:57
mfollett left
|
|||
DarkWolf84 | rakudo: "alive".say | 01:58 | |
p6eval | rakudo 6f9116: OUTPUT«alive» | ||
02:01
noganex joined
|
|||
DarkWolf84 | too bad ;( | 02:01 | |
I think I've done something nasty (stupid) to try.rakudo.org bot | 02:02 | ||
02:05
noganex_ left
|
|||
donri | that thing never works when I try it | 02:05 | |
coldhead | try.rakudo.org is throwing a "serious" error | 02:06 | |
:\ | |||
DarkWolf84 | yeah | 02:12 | |
02:12
shi left
|
|||
DarkWolf84 | I tried to get some lines from $*IN | 02:13 | |
I just forgot that it's just cgi | |||
sorear | hi DarkWolf84 | 02:14 | |
DarkWolf84 | hi sorear | ||
sorear, do you know someone who has access to try.rakudo.org | 02:16 | ||
sorear | ask moritz_ | 02:17 | |
maybe alester | |||
DarkWolf84 | ok | ||
I hate when do something like that | 02:18 | ||
plobsing | hmmm... isn't try.rakudo.org partially sandboxed? | ||
DarkWolf84 | maybe | ||
plobsing | should $*IN really mess it up? | ||
DarkWolf84 | yeah | 02:19 | |
maybe it's waiting for input | 02:20 | ||
sorear | try.rakudo.org uses $*IN and $*OUT internally | ||
there are 3 programs running - Rakudo, a CGI script, and a server thingy which accepts commands from the CGI script and runs instances of Rakudo | 02:21 | ||
$*IN is used to communicate between the first and the third | |||
DarkWolf84 | I'm sure it broke during my tests | 02:22 | |
and the last line was $*IN.get | |||
plobsing | the visibility is the problem. it should stash away a private reference to STDIN and then set the globally visible handle to /dev/null or somesuch. | 02:23 | |
02:24
stifynsemons joined
|
|||
AzaToth | raduko: $ツ=":)" | 02:25 | |
rakudo: $ツ=":)" | |||
DarkWolf84 | nice :) | ||
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Symbol '$ツ' not predeclared in <anonymous> (/tmp/t5U3lYR3Ia:22)» | ||
AzaToth | lol? | 02:26 | |
DarkWolf84 | bug | ||
02:27
mfollett joined
|
|||
plobsing | rakudo: my $ツ =":)"; say $ツ; | 02:27 | |
p6eval | rakudo 6f9116: OUTPUT«:)» | ||
DarkWolf84 | rakudo: $a = "epic fail" | 02:29 | |
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Symbol '$a' not predeclared in <anonymous> (/tmp/LPeU6hJ1K5:22)» | ||
DarkWolf84 | I got it | ||
it's the strict pragma :) | |||
AzaToth | haha | 02:31 | |
rakudo: no strict; $ツ=":)" | |||
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Symbol '$ツ' not predeclared in <anonymous> (/tmp/9rIJnUEP1H:22)» | ||
DarkWolf84 | lol | ||
AzaToth | rakudo: say .perl | 02:32 | |
p6eval | rakudo 6f9116: OUTPUT«Any» | ||
02:35
cdarroch left
|
|||
DarkWolf84 | bye, I have to go to bed or soon will become insomniac | 02:38 | |
02:39
DarkWolf84 left
|
|||
donri | rakudo: sub postfix:<☺>($s) { say "$s! :)" }; "Hello"☺ | 02:43 | |
p6eval | rakudo 6f9116: OUTPUT«Hello! :)» | ||
02:44
stifynsemons left
|
|||
Tene | AzaToth: Rakudo doesn't yet implement 'no strict' | 02:52 | |
02:53
mfollett left,
mfollett joined
02:55
mfollett_ joined,
donri left
02:57
whiteknight left,
stifynsemons joined
02:58
mfollett left,
mfollett_ is now known as mfollett
03:05
pjcj left
|
|||
sorear | perl6: class A { }; class B { method succ() { A } }; my $x = B; $x++; say $x.WHAT | 03:06 | |
p6eval | niecza v2-68-ga938d4c: OUTPUT«(timeout)» | ||
..pugs: OUTPUT«Int» | |||
..rakudo 6f9116: OUTPUT«Int()» | |||
sorear | perl6: class A { }; class B { method succ() { A } }; my $x = B; $x++; say $x.WHAT | ||
p6eval | pugs: OUTPUT«Int» | ||
..rakudo 6f9116: OUTPUT«Int()» | |||
..niecza v2-68-ga938d4c: OUTPUT«» | |||
sorear | perl6: class A { }; class B { method succ() { A.new } }; my $x = B.new; $x++; say $x.WHAT | 03:07 | |
p6eval | pugs: OUTPUT«*** Cannot cast from VObject (MkObject {objType = (mkType "B"), objAttrs = <Hash:0x7ff40a63b169>, objOpaque = Nothing, objId = MkObjectId {unObjectId = 5}}) to Double (VNum) at /tmp/CVi7s2qu7b line 1, column 66-70» | ||
..rakudo 6f9116: OUTPUT«A()» | |||
..niecza v2-68-ga938d4c: OUTPUT«» | |||
03:08
Rotwang left
|
|||
sorear | niecza: class A { }; class B { method succ() { A.new } }; my $x = B.new; $x++; say $x.typename | 03:08 | |
p6eval | niecza v2-68-ga938d4c: OUTPUT«A» | ||
sorear | I guess WHAT.Str is broken | ||
03:09
woosley joined
03:10
cognominal left
03:11
cognominal joined
|
|||
dalek | ecza: 1b13b31 | sorear++ | Makefile: Auto-compile setting on make to end p6eval timeouts |
03:12 | |
03:13
stifynsemons left
03:14
felipe left
03:21
pjcj joined
03:22
AzaToth left,
rbuels left
03:23
rbuels joined
03:27
mfollett left
|
|||
diakopter | seen TimToady | 03:34 | |
aloha | TimToady was last seen in #perl6 17 hours 27 mins ago saying "okay, say goodbye now". | ||
diakopter | orly | ||
03:37
dolmen left
|
|||
colomon | He was also on as TimToady_it or something like that today. | 03:37 | |
03:49
ponbiki left,
ponbiki joined
04:03
envi left
04:17
hudnix left
04:20
stifynsemons joined,
jaldhar joined
04:21
hudnix joined
04:23
Su-Shee_ joined
04:27
Su-Shee left
04:35
sftp left
04:42
fith joined
|
|||
dalek | ecza: b4c48f4 | sorear++ | lib/SAFE.setting: Fix .join for lists starting with an undefined value |
04:49 | |
05:00
cognominal left
05:04
mtk left
|
|||
dalek | ecza: dfdfc66 | sorear++ | / (6 files): Implement the % operator |
05:10 | |
05:12
mtk joined
|
|||
dalek | p: 549d447 | bacek++ | / (3 files): Create attribute accessors. Mostly stolen from nqpclr |
05:21 | |
05:39
agentzh joined
05:40
wooden joined,
wooden left,
wooden joined
05:44
ponbiki left,
ponbiki joined
06:06
stifynsemons left
06:27
y3llow_ joined
06:28
kcwu left
06:29
pothos left
06:30
y3llow left,
y3llow_ is now known as y3llow
06:33
kanishka left
06:34
coldhead left,
coldhead joined
06:36
cjk101010 joined
06:37
kcwu joined
06:41
pothos joined
|
|||
dalek | ecza: 7f006be | sorear++ | lib/ (2 files): Add a general upcall/downcall mechanism |
06:42 | |
sorear | next month I'll be using that to implement eval | 06:47 | |
rakudo: say \1 | 06:50 | ||
p6eval | rakudo 6f9116: OUTPUT«Capture()<0x3d070d0>» | ||
sorear | rakudo: say (\1).perl | ||
p6eval | rakudo 6f9116: OUTPUT«\(1)» | ||
sorear | rakudo: say (\:foo).perl | ||
p6eval | rakudo 6f9116: OUTPUT«\("foo" => Bool::True)» | ||
sorear | rakudo: say (\(:foo)).perl | ||
p6eval | rakudo 6f9116: OUTPUT«\("foo" => Bool::True)» | ||
sorear | rakudo: say (\(:foo, 5)).perl | 06:51 | |
p6eval | rakudo 6f9116: OUTPUT«\(5, "foo" => Bool::True)» | ||
06:58
pothos left,
pothos joined
06:59
kaare_ joined
|
|||
sorear out | 07:03 | ||
moritz_ | phenny: tell AzaToth see www.perlmonks.org/?node_id=846772 | 07:08 | |
phenny | moritz_: I'll pass that on when AzaToth is around. | ||
07:11
Mowah joined
07:20
nadim__ left
07:28
pothos left
07:29
pothos joined
07:32
wtw joined,
cotto left
07:55
cotto joined
08:00
felipe joined
08:02
Su-Shee_ is now known as Su-Shee
08:23
kanishka joined
08:24
byzas joined
08:30
envi joined
08:34
ruoso left,
shortcircuit left
08:41
justatheory left
08:42
avuserow left
08:43
avuserow joined
08:53
daxim joined
08:55
ruoso joined
09:11
TiMBuS left,
TiMBuS joined
|
|||
moritz_ | good morning zebras | 09:14 | |
any volunteers for rakudo releases? | |||
09:23
cognominal joined
|
|||
coldhead | what would that involve? | 09:24 | |
moritz_ | coldhead: following a release guide; notably writing a release announcement (70% copy&paste), running automated test, running make release VERSION=... and finally writing an email with the announcement | 09:25 | |
typically about 1 to 2 hours of work, plus some time waiting for the spectest runs to finish | 09:26 | ||
see github.com/rakudo/rakudo/blob/mast..._guide.pod for the full instructions | |||
09:32
kanishka left
|
|||
jdhore | moritz_, I'm not really involved with Rakudo (i suppose), but i'd be up for doing one. | 09:41 | |
moritz_ | jdhore: great! Which month do you want to take? | 09:46 | |
jdhore | I'm generally free enough to handle it, but just for ease of things, mark me down for March, if that works. | 09:47 | |
moritz_ | sure, thanks a lot | 09:48 | |
09:48
orafu left
|
|||
tadzik | rakudo: my $a = 1, 2, 3; my $b = 1, 2, 3; my $c = [ $a, $b ]; $c.perl.say # why? | 09:48 | |
p6eval | rakudo 6f9116: OUTPUT«[1, 1]» | ||
moritz_ | tadzik: because $a = is item assignment precedence | 09:49 | |
rakudo: my $a = 1, 2, 3; say $a.perl | |||
benabik | rakudo: my @a = 1,2,3; my @b = 1,2,3; my @c = [ @a, @b ]; @c.perl.say | ||
p6eval | rakudo 6f9116: OUTPUT«1» | ||
rakudo 6f9116: OUTPUT«[[1, 2, 3, 1, 2, 3]]» | |||
jdhore | no worries :) | ||
moritz_ | std: my $a = 1, 2, 3; | ||
p6eval | std 625303c: OUTPUT«ok 00:01 122m» | ||
dalek | kudo: 498950f | moritz++ | docs/release_guide.pod: jdhore++ makes the March release |
09:50 | |
jdhore | :D | ||
tadzik | moritz_: I'm thinking about stackoverflow.com/questions/5038918...-variables | ||
jdhore | Mind if i ask, what's with the whole ++ thing? | 09:51 | |
TiMBuS | karma jdhore | ||
aloha | jdhore has karma of 1. | ||
moritz_ | jdhore: karma | ||
TiMBuS | karma TiMBuS | ||
aloha | TiMBuS has karma of 0. | ||
TiMBuS | :< | ||
flussence | that's a pretty low bus factor | 09:52 | |
jdhore | ah, i didn't know there was a karma bot in here | ||
flussence | karma flussence | ||
aloha | flussence has karma of 35. | ||
flussence | whoa | ||
jdhore | for a bit of fun: | 09:53 | |
karma C | |||
aloha | C has karma of 286. | ||
Tene | karma tene | ||
aloha | tene has karma of 34. | ||
Tene | karma C++ | ||
aloha | C++ has karma of 0. | ||
Tene | (C++)-- | ||
karma C++ | |||
aloha | C++ has karma of 0. | ||
Tene goes to bed. | |||
09:54
am0c left
|
|||
jdhore | C++++ | 09:54 | |
karma C++ | |||
aloha | C++ has karma of 0. | ||
jdhore | damn :( | ||
moritz_ | tadzik: I wrote a reply now | 09:55 | |
tadzik | good | ||
jdhore | moritz_, There's a small typo in release_guide.pod...For the upcoming 2011 releases, it still says: "Planned 2010 Releases" | 09:56 | |
moritz_ | jdhore: thanks, will fix | 09:57 | |
jdhore | no worries :) | ||
10:02
donri joined
10:05
woosley left
10:06
cotto left
|
|||
dalek | kudo: fe2b4e1 | moritz++ | docs/release_guide.pod: [docs] update years in release_guide.pod, jdhore++. Also add the rest of the planned release dates for 2011 |
10:06 | |
10:09
am0c joined
10:11
Chillance joined
|
|||
dalek | tpfwiki: (Andrew Tvardzik)++ | www.perlfoundation.org/perl6/index.cgi?socia | 10:22 | |
10:28
volpe joined
10:29
zenog joined
|
|||
zenog | Hi, I read somewhere that shuffling an array should be done like @array.pick(*). What is the asymptotic runtime of this command? Sorry, I have no ideas about the inner workings of that idiom ... | 10:33 | |
phenny | zenog: 16 Feb 23:52Z <colomon> tell zenog I certainly wasn't annoyed with his program. I just ran out of tuits to look at the longer version.... | ||
zenog | phenny: thx | 10:34 | |
colomon: no problem ;-) | |||
Also, does @array = @array.pick(*) happen in situ? Quite important for big data. | 10:35 | ||
moritz_ | zenog: iirc .pick(*) uses Fisher-Yates shuffle. If not, it should be changed to do that | 10:37 | |
zenog: and .= isn't really in-place yet :/ | |||
zenog | moritz_: OK, thanks. Fisher-Yates is good. | ||
moritz_: Does that mean one would have to use .=, or would @a = @a. do exactly the same? | 10:38 | ||
moritz_ | zenog: I think that depends on the cleverness of the compiler | 10:39 | |
10:40
awoodland joined
|
|||
zenog | moritz_: OK, thanks for the info ;-) ... maybe it should become part of the language definition that such things are guaranteed ... would help people to write readable code without fearing performance penalties ;-) | 10:40 | |
moritz_ | zenog: maybe. But I guess that's to be a goal for a later Perl 6 revision, not 6.0.0 | 10:41 | |
zenog | moritz_: OK. | 10:42 | |
donri | @array .= pick(*, :replace) #? | 10:56 | |
moritz_ | pick(, :replace) has been renamed to .roll | 10:57 | |
donri | well, @array.pick(*, :replace) | ||
ok | |||
isn't that then what zenog wants | |||
moritz_ | rakudo: .print for <do re mi fa so lo>.roll.[^5] | ||
p6eval | rakudo 6f9116: OUTPUT«lo» | ||
moritz_ | rakudo: .print for <do re mi fa so lo>.roll(*).[^5] | ||
p6eval | rakudo 6f9116: OUTPUT«dolorefaso» | ||
moritz_ | donri: not at all | ||
:replace is not in-place | 10:58 | ||
donri | ok | ||
moritz_ | (but it was replaced because it was confusing) | ||
11:01
awoodland left
|
|||
donri | so what it do? | 11:01 | |
moritz_ | what the name says :-) | 11:02 | |
think of rolling dice | |||
rakudo: .print for <a b c>.roll(10) | |||
p6eval | rakudo 6f9116: OUTPUT«baaabcaabc» | ||
donri | > dir test => /^D/ | 11:03 | |
Desktop Downloads Documents | |||
> dir.grep: /^D/ | |||
Desktop Downloads Documents | |||
what's the point of dir test? | |||
moritz_ | donri: the default value | 11:04 | |
of none <. ..> | |||
donri | aha | ||
huf | neat! | 11:06 | |
moritz_ | I noticed that much of my directory processing code immediately excluded those two anyway | 11:07 | |
huf | yeah | 11:08 | |
flussence | the difference between dir(:test) and .grep is the former's allowed to optimise using low-level filesystem tricks, while the latter doesn't have full knowledge of the data so can't do much with it. Also the <. ..> thing. | 11:19 | |
( i.e. it can use scandir() ) | 11:26 | ||
11:41
coldhead left,
tomaw left
|
|||
donri | isn't dir.grep lazy? | 11:42 | |
11:42
MayDaniel joined
|
|||
flussence | yes but it still has to read the entire directory into perl6 to figure out which ones to throw away | 11:43 | |
donri | but if test allows perl stuff like regex? | 11:44 | |
flussence | depends on the implementation | 11:45 | |
it can create a regex callback to pass to scandir or do it at whatever level is appropriate | 11:46 | ||
donri | hokay | 11:47 | |
flussence | the point is that a specialised interface can be optimised easier than a general one | ||
donri | sure | ||
I mostly agree with the Zen of Python: Consistency is good, but practicality beats purity. | 11:48 | ||
11:49
tzhs joined
|
|||
flussence | that sounds like a specialised case of TMTOWTDI :) | 11:49 | |
donri | Yea I'm agreeing less lately with the "one way to do it" | ||
Well, it only says one *obvious* way, which is still a good thing | 11:50 | ||
flussence | (there's more than one way to do it wrong...) | ||
donri | :D | 11:51 | |
11:51
masonkramer left,
masonkramer joined
|
|||
donri | docs.pylonsproject.org/projects/pyr...y-to-do-it | 11:51 | |
11:52
masak joined
|
|||
masak | guten après-midi, zebras. | 11:52 | |
flussence | o/ | ||
arnsholt | Hey masak | ||
bacek | o/ | ||
donri | Perl 6 seems to usually provide an obvious way to do it, from what I've seen so far. | 11:54 | |
While still verily TIMTOWTDI | |||
arnsholt | masak: Read your latest blog post with interest last night | 11:55 | |
donri | Though I think the point of "one obvious way to do it" is more for reading code than writing it | ||
arnsholt | It was especially fitting considering I was discovering quite a few of the ways Prolog exception handling can be done wrong =) | 11:56 | |
donri | Easier to follow others' code if they use obvious solutions | ||
But Perl 6's expressiveness is usually intentional, not hacked on top of the language as Ruby people like to do (&:foo for example) | 11:57 | ||
So I think WhateverCode for example is still an "obvious solution" even though there are many other ways to do the same | 11:58 | ||
(Am I rambling?) | |||
masak | arnsholt: nice to hear ;) | ||
11:58
volpe left
|
|||
masak | arnsholt: come to think of it, PGE/GGE also checks what went wrong when things went wrong in their test suites. | 11:59 | |
arnsholt | Probably a good idea. I try to make my tests robust | 12:00 | |
But since it's Prolog, a failing test often means that the test program starts backtracking all over the place =) | |||
Which results in weirdness. But then the TAP harness will throw a fit, at least | 12:01 | ||
donri | TAP: I'm the author of a Python testing framework, would it benefit from a TAP outputter? | ||
Sorry for the channel hijack ;) | 12:02 | ||
flussence | well, I've been running my perl6 tests with a test harness that was never designed for perl6, so I'd say it's a good idea :) | 12:03 | |
arnsholt | That's a good question. But primarily one for the Python community I think | ||
donri | Then I can codename the release "Tap dancer" | 12:04 | |
12:06
tomaw joined
12:07
Hackbinary left
12:15
Mowah left
12:21
agentzh left
|
|||
masak | donri: sometimes I'm surprised that TAP isn't more widely adopted in other language communities. it's such a simple, straightforward protocol. | 12:26 | |
arnsholt | Yeah, I really like it as well. The most important part is that it has an extremely low startup cost | 12:28 | |
All you need is to be able to run a program and write to a terminal | |||
moritz_ | and you don't need an XML writer :-) | 12:29 | |
arnsholt | TAP really was an asset for my Prolog project, especially in the fledgling state it's in | 12:30 | |
s/was/is | |||
masak | in the past few years, I've picked up some Java testing framework or other, looked at its API, and then gone "screw it" and re-implemented a subset of TAP. | ||
arnsholt | I don't have all the needed control structures well-implemented enough to be able to reliably test all in Prolog | ||
masak | it's happened three or four times. | ||
moritz_ | masak: one would think that the second time, you have made the reimplementation reusable :-) | 12:31 | |
masak | hm, maybe I did. don't remember :P | ||
"copying over to the new project and modifying the copy" counts as re-use, right? :P | 12:32 | ||
moritz_ | to the first order, yes :-) | ||
arnsholt | testanything.org lists two TAP libs for Java, but only one looks really useful | ||
tap4j | |||
masak | ooh | 12:33 | |
12:38
simon___ joined
12:39
gfldex left
12:43
cjk101010 left
|
|||
masak | one of the search hits that led people to my blog: "find out if a point is in a polygon with perl" | 12:43 | |
\o/ | |||
another: "the looting of manila" :P | |||
moritz_ | masak is having fun with log file analysis :-) | 12:44 | |
12:44
xinming left
|
|||
masak | yeah, sometimes when I remember that I have them. :) | 12:45 | |
12:45
xinming joined
12:51
mtk left
|
|||
masak | "can it be seen different ways by different people? frankenstein" -- someone must've been either disappointed, or shocked, or both. strangelyconsistent.org/blog/perl-6...-operators | 12:57 | |
mux | I have to say it seems Perl 6 went a bit operator-crazy; and coming from someone deep in haskell-land, I think that tells a lot | 12:59 | |
while I don't know them very well, it seems to me that the so-called hyper-operator would have been advantageously replaced by the usual functional combinators | |||
13:00
mtk joined
|
|||
moritz_ | but then you'd have to write &infix:<+> or &[+] to refer to a simple addition | 13:00 | |
masak | mux: the hyper operators *are* functional combinators. | 13:01 | |
it's just a matter of representing them as meta-operators. | |||
by the way, is there any reasonable use for [[+]] ? | |||
mux | masak: yes, they are combinators; my point is that I would have just had functions for those | 13:02 | |
masak | (since [+] already recurses, I mean) | ||
moritz_ | std: 1 [+] 2 | ||
mux | moritz_: I don't know about that | ||
p6eval | std 625303c: OUTPUT«ok 00:01 119m» | ||
masak | mux: they are sugar for functions. | ||
huf | does the actual name matter that much? it's a rose by any other name | ||
13:02
gfldex joined
|
|||
mux | masak: yes, they are infix functions. still, you get my point, I hope. | 13:02 | |
masak | huf: I'd rather write 'a + b' than 'add-numbers(a, b)' | 13:03 | |
mux | infix functions of arity 2 if we want to be extra pedantic | ||
huf | masak: yeah, i didnt mean that well-chosen names dont matter, | ||
masak | mux: I think I get your point. | ||
huf | rather, why do people expect the name of everything to match \w+? | ||
mux | masak: but would you rather write zipWith (+) xs ys or xs <<+>> ys or whatever the hyper-operator for this is? | ||
masak | my point is that the hyperops are well-chosen names. | ||
13:03
Vlavv left
|
|||
moritz_ | it' nicer to write @a Z+ @b than zipwith(&[+], @a; @b) | 13:03 | |
mux | ah, Z+ | ||
masak | mux: I think I prefer the latter. | 13:04 | |
mux | moritz_: well, it's true that Perl's syntax for function application makes this a bit messy | ||
moritz_ | mux: that's why we have meta operators :-) | ||
masak | right. they're "just" sugar. | ||
mux | anyways, it's not like I think this is a major problem or anything | ||
masak | but they're sugar in the right place. | ||
mux | so, for instance, Z+ makes sense mostly because it is so ugly to write &[+] :-) | 13:05 | |
now, if I could write &[+] in a less noisy way... | |||
moritz_ | then you'd be programming haskell :-) | 13:07 | |
13:07
pmurias joined
|
|||
moritz_ | don't they use `+` for that? | 13:08 | |
pmurias | no | ||
they use `foo` to make an op out of a function | |||
mux | yeah, it's (+) | ||
moritz_ | ah, right | 13:09 | |
mux | you enclose operators in brackets to use them prefix | ||
and inversely, you enclose functions in backticks to make them infix | |||
pmurias | what i dislike about hyperops is that we have both a bunch of hyperops and a bunch of higher order functions | ||
mux | ie 3 `elem` [1..10] == True | ||
mux starts a rakudo build for great justice | 13:10 | ||
what, finished already?! | 13:12 | ||
donri | Does Perl 6 have something like Haskell `foo`? | 13:16 | |
13:17
Vlavv joined,
stifynsemons joined
|
|||
donri | Surprised me that e.g. [say] 1,2,3 doesn't work | 13:18 | |
or for 1,2,3 &say | 13:19 | ||
huf | wouldnt [say] .... expand to 1 say 2 say 3 ? | ||
which is nonsense | 13:20 | ||
donri | true, bad example | ||
13:22
orafu joined
|
|||
jnthn | Operators have a bunch of associated meta-data that lets us know what makes sense to use in a meta-operator. | 13:25 | |
masak | what's nice about the meta-data is that it's the *same* data that the parser uses. | 13:26 | |
13:26
nymacro left
|
|||
masak | thus, to learn Perl 6 is in a sense to learn how to make a programming language. | 13:26 | |
it's very meta. | |||
13:31
jaldhar left
|
|||
mathw | Well, kind of | 13:36 | |
I do like the way Perl 6 doesn't shovel the details of things like how operators work under the carpet | |||
you can pick them up and play with them right there in Perl 6 | |||
quite haskellish :) | 13:37 | ||
13:38
skangas left,
skangas joined,
pmurias left
13:41
uvtc joined
13:43
plainhao joined
|
|||
masak | I see it play out in a couple of places in the language. | 13:49 | |
donri | rakudo: say ([,] [1,2,3]).WHAT | ||
say WHAT! | |||
p6eval | rakudo 6f9116: OUTPUT«Parcel()» | ||
donri | I love it when stuff is not just syntax | ||
masak | someone wants to muck with the OO system. Perl 6 says "here's how I do things through MOPs. feel free to tinker around". | ||
someone wants to muck with sublanguages. Perl 6 goes "here are the primitives I use, things like grammars and operators and ASTs. feel free to extend and subclass as much as you want." | 13:50 | ||
same thing with metaops. all the components for making a new one are already expressen through the language. | 13:51 | ||
in fact, the language has evolved around those concepts. | |||
daxim | I want "dynamic views" on the source. one view is source code, another one class diagrams, another one flow control boxes. | ||
or whatever people can come up with how to media-lise the underlying abstract source | |||
programming is still so primitive :( | 13:52 | ||
masak | daxim: have you come across Boomerang and lenses yet? | 13:53 | |
daxim | nope | ||
masak | that sounds like it could be the missing piece of that puzzle. | ||
13:53
awoodland joined
|
|||
masak | I would like such views much better if they were intelligent enough to feed changes back to the model. | 13:53 | |
lenses give you that. | |||
pyrimidine | rakudo: (1,2,3)>>.say | 13:58 | |
p6eval | rakudo 6f9116: OUTPUT«123» | ||
masak | pyrimidine: yes, that works. but don't do that unless you really don't care about the order of the output. | 14:00 | |
rakudo: .say for 1,2,3 # guarantees the order | |||
p6eval | rakudo 6f9116: OUTPUT«123» | ||
pyrimidine | yeah, that's what I was thinking as well, possibly running in parallel | 14:01 | |
masak | indeed. | ||
pyrimidine now just needs a keyboard shortcut for french quotes :) | |||
masak | it doesn't in Rakudo (yet), but it could, and then you'd have introduced undefined behaviour. | ||
pyrimidine | yep | 14:02 | |
masak | ^K > > in vim. | ||
C-u \ latin-1-postfix > > in Emacs. | |||
er, C-u \ latin-1-postfix RET > > in Emacs. | |||
pyrimidine likes the vim form better | 14:03 | ||
mathw | compose > > if you're running X and have a compose key in your keyboard layout | ||
mathw likes compose keys | |||
donri | I predict `say .WHAT` will be a common debugging idiom | 14:04 | |
masak | it already is :) | ||
moritz_ | or .perl | 14:05 | |
masak | say .perl is useful, too. | ||
moritz_ | eveny say :$x.perl | ||
s/y// | |||
masak | I tend to do say ($value1, $value2, $value3).perl a bit, too. | ||
donri | But those are not funny | ||
masak | oh, you wanted punniness? :P | 14:06 | |
uvtc | With Emacs, "M-x ucs-insert bb <Ret>" seems to provide a xBB | ||
moritz_ | all these emacs users must love typing... | 14:07 | |
masak | warning! non-utf8 character detected! :) | ||
uvtc: your client seems to be on latin-1. | |||
moritz_: actually, much of it gets folded in by tabbing. | |||
the tabbing in M-x is really good, and customizable. | 14:08 | ||
uvtc | The minibuffer pointed out to me that "C-x 8 RET bb RET" also works. | ||
daxim | compose, >, > | ||
masak | uvtc: cool! | 14:09 | |
daxim | running emacs without taking advantage of X is… counter-productive | ||
uvtc | masak: I'm using xchat. (...looking for pref to tell it to use utf-8 encoded unicode...) | ||
daxim | xchat.org/encoding/ | 14:10 | |
uvtc | xABhm...xBB | ||
daxim: thanks for the link! | 14:11 | ||
masak | can anything be done about the intermittent failure in t/spec/S02-builtin_data_types/instants-and-durations.t ? | 14:12 | |
moritz_ | yes. | 14:13 | |
donri | Wouldn't it be better if .perl was implied in the interactive rakudo | 14:14 | |
moritz_ | nope | ||
donri | why? | ||
moritz_ | some .perl output is pretty huge | ||
for example from nested match objects | |||
14:14
fhelmberger joined
|
|||
donri | so then you add a say | 14:15 | |
moritz_ | then you first get 20 pages full of output | ||
because you didn't remember to add a say() | |||
14:16
uvtc left,
plobsing left
|
|||
donri | I guess .perl isn't exactly like Ruby's .inspect or Python's repr() | 14:16 | |
14:16
gimix left
14:17
uvtc joined
|
|||
uvtc | «test» | 14:17 | |
«test2» | |||
14:18
masonkramer left
|
|||
masak | uvtc++ | 14:19 | |
donri | Is there something more like repr() then? | ||
moritz_ | what does repr() do? | 14:20 | |
masak | moritz_: in all fairness, the "lots of output" scenario could (and maybe should) be caught before outputting screenfuls of stuff. | ||
donri | Represent what an object is as a string, but not string adaption | 14:21 | |
moritz_ | donri: what does that mean? | ||
donri | moritz_: Usually either like .perl, or for complex/large objects something less ambiguous than string adaption but not valid code, usually some variant of <TypeName extra info> | 14:23 | |
14:23
Vlavv left
|
|||
moritz_ | hm, we have a .dump method on Match objects which do roughly that | 14:24 | |
donri | This works on anything though | ||
14:24
rhr left
|
|||
donri | By calling __repr__ on the object, either overridden or inherited from "object" | 14:24 | |
moritz_ | that's how .perl works too | 14:25 | |
donri | <__main__.Foo object at 0x7ff3fa5c2bd0> # instance of custom noop class | ||
Method 'perl' not found for invocant of class 'FileHandle' | 14:26 | ||
moritz_ | rakudo: class A { }; say A.new | ||
p6eval | rakudo 6f9116: OUTPUT«A()<0x3cf22f0>» | ||
moritz_ | donri: well, you can't serialize file handles. Still it should give something better | ||
donri | That's .Str though right? | ||
moritz_: Yea, that's the point. | 14:27 | ||
moritz_ | that's .Str, yes | ||
14:27
Axius joined
|
|||
moritz_ | so... .Str does the same as python's repr by default? | 14:27 | |
donri | Python: <open file 'Perl 6/002.pl', mode 'r' at 0x7fe5ebb83c90> | ||
moritz_: .Str seems more like str() in Python | 14:28 | ||
repr() is more for debugging and str() for adaption/coercion | 14:29 | ||
So, more like .perl but sensible for non-constant objects like file handles and complex objects like custom classes | 14:30 | ||
14:30
tzhs left
|
|||
donri | .inspect in Ruby is the same as repr() | 14:31 | |
14:31
shortcircuit joined
|
|||
uvtc | moritz_: what are you using to syntax highlight Perl 6 snippets on your blog? | 14:31 | |
moritz_ | uvtc: Text::VimColor | 14:32 | |
+ perl6.vim | |||
uvtc | moritz_: Ah. Thanks. | 14:33 | |
Incidentally, I notice that the Perl 6 Rosetta Code samples are syntax highlighted. | |||
The site says they use GeSHi. | |||
donri | So do you agree that something more similar to repr and inspect might be useful, and if so what might should it be called? | ||
uvtc | Though I don't see Perl 6 listed in their Supported Languages list. | ||
moritz_ | I think shortcircuit adapted the p5 hilighter a bit | ||
14:34
wtw left
|
|||
moritz_ | donri: I don't see why .perl shouldn't be up to the task, when modified to give sensible output on non-serializable data | 14:34 | |
donri | moritz_: <moritz_> some .perl output is pretty huge | 14:35 | |
uvtc | moritz_: I see. Thanks. | ||
donri | The point is that defaulting to .Str for the interactive shell is bad, but you say defaulting to .perl isn't good either | 14:36 | |
moritz_ | I don't see why defaulting .Str is bad per se | ||
donri | 1, "1" and [1] all output the same | ||
It's confusing. | |||
And then sometimes you have to add parenthesis for .perl | 14:37 | ||
moritz_ | well, 1, "1" and [1] also behave similarly | ||
14:37
Vlavv joined
|
|||
donri | Still, rather confusing for exploration as a beginner | 14:38 | |
At least some way to make it default to .perl would be useful | |||
moritz_ | but maybe a case could be made for a .pretty method that re-dispatches to .perl by default | ||
shortcircuit | moritz_: I didn't personally do anything with the p6 highlighter implementation. I started writing a langfile for it, but got pulled aside into other things and forgot. | ||
donri | .pretty sounds like it implies formatted .perl | 14:39 | |
14:39
mtk left
|
|||
donri | e.g. indentation and line wrapping | 14:39 | |
moritz_ | shortcircuit: so are you using the p5 one right now? | ||
donri | which might be a good thing to have too | ||
TimToady | maybe we should have .python and .ruby methods too, which is why we have a .perl method, after all... :) | ||
donri | :D | 14:40 | |
shortcircuit | moritz_: I don't think so; each language tag name goes to a separate rules file. I'll look to see what the story is, though. Sec. | ||
donri | A Perl 6 lexer for Pygments would be useful | ||
Used on GitHub and many others | |||
moritz_ | agreed | 14:41 | |
donri: want to write one? | |||
donri | Not really, but I want one written, which may or may not lead to something | ||
shortcircuit | FWIW, the highlighter on RC doesn't do [much] actual syntactic analysis. I think its awareness is limited to whitespace and some custom per-language regex rules. | 14:42 | |
TimToady | could add a switch to viv to emit various highlighter languages | ||
arnsholt | donri: A lexer for Perl 6 isn't an impossible task | ||
shortcircuit | Ah, yeah. Looks like the perl6 language file was adapted 2009/12/25 from the existing Perl5 language file. | ||
arnsholt | I think, at least | ||
masak | :) | 14:43 | |
donri | resources for me or whoever: pygments.org/docs/lexerdevelopment/ and bitbucket.org/birkenfeld/pygments-....py#cl-811 | ||
shortcircuit | moritz_: ^^ | ||
14:43
mtk joined
|
|||
arnsholt | And you can probably get a fair amount of inspiration from Rakudo and STD's grammars | 14:43 | |
moritz_ | shortcircuit: thanks | ||
masak | lexing double-quoted strings is about as hard as parsing double-quoted strings. | ||
moritz_ | and a proper lexer must keep track of terms vs. operators | 14:44 | |
so it needs a symbol table too | |||
masak | and LTM. | ||
donri | Is that important for simple syntax highlighting? | ||
moritz_ | I guess it can cheat wrt LTM | 14:45 | |
TimToady | if a highlight language is turing complete you could write a Perl 6 VM in it... :) | ||
shortcircuit | moritz_: If you're interested in the specifics: geshi.svn.sourceforge.net/viewvc/ge...iew=markup | ||
masak | donri: depends how much you care about it making mistakes. | ||
zenog | One question about Rakudo Star: Is there a reason why there is no readline support? | ||
14:45
stifynsemons left
|
|||
masak | zenog: there is readline support. | 14:45 | |
moritz_ | donri: well, if it doesn't keep track of term vs. operators, it doesn't get regex boundaries right | ||
zenog | masak: Hm. | 14:46 | |
donri | zenog: install libreadline-dev | ||
uvtc | shortcircuit++ | ||
shortcircuit: thanks | |||
moritz_ | and then configure rakudo again | ||
and parrot | |||
well, the other way round :-) | |||
donri | moritz_: is that true for perl5 too? | ||
moritz_ | donri: yes | ||
zenog | donri: Thanks, did not have that ... | 14:47 | |
donri | i mean if bitbucket.org/birkenfeld/pygments-....py#cl-811 is enough, maybe it's enough to adapt that | ||
that's for perl5 | |||
shortcircuit | uvtc: rosettacode.org is used as a guinnea pig/testing environment for BenBE (the guy behind GeSHi) to get real testing and coverage, so it tends to get patches and updates before official releases. | ||
zenog | moritz_: Devel::REPL works for me. | ||
shortcircuit | Also saves me from having to maintain that particular nightmare. :) | ||
uvtc | shortcircuit: ha. :) | 14:48 | |
masak | donri: by experience, I'd say a syntax highlighter that can't correctly find the ends of strings is almost completely worthless. | ||
14:48
MayDaniel left
|
|||
donri | masak: so is the highlighting of perl5 on github etc useless? | 14:48 | |
masak | donri: I don't know. I haven't paid much attention to it. | ||
donri | I even find it helpful for perl *6* :P | 14:49 | |
masak | I generally pay attention when I have to edit code in it :) | ||
donri | yea but pygments isn't really for editors | 14:50 | |
more for pastebins, blogs, source previews, documentation | |||
masak | it would seem to me that the basic problem is the same. | 14:51 | |
but I might be mistaken. | |||
donri | point is that it's not end of the world if it gets something complicated and rare wrong | ||
uvtc | I use Pandoc mostly for writing documentation. It provides source code highlighting for a number of languages. | 14:52 | |
14:52
ymasory joined
|
|||
masak | donri: for some reason, cperl-mode does a really decent job syntax-highlighting Perl 6, even though it wasn't designed for it. | 14:53 | |
donri: my guess is that they spent a good deal of effort thinking about failure modes, and it paid off. | |||
donri | Likely pandoc uses Kate's parser | ||
uvtc | I think it uses "highlighting-kate" to do syntax highlighting. | ||
donri: yes | 14:54 | ||
14:55
mkramer joined
|
|||
donri | I wonder if a generic Kate lexer could be written for Pygments | 14:55 | |
uvtc: does it do perl6? | |||
uvtc | donri: no | 14:56 | |
Oh, highlighting-kate is a Haskell lib written by the author of Pandoc. johnmacfarlane.net/highlighting-kate/ | 15:01 | ||
zenog | Another question: Is there something equivalent to my "@sorted = @unsorted.sort: { .lc };", but for hash keys instead of methods? | ||
15:01
Chillance left
|
|||
moritz_ | .sort: { %lookup{$_} } | 15:02 | |
donri | uvtc: yea but it's merely a binding to the parser used by the kate editor | 15:04 | |
uvtc | So, it would seem that what's required for highlighting-kate to support Perl 6 is a Kate description file for it. | ||
zenog | moritz_: Thanks! | ||
15:07
kaare_ left
|
|||
zenog | moritz_: Oops I guess I meant something different: I have hashes in the array, and I always want to get the value denoted by a certain key. | 15:09 | |
e.g. this does not work: ( { key => 1 }, { key => 2 }).max: { $_{key} | 15:10 | ||
neither this: ( { key => 1 }, { key => 2 }).max: { $_->{key} | |||
(forgot the closing }) | |||
masak | rakudo: my @a = { foo => 2 }, { foo => 1 }; say (@a.max: { .<foo> }).perl | 15:11 | |
p6eval | rakudo 6f9116: OUTPUT«{"foo" => 2}» | ||
moritz_ | rakudo: say ( { key => 1 }, { key => 2 } ).max: { .<key> }.perl | ||
p6eval | rakudo 6f9116: OUTPUT«Unable to handle non-closure Ordering yet in 'Any::max' at line 1567:CORE.setting in main program body at line 22:/tmp/sQWHSo_c_3» | ||
moritz_ | rakudo: say ( { key => 1 }, { key => 2 } ).max( { .<key> }).perl | ||
p6eval | rakudo 6f9116: OUTPUT«{"key" => 2}» | ||
moritz_ | ah, masak++ was faster | ||
aka "seems to work here" | |||
zenog: the problem is that you didn't read the error message, I guess :-) | 15:12 | ||
zenog | yeah! | ||
moritz_ | rakudo: key | ||
p6eval | rakudo 6f9116: OUTPUT«Could not find sub &key in main program body at line 22:/tmp/xIIsY4Qpml» | ||
moritz_ | my %h = key => 2; %h{key} | ||
rakudo: my %h = key => 2; %h{key} | |||
p6eval | rakudo 6f9116: OUTPUT«Could not find sub &key in main program body at line 22:/tmp/L8ZpxUilBu» | ||
mathw | nooooo | ||
take away the barewords | |||
moritz_ | rakudo: my %h = key => 2; %h{'key'} | ||
mathw | I'll talk! | ||
p6eval | rakudo 6f9116: ( no output ) | ||
zenog | moritz_: Well. The problems was more that I could not make anything out of it. | 15:13 | |
moritz_ | rakudo: my %h = key => 2; %h<key> | ||
p6eval | rakudo 6f9116: ( no output ) | ||
moritz_ | std: my %h; %h{key} | ||
p6eval | std 625303c: OUTPUT«ok 00:01 120m» | ||
zenog | rakudo: ( { key => 1 }, { key => 2 }).max: { .<key> } | ||
p6eval | rakudo 6f9116: ( no output ) | ||
moritz_ | std: key | ||
p6eval | std 625303c: OUTPUT«ok 00:01 117m» | ||
moritz_ | std: fooobar | ||
p6eval | std 625303c: OUTPUT«===SORRY!===Undeclared routine: 'fooobar' used at line 1Check failedFAILED 00:01 117m» | ||
15:14
risou joined
|
|||
moritz_ | why is key() a known routine to std? | 15:14 | |
what does it do? | |||
zenog | rakudo: say ( { key => 1 }, { key => 2 }).max: { .<key> }.perl | ||
p6eval | rakudo 6f9116: OUTPUT«Unable to handle non-closure Ordering yet in 'Any::max' at line 1567:CORE.setting in main program body at line 22:/tmp/PJ0wdKrBJA» | ||
moritz_ | precedence. | ||
mathw | zenog: I think it's parsing it differently to how you want it to, and that's why it works oddly. | ||
moritz_ | rakudo: say { .key }.perl | 15:15 | |
zenog | Hm. It works on the Rakudo Star I have installed, but not here on the channel. | ||
p6eval | rakudo 6f9116: OUTPUT«{ ... }» | ||
masak | std: value | ||
p6eval | std 625303c: OUTPUT«ok 00:01 117m» | ||
mathw | this string doth not a good sorting routine make | 15:16 | |
zenog | this here works with Rakudo Star 2011.01: (( { key => 1 }, { key => 2 }).max: { .<key> })<key> | ||
moritz_ | rakudo: (( { key => 1 }, { key => 2 }).max: { .<key> })<key> | 15:17 | |
masak | IIRC, the syntax max: { ... }.perl *should* work by spec, but doesn't in Rakudo yet. | ||
p6eval | rakudo 6f9116: ( no output ) | ||
moritz_ | rakudo: say (( { key => 1 }, { key => 2 }).max: { .<key> })<key> | ||
p6eval | rakudo 6f9116: OUTPUT«2» | ||
moritz_ | zenog: and it works here too. | ||
star: say (( { key => 1 }, { key => 2 }).max: { .<key> })<key> | |||
p6eval | star 2010.09: ( no output ) | ||
moritz_ | hm | ||
it's a bit old-ish :-) | |||
zenog | moritz_: The one that returned the hash instead of the value did not ... | 15:18 | |
moritz_: But that could be the version then ;-) | |||
15:19
cotto joined
15:21
mfollett joined
15:27
stifynsemons joined
15:31
sftp joined
|
|||
sorear | good * #perl6 | 15:31 | |
zenog: hi! | |||
zenog: are you still going to do 1.5? | 15:32 | ||
15:34
perlpilot joined
|
|||
zenog | sorear: Same answer as last time :-( | 15:34 | |
sorear | masak: perl6.vim is fine for static higlighting, but is unusably slow if I want to type code in the middle of STD.pm6. 400+ ms lag per character. Usually I use :set ft=perl while editing... | 15:42 | |
zenog: I'm planning to do it myself today, sorry. | 15:43 | ||
15:43
V15170R joined
15:44
mfollett left
|
|||
zenog | sorear: No problem, I'd be actually happy about it. | 15:47 | |
sorear | TimToady: have you read use.perl.org/~Alias/journal/35508 yet? | 15:48 | |
15:48
Axius left
15:51
mfollett joined,
flw_ joined
15:52
mfollett left
15:53
mfollett joined
15:54
flw_ is now known as flw,
flw left
15:55
kaare_ joined
|
|||
TimToady | sorear: um, yeah, I read it something like 3 years ago... | 15:55 | |
moritz_ | .oO( Alias scares the hell out of me ) :-) |
15:57 | |
15:57
risou_ joined
|
|||
perlpilot | moritz_: Must be an Australian thing ;) | 15:58 | |
(unless you are one of the few people who isn't scared by Damian) | 15:59 | ||
15:59
bemjb joined
|
|||
uvtc | I've seen a lot of "Perl 6 scares me" comments online, but most seem to be centered around syntax (ex. sequence ops, meta ops, hyper ops). | 15:59 | |
masak | Perl 6 has a Smalltalk-esque streak of not being handleable by anything other than Perl 6. I guess that's what Alias is talking about, wrt parsing. | ||
(and it's true) | |||
flussence | aaaahhhh! new things! panic! | ||
moritz_ | perlpilot: I never met Damian | 16:00 | |
perlpilot | I'm giving a lightning talk later today to some college students on a few of the things I think are cool in Perl 6. I'll see how scared they are vs. excited. | ||
V15170R | i kinda like the idea behind grammars but i don't quite get it... | ||
16:00
risou left
|
|||
V15170R | if i want to parse an XML, grammars should be the way to do it? | 16:00 | |
moritz_ | yes | ||
perlpilot | V15170R: A way. yes | ||
uvtc | I think people will be a lot less frightened of Perl 6 if they first see the "baby Perl 6" way of doing things, before being shown the fancier acrobatics that are possible. | 16:01 | |
That is, the "Perl 6 as a better Perl 5" way of doing things. | 16:02 | ||
perlpilot | uvtc: people are strange. | ||
colomon | V15170R: are you familiar with things like lex, yacc, bison, antlr? | 16:03 | |
perlpilot | half of them will be scared and the other half will be excited. When you show them baby perl 6, half of them will be happy and half of them will ask "that's it?" | ||
donri | V15170R: if you're parsing with "pure perl 6", grammars is the best way to handle complexity. | ||
masak | V15170R: people tend to want to use gramamrs for parsing XML. and while grammar are very-well suited for parsing XML (much better than regexes alone), it's probably not the best way to parse XML. :) | ||
depending on your requirements, of course. | 16:04 | ||
donri | Binding libxml2 is perhaps the "best" way | 16:05 | |
uvtc | perlpilot: The impression I get online is that a non-trivial number of people see some Perl 6 syntax and think/write "Yikes! Those Perl 6 people have gone off the deep end". | ||
[Coke] | lots of people think that about much of perl6. | 16:06 | |
TimToady | someone has to go off the deep end occasionally | ||
donri | When I see Perl 6 code, even before, my reaction was usually "that looks much more sane than Perl 5" (speaking as someone who don't really use Perl 5) | ||
TimToady | yes, the deep end we go off of is (we hope) deeply sane | 16:07 | |
V15170R | no, colomon, i've never worked with those tools... | ||
16:07
plobsing joined
|
|||
donri | TimToady: :D | 16:08 | |
colomon | V15170R: ah. Well, grammars amount to making that sort of tool an integral part of the language, instead of an ugly, hard-to-use add-on. | 16:09 | |
perlpilot | uvtc: greatness is rarely apprehended universally or even by a majority at first. People need time to understand it. | ||
[Coke] | perlpilot: haugtiness, however, is caught right out. | 16:10 | |
sorear | uvtc: the difference is that Alias has been vindicated by history | ||
[Coke] thinks that might be missing an aitch. | |||
uvtc | Quick example: the 99 bottles of beer RC sample. rosettacode.org/wiki/99_Bottles_of_Beer#Perl_6 | ||
sorear | "You end up with a language which is expressive as hell, but where the most sophisticated editor you can create is vi (with no syntax highlighting allowed)." # THIS IS MY LIFE TODAY | ||
donri | I said the other day, it's probably easy to abuse Perl 6 ("Why Perl 6 scares the hell out of me") but probably also easier to write quality code with it vs others like perl5 | ||
It's about culture and best practices | 16:11 | ||
An expressive language allows exploring and discovering good practices | |||
uvtc | I think that scares people. It could use a simple "normal code" example shown first. | ||
perlpilot | sorear: that's funny given Alias helped make Padre. | ||
masak | sorear: mine too. | ||
but I do believe that Perl 6 allows for Eclipse-style refactoring. and I intend to explore that avenue at some point. | 16:12 | ||
sorear | perlpilot: Alias' relationship to Padre is a good a-priori reason to trust him on toolchain issues | ||
donri | I mainly use Python, which supposedly tries to keep you from abusing the language. But the reality is, you can abuse the shits out of Python; it's mainly culture that prevents people from doing so. | ||
[Coke] doesn't know anyone who actually uses refactoring tools. | |||
perlpilot | [Coke]: I use some of the simple ones available in Padre. | ||
[Coke] tends to hand roll that. but then, I often use vi with no syntax highlighting. | |||
colomon neither (what [Coke] said) | |||
donri | The result instead is that when there's a proper use case for "abusing" Python, it might require what is arguably a hack | 16:13 | |
zenog | [Coke]: I use them for Perl, Java, and C#. It is way more productive than doing that by hand or search and replace. You never want to go back. | ||
[Coke]: It is the same thing as with version control. | |||
perlpilot | sorear: except that you're looking at a snapshot in time from before Padre existed. :) | ||
16:13
byzas left
|
|||
masak | uvtc: that is not at all how I'd implement "99 bottles" in Perl 6, fwiw. | 16:13 | |
colomon | I thought I established yesterday that using Z like that didn't work in Rakudo atm? | 16:14 | |
masak | uvtc: it's a very extravagant solution, in that it reaches for sequence operators and parallel looping. | ||
but it used to. | |||
as evidenced by the comment above that code. | |||
zenog | Question: Is there a thing that I can call after BUILD, without having to rewrite BUILD? | ||
sorear | Question not understood. | 16:15 | |
masak | ditto. | ||
perlpilot | zenog: sounds like you want to .wrap BUILD ? | ||
colomon | masak: when was Thousand Oaks? | ||
masak | why wrap a submethod? | ||
colomon: dunno. a year or so ago? | |||
16:15
pigdude joined
|
|||
TimToady | is this an XY problem? | 16:15 | |
masak | colomon: October 2009. | 16:16 | |
perlpilot | colomon: Oct 2009 | ||
16:16
Patterner left
|
|||
colomon | masak: ah, so alpha, then. | 16:16 | |
perlpilot | (I released it :) | ||
colomon | perlpilot++ | ||
masak | perlpilot++ | ||
colomon: yes. it worked on alpha. | |||
zenog | perlpilot: Not sure. | 16:17 | |
perlpilot | zenog: Why do you want to call something after BUILD? | ||
16:18
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
zenog | perlpilot: I just want to set some attributes depending on the value of some others. | 16:18 | |
uvtc | I think the Rosetta Code Perl 6 samples need to have both easily-digestible Perl-5-ish examples as well as more modern Perl-6-ish ones. Yes, I know, "well-volunteered". | ||
zenog | perlpilot: Say the object gets passed some data, and some attributes are the statistics of that data. | ||
perlpilot: Is there lazy building of objects in Perl 6, like in Moose? | 16:19 | ||
flussence | .oO( vague project suggestion for 2011: make a faster vim ) |
||
dalek | ecza: dc52195 | sorear++ | lib/SAFE.setting: Implement Capture.perl |
16:20 | |
ecza: c2ca536 | sorear++ | lib/CLRBackend.cs: [clr] Generate verifiable code by default (these segfaults are getting irritating) |
|||
perlpilot | zenog: "lazy object building" is in my mental model of Perl 6, but I don't think anyone has implemented it | 16:21 | |
16:22
V15170R left
|
|||
zenog | perlpilot: Anyway, I coded around it ... just reimplemented BUILD from scratch. | 16:23 | |
16:24
simon___ left
|
|||
masak | rakudo: my $b = 2; sub b($b) { "$b bottle{$b == 1 ?? "" !! "s"} of beer" }; repeat while --$b { .say for "&b($b) on the wall", b($b), "Take one down, pass it around", "&b($b-1) on the wall", "" } | 16:24 | |
perlpilot | zenog: that sounds wrong. | ||
p6eval | rakudo 6f9116: OUTPUT«2 bottles of beer on the wall2 bottles of beerTake one down, pass it around1 bottle of beer on the wall1 bottle of beer on the wall1 bottle of beerTake one down, pass it around0 bottles of beer on the wall» | ||
masak | there, that's my submission. | ||
16:25
domidumont1 left
|
|||
masak | rakudo: my $b = 2; sub b($b) { "$b bottle{"s".substr($b == 1)} of beer" }; repeat while --$b { .say for "&b($b) on the wall", b($b), "Take one down, pass it around", "&b($b-1) on the wall", "" } | 16:26 | |
p6eval | rakudo 6f9116: OUTPUT«2 bottles of beer on the wall2 bottles of beerTake one down, pass it around1 bottle of beer on the wall1 bottle of beer on the wall1 bottle of beerTake one down, pass it around0 bottles of beer on the wall» | ||
flussence | {'s' if $b != 1} | ||
masak | I could do it that way, but Randal Schwartz might shoot me :P | ||
colomon | masak++ | ||
masak | flussence: that would give a Nil, I think. | ||
donri | "In the case of variables, this means that in scripts and modules, lexical variables (à la strict) are the default, but in those -e one-liners the default is package variables." -- is there a "use nonstrict;"? :P | ||
masak | donri: 'no strict' | 16:27 | |
flussence | hm | ||
masak | donri: NYI in Rakudo. | ||
donri | aha, what specifically is 'no'? | ||
zenog | perlpilot: Well ... the code needs to run somehow ... | ||
masak | donri: 'no' cancels out a 'use'. | ||
donri | masak: does that work for anything? | ||
16:27
sftp left
|
|||
masak | donri: to a first approximation, yes. | 16:28 | |
flussence | {"s"[$b==1]} | ||
perlpilot | zenog: Are you talking about inheriting from another class except that the derived class wants to set some attributes based on the value of others? | 16:29 | |
16:29
nymacro joined
|
|||
masak | flussence: no .[] on Str. | 16:30 | |
zenog | perlpilot: No inheritance, I just want to have method to set up my data, i.e., implement the constructor myself. | ||
flussence | rakudo: say ("s"[$_==1]).perl for 0..4 | ||
p6eval | rakudo 6f9116: OUTPUT«"s"undef"s""s""s"» | ||
flussence | rakudo: say ("s"[$_==1]) for 0..4 | 16:31 | |
p6eval | rakudo 6f9116: OUTPUT«ssss» | ||
[Coke] gets his first perl6 bug sent to perl5-porters. | |||
zenog | perlpilot: Ah, there is also new that I can define ... so forget what I said ... | ||
flussence | rakudo: say "bottle{"s"[$_==1]}" for 0..4 | ||
p6eval | rakudo 6f9116: OUTPUT«bottles.[Bool::True] out of range for type Str() in <anon> at line 1 in <anon> at line 22:/tmp/6v3XUEO89o in main program body at line 1» | ||
perlpilot | zenog: so, I don't understand in what context you're rewriting BUILD then. IF it's your class, you already wrote BUILD and would just add a bit of extra code at the end. | ||
flussence | oh, thought so | ||
(and it looked so promising with perl6 -e ...) | |||
rakudo: say "bottle{"s "[$_==1].trim}" for 0..4 | 16:32 | ||
p6eval | rakudo 6f9116: OUTPUT«bottlesMethod 'trim' not found for invocant of class 'Failure' in <anon> at line 22:/tmp/1mapvnWJf2 in main program body at line 1» | ||
perlpilot | zenog: Also ... it's a good thing you said "no inheritance" because I had my "YOU'RE DOING IT WRONG" all ready to go if you hadn't :) | ||
masak | notice, people, how easily we get "bottle{"s"[$_==1]}". now write a lexer that finds the right ending " :) | 16:33 | |
TimToady | One-Pass Parsers "Я" Us! | 16:34 | |
masak | ;) | ||
16:34
neroxx joined
|
|||
masak | Ya. | 16:34 | |
TimToady | Right you ᴚ. | 16:35 | |
[Coke] | you square box, you. :P | 16:37 | |
perlpilot | zenog: you still may be doing it wrong if you're going to write your own .new() BUILD is for "setting up your data" | ||
zenog | perlpilot: Yeah but BUILD complains that the data does not exist. | 16:38 | |
Perl 6 may still not be the perfect thing for impatient people like me ;-) | 16:39 | ||
masak | zenog: time for a nopaste! | ||
I tend to write my own .new when I want to override the way arguments are passed. | |||
zenog | nopaste.info/5210b5d0b0.html | 16:41 | |
16:41
estrabd_afk is now known as estrabd
|
|||
zenog | You have all seen that beast already ;-) | 16:41 | |
sorry, it is not a minimal example | |||
perlpilot | zenog: so, the stuff from lines 62-73 is what you want to happen at .new-time? | 16:42 | |
i.e. it would be in a BUILD? | |||
masak | line 60 looks suspicious. | 16:43 | |
16:43
s1n left
|
|||
masak | first argument to .bless should be self.CREATE | 16:43 | |
and then you need to | the %args | |||
[Coke] | zeong;is it really teh IO that take 60s, or is it that plus the data manipulation? | ||
zenog | masak: I "copied" it from the Perl 6 book. | ||
perlpilot | [Coke]: I'd wager it's really the IO | ||
zenog | [Coke]: IO. Data manipulation is also _dead_ slow. | 16:44 | |
masak | zenog: huh. | ||
[Coke] | even raw parrot IO ain't that slow, is it? | ||
zenog | [Coke]: I am not sure whether it is actually the IO, or some slow-down due to problem with memory management etc. | 16:46 | |
[Coke]: to be honest, I have no idea ;-) | |||
perlpilot | [Coke]: the slowness could come from the Perl 6 wrapper around the Parrot IO, but I've noticed that IO in Rakudo seems alt slower than it should as well. | 16:47 | |
s/alt/alot/ | |||
masak | s/alot/a lot/ :) | ||
plobsing | there's stuff other than reading going on in those loops. instance creation and/or array.push could be the choke point. | 16:48 | |
zenog | plobsing: indeed | ||
masak | hyperboleandahalf.blogspot.com/2010...thing.html | ||
[Coke] builds a copy of rakudo to play with this. | |||
plobsing | zenog: You should try to isolate which of these is the problem. Try just reading, or reading + pushing, or reading + instantiating. Figure out where the cost is. I highly doubt IO accounts for all of it. | 16:49 | |
[Coke] | zenog: can you give me a URL to the dataset so I don't have to guess? | 16:50 | |
zenog | [Coke]: www.grouplens.org/system/files/ml-data.tar__0.gz | ||
perlpilot | masak: We are the music makers and we are the dreamer of dreams. :) | 16:51 | |
zenog | I now side-stepped the problem and do the computation of num_users/num_items it externally (out of the class code): nopaste.info/cd9e033893.html | 16:52 | |
16:52
neroxx left
|
|||
zenog | It is also more correct, because there may be new users/items in the test data, so I am basically not able to set it correctly just using the data that is passed to the object. So forget about that constructor issue ... | 16:53 | |
[Coke] | just saw 'perl6.1' go by in the install logs and was freaked out for a sec. | 16:56 | |
zenog: ... what's the command line invocation needed? takes 2 args, but help only mentions 1 file. | 16:57 | ||
16:58
risou joined
|
|||
zenog | [Coke]: use the same file twice | 16:58 | |
[Coke]: don't use the complete file, but only say 1K or 10K lines ;-) | |||
[Coke] | k. | ||
No such attribute '@!rating_data' in class 'MatrixFactorization' | 17:00 | ||
dalek | ecza: ca96dd2 | sorear++ | / (2 files): Implement \(1) capture syntax |
||
17:00
risou_ left
|
|||
sorear | now I just need it to stop segfaulting | 17:01 | |
zenog | [Coke]: Try this one: nopaste.info/cd9e033893.html | 17:02 | |
17:02
perlpilot left
17:05
fhelmberger left
|
|||
[Coke] | zenog: ok. that one's getting further... | 17:09 | |
17:10
skangas_ joined
|
|||
sbp | rakudo: my token abc { example }; say 'example' ~~ /<&abc>/ | 17:10 | |
p6eval | rakudo 6f9116: OUTPUT«example» | ||
sbp | why <&abc> there? why not <abc>? | ||
rakudo.org/status doesn't mention this, it seems | 17:11 | ||
17:11
MayDaniel joined
|
|||
[Coke] | so you can refer to it as abc when interrogating the match, I think. | 17:11 | |
17:12
skangas left,
lopaway left,
robinsmidsrod left,
lopaway joined,
skangas_ is now known as skangas
|
|||
[Coke] | whoops. misread S05. | 17:12 | |
S05 //"a leading & unambiguously calls a routine instead." | 17:13 | ||
sbp | rakudo: my token abc { example }; say 'example' ~~ /<abc>/ | ||
p6eval | rakudo 6f9116: OUTPUT«Method 'abc' not found for invocant of class 'Cursor' in <anon> at line 22:/tmp/isUu8Y2Afl in 'Cool::match' at line 2637:CORE.setting in 'Regex::ACCEPTS' at line 6202:CORE.setting in main program body at line 22:/tmp/isUu8Y2Afl» | ||
sbp | a token is not a routine, no? | ||
17:13
robinsmidsrod joined
17:14
s1n joined
|
|||
jnthn | rakudo: my token abc { example }; say 'example' ~~ /<&abc>/ | 17:14 | |
p6eval | rakudo 6f9116: OUTPUT«example» | 17:15 | |
jnthn | If you're finding it in the lexical scope rather than as a method, need to say so. | ||
sorear | rakudo: say [\>] 1, 2; | ||
p6eval | rakudo 6f9116: OUTPUT«Bool::TrueBool::False» | ||
sorear | hi jnthn | ||
jnthn | o/ sorear | ||
sbp | jnthn: than as a method of a grammar? | ||
jnthn | sbp: Yeah. Though grammars are just classes really :) | 17:16 | |
sbp | gotcha, makes sense. thanks! | ||
jnthn | And regex/token/rule are just methods with a different syntax on the inside. | ||
17:17
awoodland left
|
|||
TimToady | well, we're about to wander off from COSBI toward Africa, so it's likely a couple days till we have internet again | 17:20 | |
Tene | rakudo: grammar Foo { token fu { ^ f+ u+ $ } }; say 'fffffffuuuuuuuuuuu' ~~ /<&Foo::fu>/; | ||
p6eval | rakudo 6f9116: OUTPUT«Null PMC access in invoke() in <anon> at line 1 in 'Cool::match' at line 2637:CORE.setting in 'Regex::ACCEPTS' at line 6202:CORE.setting in main program body at line 22:/tmp/zQG25C_RKG» | ||
jnthn | Crappy error, but it shouldn't work. | ||
TimToady: Have a safe journey | |||
[Coke] | TimToady: have fun! | 17:21 | |
jnthn | Yes, that too :) | ||
[Coke] | ... assuming it's that kind of trip. | ||
TimToady | from time to time | ||
[Coke] | .g COSBI | ||
phenny | [Coke]: www.cosbi.eu/ | ||
Tene | jnthn: what's the right way to do that, then? | ||
TimToady | y'all be good | 17:22 | |
Tene | jnthn: I mean, there's Foo.parse(,:rule<fu>), but then I can't do anything else inside my match. Does that mean that I have to write a grammar that inherits from Foo? | ||
TimToady | ciao & | ||
jnthn | Tene: <Foo::fu> in theory should work, but I think pmichaud had some implementation questions/concerns about it. | 17:23 | |
sbp takes a peek at github.com/masak/perl6-literate | |||
17:23
pigdude left,
pigdude joined
|
|||
Tene | Yeah, I remember that too. I didn't know if that had been discussed further or not. | 17:24 | |
17:24
rhr joined
|
|||
sorear | I don't like <Foo::fu>; it falls apart if <fu> wants to use subrules expecting grammar Foo | 17:24 | |
[ :lang(Foo) <fu> ] makes more sense, and has the advantage of working in at least two implementations of p6regex | 17:25 | ||
Tene | sorear: I think that was included in pm's concerns. | ||
sbp | rakudo: grammar Foo { token fu { ^ f+ u+ $ } }; say 'fffffffuuuuuuuuuuu' ~~ /[ :lang(Foo) <fu> ]/; | ||
Tene | rakudo: grammar Foo { token fu { ^ f+ u+ $ } }; say 'fffffffuuuuuuuuuuu' ~~ /[ :lang(Foo) <fu> ]/; | ||
p6eval | rakudo 6f9116: OUTPUT«===SORRY!===Confused at line 22, near "say 'fffff"» | ||
Tene | ^5 sbp | ||
⁵ might be better | 17:26 | ||
sbp | heheh | ||
sorear | niecza: grammar Foo { token fu { ^ f+ u+ $ } }; say 'fffffffuuuuuuuuuuu' ~~ /[ :lang(Foo) <fu> ]/; | ||
p6eval | niecza v2-74-gc2ca536: OUTPUT«fffffffuuuuuuuuuuu» | ||
Tene | :D | ||
17:27
justatheory joined
17:28
kjeldahl left
|
|||
colomon | sorear++ | 17:31 | |
17:33
qwkl joined
|
|||
qwkl | hello | 17:33 | |
colomon | \o | ||
17:33
Bzek left
17:34
V15170R joined
|
|||
sorear | hello | 17:34 | |
qwkl | is this the correct syntax to pass-through an indeterminate number of arguments: | ||
-> *@args { g(|@args) } | |||
17:34
sftp joined
|
|||
masak | qwkl: looks right. | 17:35 | |
17:35
MayDaniel left,
stifynsemons left
|
|||
sorear | qwkl: better to use -> |$args { g(|$args) } | 17:35 | |
17:35
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
sorear | a slurpy array will 1. not pass-through named arguments 2. lose parcel structure | 17:35 | |
suppose you have a call func(@a, @b) and a definition sub func(@x, @y) { ... } | 17:36 | ||
using a slurpy in the middle breaks that | |||
a capture won't | |||
qwkl | thanks, I got it.. | ||
rakudo: sub Y(&f) { my &g = do { f(-> |$args { g(|$args) }) } }; say Y(-> &fac { -> $n { $n > 1 ?? $n * fac($n - 1) !! 1 } })(6); | |||
p6eval | rakudo 6f9116: OUTPUT«720» | ||
qwkl | ^^ a Y combinator in Perl 6 | 17:37 | |
sorear | You could probably make that more elegant with .assuming | 17:38 | |
colomon | woah, -> |$args already works in rakudo? jnthn++ | ||
sorear | colomon: it hasn't worked basically forever? | 17:39 | |
rakudo: say ~[\>] 3,2,1,1,2,3 | |||
colomon | sorear: it's news to me. I assumed you were doing something that only worked in niecza. | ||
p6eval | rakudo 6f9116: OUTPUT«Bool::True Bool::True Bool::True Bool::False Bool::False Bool::False» | ||
sorear | hah | ||
sigs and stuff are a LOT further along in Rakudo atm | |||
jnthn | |$args has worked since quite a while. :) | 17:40 | |
[Coke] | jnthn++ | 17:41 | |
17:41
takadonet joined
|
|||
takadonet | hey all | 17:41 | |
17:41
takadonet left
|
|||
[Coke] is interested to look more at zenog's speed issues but $dayjob calls. | 17:42 | ||
jnthn | ...short visit! | ||
PerlJam | drive by greeting | ||
masak | his client got overloaded by the greeting... | ||
17:42
takadonet joined
|
|||
takadonet | lets try this again... | 17:42 | |
masak | takadonet: \o | ||
17:42
stifynsemons joined
|
|||
PerlJam | takadonet: we didn't even get a chance to hug you the first time! | 17:43 | |
takadonet | PerlJam: I know. I just saw the irc log | ||
I been reading it all morning | |||
zenog | [Coke]: I tried different variants of IO/data structure creation, here are some results: nopaste.info/90763f2c7b.html | ||
takadonet | should just join the channel instead of refreshing the page | 17:44 | |
17:47
Guest57743 left
17:48
daxim left,
ymasory left
17:51
nadim joined
|
|||
zenog | Is it a feature that arrays are not interpolated any more? | 17:51 | |
moritz_ | zenog: see S02 on string literals | ||
masak | rakudo: my @a = 1,2,3; say "OH @a[] HAI" | 17:52 | |
p6eval | rakudo 6f9116: OUTPUT«OH 1 2 3 HAI» | ||
jnthn | rakudo: my @a = 1,2,3; say "OH @a HAI" | ||
p6eval | rakudo 6f9116: OUTPUT«OH @a HAI» | ||
jnthn | :) | ||
zenog | ah | ||
jnthn | No email addresses in double quoted strings won't get screwed up :) | 17:53 | |
*Now | |||
dukeleto | rakudo: my @a = 1,2,3; say "OH @a() HAI" | ||
p6eval | rakudo 6f9116: OUTPUT«invoke() not implemented in class 'Array' in main program body at line 22:/tmp/3k3bg2bEQf» | ||
dukeleto | hmm, that used to work, methinks | ||
sorear | you can also use {@a} | ||
jnthn | dukeleto: It's correct. | ||
dukeleto: You tried to invoke it. | |||
rakudo: my @a = 1,2,3; @a() # just like this | 17:54 | ||
p6eval | rakudo 6f9116: OUTPUT«invoke() not implemented in class 'Array' in main program body at line 22:/tmp/0ibgbyfkbN» | ||
sorear | niecza: my @a = 1,2,3; say "OH @a() HAI" | ||
p6eval | niecza v2-75-gca96dd2: OUTPUT«Unhandled exception: Unable to resolve method INVOKE in class Array at /tmp/KbPGUNxUix line 1 (MAIN mainline @ 4) at /home/p6eval/niecza/lib/SAFE.setting line 1106 (SAFE C467_ANON @ 2) at /home/p6eval/niecza/lib/SAFE.setting line 1107 (SAFE module-SAFE @ 32) at | ||
../home/p6eval… | |||
sorear | huh. niecza seems to be parsing [!=] as [![=]] | 17:59 | |
17:59
kjeldahl joined
|
|||
moritz_ | niecza: say 1 != 3 | 17:59 | |
p6eval | niecza v2-75-gca96dd2: OUTPUT«Bool::True» | 18:00 | |
moritz_ | niecza: 1 = 2 | ||
p6eval | niecza v2-75-gca96dd2: OUTPUT«Unhandled exception: assigning to readonly value at /tmp/QeFFg8oufT line 1 (MAIN mainline @ 1) at /home/p6eval/niecza/lib/SAFE.setting line 1106 (SAFE C467_ANON @ 2) at /home/p6eval/niecza/lib/SAFE.setting line 1107 (SAFE module-SAFE @ 32) at | ||
../home/p6eval/niecza/lib/SAFE.se… | |||
sorear | moritz_: it's only happening inside reduce metaops | ||
moritz_ | ah | ||
18:01
envi left
|
|||
moritz_ | niecza: say [!=] 1, 1 | 18:01 | |
p6eval | niecza v2-75-gca96dd2: OUTPUT«===SORRY!===This macro cannot be used as a function at /tmp/cwE4ah2GQE line 1:------> say [!=]⏏ 1, 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/SAFE.setting line 377 (SAFE die @ 2) at | ||
../home/p6eval/niecza/src/STD.p… | |||
sorear | if you insist | ||
dalek | ecza: ef92f25 | sorear++ | / (3 files): Test mergeback |
||
ecza: 81aba73 | sorear++ | lib/SAFE.setting: Add the reduce metaoperator |
|||
ecza: f79241a | sorear++ | src/Operator.pm6: Fix [!%%] et al |
|||
qwkl | actually, my Y had an unnecessary closure; afaict, sub Y(&f) { my &g = f({ g(|$^args) }) } is a valid fixed-point combinator, fully equivalent to the default implementation of Y... | 18:07 | |
18:09
gdey joined
|
|||
moritz_ | nothing a &?BLOCK or &?ROUTINE wouldn't solve, once that's implemented :-) | 18:11 | |
dalek | tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet | 18:12 | |
18:15
V15170R left
|
|||
dalek | ecza: ace95a1 | sorear++ | lib/SAFE.setting: Fix right-associative triangle reduce, decontainerization |
18:20 | |
ecza: 8bd6b3b | sorear++ | / (2 files): Add reduce.t to run_spectests |
|||
ast: c8e9e01 | sorear++ | S03-metaops/reduce.t: Fudge reduce.t for niecza |
|||
zenog | & | 18:21 | |
18:21
zenog left
|
|||
dalek | ast: ae2a2d8 | sorear++ | S02-builtin_data_types/autovivification.t: Unfudge autovivification.t for niecza a bit more |
18:34 | |
ecza: 0668028 | sorear++ | src/niecza: Implement is readonly parameter trait |
|||
moritz_ | sorear: are you aware of autounfudge and update_passing_test_data in the rakudo repo? | 18:38 | |
sorear: should be quite easy to adapt for niecza | 18:39 | ||
sorear | vaguely | ||
I'll check them out | |||
moritz_ | in fact I once ran update_passing_test_data against niecza, which provided the first batch of passing spectests | ||
sorear | oh, niece! | 18:40 | |
moritz_ | both expect a t/spectest.data | ||
sorear | er. nice. can't spell :) | ||
moritz_ | and I wanted to write the corresponding harness in perl6 | ||
which is why I want run() in niecza :-) | |||
18:40
tty234_ is now known as tty234
|
|||
sorear | How is the top level $UNIT::_ initialized? Does it bind to $SETTING::_ ? | 18:41 | |
sorear would vaguely prefer separate units to not share globals like that | |||
moritz_ | I think $UINT::* can be copied from $SETTING::* | 18:42 | |
and since all the routines are immutable, you can cheat there | 18:43 | ||
hm, but classes are mutable... | |||
sorear | Copied, or bound? | ||
moritz_ | i thought of assignment actually | ||
not sure if that works out | |||
sorear | I think $_ is supposed to alias $OUTER::_; it's is rw etc | ||
I think the sensible thing for &run to do is a runtime probe for Mono.Posix, and use execve if available, otherwise we must be on Windows with .NET, so emulate perlwin32's system emulation :) | 18:44 | ||
moritz_ | niecza: use fatal; | 18:47 | |
p6eval | niecza v2-80-g8bd6b3b: ( no output ) | ||
18:47
gdey left
18:48
risou left
18:52
qwkl left
19:00
ymasory joined
19:01
REPLeffect joined
19:24
gbacon_ left
19:26
uvtc left
|
|||
moritz_ | niecza: $_ = 'a'; .say if /b/ | 19:27 | |
p6eval | niecza v2-80-g8bd6b3b: OUTPUT«a» | ||
moritz_ | niecza: $_ = 'a'; .say if m/b/ | ||
p6eval | niecza v2-80-g8bd6b3b: OUTPUT«===SORRY!===Action method quote:m not yet implemented at /tmp/Ldt_yRfSNN line 1 (EOF):------> $_ = 'a'; .say if m/b/⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/SAFE.setting line 377 (SAFE die @ | ||
..2) at /home/p… | |||
moritz_ opens a bug report | |||
19:31
nymacro left,
pigdude left
|
|||
moritz_ | niecza: say 'ab cd foo'.words.perl | 19:40 | |
p6eval | niecza v2-81-g0668028: OUTPUT«["ab", "cd", "foo"]» | ||
dalek | tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....dex_tablet | 19:47 | |
20:05
Mowah joined
20:07
ymasory left
|
|||
sorear | moritz_: unlikely to be fixed soon | 20:10 | |
until I come up with some nice bit of cleverness, allowing $CALLER::_ to work will completely break loop inlining | 20:11 | ||
since every block *needs* a distinct $_ | |||
niecza doesn't guarantee distinct $/ or $! per block and can mostly get away with it, but nested $_ aliasing idioms show up a lot more | 20:12 | ||
20:19
cotto_work left
20:25
cotto_work joined
20:28
jevin joined
|
|||
masak | Perl 6 hacking time! \o/ | 20:30 | |
benabik | \o/ | ||
20:30
plainhao left
20:31
MayDaniel joined
20:32
dorlamm joined
|
|||
masak puts on some Jonathan Coulton and digs in | 20:32 | ||
colomon | \o/ (that's for p6 hacking, not Coulton. :) | 20:33 | |
20:34
y3llow_ joined,
pothos_ joined
|
|||
sorear | hello masak !!! | 20:35 | |
20:35
y3llow left,
y3llow_ is now known as y3llow
|
|||
sorear is working out plans for OUTER | 20:35 | ||
masak | hello, sorear of Three Exclamation Marks. :) | ||
20:35
pothos left
20:36
pothos_ is now known as pothos
20:38
mtk left
|
|||
Tene | masak: I have a vague memory of wanting to talk with you about something, but I have no idea what it was. Are you aware of anything pending from me? | 20:43 | |
masak | Tene: we have a couple of recurring topics: macros, operator overloading, HLL interop... | 20:45 | |
but no, I don't have any continuations lying around. | 20:46 | ||
Tene | 'k, thanks. | ||
20:46
mtk joined
|
|||
masak | it's not always easy to write Just One More Test... :) | 20:48 | |
20:53
kst left
|
|||
masak | I've been assuming all day that perl6 -e implies 'no strict'... for some reason. | 20:55 | |
too much Perl 5 exposure, I guess. :) | 20:56 | ||
20:56
dorlamm left
|
|||
sorear | I don't really see the use of 'no strict' | 21:00 | |
masak | there's not much logic behind it, I guess. | ||
just convenient for one-liners. | |||
in this case, it was just in my fingers. nothing really conscious. | |||
sorear | use strict smells like, to use one of TimToady++'s analogies, an EXTEND | 21:01 | |
it was put in to maintain backward compatibility | |||
masak | which is why Perl 6 assumes 'use strict', I guess. | ||
since it's really the right default. | |||
21:03
mkramer left
|
|||
colomon | amen. | 21:04 | |
21:05
MayDaniel left
21:12
Tedd1^ joined
|
|||
masak | ok, I now officially Don't Like that &dir returns strings whose paths are relative to the directory sent in, not to the current directory. | 21:13 | |
flussence | './' X~ dir; # would be nicer if I knew how to get the current dir in p6... | 21:15 | |
colomon | it seems like the thing is it is easier to add the path to the directory sent in than it is to remove it. | 21:16 | |
21:16
Tedd1 left
|
|||
flussence | Text-Tabs-Wrap has a bunch of files containing test input/output, I do something horrible with $*PROGRAM_NAME to get at them | 21:16 | |
21:16
molaf joined
|
|||
jnthn | rakudo: say cwd | 21:17 | |
p6eval | rakudo 6f9116: OUTPUT«/home/p6eval/rakudo» | ||
flussence | I tried pwd and gave up looking when it didn't work :( | 21:18 | |
masak | cwd does make a bit more sense here... | 21:23 | |
flussence stuck in bash-mode | 21:25 | ||
masak | rakudo: for dir() { .say } | 21:27 | |
p6eval | rakudo 6f9116: OUTPUT«Operation not permitted in safe mode in 'Safe::forbidden' at line 2:/tmp/lnat35BzSe in main program body at line 22:/tmp/lnat35BzSe» | ||
masak | aww :) | ||
could someone please try and reproduce this? gist.github.com/834440 | 21:28 | ||
Tene | masak: Yes, I've been complaining about problems with rakudo's IO class and associated functions for a while now. | ||
flussence | no output here too | 21:29 | |
jnthn | masak: take doesn't default to $_, does it? | ||
masak | oh! | ||
Tene | we don't have "default to $_" in Perl 6 | ||
jnthn: no, it definitely doesn't | |||
masak | jnthn: d'oh! :) | ||
now it works... | |||
jnthn | :) | 21:30 | |
masak | jnthn++ masak-- | ||
Tene | well, not for function calls, at least. There are a few constructs that work with $_. | ||
masak | sometimes I want .take | ||
Tene | masak: that sounds reasonable | ||
flussence | rakudo: my $basepath = do given $*PROGRAM_NAME.split('/') { .pop; .join('/') || '.' }; say $basepath; | 21:31 | |
p6eval | rakudo 6f9116: OUTPUT«/tmp» | ||
Tene | masak: That's a lot more reasonable than .say is | ||
flussence | I wonder if that could be shorter... | ||
masak | Tene: what do you say we change &dir to return cwd-relative paths in the spec, and see what falls out of it? | ||
21:31
shortcircuit left
|
|||
Tene | masak: or dir could return IO objects. | 21:31 | |
21:31
shortcircuit joined
|
|||
masak | or that. | 21:32 | |
Tene | and IO objects could have a useful .Str method | ||
masak | they have .path | ||
21:32
kst joined
|
|||
flussence | that's a string, make it .Str! | 21:32 | |
masak | sure, why not? | ||
flussence | (what would an INET stringify to?) | ||
jnthn | if all(dir('foo/bar')>>.modtime) > $five_mins_ago { ... } \ could be useful... | ||
Or such things. :) | 21:33 | ||
masak | jnthn: nod. | ||
(it's called .changed) :) | |||
jnthn | worreva :P | ||
Tene | masak: *also*, IO objects are currently broken, as they store the path when first instantiated, but don't open the file until they're accessed, so if you make a bunch of IOs, then chdir, then access your IOs, they don't work | ||
masak | jnthn: we had a productive bikeshed session over .changed et al. I'm proud of it :) | ||
jnthn | IOHNOES! | ||
21:33
pyrimidine left
|
|||
masak | Tene: yes, that's decidedly RONG. | 21:34 | |
jnthn | Agree | ||
Doesn't dwim. | |||
masak | ok, how about this one? my @l = gather for dir>>.IO { take $_ }; .say for @l | 21:35 | |
could anyone confirm that it doesn't give any output, even in a directory with files? | 21:36 | ||
it's the >>.IO that does it, it seems. | |||
Tene | masak: IMO, .say is very broken | ||
flussence | they should store the absolute path instead, right? (also .relative(cwd) would be a nice addition) | ||
masak | Tene: I've been convinced it isn't. but I used to be suspicious as well. | ||
jnthn | masak: How do IO objects stringify? | ||
Tene | masak: compare the .say on most objects to the .say on IO objects | ||
masak | jnthn: ah. you solved that one too :) | 21:37 | |
jnthn: say .path for @l works :) | |||
jnthn | :) | ||
colomon | jnthn++ | ||
masak | Tene: I know. it breaks Liskov. | ||
jnthn | masak: Can you solve some of my problems for me in return? ;) | ||
masak | jnthn: you'd like that, wouldn't you :P | ||
Tene | masak: for example, your example up there calling .say on each IO object would write newlines to the files, and nothing to stdout | ||
masak | Tene: oh! | 21:38 | |
Tene: yes, I fell into that one :( | |||
that explains it all. | |||
Tene | masak: I've seen that more than once; I'm rather unhappy with say as both a method and a standard function. | 21:39 | |
masak: I'm similarly-but-less-so uncomfortable with the two variants of map, grep, etc. that take different arguments. | |||
masak | Tene: I don't think it's likely to change. it'll just remain an FAQ until Perl 7, which will have user-friendly monads :P | ||
Tene | any-list.map accepts a Code, but Code.map accepts a list. | 21:40 | |
So your "generic function" that will work on whatever you pass to it can mysteriously break when you pass it a Code object. | |||
masak | :( | ||
jnthn didn't realize Code.map was different... | 21:41 | ||
masak hadn't really realized that | |||
jnthn | I'm trying to remember if I've ever seen that used. | ||
sorear | niecza has a completely different handling of filenames | ||
you can for instance say ".".IO.realpath; | |||
jnthn | rakudo: my @a = 1,2,3; say ({ 2 * $_ }).map(@a).perl | ||
p6eval | rakudo 6f9116: OUTPUT«No candidates found to invoke for method 'map' on object of type 'Block'; available candidates have signatures::(Mu : █; *%_):(Mu : %block;; *%_) in main program body at line 22:/tmp/JpXv2AOsGi» | 21:42 | |
Tene | jnthn: what about grep? I thought there was a Code.grep, at least | ||
sorear | Tene: there is an Any.grep | ||
jnthn | rakudo: my @a = 1,2,3; say ({ 2 == $_ }).grep(@a).perl | ||
p6eval | rakudo 6f9116: OUTPUT«()» | ||
Tene | Hmm. Looks like I'm misinformed here. | 21:43 | |
sorear: I've never actually understood why there was Any.grep, Any.map, etc. I don't understand the utility of single items acting like lists in some cases. I expect that's my ignorance, though. | |||
colomon | Tene: Any.grep is the array grep. | 21:45 | |
I mean, Any.grep takes .list on the object, and then greps on the list. | |||
Tene | Hmm. | 21:46 | |
colomon | It works on single objects because there is an Any.list which turns a single object into a list. | ||
but it works on anything array-like as well. | 21:47 | ||
it also means that if you define a new type with a meaningful .list method on it, all the built-in list methods will work on your type. | |||
Tene | Ahh, okay. | 21:48 | |
masak | I'd also like not only .path on IO, but also .filename or some such. | ||
Tene | masak: not all IOs have filenames | 21:49 | |
or paths | |||
masak | that's not my fault. | ||
colomon | +1 to Tene | ||
masak | that just means we have the wrong abstraction somewhere :) | ||
Tene | ... or do they? I can't remember what things TimToady agreed with me on, and which he disagreed on. | ||
masak | I'd like .path and .filename on File objects, OK? :) | ||
Tene | I had a notable conversation about it a while back, where I rather disagreed with him about the abstractions involved. | ||
sorear | Rakudo makes the mistake of treating paths and filehandles as the same thing | 21:50 | |
flussence | I've done some pretty horrible (and useful) things in perl5 by passing filehandles where paths are expected | 21:51 | |
masak | Tene: the IO spec is still up for grabs. | 21:53 | |
all it's looking for is some caring soul to nurture it back into sanity. | |||
Tene | Hmm. | 21:54 | |
Tempting. | |||
21:55
mfollett_ joined
21:56
frodwith left
21:57
frodwith joined
21:59
mfollett left,
mfollett_ is now known as mfollett,
MayDaniel joined
|
|||
masak | hey, I just created this little tool: gist.github.com/834500 | 22:02 | |
it's a mini-tote. | |||
I'd very much like for someone to try it for one of his projects and be as hooked by the technology as I am :) | 22:03 | ||
what it does is keep track of .pm and .t files, noting when they change. then it re-runs all the tests. | 22:04 | ||
Tene | masak: you could use $dir as IO, and then $dir.dir | ||
;) | |||
22:04
donaldh joined
|
|||
masak | Tene: it felt more sensible to send in string paths for some reason. | 22:04 | |
sorear | inotify. | 22:05 | |
Tene | masak: Ahh, I see you're a fan of tools breaking when you have fiels with spaces in the name. ;) | ||
colomon | So that's a p6 script that just sits there, monitoring the files and launching tests? | ||
22:05
molaf left
|
|||
Tene | I'd very much prefer that 'run' didn't do any shell processing, and you had to ask for that specifically, with a different function | 22:06 | |
colomon is imagining 90% of his computer's resources going to that script after a few hours of running it... | |||
masak | colomon: exactly. | ||
jnthn | colomon: It's cold in Sweden. This helps keep houses warm. :P | ||
Tene | masak: I personally use 'keep', from here: conway.rutgers.edu/~ccshan/wiki/blo...der_shell/ | ||
masak | Tene: yes, I know about it :) | ||
Tene | masak: it uses strace to find all the fiels used by a command, and installs inotify hooks on them, etc the other stuff you know. | 22:07 | |
masak | Tene: preferably, I'd like to wire tote up the same way. | ||
Tene | :P | ||
masak | using strace, yes. | ||
and inotify. | |||
colomon | jnthn: seriously, I can imagine that thing adding several degrees to the temperature in my office... | ||
masak | when available. | ||
colomon: having the tests trigger-on-save doesn't sound like much, but it's wonderful. | |||
for lack of a better word. | 22:08 | ||
colomon | It does sound pretty nice, I admit. | ||
masak | something to do with not having to context-switch as much. | ||
plus, it makes it harder to quit :P | |||
"just one more test run..." | |||
I prefer not to put types on my attributes, for fear that all my code will break once they're enforced... :/ | 22:10 | ||
colomon | one glitch... I know I usually find myself running a single test file over and over, so I don't spend the time it takes running my entire test suite. | ||
"glitch", I should say. | |||
also, running them all this way will potentially generate a lot of output to sort through, no? | 22:11 | ||
masak | colomon: yes, you're right. this isn't an ultimate solution. | 22:12 | |
I'd like three modes: all test files; one test file; one test. | |||
colomon | masak: darn you, why didn't you implement the ultimate solution first! ;) | ||
masak | because of the definition of 'ultimate'... :P | 22:13 | |
colomon | nonsense. if you wrote the ultimate one first, then you'd be done. | 22:14 | |
think of how much work you'd save! :p | 22:15 | ||
masak | it's comforting to know you're saying that with an ironic tone of voice :) | 22:17 | |
22:17
Mowah left,
Trashlord left
|
|||
moritz_ | phenny: tell sorear please see branch p6_spectests on moritz/niecza -- t/run-spectests.pl should work as soon as you implement run() (tested with s/run/say/) | 22:18 | |
phenny | moritz_: I'll pass that on when sorear is around. | ||
dalek | p/ctmo: f115e3e | jonathan++ | src/ (4 files): Various fixes and tweaks. This gets us actually doing an initial call to the SC builder during the compile, though of course it's a drop in the ocean. Turns out that there's going to be quite some yaks to shave before this can really come into use. |
22:19 | |
masak | welcome to Yak Shaving Night with the #perl6 crew... | 22:20 | |
tadzik | ...zebras? | 22:21 | |
o/ | |||
22:22
donaldh left,
thepler left
22:23
Trashlord joined,
MayDaniel left
22:25
jimbob joined
|
|||
masak | tadzik: good evening, zebra. | 22:32 | |
Tene: I think if there was something better than &run that did not break in the presence of spaces, I'd use that. as there isn't, I just reach for &run. :/ | 22:33 | ||
Tene | masak: If you can't pass a list to run instead, then run is broken. | 22:36 | |
flussence | NativeCall + execve() ! | ||
masak | Tene: for someone with so many excellent opinions, you're making surprisingly few changes to the spec... :> | ||
flussence | (oh wait, getting a return value might be hard.) | ||
Tene | ... eww, run only accepts a single strin argument. It's *worse* than system(). | ||
masak urges Tene to make it better | 22:37 | ||
Tene | masak: My opinions don't have a strong history of agreeing with TimToady, so I have no confidence about what spec contributions I could make that are likely to be agreeable. | ||
22:38
Tedd1 joined
|
|||
masak | Tene: I reject your excuse. lots of us don't have a strong history of agreeing with TimToady, yet we commit to the spec occasionally anyway :) | 22:38 | |
rakudo: my @a = 3, 1, 2; say "OH {@a.sort} HAI" | 22:39 | ||
p6eval | rakudo 6f9116: OUTPUT«OH 1 2 3 HAI» | ||
sbp | you're not disagreeing with his disagreement, just disagreeing that it matters? :-) | ||
masak | rakudo: my @a = 3, 1, 2; say "OH @a.sort() HAI" | ||
p6eval | rakudo 6f9116: OUTPUT«OH 1 2 3 HAI» | 22:40 | |
sbp | rakudo: my @a = 3, 1, 2; say "OH {{@a.sort}} HAI" | ||
22:40
am0c left
|
|||
p6eval | rakudo 6f9116: OUTPUT«OH 1 2 3 HAI» | 22:40 | |
masak | sbp: well, I don't disagree that Tene disagrees, if that's what you mean. :) | 22:41 | |
22:41
Tedd1^ left
|
|||
colomon | masak: are you *sure* I'm being ironic? I might be thinking that Extreme Programming is getting kind of stale, and it's now time for Ultimate Programming!!!!!! | 22:41 | |
masak | colomon: that's a possibility, albeit a remote one. ;) | 22:42 | |
Tene | masak: I'm reluctant about investing the time to do it right if it's questionable that it'll stay around. | 22:46 | |
22:48
mfollett left
22:50
mfollett joined
|
|||
masak | Tene: I understand. though I do think that you have many suggestions that would improve the current state of things. | 22:50 | |
I could try adding them myself, in my copious free time... | |||
Tene | masak: could be. There's the secondary problem that I'm not actually doing anything at all these days. | 22:51 | |
masak | I've updated mini-tote at gist.github.com/834500 -- it now uses prove. | ||
colomon | masak++ | ||
masak hugs Tene | |||
Tene | I haven't done any notable work on personal projects in over a year now; I guess I'm pretty burned out or something. | ||
masak | sounds like it. | 22:53 | |
tadzik | what's mini-tote? | 22:57 | |
masak | tadzik: tote is a testing framework that I sometimes almost write or think about writing. mini-tote is (perhaps) the beginnings of the real tote. | 22:59 | |
tadzik: strangelyconsistent.org/blog/helpfu...d-on-crack | |||
also, strangelyconsistent.org/blog/some-t...ts-on-tote | 23:00 | ||
23:04
whiteknight joined
|
|||
tadzik | masak: looks funny | 23:06 | |
sleeping, o/ | 23:11 | ||
masak | 'night, tadzik. | 23:12 | |
23:18
jimbob left
23:31
s1n left,
donri left,
TiMBuS left,
ponbiki left,
perigrin left,
benabik left,
bacek left,
stepnem left,
donri_ joined
23:32
ponbiki joined,
perigrin joined,
benabik joined,
barika left,
bacek joined,
s1n joined
23:34
stepnem joined,
TiMBuS joined
23:42
barika joined
23:46
mfollett left
23:55
vmspb joined
23:56
jerbraun joined
23:59
kaare_ left
|