»ö« 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.
00:10 grettis left 00:13 Hor|zon joined
TimToady et al. now at SEA, waiting to go to SFO 00:17
yoleaux 14 Oct 2014 08:54Z <psch> TimToady: irclog.perlgeek.de/perl6/2014-10-13#i_9499127 might have been irclog.perlgeek.de/perl6/2014-08-15#i_9188841
00:17 Hor|zon left
timotimo TimToady: glad to hear your first flight portion went well 00:18
00:19 xenoterracide__ joined
TimToady 1st two, actually, we did MUC -> AMS -> SEA 00:19
timotimo ah. well, portion doesn't necessarily mean "smallest atomic portion" :)
.o( as suggestive "suggested" serving sizes suggest ) 00:20
TimToady treu
timotimo i was able to annoy ven by saying "on deh twah"
vendethiel: it seems like karma swung back around and got me a little laceration on my knee :\ 00:21
now i'm actually sorry for being annoying and mean sometimes^Wmost of the time
i wonder how fast the Techno_Z people will make the video recordings available to "our people" and how fast "our people" will be able to publish them 00:24
b2gills kv slicing in Perl5: $ perl-5.20.0 -E' my @a = "a".."d"; say %a[0..3] ' # 0a1b2c3d 00:32
or more clearly as: perl-5.20.0 -Mfeature=postderef -E' my @a = "a".."d"; say @a->%[0..3]' # 0a1b2c3d
timotimo can you explain how that works exactly?
oh, just slicing an array with a % sigil gives you a hash, so to speak 00:33
what would it look like to iterate over that with 1) a key and a value available in the loop body, 2) the key and then the value being available in separate iterations 00:34
basically the equivalent of these:
m: my @a = "a".."d"; for @a.kv -> $k, $v { say "k: $k, v: $v" } # 1
camelia rakudo-moar 8b3e8c: OUTPUT«k: 0, v: a␤k: 1, v: b␤k: 2, v: c␤k: 3, v: d␤»
timotimo m: my @a = "a".."d"; for @a.kv -> $thing { say "thing: $thing" } # 1
camelia rakudo-moar 8b3e8c: OUTPUT«thing: 0␤thing: a␤thing: 1␤thing: b␤thing: 2␤thing: c␤thing: 3␤thing: d␤» 00:35
timotimo er, i neglected to update the comment at the very end.
BenGoldberg s/# 1/# 2/; # ?
timotimo exactly
00:36 _slade_ joined 00:59 molaf joined 01:00 woolfy left 01:01 woolfy joined 01:12 Mso150 joined 01:30 mathw_ joined, brother joined 01:31 oetiker_ joined, integral_ joined 01:32 nebuchad` joined, xenoterracide__ left, yogan_ joined 01:33 integral left, oskie joined, oetiker left, geekosaur left 01:34 timotimo joined 01:36 xenoterracide__ joined 01:37 Mso150 left 01:38 Mso150 joined 01:40 Gruber joined, oskie_ joined 01:41 [TuxCM] joined, TimToady_ joined 01:42 petercom1and joined, huf_ joined, djanatyn1 joined, kurahaupo left, petercommand left, anocelot_ joined, oskie left, muraiki left, TimToady left, [Tux] left, slavik left, anocelot left, Grrrr left 01:43 muraiki joined, slavik joined, danaj_ joined 01:44 b2gills joined 01:46 oetiker_ left 01:49 Mso150 left, kurahaupo joined, kurahaupo left 01:52 geekosaur joined, geekosaur left 01:54 geekosaur joined 01:57 odc joined 01:58 kurahaupo joined 01:59 kurahaupo left 02:00 oetiker_ joined 02:14 Hor|zon joined 02:19 Hor|zon left 02:42 chenryn joined 02:48 noganex_ joined 02:51 noganex left 02:58 dayangkun left 03:01 davido__ joined 03:13 _slade_ left, _slade_ joined 03:15 dayangkun joined 03:19 mauke_ joined 03:22 mauke left 03:23 pdcawley_ left 03:25 mauke_ is now known as mauke, pdcawley joined 03:33 molaf left 03:46 chenryn left 03:48 chenryn joined 03:53 camelia left 03:54 dayangkun left 03:56 camelia joined, flaviusb joined 03:57 ChanServ sets mode: +v camelia 04:04 Woodi_ joined 04:07 anaeem1 joined 04:09 xenoterracide__ left 04:11 BenGoldberg left
b2gills For one thing you can't iterate 2 at a time in Perl5 04:11
04:15 Hor|zon joined 04:20 Hor|zon left
b2gills P5: `%array[keys @array]` === P5: `@array->%[keys @array]` === P6: `@array[keys @array] :kv` 04:20
04:21 petercom1and is now known as petercommand 04:38 chenryn left 04:44 kaare joined, kaare is now known as Guest49673 04:45 ggoebel11111110 joined 04:47 ggoebel1111119 left 05:09 chenryn joined 05:15 gfldex joined 05:16 chenryn left 05:22 ezra1 joined
masak m: my @array = <foo bar baz>; .say for @array :kv 05:28
camelia rakudo-moar 8b3e8c: OUTPUT«===SORRY!=== Error while compiling /tmp/XrrEwAP_Bq␤You can't adverb that␤at /tmp/XrrEwAP_Bq:1␤------> ray = <foo bar baz>; .say for @array :kv⏏<EOL>␤ expecting any of:␤ pair value␤»
masak m: my @array = <foo bar baz>; .say for @array[]:kv
camelia rakudo-moar 8b3e8c: OUTPUT«0␤foo␤1␤bar␤2␤baz␤»
masak b2gills: no need to write out the `keys @array`; can just leave the slice empty and you'll get all'uvit. 05:29
05:46 chenryn joined
vendethiel masak: have you seen my link earlier? actually, last night ~11pm 05:50
masak oh, the nephrite one? 05:51
vendethiel yes
masak yes, I skimmed through it.
vendethiel oke.
masak I was thoroughly confused by the test file, which I usually use to orient myself in a new module.
vendethiel have a nice day, #perl6 o/
masak it contained only a commented-out `is()` call. 05:52
and a lot of seemingly unrelated stuff.
conclusion: I don't know what this module does.
06:02 bartolin joined 06:08 leont joined 06:09 gfldex left 06:16 Hor|zon joined 06:21 Hor|zon left 06:41 nebuchad` is now known as nebuchadnezzar, leont left
dalek ast: 9cafef7 | usev6++ | S02-names-vars/names.t:
Add test for RT #116182
06:42
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116182
06:48 rurban joined
lizmat good *, #perl6! 06:50
06:50 zakharyas joined
lizmat decommute commences& 06:50
06:50 lizmat left 06:51 rindolf joined 06:53 woolfy left
masak and a good whatevs to you too, lizmat 06:53
06:56 jerrycheung joined
masak had not seen jnthn++'s github.com/jnthn/css-tiny-presentation before, but enjoyed it now 06:59
07:01 FROGGS joined, SamuraiJack joined 07:06 virtualsue joined
masak jnthn: I just tried using github.com/jnthn/perl6-reactive-sa...-commit.p6 -- it doesn't seem to react to changes, but it does make moar start using 199% CPU :/ 07:07
07:08 pepl joined
masak (on my machine) 07:08
I would have preferred the opposite: detect changes, not so much CPU :)
I thought the neat thing about this notification thing was that it wasn't so resource-heavy...
07:13 abraxxa joined 07:14 ptc_p6 joined
dalek ast: 1e08ea2 | usev6++ | S03-operators/misc.t:
Add test for RT #117045
07:21
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117045
07:21 rurban left 07:22 rurban joined 07:23 [TuxCM] left
TimToady_ home 07:23
07:24 TimToady_ is now known as TimToady
masak willkommen, bienvenu, welcome 07:24
07:24 ptc_p6 left
TimToady home too 07:24
07:25 ptc_p6 joined 07:26 cognome joined 07:27 [TuxCM] joined
moritz \o 07:27
07:29 azawawi joined, fhelmberger joined
sergot o/ 07:34
07:35 cognome_ joined, cognome left 07:37 _slade_ left 07:38 cognome joined, cognome_ left
FROGGS o/ 07:41
mephinet $work
azawawi hi everyone 07:42
is there is a source tidy tool for Perl 6 like Perl::Tidy for Perl 5? 07:43
tadzik nope
07:44 SamuraiJack left
timotimo o/ 07:46
azawawi interesting behavior...
perl6 -t makes you enter REPL :)
masak azawawi: we're still weak in the source processing department. paradoxically -- we should be really strong there, given Perl 6's and Rakudo's parsing prowess.
azawawi perl6 -t0 # to be exact... 07:47
masak: can STD.pm be now parsed by rakudo?
masak: i remember i worked a lot on STD.pm + syntax highlighting 07:48
masak azawawi: my guess would be "no", but don't take my word for it.
azawawi github.com/perl6/std/blob/master/s..._highlight # to be exact was my work along with moritz++ :) 07:52
07:53 Mouq left 07:54 denis_boyun joined
timotimo unfortunately all common syntax highlighting schemes use declarative style instead of actual code, so you're not getting terribly far with something that 07:55
masak right.
parsing Perl 6 is Perl 6-complete. 07:56
timotimo if you can ignore custom operators, you should be okay
07:56 ghostlines joined 07:57 pecastro left 07:58 denis_boyun left
azawawi if i understand correctly... there should be a sanity check after tidying code to make sure that the byte code is the same as before and we did not introduce a tidy source bug 07:58
07:58 denis_boyun joined 07:59 virtualsue left
azawawi clones STD.pm again 07:59
timotimo could do that, except compiling code is always a bit dangerous as we have BEGIN blocks and blocks for constants
azawawi true
timotimo on top of that, the bytecode contains references to cuuids, which contain the unix timestamp of when they were created 08:00
azawawi i see
timotimo STD, however, doesn't do that
azawawi so we need to compare the Q|J|AST... :)
moritz azawawi: also byte code contains line number annotations
azawawi the AST should be the same for a correctly tidied source, right? 08:01
moritz: hi :)
moritz hi azawawi
only if you discount annotations 08:02
also, we generate unique IDs for temporary symbols
08:03 kjs_ joined
timotimo the temporary symbols have non-random ids though 08:04
moritz currently.
timotimo and you may use the ast generated from stage ast rather than optimize 08:05
azawawi timotimo: i think the BEGIN and END blocks getting executed during are one of the things preventing Perl in general from being "safe" when parsing Perl code
08:05 ecocode joined
timotimo agreed, it's a thing i'm interested in having fixed, but i have no good ideas for actually *doing* the fixing 08:05
there ought to be a white list for stuff in begin/end blocks, though
moritz as well as all the implicit BEGIN blocks
like in 'use' and 'constant' 08:06
timotimo aye.
azawawi agreed
moritz m: my constant x = say 42; BEGIN exit
camelia rakudo-moar 8b3e8c: OUTPUT«42␤»
timotimo if you completely disregard precompiled modules and have some scheme that applies that kind of whitelist to all modules transitively ... that could work
(very slowly)
sort of how the grammar debugger and the regular debugger work, actually 08:07
azawawi moritz: why do we need BEGIN and END blocks in Perl 6 again? what was the reason?
moritz azawawi: language mallability 08:08
azawawi: if you want to 'use' a module that gives you operators or other syntax extensions (or just symbols you want declared, and must consider during the parsing), you need to be able to import them - at compile time 08:09
timotimo at least we have something nicer than BEGIN { @*INC.push: '...' } now :P
azawawi so basically no hope in achieving safety during a simple syntax check :)
timotimo that also means you call sub EXPORT if it exists
azawawi timotimo: it is cool but do we actually need it? 08:10
timotimo what exactly?
08:10 Hor|zon joined
azawawi timotimo: BEGINs and ENDs 08:10
timotimo not entirely sure
it'll be more interesting to do the imports at compile time properly 08:11
moritz there are a lot more cases though
for example type composition must happen at compile time
timotimo that's the same problem with having ide support for pretty much everything
moritz otherwise we couldn't do any type checking at compile time
timotimo .o( and we are supposed to have a COMPOSE phaser, too )
moritz which would be clear loss
also, times would have to be re-created at runtime
which is a huge performance penalty that we had in pre-nom days 08:12
timotimo types*
moritz right
azawawi runs ./viv ~/farabi6/lib/Farabi6.pm # and waits...
timotimo we'll want more advanced things like suggesting methods if we have a type annotation to work off of and stuff like that 08:14
and, of course, "jump to definition" will be a big feature
there's simpler transformations that you can do, like extract subs from sections of code 08:15
that wouldn't require total parsing + running 08:16
azawawi m: my $uri = "test "; $uri ~~= s/(\?.*)$//;
camelia ( no output )
azawawi m: my $uri = "test "; $uri ~~= s/(\?.*)$//; say $uri; 08:17
camelia rakudo-moar 8b3e8c: OUTPUT«test ␤»
azawawi std: my $uri = "test "; $uri ~~= s/(\?.*)$//; say $uri;
camelia std bd22b5c: OUTPUT«===SORRY!===␤Cannot make assignment out of ~~ because chaining operators are diffy at /tmp/ohH76IS2lm line 1:␤------> my $uri = "test "; $uri ~~=⏏ s/(\?.*)$//; say $uri;␤Check failed␤FAILED 00:01 144m␤»
azawawi interesting
08:17 Mso150 joined
azawawi std caught an error while rakudo didnt? 08:17
moritz yes, happens 08:18
timotimo i've wanted to start on a project to prototype some IDE-relevant tools, but it was quite daunting at that moment 08:19
08:20 Hor|zon left
azawawi so basically to achieve better syntax checking in farabi6, STD.pm viv should be used if possible otherwise fallback back to $*EXECUTABLE 08:20
timotimo if you're already going to run code anyway, the only bad thing that can happen if you use vanilla rakudo itself for checking stuff is that a begin block or something like that could end up infinilooping for you 08:21
azawawi one of the thing i noticed while working a lot in Java is that they designed their tools right
the compiler tools is a jar that any application can use
any application = IDE in the end ofcourse
08:21 Hor|zon joined
timotimo to be fair, you can just nqp::getcomp at the moment, or import :from<NQP> to get the Perl6::Compiler object 08:21
azawawi cool so i can access the REPL? 08:22
timotimo for example, yes
azawawi a week long question in progress :)
08:22 cognome left
timotimo :S 08:22
azawawi starts dancing 08:23
08:23 cognome joined
timotimo i think the IANA should start assigning hashtags so that something like the APW2014 thing doesn't happen again 08:24
at least the other APW2014 hashtag isn't completely drowning out our austrian perl workshop stuff
peteretep What was the other APW?
timotimo Anti-Poverty Week 08:26
peteretep ah 08:27
08:27 cognome left
tadzik I wonder how many hashtags are there that were only used once 08:28
like #oldmilkinmyfridge or so
timotimo i can't believe that's only been used once.
peteretep There used to be a term for google searches that returned exactly one hit 08:30
08:30 Mouq joined
tadzik I now see that I don't have any stupid hashtags in my twitter feed 08:30
08:30 kaare_ joined
tadzik that's a good thing :) 08:30
Timbus a googlewack
or googlewhack maybe
08:31 dakkar joined
peteretep hashwhack 08:32
that has a satisfying number of h's
08:34 Guest49673 left
masak tadzik: #veryfunnyspocknowbeamupmypantstoo 08:39
er, scotty*
tadzik :D
jnthn morning, #perl6 08:43
08:47 bjz joined 08:49 jack_rabbit left 08:51 anaeem1 left, anaeem1 joined 08:52 Mso150_h joined 08:53 Mso150 left 08:54 azawawi left 08:56 virtualsue joined
masak jnthn: I had some problems using your inter-commit.p6 in le backlog. 08:59
jnthn: I also found your css-tiny-presentation talk. jnthn++ 09:00
09:04 jerrycheung left, Mso150_h left 09:05 azawawi joined
azawawi masak: i watched it yesterday and it was really great... www.youtube.com/watch?v=6TcoCH1qJX8 09:06
jnthn++
i learned a couple of tricks from it :)
where is the Perl 6 book btw?
jnthn masak: It may well be behind with latest supply impl... 09:07
09:08 broquaint joined
tadzik azawawi: github/perl6/book 09:08
masak jnthn: maybe I can golf it to something small that obviously doesn't work... 09:09
jnthn masak: Maybe...otherwise just leave a ticket on the repo so I don't forget I've got it to look at ;)
09:11 Woodi_ left, Woodi joined
azawawi wonders how farabi6 storyboard can be integrated with the perl6 book 09:12
09:12 lue left 09:13 Hor|zon left
masak jnthn: github.com/jnthn/perl6-reactive-sa...s/issues/1 09:14
azawawi it would be interesting if we had a book in electronic format that can actually run itself through the farabi6 web interface... text + snippets 09:15
09:17 rmgk_ joined, rmgk is now known as Guest99146, Guest99146 left, rmgk_ is now known as rmgk 09:20 Hor|zon joined 09:23 Mouq left
moritz agreed 09:27
and it would even be interesting to have a book in the first place, one that's actively developed/maintained
09:30 azawawi left 09:35 pecastro joined 09:44 virtualsue left 09:45 kurahaupo joined 09:46 Hor|zon left 09:52 Hor|zon joined
grondilu Hello. No commit yesterday? What's up? 09:52
jnthn grondilu: No commit where, exactly? I'm sure I've seen some go by in the last 24 hours... :) 09:54
grondilu enjoys updating rakudo frequently and is always a bit disappointed when 'git pull' returns 'Already up-to-date.'
jnthn Ah :)
Well, I'd blame it on a large number of key contributors doing some mix of travel or enjoying their last Schnitzel pre-travel. :) 09:55
09:55 ecocode left, Mouq joined 09:57 ecocode joined 10:00 virtualsue joined 10:08 Mouq left 10:16 azawawi joined
moritz is pretty happy with the flame graphs nine_++ built into the profiler 10:16
azawawi github.com/azawawi/farabi6/issues/9 # Initial REPL... need to figure out how to catch stdout/stderr from comp.eval 10:17
10:17 darutoko joined
dalek ast: 245c598 | usev6++ | S02-types/bag.t:
Add test for RT #117915
10:22
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117915
bartolin grondilu: ha, a commit! (not for rakudo but for one of your tickets ;-)
10:26 jerrycheung joined
rurban We want to change parrot behaviour regarding illegal escape chars: github.com/parrot/parrot/issues/1103 10:39
Up until now illegal escape chars were silently changed, e.g. from \o to o
This leads to easier perl6 diagnostics with bad imcc quoting behavior 10:40
timotimo azawawi: IMO, you'll most probably do the repl with Proc::Async instead of having the repl directly in your web server process 10:41
rurban Should we keep the old behavior for a deprecation period, and just warn?
10:41 [particle] joined
timotimo no way to handle an infinilooping piece of code for example 10:41
moritz rurban: does rakudo compile and spectest cleanly if parrot barfs?
rurban I'll try. The underlying problem is a perl6 bug with .lex which is caused by a imcc quoting bug with .lex :) 10:44
10:45 kjs_ left
rurban By fixing the escaping rules the diagnose is much easier. You wont get name clashes with wrong quotings anymore. 10:45
10:46 kurahaupo left
FROGGS rurban: rakudo should never quote things that result in illegal escape sequences, for one because it uses parrot's escape method :o) 10:47
rurban See github.com/parrot/parrot/issues/1095 for the broken parrot escaping rules 10:48
moritz unless some code path forgets to call it
FROGGS jnthn: I implemented the multi-byte line separator in moar yesterday, though I did it differently than we decided :S
jnthn I hope by multi-byte you mean multi-char :P 10:49
FROGGS well, one thing might imply the other :o)
timotimo i thought it was all about "multiple line separators"
FROGGS jnthn: that means, I do not use \0 to join several seps, because \0 can happily be a valid separator
timotimo: both 10:50
timotimo OK
10:50 chenryn left
jnthn FROGGS: Point...of course we could reserve a negative for it. :) 10:50
FROGGS: What did you end up doing, anyways? 10:51
timotimo you know how in grocery stores you'd put a little separator between your items and the items of the person who comes after you?
FROGGS jnthn: well, right now I just have a MVMString** of seps, and walk their grapheme's and compare these to the given string or codepoint
timotimo how do you do that in a grocery-store-conveyor-belt-separator-store?
jnthn FROGGS: Do they get GC-marked appropriately, ooc? 10:52
FROGGS (string or codepoint because we have two code paths, one for actually splitting the lines and one for filling a buf until a sep is found)
jnthn: I bet not
moritz timotimo: by boxing and/or rotating the separators that you buy :-)
FROGGS jnthn: that's why I might have weird problems :o)
timotimo ah, rotation is an interesting way to do that
10:52 jerrycheung left
jnthn FROGGS: Quite possibly ;) 10:52
FROGGS jnthn: that's my code (quite WIP): gist.github.com/FROGGS/923b97f208ddb4fef181 10:54
line 23 of the diff might be off
10:55 huf_ is now known as huf 10:56 anaeem___ joined
FROGGS jnthn: I did it that way because I found it easier walking the codepoints/"graphemes" using such an grapheme iterator, then to pass char* around and perhaps Do The Wrong Thing 10:56
jnthn FROGGS: Well, we need it to be fast, and iterating the string every time won't quie cut it 10:58
FROGGS: You could make it cheap *and* avoid the GC bug by having an MVMCodepoint32 ** 10:59
10:59 anaeem1 left
jnthn FROGGS: That way you only need grab the graphemes out of the string once. 10:59
FROGGS okay...
jnthn FROGGS: And they're handily available.
Plus strings are always immutable so it it's safe :)
10:59 Mouq joined
FROGGS and that will work for graphemes as well? 10:59
jnthn uh, sorry
I *meant* MVMGrapheme32 :)
FROGGS ahh 11:00
:o)
jnthn 'cus we're dealing with the grapheme stream here...
timotimo but you still need to copy it out
FROGGS okay
yes
timotimo otherwise it may be freed at some point and you'll stumble over things
jnthn timotimo: Yes, that's exactly what I was poroposing
timotimo oh
of course
jnthn timotimo: Except it's not just "copy it out"
FROGGS I pass a string to nqp::setseparatorfh, and extracts its graphemes...
jnthn timotimo: Because you might be a weird situation where the seperator is two strands or so
11:01 anaeem___ left
timotimo ah 11:01
jnthn So the copying out needs an MVMGraphemeIter
FROGGS then we would handle the string case, but not yet the list case
jnthn Which is why to do it once :)
timotimo do we work with strands at all yet?
.o( and also, we're not handling ascii-only strings yet )
FROGGS I guess I need to invent a new op that will take a list_s
jnthn timotimo: Yes, remember the big string re-work I did a while back that sped up the concat benchmarks quite a way? ;)
11:01 anaeem1 joined
timotimo .o( and also i didn't write the code yet to have a single-grapheme string be cheaper than longer strings ) 11:01
11:01 [particle]1 joined 11:02 [particle] left 11:04 kjs_ joined 11:08 [particle]1 left 11:09 chenryn joined
timotimo jnthn: are we actually stashing the exact hash result value in a string's body? 11:10
and then using that reliably across the whole code base?
that'd probably be a much saner place to handle different types of strings to be hashed than looking at the type of string we have at the place we're actually interested in the hash
11:12 anaeem___ joined 11:14 anaeem___ left 11:15 anaeem1 left, anaeem1__ joined 11:16 Mouq left
dalek ast: d45a075 | usev6++ | S03-operators/set.t:
Add tests for RT #117997
11:16
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117997
11:17 camelia left
jnthn timotimo: Except the hash is calculated lazily on first need 11:23
timotimo right, but that requires us to sprinkle "what is this" checks and special behavior all over our codebase ... 11:24
i remember trying to do that once and that was not fun
11:24 camelia joined
timotimo well, i suppose we can do it eagerly for at the very least the single-grapheme-strings and perhaps also for the ascii-only strings 11:24
i should probably look at how exactly the current code handles strands vs flat strings
jnthn timotimo: No, it shouldn't require that with a decent design. 11:25
timotimo i'm not a good source for decent designs :))
11:25 ChanServ sets mode: +v camelia 11:27 sivteck joined 11:28 sivteck left
FROGGS timotimo: except when it is about explosions and chain reactions :o) 11:33
timotimo ah, extract key flattens the string in order to calculate the hash value 11:34
jnthn timotimo: Right, that bit is what I want to eventually kill of 11:35
*off
timotimo yeah
at least that makes it easy to add the single-grapheme-string-storage thing without breaking everything ... again 11:37
should probably also work with the 8bit grapheme list
we don't have that implemented yet, right? 11:38
oh, at the moment of hashing that, we're actually replacing the string's storage completely
so as soon as a string goes into a hash as a key, any given storage advantage we may have had ... gone 11:39
if we had a "generate hash cache" op instead that would just temporarily create a string to run the hash algorithm over instead of replacing the storage for all the rest of time ...
11:41 Mouq joined
jnthn timotimo: Well, I was planning deeper changes so we don't have to mutate anything at all, just compute the hash as if things were normalized. 11:43
timotimo that'd be perfect 11:44
jnthn No, because we don't know the keys up front. #awfulcompscipun
timotimo heh. 11:45
is there actually any way we could offer perfect hashing to a user?
masak timotimo: not in the general case, no way.
timotimo well, giving the player the ability to pregenerate a perfect hashing function based on a set of keys 11:46
is what i thought that meant
jnthn Given how easy it is to implement custom data structures that behave like the built-in ones, and given what masak said, then it sounds a great thing for module space. :)
timotimo mhm mhm
i want to compare how many strings get stored as non-Grapheme32-storage and how many get turned into Grapheme32 storage in order to get stashed into a hash 11:47
i know for a fact that we put all strings into a big hash at compile time to intern them and only emit a single copy of each hash in the bytecode file
11:51 kurahaupo joined
dalek ast: 9602762 | usev6++ | S0 (2 files):
Correct use of message in matcher hash in throws_like for 3 tests
11:54
timotimo blogs.plos.org/scied/files/2013/01/..._words.jpg - this is very cute 11:55
11:59 flaviusb left
masak just in case people were traveling or eating their last Wienerschnitzel yesterday -- comments warmly appreciated on strangelyconsistent.org/blog/macros...ing-macros 12:01
12:07 Hor|zon left 12:09 Ven joined
Ven .tell masak right. You kind of need to launch it to see the output for now 12:09
yoleaux Ven: I'll pass your message to masak.
Ven erm, I guess you're here, masak . 12:10
masak maybe.
yoleaux 12:09Z <Ven> masak: right. You kind of need to launch it to see the output for now
Ven masak: wow, 3 bloggages in a day! 12:11
masak Ven: in this case, after not getting any insight from either the README or the test file, I gave up -- deciding to ask you what the thing is.
Ven: so, what is it? :)
besides something that parses something indented, that is.
Ven masak: considering the name "doc-html", it's an HTML template engine :P.
haml-like (but actually it's jade, hence the "nephrite" pun) 12:12
masak: on your feedback blogpost, "to types of macro" (not sure if intended)
masak ah. fixing.
it's a direct quote, but I think I prefer to change it to be correct. 12:13
Ven I guessed it was :).
I'm still very much thinking about this... Not sure about how, even without macros, make a declarative ORM DSL 12:14
model Actor { also will have_columns(<foo bar baz>) } ?
masak Ven: in case you're wondering, I'll probably make a post about anaphoric macros (and other things I find in "50 years of Lisp")
Ven masak: nice. I'm glad you started your journey in that book :)
masak Ven: well, *some* of those DSLs can simply hook into the MOP, as jnthn++ has been famously doing of late. 12:15
I mean, if your DSL is enough like a class.
12:15 JimmyZ joined, Alula joined
Ven masak: yes, that's the point here 12:15
masak actors definitely are.
Ven If you tell me "every macro in that book, I have something in mind to do those in p6", I'll be very happy.
masak :)
Ven But of course, you start hitting the "keywords aren't composable lol" kind of problem
masak I think that would make pmurias happy, too.
Ven (pmurias's happiness)++ :P 12:16
masak I definitely want us to have a story for composability, on various levels.
Ven masak: yes, they can hook into the MOP, but you also need to make it look nice. jnthn++'s state machine with listed states and macro-checked state is something I consider to be "Very Good™"
(as in, I'm not sure we can offer *more* to the user) 12:17
(or *should* offer more – but that's the same point, having too much kruft is a disservice to the user anyways)
masak I'm sorry, I didn't get the "jnthn++'s state machine" reference.
are you referring to something I forgot, or simply don't know about? 12:18
jnthn If recent, the macro-checked cond vars
Ven masak: erm, I'm talking about his wait-state/emit-state I think
masak oh, ah.
Ven or was it wait-event?
yes, thanks jnthn
jnthn wait-condition and meet-condition iirc
masak I wasn't aware that was driven by macros <3
jnthn masak: See OO::Monitors.
masak does, with a quickness 12:19
jnthn It's my first actual use macros in a module :)
Ven grinned when he heard that there :P
jnthn *use of
masak oh wow. github.com/jnthn/oo-monitors/blob/...ors.pm#L79
masak so happy
Ven :P 12:20
masak ok, what's the most disruptive thing I can do today with macros *and* the MOP? I should've asked this question much sooner.
anyway, jnthn++!
Ven hahahah.
masak: your "is inside()" seems a bit... funny to me. I'm not sure those should ... "explicited" :) 12:21
CL macros mostly use macrolet to define (sub)lexical macros inside of some block (here, to declare commit or rollback inside of transaction, most probably) 12:22
masak feel free to write me a gist that shows what you mean. otherwise it's just words.
kthx 12:23
Ven masak: actually, it's just in 50 years of lisp :)
which is why I didn't start with a gist
npnp.
jnthn is always happy to push at the boundaries of what we can do in Perl 6. :) 12:24
masak will try to take the "bear with a very little brain" approach to the macro design/implementation
[Coke] finds that his wife had a chance to eat stroopwafel and did not!
jnthn o.O 12:25
Ven masak: I think I really can't explain it better than that book. And I don't think you'll need any kind of discussions with me once you've read it :) 12:26
12:26 notfix is now known as xfix
masak pretty sure I will still need discussions :) 12:26
Ven well, I hope for the best 12:28
[Coke] m: Int:erator$; 12:31
camelia rakudo-moar 8b3e8c: OUTPUT«===SORRY!=== Error while compiling /tmp/0vlprhYWVg␤Two terms in a row␤at /tmp/0vlprhYWVg:1␤------> Int:erator⏏$;␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ i…»
Ven m: @$$a # leont++ :P
camelia rakudo-moar 8b3e8c: OUTPUT«===SORRY!=== Error while compiling /tmp/EU0tT4HIZu␤Variable '$a' is not declared␤at /tmp/EU0tT4HIZu:1␤------> @$$a⏏ # leont++ :P␤»
Ven oooh, that's be unspecced already
[Coke] m: Int:erator:$; 12:33
camelia rakudo-moar 8b3e8c: OUTPUT«===SORRY!=== Error while compiling /tmp/uszt7h4uQW␤Missing semicolon.␤at /tmp/uszt7h4uQW:1␤------> Int:erator:$⏏;␤ expecting any of:␤ colon pair␤»
[Coke] ah, there we go. What do you mean, no semicolon?
12:34 Gruber is now known as Grrrr
masak that is an odd message, yes. 12:34
the semicolon is, like, "I'm right here!"
masak submits LTA rakudobug
[Coke] inspired by jnthn's css:tiny talk, no really.
jnthn std: Int:erator:$; 12:35
camelia std bd22b5c: OUTPUT«===SORRY!===␤Confused at /tmp/q8C2RbTAy2 line 1:␤------> Int:erator:$⏏;␤ expecting signature␤Undeclared name:␤ 'Int:erator' used at line 1␤Parse failed␤FAILED 00:01 140m␤»
12:40 azawawi left
Ven oO it thinks Int:erator is a valid name? 12:40
timotimo hm, like with foo:bar<baz>? 12:41
12:41 xenoterracide joined
Ven m: infix:<+> 12:41
std: infix<+>
sigh.
fair enough, it's valid in this position :) 12:42
12:44 bjz left, camelia left
masak people here who like types are likely to appreciate psnively.github.io/blog/2014/10/14/...-Ultimate/ 12:47
though it seems to be the middle of a debate rather than the start of it.
HN discussion: news.ycombinator.com/item?id=8457345
PerlJam masak: Just reading nesting macros ... "Grammars to it bottom-up" needs more "do" and less "to"
masak thanks 12:49
12:50 camelia joined 12:51 ChanServ sets mode: +v camelia
JimmyZ tl:dr :P 12:52
masak ok, noted.
"I didn't have time to write a shorter one." :)
JimmyZ 's english still is bad :( 12:53
timotimo that's because english is bad 12:54
masak JimmyZ: tl;dr: 博客文章谈到把一个macro在另一个macro。这就是一切。 12:55
12:55 anaeem1__ left
masak JimmyZ: 'I fully expect there to be a general framework through which macros could do this the "hard way" [...] What I'm proposing here is basically just sugar [...] to set up this [...] the "easy way"' 12:56
JimmyZ masak: I see a chinese version zh.wikipedia.org/wiki/%E6%9F%AF%E9%...C%E6%9E%84 12:57
about Curry-Howard
looks like something like parametric, am I right? 12:59
masak oh, that post.
JimmyZ: Curry-Howard asserts that there is a pretty deep link between the world of types and the world of logic.
13:00 Hor|zon joined
JimmyZ yeah 13:00
masak JimmyZ: more exactly, for every primitive one uses in logic, there's a corresponding one in types, and vice versa.
13:00 bjz joined
masak JimmyZ: pairs (A, B) in types correspond to logical conjunction A ∧ B in logic. 13:01
JimmyZ but a -> a in Curry-Howard makes me think of parametric
pmichaud good morning, #perl6
JimmyZ good moarning, pmichaud
masak pmichaud! \o/
jnthn o/ pmichaud 13:02
masak JimmyZ: function types A -> B in types correspond to implication A ⇒ B in logic.
JimmyZ: it's fascinating stuff, really.
13:03 Ven left
JimmyZ en.wikipedia.org/wiki/Haskell_Curry # I thought it's about haskell language ... 13:05
masak both names "Haskell" and "Curry-Howard" take their name from that guy, yes :)
13:07 chenryn left
JimmyZ oh, it is 13:07
13:11 FROGGS left
masak errand & 13:16
gtodd currying has nothing to do with food ... other than making you hungry 13:18
13:19 nwc10 joined
gtodd pmichaud: which blog are you using for your eventual ... updates, notices ... ermm GLR catechisms 13:20
13:20 nwc10 left 13:22 xinming left 13:23 xinming joined
masak pmthium.com/ , I guess. 13:23
rurban I got strange t/spec/S32-io/spurt.rakudo.parrot errors with 23, 25. Is this new?
gtodd masak: thanks ... 13:26
13:27 xenoterracide left
gtodd rurban: last week I got the warning "Please use IO::Path.spurt instead." in there somewhere 13:32
rurban: (started getting that warning) after some commits by lizmat ... oh wait I wasn't roasting with perl6-p parrot though 13:35
bartolin [Coke] reported those two failures for parrot as well (for about a week IIRC) 13:37
[Coke] SOMEONE WAS LISTENING! 13:45
those tests don't error on moar or jvm, just parrot. 13:46
2662e01 was the last clean r-p; 0730d44 was the first bad one. 13:48
that corresponds with roast de7eb2d and roast afbef95 13:49
13:49 erkan left 13:50 erkan joined
rurban What is the rakudo mailing list? [email@hidden.address] 13:57
[Coke] that's theoretically for talk about rakudo dev, yes; in reality, that mostly just happens here. 13:58
rurban ok
dalek ast: bcacc07 | rurban++ | S (2 files):
todo parrot tests: S32-io/spurt: 23,25. S05-mass/charsets: 8,9
13:59
ast: 69f5590 | (Will Coleda)++ | S (2 files):
Merge pull request #48 from rurban/master

todo parrot tests: S32-io/spurt: 23,25. S05-mass/charsets: 8,9
14:01 anaeem1 joined
[Coke] ^^ we could use RTs on those recent fudges, too, new bugadmin guy. :) 14:01
rurban yes, probably. 14:02
bartolin Oh NOES! (new bugadmin guy)
[Coke] muahahah
rurban I was not sure if it's a nqp or parrot problem with spurt 14:03
[Coke] rurban++ keeping parrot alive and kicking, bartolin++ cleaning up years of bug detritus.
rurban FROGGS++ for the same reasons
Where can I read about perl6 coro's? I want to change the documented behavior also 14:04
timotimo perl6 only really exposes coros via gather/take, i believe 14:06
jnthn Yeah, and gather/take is agnostic as to how it is implemented. 14:07
dalek ast: 85396dd | usev6++ | S09-hashes/objecthash.t:
Add test for RT #118037
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118037
jnthn It's done as del conts on r-m/r-j...
14:08 rindolf left
timotimo i wonder how take-rw will interact with the changes to GatherIter 14:09
jnthn While it ain't a concern for r-p, await will likely also end up using a similar mechanism. 14:10
masak bartolin++ # RT ticket decreaser guy
it's more fun to be the increaser guy when there's a decreaser around :>
14:13 anaeem1 left, anaeem1__ joined 14:14 molaf joined
gtodd ... gather the bugs and take them away to a better place ... 14:15
bartolin maybe we can make a deal: for every 5 old tickets I close someone with more perl6-fu comments on a ticket of my choice? ;-)
gtodd :-D 14:16
masak bartolin: sounds fair.
bartolin: please keep count, point out the ticket of your choice when it's time, and hold us to it.
PerlJam who decides what "more perl6-fu" means and who has it? :) 14:17
bartolin me decides!
gtodd cool :-) the irc channel logs will serve as an accounting system for this new "protocol"
masak wishes he could come up with similar accounting systems for [Coke]++ and moritz++, who sometimes highlight important things or request help in various ways 14:19
gtodd maybe you need a fu-bot (errm possibly a better name could be found)
;-)
masak truth is, at bottom it's all driven by people, and a combination of responsibility, enthusiasm, and compassion.
jnthn It's successor would be called the equally unfortunate fu2 bot :P 14:20
PerlJam gtodd++ nah, that's a good name. Very punny.
masak (what's known as "tuits")
we should figure out more in detail how that works, and harness it :)
jnthn: fu u 2! :P
gtodd does anyone have a sense when the REPL line issues RT #122914 14:21
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122914
gtodd started?
jnthn gtodd: No, though it's surprising we noticed it only recenlty... 14:22
PerlJam maybe it only recently broke
bartolin I can't tell; I only stumbled about it last week when testing something 14:23
14:25 ecocode left
gtodd (regarding "fu" we do have "Mu" and there maybe some linguistic or deep cultural "Ur-language" linkage there) 14:27
14:28 chenryn joined
[Coke] rant: RT treats pasted REPL output as quoted text. 14:29
PerlJam yeah, that's *so* annoying.
14:29 spider-mario joined, [particle] joined
PerlJam well ... the annoying part is that it hides what it thinks is quoted text 14:30
but if there were a way to turn that off, I would.
14:30 dwarring left
gtodd bartolin: it must be recentish ... I was trying code from one of the Advent cycles ... I'm pretty sure it worked a relatively short while back I *might* have pasted it differently ... (I collect gems from advent posts and polish them :-) ... sometimes there are explanations in the comments re: deprecations etc. when code doesn't work) 14:31
bartolin: the code worked when all on one line .... hmm there was something else that needed everything to be on one line in the REPL 14:32
bartolin I found this one: RT #78068 14:34
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=78068
14:37 abraxxa left
PerlJam Does the REPL do that for all backends? 14:38
bartolin kids need me, bbl 14:40
Woodi hi everyone :) 14:41
14:41 Mahmoud joined
masak Hoowdy, Woody 14:42
14:42 Mahmoud is now known as Guest44162
tadzik hey #perl6, what do you say we participate in www.google-melange.com/gci/events/google/gci2014 14:42
we have to apply on 27 Oct
gtodd oh ... when no strict was introduced you could only use it in the REPL if everything you wanted non-strict stayed on one line so probably not related
tadzik (or a wee bit later, but not too much)
14:42 Guest44162 left
[Coke] PerlJam: upper right hand corner just under history "show all quoted text". bet I can offer you 14:43
masak tadzik: I vote "Yes" :)
gtodd azawawi: that is different than GSoC correct?
tadzik yes
gtodd tadzik: I meant :-\
14:44 flaviusb joined
tadzik gtodd: it's for 13-17 people, tasks are smaller, rewards are smaller, pressure is smaller etc 14:44
and participants are great in both quality and quantity
Woodi this looks strange :) : say await $log.latest-entries(Error); # from jnthn OO::Actor 14:45
gtodd tadzik: fix extend the REPL would count ;-)
tadzik lessons learned from previous years: avoid translation tasks like a plague
Woodi what if promises will be more first class in future languages ? :)
tadzik gtodd: if it's easy enough :)
gtodd hehe
tadzik tasks tend to be very simple, students will sometimes do a dozen of them or more 14:46
moritz do we have very simple tasks in sufficient quantity?
14:46 djanatyn1 is now known as djanatyn
tadzik in module space I'm sure we do 14:46
14:46 chenryn left
tadzik documentation too 14:46
tutorials 14:47
14:47 atta joined
jnthn Not to mention making nice demo/example apps for some interesting modules... 14:48
tadzik yep
gtodd then there are people doing things in module space that require some some hook or code in nqp-[p,m,j]
tadzik we could draw some fresh blood
jnthn Indeed.
I'd be willing to come up with some tasks for it, if we can get in.
But would need others to come come up with some too. :)
gtodd macros! :-) 14:49
tadzik we should create a wiki or a gist or something 14:50
I suppose we'd need something to show google with our application, "here's how much we have to do, here's how many people can mentor it"
masak gtodd: we want to attract youngsters, not fry their brains. ;)
PerlJam gtodd: good idea! We should sprinkle in some "hard" problems just in case we run across a prodigy who will actually get it done.
gtodd :-D
tadzik i.imgur.com/c7NJRa2h.jpg
masak tadzik: :P 14:52
[Coke] belatedly, it's for 13-17 _year old_ people
14:53 chenryn joined 14:54 Mouq left 14:55 rindolf joined 14:57 chenryn left 14:59 Hor|zon left
masak .oO( "belatedly"? you'd rather recruit 9-year-olds!? ) :P 14:59
15:03 Hor|zon joined 15:06 anaeem1__ left 15:07 anaeem1 joined
pmichaud okay, I blogged: pmthium.com/2014/10/apw2014/ 15:07
comments, corrections, improvements welcomed
masak pmichaud++ # reading 15:10
timotimo is reading, too 15:11
JimmyZ pmichaud++ # reading too 15:13
timotimo !$PIO.eof - this was supposed to read $!PIO.eof, right?
er 15:14
!$! rather
pmichaud timotimo++ # fixing
masak pmichaud: s/Infact/In fact/ 15:16
moritz m: .say for [1, 2, 3].flat
camelia rakudo-moar 8b3e8c: OUTPUT«1␤2␤3␤»
timotimo oooooh 15:18
Your blog, Weekly changes in and around Perl 6, appears to be getting more traffic than usual!
masak spurt busted in Rakudo HEAD: gist.github.com/masak/72aaae65040419832daf
pmichaud masak++ # Infact it's now fixed.
masak submits rakudobug!
timotimo i probably should post the post-apw update; especially since i can now link to pm's summary post
masak if someone would care to verify locally, that'd be "great"
15:20 davido__ left
masak pmichaud: so far, my wish for a postfix op for .flat is so small as to be negligible. especially when both .for and (things like) .flat.map exist. there's something to be said for spelling things out. 15:20
15:20 Hor|zon left
JimmyZ wonders why .pick and pick xx, xx is different 15:20
15:21 davido__ joined
pmichaud masak: yes, I'm leaning that direction also. 15:23
moritz JimmyZ: if that was a question, I can't parse it :-)
masak pmichaud: loving the headings :)
pmichaud I think we should defer that until we see if programmers are getting tired of adding .flat all over the place. And I suspect that may not be so much.
JimmyZ (@a, @b, @c).pick(1) vs pick 1, @a, @b, @c
timotimo agreed, masak
b2gills masak: the `keys @array` isn't needed on P6 but *is* needed on P5, That is what I was showing
15:24 denis_boyun left
pmichaud JimmyZ: if they're to work the same, which interpretation would you want? 15:24
PerlJam (and how would I get the other?)
pmichaud well, I know how to get the other. :) 15:25
JimmyZ don't know, just curious :P
moritz without having been part of the discussion, I'd guess that the function form looks like p5, and behaves like p5
but if we make all forms flatten by default, there's not much point in preserving the structure at all
pmichaud JimmyZ: it's just the way things tend to work out. Everyone at APW2014 seemed to like that the .pick, .sort, etc didn't flatten their inputs. 15:26
PerlJam pmichaud: Yeah, but making him think about it might give an "aha!" moment :)
masak pmichaud: ss/programmers would rarely encounter<(ed)>//
moritz PerlJam: (@a, @b, @c).flat.pick, pick 1, (@a, @b, @c).lol # not sure about the last
pmichaud but when we started writing the functional forms of pick, sort, etc., people really thought flattening was more desirable
pick 1, $@a, $@b, $@c # would also work 15:27
and probably pick 1, lol @a, @b, @c should be made to work
15:27 ghostlines left
JimmyZ maybe Trade-off between consistency and inconsistency :P 15:27
PerlJam I have to say I'm just a little sad that Parcel is going away. (only a little ;)
moritz masak: spurt busting confirmed
masak moritz: thanks. 15:28
PerlJam: not I!
moritz had a great lunch with lizmat++, wendy++ and leont++ today
pmichaud masak++ # fixed another incorrect spelling encountered
JimmyZ oh
so lizmat got a meet with you eventually :P 15:29
moritz JimmyZ: yes, on her way home
timotimo there's also "is parcel"; is that going to get a new name? 15:32
pmichaud timotimo: I think perhaps that one could stay.
colomon just defined infix:<++> list concatenation for himself in a script, and the resulting code works and looks better. :) 15:33
15:33 rurban left
timotimo .u comma 15:33
yoleaux U+002C COMMA [Po] (,)
15:34 Mouq joined
timotimo what's the flipped comma called? where the little winky bit goes to the right instead of left? 15:34
pmichaud .u 2e41 15:36
yoleaux No characters found
arnsholt Inverted comma, probably
pmichaud .u u+2e41
yoleaux No characters found
pmichaud grrrr
colomon github.com/colomon/tune-index/blob...t-index.pl
pmichaud looks like unicode 7.0 defines "REVERSED COMMA" 15:37
www.fileformat.info/info/unicode/ch.../index.htm
15:38 njmurphy joined
pmichaud colomon: how does that avoid conflicting with postfix:<++>, ooc? 15:38
timotimo .o( just spaces? )
masak pmichaud: postfix and infix never conflict.
pmichaud: postfix needs no space or unspace. 15:39
as does postcircumfix.
pmichaud ummm.....
masak it's convenient to think of them as being in entirely different namespaces.
colomon my understanding matches masak's 15:40
PerlJam masak: sounded like you just said "magic" :)
masak pmichaud: hence `5\km`, not `5 km`
colomon note that the code there is working. :)
pmichaud I'm not sure about "never conflict"
masak no, they can't conflict.
they never candidate at the same time.
pmichaud r: sub postfix:<+>($a) { say 'hello'; }; say 1+2;
camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> stfix:<+>($a) { say 'hello'; }; say 1+⏏2;␤ expecting any of:␤ postfix␤ infix stopper…» 15:41
masak oh, ok :)
colomon r: sub postfix:<+>($a) { say 'hello'; }; say 1 + 2;
masak yeah, "never conflict" is clearly wrong.
camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«3␤»
pmichaud colomon: yes, thus you're relying on spaces for disambiguation.
masak they never conflict when the parser is in op position.
15:42 fhelmberger_ joined
pmichaud if defining infix:<++>, one would never be able to write "@a++@b" because postfix:<++> would conflict. But we probably don't want people writing "@a++@b". :-D 15:43
anyway, infix and postfix _can_ candidate at the same time. 15:44
colomon pmichaud: I wasn't necessarily proposing infix:<++> as something that should go into p6. I'm not even clear if there's a need for list concatenation post-GLR. I was just amused that the need for it cropped up in the code I was writing today. :)
JimmyZ finished reading 15:45
15:46 fhelmberger left
masak I found the error message that spurt emits. it's in Moar. github.com/MoarVM/MoarVM/blob/2565...file.c#L89 15:46
15:46 Hor|zon joined 15:47 fhelmberger_ left, amkrankruleuen joined
masak FROGGS++ has since made that error not happen: github.com/MoarVM/MoarVM/commit/03...6379049bee 15:47
so it's possible that the simplest way to unbreak spurt would be to make Rakudo depend on a newer Moar.
15:48 chenryn joined
gtodd JimmyZ: .pick versus pcik() in general (and this could be WAY WRONG) I started to think of perl6's .method calls as being syntactically "quicker" do exactly onlyl that version (so for .pick it woouldn't flatten unless you tell it first) and the function picik() variant as being more thorough 15:49
JimmyZ: but that's probably just me trying to find patterns in the clouds ... 15:50
15:50 Akagi201 joined 15:51 Hor|zon left
JimmyZ hope p6ers won't be surprised :P 15:51
timotimo introducing picik as well as pcik may confuse p6ers 15:52
masak pmichaud++ # pmthium.com/2014/10/apw2014/ 15:53
PerlJam timotimo: but we'll have to add picnic somehow.
15:54 pecastro left
timotimo interestingly, in the (or at least a part of the) community surrounding twitch.tv, saying "picnic" is the usual way to signal to the streamer that the stream has gone off-line unexpectedly 15:54
PerlJam pmichaud: btw, once the GLR is done, does that mean your grant will finally be done? (or was that closed long ago?) 15:57
JimmyZ good night, all 15:59
00:00 am here ...
15:59 JimmyZ left
timotimo i am here, too! 15:59
15:59 jorol joined 16:01 Hor|zon joined 16:03 Mouq left
pmichaud PerlJam: technically, my grant is done once I update S07. Which could happen independently of the GLR. :) 16:03
in fact, it's very likely I'll draft S07 before doing the coding work.
since doing so might point up other things we ought to consider 16:04
16:05 treehug88 joined
masak +1 16:05
gtodd as it stands (unfinished?) S07 was pretty boggling what with Parcels and Lists ... wheee :-) 16:07
pmichaud colomon: (list concatenation) I have an outstanding spec request to TimToady about how one can lazily concatenate lists: github.com/perl6/specs/issues/18 16:08
although I suspect List.concat isn't out of the question for that 16:09
anyway, lunchtime here -- bbiaw
thanks everyone for the comments/fixes with the APW2014 post 16:10
16:13 Mouq joined 16:15 virtualsue left
jdv79 That LGR writeup was fun to read. I guess once complexity gets to a certain point the "purity/cleanliness/idealism" has to drop a bit. 16:20
nine_ GLR done in just six weeks? Wow, that would be amazing. Thought that it would take much longer. 16:21
The only thing I'm not quite comfortable with is the difference between functions and methods WRT flattening. There's just no reason for the programmer to expect a difference there. 16:22
16:23 gfldex joined 16:24 _slade_ joined, grettis joined
colomon pmichaud++ # github.com/perl6/specs/issues/18 16:25
colomon thinks an operator would be good, too, but it's easy enough to make one if you have a sub or a method for it.
AFK # bells 16:28
PerlJam nine_: note that it's a "hope" that "most of the GLR" will be complete by turkey day. 16:29
16:33 guru joined, guru is now known as ajr_, pepl left 16:34 anocelot_ is now known as anocelot 16:36 zakharyas left 16:40 chenryn left 16:41 chenryn joined 16:45 Mso150 joined
masak (List.concat)++ 16:46
16:46 anaeem1 left 16:48 cognome joined 16:50 pmurias joined
gtodd does .plan do concat? 16:50
oh .plan is for Array 16:51
errm
pmurias if I want to store/view/search events generated by a whole page javascript app (angularjs), what's a good way? currently I'm sending them to google analytics (but I want an alternative that gives me instant access) 16:52
16:53 SamuraiJack joined 16:55 FROGGS joined
ChoHag In a word, or a short sentence at least, how is concurrency support in moar coming along? 16:56
I should hopefully have time to resume my perl 6 hackery soon.
16:56 dakkar left
FROGGS ChoHag: in short: very well, though we have to work more on stability soonish 16:57
16:57 FROGGS[mobile] joined
ChoHag Software development in a nutshell. 16:58
FROGGS[mobile] you should take a look at the latest slides from jnthn 17:00
17:00 dwarring joined, xinming left
FROGGS[mobile] jnthn.net/papers/2014​-apw-objects-...rrency.pdf 17:01
ChoHag Saw that linked on reddit. 17:02
17:02 rjbs joined
ChoHag I can't read slides. 17:02
rjbs reads the GLR notes. I think the flattening change will almost certainly ease some of my problems I'd had last time I was doing a bit of p6 puttering. 17:03
FROGGS[mobile] ChoHag: don't get me wrong, it is usable and very handy, though we just need to get our focus away from features
17:03 FROGGS left
itz_ pmichaud++ # brilliant explanation of GLR understandable even by the stupid 17:04
ChoHag Software development in a nutshell.
:)
FROGGS[mobile] *g*
rjbs itz_: not sure how to feel about that comment... ;)
I think it may be that my difficulties will be replaced with new ones. We'll see. 17:05
itz_ I meant even by dumb internals n00bs such as myself :)
17:05 anaeem1_ joined
rjbs (Behind my difficulties there let there be find my difficulties.) 17:05
17:06 anaeem1_ left, anaeem1 joined
pmichaud itz_: glad the explanation has helped :) 17:07
I'll be even gladder when we get to the "what was all that fuss about?" stage 17:08
FROGGS[mobile] I would not be surprised if Gloria actually wrote it :o)
17:09 SamuraiJack left, SamuraiJack joined
pmichaud yeah, I wonder if the post should've mentioned Gloria's excellent contributions. She was quite involved in the discussions as well. 17:10
FROGGS[mobile] nod 17:11
17:11 anaeem1 left 17:13 chenryn left 17:15 Hor|zon left 17:16 FROGGS joined
gtodd pmichaud: "that sinking feeling" :-) ++ 17:19
so as part of GLR .sink will become something like a "wantvoid" (? struggling for the right p5-ism here) and allow routines that need it to offer themselves up for some kind optimization ? 17:20
17:22 flaviusb left 17:25 danaj_ left 17:26 virtualsue joined
masak pmurias: (re saving events) -- have the root scope store them in an array, and expose the array somewhere? 17:30
17:30 Mouq left 17:31 Mouq joined 17:33 molaf left
pmurias masak: the part I have most doubts is what do I do with my events after I store them somewhere, and where should I store them 17:34
17:35 jorol left
pmurias is storing events one per line in a text file the state of the art? 17:36
nine_ pmurias: when it's JSON encoded I guess yes ;)
pmurias :/ 17:37
17:38 danaj_ joined
b2gills gtodd: The P5 expression for determining if you are in void context is `not defined wantarray` 17:47
17:47 _sri joined 17:53 psch joined, kjs_ left
psch hi #perl6 17:53
17:54 kjs_ joined
gtodd b2gills: yeah I thought perl6 had its own ways of determining context or just didn't :-) ... I didn't realize sink was used as often .Anyway if I'm understanding things correctly it seems that changes to how routines use sink context could offer speed gains or optimization of frequently used code 17:55
17:55 kjs_ left 17:56 ezra1 left
psch the fact that --stagestats can have an optional value is bothering me slightly, especially as S19#336 says whitespace is ok as separator for an option and its value. 17:56
pmichaud gtodd: .sink is the way you tell an object "you're being evaluated in sink context". It'll remain much the same. 17:57
TimToady but we'll optimize it away much of the time, hopefully
pmichaud what changes is that something like "sink foo()" will let foo() know that it's being run in sink context
psch from how stagestats is used i think there's some internal use-case for it having a value sometimes, but no other option has that, and S19 doesn't say that optional values should be
but then i distinctly remember moritz++ someone saying "take S19 with a grain of salt", so maybe implementors are to spec more precisely? 17:58
gtodd pmichaud: oh ... so then foo can do things with that info
psch s/someone//
pmichaud so, within the definition of foo, there can be something like "INSINK" or "WANTSINK" that lets foo know "hey, you're running in sink context"
TimToady going-to-the-store-want-anything? 17:59
TimToady should not post when he's coming down with a cold
hopefully it'll be as mild as Glo's was 18:00
gtodd presumably so folks can write code to do special things in that case and the builtin routines can do the same
pmichaud gtodd: exactly.
so, for example, a map() running in sink context knows it doesn't have to be lazy, and it doesn't have to build a list of return values. 18:01
TimToady and if your outer thing within a sub is already sensitive, you don't have to check it specifically; the optimization will be negotiated for you 18:04
even if it has to be negotiated at run time
gtodd nice ... the first time I saw the GLR described it was something about helping perl6 figure out how to make Lists not be lazy when not needed ... etc. 18:05
18:05 zakharyas joined
pmichaud really I think of GLR as improving performance and cleaning up the spec 18:06
dalek : f721d10 | moritz++ | docs/feather/script/update-syn:
[update-syn] avoid syntax error
TimToady yes, returning negotiators instead of lists is just one part of it
moritz pmichaud: ^^ this was the reason that perlcabal.org/syn/ didn't update 18:07
gtodd so more than one way of doing this will be found ... hehe. plus no Parcels for Christmas :-)
pmichaud moritz++ # thank you!
afk, meeting
dalek : 7bf192b | moritz++ | docs/feather/script/update-syn:
[update-syn] avoid "git pull"

git pull merges, and merges requires human interaction, which gets cron jobs stuck
18:09
moritz pmichaud: sorry that it took so long, I meant to look into that days ago
18:12 pmurias left 18:13 PZt left
dalek : 03f4cca | moritz++ | docs/feather/syn_index.html:
perlcabal.org/syn: move less relevant text to below the synopsis list
18:14
moritz and pmichaud++ # GLR blog post
cognome moritz, where does pmichaud blog? 18:17
cognome did not read the backlog, ... yet
18:18 retupmoc1 is now known as retupmoca
moritz cognome: pmthium.com/2014/10/apw2014/ 18:19
cognome moritz++, thx
18:30 mauke left 18:32 Mouq left, Mso150 left, timbunce joined 18:33 zakharyas left 18:34 Mso150 joined 18:35 mauke joined 18:36 Mouq joined 18:37 FROGGS[mobile] left 18:41 kjs_ joined 18:46 Hor|zon joined 18:48 mauke left 19:07 ilogger2 joined, ChanServ sets mode: +v ilogger2 19:10 ilbot3 joined 19:16 zakharyas joined 19:17 anaeem1_ joined, anaeem1_ left 19:18 anaeem1_ joined, anaeem1_ left, anaeem1_ joined 19:19 lizmat joined 19:23 denis_boyun joined 19:35 Mso150 joined
dalek ast: 502f2ca | usev6++ | S02-types/baghash.t:
Add test for RT #117773
19:37
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117773
19:41 mauke joined
dalek ast: ef1a317 | (David Warring [email@hidden.address] | S19-command-line-options/01-multiple-e.t:
remove tests for multiple '-e' arguments - no longer valid
19:43
19:47 Mso150 left, Mso150 joined 19:49 lue joined 19:56 PZt joined 20:02 zakharyas left 20:03 woolfy joined 20:04 jack_rabbit joined
FROGGS bartolin: the bare a will result in a named argument, where the quoted "a" will construct a pair and pass that 20:04
woolfy & lizmat++ are home after apw - we had a nice time and a good ride home with leont++ as excellent passenger - underway we had excellent lunch with moritz++ in his $work-town - happy happy
FROGGS bartolin: and methods like (like .new in this case) happily eat named (optional by default) arguments, which is to spec 20:05
woolfy: nice :o) 20:06
bartolin FROGGS: thanks for explaining
mauke waves to woolfy 20:07
vendethiel waves to mauke and woolfy :-)
bartolin FROGGS: do you think we need a test for that case (a happily eaten named argument)? I tend to close the ticket without a further test (but with adding this explanation)
FROGGS jnthn: I changed my line sep code to MVMGrapheme32 **, and it seems to work... though I need to handle latin1 and utf8 now, and do more testing... 20:08
jnthn: after that I'll put it in a branch for review
jnthn: (not necessary by you) 20:09
woolfy waves to cloud of nice people
colomon o/
virtualsue watches itz playing timotimo’s game
FROGGS bartolin: yes, this behaviour (aka "interface consistency") shall be tested
bartolin FROGGS: okay, will do that. 20:10
FROGGS bartolin++
bartolin: you're doing an awesome work
virtualsue apw was really good 20:11
bartolin FROGGS: thanks. as I mentioned the other day it helps me to get familiar with the language.
FROGGS bartolin: and it also helps us :o)
gnight all o/
bartolin (though I'm afraid, I have to slow down in the next days)
gnight FROGGS
woolfy virtualsue: the hackathon was also very productive, too bad you and itz could not stay the whole two days 20:12
sleep well FROGGS
virtualsue it would have been nice 20:13
woolfy virtualsue: indeed 20:14
Highlight for me as spectator was the "long" (ahum, understatement) discussion about parcels and the replacement / substitution for it and how to do it and what are the consequences. 20:16
Lots of people around the flipover, writing stuff on the paper, discussing it at length.
mauke massively multiplayer programming language design 20:17
woolfy Well, it felt sometimes like it was a Perl-version of Monty Python 20:18
's Philosopher's World Cup of soccer: www.youtube.com/watch?v=92vV3QGagck
But I am quite sure that this makes me blasphemous and insulting, so I immediately apologise for the comparison.
jnthn Wowza...a single naga jolokia really adds a flavor to a dish... 20:23
20:23 Mso150 left
jnthn pmichaud++ # both informative and entertaining write-up! 20:23
TimToady well, yeah, nj can run over a million scovilles... 20:25
20:25 pmurias joined
jnthn .tell FROGGS will be happy to review the patch 20:25
yoleaux jnthn: I'll pass your message to FROGGS.
dalek ast: 9186415 | usev6++ | S02-types/baghash.t:
Extend tests for RT #117773
20:27
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117773
20:27 ptc_p6 joined
pmurias is the list flattening behavior important or just a desire to retain a convenience we got used to in Perl 5? 20:31
TimToady yes
Juerd :)
20:31 ptc_p6 left 20:35 colomon joined
masak 'night, #perl6 20:36
pmurias night 20:37
vendethiel woolfy: it's quite something to see everybody with a deep knowledge say stuff about the language :P 20:38
somebody says something, you're thinking "oh that sounds nice" and then pmichaud++ has around 36 examples to debunk it :P 20:39
dalek ast: 4485db4 | usev6++ | S06-signature/defaults.t:
Add test for RT #118063
20:41
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118063
20:42 denis_boyun left
lizmat is sorta back but tired 20:42
pmichaud woolfy: I love the comparison with the philosophers' world cup. Although I think we were a bit more animated than they were. 20:47
colomon pmichaud: was all excited by your mention of "lazy while". But as far as I can tell, currently for is lazy in input but not lazy in output... 20:48
woolfy vendethiel: I did like that indeed, and I also tremendously likes Gloria commenting on things "from the sideline" and everybody looking surprised like "hey, she has a very valid point there"... 20:49
colomon has been deeply impressed by his conversations with Gloria, but had not the faintest idea she had an opinion on lists.
woolfy pmichaud: I have dozens of pictures that show that you were just a little bit more animated... :-)
pmichaud colomon: do you have an example? 20:50
woolfy: I'd like to get any photos you have like that. :) I've seen some of them on facebook, but if you have others/more I'd like them too :)
colomon pmichaud: gist.github.com/colomon/f2672ed9a2cbb6eecdd5
pmichaud colomon: interesting. But 'for' is allowed to work ahead unless it's told to be strictly lazy. 20:52
colomon m: gist.github.com/colomon/f2672ed9a2cbb6eecdd5
vendethiel woolfy: Gloria made the best comments! :D
camelia rakudo-moar 8b3e8c: OUTPUT«gist not found»
colomon pmichaud: how do you tell it to be strictly lazy?
pmichaud colomon: nyi in rakudo, but ultimately it'll be 20:53
lazy for 1..20 { ... }
colomon pmichaud: ah.
+1
pmichaud actually, it's also the range that is working ahead here
the 'for' statement asks the range for 1 element, and the range hands back 20 20:54
so another formulation could be for lazy 1..20 { ... }
TimToady yeah, that's one that I installed last year
woolfy pmichaud: lizmat and I made 1,400+ pictures of the whole event. I have them sorted already, but now picking the best ones... (plus cropping, resizing, uploading to my Flickr page, tagging, describing), that's a day's job.
colomon woolfy++
pmichaud woolfy: I'm fine with uncropped/resized :)
vendethiel woolfy: now tell me how many are of me :o) 20:55
(that you made just to annoy me)
TimToady she did them all to annoy you :P 20:56
vendethiel ...yes.
by the end of it, I had to seek refuge near pmichaud and jnthn :( 20:57
woolfy vendethiel: I think I have at least 200 pictures where you are visible (or the main subject, but mostly among other people)... :-)
pmichaud: I gave Denis a USB-stick with all the pictures that we took with the big Nikon. We still have to copy and process the pictures from our iPhones... 20:58
vendethiel you heard it a long time ago, folks. woolfy's a bully
20:59 cognome joined
TimToady yeah, she made me hug her :) 20:59
nine_ What terrible fate :)
woolfy is not a bull! You know, my species is know for eating bulls. Grawllll.... 21:00
Ow sorry TimToady, I never meant to hurt you, physically nor traumatically....
jnthn is glad to see woolfy and lizmat made it home safely. :) 21:02
lizmat yeah, the road was long, but we had a nice break in the middle
jnthn :)
21:03 Hor|zon joined
pmichaud lizmat: hope you get some rest and feeling better. 21:03
lizmat the feeling better is already happening :-)
pmichaud +1 21:04
21:07 Hor|zon left 21:10 leont joined 21:13 colomon left 21:22 pierrot joined
dalek ast: 82b0065 | usev6++ | S03-operators/assign.t:
Add test for RT #118075, remove 5 duplicate tests, cosmetics
21:26
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118075
21:27 BenGoldberg joined 21:29 cognome left 21:30 cognome joined 21:34 cognome left 21:35 colomon joined 21:38 pierrot left 21:40 pierrot joined
dalek nda: c1fd655 | jnthn++ | bootstrap.pl:
Fix Win32 detection on latest Rakudo.
21:47
lizmat jnthn: Distro actually as an "is-win" attribute 21:50
*has
which is actually defined as: $!is-win = so $!name eq any <mswin32 mingw msys cygwin>; 21:51
21:58 Mouq joined
raydiak good afternoon, #perl6 21:58
lizmat raydiak o/ 22:01
22:03 Hor|zon joined 22:09 Hor|zon left
dalek kudo/nom: af95ace | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
Add support for "from" and "removed" version

