»ö« 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:00 Trashlord joined 00:09 cooper joined
[Coke] tadzik: (build before install) except I had already done a build. ;) 00:14
00:20 [particle]1 joined 00:21 [particle] left, [particle]1 is now known as [particle] 00:29 CBro2007 left 00:41 [particle] left, [particle] joined 00:44 stepnem left 00:46 tokuhir__ left 00:47 stepnem joined 01:03 woosley joined 01:06 woosley left 01:08 bluescreen100 joined 01:44 woosley joined 01:47 cooper left 02:02 bluescreen__ joined 02:28 bluescreen100 left, bluescreen10 left, LaVolta joined 02:29 bluescreen__ left 02:51 cooper joined 03:01 uvtc joined 03:10 am0c joined 03:28 ilogger2 joined, ChanServ sets mode: +v ilogger2
uvtc TimToady: thanks. Hm. Will try to digest that. So, instead of using `tee`, maybe better to just do: `make 2>&1 > ~/temp/rakudo-make.log` ? 03:33
TimToady: (seems to work fine) 03:35
sorear no 03:41
2>&1 >file will cause stderr to screen 03:42
it reads from left to right
start with 1:tty 2:tty
after 2>&1, 1:tty 2:tty (1 has been copied to 2 with no effect)
after >file, 1:file 2:tty
you need >file 2>&1, or >&file 03:43
pipes are the one case where it's not read left to right
you need prog1 2>&1 | prog2 to send both to prog2
uvtc sorear: Will try that out. Thank you!
sorear: Sorry, was afk. Works. :) Thanks. 03:51
04:05 satyavvd joined 04:16 dju joined 04:28 HarryS joined 05:21 beek joined 05:27 birdwindupbird joined 05:31 im2ee joined, im2ee left 05:43 wtw joined 05:45 thou joined, molaf joined
Tene sorear: itym &>file 05:45
05:46 molaf left
sorear Tene: no 06:14
moritz good morning
sorear I can no longer find the relevant log snippet, but last time I suggested &>file someone politely informed me that foo &>file is interpreted like { foo& }; { >file } by many shells 06:15
and that >&file was the correct/works on not-bash-or-zsh way
06:16 daxim joined
sorear Tene: curious. POSIX.1 doesn't list any form other than >x 2>&1 06:23
in particular, for 2>&word, behavior is "unspecified" unless word expands to a decimal number or "-"
s/2//
o/ moritz 06:29
06:32 kjeldahlw joined 06:36 kjeldahlw left 06:37 kjeldahlw joined
moritz sorear: do you have an example of threads in niecza? 06:43
06:44 kjeldahlw_ joined
sorear fiddles a bit 06:51
niecza: use Threads; my $p = Threads::ObjectPipe.new; for 1..3 { Thread.new({ $p.put($_) while 1 }) }; loop { state $old = -1; state $ct = 0; my $val = $p.get; if $val == $old { $ct++ } else { say "$old x $ct" if $old > 0; $ct=1; $old=$val } } 06:52
p6eval niecza v7-39-gfe88724: OUTPUT«(timeout)1 x 4616␤2 x 4202␤3 x 2970␤1 x 1198␤3 x 3037␤2 x 1058␤1 x 3791␤3 x 3585␤1 x 1130␤2 x 2040␤3 x 3442␤2 x 2944␤1 x 4877␤2 x 4019␤1 x 1299␤3 x 4730␤1 x 1938␤2 x 1775␤3 x 1039␤1 x 3911␤3 x 3663␤2 x 3138␤3 x 1053␤1 x 2484␤3 x 2411␤2 x 4793␤3 x 2551␤1 x 4…
TimToady rosettacode.org/wiki/Calendar_-_for...ers#Perl_6 06:53
sorear TimToady: I think you forgot to save 06:56
TimToady don't think so 06:57
benabik sorear: It seems to take a moment to update. If you click too fast you don't get the right version. 06:58
TimToady having got that far, I'm pretty sure it could be done without numbers too 07:00
since any number can be replaced by +<* * * * *> or some such 07:01
moritz rakudo: say ["\0"..."~"].elems 07:04
p6eval rakudo f63b82: OUTPUT«127␤»
moritz rakudo: say ["\0"..."~"][99, 104, 114, 115] 07:05
p6eval rakudo f63b82: OUTPUT«chrs␤»
sorear My only misgiving with ∅ := {}; is that we need a more efficient way to add categoricals
jlaire rakudo: say (* ** *)(<* * * * * * * * * *>, <* *>) + (* * *)(<* * * * * * *>, <* *>)
TimToady coulda just used a slice instead...
p6eval rakudo f63b82: OUTPUT«114␤»
sorear Subclassing the grammar won't cut it 07:06
07:07 daniel-s joined
TimToady wanders off to find some hay to hit... & 07:09
07:11 daniel-s__ joined, daniel-s left 07:16 CBro2007 joined, _daniel-s__ joined
sorear o/ CBro2007 07:16
07:16 daniel-s__ left
sorear rakudo: say asin i 07:17
p6eval rakudo f63b82: OUTPUT«0 + 0.881373587019543i␤»
sorear observes with incredulity that Rakudo master's asinh takes a $base parameter 07:19
what does sinh(41 degrees) even mean
nothing geometrically relevant I bet 07:20
sorear out
daxim doin' trigonometry LIKE A $BASE
07:20 daniel-s joined 07:21 _daniel-s__ left 07:24 daniel-s__ joined 07:25 daniel-s left 07:27 am0c joined 07:28 daniel-s__ left 07:29 daniel-s__ joined 07:32 _daniel-s__ joined, daniel-s__ left 07:36 daniel-s joined, _daniel-s__ left 07:41 mj41 joined 07:50 wamba joined 07:57 Util joined 08:01 Jackneill joined, Mowah joined 08:02 donri joined, Jackneill left 08:41 buubot_backup joined 08:44 timbunce joined 08:50 dakkar joined 09:01 bs338 joined 09:12 daniel-s left 09:17 nymacro joined 09:21 ab5tract joined 09:30 wamba left 09:42 CBro2007 left 10:16 xinming joined 10:24 WAAZG4A joined, PAAB49V joined, CBro2007 joined 10:39 DarthGandalf joined 10:42 nymacro left 11:02 dayangkun joined, MayDaniel joined 11:17 Trashlord joined 11:25 Jackneill joined, Jackneill left, Jackneill joined 11:26 wamba joined 11:33 satyavvd left 11:38 JimmyZ joined
JimmyZ good evening 11:38
11:47 CBro2007 left, betterworld joined, JimmyZ_ joined 11:49 colomon joined, JimmyZ left, JimmyZ_ is now known as JimmyZ 11:50 Su-Shee joined 11:57 timbunce left, JimmyZ left 11:59 timbunce joined
takadonet morning all 12:03
12:14 dayangkun left 12:31 bluescreen10 joined
Util Morning, takadonet 12:36
12:55 Holy_Cow joined 13:03 smash_ joined 13:04 smash_ is now known as smash
smash hello everyone 13:05
13:16 kid51 joined 13:17 Holy_Cow left 13:18 wamba left
takadonet smash: hey 13:28
13:31 MayDaniel left 13:48 Mowah left
sorear good * #perl6 13:56
13:59 CBro2007 joined, pernatiy joined
colomon sorear: apologies for not getting to the trig stuff yet. I do have a plan for both implementation and improving tests, but I'm getting mauled at $work at the moment, which is taking all my free time. Things should be better by the weekend. 14:07
14:17 awoodland joined 14:19 wtw left, daxim left, _twitch joined 14:23 perlhack joined
sorear colomon: would you mind if I 1. expanded sin to utransc and have it handle all 24 cases 2. worked on making the trig tests pass ? 14:24
moritz emerges
14:25 icwiener joined 14:27 _twitch left, mkramer joined, mkramer left
moritz just helped his parents move out of the house where he grew up. That's tough. 14:28
14:29 _twitch joined
colomon sorear: 1. is certainly your baby, and I won't object to anything you want to do to it. I don't think it's a great idea -- seems to me it will both be slower and uglier -- but it's your baby. 2. ack, I really do have a plan for simplifying the tests that would probably make your efforts a lot easier.... 14:29
moritz++
14:32 wamba joined, perlhack left 14:40 frettled joined 14:41 ggoebel joined 14:42 _twitch left
sorear colomon: (1) what's your plan? 14:43
colomon: I think a 2 switches with 24 cases would be prettier than 24 copies of the transcedental unary boilerplate
colomon 1. write a simple script to automatically generate each of the needed functions. 14:44
14:44 _twitch joined, CBro2007 left
jlaire dreams about macros 14:46
14:47 wolfman2000 joined 14:48 colomon left 14:55 CBro2007 joined 14:58 colomon joined 15:00 awoodland left, colomon left 15:01 spq1 joined 15:02 colomon joined
pmichaud good morning, #perl6 15:07
15:08 _twitch left
moritz good am, pm 15:10
15:21 noganex_ joined 15:29 noganex_ is now known as noganex 15:30 Mowah joined 15:32 bluescreen10 left, CBro2007 left 15:36 rjbs joined
rjbs pmichaud: Hey, I see you're going to be in Philly. When do you arrive? 15:37
pmichaud I arrive Friday afternoon, depart Sunday evening 15:40
15:40 yuanzhao0501 joined 15:42 wamba left 15:43 yuanzhao0501 left 15:47 bluescreen10 joined 15:51 kaare__ joined 15:53 [particle] joined 15:55 kjeldahl joined, wolfman2000 left
moritz rakudo: say ~("abc".match(:g, :p(0), /./)) 16:08
p6eval rakudo f63b82: OUTPUT«a b c␤»
moritz rakudo: say ~("abc".match(:g, :p(1), /./))
p6eval rakudo f63b82: OUTPUT«b c␤»
moritz rakudo: say ~("abc".match(:g, :c(1), /./))
p6eval rakudo f63b82: OUTPUT«b c␤»
16:09 Adrieuxo joined
colomon niecza: say 2 ** 64 16:12
p6eval niecza v7-39-gfe88724: OUTPUT«18446744073709551616␤»
rjbs pmichaud: If you're interested in lunch (or maybe dinner; not sure what my plans have to be pre-OSCON), let me know. My office is in downtown PHL (Chinatown). 16:13
pmichaud rjbs: will do. I may also be meeting up with kid51 for dinner; we're staying out by the airport 16:14
(cheaper than center city lodging :) 16:15
rjbs I bet :) 16:16
there's actually a decent only-slightly-dumpy hotel right by my office for $99/night, but that's probably only a big improvement if you want to be in my neighborhood :) 16:17
16:20 mj41 left 16:21 meteorjay joined 16:26 Adrieuxo left 16:27 wamba joined 16:28 cooper joined
moritz nom: say 'abc'.match(/./, :c(3)) 16:31
p6eval nom: OUTPUT«␤»
moritz nom: say 'abc'.match(/./, :c(2))
p6eval nom: OUTPUT«c␤»
16:35 Anaeluxo joined 16:36 molaf joined
moritz nom: say 'abc'.match(/./, :c(2)).Bool 16:36
p6eval nom: OUTPUT«Bool::True␤»
moritz nom: say 'abc'.match(/./, :c(3)).Bool
p6eval nom: OUTPUT«Bool::True␤»
moritz gotcha
nom: say 'abc'.match(/./, :c(3))
p6eval nom: OUTPUT«␤»
moritz nom: say 'abc'.match(/./, :c(3)).from
p6eval nom: OUTPUT«3␤»
moritz nom: say 'abc'.match(/./, :c(3)).to
p6eval nom: OUTPUT«-3␤»
benabik moritz: test golfing? 16:37
moritz benabik: hunting a bug
I'm trying to implement Str.match(Regex, :global) 16:38
and my loop for matching ran infinitely
and when I added debugging output, it died mysteriously
now I know why - because it continued to run even if no match was found, because Match.Bool is wrong 16:39
16:39 rjbs left
moritz this might have lead to a few falsly passing tests 16:39
nom: say "OH NOEZ" if 'a' ~~ /b/
p6eval nom: OUTPUT«OH NOEZ␤»
16:42 birdwindupbird left 16:43 pernatiy_ joined
moritz nom: say 'abc'.match(/<?alpha>/, 'abc', :c(30)) 16:44
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'match'. Available candidates are:␤:(Str, Regex $pat, Any $c, Any $p, Mu %_)␤:(Cool, Cool $target, Associative %adverbs)␤␤current instr.: 'match' pc 469785 (src/gen/CORE.setting.pir:125003) (src/gen/CORE.setting:967)␤»…
moritz nom: say 'abc'.match(/<?alpha>/, :c(30))
p6eval nom: OUTPUT«␤»
16:44 pernatiy left
moritz nom: say 'abc'.match(/<?alpha>/, :c(30)).from 16:44
p6eval nom: OUTPUT«30␤»
moritz nom: say 'abc'.match(/<?alpha>/, :c(30)).to
p6eval nom: OUTPUT«30␤»
16:45 CBro2007 joined
benabik I wonder if anyone bothered to add a spectest for "failed match .Bools to False" 16:45
dalek kudo/nom: a331d3c | moritz++ | src/core/Match.pm:
fix Match boolification
moritz pmichaud: that's a bug, it amtches a zero-width regex outside the length of the string
benabik: I'd be surprised if we missed such a test, but since rakudo doesn't yet run most of the regex related tests, we probably just haven't encountered it 16:47
16:47 bluescreen10 left 16:48 kid51 left
moritz otoh the tests are still a bit incomplete 16:52
16:53 timbunce left, hatsefla1s joined 16:54 xinming_ joined, orevdiabl joined 16:55 Sid joined 16:56 Trashlord left, Sid is now known as Trashlord
moritz .u 0xa4# 16:58
phenny moritz: U+0030 U+0078 U+0061 U+0034 U+0023
moritz .u 0xa4
phenny U+00A4 CURRENCY SIGN (¤)
benabik I've always liked using µ as the replacement for an unknown Monetary Unit. 16:59
16:59 xinming left, bluescreen10 joined 17:00 timbunce joined, Yappoko___ joined, mattp_ joined
CBro2007 guys am just reading through the article perl 5 to 6, wondering how I can start to learn how to use it all? :) Any ideas? 17:00
moritz: yeah its your article 17:01
moritz CBro2007: install rakudo and/or niecza, and write Perl 6 code 17:02
the best way to learn a language is always to use it
CBro2007 yeah I got rakudo installed on my mac
moritz (both for natural and for programming languages)
CBro2007 but don't know what to use it on
or for what
moritz what do you use other programming languages for?
PerlJam CBro2007: you could try to read and understand rosetta code problems and try to solve some of your own
CBro2007 was thinking of writing a p5 module to p6
moritz sure, that's an option
what interests you, in terms programming? 17:03
CBro2007 but would it be too soon to get into doing that
moritz why?
databases? web? math? games? graphics?
CBro2007 mostly algorithmics
or data mining
to be more accurate
moritz so do something with Perl 6 that interests you 17:04
I'd have plenty ideas for algorithms, not so many for data mining
CBro2007 k but I was hoping to contribute the code too
can you share some?
17:04 pernatiy_ left
CBro2007 I was thinking of containers like c++ std library 17:05
moritz for example, implement Dancing Links in Perl 6
CBro2007 I suggested that last time
Is that useful?
PerlJam CBro2007: modules.perl6.org might be useful to you
moritz I'd write a Sudoku solver on top of that :-)
CBro2007 heh
moritz so for me it would be useful
17:05 Yappoko___ left, mattp_ left
moritz or you could implement red/black trees 17:05
or... whatever you'd like 17:06
CBro2007 yeah or b+ trees
benabik R/B trees are fun.
17:06 Yappoko___ joined, mattp_ joined
CBro2007 but a library would be cool yeah? 17:06
moritz or a packrat parser
sure
CBro2007 like a collection of all sortsa search trees etc
moritz so many interesting algorithms, so little time... :-) 17:07
CBro2007 do they have to be modules?
moritz well, modules are easy to reuse (and easy to test)
so it kinda makes sense to write them as modules (which of course can be classes)
CBro2007 ok maybe when I write something up I will ask you guys for help
moritz sure
CBro2007 hopefully its ok with you all ;)
i think fter the article 5 to 6 I should be ok to start up something 17:08
moritz that's what #perl6 is for, developing stuff in and for Perl 6 :-)
CBro2007 just hope it doesn't look like dog shit
:)
kewl
moritz and if it does, we'll tell you why it looks like dog shit, and what you can do to change that :-)
CBro2007 k 17:09
just don't be too critical mate :)
moritz :-)
benabik CBro2007: We try to be just critical enough. 17:12
CBro2007 yeah I know .. it'll be cool. I just have to get off my ass and get around writing something first :) 17:13
moritz: can you help me make sense of "context"? 17:17
I don't quite get it
$x = @a
is that saying $x = number of elements in a? 17:18
colomon rakudo: my @a = 5..10; my $x = @a; say $x.perl 17:19
p6eval rakudo f63b82: OUTPUT«[5, 6, 7, 8, 9, 10]␤»
colomon rakudo: my @a = 5..10; my $x = +@a; say $x.perl
p6eval rakudo f63b82: OUTPUT«6␤»
CBro2007 so saying just $x = @a is like assigning $x to a reference of @a? 17:21
and then +@a is the number of items in @a?
colomon hmmm 17:22
rakudo: my @a = 5..10; my $x = @a; @a[3]=10000; say $x.perl
p6eval rakudo f63b82: OUTPUT«[5, 6, 7, 10000, 9, 10]␤»
colomon reference, yup.
benabik nom: my @a = 5..10; my $x = @a; @a[3]=10000; say $x.perl
p6eval nom: OUTPUT«[5, 6, 7, 10000, 9, 10]␤»
benabik nom: my @a = 5..10; my @x = @a; @a[3]=10000; say @x.perl 17:23
p6eval nom: OUTPUT«Array.new(5, 6, 7, 8, 9, 10)␤»
CBro2007 whats ~stuff
?stuff
I am not getting where I would use this?
benabik ~stuff = stuff as string
?stuff = stuff as bool (IIRC) 17:24
nom: my $stuff = 42; say ~$stuff; say ?$stuff
p6eval nom: OUTPUT«42␤Bool::True␤»
benabik nom: my $stuff = 42; say ~$stuff.perl; say ?$stuff
p6eval nom: OUTPUT«42␤Bool::True␤»
benabik nom: my $stuff = 42; say (~$stuff).perl; say ?$stuff
p6eval nom: OUTPUT«"42"␤Bool::True␤»
benabik CBro2007: In P5 you had to know what operators would convert values to what types. In P6 you can explicitly state these things. 17:26
CBro2007 @( <a b> Z <c d> ) # <a c b d>
@@( <a b> Z <c d> ) # (['a', 'c'], ['b', 'd'])
17:27 isBEKaml joined
CBro2007 what is the "Z"? 17:27
benabik zip operator
CBro2007 hm
benabik `@a Z @b` takes the first element of @a and pairs it with the first of @b and so on.
rakudo: say (<a b> Z <c d>).perl 17:28
p6eval rakudo f63b82: OUTPUT«("a", "c", "b", "d")␤»
isBEKaml rakudo: my @a=<1 2 3>, @b = <4 5 6>; say @a Z+ @b;
p6eval rakudo f63b82: OUTPUT«===SORRY!===␤Symbol '@b' not predeclared in <anonymous> (/tmp/hGXeypBUo1:22)␤»
isBEKaml rakudo: my @a=<1 2 3>;my @b = <4 5 6>; say @a Z+ @b;
p6eval rakudo f63b82: OUTPUT«579␤»
CBro2007 was < > to make a list?
I thought it wasn't needed yeah?
isBEKaml CBro2007: that's akin to qw() in p5 17:29
CBro2007 ah i see
17:29 dakkar left
CBro2007 how do i run code here? 17:29
isBEKaml CBro2007: you can also do Zop with Z where op is any operator applicable. 17:30
CBro2007 just "rakudo: ... "?
isBEKaml yes
CBro2007 rakudo: my @a = 1 2 3; my @b = 4 5 6; say @a Z+ @b; 17:31
p6eval rakudo f63b82: OUTPUT«===SORRY!===␤Confused at line 22, near "my @a = 1 "␤»
CBro2007 hmm so I have to say < > around the 1 2 3?
isBEKaml CBro2007: there has to be some way for rakudo to realise that it's a list you're providing.
17:31 Chillance joined
benabik rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; say @a Z+ @b; # commas should be enough 17:31
17:31 Jackneill left
CBro2007 hmm coz the tutorial didn't need any < > around 17:31
p6eval rakudo f63b82: OUTPUT«579␤»
isBEKaml benabik++ #forgot p6 for quite a while. :) 17:32
CBro2007 ah ofcourse
sorry
this zip looks like something I came across in Haskell 17:33
i think its the same deal
benabik Yup!
isBEKaml std: my @a=<1 2 3>,@b = <1 2 3>;
p6eval std 516268a: OUTPUT«===SORRY!===␤Variable @b is not predeclared at /tmp/ehPZIx9XS2 line 1:␤------> my @a=<1 2 3>,@b⏏ = <1 2 3>;␤Check failed␤FAILED 00:01 122m␤»
isBEKaml CBro2007: yes, that's the same.
benabik std: my (@a, @b) = (<1 2 3>, <1 2 3>)
p6eval std 516268a: OUTPUT«ok 00:01 124m␤»
isBEKaml std: my $a=1,$b=2;
p6eval std 516268a: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/qRPIF0iz0_ line 1:␤------> my $a=1,$b⏏=2;␤Check failed␤FAILED 00:01 122m␤»
benabik std: my ($a, $b) = (1,2) 17:34
p6eval std 516268a: OUTPUT«ok 00:01 124m␤»
17:34 Anaeluxo left
benabik nom: my ($a, $, $c) = <a b c>; say $a; say $c 17:34
CBro2007 am just thinking that in p5, if I wanted to build a complicated Hash of hash of hashes or something.. I would read in lines from say a file and build this structure on the fly using references
isBEKaml benabik: yes, I can do that. But the compiler should be able to assign variables as I give them right beside the variables?
p6eval nom: OUTPUT«a␤c␤»
CBro2007 how would one do the same in p6
I haven't seen references anywhere yet
have they gotten rid of refs in p6? 17:35
benabik isBEKaml: The compiler could, if that was valid P6. But it's not.
isBEKaml benabik: It's not? int a=5,b = 6; ?
like in C?
benabik isBEKaml: Nope. It's `my ($a, $b) = 5, 6` like in Perl 5
isBEKaml benabik: p5 doesn't complain. :) 17:36
benabik CBro2007: It's a bit more like refs are the default. See how `$x = @a` worked above.
CBro2007 so just about my qn.. how would you do that in p6?
yeah I see that
isBEKaml buubot_backup: my $a=1, $b = 2; say $a; say $b;
buubot_backup isBEKaml: Couldn't match input.
isBEKaml how do you use buubot? 17:37
CBro2007 just not sure how I could build something complicated using this "inbuilt" reference stuff
17:38 Yappoko___ left, mattp_ left
pmichaud CBro2007: in general, it "just works" without having to think about references. 17:38
isBEKaml buubot_backup: say 42;
buubot_backup isBEKaml: Couldn't match input.
isBEKaml buubot_backup: eval(print 42)
buubot_backup isBEKaml: Couldn't match input.
isBEKaml boo
benabik isBEKaml: I stand corrected. But `my ($a, $b) = 1,2` seems far more common than `my $a = 1, $b = 2`
CBro2007 so if you wanted to have say a hash of hashes... could you show me a sample. In p5, I would have done. $href->{key}->{key2} = val 17:39
isBEKaml benabik: my ($a, $b) is list assignment to lvalues. my $a=1,$b=2 is just variable assignment.
pmichaud nom: my %hoh = a => { able => 123, andy => 140 }, b => { ben => 1, bob => 4 }; say %hoh.perl
p6eval nom: OUTPUT«("a" => {"able" => 123, "andy" => 140}, "b" => {"ben" => 1, "bob" => 4}).hash␤»
pmichaud rakudo: my %h; %h<a><able> = 124; say %h.perl; 17:40
p6eval rakudo f63b82: OUTPUT«{"a" => {"able" => 124}}␤»
isBEKaml pmichaud: why doesn't p6 accept my $a=1, $b=2 while p5 does?
CBro2007 ah i see
pmichaud isBEKaml: likely because of the differing precedence of assignment
CBro2007 I haven't seen ... %h<a><able>.... I mean the use of < and > like that
isBEKaml pmichaud: comma has higher precedence than assignment? :O 17:41
benabik isBEKaml: Yes. So `@a = 1,2,3` works.
pmichaud isBEKaml: in list assignment, yes.
isBEKaml pmichaud: Ah, I see.
pmichaud rakudo: my %h; %h{'a'}{'able'} = 123; say %h.perl;
p6eval rakudo f63b82: OUTPUT«{"a" => {"able" => 123}}␤»
benabik std: my ($a = 1), ($b = 2)
p6eval std 516268a: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/hy3w2nad40 line 1:␤------> my ($a = 1), ($b⏏ = 2)␤Check failed␤FAILED 00:01 125m␤»
pmichaud %hash<a> is a shorter way of writing %hash{'a'}
CBro2007 ah yeah I remember now 17:42
isBEKaml std: my {$a = 1}, {$b = 2}
p6eval std 516268a: OUTPUT«===SORRY!===␤Malformed my at /tmp/w1PgnYVUGz line 1:␤------> my ⏏{$a = 1}, {$b = 2}␤ expecting scoped declarator␤Parse failed␤FAILED 00:01 117m␤»
CBro2007 in the hash key had to be wrapped with the ' ' yeah
pmichaud rakudo: my $x; $x{'name'}[3]{'foo'} = 'test'; say $x.perl;
p6eval rakudo f63b82: OUTPUT«{"name" => [Any, Any, Any, {"foo" => "test"}]}␤»
pmichaud CBro2007: see, it "just works". I ended up with a hash entry that was an array of hashes :-) 17:43
(and $x was even declared as a scalar variable :-)
CBro2007 what is "Any"?
a placeholder?
benabik Wow. Any() can autoviv to a hash?
pmichaud "Any" is the new "undef"
isBEKaml std: my $a = (1), $b = (2);
p6eval std 516268a: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/QXaUxAWnbo line 1:␤------> my $a = (1), $b⏏ = (2);␤Check failed␤FAILED 00:01 123m␤»
CBro2007 wicked
pmichaud we now have typed undefs
Any is the generic undef for most common objects 17:44
CBro2007 so Any is kind of where all types inherit from yeah?
so its like a super type?
pmichaud for the most part, yes. There's a type above Any
(Mu)
isBEKaml CBro2007: yeah, Any equivalent to Object in java and C#
CBro2007 is "Object" above Any?
isBEKaml CBro2007: as pm says, Mu stands above all. though rarely used.
CBro2007 is that the one?
pmichaud "Mu" is above Any.
CBro2007 ah Mu
pmichaud nom: say Any.^parents;
p6eval nom: OUTPUT«Mu()␤»
CBro2007 ok haven't read about it
pmichaud nom: say Match.^parents 17:45
p6eval nom: OUTPUT«Capture() Any() Mu()␤»
pmichaud nom: say Int.^parents # nom gives the wrong answer here for now, but it illustrates the point
p6eval nom: OUTPUT«Real() Numeric() Cool() Any() Mu()␤»
benabik I tend to think of Any more like AnyRef in Scala. :-D
CBro2007 also why are the regular expressions in p6 moving towards more like the java style?
with a matcher class
isBEKaml pmichaud: ^parents is pretty cool. Generating accurate documentation would be more easier.
benabik: Scala, you too? :D
pmichaud CBro2007: match objects hold more than just the string they matched
they hold the contents of any submatches as well. 17:46
benabik isBEKaml: Scala is my cure for Java. :-D It's more Perly and more Haskelly than Java.
CBro2007 pmichaud: but could we not capture patterns in p5?
isBEKaml benabik: Agreed. I feel the same. :)
pmichaud CBro2007: it's a bit deeper than that, even.
CBro2007 pmichaud: sorry just trying to understand the need.
ok 17:47
pmichaud CBro2007: basically, the parser for Perl 6 is implemented using Perl 6 regular expressions.
we no longer get back a simple set of strings -- it gives back an entire parse tree.
CBro2007 and its more optimized?
17:47 mattp_ joined
CBro2007 ok 17:47
[Coke] moritz: (good am, pm) GROOOOOOOOOOOOOAN
CBro2007 so its more like a parser
pmichaud Perl 6 grammars and regexes are more like Parse::RecDescent, or Grammar::Regexp
benabik The parse tree stringifies to the correct things, of course. :-D 17:48
pmichaud (indeed, those were developed contemporaneously with Perl 6 regexes and grammars)
CBro2007 k
now I can go back to reading further :)
isBEKaml benabik: do you happen to be one of those lucky ones that use Scala at work?
CBro2007 thanks for the explanations
[Coke] whoa, rjbs is in PHL?!? I wish I had known that before I spent a week there. 17:49
benabik isBEKaml: I was a contractor for a while and my main customer didn't care what it was written in as long as it worked.
isBEKaml benabik: lucky fella. When was that?
benabik: pre 2.8 days? :)
moritz [Coke]: I've been using that "joke" for ages now :-) 17:50
17:50 impious joined
isBEKaml [Coke]: so has sorear (though not a joke, more a meme) :P 17:51
benabik isBEKaml: It was a year or so ago. 2.8 either was just released or was released early during the project. 17:52
isBEKaml benabik: that's cool. I kind of grew used to 2.7 when 2.8 came and quickly got overwhelmed by those huge changes. Now, it's 2.9. :) 17:53
benabik: anyway, it would be pretty awesome to see some libraries in p6 like those of collections or Actors in Scala. 17:54
benabik isBEKaml: It would. Get coding. ;-)
isBEKaml benabik: :-) # waiting for the enlightenemnt and collaborators. 17:55
moritz rakudo: 'abc' =~ 1 17:56
p6eval rakudo f63b82: OUTPUT«===SORRY!===␤Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 22, near " 1"␤»
moritz nom: 'abc' =~ 1
p6eval nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
isBEKaml rakudo: 'abc' ~= 1 17:57
p6eval rakudo f63b82: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in main program body at line 1:/tmp/dwaAJdpvzx␤»
isBEKaml :D
std: 'ab' ~~=1
p6eval std 516268a: OUTPUT«===SORRY!===␤Can't make assignment out of ~~ because chaining operators are diffy at /tmp/Mznmgw5DHQ line 1:␤------> 'ab' ~~=⏏1␤Check failed␤FAILED 00:01 120m␤»
isBEKaml std: 'ab' ~~ 1
p6eval std 516268a: OUTPUT«ok 00:01 120m␤» 17:58
moritz nom: eval '"abc" =~ 1'; say $!.WHAT
p6eval nom: OUTPUT«Exception()␤»
moritz nom: eval '"abc" =~ 1'; say $!
p6eval nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"␤»
moritz nom: eval '"abc" =~ 1'; say $! ~~ /'~~'/
p6eval nom: OUTPUT«␤»
moritz nom: eval '"abc" =~ 1'; say "$!" ~~ /'~~'/ 17:59
p6eval nom: OUTPUT«␤»
moritz nom: say "~~" ~~ /'~~'/
p6eval nom: OUTPUT«~~␤»
17:59 Holy_Cow joined
moritz nom: eval '"abc" =~ 1'; say "$!" 17:59
p6eval nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"␤»
moritz nom: eval '"abc" =~ 1'; say "$!".WHAT
p6eval nom: OUTPUT«Exception()␤»
moritz meh.
17:59 Holy_Cow left
benabik moritz: What are you trying to track down? 17:59
moritz nom: eval '"abc" =~ 1'; say $!.Str
p6eval nom: OUTPUT«Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " 1"␤»
moritz benabik: test failure in S03-operators/brainos.t 18:00
nom: eval '"abc" =~ 1'; say $!.Str ~~ /'~~'/
18:00 pjcj joined
p6eval nom: OUTPUT«␤» 18:00
isBEKaml moritz: brainos? really? :)
moritz isBEKaml: yes :-)
18:01 Yappoko___ joined
benabik isBEKaml: Typo : Typing :: Braino : Braining. Thinking. Whatever. 18:01
isBEKaml benabik: yeah, * :) 18:02
benabik I wonder where A : B :: C : D came from. Was it invented for the SAT? 18:04
isBEKaml benabik: proportions. Ratio and proportions.
moritz knows the concept, but is unfamiliar with the notations 18:05
benabik I've never seen :: used mathmatically. Odd.
isBEKaml moritz: I'd just read them as A is to B as C is to D.
moritz would use <=> instead of :: there
for logical equivalence
benabik moritz: The SAT uses ::
18:05 Tpot joined
isBEKaml benabik: more generally, all entrance tests. ;) 18:06
moritz nom: say ~&infix:<+>
p6eval nom: OUTPUT«infix:<+>␤»
moritz nom: say ~&infix:<+> ~~ /\+/
p6eval nom: OUTPUT«␤»
moritz nom: say (~&infix:<+>) ~~ /\+/ 18:07
p6eval nom: OUTPUT«␤»
moritz nom: say (~&infix:<+> ~~ /\+/).Bool
p6eval nom: OUTPUT«Bool::False␤»
moritz pmichaud: see above - another regex bug in nom?
nom: say '+' ~~ /\+/
p6eval nom: OUTPUT«+␤»
moritz nom: say (~&infix:<+>).WHAT 18:08
p6eval nom: OUTPUT«Str()␤»
moritz nom: say (~&infix:<+>)
p6eval nom: OUTPUT«infix:<+>␤»
moritz nom: say 'infix:<+>' ~~ /\+/
p6eval nom: OUTPUT«␤»
moritz nom: say 'a+' ~~ /\+/
p6eval nom: OUTPUT«␤»
[Coke] gets dizzy.
isBEKaml nom: say 'a\+' ~~ /\+/
p6eval nom: OUTPUT«␤»
moritz nom: say 'abc' ~~ /b/
p6eval nom: OUTPUT«␤»
isBEKaml nom: ('ab' ~~ /b/).say 18:09
p6eval nom: OUTPUT«␤»
[Coke] would love an irssi rule of some kind that took messages to p6eval and their responses and made them less prominent.
moritz so... it implicitly anchors to the start of string?
isBEKaml nom: ('ab' ~~ /a/).say
p6eval nom: OUTPUT«a␤»
pmichaud could be a bug in Regex.ACCEPTS, yes.
yes, Regex.ACCEPTS is missing the :c(0) argument. 18:10
although we have to do a bit more than that ultimately, because it depends on the form of the regex as to the anchoring to be done.
moritz and in absense of :c(0), does it assume :p(0)?
isBEKaml [Coke]: add an ignore rule for p6eval. ;)
pmichaud yes, it assumes :p(0) for now. I can switch that if we need to.
moritz it really doesn't matter, because we only use that interface in a few places 18:11
dalek kudo/nom: 01b163b | moritz++ | src/core/Str.pm:
implement :g for Str.match
moritz currently Str.match, Regex.ACCEPTS
and I plan to base Str.{split,comb,words} on Str.match
pmichaud wfm 18:12
18:13 impious left
moritz spectesting now with :c(0) added 18:13
CBro2007 just tried "say @@( <a b> Z <c d> );" in a .pl file and got the error : "Non-declarative sigil is missing its name at line 10, near "@@( <a b> " 18:15
wondering what that means?
moritz it means that @@ is not yet implemented in rakudo
std: say @@( <a b> Z <c d> );
p6eval std 516268a: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/hEfn0FBB2w line 1:␤------> say ⏏@@( <a b> Z <c d> );␤Confused at /tmp/hEfn0FBB2w line 1:␤------> say @⏏@( <a b> Z <c d> );␤ expecting twigil␤Othe…
moritz oh, or is the @@ syntax gone? 18:16
mberends #phasers in 44 min!
18:16 Tpot left
CBro2007 was working earlier when pmichaud showed it to me 18:16
18:16 Tpot joined
CBro2007 or was he using something else? nom? 18:16
pmichaud I didn't use @@ earlier... must've been someone else :)
moritz or something else :-) 18:17
isBEKaml the error message reads like it expects a var name there. @@varname or so.
moritz @varname or so :-) 18:18
std: my @@varname
p6eval std 516268a: OUTPUT«===SORRY!===␤Invalid hard reference syntax at /tmp/nA_hshmcWh line 1:␤------> my @⏏@varname␤ expecting any of:␤ desigilname␤ twigil␤Parse failed␤FAILED 00:01 118m␤»
isBEKaml @varname@varname1
[Coke] isBEKaml: that only removes half the conversation.
18:18 Jackneill joined
isBEKaml [Coke]: Add those violators of your peace too! ;) 18:18
CBro2007 so is this feature not implemented? or is there something wrong with the syntax?
isBEKaml std: my @var@varname;
p6eval std 516268a: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/DKPkheoD4o line 1:␤------> my @var⏏@varname;␤ expecting any of:␤ POST␤ bracketed infix␤ constraint␤ infix or meta-infix␤ postfix␤ postfix_prefix_meta_operator␤ shape
..definition␤ statement…
18:19 Tpot left
pmichaud I see no reference to '@@' in the specs, so I'm guessing it's a fossil. 18:19
CBro2007 i got it from moritz's article
@( <a b> Z <c d> ) # <a c b d>
@@( <a b> Z <c d> ) # (['a', 'c'], ['b', 'd'])
pmichaud ("fossil" == something we once had in the Perl 6 specs but is now outdated or removed)
CBro2007 slice context
pmichaud it's now called "lol context" 18:20
CBro2007 heh
so how do you go about doing this now?
moritz where LoL = List of Lists
pmichaud nom: say (<a b> Z <c d>).perl;
p6eval nom: OUTPUT«(("a", "c"), ("b", "d")).list␤»
moritz nom: say (<a b> Z <c d>)[0]
CBro2007 sorry why the .perl in the end?
p6eval nom: OUTPUT«a c␤»
isBEKaml CBro2007: pretty printer.
moritz CBro2007: are you familiar with Data::Dumper in perl 5?
CBro2007 yeah roughly 18:21
pmichaud without the .perl, the say function will flatten out the elements
CBro2007 i c
ok
pmichaud nom: say <a b> Z <c d>
p6eval nom: OUTPUT«a c b d␤»
moritz .perl is the same in Perl 6, but built-i
n
pmichaud nom: say (<a b> Z <c d>).list.perl
p6eval nom: OUTPUT«(("a", "c"), ("b", "d")).list␤»
pmichaud oops
nom: say (<a b> Z <c d>).flat.perl
p6eval nom: OUTPUT«("a", "c", "b", "d").list␤»
TimToady nom: say (<a b> Z <c d>).lol.perl 18:22
p6eval nom: OUTPUT«Method 'lol' not found for invocant of class 'List'␤current instr.: '_block1002' pc 123 ((file unknown):33678224) (/tmp/zfp6SyY7Mr:1)␤»
pmichaud (nyi, I think) 18:23
not hard to implement... just haven't gotten tuit yet.
isBEKaml there's a .lol? i can haz lol?
TimToady can not yet haz that cheezburger
pmichaud nom: sub xyz(**@l) { say @l.perl }; xyz( <a b> Z <c d> ); # checking 18:24
p6eval nom: OUTPUT«LoL.new((("a", "c"), ("b", "d")).list.item)␤»
CBro2007 on raduko for "say (<a b> Z <c d>).perl;" I got "("a", "c", "b", "d")"
it seems to have flattened it there
pmichaud rakudo doesn't know about LoL yet
that's only a feature of the new compiler ("nom")
LoL showed up after Rakudo was released, and we've not had the infrastructure to fix it until nom
CBro2007 hmm
so should I be using nom or rakudo for dev and just mucking around with p6? 18:25
pmichaud I'm writing a blog post about that right now :)
CBro2007 so it gets fixed in rakudo you mean?
TimToady somehow I think that LoL.new((("a", "c"), ("b", "d")).list.item is not actually telling me what I want to know
felher TimToady: What does 'cal -h' do?
PerlJam CBro2007: my personal choice for a little while now has been to use nom. 18:26
pmichaud TimToady: I think it's actually wrong.
TimToady felher: suppresses highlighting today's date
PerlJam CBro2007: it only sucks when you run into the less-than-implemented portions of nom, but those are fewer and fewer over time
pmichaud CBro2007: it's hard to give a precise answer. nom is much closer to the current Perl 6 specification, but is missing some features that Rakudo has 18:27
CBro2007 i thought rakudo was the more complete one?
ok
felher TimToady: Oh, okay. So what cal are you using? My cal (util-linux) doesn't have that option.
benabik CBro2007: nom is the next version of Rakudo.
pmichaud within the next few weeks we hope that situation will reverse however, and that nom will have at least as many features (and fewer bugs) than rakudo master
CBro2007 benabik: ok i didn't get that part :) 18:28
TimToady felher: ubuntu linux, and -h is the very first option on the manpage
CBro2007 i suppose while writing code then its best to use stuff that works in both
18:28 bluescreen10 left
pmichaud the existing rakudo will be "end of lifed" very soon. 18:30
as in, next week. :)
isBEKaml TimToady: I was confused about the reference to cal. I use util-linux too and -h isn't one of those options.
TimToady well, I suppose the example doesn't really need it 18:31
dalek odel: 12a4dbf | (Martin Berends)++ | c/ (7 files):
odel/c] test C compiling and library loading on Windows
TimToady not that it's terribly portable as it is...
if anyone wants to put up the real calendar algorithm, it would just turn into more numbers 18:32
CBro2007 pmichaud: so you recommend downloading nom?
pmichaud CBro2007: if you're primarily interested in playing with the languages, and don't mind the high likelihood that you'll run into things that aren't yet implemented in nom, I'd suggest it, yes. 18:33
*language
CBro2007 k
TimToady but it is likely to be a bit more frustrating for the next little bit
pmichaud ...what TimToady++ said.
CBro2007 i mean since you said rakudo will be gone next week... I am just wondering if everyone will be on nom next week?
TimToady master still more of the things that "ought" to be there
pmichaud I'm certain not everyone will be on "nom" next week. 18:34
CBro2007 ok
TimToady by "end of life" he means no longer a teenager, and slowly dying :)
pmichaud but that's where most of the developers are going to be :)
CBro2007 will stick to rakudo for now :)
i still have a long way to go before I get the hang of all these p6 tricks anyway 18:35
tadzik hello
CBro2007 hi tadzik
18:37 isBEKaml left
felher TimToady: k, thnx. seems like Ubuntu is using ncal instaed of util-linux :) 18:38
tadzik CBro2007: hey, how is the Perl 6 experience? 18:39
CBro2007 tadzik: still reading through that article in my spare time.. 18:40
tadzik: getting the hang of it slowly
am reading rules now
I don't quite get the "literal" and "metasyntactic" drama :)
Letter characters (ie underscore, digits and all Unicode letters) match literally, and have a special meaning (they are metasyntactic) when escaped with a backslash. For all other characters it's the other way round - they are metasyntactic unless escaped.
pmichaud CBro2007: basically, if you want to match punctuation, you have to quote or escape it. 18:41
TimToady it means you don't have to memorize which characters are meta like you do in Perl 5
Perl 6 treats all punctuation as meta
CBro2007 in p5 you kind of know which characters to escape in a regex... basically the ones that are used to mean something ... like [ or \ etc 18:42
pmichaud CBro2007: yes, but do you know the list of all characters that "mean something"? ;-) 18:43
CBro2007 so if we have to match a comma... would you say \, in the regex?
pmichaud CBro2007: yes.
CBro2007: or ','
TimToady very nearly all of them mean something anyway, so we decided to reserve them all
CBro2007 , wrapped in single quotes
pmichaud CBro2007: or double quotes.
CBro2007 ok 18:44
will obviously take some getting used to :)
pmichaud it's *much* simpler than p5 regexes
(from experience)
CBro2007 i like the nested capture syntax of p6
pmichaud rakudo: '1,2,345,6,8' ~~ / (\d+) ** ',' /; say $/.perl; 18:45
p6eval rakudo f63b82: OUTPUT«Match.new(␤ from => 0,␤ orig => "1,2,345,6,8",␤ to => 11,␤ positional => [␤[␤ Match.new(␤ from => 0,␤ orig => "1,2,345,6,8",␤ to => 1,␤ ),␤ Match.new(␤ from => 2,␤ orig => "1,2,345,6,8",␤ to => 3,␤ ),␤ Match.new(␤ fr…
pmichaud well, the dump wasn't so useful there.
CBro2007 so say I used p6 for a project and realized that something that isn't there now but available in p5 as a module.. can I use the p5 module easily? or are there dramas?
18:45 im2ee joined
pmichaud CBro2007: there are dramas. 18:45
mostly black comedies. 18:46
18:46 bluescreen10 joined
CBro2007 heh 18:46
crap
18:46 ab5tract left
pmichaud p6 breaks compatibility with p5... in ways that we haven't easily restored yet 18:46
CBro2007 maybe thats what would make me give this second thoughts
coz syntax wise.. p6 is bloody way more wicked
pmichaud if "wicked" means "easier to deal with", I agree. :) 18:47
CBro2007 I see things borrowed from haskell, lisp etc... which will make programming much easier
yeah more feature rich
pmichaud pmichaud.com/sandbox/rel.txt # draft blog post for rakudo.org, comments/suggestions wanted
#phasers in 12 18:48
mberends CBro2007: project blizkost is an experimental bridge that can call some Perl 5 modules from Rakudo master, during some undocumented phases of the moon (YMMV). github.com/jnthn/blizkost 18:49
CBro2007 ok
oh and I can use C code in p6 yeah? 18:50
like call C libraries in p6 i mean
18:50 masak joined
CBro2007 i cannot remember if I read that somewhere or someone mentioned it here 18:50
18:52 beek left, beek_ joined
mberends CBro2007: you can compile some C code into Parrot, and then call your code from Rakudo, but it's complicated work, so not often done 18:52
CBro2007 hmm i thought it was simpler to use C in p6 than in p5. I think in p5 there is a FFI module that helps 18:53
pmichaud it will be simpler to use C, yes.
we have a few hurdles in place yet that need to be removed.
CBro2007 ok
18:53 jaldhar joined 18:54 masak__ joined
mberends CBro2007: oh, and project zavolaj shows you how to do limited FFI, for example github.com/jnthn/zavolaj/blob/mast...ustomlib.t 18:54
CBro2007 ok 18:55
this will come handy later on in the future
pmichaud better example might be: github.com/jnthn/zavolaj/blob/mast...lclient.p6
masak__ oh hai, #perl6.
life is good at tadzik++'s place. we're eating pierogi. :D
mikemol pics of gtfo? :P
colomon pierogi!! 18:56
colomon drools...
18:56 masak left
masak__ mikemol: working on pics. hold on. 18:57
pmichaud gist.github.com/1093407 # latest bench marks
gist.github.com/1093408 # latest bench marks, different machine
nine awwaiid: interesting read: fdmanana.files.wordpress.com/2010/0...hreads.pdf 18:58
sorear o/ CBro2007
masak__ o/ CBro2007
sjohnson heh 18:59
pmichaud #phasers in 0 19:00
CBro2007 so is that to say that Haskell rocks?
nine moritz: Could fdmanana.files.wordpress.com/2010/0...hreads.pdf be the model for concurrency that is mentioned as suggested by you in S17? The URL in S17 404s
masak__ Haskell rocks, lazily.
tadzik proof: i.imgur.com/ByPnO.jpg
masak__ mikemol: ^
CBro2007 masak__: wondering if erlang would do better 19:01
mikemol Yumm
masak__ CBro2007: do better on what?
CBro2007 with the concurrency model 19:02
its throughput could be better maybe?
awwaiid nine: fancy
masak__ I think Erlang was mentioned as an ideal during some hallway discussion at YAPC::EU 2010. pmichaud was there. 19:03
CBro2007 aha
moritz nine: iirc it had "unification" in the title
19:04 masak__ is now known as masak
TimToady Erlang is a fairly large lamppost that some people find their problems under. 19:05
Perl 6 is a whole street full of lampposts 19:06
moritz pmichaud: adding :c(0) to Regex.ACCEPTS did not remove the automatic anchoring to start-of-string 19:07
19:07 am0c left
nine moritz: "A language-based approach to unifying events and threads"? 19:07
pmichaud moritz: noted, I'll take a look at it shortly.
awwaiid nine: it sounds like that paper is kinda like AnyEvent=events, Coro=threads. It doesn't address multi-cpu processing, though I'm not sure if that is immediately relevant
sjohnson TimToady: well said
moritz nine: sounds roughly correct
TimToady philosophically, you need a monadish translator between the transactional view of processing and the event view 19:08
nine moritz: ok, then I guess that the one I found is a follow up on yours
pmichaud Perl 6 is a whole street full of lampposts, some of which are lit and some of which we (the implementors) still bang our heads against in the dark.
moritz nom: say /b/(Cursor."!curosr_init"("abc"), :c(0)).MATCH
p6eval nom: OUTPUT«Method '!curosr_init' not found for invocant of class 'Cursor'␤current instr.: '_block1002' pc 105 ((file unknown):336) (/tmp/hqzlJJV7po:1)␤»
moritz nom: say /b/(Cursor."!cursor_init"("abc"), :c(0)).MATCH
p6eval nom: OUTPUT«␤»
19:09 Jackneill left
nine awwaiid: still reading :) 19:09
pmichaud moritz: the :c(0) is part of the cursor init.
(at least currently it is)
it's not part of the regex invocation.
nom: say /b/(Cursor."!cursor_init"("abc", :c(0))).MATCH 19:10
p6eval nom: OUTPUT«b␤»
moritz oh
19:10 birdwindupbird joined
moritz pmichaud: then disregard my comment, I did it wrongly :-) 19:10
19:11 beek_ is now known as Guest83181
masak Guest18398: I liked 'beek_' better :) 19:11
moritz $ ./perl6 -e 'say "abcbd".match(/b/, :g)'
b b
\o/
pmichaud \o/ moritz++ 19:12
19:12 kolibrie_ is now known as kolibrie 19:13 im2ee left 19:18 [particle] left, thou is now known as thou__ 19:21 [particle] joined
dalek kudo/nom: 5ee4881 | moritz++ | src/core/ (2 files):
unanchor regexes
19:22
moritz nom: /a+ +/ 19:23
p6eval nom: OUTPUT«Method 'rxtype' not found for invocant of class 'Integer'␤current instr.: 'nqp;QRegex;P6Regex;Actions;capnames' pc 63943 (src/stage2/QRegex.pir:19825) (src/stage2/QRegex.nqp:1338)␤»
19:23 thou__ left, soh_cah_toa joined, am0c joined, pyrimidine joined
dalek ast: e5d54f6 | moritz++ | S05-metasyntax/unknown.t:
fudge a test that nom accidentally passed before
19:24
kudo/nom: c2d9fe3 | moritz++ | t/spectest.data:
comment out arrayhash.t again, it only passed by sheer luck before
19:26
CBro2007 was just wondering if there is something along the lines of Python Bindings in the pipeline for p6? 19:27
moritz CBro2007: didn't I point you to Zavolaj/NativeCall.pm already?
or is "Bindings" something else than foreign function interface? 19:28
CBro2007 i thought that NativeCall.pm would work only for C code
Python has bindings for several languages 19:29
so yeah some sort of a FFI
19:29 birdwindupbird left
masak moritz, CBro2007: you were talking about Dancing Links in the backlog. I have a YAPC::EU talk lined up about that algorithm, and a corresponding github project. the implementation languages are Perl 5/Moose, C, and Perl 6. have only gotten to the Perl 5/Moose part yet, but there's already a working Dancing Links that you can look at. 19:29
CBro2007 masak: ok that was moritz's example ;)
masak yes. 19:30
it's a good one, though, because Dancing Links is frightfully applicable :)
if you want to implement data structures, I'll be happy to discuss ways to make such a project more useful for Rakudo. 19:31
er, s/Rakudo/the Perl 6 implementations/
CBro2007 masak: yeah I would like that
masak: I am sure they will come super handy to me in the future too
masak: its just that I might need a library like CGAL (written in C++) - which I could very easily use if I implemented my stuff in Python 19:32
masak CBro2007: I have this feeling about Set and Bag and the other types, that they are an underappreciated force in Perl 6 that don't really come to their right because arrays and hashes have long since established themselves in that semantic niche.
CBro2007 or maybe even p5
masak: yeah but I am thinking more in terms of things like - trees, priority queues etc 19:33
masak CBro2007: so what would be needed would be someone to think long and hard how to make Set and Bag et al. dead easy to use -- such that they are on par with arrays and hashes. that's a challenvge, I think, but one that would pay off big time.
CBro2007: ok, those are nice too. not as central, though.
CBro2007 masak: if you explain how exactly you envision writing Set and Bag then I don't mind working on it with you 19:34
though I still have to learn more p6
TimToady oh, you mean like, make them as much like arrays and hashes as we can while preserving their essential nature...we'll that's what we already have, for the most part
masak CBro2007: there's already a simple Set implementation in Rakudo master's setting. you can look at it.
TimToady s/we'll/well
CBro2007 and this I assume is written in p6 yeah? 19:35
masak CBro2007: it's a bit stupd though, and uses uniq which superfluously stringifies everything.
TimToady if you want to think of a set as a bunch of hash keys, you can
and if not, you can't...er...
19:35 wolfman2000 joined
masak TimToady: yes, I know. I see the potential and the general idea. we're not there yet in practice. 19:35
wolfman2000! \o/
wolfman2000 afternoon 19:36
CBro2007 masak: can you give me a link to this implementation?
wolfman2000 I keep on forgetting: rakudo is now being replaced or phased out for which interpreter/compiler?
CBro2007 masak: so basically in the set you just want the set of elements to be UNIQUE
TimToady wolfman2000: for rakudo
moritz hm, can Kakuro be represented as an exact cover problem?
wolfman2000 TimToady: last time I was active in here, I thought something else was being developed to replace Rakudo. Guess I misread 19:37
masak CBro2007: github.com/rakudo/rakudo/blob/mast...ore/Set.pm
TimToady wolfman2000: it's all rakudo, except where it isn't
tadzik wolfman2000: maybe the nom branch of rakudo
masak wolfman2000: Rakudo is getting a new Rakudo, is all.
wolfman2000 tadzik: THAT was it. nom
tadzik nom nom nom
masak om nom nom!
wolfman2000 ...either way, don't think it matters. I'll probably wait until Lion comes out before I install Perl 6 again. 19:38
masak awww
pmichaud wolfman2000: rakudo.org/2011/07/19/upcoming-rakudo-releases/
TimToady just don't wait for Witch, or it'll never be Christmas
benabik wolfman2000: In theory, that might be tomorrow.
19:38 ciphertext joined 19:39 alexanderpine joined
wolfman2000 benabik: I've heard that too. 19:39
tadzik we'll have to type pretty fas
masak .oO( witchisism )
tadzik tt
CBro2007 masak: how do you intend to make this implementation better? use some other data structure?
19:39 alexanderpine left
masak CBro2007: yes, that would be one option. on a total order type, a tree impl would be better, for example. 19:40
CBro2007 hm
masak CBro2007: and there are many cases like that, not just with Set.
Bag isn't even implemented yet in Rakudo.
neither are KeyHash and KeySet, or whatever they're called. 19:41
CBro2007 masak: i still have to get to the level where I can understand the code already written here :)
TimToady but you can define circumfix:<⟅ ⟆> at least...
masak CBro2007: oh, you'll get there in a jiffy. :)
TimToady: looks like two halves of a harp. 19:42
sorear .u ⟅
tadzik .u ⟆
phenny U+27C5 LEFT S-SHAPED BAG DELIMITER (⟅)
U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆)
tadzik sorear: high five :)
sorear o/
tadzik or maybe, high-six
it looks like a pair of snakes to me
TimToady o⟅⟆o
benabik Looks like boxes to me. Bad font. :-(
TimToady try the browser 19:43
CBro2007 masak: why isn't a perl hash used?
TimToady supposed to look like a bag: ⟅_⟆
masak CBro2007: I think I used that initially, but wanted to avoid the stringification of the objects in the Set. 19:44
TimToady you don't want to have to think about .keys just to get the set elements out
masak CBro2007: little did I know that uniq used hashes underneath :(
moritz what else should it use?
TimToady yes, well, hashes are supposed to allow === semantics
moritz O(n^2) comparisons? 19:45
masak moritz: it should respect the immutability of non-Str types.
moritz nom: say 2.WHICH
p6eval nom: OUTPUT«45605280␤»
moritz nom: say 2.WHICH; 2.WHICH
p6eval nom: OUTPUT«61706536␤»
moritz nom: say 2.WHICH; say 2.WHICH
p6eval nom: OUTPUT«73871656␤73871656␤»
masak yes, probably something with .WHICH
TimToady nom: say 2.WHICH; say (1+1).WHICH 19:46
p6eval nom: OUTPUT«64528680␤52133728␤»
moritz :o/
masak TimToady and I discussed it a few weeks ago, but neither of us spec'd it.
TimToady nom: say 2 === 1+1
p6eval nom: OUTPUT«Bool::True␤»
moritz whoa
CBro2007 I assume that the Set can have any type of objects in it yeah and so how do you propose we make a comparison to check if objects are equal? 19:47
TimToady that's what === means
masak yes, uniq should use ===, which uses .WHICH
TimToady but see above
CBro2007 ah i see
masak aye.
TimToady methinks === is cheating 19:48
CBro2007 so are we saying that this implementation is ok now?
pmichaud of course it's cheating :)
sorear niecza: say 2 === 1+1
TimToady CBro2007: universals are problemantic
p6eval niecza v7-39-gfe88724: OUTPUT«Bool::False␤»
TimToady oopsie 19:49
niecza: say 2.WHAT; say (1+1).WHAT
p6eval niecza v7-39-gfe88724: OUTPUT«Int()␤Int()␤»
TimToady niecza: say 2.WHICH; say (1+1).WHICH 19:50
p6eval niecza v7-39-gfe88724: OUTPUT«Unhandled exception: Unable to resolve method WHICH in class Int␤ at /tmp/u7d82Y4anU line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE C885_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1892 (CORE module-CORE…
CBro2007 just while you guys are at it : 19:52
our multi sub infix:<(|)>( @a, %b) { Set.new(|@a).union(%b) }
our multi sub infix:<(|)>( @a, @b) { Set.new(|@a).union(@b) }
is that like C++ operator overloading?
so "a|b" means a union b? 19:53
masak (|)
yes
TimToady a (|) b
CBro2007 gotcha
ok
hmm
19:53 timbunce_ joined
TimToady but unlike C++ new operators are encouraged over reusing unrelated old operators 19:53
<< for IO (shudder) 19:54
sorear TimToady: In 'my @a[EXPR]; ' when is EXPR evaluated?
masak unless the new type is actually a number. :)
sorear I can make arguments for BEGIN, ENTER, and DO
CBro2007 and it would be stupid to write separate implementations for the different types using multi?
so a Set of Numeric would behave differently from a Set of Strings maybe
TimToady sorear: so can I :)
masak CBro2007: what do you mean? that's what's done above.
CBro2007 guess that would be a lot of work 19:55
TimToady I figure, though, that if it's DO, and a constant, we can promote it to BEGIN
likewise ENTER if it's a ro param
and most such declarations will be constants anyway
so I think DO is more general, if a bit more tormenty 19:56
19:56 timbunce left, timbunce_ is now known as timbunce
CBro2007 masak: I mean that we didn't want to use hashes and we said there is a problem in using === , then can it be resolved if we looked at the types in a case by case basis? 19:56
masak: coz right now the implementation is trying to do this in a generic manner yeah? I could be wrong
masak CBro2007: I think uniq should use ===, and that Rakudo maybe shouldn't cheat with .WHICH :) 19:57
CBro2007: (but the fact that it does doesn't really matter in this case)
pmichaud masak: patches welcome.
sorear TimToady: DO is probably easiest, actually, although it raises the question of what say @*foo.perl; my $x = rand; my @*foo[$x]; does
CBro2007 ok
masak pmichaud: ok, noted. will think about a solution in my copious spare time :P 19:58
pmichaud masak: :)
sorear masak: are you familiar with the gist embed widget?
masak sorear: nopes.
TimToady CBro2007: it would certainly be possible to define set as a generic role that can be instantiated to accept only a particular type
and just autopuns to Any if you don't supply a type 19:59
TimToady thinks about a Bag of Candy
CBro2007 well you are the champ here mate.. I just started looking at p6 2 days ago :)
TimToady floats off cross-legged and smashes into a lamppost 20:00
masak :P
TimToady: be glad there are no flying cars yet! 20:01
sorear o/ CBro2007
fresh blood is always useful
TimToady sharpens his fangs
20:01 mkramer joined
CBro2007 hehe 20:01
20:01 mkramer left 20:02 spinclad left
masak wow. hasty jump from a floating-guru metaphor to a vampire metaphor there. :) 20:02
TimToady blames the lamppost
masak but some vampires fly, I guess.
TimToady TheDamian never mentioned *how* I manage to be thousands of years old... 20:06
why do you think I sleep so much during the day? :) 20:09
nap &
masak I always thought it had to do with time travel, like the Italian Perl Mongers suggested. 20:12
20:12 spinclad joined 20:14 supernovus joined 20:16 tokuhirom joined
supernovus So, to call a method that you don't know the name at runtime, you can do $object."$method"(); What if I want to create an instance of an object where I don't know it's class up front. Say $classname contains the string name of the class, it does not appear possible to do $classname.new(); or "$classname".new(); The only way I've found to do this is $object = eval("$classname.new"); which seems rather hackish. Is there a better 20:18
way?
20:19 molaf left
moritz ::($classname).new, once it's implemented 20:20
masak std: my $classname = "Foo"; ::($classname).new
p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
masak niecza: class Foo {}; my $classname = "Foo"; say ::($classname).new
p6eval niecza v7-39-gfe88724: OUTPUT«===SORRY!===␤␤Cannot make a compile time reference to the semantic root package at /tmp/1DIQrUw_db line 1:␤------> y $classname = "Foo"; say ::($classname)⏏.new␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecz… 20:21
benabik nom: ::('List').new
p6eval nom: OUTPUT«Indirect name lookups not yet implemented at line 1, near ".new"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
moritz nom: say pir::find_lex('Int')
p6eval nom: OUTPUT«error:imcc:The opcode 'find_lex_p' (find_lex<1>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 12512675␤»
moritz nom: say pir::find_lex__PS('Int')
p6eval nom: OUTPUT«Int()␤»
masak sorear: what does that mean?
moritz nom: say pir::find_lex__PS('Unknown')
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
supernovus Awesome, I'll document that in the comments, and leave it with the eval for now. I figured there would be some plan to cover this kind of functionality. 20:22
pmichaud seems like nom could implement ::(EXPR) interpolation relatively easily.
moritz nom: class A { }; say pir::find_lex__PS('A') 20:23
p6eval nom: OUTPUT«A()␤»
moritz pmichaud: that's what I just concluded too :-)
supernovus I haven't been brave enough to test nom yet. 20:25
PerlJam supernovus: soon you won't have to be brave as it'll be the default :-)
moritz pmichaud: what's the best way? a builtin that uses find_caller_lex ?
pmichaud moritz: that's what I'd try first, yes. 20:26
moritz nom: class A::B { }; say pir::find_lex__PS('A::B')
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
moritz nom: class A::B { }; say pir::find_lex__PS('A')
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
masak ah, so not "works in nom", but "relatively easy to implement in nom" :)
moritz ah well, it's a first shot
pmichaud I'm a little surprised that second one didn't work.
moritz too 20:27
could be our-scoped though
supernovus PerlJam: Awesome! I hope... :-)
benabik nom: class A::B { }; say pir::find_lex__PS('B') # shouldn't work
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
pmichaud nom: our class A::B { }; say pir::find_lex__Ps('A');
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
20:27 jaldhar left
moritz nom: package A { class B { } }; say pir::find_lex__PS('A') 20:27
p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
moritz wow
benabik nom: package A { }; say A 20:28
p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
benabik Consistent, at least.
moritz seems that 'package' isn't really well implemented
pmichaud nom: package A { }; say A.WHAT;
p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
20:28 jaldhar joined
pmichaud it's still bootstrappish, so might be incomplete. 20:28
nom: package A { }; say A.^parents;
p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: '_block1002' pc 79 ((file unknown):525) (/tmp/5KtqsG3IzX:1)␤»
sorear masak: I think it means that it parsefailed and got very confused. 20:30
masak ah.
moritz nom: my Mu $x := pir::null__P(); say 'alive'
p6eval nom: OUTPUT«alive␤»
masak nom: my Mu $x := pir::null__P(); say $x 20:31
p6eval nom: OUTPUT«Null PMC access in find_method('gist')␤current instr.: 'say' pc 446947 (src/gen/CORE.setting.pir:114083) (src/gen/CORE.setting:3509)␤»
[Coke] Anything rakudo needs from parrot before 3.7?
(well, /in/ 3.7) 20:32
20:32 Holy_Cow joined
moritz a fast JIT compiler 20:33
subroutine exit hooks
faster exceptions 20:34
masak ability to implement DESTROY methods
moritz that might already be there
but so far I didn't dare to touch the 6model code to try it out 20:35
masak that's a no-op, then :)
[Coke] those sound more like wants. ;) 20:36
20:36 timbunce left
flussence I want the \d$ thing in sprintf! 20:36
moritz [Coke]: don't go all nit-picky :-)
masak I want Perl 6 to be as fully implemented as possible, as soon as possible. :)
20:36 Mowah left 20:37 Chillance left
tadzik and as correctly as possible 20:37
moritz std: A::('x')::B 20:39
p6eval std 516268a: OUTPUT«ok 00:01 119m␤»
moritz urks
supporting that kind of lookup will not fall out easily from the current factoring
masak why not? 20:40
pmichaud for now, just focus on the ::( ) form with the leading ::, I think. 20:41
moritz pmichaud: that's what I do
tadzik [Coke]: oh, and no forbidden-in-C practices :)
[Coke]: see wklej.org/id/561555/
benabik I'd think A::('x')::B would end up translating to A::('x')::('B') behind the scenes.
moritz masak: because the easist approach is to installl a lookup for token morename, which parses ::(<EXPR>) 20:42
masak I see.
well, what pmichaud said :)
moritz and A::B is basically parsed as <name> <morename>
what I could do is fiddling the action methods for token name
but that's something for later, yes 20:43
$ ./perl6 -e 'say INDIRECT_NAME_LOOKUP("Int")' 20:46
Int()
first step :-)
masak moritz++ 20:47
tadzik oh, moritz++ indeed 20:50
that'll help Pod too!
The Pod::Block::Named::Foo thingy
masak \o/
20:50 donri left
moritz tadzik: ... which my current patch won't do :( 20:51
masak not evern with INDIRECT_NAME LOOKUP("Pod::Block::Named::$name")?
moritz masak: no, I don't know how to look up such a type 20:52
masak oh.
tadzik aw
masak neither do I.
tadzik oh wait, I think I patched that in SymbolTable in the podparser branch
maybe it's that thing, let me look it up
moritz tadzik: is the SymbolTable accessable at run time? 20:53
sorear masak: I'm kinda at a loss for what to do. colomon++ is tackling trig
tadzik moritz: see github.com/rakudo/rakudo/commit/82b7267d78178
maybe that'll help
moritz: oh, probably not really
20:54 Holy_Cow left
masak sorear: I guess you mean that you don't have a clear idea what to tackle next. I can't imagine that there's a lack of options. :) 20:54
20:54 lichtkind joined
moritz look at a spectest file that doesn't pass; make it pass; repeat until done 20:55
20:57 wamba left
moritz $ ./perl6 -e 'say ::(Int)' 21:00
Could not locate compile-time value for symbol (Int)
:(
oh, I'm doing it RONG
still the same error if you say ::("Int") 21:01
21:01 am0c left
moritz seems like some action method does something token morename that it shouldn't 21:02
masak rakudo: s/ /_/g 21:04
p6eval rakudo f63b82: OUTPUT«===SORRY!===␤Unsupported use of /g; in Perl 6 please use :g at line 22, near ""␤»
masak rakudo++
moritz std: s/ /_/g 21:06
p6eval std 516268a: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/64hme9uuMg line 1:␤------> s/ ⏏/_/g␤ expecting quantifier␤Parse failed␤FAILED 00:01 119m␤»
moritz thought so :-)
std++
sorear niecza: s/ /_/g 21:07
p6eval niecza v7-39-gfe88724: OUTPUT«===SORRY!===␤␤Null pattern not allowed at /tmp/bg6izzAGwD line 1:␤------> s/ ⏏/_/g␤␤Parse failed␤␤»
sorear niecza: s/./_/g
p6eval niecza v7-39-gfe88724: OUTPUT«===SORRY!===␤␤Unsupported use of suffix regex modifiers; in Perl 6 please use prefix adverbs at /tmp/PA_T1ztkH9 line 1 (EOF):␤------> s/./_/g⏏<EOL>␤Other potential difficulties:␤ Unsupported use of /g; in Perl 6 please …
moritz niecza++
sorear std: s/./_/g
p6eval std 516268a: OUTPUT«===SORRY!===␤Unsupported use of suffix regex modifiers; in Perl 6 please use prefix adverbs at /tmp/A9hIDr2xXc line 1:␤------> s/./_/g⏏<EOL>␤Other potential difficulties:␤ Unsupported use of /g; in Perl 6 please use :g at /tmp/A9…
dalek kudo/nom-indirect-name-lookup: fcd142d | moritz++ | src/ (3 files):
first attempt at indirect name loookup.

