»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
vendethiel github.com/Nami-Doc/Typeclassopedi...opedia.pm6 00:00
Mouq r: my &a = {$^a; False}; my &b = {$^b; True}; say (&a|&b)(1)
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«any(False, True)␤»
Mouq r: my &a = {$^a; False}; my &b = {$^b; True}; say so (&a|&b)(1)
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«True␤»
00:02 denis_boyun left 00:14 dmol left
masak lol, me blogged! strangelyconsistent.org/blog/parsin...ented-text 00:16
(doesn't happen often these days)
timotimo i'm glad :) 00:17
masak: would have wished for a tiny bit more explanation for my $partial_indent = ~$1; 00:21
oh, when you look at the commit, it's much clearer
dalek osystem: 6c42a57 | (Carl Mäsak)++ | META.list:
[META.list] add Text::Indented
00:22
lue masak: elsif $newindent < indent() { decreaseindent; } isn't code-styled
masak lue: thank you. fixing.
it wasn't indented properly... ironically enough. 00:23
lue :) 00:24
masak hm, I wonder if the test cases are better off without their surrounding block braces... 00:25
timotimo just indent them instead
masak good idea. 00:26
Mouq std: mi//
camelia std 09dda5b: OUTPUT«===SORRY!===␤Bogus term at /tmp/tBQzgJCKnP line 1 (EOF):␤------> mi//⏏<EOL>␤Undeclared routine:␤ 'mi' used at line 1␤Parse failed␤FAILED 00:00 123m␤»
masak curlies removed: strangelyconsistent.org/blog/parsin...ented-text 00:29
00:32 hoverboard joined
masak 'night, #perl6 00:32
lue masak o/ 00:34
timotimo 'night masak 00:35
i would like a "use NativeCall::Library $path;" for use in blocks where all sub declarations are supposed to be "is native($path)" 00:39
hm, but then wouldn't these subs have to be "our" scoped?
r: { sub foo() { say "hi" } }; foo
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ foo used at line 1␤␤» 00:40
timotimo r: { our sub foo() { say "hi" } }; foo
00:40 cognominal left
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ foo used at line 1␤␤» 00:40
timotimo er ...
vendethiel Mouq, how did you look up a unicode char by its name already ? please :) 00:41
Mouq vendethiel: I didn 00:47
't :)
I grep'ped through all the characters and selected the ones that matched what I was looking for 00:48
m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /A/|/B/ for 0..0xffff
camelia rakudo-moar ffa572: OUTPUT«(timeout)1 START OF HEADING␤2 START OF TEXT␤4 END OF TRANSMISSION␤6 ACKNOWLEDGE␤7 BELL␤8 BACKSPACE␤9 CHARACTER TABULATION␤B LINE TABULATION␤D 00:49
timotimo oh my, boldface
vendethiel m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /kiss/ for 0..0xffff
camelia ( no output )
vendethiel m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /KISS/ for 0..0xffff
camelia ( no output )
Mouq Haha
timotimo why would you ~~ /A/|/B/ rather than /A|B/?
Mouq Mine is blinking
tadzik RESISTANCE IS FUTILE␤YOU WILL BE ASSIMILATED
vendethiel should match U+1F48B, U+1F48F, U+1F618
Mouq m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /KISS/ for 0..0x1ffff 00:50
camelia rakudo-moar ffa572: OUTPUT«1F48B 💋 KISS MARK␤1F48F 💏 KISS␤1F617 😗 KISSING FACE␤1F618 😘 FACE THROWING A KISS␤1F619 😙 KISSING FACE WITH SMILING EYES␤1F61A 😚 KISSING FACE WITH CLOSED EYES␤1F63D 😽 KISSING CAT FACE WITH CLOSED EYES␤»
vendethiel Mouq++ # hugs n kisses
Mouq 😘 00:51
m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /MU/ for 0..0x1ffff 00:55
camelia rakudo-moar ffa572: OUTPUT«D7 × MULTIPLICATION SIGN␤39C Μ GREEK CAPITAL LETTER MU␤3BC μ GREEK SMALL LETTER MU␤59D ֝ HEBREW ACCENT GERESH MUQDAM␤5A3 ֣ HEBREW ACCENT MUNAH␤749 ݉ SYRIAC MUSIC␤789 މ THAANA LETTER MEEMU␤78D ލ THAANA LETTER LAAMU␤A01 ਁ GURMUKHI S…»
Mouq m: say (.base(16),.chr,.&uniname) if .&uniname ~~ /\bMU\b/ for 0..0x1ffff 00:56
camelia ( no output )
Mouq m: say "無".&uniname # ah
camelia rakudo-moar ffa572: OUTPUT«<CJK Ideograph>␤» 00:57
00:58 jnap left
lue Its name should rather be <CJK UNIFIED IDEOGRAPH-7121> IIRC 00:59
timotimo so uniname needs to have special handling if the name is "CJK Ideograph"?
lue timotimo: well, there are ranges of codepoints where the name has to be generated. Forget the specific form for unified ideographs, but it's something like what I said. 01:01
timotimo fair enough
01:01 BenGoldberg left
timotimo make tests? :3 01:01
lue hopefully the name would be there from the start, instead a special handler in the name retrieval function :)
timotimo well, this way the unicode database will be a bit smaller 01:02
and if the names are just "CJK UNIFIED IDEOGRAPH-0001" through "CJK UNIFIED IDEOGRAPH-9999", that's quite a lot of space saved
lue true
timotimo that database isn't compressed in memory, mind you 01:03
hoelzro: are you working on the vim syntax highlighting at all? it seems like "has $.y is rw" starts some kind of quoting at the y 01:05
actually
it thinks the i is a delimiter for a y/// quote, that's why the next 3 is are bold and after the third i it goes back to normal again m)
lue we don't have y/// in the first place, unless I'm mistaken. 01:07
timotimo right
but the vim syntax highlighting sure thinks we do :)
01:07 BenGoldberg joined
timotimo well, if i write "has $.m is foo" it'll do the same thing 01:17
r: given "hi there" { when sithereiwherei { say "oh" } } 01:18
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!===␤Function 'sithereiwherei' needs parens to avoid taking the block␤at /tmp/tmpfile:1␤------> here" { when sithereiwherei { say "oh" }⏏ }␤Missing block (appar…»
timotimo so characters like these are not actually valid as terminators
so it shouldn't even do it then 01:19
lue timotimo: I also think variable names should be interpreted as variable names :)
timotimo interestingly, it also recognizes $.y) as the beginning of a y/// and thinks the next ) is the second / in there
yes, they should, but there's only so much you can do with just a lexer :P
oh 01:21
haha
it was using the perl5 syntax highlighter all along
with the p6 highlighter it works 01:22
lue timotimo: you mentioning lexers reminds me that I'm reluctant to touch my p6-mode for emacs because it needs to effectively parse, not lex, Perl 6, and I worry that I can't do that without unavoidable slowdown :/ 01:24
timotimo yeah 01:25
lue timotimo: do you have a link to the p6 highlighter? Might be helpful for me as a reference.
timotimo i'm also kind of worried about my QtCreator integration project
it comes pre-installed with vim 01:26
lue ah, OK.
timotimo er. at least i think it does
01:29 jnap joined
lue looking at perl6.vim: Various tricks depending on context. I.e. we can't know when Perl 01:29
" expects «*» to be a string or a hyperoperator.
Mouq lue: github.com/petdance/vim-perl 01:31
j/k
github.com/vim-perl/vim-perl
lue I seriously wonder if implementing Perl6-scripting support for emacs (alongside ELisp) would be just as complex (or maybe even less so) than trying to write an ELisp-based Perl 6 mode :P 01:32
Mouq: already found it :)
01:32 BenGoldberg left 01:33 jnap left 01:38 raiph joined 01:41 BenGoldberg joined
Mouq r: sub infix:<pl-eq> is equiv<eq> ($a,$b) { True } 02:01
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub infix:<pl-eq> is equiv<eq> ⏏($a,$b) { True }␤ expecting any of:␤ …»
Mouq r: sub infix:<pl-eq> is equiv(&[eq]) ($a,$b) { True }
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub infix:<pl-eq> is equiv(&[eq]) ⏏($a,$b) { True }␤ expecting any of:␤ …»
Mouq r: sub infix:<pl-eq> ($a,$b) is equiv(&[eq]) { True }
camelia ( no output )
Mouq r: sub infix:<pl-eq> ($a,$b) is equiv(&[eq]) { say ($a, $b) }; say "ship" pl-eq "ships" and "test" pl-eq "tests" 02:02
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«ship ships␤True␤test tests␤»
02:02 cognominal joined
Mouq r: sub infix:<pl-eq> ($a,$b) { say ($a, $b) }; say "ship" pl-eq "ships" and "test" pl-eq "tests" 02:02
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«ship ships␤True␤test tests␤»
Mouq r: sub infix:<pl-eq> ($a,$b) { say ($a, $b) }; say "ship" pl-eq "ships" && "test" pl-eq "tests" 02:03
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«ship ships␤test tests␤True␤»
Mouq r: sub infix:<pl-eq> ($a,$b) { say ($a, $b) }; say "ship" pl-eq "ships" & "test" pl-eq "tests" 02:04
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«ship ships␤test tests␤all(True, True)␤»
Mouq r: sub infix:<pl-eq> ($a,$b) is equiv(&[eq]) { say ($a, $b) }; say "ship" pl-eq "ships" & "test" pl-eq "tests"
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«ship ships␤ship test␤ships tests␤test tests␤all(True, True)␤»
Mouq So it does work!
\o/
r: sub infix:<pl-eq> ($a,$b) is equiv<eq> { say ($a, $b) }; say "ship" pl-eq "ships" & "test" pl-eq "tests" 02:05
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Can't use unknown trait 'is equiv' in a sub+{precedence} declaration.␤at /tmp/tmpfile:1␤------> ␤ expecting any of:␤ rw parcel hi…»
02:14 pecastro joined
TimToady neither .parse nor .subparse will do scanning for you, because parsing doesn't scan unless you tell it to 02:16
don't confuse parsing with what m// and s/// do
Mouq Compare: api.metacpan.org/source/DCONWAY/Lin...lections.t and the hopeful gist.github.com/Mouq/dfe7388636027e527e86 02:18
TimToady and .subparse is really just the old .parse semantics that didn't care about $ at the end
arguably, .subparse should allow a :c option and .parse shouldn't :) 02:19
lue TimToady: ah, and I see S05 implies that ^ is still a thing by mentioning "You may pass a :pos argument to start parsing at some position other than 0" 02:20
timotimo ah, so subparse anchors $, but not ^?
lue timotimo: other way
timotimo er
i think it may very well be helpful to speak of scanning or nonscanning behavior
TimToady basically, if you want to scan, put .*? <( at the front of your grammar 02:21
lue timotimo: as I said, S05 implies (by way of talking about passing :pos) that ^ anchoring is a thing.
timotimo oke
lue Though in fairness it should be more explicit, and the preceding sentence saying "If you wish to parse a portion of a text, then use the .subparse method instead." almost defeats the implication by :pos
TimToady well, since it doesn't scan. .parse (without a :pos) is automatically anchored
but I dunno if it's really a good idea to restrict use of :pos to .subparse 02:22
it's really more .parse-to-completion and .parse-to-somewhere 02:23
lue You can use :p and :c with m// and friends, last I checked.
02:25 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 02:30 jnap joined 02:34 jnap left
Mouq p6: my $_ = $3 // ''; 02:35
camelia niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $_ (see line 0) at /tmp/tmpfile line 1:␤------> my $_ ⏏= $3 // '';␤␤»
..rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/tmpfile:1␤ ------> my $_ ⏏= $3 // '';␤»
Mouq r: my $_ = $3 // ''; m/test/ 02:36
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/tmpfile:1␤ ------> my $_ ⏏= $3 // ''; m/test/␤»
Mouq I wonder why I'm getting a LTA error for that 02:37
TimToady well, you are redeclaring $_ uselessly
Mouq TimToady: Yeah, but I'm getting 02:38
===SORRY!===
Cannot find method 'value'
And I'm having trouble golfing it
TimToady r: my multi $_ = $3 // ''; m/test/
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/tmpfile:1␤ ------> my multi $_ ⏏= $3 // ''; m/test/␤»
TimToady n: my multi $_ = $3 // ''; m/test/
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Multi variables NYI at /tmp/5d_L1gaITr line 1:␤------> my multi $_ ⏏= $3 // ''; m/test/␤␤Potential difficulties:␤ Useless redeclaration of variable $_ (see line 0) at /tmp/5d_L1gaITr l…»
Mouq (Solved by using `given` in this case, but that error is awful) 02:39
TimToady m: $_ = $3 // ''; m/test/
camelia ( no output )
02:44 klapperl joined 02:47 klapperl_ left 02:48 FROGGS_ joined 02:51 Sqirrel left 02:52 FROGGS left, Sqirrel joined 03:06 iolympian joined, iolympian left 03:24 raiph left 03:28 rurban1 joined 03:30 jnap joined 03:35 jnap left 03:41 logie_ joined 03:58 xenoterracide left 04:11 hoverboard left 04:18 thou joined 04:31 jnap joined 04:35 jnap left 04:40 adu joined 04:44 kaare__ joined 04:47 xenoterracide joined 04:52 xenoterracide left 04:55 japhb joined 04:59 japhb_ joined 05:09 xenoterracide joined 05:18 yves__ joined 05:20 rurban1 left 05:28 adu left 05:32 jnap joined 05:36 jnap left 05:38 darutoko joined 05:40 thou left 05:43 Guest97287 is now known as ponbiki 05:45 Mouq left 06:02 rurban1 joined 06:03 slavik left 06:04 SamuraiJack_ joined 06:06 rurban1 left 06:33 jnap joined 06:37 jnap left 06:38 SamuraiJack_ left
moritz good morning 06:43
dilbert.com/fast/2014-03-23/ apples to oranges!
06:44 Mouq joined 06:49 Mouq left 06:54 japhb_ left 06:55 japhb left 06:57 japhb joined 06:59 japhb_ joined 07:03 rurban1 joined 07:07 rurban1 left 07:34 jnap joined 07:38 jnap left 07:40 BenGoldberg left 08:03 rurban1 joined, Fg_ left 08:08 rurban1 left 08:15 xenoterracide left 08:30 rindolf joined 08:34 jnap joined 08:35 nagu left 08:39 jnap left 08:40 kivutar left, sqirrel_ joined 08:54 virtualsue joined 09:04 rurban1 joined 09:09 rurban1 left 09:12 rindolf left 09:19 kurahaupo joined, dmol joined 09:24 mls_ joined 09:27 mls left, SamuraiJack_ joined 09:34 virtualsue left
masak antenoon, #perl6 09:34
today's autopun spotting: twitter.com/indec/status/447201158222712832
09:35 bjz left
moritz \o masak 09:35
09:35 jnap joined, bjz joined
moritz nice one 09:35
masak best response to that one so far: 'wait, where is the second tweet?'
FROGGS_ :o) 09:36
09:36 mls joined 09:37 rindolf joined 09:40 mls_ left, jnap left, pippo_ joined, denis_boyun joined 09:41 mls_ joined 09:44 mls left 09:46 virtualsue joined, mls joined 09:47 mls_ left 09:56 daniel-s left 09:57 daniel-s joined 10:07 rurban1 joined, dagurval left 10:08 dagurval joined 10:09 Gothmog_ left 10:10 Gothmog_ joined 10:11 rurban1 left 10:12 mls_ joined 10:15 mls left 10:17 mls joined 10:18 mls_ left 10:22 mls_ joined 10:24 mls left 10:26 mls_ left 10:27 mls joined 10:28 slavik joined 10:36 jnap joined 10:40 jnap left
vendethiel masak: in your blog post, header "multi-step de-indents", you say `is $root.items.elems, 3, 'three things on the top level';`, when it looks to me there's only 2 10:41
10:44 spider-mario joined 10:49 JimmyZ_ joined
nwc10 .tell arnsholt was "cmd: Rounded run time per iteration: 1.5828e+02 +/- 7.2e-01 (0.5%)", jastcompiler "cmd: Rounded run time per iteration: 1.457e+02 +/- 1.5e+00 (1.0%)" 10:51
yoleaux nwc10: I'll pass your message to arnsholt.
10:52 sjn_ joined, virtualsue left
masak vendethiel: the three "things" are (a) a line, (b) a suite, (c) another line. 10:53
vendethiel: suites are "located" in the indentation level above them.
vendethiel: put differently a suite is a sequence of Str|Suite objects.
actually, I wanted to declare @.items as a subtype of Any where { Str | Suite }
but I found no way to use the subtype "early enough", before the class block was closed.
vendethiel ah, alright
masak m: class Foo { subtype Item of Any where Str | Foo; has Item @.items }; say "alive" 10:54
camelia, you there?
10:54 sjn left
camelia rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/a5P3aMpZbG␤Two terms in a row␤at /tmp/a5P3aMpZbG:1␤------> class Foo { subtype Item of Any ⏏where Str | Foo; has Item @.items }; say␤ expecting any of:␤ post…» 10:54
10:55 hugme left
masak vendethiel: conceptually, it makes sense, I think. 10:55
10:55 hugme joined, ChanServ sets mode: +v hugme
masak vendethiel: because a suite is "grouped together" and in some sense gets treated the same way as one line. 10:55
10:55 Bucciarati joined
vendethiel it does, it does 10:55
masak m: class Foo { subset Item of Any where Str | Foo; has Item @.items }; say "alive"
camelia rakudo-moar ffa572: OUTPUT«alive␤»
masak huh.
m: class Foo { subset Item of Any where Str | Foo; has Item @.items }; given Foo.new { .items.push("foo"); .items.push(Foo.new); .items.push(42) }; say "alive" 10:56
camelia rakudo-moar ffa572: OUTPUT«Type check failed in .push; expected 'Item' but got 'Int'␤ in block at src/gen/m-CORE.setting:7967␤ in method push at src/gen/m-CORE.setting:7953␤ in method push at src/gen/m-CORE.setting:1610␤ in block at /tmp/komlFzrLWG:1␤␤»
masak ooh, it works.
masak adds it to the code
10:57 anocelot left, anocelot joined
masak m: class Foo { subset Item where Str | Foo; has Item @.items } 10:57
camelia ( no output )
masak ooh, even that works.
vendethiel well, of Any is implicit 10:58
masak apparently.
sometimes I suffer from old war wounds and PTSD of earlier iterations of Rakudo :P 10:59
what's a nice way to turn the string "PartialIndent" into "partial indent" in Perl 6? 11:00
FROGGS_ good that I joined that late :o)
masak for that matter, how do I match on uppercase? 11:01
vendethiel [:upper:] ?
FROGGS_ m: say 'PartialIndent'.split(/<?:Lu>/)
camelia rakudo-moar ffa572: OUTPUT« Partial Indent␤»
masak m: say "PartialIndent".comb(/<:Lu><:Ll>+/) 11:02
camelia rakudo-moar ffa572: OUTPUT«Partial Indent␤»
FROGGS_ m: say 'PartialIndent'.split(/<?:Lu>/)>>.lc.grep(?*).join(' ')
camelia rakudo-moar ffa572: OUTPUT«partial indent␤»
masak yeah.
FROGGS_++
m: say "PartialIndent".comb(/<:Lu><:Ll>+/)>>.lc.join(' ') 11:03
camelia rakudo-moar ffa572: OUTPUT«partial indent␤»
masak hehe, I've never used a call to an inner sub in a parameter default before :) it works. 11:04
m: class PartialIndent {}; sub say-nicely($c, $message = format-nicely $c.^name) { sub format-nicely($string) { $string.comb(/<:Lu><:Ll>+/)>>.lc.join(' ') }; say $message }; say-nicely PartialIndent 11:06
camelia rakudo-moar ffa572: OUTPUT«partial indent␤»
11:07 rurban1 joined
FROGGS_ interesting O.o 11:08
vendethiel Perl6++
looks more like an implem. detail to me, though ? 11:09
Is it speced that way ?
FROGGS_ n: class PartialIndent {}; sub say-nicely($c, $message = format-nicely $c.^name) { sub format-nicely($string) { $string.comb(/<:Lu><:Ll>+/)>>.lc.join(' ') }; say $message }; say-nicely PartialIndent
camelia niecza v24-109-g48a8de3: OUTPUT«partial indent␤»
FROGGS_ why does that even work? 11:11
vendethiel probably because the "default" is pushed inside the body 11:12
11:12 rurban1 left
FROGGS_ it only works for subs, not for vars btw 11:13
vendethiel probably because of that
r: say $a; my $a = 5;
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> say $a⏏; my $a = 5;␤ expecting any of:␤ postfix␤»
vendethiel r: say a; sub a { 5; }
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«5␤»
FROGGS_ r: say a; { sub a { 5; } }
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ a used at line 1␤␤» 11:14
FROGGS_ that should happen
vendethiel subs are hoisted, so even if compilers transform `sub stuff($foo = a) { sub a { 5 }; say $foo; }`
to `sub stuff($foo = a) { sub a { 5 }; $foo = a; say $foo; }`
this will work - that's my guess, at least.
I meant, transform it to `sub stuff($foo?) { $foo = a; sub a { 5 }; say $foo; }` 11:16
FROGGS_ hmmm
11:20 xenoterracide joined 11:24 Ulti_ joined 11:27 hoelzro_ joined 11:28 tokuhirom_ joined 11:29 pecastro_ joined, hugme left, Gothmog_ left, dagurval left, rindolf left, kurahaupo left, pecastro left, araujo left, dalek left, masak left, Yappo__________8 left, sjohnson left, cosimo left 11:30 tokuhirom_ is now known as tokuhirom, dalek joined, ChanServ sets mode: +v dalek, Gothmog_ joined 11:31 denis_boyun left, ilbot3 joined 11:32 breinbaas joined, araujo joined, jlaire joined 11:33 masak joined 11:34 masak is now known as Guest23182 11:37 jnap joined, cosimo joined, Yappo__________8 joined, jtpalmer joined 11:39 hugme joined, ChanServ sets mode: +v hugme 11:41 rindolf joined, jnap left 11:43 kivutar joined, rurban joined 11:44 sjohnson joined 11:45 Guest23182 is now known as masak_
masak_ grrr. 11:45
11:45 dagurval joined, dagurval left, dagurval_ joined
masak_ vendethiel: no, Perl 6 doesn't do sub hoisting. 11:48
vendethiel masak_: how do you call it then ?
masak_ vendethiel: it's just that you can call a sub before you declare it.
vendethiel r: say a; sub a { 5 }
11:48 rurban1 joined
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«5␤» 11:48
masak_ vendethiel: as long as it's visible in the scope where you're calling it.
11:48 IllvilJa left
vendethiel that's what I call hoisting, yes 11:48
masak_ vendethiel: and subs in the big sub are visible from its parameter list. 11:49
vendethiel: well, in JavaScript where they talk about hoisting, there's an actual separation between declaration and initialization sometimes.
vendethiel: nothing of that sort happens in Perl 6.
vendethiel: a sub declared with the 'sub' keyword is simply visible within its scope at all times. it doesn't get assigned at the top of the block, not even conceptually. 11:50
it just is.
vendethiel in JS, variables declarations (only the name) are hoisted, but named functions are hoisted (with their body) - that's the difference 11:51
doesn't mean "hoisting" is a less fit word for what perl6 is doing, is it ?
masak_ to me it's a bad fit, because I associate it with pieces of code (conceptually) moving around in the source during compilation. 11:52
that doesn't happen in Perl 6.
instead, the parser assumes that the thing you called which it doesn't recognize is a sub that you will declare later. if you don't -- error. 11:53
vendethiel that's a bit of an implementation detail though
but that's why I asked how you'd call it 11:54
masak_ "calling a sub before it's declared" :) 11:56
&
vendethiel well - fair enough then
11:58 pippo__ joined, pippo__ left 12:00 sqirrel_ left 12:03 virtualsue joined 12:14 IllvilJa joined, xenoterracide left 12:19 brrt joined 12:37 jnap joined 12:41 Sqirrel left 12:42 jnap left 12:45 Sqirrel joined 12:50 masak_ is now known as masak 12:51 masak is now known as Guest64457, Guest64457 is now known as masak_ 12:59 Mouq joined 13:00 Sqirrel left
tadzik Cannot call 'Real'; none of these signatures match: 13:06
:(Mu:U \v: *%_)
wat
I don't even know where to look :o
FROGGS_ --ll-exception?
13:06 Sqirrel joined
colomon Text::Indented! \o/ 13:07
FROGGS_ tadzik: btw, do you have a nqp-2014.03 tarball that an be uploaded by someone who has perms?
tadzik oh, forgot about that
FROGGS_ .oO( Pun::Intended? )
tadzik no, I have to create one
FROGGS_ k, because I no permissions to upload it, otherwise I had tried 13:08
ahh, and tag MoarVM perhaps?
I think this did not happened yet
did not happen*
tadzik I thought jnthn did that
he was releasing moarvm
btw, my game is aweosme 13:09
I'll release and blog about it in the coming hours :)
FROGGS_ github.com/MoarVM/MoarVM/releases
tadzik and I'll do a contest of sorts
FROGGS_ yay!
tadzik stay tuned!
FROGGS_ tadzik++
I will :o)
and btw, I think my slides are going to be awesome :o)
13:11 Sqirrel left
masak_ colomon: I like it when five-minute "hm, this shouldn't be so hard..." hack sessions turn into a 3-hour adventure. 13:12
13:12 Timbus left
masak_ colomon: I should do more of that :) 13:12
colomon +1
colomon hates it when five-minute "hm, this shouldn't be so hard..." hack sessions turn into weeks of (unbillable) $work 13:13
JimmyZ_ tadzik: I played your game, and I got segfault when free the game
masak_ I should add that it was three hours of *straightforward* hacking. no blockers anywhere, really. 13:14
tadzik JimmyZ_: which one?
JimmyZ_: and, you probably need to update your moarvm
dalek p: 9ef5690 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bumped moar revision
JimmyZ_ tadzik: segfault at github.com/tadzik/p6steroids/blob/...st.pl#L289 13:15
tadzik JimmyZ_: is it on moarvm? 13:16
JimmyZ_ yeah
tadzik if yes, then is moarvm up to date?
because I've seen that before, and it goes away when you update moarvm
(or use a different backend :))
JimmyZ_ not sure, I can confirm it tomorrow 13:17
13:17 JimmyZ_ is now known as JimmyZ
colomon nativecall is working well enough on Moar to use SDL?!? 13:17
JimmyZ yeah 13:18
colomon \o/
tadzik colomon: sure it is 13:19
colomon: wait till you see my gaem :D
colomon hmmm, sdl for mac.... 13:20
tadzik sdl2
colomon SDL2-2.0.3.dmg downloading...
tadzik :) 13:21
colomon should really be $working...
tadzik FROGGS_: uploaded
thanks for the reminder
FROGGS_ tadzik++
colomon updating my rakudo... 13:22
13:23 lue joined, sjn_ is now known as sjn
colomon has figured out a way to duplicate his $work bug not on Windows Vista! o/ 13:24
tadzik \o/
FROGGS_ \o/ 13:25
colomon now the only step left to fixing it before the deadline today is "a miracle occurs".
FROGGS_ :/ 13:26
turn it off and on again?
Mouq colomon: You may need to get SDL_gfx 13:28
colomon errr… ^D doesn't work to exit the perl6-m REPL on OS X?
Mouq ^C ?
colomon Mouq: yes, that did it. ^Z didn't, weirdly enough. 13:29
sdlwrapper.c:2:10: fatal error: 'SDL_gfxPrimitives.h' file not found 13:30
sounds like Mouq was right
tadzik oh, that's a different game 13:31
behold! github.com/tadzik/ThroughTheWindow
colomon: this one is sdl2, no other deps
please give it a try
and do play the manual soundtrack, it's an important part
13:32 Sqirrel joined
tadzik github did weird things to the readme 13:34
colomon ld: library not found for -lnsl
colomon does not remember if he has heard Me First etc do this one before. 13:35
tadzik :o
masak_ tadzik: looks like you wanted README.md
tadzik masak_: yeah, that too
colomon: ah, the flags may be different on a mac :|
geekosaur nsl? that's a solaris thing
tadzik there is some arcane incantation in zavolaj's repo
geekosaur most other systems have it in libc
colomon is totally failing to get this makefile to work. 13:38
13:38 jnap joined 13:39 Sqirrel left
tadzik colomon: have no fear 13:41
I'm putting together a Configure.pl that'll work
Mouq tadzik++ 13:42
(I can't either)
13:42 jnap left
colomon \o/ 13:44
timotimo well, i could install and play the beta version yesterday
13:44 daniel-s left
Mouq got further by adding "-I/Library/Frameworks/SDL.framework/Headers -framework SDL" 13:45
tadzik colomon: should work now
timotimo Mouq: isn't sdl2-config supposed to do that for you?
colomon had added -I~/Frameowkrs/SDL2.framework/Headers to his makefile
make: sdl2-config: Command not found 13:46
Mouq Bluh, SDL2 would probably be a good idea
tadzik bah
those macs 13:47
is there a dev-package for macs, like libsdl2-dev for debians?
colomon tadzik: checking it now 13:48
tadzik cross-platformism, y u so hard
colomon the alleged devel platform doesn't have it either. 13:49
I'm going to try building from source 13:50
tadzik :| 13:51
colomon: did you check /sw/bin and /opt/local/bin? 13:52
13:52 dmol left
colomon tadzik: it's a framework, everything is in ~/Library 13:52
tadzik internet says it might be there
ah
colomon I'm going to use the Source
Mouq I definitely don't have a `sdl2-config` 13:53
colomon okay, make worked this time 13:54
starting music...
doh, no nativecall!
13:56 kaare__ left, guru joined 13:57 guru is now known as Guest97139, Guest97139 is now known as ajr_ 13:58 kaare__ joined, kaare__ is now known as kaare_
Mouq Haha, tadzik++ 13:59
Got it working after installing from the SDL2 source
13:59 SamuraiJack_ left
tadzik :) 14:00
colomon =========================================== 14:02
Game over! You traveled 532 pixels
===========================================
2684 ticks in 533 iterations
That's 5.035647 ticks per update
Longest frame took 49 ticks
13 frames skipped
14:03 dmol joined
colomon tadzik++ 14:03
tadzik :)
Congratulations :)
masak_ tadzik++ 14:07
14:07 masak_ is now known as masak 14:10 iolympian1 joined, FROGGS_ is now known as FROGGS
Mouq tadzik: gist.github.com/Mouq/0eddb558f2dbf3b1b1c0 14:11
tadzik ah :) 14:12
nice improvement
I'll apply it as soon as I finish writing the blog post 14:13
Mouq Well, except that you can just hop in the air continuously :)
tadzik wait, I don't immediately get it
what does it do?
I thought it's "press longer to jump higher"
but now I'm not sure :) 14:14
Mouq Yeah, but I didn't fix it to make it only work once
tadzik wordpress is crazy 14:16
lizmat just had to get back to Perl 5 to prevent a CPAN module getting bumped from Debian
Mouq Haha, this is actually harder than the original gist.github.com/Mouq/a12b912ecbd7999bd5c4 14:22
14:22 Sqirrel joined
Mouq (Well, assuming you don't just hold <space> indefinitely :P) 14:23
14:34 denis_boyun joined
tadzik lol, I blug: ttjjss.wordpress.com/2014/03/23/per...he-window/ 14:36
vendethiel tadzik++ # lots of people making that same mistakes right now ;-) 14:37
tadzik :)
Mouq tadzik++ 14:38
vendethiel "I chose Perl 6 for performance reasons! Ain’t that something to tell my grandkids about." Ha !
14:39 jnap joined
vendethiel tadzik: aren't dashes more perl6-y than underscore, though ? 14:39
vendethiel .oO(Hoping that won't start a flame war ...) 14:40
masak it's a matter of taste, IMHO.
vendethiel definitely, but it's nice to have conventions
masak some people say that "dashes are for high-level APIs, underscores for low-level APIs"
moritz it_kinda_is
masak but even that is a rule of thumb.
personally, I like the highlighting that vim gives me when I use underscores :> 14:41
tadzik vendethiel: yeah, they are. Did I leave _ somewhere?
vendethiel "vim driven development"
Mouq tadzik: The only thing major thing I've run into was that if you set a velocity to a non-Int/int, it breaks mysteriously because x and y expect to be Int. Easy fix, but was annoying when I ran into it
masak vendethiel: Perl 6 has conventions, but mostly it leaves you to go forth and be a responsible adult. :)
vendethiel tadzik: I mean the method names 14:42
tadzik Mouq: oh, also you may get stuck in a ground at some point :)
vendethiel: oh, indeed
Mouq tadzik: Hasn't happened yet :)
tadzik Mouq: the proper way to handle this would be to, in physics(), move everything pixel-by-pixel, checking events every time 14:43
otherwise, you may get right through an obstacle, and the collision detection will never kick in
I got away without it because the jump always ends exactly at the ground level, not lower :P
moritz tadzik++ # blog, game
timotimo it'll be easy to turn that game into FlappyRunner 14:44
14:44 jnap left
tadzik yep :) 14:44
moritz I see that tadzik got the essentials of game programming correct already: cheat wherever you can :-)
vendethiel I remember that from a game called TeeWorlds. If you went really, really fast, you'd just get through obstacles :D. 14:45
tadzik I did my homework :P
ha, Teeworlds!
timotimo teeworlds is cool 14:48
14:48 iolympian1 left
vendethiel They don't really have that much dev though, iirc 14:50
Mouq Isn't there a way to round a number to a certain precision in Perl 6? 14:52
Oh, round
:P
tadzik hah 14:53
masak .oO( couldn't they have given it a more intuitive name? ) :P
tadzik I think C++ has set_precision or something
someone should have round_to_precision
Mouq tadzik: btw, are you putting steroids into the ecosystem? 14:55
14:55 brrt left
tadzik Mouq: at some point, yes 14:55
Mouq tadzik: Sweet :) 14:56
colomon dash! dash! dash!
tadzik now, a new challenge
package moarvm, rakudo along with the game, to distribute a single executable
colomon was apparently backlogging without realizing it...
masak colomon: that discussion was so 20 minutes ago! :P 15:00
tadzik nice, I can bundle moarvm and rakudo with the game, and it only weights 22 MBs 15:01
I wonder if it works though
moritz is Moar relocatable?
tadzik yes 15:02
apparently
I'll try to run it a new user account
heh, I have a user "timo" here
15:03 thou joined
tadzik yep, it works :) 15:03
moritz has a user "tjs" here
moritz deletes
oh wait, I was on feather 15:04
timotimo \o/
moritz (just kidding)
timotimo only 22 megabytes for the whole game!
is that compressed?
tadzik :D 15:05
no, uncompressed
I just copied a some moarvm files
gist.github.com/tadzik/9724234 15:06
who'll be the first to write a bundler? :)
moritz au usually is :-)
tadzik :)
ah, it's dynlinked to /home/tadzik/.rakudobrew/moar-HEAD/install/lib/libmoar.so 15:07
booo 15:08
so, +3.5 megabytes
also, semi-relocatable :/
timotimo well, that's quite a bit of cost for boilerplate, but i'd assume it grows very slowly
due to the expressiveness of Perl 6 code :P 15:09
tadzik :)
timotimo it's not quite a 96k game, that's for sure 15:10
tadzik not with the runtime :)
15:11 breinbaas left 15:13 breinbaas joined 15:18 virtualsue left 15:19 brrt joined, jnap joined
moritz well, the 96k games also don't contain the complete design of the processor and the operating system 15:23
timotimo :) 15:25
15:26 zakharyas joined
Mouq This is pretty awesome to be able to play around with. tadzik++ 15:26
15:29 rindolf left
tadzik :) thank you 15:30
15:37 jnap left 15:39 rindolf joined 15:46 denis_boyun left 15:47 spider-mario left
Mouq Finally got hold-to-jump right github.com/Mouq/ThroughTheWindow 15:47
.oO( What, I was planning on doing things today? No. Nope, not anymore :P )
15:48
15:49 rindolf left
tadzik :) 15:53
I see that you're getting ready for the contest :) 15:54
masak tadzik: ss/I'll be better <(of)>/off/
15:55 Timbus joined
tadzik oh, thank you 15:58
16:05 mtk left
moritz masak: that )> was redundant :-) 16:16
masak hah. :) 16:17
16:20 kivutar left
itz__ does panda have moar-support merged I forget? 16:21
Mouq itz__: It does :) 16:22
16:30 SamuraiJack_ joined 16:34 kurahaupo joined 16:46 Ulti_ is now known as Ulti 17:18 kurahaupo left 17:20 pmurias joined
pmurias tadzik: MoarVM is faster then typescript? 17:21
masak pmurias: I honestly don't know by which measure TypeScript would be "slow". it compiles down to JavaScript, mostly by erasure. 17:22
timotimo pmurias: only compile-time wise ;) 17:23
pmurias that's what I suspected
timotimo: so the compiler startup is slow? 17:24
(when not using an IDE for it?) 17:25
17:25 mls_ joined
moritz well, generated javascript could also be suffciently indirect to be slow 17:26
timotimo that's kind of hard for javascript 17:27
given how crazy v8 and friends are
17:28 mls left
moritz how fast is nqp-js? 17:30
timotimo oh ... well ... 17:33
you may have a point there :)
vendethiel though js might be the fastest backend 17:36
17:40 ajr_ left, guru joined 17:41 kurahaupo joined, guru is now known as Guest65722, Guest65722 is now known as ajr_ 17:51 kurahaupo left 17:52 xenoterracide joined 17:53 brrt left 17:56 ajr_ left 17:59 kurahaupo joined 18:04 xenoterracide left 18:10 xenoterracide joined 18:11 hoverboard joined 18:15 SamuraiJack_ left 18:19 avar joined, avar left 18:20 avar joined 18:21 kurahaupo left 18:28 ajr_ joined
timotimo how should i implement :chomp for quoting? 18:34
so far, there's a "method postprocess", for things like run, var, words, ... 18:35
it would probably make sense to implement it as a postprocessor, but the current model only envisions a single postprocessor to exist
jnthn With mixins, same as the other adverbs. 18:36
timotimo yeah, but when i mixin a method postprocessor, it will only call that
jnthn Then just check if the language has a .chomp or so
timotimo i thought of that, too, but i thought it would pessimize all quotings 18:37
jnthn The postprocessor can look at other properties, no?
timotimo i'm not sure i understand
you mean i should teach all postprocessors to look if there's a .chomp?
jnthn ah, I see what you mean...it wants to work with all of them.
Hmmm.
timotimo yes, it does 18:38
jnthn Maybe it can happen somewhere around the place that calls the postprocessor?
timotimo i'm glad i'm not just too dumb :P
jnthn Well, it's been a while since I hacked on this :)
timotimo it could, aye
so, the :chomp adverb shouldn't introduce an actual chomp call that would remove newlines from the very end if the user interpolates something? 18:39
i.E. q:chomp"hello there, $foo"; with $foo = "timo\n";, will that result in "hello there, timo\n" or "hello there, timo"?
18:43 moukeddar joined
moukeddar o/ #perl6 18:43
Mouq o/ moukeddar
timotimo i just got a mail with broken umlauts/utf8 from the GPW team 18:44
>_<
FROGGS timotimo: it is from barbie not from the gpw orga 18:46
jnthn It's a good job German doesn't use umlauts...oh, wait...
FROGGS :P
jnthn timotimo: Well, I'd hope in the constant string case we can do it automatically
FROGGS jnthn: you don't even use lauts!
(at least not in your name) 18:47
jnthn They're overrated :P
timotimo jnthn: yes, that's exactly what i'm hoping to make
jnthn timotimo: but yeah, call back to .chomp call or so.
timotimo just like when i fixed heredoc dedenting some time ago
so, :chomp on a quoter should also chomp from interpolated strings? 18:48
Mouq timotimo: You could model it off of postprocess_words
timotimo before i implement it, i'd like to spec that
Mouq: postprocess_words is b0rked, though :P
jnthn That'd seem reasonable...
Mouq Oh
timotimo it would be quite a challenge to make that thing work properly
jnthn b0rked? Really? 18:49
Example?
timotimo r: say <<foo\ bar>>.elems
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«2␤»
Mouq timotimo: That's postprocess_quotewords
timotimo oh!
oops :)
so postprocess_words is just <foo bar baz>? 18:50
Mouq yeah
timotimo r: say <foo bar\ baz>.elems
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«3␤»
timotimo but that should have 2 elems, shouldn't it?
jnthn I'm not actually sure :)
Mouq I was just saying with respect to using $past.has_compile_time_value
FROGGS r: say < $< $> >.elems
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«1␤»
FROGGS this should have two :o)
18:51 darutoko left
timotimo github.com/rakudo/rakudo/blob/nom/...ns.nqp#L13Mouq, i'm responsible for most of this code, so i know how this should be implemented ... probably :) 18:51
Mouq timotimo: Heh, ok :)
timotimo you see, i'm an expert! 18:52
Mouq And timotimo++
18:54 kurahaupo joined 18:55 ssutch joined 18:57 Sqirrel left
Mouq r: say <a \qq<bc d {1+14} \q:w<$not interpolated>> e> 18:58
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«a bc d 15 $not interpolated e␤»
Mouq r: say <a \qq<bc d {1+14} \q:w<$not interpolated>> e>.perl
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("a", "bc", "d", "15", "\$not", "interpolated", "e").list␤»
Mouq Huh 18:59
My thought is that would be "a", "bc d 15 $not interpolated", "e"
n: say <a \qq<bc d {1+14} \q:w<$not interpolated>> e>.perl
camelia niecza v24-109-g48a8de3: OUTPUT«("a", "bc", "d", val("15"), "\$not", "interpolated", "e").list␤»
timotimo i don't think i know anything about how all that is supposed to work o_O
Mouq n: say <a \q:to/INTERPOLATED_HERDOC/ e>.perl␤ b c␤ d ␤INTERPOLATED_HEREDOC 19:01
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Ending delimiter INTERPOLATED_HERDOC not found at /tmp/tix8puJe45 line 2:␤------> <BOL>⏏ b c␤␤Parse failed␤␤»
Mouq r: say <a \q:to/INTERPOLATED_HERDOC/ e>.perl␤ b c␤ d ␤INTERPOLATED_HEREDOC
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Ending delimiter INTERPOLATED_HERDOC not found␤at /tmp/tmpfile:4␤------> INTERPOLATED_HEREDOC⏏<EOL>␤ expecting any of…»
Mouq r: say <a \q:to/INTERPOLATED_HERDOC/ e>.perl;␤ b c␤ d ␤INTERPOLATED_HEREDOC 19:02
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Ending delimiter INTERPOLATED_HERDOC not found␤at /tmp/tmpfile:4␤------> INTERPOLATED_HEREDOC⏏<EOL>␤ expecting any of…»
Mouq r: say <a {q:to/INTERPOLATED_HERDOC/} e>.perl;␤ b c␤ d ␤INTERPOLATED_HEREDOC
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared name:␤ INTERPOLATED_HEREDOC used at line 4␤Undeclared routines:␤ b used at line 2␤ c used at line 2␤ d used at lin…»
Mouq Bluh
r: say <a \qq<{q:to/INTERPOLATED_HERDOC/}> e>.perl;␤ b c␤ d ␤INTERPOLATED_HEREDOC
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Ending delimiter INTERPOLATED_HERDOC not found␤at /tmp/tmpfile:4␤------> INTERPOLATED_HEREDOC⏏<EOL>␤ expecting any of…»
Mouq Admittedly, anyone doing that in actual code deserves to be punched. 19:03
r: say <a \qq<{q:to/INTERPOLATED_HEREDOC/}> e>.perl;␤ b c␤ d ␤INTERPOLATED_HEREDOC
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("a", "b", "c", "d", "e").list␤»
Mouq Yay! 19:04
r: say <a \q:to/INTERPOLATED_HEREDOC/ e>.perl;␤ b c␤ d ␤INTERPOLATED_HEREDOC
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("a", "b", "c", "d", "e").list␤»
Mouq is done spamming :P
vendethiel r: say < $< $> > 19:07
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«$<$>␤»
vendethiel r: say < $< $> >.perl
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«"\$<\$>"␤»
Mouq std: < $< $> >
camelia std 09dda5b: OUTPUT«ok 00:00 121m␤»
Mouq Why does that even parse?
pmurias moritz: have you measured the performance of nqp-js?
moritz: the code it currently generates is extremely stupid atm 19:08
Mouq Oh, duh <nibbler> is recursive, and so matching braces are fine 19:10
r: say < anything < $> >.perl 19:11
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("anything", "<\$>").list␤»
Mouq r: say < anything < some thing else > >.perl
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("anything", "<some", "thing", "else>").list␤»
pmurias I haven't intentionally measure the performance of nqp-js yet, but early self hosting seems to be significantly faster then the equaly stupid perl5 code kp6 emitted
19:11 hoverboard left
Mouq r: say < anything \< some thing else \> >.perl 19:13
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("anything", "\\<", "some", "thing", "else", ">")␤»
Mouq r: say < anything < some thing else \> >.perl
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/tmpfile:1␤------> < anything < some thing else \> …»
Mouq std: say < anything < some thing else \> >.perl
camelia std 09dda5b: OUTPUT«===SORRY!===␤Unable to parse quote words at /tmp/zYGCu_alcc line 1:␤------> say ⏏< anything < some thing else \> >.perl␤Couldn't find final '>'; gave up at /tmp/zYGCu_alcc line 1 (EOF):␤------> < anything < s…»
moritz pmurias: no, I haven't; that's why I asked 19:15
Mouq .ask TimToady Should :q be able to escape its starter? This is the same as asking if, e.g. "< \< >" should produce "<" or "\<", considering that "< < >" is a syntax error 19:16
yoleaux Mouq: I'll pass your message to TimToady.
FROGGS "< \< >" has to produce '<' IMO 19:17
19:17 zakharyas left 19:21 hoverboard joined
Mouq n: < \< >.say 19:21
camelia niecza v24-109-g48a8de3: OUTPUT«\<␤»
Mouq doesn't understand what's wrong with « » 19:27
p6: « 'a thing' b ».perl.say # nietza is wrong here
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«("a thing", "b")␤»
..niecza v24-109-g48a8de3: OUTPUT«("'a", "thing'", "b")␤»
Mouq *niecza
19:28 Sqirrel joined
Mouq p6: say « :Mon(1) Tue Wed Thu Fri Sat Sun » 19:28
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«Tue Wed Thu Fri Sat Sun␤»
..niecza v24-109-g48a8de3: OUTPUT«:Mon(1) Tue Wed Thu Fri Sat Sun␤»
Mouq p6: say enum « :Mon(1) Tue Wed Thu Fri Sat Sun »
camelia rakudo-jvm ffa572: OUTPUT«EnumMap.new("Thu", 2, "Sun", 5, "Wed", 1, "Sat", 4, "Fri", 3, "Tue", 0, "Mon", 1, )␤»
..rakudo-parrot ffa572, rakudo-moar ffa572: OUTPUT«EnumMap.new("Mon", 1, "Tue", 0, "Wed", 1, "Thu", 2, "Fri", 3, "Sat", 4, "Sun", 5, )␤»
..niecza v24-109-g48a8de3: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1355 (warn @ 5) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval…»
19:30 rindolf joined 19:31 virtualsue joined 19:32 pmurias left
nwc10 timotimo: I got that mail too. The source is wierd. It's not obvious how it is messed up. 19:37
Seems to contain munged escape codes
timotimo hmm 19:40
i wonder how hard it is to write a simulator for reaction-diffusion systems 19:41
nwc10 aha, no, that's something stupid my setup is doing locally
it's double encoded, I think.
Mouq .ask TimToady And is "In addition, the double angles allow for comments beginning with #. These comments work exactly like ordinary comments in Perl code" still valid and just NYI? 19:42
yoleaux Mouq: I'll pass your message to TimToady.
FROGGS Program received signal SIGSEGV, Segmentation fault. 19:51
#1 MVM_frame_inc_ref (tc=tc@entry=0x603500, frame=0x0) at src/core/frame.c:43
#2 0x00007ffff588a1e4 in p6captureouters (tc=0x603500) at src/vm/moar/ops/perl6_ops.c:502
:( 19:52
timotimo y?
19:53 Ihasntgotnosandw joined
Ihasntgotnosandw greetins, ladies and gentlemen 19:53
I'm new on this perl 6 thing, what's it about?
timotimo does your name mean you don't have any sand? 19:54
Mouq Well, it's an awesome programming language
Ihasntgotnosandw my name means that I don't have no sandwich 19:55
timotimo ah!
Ihasntgotnosandw I'm concidering to try perl out
timotimo it seems the irc server cut off the sandwich part of your name :(
so you really don't have a sandwich
not even in your name
somehow that's pretty fitting
FROGGS hehe
Ihasntgotnosandw well, it's a double negative 19:56
I don't have no sandwich
FROGGS timotimo: btw, I run into that problem when compiling v5
timotimo FROGGS: ;(
maybe you're trying to capture outers, but there is no outer frame?
moritz r: say 'Ihasntgotnosandw' ~~ 'has no sandwich' 19:58
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«False␤»
moritz r: say 'Ihasntgotnosandw' ~~ 'has a sandwich'
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«False␤»
FROGGS timotimo: I am throwing an exception now, I hope the backtrace shows something useful 19:59
timotimo Ihasntgotnosandw: so, do you already have experience with programming languages?
Mouq r: say 'Ihasntgotnosandw'.lc.comb ⊇ <has no sandwich>».comb 20:00
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«False␤»
Ihasntgotnosandw I do have experience with some programming languages, but not perl
Mouq r: say 'Ihasntgotnosandw'.lc.comb,'c' ⊇ <has no sandwich>».comb
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«i h a s n t g o t n o s a n d wFalse␤»
Ihasntgotnosandw I'm new with perl, it will be amazing to get started with it
Mouq r: say ('Ihasntgotnosandw'.lc.comb,'c' ⊇ <has no sandwich>».comb)
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«i h a s n t g o t n o s a n d w False␤»
timotimo perl6: my $alpha = "foo"; my $beta = "bar"; qww[$alpha $beta];
Mouq Oh
camelia ( no output )
..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ $alpha is declared but not used at /tmp/tmpfile line 1:␤------> my ⏏$alpha = "foo"; my $beta = "bar"; qww[$a␤ $beta is declared but not used at /tmp/tmpfile line 1:␤------> my $alpha = "foo"…»
Mouq r: say ('Ihasntgotnosandw'.lc.comb,'c') ⊇ <has no sandwich>».comb
20:00 kivutar joined
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572: OUTPUT«True␤» 20:00
Mouq There 20:01
So you almost has no sandwich
20:01 Ihasntgotnosandw left
timotimo :o 20:01
perl6: my $alpha = "foo"; my $beta = "bar"; say qww[$alpha $beta]; $alpha ~ $beta;
camelia rakudo-parrot ffa572, rakudo-jvm ffa572, rakudo-moar ffa572, niecza v24-109-g48a8de3: OUTPUT«$alpha $beta␤» 20:02
20:03 mtk joined
FROGGS hmmm, it is the invocation of: rakudo/src/Perl6/World.nqp:1717: nqp::p6captureouters2([$code], nqp::getstaticcode($!resolved)); 20:03
20:04 toebu joined
FROGGS (when loading Perl5::Terms from Perl5::Config) 20:04
20:05 brrt joined
Mouq FROGGS: Do you think it's related to segfaults I was getting with Pod::To::HTML? 20:06
FROGGS Mouq: yes
though, it is hard for me to golf down
because there is a lot of magic happening in v5
might be easier to golf down Pod::To::HTML 20:07
jnthn It'll be almost certainly golfable to something involving roles, I imagine.
20:07 hoverboard left
FROGGS there are roles in Perl5::Terms, yes 20:08
timotimo roles: does anybody even use them? should we strip them from the language? 20:09
FROGGS Perl5::Config does not touch these roles though, it just loads Perl5::Terms in EXPORT
timotimo: :P
dalek ast: a62e0ae | (Timo Paulssen)++ | S02-literals/quoting.t:
rakudo.moar doesn't need to skip openpipe any more.
20:12
timotimo more passing tests for rakudo.moar!
20:13 denis_boyun joined
FROGGS timotimo++ 20:16
20:16 sisar joined
Mouq Can perl6.org/compilers/features be updated as well? ("run, qx") 20:17
FROGGS hmmm, I thought TimToady++ did that 20:18
Mouq Oh, he did
FROGGS github.com/perl6/features/commit/5...8bea4d2f17
yeah
Mouq " The page itself was updated Sun Mar 2 07:12:01 2014 "
FROGGS The data to generate this page was last updated Fri Jan 17 02:42:02 2014 ; The page itself was updated Sun Mar 2 07:12:01 2014 20:19
Mouq I think there were a bunch of cron jobs that used to be run and no longer are (e.g. modules.perl6.org)
20:19 BenGoldberg joined
moritz cron on feather2 still runs though :) 20:20
FROGGS jnthn: damn, I was hoping to be able to compile v5 when I just do not inc that frame when it is NULL, but now it hangs where is segfaulted before :/
jnthn FROGGS: Yeah, I was figuring if that thing comes out null something else is adrift...it shoulnd't happen.
FROGGS jnthn: would it be of any help when I would golf it down for you? 20:21
jnthn FROGGS: Yes. I'll be home by this time tomorrow and will have a decentish tuit supply this week. 20:22
moritz checks the various cron jobs
FROGGS well, I am going to give a v5 talk on wednesday, but no pressure *g*
jnthn oh, should probably unbust that then :) 20:23
FROGGS well, I could go back by a week, but when I can golf it it would be nice anyway
Mouq: you just compiled Pod::To::HTML to get that problem? 20:24
Mouq Yeah
panda install --notests Pod::To::HTML
perl6 -MPod::To::HTML -e1 20:25
FROGGS k
Mouq Segfaults for me
FROGGS thanks
moritz perlpunks.de/paste/show/532f4323.4de6.32b output from the modules.perl6.org cron job
oh my 20:26
the script that calls it starts with git-pull -x -f
erm, -q -f
but, current versions of debian don't put the dashed git commands into $PATH
so It has to be called as git pull
timotimo we need monitoring :) 20:27
20:27 Araq joined
FROGGS nagios \o/ 20:27
timotimo kanla \o/
lizmat FROGGS++ for v5
Mouq moritz++ 20:28
FROGGS lizmat: the pause patches got applied, now only the indexer is left TBD :o)
lizmat do you mean that panda can install from CPAN already ?? 20:29
FROGGS no
lizmat okok
FROGGS we need the indexer for that
lizmat no pressure :-)
why ? we need a recommendation manager, afaics
FROGGS but you can upload a Perl 6 dist, it goes into the Perl6/ subdir, and it will not get picked up for Perl5ish indexing 20:30
lizmat or am I missing something ?
indeed, that was the plan :-)
FROGGS you also need to find dists by name (or provides)
lizmat indeed, so we need a recommendation manager
FROGGS and that is what we need to provide: 02packages like list of all dists as json or so
lizmat which is what a recommendation manager is, to an extent 20:31
FROGGS no, even without recommendations you need to know what tarballs are there
lizmat ah, ok
yeah, got ya
basically, an "available distributions" list 20:32
moritz "features" cronjob likewise fixed
FROGGS lizmat: yes, exactly
moritz++
lizmat FROGGS++ :-)
FROGGS :o)
20:33 sisar left
masak FROGGS++ lizmat++ moritz++ 20:34
Araq any release date for Perl 6? 20:35
moritz Araq: well, the compiler has monthly releases; no release date for the language spec yet 20:36
Araq so what does the compiler implement then? 20:37
lizmat 90+% of the spec ?
.oO( lies, damn lies and statistics )
30.6K spectests ? 20:38
3 backends ?
Mouq *3.5 backends ? 20:39
:)
moritz Araq: the unreleased spec
lizmat isn't number of backends a native int ?
moritz Araq: we haven't released the specs; they escaped 20:40
Araq well what's missing? and why not call it 1.0 already? 20:41
Mouq wanted to throw nqp-js in too 20:42
lizmat which would mean that nqp has 4 backends, and rakudo 3 (so far) 20:43
looking forward to adding js to the rakudo backend list! 20:44
jnthn Araq: Parts of the spec we perhaps could. But just freezing and throwing out the spec in whatever form it happens to be in, regardless of where implementations of it are at, would be enormously unhelpful.
Araq: Most of what drives spec changes now is implementations saying "hang on, that bit...it's nuts" :) 20:45
FROGGS or like the concurrency implementation that was done recently, and was specced afterwards (you cannot really spec that out of thin air) 20:46
jnthn Araq: It's not a waterfall model. Spec and implementation learn from each other.
20:46 brrt left
timotimo it's more a whirlpool 20:46
FROGGS *g* 20:47
nice and warm :o)
Araq well what's missing? what about some examples?
timotimo only arcane parts :P
FROGGS Araq: here are some details: ethercalc.org/i982ooyabg.html 20:48
timotimo that spreadsheet is weird to me
FROGGS I dunno if that list is really helpful for you though
Mouq perlcabal.org/syn/ "[DRAFT]" and "(TBD)"
FROGGS yeah
Mouq: it is not that easy though, because some are marked draft where I don't really see that these are so slushy 20:49
lizmat As far as I'm concerned, [DRAFT] could be removed from S22
FROGGS then do it :o)
20:50 baest joined
Mouq FROGGS: True. I don't really see S14 as a draft either at this point 20:50
FROGGS Araq: this might be easier to read: github.com/rakudo/rakudo/blob/nom/docs/ROADMAP
lizmat FROGGS: where does that page live ?
20:50 Rotwang joined
lizmat found it 20:50
20:51 ajr_ left
dalek : 1c70bc0 | (Elizabeth Mattijsen)++ | docs/feather/syn_index.html:
Fix references of S22 and S11
20:54
Mouq Is S18-Compiling really something that needs its own Synopsis at this point?
lizmat++
lue Mouq: since the synopses are based off that one Perl book, my guess is that it's related to compiling Perl 6. 20:56
dalek : 3930588 | (Elizabeth Mattijsen)++ | docs/feather/syn_index.html:
Refine reference to S17 (hardly a draft anymore)
ecs: 991c0bf | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Undraft S17
20:57
FROGGS jnthn: I golfed it for Pod::To::HTML 20:58
it is just:
#= hi
sub hallo { }
lue Mouq: S27 seems similarly useless :)
FROGGS jnthn: precompile, and use that
jnthn: v5 must be something else though 20:59
Mouq FROGGS++ 21:00
It might be a symptom of the same thing though
21:00 virtualsue left 21:02 moukeddar left
FROGGS might be, yeah 21:02
Mouq wonders if S29 and S32 can/ought to be merged 21:03
timotimo hmm 21:05
one is mostly for classes and methods, the other mostly for subs
lue Mouq: looks to me S29 needs to be thrown out and replaced.
21:09 kurahaupo left, kaare_ left 21:19 brrt joined 21:20 brrt left 21:25 hoverboard joined
FROGGS jnthn: two very very simple test cases: github.com/FROGGS/frame_inc 21:26
masak Mouq: in fact, S32 was pulled out of S29 once. 21:32
Mouq: but I agree since then S32 has gotten more love. and maybe S29 fills no need anymore.
moritz S29 is mostly builtins that aren't yet properly put into classes 21:33
21:36 Mouq left
colomon hey, no need to class-ify everything. that's java-think. 21:37
vendethiel colomon: java-think is to factorify everything ;) 21:38
21:41 telex left
FROGGS colomon: I like that you can choose whether you call it as a sub or as a method (like I prefer to call 'item' as a method) 21:41
21:42 telex joined
colomon FROGGS: I think the point is that the S29 things don't have method forms yet. 21:45
FROGGS colomon: exactly, and I try to say that I like to have methods forms for most built-ins 21:46
colomon Ah. I'm trying to say that, while I like it for most (all?) of the ones we have methods for -- I too prefer method form -- I don't think everything has to be a method. 21:47
FROGGS only if it makes sense, aye
colomon the example I'm thinking of is "shell"
FROGGS yes, or 42.sleep 21:48
I would never write that
colomon erxactly! 21:49
exactly!
vendethiel "42.sleep" is not a java-ish way, though 21:50
FROGGS I am not familiar with Java 21:52
jnthn PillowFactory.getPillow().sleep(new WinksValueObject(40)); /* there! */
vendethiel java-ish way would be `Factory sleepFactory = new sleepFactory(); var sleep = sleepFactory.createSleepObject(); sleep.sleepForDuration(sleep.convertSeconds(42));` 21:53
lue I think S29 could be useful, it's just got a lot of oldisms, and a general "this hasn't been updated for years" feel.
jnthn FROGGS: Thanks for the extra cases
FROGGS: cloned them locally in case I've energy to look en route
21:54 Araq left
FROGGS jnthn++ 21:54
:o)
21:54 Sqirrel left 22:01 pippo_ left 22:06 Mouq joined
masak FROGGS: 42.sleep feels distinctively Rubyish to me. 22:06
FROGGS: Ruby does have the 42.times method, among other things. because ints should totally be responsible for control flow :) 22:07
vendethiel *and* ruby for loops get translated to `x.times`
or `.each`, for that matters
jnthn Control flow is an integral part of any programming language... :P
FROGGS I perhaps get more in touch with ruby this year ("in touch at all" I should say)
22:11 Sqirrel joined 22:14 colomon left 22:20 Sqirrel left 22:21 Sqirrel joined 22:23 colomon joined
Mouq r: .say for CORE::.pairs 22:34
camelia rakudo-parrot ffa572: OUTPUT«"\&bag" => 3927␤"\&mix" => 3931␤"Version" => 3935␤"\&infix:<=>" => 3939␤"\&infix:<does>" => 3943␤"\&infix:<but>" => 3947␤"\&SEQUENCE" => 3951␤"\&WHAT" => 3955␤"\&VAR" => 3959␤"\&infix:<...>" => 3963␤"\&infix:<...^>" => 4367␤"\&undef…»
..rakudo-jvm ffa572: OUTPUT«"Supply" => Mu␤"Iterator" => Mu␤"\&infix:<||>" => Mu␤"\&infix:<~>>" => Mu␤"\&WHAT" => Mu␤"\&all" => Mu␤"\&postcircumfix:<[ ]>" => Mu␤"\&THROW" => Mu␤"\&slurp" => Mu␤"\&gist" => Mu␤"\$WINNER_KIND_MORE" => Mu␤"\&infix:<∋>" => Mu␤"Has…»
..rakudo-moar ffa572: OUTPUT«"\%DEPRECATIONS" => Mu␤"\&fail" => Mu␤"\&zip" => Mu␤"\%pvalcodecache" => Mu␤"\%propcodecache" => Mu␤"\$?TABSTOP" => Mu␤"\$UINT64_UPPER" => Mu␤"\$sprintfHandlerInitialized" => Mu␤"\$default" => Mu␤"\$NaN" => Mu␤"\$Inf" => Mu␤"\&samewit…»
22:40 Sqirrel left 22:42 Sqirrel joined 22:46 denis_boyun left 22:56 Sqirrel left
lizmat gnight, #perl6! 23:03
Mouq night lizmat! 23:05
masak 'night, #perl6
Mouq night masak!
23:08 mtk left 23:09 Rotwang left 23:10 Psyche^ left 23:14 Sqirrel joined
timotimo gnite 23:19
23:25 dmol left 23:36 hoverboard left
timotimo numberwang-2048 is the best 2048 i've seen so far 23:36
colomon numberwang! 23:40
tadzik pmu<TAB><TAB> 23:43
:|
23:43 Sqirrel left 23:44 Sqirrel joined
timotimo pmuchaud? 23:48
23:49 ssutch_ joined
tadzik pmurias :) 23:51
re moarvm faster than typescript: because of ~3-seconds-long compile times with typescript, the development cycle on moarvm was just a lot more pleasant
hah, someone reddited it: www.reddit.com/r/perl/comments/216d..._one_week/ 23:52
raiph++
ssutch_ i clicked that link at exactly the same time you posted it 23:54
but on reddit
23:54 Mouq left 23:55 sftp joined
tadzik :) 23:57
23:57 Mouq joined
timotimo ohai ssutch_ 23:58
ssutch_ hello!
timotimo will you be taking part in the game contest?
ssutch_ there's a game contest?
tadzik yep
at the bottom of the post
ssutch_ ah cool, i haven't finished it yet 23:59
timotimo no need to finish the contest right now
ssutch_ (the post)