Unfortunately, due to some settings order issues with regards to Version and v-strings, versions will need to be specified as strings in the setting, rather than as Versions.
This does not adapt the "is DEPRECATED" trait yet.
22:09
22:10 Alina-malina joined
lizmat sleep& 22:18
raydiak good night lizmat 22:19
timotimo oh hello raydiak 22:23
long time no read :)
raydiak I am having a hard time figuring out how to go about writing a basic algebra grammar 22:24
oh hi timotimo :)
timotimo algebra as in mathematical expressions?
raydiak right
gave it a shot a couple weeks ago or something
but the way I tried to do it doesn't work with one-pass parsing I don't think, just ended up with infinite loops and stuff in my grammar
timotimo left-recursion makes perl6 grammars unhappy 22:25
raydiak yeah I tried changing my rules to recognize whole op chains instead of recursing, but my approach is still fundamentally wrong, I'm just a bit not sure how to go about it
timotimo have you looked at rosettacode for a shunting yard algorithm for parsing mathematical expressions with precedence? 22:26
raydiak I am now :) never heard of a shunting yard algorithm
timotimo i probably botched the spelling
rosettacode.org/wiki/Parsing/Shunti..._algorithm 22:27
raydiak ah I see 22:28
22:28 anaeem1_ left
timotimo it's kind of counter-intuitive. perl6 grammars are supposedly very powerful, but something "as simple as mathematical expressions" isn't easily done with it 22:29
raydiak yeah I noticed trying to make it do it the way my brain was doing it wasn't working very well
timotimo yeah
raydiak I feel like it's one of those "infinitely powerful if you can squeeze your head through a counter-intuitive transformation" kind of things 22:30
jercos never quite learned how to handle infix expressions mentally 22:31
raydiak wonders if there's not a layer of higher-level shiny awesome waiting to be built on top of P6 grammars
jercos it's obvious how "4 * 2 + 7" fits together, but applying general rules to large equasions causes trouble :|
thus why I just work in RPN when I can. Or use lots of parenthesis. 22:32
timotimo if you put all parens everywhere, it's fine 22:33
arnsholt timotimo: The problem with infix notation and grammars is that you need to teach it about precedence
And precedence really is quite annoying
timotimo yes. 22:34
BenGoldberg The other tricky part of algebraic notation is that when you have two terms adjacent to one another, there's an implicit multiplication.
timotimo i'll head off to bed 22:36
itz_: it'd be great if you gave me feedback about the game; and feel free to hack on the source as much as you want! :)
22:36 Mouq left
timotimo i shall refactor it to become a bit less gnarly 22:36
one big thing is that the enemies should really be hittable even when they are rotated 22:37
itz_: if you want to fix that exact thing; there's currently a check to figure out which wing got hit which just subtracts the position of bullet and enemy and figures out if it's negative or positive. it should instead take the .polar[1] (angle) and compare that to the enemy's velocity's polar angle 22:38
or something like that
o/
raydiak my main grammar problem is how to write "an expression can be a value or a series of operations on further values or expressions" without recursing infintely into "expression" 22:39
g'night timotimo, hope you get some good rest
22:41 colomon left
arnsholt raydiak: If you don't care about operator precedence, it's pretty straightforward 22:42
But if you care about precedence, it's actually a moderatly tricky problem
The NQP grammar handles it by having a hand-written operator precedence parser. It doesn't use the grammars for operators 22:43
raydiak arnsholt: I do care in the end of course, but I'd settle for understanding this part for now
how would I go about it, ignoring the glaring precedence disability?
arnsholt Something like atom -> number | '(' expression ')'; expression -> atom+ % operator 22:45
raydiak oh maybe I figured it out...handling the whole chain of infix ops w/o recursion made it easier
arnsholt Yeah, just make it a flat tree
raydiak cool, got it...thanks
arnsholt There are techniques that let you handle precedence in this kind of setting, but basically you need a special grammar rule for each level of the precedence hierarchy 22:46
So for example yacc also has special facilities to let you do operator precedence with less grunt-work 22:47
raydiak or I could have my grammar call an action on the infix chain part that processes it w/a regular sub or something?
arnsholt Yeah, that should work
You can shunting-yard the flat tree from the grammar rule, probably 22:48
raydiak alright, I think I'm un-stuck...thanks arnsholt++ and others! 22:51
22:55 pmurias left 23:16 ezra1 joined, ivanshmakov joined 23:22 Mouq joined 23:24 Hor|zon joined 23:30 Hor|zon left 23:33 mmcleric joined 23:45 ezra1 left 23:52 lue left 23:54 colomon joined 23:56 aborazmeh joined 23:57 ezra1 joined, ezra1 left 23:59 ezra1 joined