Does not work yet, method term:sym<name> in Actions.pm needs to learn not to touch indirect name lookups first
21:10
moritz should make shorter branch names
moritz -> sleep 21:12
sorear ooh, sleep, this is my chance! :D
21:14 am0c joined
masak perchance to dream. ay, there's the rub. 21:16
21:17 kaare__ left 21:22 bluescreen10 left, supernovus left
masak rakudo: my @a = "OH HAI"; say so "OH HAI" ~~ /<@a>/ 21:24
p6eval rakudo f63b82: OUTPUT«Bool::False␤»
masak I think this is wrong.
masak submits rakudobug
The default way in which the engine handles a string scalar is to match it as a C<< '...' >> literal (i.e. it does not treat the interpolated string as a subpattern). 21:25
(from S05)
rakudo: my @a = "OH\\sHAI"; say so "OH HAI" ~~ /<@a>/ 21:26
p6eval rakudo f63b82: OUTPUT«Bool::True␤»
masak uurgh,
.
rakudo: my $x = "OH\\sHAI"; say so "OH HAI" ~~ /<$x>/ 21:27
p6eval rakudo f63b82: OUTPUT«Bool::True␤»
masak oh! it occurs for scalars as well.
benabik rakudo: my @a = "string?"; say @a.perl 21:28
p6eval rakudo f63b82: OUTPUT«["string?"]␤»
benabik Ah. It becomes a one element list. Makes sense. 21:29
sorear masak: I think <@a> is quite completely unimplemented
masak sorear: it felt like it worked when I tried it on one-word strings. 21:30
and ISTR someone working on it in Rakudo around the time ng landed.
tadzik ennnnnnnd: redmine.ruby-lang.org/issues/5054 21:32
masak reminds me of ] in Lisp for "close all open parentheses". 21:33
21:34 kjeldahl left
benabik tadzik: I like comment #20: "I think the phrase "fold up" is more descriptive of what this is attempting to do." 21:36
21:37 bluescreen10 joined
flussence sees that, almost falls out of chair 21:37
masak I think a feature like that would at least complicate code refactoring.
s/at least/in the best case/ 21:38
flussence it's easier to condense to one line when you have punctuation instead of words, but it's still pretty nasty to maintain: gist.github.com/1093796 21:42
[Coke] bah. Just make your editor a compiler, and have it dynamically replace ] with the appropriate # of )'s
flussence {I even caught myself writing a /(}\s+)+/ mess today at $dayjob, made the inside a sub instead which was much nicer.} 21:45
21:45 bluescreen10 left
flussence I try to follow Linus' guideline of (loosely paraphrased): "if you're using more than 3 levels of indentation, you're doing it wrong" 21:46
[Coke] that's 21:47
not
masak I find that doesn't always hold. see what you think of array multiplication, for example. 21:48
[Coke] entirely
crazy.
masak [Coke]: sorry, for barging in on your visual pun :)
21:48 Psyche^ joined, Psyche^ is now known as Patterner
[Coke] o/~~ 21:48
masak s/,//
[Coke] nope, that doesn't look a fist shaking.
more like armpit hair.
masak eww
[Coke] one line ascii art is hard. 21:50
flussence Unicode doesn't have a "MAN SHAKING FIST IN AIR" glyph either :( 21:51
sjohnson unicode art is easier
.u ying yang
phenny sjohnson: Sorry, no results for 'ying yang'.
tadzik speaking of unicode art, sjohnson...
sjohnson ( `ー´)
.u ( `ー´) 21:52
phenny sjohnson: U+FF08 U+3000 U+FF40 U+30FC U+00B4 U+FF09
sjohnson (FAT FACE)
tadzik yeah :)
[Coke] .u yin
phenny U+262F YIN YANG (☯)
[Coke] .u there
phenny U+2203 THERE EXISTS (∃)
flussence
.oO( I wish there was a tool that lists which local fonts have a given codepoint... )
21:53
sjohnson .u trollfeace 21:54
phenny sjohnson: Sorry, no results for 'trollfeace'.
sjohnson oops
sjn hehe 21:55
sjn wonders what it takes to get that image into the spec :)
sjohnson .u FOREVER ALONE 21:57
phenny sjohnson: Sorry, no results for 'FOREVER ALONE'.
masak RT is down :(
[Coke] seen robrt? 21:58
aloha Sorry, I haven't seen robrt.
[Coke] hurm. it's responding slooooooooooooooooooooooooowly. 22:00
masak: did you open a ticket ? 22:08
you know, metaphorically?
if not, I can ping Robrt.
masak [Coke]: I didn't. please do. 22:11
22:11 drbean joined
[Coke] masak? 22:13
phenny, masak?
bot hell.
no cc for you. 22:14
masak that's fine. I'll notice when it's up again :) 22:15
'night, #perl6 22:17
22:17 masak left
[Coke] should be back now 22:18
ask++
22:55 miso2217__ left 22:56 miso2217 joined 22:59 impious joined 23:18 impious left 23:20 ggoebel left 23:24 ggoebel joined 23:29 ggoebel left 23:30 orafu joined 23:33 Khisanth joined
dalek ok: 0e7afd7 | (Sveinn Sandvik Svendsen)++ | src/basics.pod:
Corrected a spelling mistake in a label
23:34
ok: 5b40d35 | smash++ | src/basics.pod:
Merge pull request #57 from sveinns/master

A small spelling mistake corrected.
sorear smash: is Sveinn on iRC?
23:35 ggoebel joined 23:39 ggoebel left
smash sorear: sorry, don't know 23:43
bbt 23:45
23:45 ggoebel joined, smash left 23:46 thou__ joined 23:48 CBro2007 left 23:58 dayangkun joined