Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:13 Hor|zon joined #perl6
00:17 * TimToady et al. now at SEA, waiting to go to SFO
00:17 yoleaux 14 Oct 2014 08:54Z <psch> TimToady: http://irclog.perlgeek.de/perl6/2014-10-13#i_9499127 might have been http://irclog.perlgeek.de/perl6/2014-08-15#i_9188841
00:18 timotimo TimToady: glad to hear your first flight portion went well
00:19 xenoterracide__ joined #perl6
00:19 TimToady 1st two, actually, we did MUC -> AMS -> SEA
00:19 timotimo ah. well, portion doesn't necessarily mean "smallest atomic portion" :)
00:20 timotimo .o( as suggestive "suggested" serving sizes suggest )
00:20 TimToady treu
00:20 timotimo i was able to annoy ven by saying "on deh twah"
00:21 timotimo vendethiel: it seems like karma swung back around and got me a little laceration on my knee :\
00:21 timotimo now i'm actually sorry for being annoying and mean sometimes^Wmost of the time
00:24 timotimo 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:32 b2gills kv slicing in Perl5: $ perl-5.20.0 -E' my @a = "a".."d"; say %a[0..3] ' # 0a1b2c3d
00:32 b2gills or more clearly as: perl-5.20.0 -Mfeature=postderef -E' my @a = "a".."d"; say @a->%[0..3]' # 0a1b2c3d
00:32 timotimo can you explain how that works exactly?
00:33 timotimo oh, just slicing an array with a % sigil gives you a hash, so to speak
00:34 timotimo 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 timotimo basically the equivalent of these:
00:34 timotimo m: my @a = "a".."d"; for @a.kv -> $k, $v { say "k: $k, v: $v" } # 1
00:34 camelia rakudo-moar 8b3e8c: OUTPUT«k: 0, v: a␤k: 1, v: b␤k: 2, v: c␤k: 3, v: d␤»
00:34 timotimo m: my @a = "a".."d"; for @a.kv -> $thing { say "thing: $thing" } # 1
00:35 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.
00:35 BenGoldberg s/# 1/# 2/; # ?
00:35 timotimo exactly
00:36 _slade_ joined #perl6
00:59 molaf joined #perl6
01:01 woolfy joined #perl6
01:12 Mso150 joined #perl6
01:30 mathw_ joined #perl6
01:30 brother joined #perl6
01:31 oetiker_ joined #perl6
01:31 integral_ joined #perl6
01:32 nebuchad` joined #perl6
01:32 yogan_ joined #perl6
01:33 oskie joined #perl6
01:34 timotimo joined #perl6
01:36 xenoterracide__ joined #perl6
01:38 Mso150 joined #perl6
01:40 Gruber joined #perl6
01:40 oskie_ joined #perl6
01:41 [TuxCM] joined #perl6
01:41 TimToady_ joined #perl6
01:45 petercom1and joined #perl6
01:45 huf_ joined #perl6
01:45 djanatyn1 joined #perl6
01:45 anocelot_ joined #perl6
01:45 muraiki joined #perl6
01:45 slavik joined #perl6
01:45 danaj_ joined #perl6
01:45 b2gills joined #perl6
01:49 kurahaupo joined #perl6
01:52 geekosaur joined #perl6
01:54 geekosaur joined #perl6
01:57 odc joined #perl6
01:58 kurahaupo joined #perl6
02:00 oetiker_ joined #perl6
02:14 Hor|zon joined #perl6
02:42 chenryn joined #perl6
02:48 noganex_ joined #perl6
03:01 davido__ joined #perl6
03:13 _slade_ joined #perl6
03:15 dayangkun joined #perl6
03:19 mauke_ joined #perl6
03:25 pdcawley joined #perl6
03:48 chenryn joined #perl6
03:56 camelia joined #perl6
03:56 flaviusb joined #perl6
04:04 Woodi_ joined #perl6
04:07 anaeem1 joined #perl6
04:11 b2gills For one thing you can't iterate 2 at a time in Perl5
04:15 Hor|zon joined #perl6
04:20 b2gills P5: `%array[keys @array]` === P5: `@array->%[keys @array]` === P6: `@array[keys @array] :kv`
04:44 kaare joined #perl6
04:45 ggoebel11111110 joined #perl6
05:09 chenryn joined #perl6
05:15 gfldex joined #perl6
05:22 ezra1 joined #perl6
05:28 masak m: my @array = <foo bar baz>; .say for @array :kv
05:28 camelia rakudo-moar 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/XrrEwAP_Bqâ�¤You can't adverb thatâ�¤at /tmp/XrrEwAP_Bq:1â�¤------> [32mray = <foo bar baz>; .say for @array :kv[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        pair valueâ�¤Â»
05:28 masak m: my @array = <foo bar baz>; .say for @array[]:kv
05:28 camelia rakudo-moar 8b3e8c: OUTPUT«0␤foo␤1␤bar␤2␤baz␤»
05:29 masak b2gills: no need to write out the `keys @array`; can just leave the slice empty and you'll get all'uvit.
05:46 chenryn joined #perl6
05:50 vendethiel masak: have you seen my link earlier? actually, last night ~11pm
05:51 masak oh, the nephrite one?
05:51 vendethiel yes
05:51 masak yes, I skimmed through it.
05:51 vendethiel oke.
05:51 masak I was thoroughly confused by the test file, which I usually use to orient myself in a new module.
05:51 vendethiel have a nice day, #perl6 o/
05:52 masak it contained only a commented-out `is()` call.
05:52 masak and a lot of seemingly unrelated stuff.
05:52 masak conclusion: I don't know what this module does.
06:02 bartolin joined #perl6
06:08 leont joined #perl6
06:16 Hor|zon joined #perl6
06:42 dalek roast: 9cafef7 | usev6++ | S02-names-vars/names.t:
06:42 dalek roast: Add test for RT #116182
06:42 dalek roast: review: https://github.com/perl6/roast/commit/9cafef7ce7
06:42 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116182
06:48 rurban joined #perl6
06:50 lizmat good *, #perl6!
06:50 zakharyas joined #perl6
06:50 lizmat decommute commences&
06:51 rindolf joined #perl6
06:53 woolfy left #perl6
06:53 masak and a good whatevs to you too, lizmat
06:56 jerrycheung joined #perl6
06:59 * masak had not seen jnthn++'s https://github.com/jnthn/css-tiny-presentation before, but enjoyed it now
07:01 FROGGS joined #perl6
07:01 SamuraiJack joined #perl6
07:06 virtualsue joined #perl6
07:07 masak jnthn: I just tried using https://github.com/jnthn/perl6-reactive-samples/blob/master/inter-commit/inter-commit.p6 -- it doesn't seem to react to changes, but it does make moar start using 199% CPU :/
07:08 pepl joined #perl6
07:08 masak (on my machine)
07:08 masak I would have preferred the opposite: detect changes, not so much CPU :)
07:08 masak I thought the neat thing about this notification thing was that it wasn't so resource-heavy...
07:13 abraxxa joined #perl6
07:14 ptc_p6 joined #perl6
07:21 dalek roast: 1e08ea2 | usev6++ | S03-operators/misc.t:
07:21 dalek roast: Add test for RT #117045
07:21 dalek roast: review: https://github.com/perl6/roast/commit/1e08ea21cc
07:21 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=117045
07:22 rurban joined #perl6
07:23 * TimToady_ home
07:24 masak willkommen, bienvenu, welcome
07:24 * TimToady home too
07:25 ptc_p6 joined #perl6
07:26 cognome joined #perl6
07:27 [TuxCM] joined #perl6
07:27 moritz \o
07:29 azawawi joined #perl6
07:29 fhelmberger joined #perl6
07:34 sergot o/
07:35 cognome_ joined #perl6
07:38 cognome joined #perl6
07:41 FROGGS o/
07:41 mephinet $work
07:42 azawawi hi everyone
07:43 azawawi is there is a source tidy tool for Perl 6 like Perl::Tidy for Perl 5?
07:43 tadzik nope
07:46 timotimo o/
07:46 azawawi interesting behavior...
07:46 azawawi perl6 -t makes you enter REPL :)
07:46 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.
07:47 azawawi perl6 -t0 # to be exact...
07:47 azawawi masak: can STD.pm be now parsed by rakudo?
07:48 azawawi 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.
07:52 azawawi https://github.com/perl6/std/blob/master/std_hilite/STD_syntax_highlight  # to be exact was my work along with moritz++ :)
07:54 denis_boyun joined #perl6
07:55 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.
07:56 masak parsing Perl 6 is Perl 6-complete.
07:56 timotimo if you can ignore custom operators, you should be okay
07:56 ghostlines joined #perl6
07:58 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 denis_boyun joined #perl6
07:59 * 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
07:59 azawawi true
08:00 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
08:00 timotimo STD, however, doesn't do that
08:00 azawawi so we need to compare the Q|J|AST... :)
08:00 moritz azawawi: also byte code contains line number annotations
08:01 azawawi the AST should be the same for a correctly tidied source, right?
08:01 azawawi moritz: hi :)
08:01 moritz hi azawawi
08:02 moritz only if you discount annotations
08:02 moritz also, we generate unique IDs for temporary symbols
08:03 kjs_ joined #perl6
08:04 timotimo the temporary symbols have non-random ids though
08:04 moritz currently.
08:05 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 #perl6
08:05 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 timotimo there ought to be a white list for stuff in begin/end blocks, though
08:05 moritz as well as all the implicit BEGIN blocks
08:06 moritz like in 'use' and 'constant'
08:06 timotimo aye.
08:06 azawawi agreed
08:06 moritz m: my constant x = say 42; BEGIN exit
08:06 camelia rakudo-moar 8b3e8c: OUTPUT«42␤»
08:06 timotimo if you completely disregard precompiled modules and have some scheme that applies that kind of whitelist to all modules transitively ... that could work
08:06 timotimo (very slowly)
08:07 timotimo 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?
08:08 moritz azawawi: language mallability
08:09 moritz 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
08:09 azawawi so basically no hope in achieving safety during a simple syntax check :)
08:09 timotimo that also means you call sub EXPORT if it exists
08:10 azawawi timotimo: it is cool but do we actually need it?
08:10 timotimo what exactly?
08:10 Hor|zon joined #perl6
08:10 azawawi timotimo: BEGINs and ENDs
08:10 timotimo not entirely sure
08:11 timotimo it'll be more interesting to do the imports at compile time properly
08:11 moritz there are a lot more cases though
08:11 moritz for example type composition must happen at compile time
08:11 timotimo that's the same problem with having ide support for pretty much everything
08:11 moritz otherwise we couldn't do any type checking at compile time
08:11 timotimo .o( and we are supposed to have a COMPOSE phaser, too )
08:11 moritz which would be clear loss
08:11 moritz also, times would have to be re-created at runtime
08:12 moritz which is a huge performance penalty that we had in pre-nom days
08:12 timotimo types*
08:12 moritz right
08:12 * azawawi runs ./viv ~/farabi6/lib/Farabi6.pm # and waits...
08:14 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 timotimo and, of course, "jump to definition" will be a big feature
08:15 timotimo there's simpler transformations that you can do, like extract subs from sections of code
08:16 timotimo that wouldn't require total parsing + running
08:16 azawawi m: my $uri = "test   "; $uri ~~= s/(\?.*)$//;
08:16 camelia rakudo-moar 8b3e8c: ( no output )
08:17 azawawi m: my $uri = "test   "; $uri ~~= s/(\?.*)$//; say $uri;
08:17 camelia rakudo-moar 8b3e8c: OUTPUT«test   ␤»
08:17 azawawi std: my $uri = "test   "; $uri ~~= s/(\?.*)$//; say $uri;
08:17 camelia std bd22b5c: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Cannot make assignment out of ~~ because chaining operators are diffy at /tmp/ohH76IS2lm line 1:â�¤------> [32mmy $uri = "test   "; $uri ~~=[33mâ��[31m s/(\?.*)$//; say $uri;[0mâ�¤Check failedâ�¤FAILED 00:01 144mâ�¤Â»
08:17 azawawi interesting
08:17 Mso150 joined #perl6
08:17 azawawi std caught an error while rakudo didnt?
08:18 moritz yes, happens
08:19 timotimo i've wanted to start on a project to prototype some IDE-relevant tools, but it was quite daunting at that moment
08:20 azawawi so basically to achieve better syntax checking in farabi6, STD.pm viv should be used if possible otherwise fallback back to $*EXECUTABLE
08:21 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
08:21 azawawi the compiler tools is a jar that any application can use
08:21 azawawi any application = IDE in the end ofcourse
08:21 Hor|zon joined #perl6
08:21 timotimo to be fair, you can just nqp::getcomp at the moment, or import :from<NQP> to get the Perl6::Compiler object
08:22 azawawi cool so i can access the REPL?
08:22 timotimo for example, yes
08:22 * azawawi a week long question in progress :)
08:22 timotimo :S
08:23 * azawawi starts dancing
08:23 cognome joined #perl6
08:24 timotimo i think the IANA should start assigning hashtags so that something like the APW2014 thing doesn't happen again
08:24 timotimo at least the other APW2014 hashtag isn't completely drowning out our austrian perl workshop stuff
08:24 peteretep What was the other APW?
08:26 timotimo Anti-Poverty Week
08:27 peteretep ah
08:27 tadzik I wonder how many hashtags are there that were only used once
08:28 tadzik like #oldmilkinmyfridge or so
08:28 timotimo i can't believe that's only been used once.
08:30 peteretep There used to be a term for google searches that returned exactly one hit
08:30 Mouq joined #perl6
08:30 tadzik I now see that I don't have any stupid hashtags in my twitter feed
08:30 kaare_ joined #perl6
08:30 tadzik that's a good thing :)
08:30 Timbus a googlewack
08:30 Timbus or googlewhack maybe
08:31 dakkar joined #perl6
08:32 peteretep hashwhack
08:32 peteretep that has a satisfying number of h's
08:39 masak tadzik: #veryfunnyspocknowbeamupmypantstoo
08:39 masak er, scotty*
08:39 tadzik :D
08:42 jnthn morning, #perl6
08:47 bjz joined #perl6
08:51 anaeem1 joined #perl6
08:52 Mso150_h joined #perl6
08:56 virtualsue joined #perl6
08:59 masak jnthn: I had some problems using your inter-commit.p6 in le backlog.
09:00 masak jnthn: I also found your css-tiny-presentation talk. jnthn++
09:05 azawawi joined #perl6
09:06 azawawi masak: i watched it yesterday and it was really great... http://www.youtube.com/watch?v=6TcoCH1qJX8
09:06 azawawi jnthn++
09:06 azawawi i learned a couple of tricks from it :)
09:06 azawawi where is the Perl 6 book btw?
09:07 jnthn masak: It may well be behind with latest supply impl...
09:08 broquaint joined #perl6
09:08 tadzik azawawi: github/perl6/book
09:09 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 joined #perl6
09:12 * azawawi wonders how farabi6 storyboard can be integrated with the perl6 book
09:14 masak jnthn: https://github.com/jnthn/perl6-reactive-samples/issues/1
09:15 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:17 rmgk_ joined #perl6
09:20 Hor|zon joined #perl6
09:26 moritz agreed
09:27 moritz and it would even be interesting to have a book in the first place, one that's actively developed/maintained
09:35 pecastro joined #perl6
09:45 kurahaupo joined #perl6
09:52 Hor|zon joined #perl6
09:52 grondilu Hello.  No commit yesterday?  What's up?
09:54 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.'
09:54 jnthn Ah :)
09:55 jnthn 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 Mouq joined #perl6
09:57 ecocode joined #perl6
10:00 virtualsue joined #perl6
10:16 azawawi joined #perl6
10:16 * moritz is pretty happy with the flame graphs nine_++ built into the profiler
10:16 azawawi https://github.com/azawawi/farabi6/issues/9   # Initial REPL... need to figure out how to catch stdout/stderr from comp.eval
10:17 darutoko joined #perl6
10:22 dalek roast: 245c598 | usev6++ | S02-types/bag.t:
10:22 dalek roast: Add test for RT #117915
10:22 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=117915
10:22 dalek roast: review: https://github.com/perl6/roast/commit/245c5988e7
10:22 bartolin grondilu: ha, a commit! (not for rakudo but for one of your tickets ;-)
10:26 jerrycheung joined #perl6
10:39 rurban We want to change parrot behaviour regarding illegal escape chars: https://github.com/parrot/parrot/issues/1103
10:39 rurban Up until now illegal escape chars were silently changed, e.g. from \o to o
10:40 rurban This leads to easier perl6 diagnostics with bad imcc quoting behavior
10:41 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 #perl6
10:41 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?
10:44 rurban I'll try. The underlying problem is a perl6 bug with .lex which is caused by a imcc quoting bug with .lex :)
10:45 rurban By fixing the escaping rules the diagnose is much easier. You wont get name clashes with wrong quotings anymore.
10:47 FROGGS rurban: rakudo should never quote things that result in illegal escape sequences, for one because it uses parrot's escape method :o)
10:48 rurban See https://github.com/parrot/parrot/issues/1095 for the broken parrot escaping rules
10:48 moritz unless some code path forgets to call it
10:48 FROGGS jnthn: I implemented the multi-byte line separator in moar yesterday, though I did it differently than we decided :S
10:49 jnthn I hope by multi-byte you mean multi-char :P
10:49 FROGGS well, one thing might imply the other :o)
10:49 timotimo i thought it was all about "multiple line separators"
10:49 FROGGS jnthn: that means, I do not use \0 to join several seps, because \0 can happily be a valid separator
10:50 FROGGS timotimo: both
10:50 timotimo OK
10:50 jnthn FROGGS: Point...of course we could reserve a negative for it. :)
10:50 jnthn 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?
10:51 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
10:51 timotimo how do you do that in a grocery-store-conveyor-belt-separator-store?
10:52 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)
10:52 FROGGS jnthn: I bet not
10:52 moritz timotimo: by boxing and/or rotating the separators that you buy :-)
10:52 FROGGS jnthn: that's why I might have weird problems :o)
10:52 timotimo ah, rotation is an interesting way to do that
10:52 jnthn FROGGS: Quite possibly ;)
10:54 FROGGS jnthn: that's my code (quite WIP): https://gist.github.com/FROGGS/923b97f208ddb4fef181
10:54 FROGGS line 23 of the diff might be off
10:56 anaeem___ joined #perl6
10:56 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:58 jnthn FROGGS: Well, we need it to be fast, and iterating the string every time won't quie cut it
10:59 jnthn FROGGS: You could make it cheap *and* avoid the GC bug by having an MVMCodepoint32 **
10:59 jnthn FROGGS: That way you only need grab the graphemes out of the string once.
10:59 FROGGS okay...
10:59 jnthn FROGGS: And they're handily available.
10:59 jnthn Plus strings are always immutable so it it's safe :)
10:59 Mouq joined #perl6
10:59 FROGGS and that will work for graphemes as well?
10:59 jnthn uh, sorry
10:59 jnthn I *meant* MVMGrapheme32 :)
10:59 FROGGS ahh
11:00 FROGGS :o)
11:00 jnthn 'cus we're dealing with the grapheme stream here...
11:00 timotimo but you still need to copy it out
11:00 FROGGS okay
11:00 FROGGS yes
11:00 timotimo otherwise it may be freed at some point and you'll stumble over things
11:00 jnthn timotimo: Yes, that's exactly what I was poroposing
11:00 timotimo oh
11:00 timotimo of course
11:00 jnthn timotimo: Except it's not just "copy it out"
11:00 FROGGS I pass a string to nqp::setseparatorfh, and extracts its graphemes...
11:00 jnthn timotimo: Because you might be a weird situation where the seperator is two strands or so
11:01 timotimo ah
11:01 jnthn So the copying out needs an MVMGraphemeIter
11:01 FROGGS then we would handle the string case, but not yet the list case
11:01 jnthn Which is why to do it once :)
11:01 timotimo do we work with strands at all yet?
11:01 timotimo .o( and also, we're not handling ascii-only strings yet )
11:01 FROGGS I guess I need to invent a new op that will take a list_s
11:01 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 #perl6
11:01 timotimo .o( and also i didn't write the code yet to have a single-grapheme string be cheaper than longer strings )
11:01 [particle]1 joined #perl6
11:04 kjs_ joined #perl6
11:09 chenryn joined #perl6
11:09 timotimo jnthn: are we actually stashing the exact hash result value in a string's body?
11:10 timotimo and then using that reliably across the whole code base?
11:10 timotimo 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 #perl6
11:15 anaeem1__ joined #perl6
11:16 dalek roast: d45a075 | usev6++ | S03-operators/set.t:
11:16 dalek roast: Add tests for RT #117997
11:16 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=117997
11:16 dalek roast: review: https://github.com/perl6/roast/commit/d45a07596b
11:23 jnthn timotimo: Except the hash is calculated lazily on first need
11:24 timotimo right, but that requires us to sprinkle "what is this" checks and special behavior all over our codebase ...
11:24 timotimo i remember trying to do that once and that was not fun
11:24 camelia joined #perl6
11:24 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 timotimo i should probably look at how exactly the current code handles strands vs flat strings
11:25 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:27 sivteck joined #perl6
11:28 sivteck left #perl6
11:33 FROGGS timotimo: except when it is about explosions and chain reactions :o)
11:34 timotimo ah, extract key flattens the string in order to calculate the hash value
11:35 jnthn timotimo: Right, that bit is what I want to eventually kill of
11:35 jnthn *off
11:35 timotimo yeah
11:37 timotimo at least that makes it easy to add the single-grapheme-string-storage thing without breaking everything ... again
11:37 timotimo should probably also work with the 8bit grapheme list
11:38 timotimo we don't have that implemented yet, right?
11:38 timotimo oh, at the moment of hashing that, we're actually replacing the string's storage completely
11:39 timotimo so as soon as a string goes into a hash as a key, any given storage advantage we may have had ... gone
11:39 timotimo 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 #perl6
11:43 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:44 timotimo that'd be perfect
11:44 jnthn No, because we don't know the keys up front. #awfulcompscipun
11:45 timotimo heh.
11:45 timotimo is there actually any way we could offer perfect hashing to a user?
11:45 masak timotimo: not in the general case, no way.
11:46 timotimo well, giving the player the ability to pregenerate a perfect hashing function based on a set of keys
11:46 timotimo is what i thought that meant
11:46 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. :)
11:46 timotimo mhm mhm
11:47 timotimo 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 timotimo 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 #perl6
11:54 dalek roast: 9602762 | usev6++ | S0 (2 files):
11:54 dalek roast: Correct use of message in matcher hash in throws_like for 3 tests
11:54 dalek roast: review: https://github.com/perl6/roast/commit/960276264b
11:55 timotimo http://blogs.plos.org/scied/files/2013/01/4letter_words.jpg - this is very cute
12:01 masak just in case people were traveling or eating their last Wienerschnitzel yesterday -- comments warmly appreciated on http://strangelyconsistent.org/blog/macros-nesting-macros
12:09 Ven joined #perl6
12:09 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.
12:10 Ven erm, I guess you're here, masak .
12:10 masak maybe.
12:10 yoleaux 12:09Z <Ven> masak: right. You kind of need to launch it to see the output for now
12:11 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.
12:11 masak Ven: so, what is it? :)
12:11 masak besides something that parses something indented, that is.
12:11 Ven masak: considering the name "doc-html", it's an HTML template engine :P.
12:12 Ven haml-like (but actually it's jade, hence the "nephrite" pun)
12:12 Ven masak: on your feedback blogpost, "to types of macro" (not sure if intended)
12:12 masak ah. fixing.
12:13 masak it's a direct quote, but I think I prefer to change it to be correct.
12:13 Ven I guessed it was :).
12:14 Ven I'm still very much thinking about this... Not sure about how, even without macros, make a declarative ORM DSL
12:14 Ven model Actor { also will have_columns(<foo bar baz>) } ?
12:14 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")
12:14 Ven masak: nice. I'm glad you started your journey in that book :)
12:15 masak Ven: well, *some* of those DSLs can simply hook into the MOP, as jnthn++ has been famously doing of late.
12:15 masak I mean, if your DSL is enough like a class.
12:15 JimmyZ joined #perl6
12:15 Alula joined #perl6
12:15 Ven masak: yes, that's the point here
12:15 masak actors definitely are.
12:15 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.
12:15 masak :)
12:15 Ven But of course, you start hitting the "keywords aren't composable lol" kind of problem
12:15 masak I think that would make pmurias happy, too.
12:16 Ven (pmurias's happiness)++ :P
12:16 masak I definitely want us to have a story for composability, on various levels.
12:16 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™"
12:17 Ven (as in, I'm not sure we can offer *more* to the user)
12:17 Ven (or *should* offer more – but that's the same point, having too much kruft is a disservice to the user anyways)
12:17 masak I'm sorry, I didn't get the "jnthn++'s state machine" reference.
12:18 masak are you referring to something I forgot, or simply don't know about?
12:18 jnthn If recent, the macro-checked cond vars
12:18 Ven masak: erm, I'm talking about his wait-state/emit-state I think
12:18 masak oh, ah.
12:18 Ven or was it wait-event?
12:18 Ven yes, thanks jnthn
12:18 jnthn wait-condition and meet-condition iirc
12:18 masak I wasn't aware that was driven by macros <3
12:18 jnthn masak: See OO::Monitors.
12:19 * masak does, with a quickness
12:19 jnthn It's my first actual use macros in a module :)
12:19 * Ven grinned when he heard that there :P
12:19 jnthn *use of
12:19 masak oh wow. https://github.com/jnthn/oo-monitors/blob/master/lib/OO/Monitors.pm#L79
12:19 * masak so happy
12:20 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.
12:20 masak anyway, jnthn++!
12:20 Ven hahahah.
12:21 Ven masak: your "is inside()" seems a bit... funny to me. I'm not sure those should ... "explicited" :)
12:22 Ven 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.
12:23 masak kthx
12:23 Ven masak: actually, it's just in 50 years of lisp :)
12:23 Ven which is why I didn't start with a gist
12:23 Ven npnp.
12:24 * 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
12:24 * [Coke] finds that his wife had a chance to eat stroopwafel and did not!
12:25 jnthn o.O
12:26 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 masak pretty sure I will still need discussions :)
12:28 Ven well, I hope for the best
12:31 [Coke] m: Int:erator$;
12:31 camelia rakudo-moar 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/0vlprhYWVgâ�¤Two terms in a rowâ�¤at /tmp/0vlprhYWVg:1â�¤------> [32mInt:erator[33mâ��[31m$;[0mâ�¤    expecting any of:â�¤        pair valueâ�¤        postfixâ�¤        infix stopperâ�¤        i…»
12:31 Ven m: @$$a # leont++ :P
12:31 camelia rakudo-moar 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/EU0tT4HIZu�Variable '$a' is not declared�at /tmp/EU0tT4HIZu:1�------> [32m@$$a[33m�[31m # leont++ :P[0m�»
12:31 Ven oooh, that's be unspecced already
12:33 [Coke] m: Int:erator:$;
12:33 camelia rakudo-moar 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/uszt7h4uQWâ�¤Missing semicolon.â�¤at /tmp/uszt7h4uQW:1â�¤------> [32mInt:erator:$[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        colon pairâ�¤Â»
12:33 [Coke] ah, there we go. What do you mean, no semicolon?
12:34 masak that is an odd message, yes.
12:34 masak the semicolon is, like, "I'm right here!"
12:34 * masak submits LTA rakudobug
12:34 [Coke] inspired by jnthn's css:tiny talk, no really.
12:35 jnthn std: Int:erator:$;
12:35 camelia std bd22b5c: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Confused at /tmp/q8C2RbTAy2 line 1:â�¤------> [32mInt:erator:$[33mâ��[31m;[0mâ�¤    expecting signatureâ�¤Undeclared name:â�¤      'Int:erator' used at line 1â�¤Parse failedâ�¤FAILED 00:01 140mâ�¤Â»
12:40 Ven oO it thinks Int:erator is a valid name?
12:41 timotimo hm, like with foo:bar<baz>?
12:41 xenoterracide joined #perl6
12:41 Ven m: infix:<+>
12:41 Ven std: infix<+>
12:41 Ven sigh.
12:42 Ven fair enough, it's valid in this position :)
12:47 masak people here who like types are likely to appreciate http://psnively.github.io/blog/2014/10/14/Curry-Howard-the-Ontological-Ultimate/
12:47 masak though it seems to be the middle of a debate rather than the start of it.
12:47 masak HN discussion: https://news.ycombinator.com/item?id=8457345
12:47 PerlJam masak: Just reading nesting macros ... "Grammars to it bottom-up"  needs more "do" and less "to"
12:49 masak thanks
12:50 camelia joined #perl6
12:52 JimmyZ tl:dr :P
12:52 masak ok, noted.
12:52 masak "I didn't have time to write a shorter one." :)
12:53 * JimmyZ 's english still is bad :(
12:54 timotimo that's because english is bad
12:55 masak JimmyZ: tl;dr: 博客文章谈到把一个macro在另一个macro。这就是一切。
12:56 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:57 JimmyZ masak: I see a chinese version http://zh.wikipedia.org/wiki/%E6%9F%AF%E9%87%8C-%E9%9C%8D%E5%8D%8E%E5%BE%B7%E5%90%8C%E6%9E%84
12:57 JimmyZ about Curry-Howard
12:59 JimmyZ looks like something like parametric, am I right?
12:59 masak oh, that post.
12:59 masak 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 #perl6
13:00 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 #perl6
13:01 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
13:01 pmichaud good morning, #perl6
13:01 JimmyZ good moarning, pmichaud
13:01 masak pmichaud! \o/
13:02 jnthn o/ pmichaud
13:02 masak JimmyZ: function types A -> B in types correspond to implication A ⇒ B in logic.
13:02 masak JimmyZ: it's fascinating stuff, really.
13:05 JimmyZ http://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 JimmyZ oh, it is
13:16 masak errand &
13:18 gtodd currying has nothing to do with food ... other than making you hungry
13:19 nwc10 joined #perl6
13:20 gtodd pmichaud: which blog are you using for your eventual ... updates, notices ... ermm GLR catechisms
13:20 nwc10 left #perl6
13:23 xinming joined #perl6
13:23 masak http://pmthium.com/ , I guess.
13:23 rurban I got strange t/spec/S32-io/spurt.rakudo.parrot errors with 23, 25. Is this new?
13:26 gtodd masak: thanks ...
13:32 gtodd rurban:  last week I got the warning "Please use IO::Path.spurt instead." in there somewhere
13:35 gtodd rurban: (started getting that warning) after some commits by lizmat ... oh wait I wasn't roasting with perl6-p  parrot  though
13:37 bartolin [Coke] reported those two failures for parrot as well (for about a week IIRC)
13:45 [Coke] SOMEONE WAS LISTENING!
13:46 [Coke] those tests don't error on moar or jvm, just parrot.
13:48 [Coke] 2662e01 was the last clean r-p; 0730d44 was the first bad one.
13:49 [Coke] that corresponds with roast de7eb2d and roast afbef95
13:50 erkan joined #perl6
13:57 rurban What is the rakudo mailing list? perl6-compiler@perl.org?
13:58 [Coke] that's theoretically for talk about rakudo dev, yes; in reality, that mostly just happens here.
13:58 rurban ok
13:59 dalek roast: bcacc07 | rurban++ | S (2 files):
13:59 dalek roast: todo parrot tests: S32-io/spurt: 23,25. S05-mass/charsets: 8,9
13:59 dalek roast: review: https://github.com/perl6/roast/commit/bcacc07e95
13:59 dalek roast: 69f5590 | (Will Coleda)++ | S (2 files):
13:59 dalek roast: Merge pull request #48 from rurban/master
13:59 dalek roast:
13:59 dalek roast: todo parrot tests: S32-io/spurt: 23,25. S05-mass/charsets: 8,9
13:59 dalek roast: review: https://github.com/perl6/roast/commit/69f5590432
14:01 anaeem1 joined #perl6
14:01 [Coke] ^^ we could use RTs on those recent fudges, too, new bugadmin guy. :)
14:02 rurban yes, probably.
14:02 bartolin Oh NOES! (new bugadmin guy)
14:02 [Coke] muahahah
14:03 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.
14:03 rurban FROGGS++ for the same reasons
14:04 rurban Where can I read about perl6 coro's? I want to change the documented behavior also
14:06 timotimo perl6 only really exposes coros via gather/take, i believe
14:07 jnthn Yeah, and gather/take is agnostic as to how it is implemented.
14:07 dalek roast: 85396dd | usev6++ | S09-hashes/objecthash.t:
14:07 dalek roast: Add test for RT #118037
14:07 dalek roast: review: https://github.com/perl6/roast/commit/85396dd33e
14:07 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118037
14:07 jnthn It's done as del conts on r-m/r-j...
14:09 timotimo i wonder how take-rw will interact with the changes to GatherIter
14:10 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
14:10 masak it's more fun to be the increaser guy when there's a decreaser around :>
14:13 anaeem1__ joined #perl6
14:14 molaf joined #perl6
14:15 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? ;-)
14:16 gtodd :-D
14:16 masak bartolin: sounds fair.
14:16 masak bartolin: please keep count, point out the ticket of your choice when it's time, and hold us to it.
14:17 PerlJam who decides what "more perl6-fu" means and who has it?  :)
14:17 bartolin me decides!
14:17 gtodd cool :-)  the irc channel logs will serve as an accounting system for this new "protocol"
14:19 * 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)
14:19 gtodd ;-)
14:19 masak truth is, at bottom it's all driven by people, and a combination of responsibility, enthusiasm, and compassion.
14:19 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.
14:20 masak (what's known as "tuits")
14:20 masak we should figure out more in detail how that works, and harness it :)
14:20 masak jnthn: fu u 2! :P
14:21 gtodd does anyone have a sense when the REPL line issues RT #122914
14:21 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122914
14:21 gtodd started?
14:21 jnthn gtodd: No, though it's surprising we noticed it only recenlty...
14:22 PerlJam maybe it only recently broke
14:23 bartolin I can't tell; I only stumbled about it last week when testing something
14:27 gtodd (regarding "fu" we do have "Mu"  and there maybe some linguistic or deep cultural  "Ur-language" linkage there)
14:28 chenryn joined #perl6
14:29 [Coke] rant: RT treats pasted REPL output as quoted text.
14:29 PerlJam yeah, that's *so* annoying.
14:29 spider-mario joined #perl6
14:29 [particle] joined #perl6
14:30 PerlJam well ... the annoying part is that it hides what it thinks is quoted text
14:30 PerlJam but if there were a way to turn that off, I would.
14:31 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:32 gtodd 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:34 bartolin I found this one: RT #78068
14:34 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=78068
14:38 PerlJam Does the REPL do that for all backends?
14:40 bartolin kids need me, bbl
14:41 Woodi hi everyone :)
14:41 Mahmoud joined #perl6
14:42 masak Hoowdy, Woody
14:42 tadzik hey #perl6, what do you say we participate in http://www.google-melange.com/gci/events/google/gci2014
14:42 tadzik we have to apply on 27 Oct
14:42 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
14:42 tadzik (or a wee bit later, but not too much)
14:43 [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" :)
14:43 gtodd azawawi: that is different than GSoC correct?
14:43 tadzik yes
14:43 gtodd tadzik: I meant :-\
14:44 flaviusb joined #perl6
14:44 tadzik gtodd: it's for 13-17 people, tasks are smaller, rewards are smaller, pressure is smaller etc
14:44 tadzik and participants are great in both quality and quantity
14:45 Woodi this looks strange :) :  say await $log.latest-entries(Error);  # from jnthn OO::Actor
14:45 gtodd tadzik: fix extend the REPL would count ;-)
14:45 tadzik lessons learned from previous years: avoid translation tasks like a plague
14:45 Woodi what if promises will be more first class in future languages ? :)
14:45 tadzik gtodd: if it's easy enough :)
14:45 gtodd hehe
14:46 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 tadzik in module space I'm sure we do
14:46 tadzik documentation too
14:47 tadzik tutorials
14:47 atta joined #perl6
14:48 jnthn Not to mention making nice demo/example apps for some interesting modules...
14:48 tadzik yep
14:48 gtodd then there are  people doing things in module space that require some some hook or code in nqp-[p,m,j]
14:48 tadzik we could draw some fresh blood
14:48 jnthn Indeed.
14:48 jnthn I'd be willing to come up with some tasks for it, if we can get in.
14:48 jnthn But would need others to come come up with some too. :)
14:49 gtodd macros! :-)
14:50 tadzik we should create a wiki or a gist or something
14:50 tadzik 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"
14:50 masak gtodd: we want to attract youngsters, not fry their brains. ;)
14:50 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.
14:50 gtodd :-D
14:50 tadzik http://i.imgur.com/c7NJRa2h.jpg
14:52 masak tadzik: :P
14:52 [Coke] belatedly, it's for 13-17 _year old_ people
14:53 chenryn joined #perl6
14:55 rindolf joined #perl6
14:59 * masak .oO( "belatedly"? you'd rather recruit 9-year-olds!? ) :P
15:03 Hor|zon joined #perl6
15:07 anaeem1 joined #perl6
15:07 pmichaud okay, I blogged:  http://pmthium.com/2014/10/apw2014/
15:07 pmichaud comments, corrections, improvements welcomed
15:10 masak pmichaud++ # reading
15:11 * timotimo is reading, too
15:13 JimmyZ pmichaud++ # reading too
15:13 timotimo !$PIO.eof - this was supposed to read $!PIO.eof, right?
15:14 timotimo er
15:14 timotimo !$! rather
15:14 pmichaud timotimo++  # fixing
15:16 masak pmichaud: s/Infact/In fact/
15:16 moritz m: .say for [1, 2, 3].flat
15:16 camelia rakudo-moar 8b3e8c: OUTPUT«1␤2␤3␤»
15:18 timotimo oooooh
15:18 timotimo Your blog, Weekly changes in and around Perl 6, appears to be getting more traffic than usual!
15:18 masak spurt busted in Rakudo HEAD: https://gist.github.com/masak/72aaae65040419832daf
15:18 pmichaud masak++ # Infact it's now fixed.
15:18 * masak submits rakudobug!
15:18 timotimo i probably should post the post-apw update; especially since i can now link to pm's summary post
15:18 masak if someone would care to verify locally, that'd be "great"
15:20 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 * JimmyZ wonders why .pick and pick xx, xx is different
15:21 davido__ joined #perl6
15:23 pmichaud masak: yes, I'm leaning that direction also.
15:23 moritz JimmyZ: if that was a question, I can't parse it :-)
15:23 masak pmichaud: loving the headings :)
15:23 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.
15:23 JimmyZ (@a, @b, @c).pick(1)    vs pick 1, @a, @b, @c
15:23 timotimo agreed, masak
15:23 b2gills masak: the `keys @array` isn't needed on P6 but *is* needed on P5, That is what I was showing
15:24 pmichaud JimmyZ: if they're to work the same, which interpretation would you want?
15:24 PerlJam (and how would I get the other?)
15:25 pmichaud well, I know how to get the other.  :)
15:25 JimmyZ don't know, just curious :P
15:25 moritz without having been part of the discussion, I'd guess that the function form looks like p5, and behaves like p5
15:25 moritz but if we make all forms flatten by default, there's not much point in preserving the structure at all
15:25 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 :)
15:26 masak pmichaud: ss/programmers would rarely encounter<(ed)>//
15:26 moritz PerlJam: (@a, @b, @c).flat.pick, pick 1, (@a, @b, @c).lol # not sure about the last
15:26 pmichaud but when we started writing the functional forms of pick, sort, etc., people really thought flattening was more desirable
15:27 pmichaud pick 1, $@a, $@b, $@c # would also work
15:27 pmichaud and probably   pick 1, lol @a, @b, @c   should be made to work
15:27 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 ;)
15:27 moritz masak: spurt busting confirmed
15:28 masak moritz: thanks.
15:28 masak PerlJam: not I!
15:28 * moritz had a great lunch with lizmat++, wendy++ and leont++ today
15:28 pmichaud masak++  # fixed another incorrect spelling encountered
15:28 JimmyZ oh
15:29 JimmyZ so lizmat got a meet with you eventually :P
15:29 moritz JimmyZ: yes, on her way home
15:32 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.
15:33 * colomon just defined infix:<++> list concatenation for himself in a script, and the resulting code works and looks better.  :)
15:33 timotimo .u comma
15:33 yoleaux U+002C COMMA [Po] (,)
15:34 Mouq joined #perl6
15:34 timotimo what's the flipped comma called? where the little winky bit goes to the right instead of left?
15:35 pmichaud .u 2e41
15:35 yoleaux No characters found
15:36 arnsholt Inverted comma, probably
15:36 pmichaud .u u+2e41
15:36 yoleaux No characters found
15:36 pmichaud grrrr
15:36 colomon https://github.com/colomon/tune-index/blob/master/bin/make-txt-index.pl
15:37 pmichaud looks like unicode 7.0 defines "REVERSED COMMA"
15:37 pmichaud http://www.fileformat.info/info/unicode/char/2e41/index.htm
15:38 njmurphy joined #perl6
15:38 pmichaud colomon: how does that avoid conflicting with postfix:<++>, ooc?
15:38 timotimo .o( just spaces? )
15:38 masak pmichaud: postfix and infix never conflict.
15:39 masak pmichaud: postfix needs no space or unspace.
15:39 masak as does postcircumfix.
15:39 pmichaud ummm.....
15:39 masak it's convenient to think of them as being in entirely different namespaces.
15:39 colomon my understanding matches masak's
15:40 PerlJam masak: sounded like you just said "magic"  :)
15:40 masak pmichaud: hence `5\km`, not `5 km`
15:40 colomon note that the code there is working.  :)
15:40 pmichaud I'm not sure about "never conflict"
15:40 masak no, they can't conflict.
15:40 masak they never candidate at the same time.
15:40 pmichaud r:   sub postfix:<+>($a) { say 'hello'; };   say 1+2;
15:41 camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Two terms in a rowâ�¤at /tmp/tmpfile:1â�¤------> [32mstfix:<+>($a) { say 'hello'; };   say 1+[33mâ��[31m2;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopper…»
15:41 masak oh, ok :)
15:41 colomon r:  sub postfix:<+>($a) { say 'hello'; };  say 1 + 2;
15:41 masak yeah, "never conflict" is clearly wrong.
15:41 camelia rakudo-{parrot,moar} 8b3e8c: OUTPUT«3␤»
15:41 pmichaud colomon: yes, thus you're relying on spaces for disambiguation.
15:41 masak they never conflict when the parser is in op position.
15:42 fhelmberger_ joined #perl6
15:43 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:44 pmichaud 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.  :)
15:45 * JimmyZ finished reading
15:46 masak I found the error message that spurt emits. it's in Moar. https://github.com/MoarVM/MoarVM/blob/256554b8a23cb226e374b4dd57e8af668d2654c1/src/io/syncfile.c#L89
15:46 Hor|zon joined #perl6
15:47 amkrankruleuen joined #perl6
15:47 masak FROGGS++ has since made that error not happen: https://github.com/MoarVM/MoarVM/commit/03ac9a70f6dee026ab264767a59ab76379049bee
15:47 masak 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 #perl6
15:49 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 gtodd JimmyZ: but that's probably just me trying to find patterns in the clouds ...
15:50 Akagi201 joined #perl6
15:51 JimmyZ hope p6ers won't be surprised :P
15:52 timotimo introducing picik as well as pcik may confuse p6ers
15:53 masak pmichaud++ # http://pmthium.com/2014/10/apw2014/
15:53 PerlJam timotimo: but we'll have to add picnic somehow.
15:54 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:57 PerlJam pmichaud: btw, once the GLR is done, does that mean your grant will finally be done?  (or was that closed long ago?)
15:59 JimmyZ good night, all
15:59 JimmyZ 00:00 am here ...
15:59 timotimo i am here, too!
15:59 jorol joined #perl6
16:01 Hor|zon joined #perl6
16:03 pmichaud PerlJam: technically, my grant is done once I update S07.  Which could happen independently of the GLR.  :)
16:03 pmichaud in fact, it's very likely I'll draft S07 before doing the coding work.
16:04 pmichaud since doing so might point up other things we ought to consider
16:05 treehug88 joined #perl6
16:05 masak +1
16:06 gtodd as it stands (unfinished?) S07  was pretty boggling what with Parcels and Lists ... wheee :-)
16:08 pmichaud colomon: (list concatenation)   I have an outstanding spec request to TimToady about how one can lazily concatenate lists:  https://github.com/perl6/specs/issues/18
16:08 pmichaud although I suspect List.concat isn't out of the question for that
16:09 pmichaud anyway, lunchtime here -- bbiaw
16:10 pmichaud thanks everyone for the comments/fixes with the APW2014 post
16:13 Mouq joined #perl6
16:20 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:21 nine_ GLR done in just six weeks? Wow, that would be amazing. Thought that it would take much longer.
16:22 nine_ 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:23 gfldex joined #perl6
16:24 _slade_ joined #perl6
16:24 grettis joined #perl6
16:25 colomon pmichaud++ # https://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.
16:28 colomon AFK # bells
16:29 PerlJam nine_: note that it's a "hope" that "most of the GLR" will be complete by turkey day.
16:33 guru joined #perl6
16:41 chenryn joined #perl6
16:45 Mso150 joined #perl6
16:46 masak (List.concat)++
16:48 cognome joined #perl6
16:50 pmurias joined #perl6
16:50 gtodd does .plan do concat?
16:51 gtodd oh .plan is for Array
16:51 gtodd errm
16:52 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:53 SamuraiJack joined #perl6
16:55 FROGGS joined #perl6
16:56 ChoHag In a word, or a short sentence at least, how is concurrency support in moar coming along?
16:56 ChoHag I should hopefully have time to resume my perl 6 hackery soon.
16:57 FROGGS ChoHag: in short: very well, though we have to work more on stability soonish
16:57 FROGGS[mobile] joined #perl6
16:58 ChoHag Software development in a nutshell.
17:00 FROGGS[mobile] you should take a look at the latest slides from jnthn
17:00 dwarring joined #perl6
17:01 FROGGS[mobile] http://jnthn.net/papers/2014​-apw-objects-concurrency.pdf
17:02 ChoHag Saw that linked on reddit.
17:02 rjbs joined #perl6
17:02 ChoHag I can't read slides.
17:03 * 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:04 itz_ pmichaud++ # brilliant explanation of GLR understandable even by the stupid
17:04 ChoHag Software development in a nutshell.
17:04 ChoHag :)
17:04 FROGGS[mobile] *g*
17:04 rjbs itz_: not sure how to feel about that comment... ;)
17:05 rjbs 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 #perl6
17:05 rjbs (Behind my difficulties there let there be find my difficulties.)
17:06 anaeem1 joined #perl6
17:07 pmichaud itz_: glad the explanation has helped :)
17:08 pmichaud 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 joined #perl6
17:10 pmichaud yeah, I wonder if the post should've mentioned Gloria's excellent contributions.  She was quite involved in the discussions as well.
17:11 FROGGS[mobile] nod
17:16 FROGGS joined #perl6
17:19 gtodd pmichaud: "that sinking feeling" :-) ++
17:20 gtodd 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:26 virtualsue joined #perl6
17:30 masak pmurias: (re saving events) -- have the root scope store them in an array, and expose the array somewhere?
17:31 Mouq joined #perl6
17:34 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:36 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 ;)
17:37 pmurias :/
17:38 danaj_ joined #perl6
17:47 b2gills gtodd: The P5 expression for determining if you are in void context is `not defined wantarray`
17:47 _sri joined #perl6
17:53 psch joined #perl6
17:53 psch hi #perl6
17:54 kjs_ joined #perl6
17:55 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:56 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:57 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
17:57 pmichaud what changes is that something like   "sink foo()"  will let foo() know that it's being run in sink context
17:57 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
17:58 psch 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
17:58 psch s/someone//
17:58 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"
17:59 TimToady going-to-the-store-want-anything?
17:59 * TimToady should not post when he's coming down with a cold
18:00 TimToady 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
18:00 pmichaud gtodd: exactly.
18:01 pmichaud 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:04 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 TimToady even if it has to be negotiated at run time
18:05 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 zakharyas joined #perl6
18:06 pmichaud really I think of GLR as improving performance and cleaning up the spec
18:06 dalek mu: f721d10 | moritz++ | docs/feather/script/update-syn:
18:06 dalek mu: [update-syn] avoid syntax error
18:06 dalek mu: review: https://github.com/perl6/mu/commit/f721d10ecb
18:06 TimToady yes, returning negotiators instead of lists is just one part of it
18:07 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 :-)
18:07 pmichaud moritz++ # thank you!
18:07 pmichaud afk, meeting
18:09 dalek mu: 7bf192b | moritz++ | docs/feather/script/update-syn:
18:09 dalek mu: [update-syn] avoid "git pull"
18:09 dalek mu:
18:09 dalek mu: git pull merges, and merges requires human interaction, which gets cron jobs stuck
18:09 dalek mu: review: https://github.com/perl6/mu/commit/7bf192b006
18:09 moritz pmichaud: sorry that it took so long, I meant to look into that days ago
18:14 dalek mu: 03f4cca | moritz++ | docs/feather/syn_index.html:
18:14 dalek mu: perlcabal.org/syn: move less relevant text to below the synopsis list
18:14 dalek mu: review: https://github.com/perl6/mu/commit/03f4cca85d
18:14 moritz and pmichaud++ # GLR blog post
18:17 cognome moritz, where does pmichaud blog?
18:17 * cognome did not read the backlog, ... yet
18:19 moritz cognome: http://pmthium.com/2014/10/apw2014/
18:19 cognome moritz++, thx
18:32 timbunce joined #perl6
18:34 Mso150 joined #perl6
18:35 mauke joined #perl6
18:36 Mouq joined #perl6
18:41 kjs_ joined #perl6
18:46 Hor|zon joined #perl6
19:10 ilbot3 joined #perl6
19:10 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
19:16 zakharyas joined #perl6
19:17 anaeem1_ joined #perl6
19:18 anaeem1_ joined #perl6
19:18 anaeem1_ joined #perl6
19:19 lizmat joined #perl6
19:23 denis_boyun joined #perl6
19:35 Mso150 joined #perl6
19:37 dalek roast: 502f2ca | usev6++ | S02-types/baghash.t:
19:37 dalek roast: Add test for RT #117773
19:37 dalek roast: review: https://github.com/perl6/roast/commit/502f2ca59d
19:37 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=117773
19:41 mauke joined #perl6
19:43 dalek roast: ef1a317 | (David Warring david.warring@gmail.com)++ | S19-command-line-options/01-multiple-e.t:
19:43 dalek roast: remove tests for multiple '-e' arguments - no longer valid
19:43 dalek roast: review: https://github.com/perl6/roast/commit/ef1a317a5f
19:47 Mso150 joined #perl6
19:49 lue joined #perl6
19:56 PZt joined #perl6
20:03 woolfy joined #perl6
20:04 jack_rabbit joined #perl6
20:04 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
20:05 FROGGS bartolin: and methods like (like .new in this case) happily eat named (optional by default) arguments, which is to spec
20:06 FROGGS woolfy: nice :o)
20:06 bartolin FROGGS: thanks for explaining
20:07 * mauke waves to woolfy
20:07 * vendethiel waves to mauke and woolfy :-)
20:07 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)
20:08 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 FROGGS jnthn: after that I'll put it in a branch for review
20:09 FROGGS jnthn: (not necessary by you)
20:09 * woolfy waves to cloud of nice people
20:09 colomon o/
20:09 * virtualsue watches itz playing timotimo’s game
20:09 FROGGS bartolin: yes, this behaviour (aka "interface consistency") shall be tested
20:10 bartolin FROGGS: okay, will do that.
20:10 FROGGS bartolin++
20:10 FROGGS bartolin: you're doing an awesome work
20:11 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.
20:11 FROGGS bartolin: and it also helps us :o)
20:11 FROGGS gnight all o/
20:11 bartolin (though I'm afraid, I have to slow down in the next days)
20:11 bartolin gnight FROGGS
20:12 woolfy virtualsue: the hackathon was also very productive, too bad you and itz could not stay the whole two days
20:12 woolfy sleep well FROGGS
20:13 virtualsue it would have been nice
20:14 woolfy virtualsue: indeed
20:16 woolfy 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 woolfy Lots of people around the flipover, writing stuff on the paper, discussing it at length.
20:17 mauke massively multiplayer programming language design
20:18 woolfy Well, it felt sometimes like it was a Perl-version of Monty Python
20:18 woolfy 's Philosopher's World Cup of soccer: https://www.youtube.com/watch?v=92vV3QGagck
20:18 woolfy But I am quite sure that this makes me blasphemous and insulting, so I immediately apologise for the comparison.
20:23 jnthn Wowza...a single naga jolokia really adds a flavor to a dish...
20:23 jnthn pmichaud++ # both informative and entertaining write-up!
20:25 TimToady well, yeah, nj can run over a million scovilles...
20:25 pmurias joined #perl6
20:25 jnthn .tell FROGGS will be happy to review the patch
20:25 yoleaux jnthn: I'll pass your message to FROGGS.
20:27 dalek roast: 9186415 | usev6++ | S02-types/baghash.t:
20:27 dalek roast: Extend tests for RT #117773
20:27 dalek roast: review: https://github.com/perl6/roast/commit/9186415c7c
20:27 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=117773
20:27 ptc_p6 joined #perl6
20:31 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
20:31 Juerd :)
20:35 colomon joined #perl6
20:36 masak 'night, #perl6
20:37 pmurias night
20:38 vendethiel woolfy: it's quite something to see everybody with a deep knowledge say stuff about the language :P
20:39 vendethiel somebody says something, you're thinking "oh that sounds nice" and then pmichaud++ has around 36 examples to debunk it :P
20:41 dalek roast: 4485db4 | usev6++ | S06-signature/defaults.t:
20:41 dalek roast: Add test for RT #118063
20:41 dalek roast: review: https://github.com/perl6/roast/commit/4485db4547
20:41 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118063
20:42 * lizmat is sorta back but tired
20:47 pmichaud woolfy: I love the comparison with the philosophers' world cup.  Although I think we were a bit more animated than they were.
20:48 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.
20:49 woolfy pmichaud: I have dozens of pictures that show that you were just a little bit more animated...  :-)
20:50 pmichaud colomon: do you have an example?
20:50 pmichaud 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 :)
20:50 colomon pmichaud: https://gist.github.com/colomon/f2672ed9a2cbb6eecdd5
20:52 pmichaud colomon: interesting.  But 'for' is allowed to work ahead unless it's told to be strictly lazy.
20:52 colomon m: https://gist.github.com/colomon/f2672ed9a2cbb6eecdd5
20:52 vendethiel woolfy: Gloria made the best comments! :D
20:52 camelia rakudo-moar 8b3e8c: OUTPUT«gist not found»
20:52 colomon pmichaud: how do you tell it to be strictly lazy?
20:53 pmichaud colomon: nyi in rakudo, but ultimately it'll be
20:53 pmichaud lazy for 1..20 { ... }
20:53 colomon pmichaud: ah.
20:53 colomon +1
20:53 pmichaud actually, it's also the range that is working ahead here
20:54 pmichaud the 'for' statement asks the range for 1 element, and the range hands back 20
20:54 pmichaud so another formulation could be     for lazy 1..20 { ... }
20:54 TimToady yeah, that's one that I installed last year
20:54 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.
20:54 colomon woolfy++
20:54 pmichaud woolfy: I'm fine with uncropped/resized :)
20:55 vendethiel woolfy: now tell me how many are of me :o)
20:55 vendethiel (that you made just to annoy me)
20:56 TimToady she did them all to annoy you :P
20:56 vendethiel ...yes.
20:57 vendethiel 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)...  :-)
20:58 woolfy 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 #perl6
20:59 TimToady yeah, she made me hug her :)
20:59 nine_ What terrible fate :)
21:00 * woolfy is not a bull!  You know, my species is know for eating bulls.  Grawllll....
21:00 woolfy Ow sorry TimToady, I never meant to hurt you, physically nor traumatically....
21:02 * 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
21:02 jnthn :)
21:03 Hor|zon joined #perl6
21:03 pmichaud lizmat: hope you get some rest and feeling better.
21:03 lizmat the feeling better is already happening  :-)
21:04 pmichaud +1
21:10 leont joined #perl6
21:22 pierrot joined #perl6
21:26 dalek roast: 82b0065 | usev6++ | S03-operators/assign.t:
21:26 dalek roast: Add test for RT #118075, remove 5 duplicate tests, cosmetics
21:26 dalek roast: the deleted block with 5 tests was doubly present
21:26 dalek roast: review: https://github.com/perl6/roast/commit/82b0065586
21:26 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118075
21:27 BenGoldberg joined #perl6
21:30 cognome joined #perl6
21:35 colomon joined #perl6
21:40 pierrot joined #perl6
21:47 dalek panda: c1fd655 | jnthn++ | bootstrap.pl:
21:47 dalek panda: Fix Win32 detection on latest Rakudo.
21:47 dalek panda: review: https://github.com/tadzik/panda/commit/c1fd65598d
21:50 lizmat jnthn: Distro actually as an "is-win" attribute
21:50 lizmat *has
21:51 lizmat which is actually defined as: $!is-win  = so $!name eq any <mswin32 mingw msys cygwin>;
21:58 Mouq joined #perl6
21:58 raydiak good afternoon, #perl6
22:01 lizmat raydiak o/
22:03 Hor|zon joined #perl6
22:09 dalek rakudo/nom: af95ace | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
22:09 dalek rakudo/nom: Add support for "from" and "removed" version
22:09 dalek rakudo/nom:
22:09 dalek rakudo/nom: Unfortunately, due to some settings order issues with regards to Version
22:09 dalek rakudo/nom: and v-strings, versions will need to be specified as strings in the setting,
22:09 dalek rakudo/nom: rather than as Versions.
22:09 dalek rakudo/nom:
22:09 dalek rakudo/nom: This does not adapt the "is DEPRECATED" trait yet.
22:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af95ace504
22:10 Alina-malina joined #perl6
22:18 lizmat sleep&
22:19 raydiak good night lizmat
22:23 timotimo oh hello raydiak
22:23 timotimo long time no read :)
22:24 raydiak I am having a hard time figuring out how to go about writing a basic algebra grammar
22:24 raydiak oh hi timotimo :)
22:24 timotimo algebra as in mathematical expressions?
22:24 raydiak right
22:24 raydiak gave it a shot a couple weeks ago or something
22:24 raydiak 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
22:25 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
22:26 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
22:26 timotimo i probably botched the spelling
22:27 timotimo http://rosettacode.org/wiki/Parsing/Shunting-yard_algorithm
22:28 raydiak ah I see
22:29 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
22:29 timotimo yeah
22:30 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:31 * 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
22:31 jercos it's obvious how "4 * 2 + 7" fits together, but applying general rules to large equasions causes trouble :|
22:32 jercos thus why I just work in RPN when I can. Or use lots of parenthesis.
22:33 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
22:33 arnsholt And precedence really is quite annoying
22:34 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.
22:36 timotimo i'll head off to bed
22:36 timotimo 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 timotimo i shall refactor it to become a bit less gnarly
22:37 timotimo one big thing is that the enemies should really be hittable even when they are rotated
22:38 timotimo 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 timotimo or something like that
22:38 timotimo o/
22:39 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 raydiak g'night timotimo, hope you get some good rest
22:42 arnsholt raydiak: If you don't care about operator precedence, it's pretty straightforward
22:42 arnsholt But if you care about precedence, it's actually a moderatly tricky problem
22:43 arnsholt 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
22:43 raydiak how would I go about it, ignoring the glaring precedence disability?
22:45 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
22:45 arnsholt Yeah, just make it a flat tree
22:45 raydiak cool, got it...thanks
22:46 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:47 arnsholt 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?
22:47 arnsholt Yeah, that should work
22:48 arnsholt You can shunting-yard the flat tree from the grammar rule, probably
22:51 raydiak alright, I think I'm un-stuck...thanks arnsholt++ and others!
23:16 ezra1 joined #perl6
23:16 ivanshmakov joined #perl6
23:22 Mouq joined #perl6
23:24 Hor|zon joined #perl6
23:33 mmcleric joined #perl6
23:54 colomon joined #perl6
23:56 aborazmeh joined #perl6
23:57 ezra1 joined #perl6
23:59 ezra1 joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo