Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-04-14

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:18 bjz joined #perl6
00:21 TimToady m: bag(<a b c a b a b d>).list
00:21 camelia rakudo-moar 3aa101: ( no output )
00:21 TimToady m: bag(<a b c a b a b d>).list.say
00:21 camelia rakudo-moar 3aa101: OUTPUT«a b c d␤»
00:21 TimToady hmm, don't think that's spec...
00:22 TimToady well, I guess it changed when we made them not flatten in list context
00:24 TimToady m: bag(<a b c a b a b d>).kv.map(->$k,$v { $k xx $v }).say
00:24 camelia rakudo-moar 3aa101: OUTPUT«a a a b b b c d␤»
00:24 TimToady well, that's probably more efficient than .pick(*)
00:25 TimToady m: bag(<a b c a b a b d>).pairs.sort.map({ .key xx .value }).say
00:25 camelia rakudo-moar 3aa101: OUTPUT«a a a b b b c d␤»
00:26 TimToady m: bag(<a b c a b a b d 42>).kv.map(->$k,$v { $k xx $v }).say
00:26 camelia rakudo-moar 3aa101: OUTPUT«a a a b b b c d 42␤»
00:26 TimToady okay, was just a coincidence
00:26 TimToady m: bag(<a c b c a b a b d 42>).kv.map(->$k,$v { $k xx $v }).say
00:26 camelia rakudo-moar 3aa101: OUTPUT«a a a c c b b b d 42␤»
00:37 rurban joined #perl6
00:38 TimToady okay, backlogged up to .kxxv now...does that sort?
00:39 TimToady you don't want to sort it after the xx
00:39 TimToady but what if you don't care about the order, then you don't want it sorted at all...
00:40 TimToady but normally you'd want it for a graph, so sorted is probably the right default, and you can write your own .pairs.map otherwise
00:42 TimToady though, actually, you wouldn't want this form for a graph, you'd use the pairs
00:42 TimToady so maybe it doesn't matter
00:43 TimToady 'course, now we'll have people writing .kxxv.pick(*)
00:44 TimToady still, since Mouq++'s original desire was to sort instead of shuffle, that should still be the default, I guess
00:47 TimToady on the subject of caching, I think it should simply be using eqv semantics, not === semantics
00:48 TimToady eqv forces objects to be evaluated to their *current* value, even if they're mutable
00:48 TimToady WHICH is just the wrong approach completely
00:50 TimToady okay, looks like you were getting there
00:52 TimToady but trying to use WHICH to solve value equivalence problems is a kind of XY problem
00:52 TimToady you need to force value semantics first, and only then is WHICH indicative of value identity
00:53 TimToady it'd be much better to start with to think about serializing the capture to, say, a JSON key or some such
00:54 TimToady then figure out how to make those semanticcs fast
00:54 TimToady lizmat: ^^
00:56 TimToady and trying to trick === into producing eqv semantics seems a bit wrong to me
00:56 TimToady note that mutabability of a Capture is that the list of arguments can't change, not that the list contains only immutable values
00:57 TimToady an immutable Capture can perfectly well contain a mutable Array that might or might not get bound one way or another
00:58 TimToady fiddling the semantics of \@a doesn't help with \(1,2,@a,4,5)
01:00 rurban joined #perl6
01:00 TimToady so given the false premise, I'm guessing the patch for \@a is likely to be bogus
01:00 TimToady (still too jetlagged to think entirely straight though...)
01:09 lp joined #perl6
01:11 dayangkun joined #perl6
01:15 benabik joined #perl6
01:25 DarthGandalf joined #perl6
01:30 woosley joined #perl6
01:30 woosley left #perl6
01:30 woosley joined #perl6
01:30 btyler joined #perl6
01:33 cooper joined #perl6
01:33 cooper joined #perl6
01:44 hoverboard joined #perl6
01:47 dragon_d joined #perl6
01:50 klapperl joined #perl6
01:56 DarthGandalf joined #perl6
02:00 cognominal joined #perl6
02:07 lustlife joined #perl6
02:17 hypolin joined #perl6
02:29 xragnar_ joined #perl6
02:31 lustlife joined #perl6
02:32 xenoterracide joined #perl6
02:56 dragon_d joined #perl6
03:35 Sqirrel joined #perl6
03:47 dalek roast: 032f194 | Mouq++ | S05-modifier/sigspace.t:
03:47 dalek roast: Add test for RT #119053
03:47 dalek roast: review: https://github.com/perl6/roast/commit/032f194bdd
03:47 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=119053
03:50 timotimo good morning mouq :)
04:04 adu joined #perl6
04:07 timotimo oooh, mouq++ also triaged some tickets that have been working for some time
04:10 timotimo is butterfly flight well understood?
04:18 raiph joined #perl6
04:26 masak nwc10: guess you've seen this: http://hg.python.org/peps/rev/76d43e52d978 https://news.ycombinator.com/item?id=7581434
04:30 Psyche^ joined #perl6
04:34 SamuraiJack__ joined #perl6
04:36 colomon aiiiieee, Ambercon game going late enough the Europeans are waking up….
04:51 SamuraiJack joined #perl6
04:58 masak :)
04:59 masak colomon: although I am a European, I am currently dislocated time zone wise.
05:01 colomon where are you?
05:09 timotimo masak: want me to pull real hard on your wristwatch to make it better? :)
05:12 masak colomon: .cn
05:12 colomon oh my!
05:13 * masak would really like to get some zero-width-atom-with-quantifier detection into the NQP grammar engine :)
05:13 timotimo a what now?
05:14 masak just accidentally typed <![;]>+ in a regex, and watched rakudo-moar slowly eat all the memory until it was killed. scratched my head until I realized it should be <-[;]>+
05:14 timotimo oh
05:14 masak this stuff is statically checkable, and I think we should check for it.
05:14 timotimo i've stumbled over that before :)
05:14 timotimo yeah, i think i can have a look at the code right now
05:14 masak \o/
05:14 masak ++timotimo
05:15 masak it's also... interesting... that moar leaks memory in that situation.
05:15 masak not sure what it needs to allocate to keep that parse going.
05:15 masak should be more like "ho, hum, trying this atom for the 4_294_967_295th time..."
05:17 timotimo hm. fwiw, if it comes with a separator or a fixed upper limit, it would be fine, right?
05:19 masak (non-zero-width) separator should always be fine.
05:20 masak upper limit is still suspect IMHO, if all it does is gobble a whole lot of nothing.
05:20 masak I mean, the upper limit could be 1_000_000, and the regex could be very slow as a result.
05:20 timotimo oh!
05:20 masak the problem isn't really the lack of upper limit, the problem is that it iterates a lot of times on nothing.
05:20 timotimo i didn't even know about %%!
05:20 timotimo that's so convenient!
05:21 masak timotimo: today is the day you learn! congrats :D
05:21 timotimo you knew about %% already? why didn't you tell me? :(
05:21 timotimo (this is %% in regex, btw)
05:23 colomon it didn't work right the last time I had a good use for it.  :\
05:23 colomon (mind you, that was years ago.)
05:24 timotimo did you file a bug? :)
05:24 timotimo btw, how does moarvm handle ABC?
05:24 colomon it was a known issue
05:24 colomon moarvm cannot compile ABC, but it runs it uncompiled very nicely.
05:24 timotimo when did you last test it?
05:24 colomon sometime this weekend.
05:25 timotimo oh, okay
05:25 colomon I think it's been golfed and reported (not by me)
05:25 timotimo ah, that's good
05:26 timotimo p6: say "a" ~~ m:i:i/A/
05:26 bjz_ joined #perl6
05:26 camelia rakudo-parrot 79167a: OUTPUT«duplicate named argument in call␤  in block  at /tmp/tmpfile:1␤␤»
05:26 camelia ..rakudo-jvm 79167a, rakudo-moar 79167a, niecza v24-109-g48a8de3: OUTPUT«「a」␤␤»
05:27 timotimo r: / $. /
05:27 camelia rakudo-parrot 79167a, rakudo-jvm 79167a, rakudo-moar 79167a: ( no output )
05:28 timotimo r: say $.
05:28 camelia rakudo-parrot 79167a, rakudo-jvm 79167a, rakudo-moar 79167a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Unsupported use of $. variable; in Perl 6 please use the filehandle's .line methodâ�¤at /tmp/tmpfile:1â�¤------> [32msay [33mâ��[31m$.[0mâ�¤   …»
05:29 timotimo so many little bugs :\
05:32 adu so many?
05:32 timotimo in the rt
05:32 kaleem joined #perl6
05:43 Alina-malina joined #perl6
05:47 rurban joined #perl6
05:50 masak sorry :/
05:50 masak (not really) :P
05:51 timotimo :)
05:54 AW3i joined #perl6
06:03 masak r: my class A {}; { my class A {}; say A.WHICH }; say A.WHICH
06:03 camelia rakudo-parrot 79167a, rakudo-jvm 79167a, rakudo-moar 79167a: OUTPUT«A␤A␤»
06:03 masak I consider the above to be problematic, if .WHICH is to be used for hashing.
06:03 masak those are two different types with the same name.
06:09 timotimo but these classes are identical! :P
06:17 adu So I've narrowed down the error
06:18 timotimo for what exactly?
06:18 adu installing rakudo
06:18 adu nqp-[mpj] install fine no issues
06:18 timotimo oh
06:18 adu and perl6-[pj] install fine
06:19 adu but perl6-m gives me the following error: "make: write error"
06:19 timotimo o_O
06:19 masak ok, I've been a bad masak.
06:19 masak submitting the following for review: https://gist.github.com/masak/10620845
06:19 adu and it doesn't show up with rakudo-start, but it shows up with github + --gen-stuff
06:19 masak well, review and ineffective pleas for sanity, I guess.
06:20 adu but now that I've narrowed down the make error, it seems to have installed perfectly
06:20 adu hm
06:20 adu I'm confused
06:20 masak adu: confused, but with a working perl6-m! :D
06:20 adu :)
06:21 adu actually, I'm more interested in perl6-j
06:21 timotimo masak: what's the reasoning behind doing it like that?
06:22 adu but moar seems to be the fastest according to the blog
06:22 timotimo The Blog :)
06:22 masak timotimo: mishu, mainly.
06:23 timotimo oh, mishu :)
06:23 masak timotimo: but it might find uses in Nomic, too. I'm not sure.
06:23 haroldwu joined #perl6
06:23 timotimo effectively, this is a CPS transformation on the grammar level? :)
06:24 masak yeah, it's abusing the parse to find the CPS points.
06:24 masak the approach I'm using will fall down flat as soon as other control flow comes into the picture.
06:24 timotimo .o( easier with macros? )
06:24 masak but I've already figured out conditions and loops, and I think I could figure out (some) gotos and recursion, too.
06:24 timotimo is there a reason to not have more than one listener per event?
06:25 masak timotimo: this is a typical thing that *should* definitely be easier with macros, but isn't (yet) because of the way macros are spec'd.
06:25 masak timotimo: no.
06:25 masak timotimo: jsut didn't need it for this simple example.
06:25 timotimo oh, it even says CPS in the title of that gist
06:25 masak timotimo: but yeah, should probably be an array of listeners rather than just one.
06:25 masak just*
06:26 colomon joined #perl6
06:26 timotimo … you didn't typo just there, did you?
06:26 masak <masak> timotimo: jsut didn't need it for this simple example.
06:27 adu sounds more like coroutines than CPS
06:27 masak adu: even considering that I want the callbacks to persist across runs?
06:27 timotimo oh!
06:27 masak that's really the important part here.
06:28 timotimo what mechanism will you be using to persist data that you set with the pieces of code?
06:28 darutoko joined #perl6
06:29 adu wow
06:31 denis_boyun_ joined #perl6
06:33 masak timotimo: mishu will use a big key-value database to persist code as well as data.
06:34 timotimo fair enough
06:34 sergot morning o/
06:35 timotimo grüß got
06:37 masak morning, sergot.
06:38 masak timotimo: I do wish I could harness Perl 6's own Perl 6 grammar, though. as far as I know, there's no way to reach it from user code.
06:38 FROGGS joined #perl6
06:38 masak but yeah, mark this up as a definite use case that would be awesome to be able to pull off with macros.
06:39 timotimo mhm
06:39 timotimo i've finally started kicking around some ideas for what catui should be able to do and what abstractions it should offer
06:39 masak 'catui'?
06:40 timotimo "cick ass terminal user interface"
06:40 dayangkun joined #perl6
06:41 masak :P
06:41 masak am I meant to assume that 'cick' is to be pronounced 'sick'? because I totally do.
06:42 timotimo or maybe just "Kick Ass Terminal User Interface"?
06:43 masak :P
06:44 kaleem joined #perl6
06:46 timotimo whatever it ends up being, it really ought to be empowering for the user and simple for the developer
06:49 adu what does this error mean:
06:49 adu "No such method 'ast' for invocant of type 'Array'"
06:50 timotimo something expected a match object and got an array instead
06:52 FROGGS m: "foo" ~~ /[ $<foo>=\w ]+/; say $<foo>.ast
06:52 camelia rakudo-moar 79167a: OUTPUT«No such method 'ast' for invocant of type 'Array'␤  in block  at /tmp/fO7rJIlIcC:1␤␤»
06:53 FROGGS m: "foo" ~~ /[ $<foo>=\w ]+/; say $<foo>>>.ast.join
06:53 camelia rakudo-moar 79167a: OUTPUT«use of uninitialized value of type Any in string context␤use of uninitialized value of type Any in string context␤use of uninitialized value of type Any in string context␤␤»
06:53 FROGGS m: "foo" ~~ /[ $<foo>=\w ]+/; say $<foo>>>.ast
06:53 camelia rakudo-moar 79167a: OUTPUT«(Any) (Any) (Any)␤»
06:53 adu my @rest = (map {$_.ast}, $<direct-declarator-rest>);
06:54 FROGGS try this? my @rest = (map {$_.ast}, @<direct-declarator-rest>);
06:54 FROGGS this was implemented already, right?
06:55 timotimo it was
06:55 adu oh ok
06:55 FROGGS it is the same as: my @rest = (map {$_.ast}, @($<direct-declarator-rest>));
06:55 adu my sigils?
06:55 timotimo i'd prefer >>.ast, though
06:55 FROGGS and: my @rest = (map {$_.ast}, $<direct-declarator-rest>.list);
06:55 adu what does >> mean?
06:55 timotimo >>. is the hyper postfix method call
06:55 FROGGS apply this method to all members, and return a list again
06:56 timotimo (execute in no particular order, return in original order)
06:56 timotimo (could theoretically be executed in parallel, but we don't have that yet)
06:56 timotimo also works with any postfix operator as well as prefix operators in the << form
06:57 timotimo (but there is no prefix method call form)
06:57 FROGGS m: say lines()[^3]
06:57 camelia rakudo-moar 79167a: OUTPUT«There were three men came out of the West Their fortunes for to try And these three men made a solemn vow␤»
06:57 timotimo bbl
06:57 FROGGS m: say lines()[^3]>>.uc
06:57 camelia rakudo-moar 79167a: OUTPUT«THERE WERE THREE MEN CAME OUT OF THE WEST THEIR FORTUNES FOR TO TRY AND THESE THREE MEN MADE A SOLEMN VOW␤»
06:57 FROGGS m: say lines()[^3]>>.uc.perl
06:57 camelia rakudo-moar 79167a: OUTPUT«("THERE WERE THREE MEN CAME OUT OF THE WEST", "THEIR FORTUNES FOR TO TRY", "AND THESE THREE MEN MADE A SOLEMN VOW")␤»
06:57 FROGGS so you can modify all elements but still have the list
06:57 FROGGS which is pretty nice and handy
06:58 a2n joined #perl6
06:58 a2n left #perl6
07:00 jnthn TimToady: S06 has it as, "In the abstract, this cache is just a hash where incoming argument Captures are mapped to return values." Object hashes use WHICH. eqv doesn't produce a hash value, afaik, so a lookup would be O(n) instead of O(1) if we go that way?
07:00 adu YEY now I get a different error
07:01 TimToady jnthn: I'm just saying you have to make sure everything is a value inside the Capture before you can rely on WHICH
07:01 rurban joined #perl6
07:02 polyahu joined #perl6
07:02 adu how do I check to see if <rule>? was specified or not?
07:02 jnthn TimToady: DIHWIDT...
07:02 adu if $<init-declarator-list>.elems == 1 {
07:02 adu doesn't seem to be working anymore
07:03 zakharyas joined #perl6
07:03 FROGGS adu: can you no-paste your grammar?
07:03 jnthn adu: if $<init-declarator-list>
07:03 adu oh
07:03 adu https://github.com/andydude/droxtools/bl​ob/master/c2drox/lib/C/StdC11Parser.pm6
07:04 adu its started to bit-rot, so I'm giving it some love
07:05 adu cool, "if $<...> {" worked
07:05 jnthn TimToady: That is, I'd say using "is cached" when you're not getting value types in feels like user error...
07:05 adu jnthn: thanks
07:06 nwc10 masak: yes, I was aware
07:07 TimToady jnthn: what about Scalar args?
07:07 jnthn TimToady: Well, .WHICH sees through thsoe, no@
07:07 jnthn So it's about the value in the Scalar.
07:08 jnthn Or entity :P
07:08 TimToady okay
07:08 jnthn I'm just saying that if we see the cache as hash-like, then using a mutable thing as a cache key is odd
07:08 jnthn And if we want to cache on mutable types, I don't know we can say "oh, it's just a hash"
07:09 jnthn That is, I don't see how to implement it with O(1) lookup + eqv semantics.
07:11 * jnthn should probably warn that he also is very sleep deprived :/
07:11 Ven_ joined #perl6
07:11 TimToady .oO(train lag)
07:13 jnthn More like "went to bed and sleep failed to happen" :S
07:13 jnthn And now I gotta teach all day.
07:13 TimToady HTAAOF
07:13 jnthn Thankfully, familiar material and small group.
07:14 nwc10 how good is the coffee machine? A man was here fixing ours today
07:14 nwc10 OK, specifically, the hot chocolate now works (apparently)
07:14 nwc10 main coffee functionality was never at risk
07:14 nwc10 and there is a hot backup coffee machine
07:15 nwc10 (no UPS (yet))
07:15 jnthn There's at least 2 here.
07:15 nwc10 and 3 staff?
07:15 jnthn It has a "strong coffee" button
07:15 jnthn No, LOADS of course attendees
07:15 FROGGS as long as there is no "Americano" button I am fine :o)
07:16 jnthn I...no, I don't think so :)
07:16 nwc10 if there is, re-label is "NSA". That should reduce the usage :-)
07:17 nwc10 coffee machines here all have stickers on them saying "NSA Monitored Device"
07:17 nwc10 mind you, so does my phone now
07:17 nwc10 it's helping keep the battery on
07:19 Ven_ `token keyword:sym<foo> { <sym> }` does <sym> refer to 'foo' ?
07:19 jnthn yes
07:20 Ven_ oh, that's cool. makes it far easier to maintain ! :)
07:21 timotimo aye
07:23 masak nwc10: ooh, gotta get me some of those stickers!
07:23 nwc10 OK, I shall ask
07:23 masak \o/
07:24 moritz \o
07:24 dmol joined #perl6
07:24 timotimo /o
07:27 adu how do I precompile something?
07:27 timotimo using ufo or panda is the most convenient way (in that order)
07:29 masak timotimo: I toyed around a little bit with mishu workflows using 'expect' technology. https://gist.github.com/masak/12c9f8f79be29ad3f1b2 -- I feel it reads extremely well. CPS FTW.
07:29 masak morning, moritz.
07:29 timotimo expect technology
07:29 timotimo NOBODY EXPECTS TECHNOLOGY
07:30 timotimo 5\hour  -  is this a postfix operator?
07:30 moritz m: say 5\i
07:30 camelia rakudo-moar 79167a: OUTPUT«0+5i␤»
07:30 moritz timotimo: looks like it
07:30 FROGGS adu: perl6-m --target=mbc --output=foo.moarvm foo.pm
07:31 timotimo masak: that looks pretty, tbh
07:31 FROGGS something similar for perl6-p and perl-j
07:31 adu FROGGS: thanks, but I forgot about ufo
07:31 FROGGS adu: or you can use ufo
07:31 anaeem1_ joined #perl6
07:31 adu :)
07:32 masak timotimo: postfixes require the \ if they are alphanumeric.
07:33 TimToady if *after* alpha
07:33 moritz masak: more precisely, if there is no word boundary
07:33 moritz and they are alphanumeric
07:33 moritz you can say  foo()hours
07:34 TimToady or (foo)hourse
07:34 nwc10 masak: that comment which is now top had just been voted top the second time I looked last night. It seems to explain things fairly well: https://news.ycombinator.com/item?id=7582300
07:34 nwc10 but I'm sort of suspicious that "The core developers are not required to maintain 2.7 post-2015, and most of them won't be involved in it. That part hasn't changed." isn't true, in that no-one was ever required ...
07:35 nwc10 it will still be very interesting to see how this pans out
07:35 nwc10 because I assume that what we have here is bug fix or even security fix only until 2020
07:35 masak nwc10: right. Python 2.7 is attractive partly because it has a large userbase.
07:35 timotimo masak: fair enough; didn't know about that but it makes sense given that they could be part of an identifier instead, i guess?
07:36 nwc10 and hence whilst the implementation is "supported" for a while yet, criticisms such as http://programming.oreilly.com/201​3/10/dead-batteries-included.html will become more accurate
07:37 nwc10 it's still not clear how this helps the userbase migrate
07:37 nwc10 we shall see...
07:37 nwc10 (to be clear, it does help the userbase migrate, in that it stops them being tempted to defect instead)
07:38 Ven_ let's just hope perl6 will be in a good shape in 2020 :-)
07:39 nwc10 strictly what matters is the implementation
07:39 nwc10 and I hope it will be in good enough shape some time before then
07:39 timotimo masak: do you already have an idea how to implement the loop construct in your latest gist?
07:40 nwc10 what I think matters as an early goal is speed within a factor of 10 of Perl 5, and proper concurrency
07:40 nwc10 [the factor of 10 can then be improved on :-)]
07:40 timotimo concurrency is going to carry us far, i believe
07:40 nwc10 yes, this is my guess too
07:41 timotimo but i believe we're going to be stumbling over shared memory problems at some point
07:41 nwc10 what do you mean by "shared memory problems"?
07:42 Ven_ (mutability)
07:42 timotimo people are going to stumble over concurrent access to their stuff
07:44 timotimo masak: there's not yet code to enforce that it's the "last" chance to get points :)
07:44 masak timotimo: yes, loops aren't a big problem. basically, need to pick them apart as "the rest of the current iteration" and "the rest of the loop".
07:44 timotimo mhm
07:45 masak timotimo: oh! fixing.
07:45 masak timotimo: what will be challenging, though, is all the local state of the function. need to translate it into some kind of parameters that are passed along everywhere, I think.
07:45 timotimo aye, something like that
07:45 timotimo that's the basis of the CPS
07:46 timotimo making sure locals are captured and properly put back in their place when resuming
07:47 masak timotimo: fixed. https://gist.github.com/masak/12c9f8f79be29ad3f1b2
07:47 masak timotimo: yes.
07:48 masak heh, I think this is the first time I use 'next'/'last'/'succeed'/'proceed' all in the same 'given'...
07:48 timotimo also, expect END_OF_DAY etc etc
07:48 timotimo :)
07:48 masak yeah, well.
07:48 virtualsue joined #perl6
07:48 masak the nice thing about this way of writing things is that the expects fade into the background.
07:49 masak and I can focus on the algorithm instead.
07:49 masak CPS++
07:49 timotimo aye
07:49 masak I would love to have this kind of code to work with, even if the underlying parsing/processing cheats a whole bunch.
07:50 moritz .ask mouq are there tests for RT 109874?
07:50 yoleaux moritz: I'll pass your message to mouq.
07:50 masak over time, we can make it less and less cheatish, hopefully.
07:50 anaeem1 joined #perl6
07:51 * Ven_ can't find expect in doc.perl6
07:51 timotimo Ven_: masak invented it
07:51 timotimo https://gist.github.com/masak/10620845
07:51 Ven_ same as utter ?
07:51 timotimo ya
07:52 masak Ven_: note that the code in https://gist.github.com/masak/10620845 takes 'expect' and transforms it to other code (and data). it's kind of like an optical illusion.
07:53 Ven_ or a macro :p
07:53 masak Ven_: 'utter' is just my current shortcut for 'make the bot say something to the user on IRC', without having to worry about the specifics.
07:53 masak Ven_: yeah, well, I'd like to see the macro that could do that :P
07:54 masak literally. I'd like to see it.
07:54 Ven_ soon(TM)
07:54 Ven_ Wouldn't you be able to do it with is parsed ?
07:58 masak only in the sense that 'is parsed' is likely Turing-complete, and the only limitation is ability to withstand pain.
07:59 masak also note the above discussion about control flow.
08:00 molaf_ joined #perl6
08:01 snarkyboojum joined #perl6
08:02 rurban joined #perl6
08:05 masak just saw the addition of .kxxv to Rakudo and spec.
08:05 masak fwiw, that's what I'd expect Bag.list to do.
08:14 masak seems that .list only lists each key once, though.
08:14 lizmat masak: well, what do you expect Set.list and Mix.list to do then ?
08:15 masak my reasoning for expecting .list to output that, is that during construction of or casting to the Bag, a list/sequence is passed *in*, and *it* contains the repetitions.
08:15 pippo joined #perl6
08:15 lizmat we would expect  some kind of congruity here?
08:15 masak lizmat: Set.list, easy.
08:15 masak lizmat: Mix, I don't know. I haven't internalized that type yet.
08:20 AW3i joined #perl6
08:21 lizmat TimToady, jnthn: using .WHICH as the "is cached" key was based on my misconception of .WHICH
08:22 lizmat I guess JSONning the Capture would yield a usable key
08:22 lizmat but that would mean having to internalize JSON in the core
08:22 lizmat FWIW, I'm not sure that that's a bad idea
08:26 masak what would JSON add that .perl doesn't already provide?
08:26 masak or, hm, .pretty ?
08:27 lizmat size of resultant key, I would guess
08:30 denis_boyun_ joined #perl6
08:32 lizmat .perl doesn't sort the keys in the hash, so we would have cache misses
08:32 masak *nod*
08:39 dalek rakudo/nom: 07dcb22 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
08:39 dalek rakudo/nom: Use .perl instead of .WHICH on Capture as key
08:39 dalek rakudo/nom:
08:39 dalek rakudo/nom: Suggested by masak++.  This will however cause cache misses for named parameters
08:39 dalek rakudo/nom: as the keys in Hash.perl are not sorted.  Perhaps they should be?  Even though
08:39 dalek rakudo/nom: it is not necessary for roundtripping per se, SortKeys *is* one of the features
08:39 dalek rakudo/nom: I always used to switch on on Perl 5's Data::Dumpern when debugging.
08:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/07dcb22d6c
08:39 lizmat afk for a few hours&
08:41 dakkar joined #perl6
08:43 rindolf joined #perl6
08:50 AW3i joined #perl6
08:50 masak I can see a number of arguments for auto-sorting keys in .perl, and not really any arguments against.
08:51 masak the more canonical, the better :>
08:52 moritz well, unsorted keys in .perl remind people that the keys aren't sorted
08:52 moritz but in the end, .perl is really for perl as the user, not for humans
08:52 masak troo
08:53 masak which makes me think we shouldn't be using .perl as we use it above. it's not a good enough hash function.
08:53 nwc10 I think (and I don't know if this is out of context), *everything* should either be deterministic, or reliably not deterministic
08:54 masak instead, we should probably use a real hash function. one that digests the significant parts into one (int) value, and leaves out the unimportant parts.
08:54 nwc10 to ensure that no-one inadvertently writes code assuming something about ordering that wasn't guaranteed
08:54 nwc10 because that is a source of long term pain
08:54 masak nwc10: yes, that is good advice.
08:55 nwc10 it was actually Dan's plan for parrot, and it came about partly from problems when changing Perl 5's hash algorithm
08:55 nwc10 but this whole stuff with complexity attacks on hashing also seems to be somewhat relevant
08:55 masak aye.
08:55 nwc10 but there's a more general thing that (approximately) no-one reads the documentation
08:55 nwc10 but (approximately) everyone blames someone else for their code breaking on upgrade
08:56 nwc10 so long term it's easiest for the implementor to ensure that code is pre-broken
08:56 nwc10 (ie never worked)
08:56 * nwc10 is taking the 20 year view here
08:57 masak indeed.
08:57 masak here in #perl6, we're all about taking the 20 year view :)
09:01 AW3i joined #perl6
09:03 salv0 joined #perl6
09:04 rurban joined #perl6
09:06 woolfy1 joined #perl6
09:10 dayangkun joined #perl6
09:14 klapperl_ joined #perl6
09:17 pecastro joined #perl6
09:24 AW3i joined #perl6
09:43 dayangkun joined #perl6
09:48 sergot r: my $s = 'abc'; say $s.substr(*-100); say $s.substr(*-94);
09:48 sergot is this correct behaviour?
09:48 camelia rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤»
09:48 camelia ..rakudo-jvm 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤  in method gist at gen/jvm/CORE.setting:12574␤  in sub say at gen/jvm/CORE.setting:13487␤  in block  at /tmp/tmpfile:1␤␤»
09:48 camelia ..rakudo-parrot 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤  in method gist at gen/parrot/CORE.setting:12595␤  in method gist at gen/parrot/CORE.setting:1056␤  in sub say at gen/parrot/CORE.s…»
09:48 sergot i mean:
09:48 sergot morr: my $s = 'abc'; say $s.substr(*-100);
09:48 sergot moar: my $s = 'abc'; say $s.substr(*-100);
09:49 sergot r: my $s = 'abc'; say $s.substr(*-100);
09:49 camelia rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤»
09:49 camelia ..rakudo-jvm 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤  in method gist at gen/jvm/CORE.setting:12574␤  in sub say at gen/jvm/CORE.setting:13487␤  in block  at /tmp/tmpfile:1␤␤»
09:49 camelia ..rakudo-parrot 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-97 if you want to index relative to the end␤  in method gist at gen/parrot/CORE.setting:12595␤  in method gist at gen/parrot/CORE.setting:1056␤  in sub say at gen/parrot/CORE.s…»
09:49 sergot r: my $s = 'abc'; say $s.substr(*-97);
09:49 camelia rakudo-parrot 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-94 if you want to index relative to the end␤  in method gist at gen/parrot/CORE.setting:12595␤  in method gist at gen/parrot/CORE.setting:1056␤  in sub say at gen/parrot/CORE.s…»
09:49 camelia ..rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start argument to substr out of range. Is: , should be in 0..Inf; use *-94 if you want to index relative to the end␤»
09:49 camelia ..rakudo-jvm 07dcb2: OUTPUT«Start argument to substr out of range. Is: , should be in 0..Inf; use *-94 if you want to index relative to the end␤  in method gist at gen/jvm/CORE.setting:12574␤  in sub say at gen/jvm/CORE.setting:13487␤  in block  at /tmp/tmpfile:1␤␤»
09:49 masak well, the error message is LTA.
09:49 sergot -100, -97, -94 etc... Why? :)
09:49 masak in two ways.
09:49 sergot LTA?
09:50 masak (a) it says "Is ," with no actual value (because of the whatever, no doubt)
09:50 masak (b) it suggests something that won't work as an alternative
09:50 masak sergot: Less Than Awesome, "Awesome" being our expectation on errors.
09:50 moritz this is going to get tricky to fix.
09:50 sergot So, it's a bug I guess, is it known?
09:51 moritz I've seen it before, but closed my eyes rather than RT'ed it
09:51 masak :)
09:52 masak sergot: I don't think it's in RT, if that's what you're asking.
09:52 masak moritz: is the problem that of introspecting a WhateverCode?
09:52 sergot Should it be? ;-)
09:52 masak sergot: yes, please.
09:52 moritz masak: well, I guess it can be worked around
09:53 moritz masak: the error message could say "Is: -94 (result of a closure evaluation)" and leave off the "use *-..." comment
09:53 masak moritz: that would be better than the current message.
09:55 moritz m: say 'abc'.substr(200)
09:55 camelia rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start of substr out of range. Is: 200, should be in 0..3␤»
09:55 lizmat nwc10, masak: so maybe we should interject a .pick(*) in Hash.perl ?
09:56 moritz m: say 'abc'.substr(3)
09:56 camelia rakudo-moar 07dcb2: OUTPUT«␤»
09:56 moritz m: say 'abc'.substr(4)
09:56 camelia rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start of substr out of range. Is: 4, should be in 0..3␤»
09:56 moritz is that sane?
09:56 lizmat m: say 'abc'.substr(3,2)
09:57 camelia rakudo-moar 07dcb2: OUTPUT«␤»
09:57 sergot m: say 'abc'.substr(3,4);
09:57 camelia rakudo-moar 07dcb2: OUTPUT«␤»
09:57 lizmat m: say 'abc'.substr(2,2)
09:57 camelia rakudo-moar 07dcb2: OUTPUT«c␤»
09:58 masak m: say 'abc'.substr(10)
09:58 camelia rakudo-moar 07dcb2: OUTPUT«===SORRY!===␤Start of substr out of range. Is: 10, should be in 0..3␤»
09:58 masak if it were up to me, that last one shouldn't be an error, just ''
10:00 dayangkun joined #perl6
10:01 lizmat that would certainly make it consistent with Perl 5
10:02 masak some kinds of strictness is useful. other kinds are just in the way of convenience.
10:02 FROGGS p: say 'abc'.substr(10)
10:02 camelia rakudo-parrot 07dcb2: OUTPUT«Start of substr out of range. Is: 10, should be in 0..3␤  in method gist at gen/parrot/CORE.setting:12595␤  in method gist at gen/parrot/CORE.setting:1056␤  in sub say at gen/parrot/CORE.setting:13529␤  in block  at /tmp/CrSF1BX2Fm:1␤␤»
10:03 FROGGS if that should result in "", then a .substr(*-10, 1) should also
10:05 nwc10 lizmat: I don'
10:05 FROGGS not that I really want to have it that way, but at least it would be (strangely?) consistent
10:05 nwc10 I don't know enough about the details of Perl 6 methods to answer that
10:05 nwc10 but the first question seems to be one level up - does .perl want to be ordered or random?
10:06 nwc10 I forget - is .perl the human readable one that might not round trip?
10:06 FROGGS no, it is the opposite
10:06 nwc10 so, I'm confusing it with which?
10:06 FROGGS it is meant to be round trippable, and .gist is for human branes
10:06 nwc10 ah OK
10:06 nwc10 then I think (but *I* and *think*) that .gist ought to sort, and .perl ought to randomise
10:07 rurban joined #perl6
10:07 masak FROGGS: yes, I agree; .substr(*-10, 1) should also be ''
10:08 Ven_ joined #perl6
10:11 denis_boyun_ joined #perl6
10:19 falk0n joined #perl6
10:20 * lizmat wonders whether a :strict named parameter to .substr would make sense
10:21 lizmat if specified, it would die on *any* out of bounds specification
10:21 lizmat if not, out of bounds are ok, unless used as a left-value I guess
10:22 dalek rakudo/nom: af6f59d | (Elizabeth Mattijsen)++ | src/core/HashIter.pm:
10:22 dalek rakudo/nom: Remove dead code from HashIter.reify
10:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af6f59d3e6
10:32 dalek rakudo/nom: 7111fa8 | moritz++ | src/core/Str.pm:
10:32 dalek rakudo/nom: awesomify substr-out-of-range error message
10:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7111fa8c13
10:32 moritz testing of edge cases very welcome.
10:45 AW3i joined #perl6
10:48 dalek rakudo/nom: 7022ab7 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
10:48 dalek rakudo/nom: Add .WHICH identifier to Routine.perl
10:48 dalek rakudo/nom:
10:48 dalek rakudo/nom: This should make two Routines with identical signature at least stringify
10:48 dalek rakudo/nom: differently.
10:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7022ab7462
10:48 SamuraiJack joined #perl6
10:52 AW3i joined #perl6
10:59 moritz m: grammar A { token TOP { <any> }; token any { 'foo' | 'bar' } }; say A.parse('foo')
10:59 camelia rakudo-moar 07dcb2: OUTPUT«「foo」␤ any => 「foo」␤␤»
10:59 moritz m: grammar A { token TOP { <so> }; token so { 'foo' | 'bar' } }; say A.parse('foo')
10:59 camelia rakudo-moar 07dcb2: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in method so at src/gen/m-CORE.setting:834␤  in any !reduce at gen/moar/stage2/QRegex.nqp:759␤  in any !cursor_pass at gen/moar/stage2/QRegex.nqp:721␤  in regex so at /tmp/4Fzij7cVZH:1…»
11:05 sergot Oh, I wanted to remind you about this poll, please help :) : https://gist.github.com/sergot/9951466
11:07 rurban joined #perl6
11:08 denis_boyun___ joined #perl6
11:12 telex joined #perl6
11:13 moritz sergot: what are you trying to achieve?
11:15 lizmat rn: -> { say $^a; say $^b }
11:15 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Placeholder variable $^a cannot override existing signature ( ) at /tmp/tmpfile line 1:â�¤------> [32m-> { say [33mâ��[31m$^a; say $^b }[0mâ�¤â�¤Placeholder variable $^b cannot override existing signature ( ) at…»
11:15 camelia ..rakudo-parrot 07dcb2, rakudo-jvm 07dcb2, rakudo-moar 07dcb2: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Placeholder variable '$^a' cannot override existing signatureâ�¤at /tmp/tmpfile:1â�¤------> [32m-> { say $^a; say $^b }[33mâ��[31m<EOL>[0mâ�¤  â€¦Â»
11:15 lizmat feels weird you can't do this with blocks, even if you didn't specify any signature ?
11:16 moritz the -> introduces the signature
11:16 moritz which is empty
11:16 moritz in your case
11:16 moritz if you leave out the ->, all is fine
11:16 moritz m: { say $^a; say $^b}.(42, 23)
11:16 camelia rakudo-moar 07dcb2: OUTPUT«42␤23␤»
11:17 lizmat ah, gotcha
11:17 lizmat rn: { say $^a; say $^b }(<foo bar>.list)
11:18 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: No value for parameter '$b' in 'ANON'␤  at /tmp/tmpfile line 0 (ANON @ 1) ␤  at /tmp/tmpfile line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting …»
11:18 camelia ..rakudo-parrot 07dcb2, rakudo-jvm 07dcb2, rakudo-moar 07dcb2: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤  in block  at /tmp/tmpfile:1␤␤»
11:18 moritz rn: { say $^a; say $^b }(|<foo bar>)
11:18 camelia rakudo-parrot 07dcb2, rakudo-jvm 07dcb2, rakudo-moar 07dcb2, niecza v24-109-g48a8de3: OUTPUT«foo␤bar␤»
11:18 lizmat ah, yes, of course  :-)
11:20 dalek rakudo/nom: e5cb82b | (Elizabeth Mattijsen)++ | src/core/ (2 files):
11:20 dalek rakudo/nom: Implement Block.perl (like Routine.perl)
11:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e5cb82b2e4
11:48 dalek rakudo/nom: 5e30542 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
11:48 dalek rakudo/nom: Make sure wrapped Routine.perl parses
11:48 dalek rakudo/nom:
11:48 dalek rakudo/nom: sub+{wrapped} () {...} is not legal Perl 6 code
11:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e30542798
11:49 [Coke] yay, my daily google alert for things perl 6 finally came up with something other than this log.
11:50 Ven_ joined #perl6
11:51 masak which is what?
11:54 [Coke] that's the weird part.
11:55 [Coke]
11:55 [Coke] How to get Rakudo Perl 6 rakudo - Coloring Pages
11:55 [Coke] coloring4.us
11:55 [Coke] How to get Rakudo Perl 6 rakudo. download how to get rakudo perl 6 rakudo WTF What is Rakudo I was on Perl6 I just clicked on the download button ...
11:55 [Coke] http://coloring4.us/download/how-​to-get-rakudo-perl-6-rakudo.html
11:55 [Coke] someone uploaded a talk of jnthn++'s, I think. as a coloring book page.
11:56 Ven_ r: grammar { token TOP { <ba('r')> ' & ' <ba('z')> }; token ba($end) { 'ba' $end } }; say G.parse("bar & baz").say;
11:56 [Coke] (which, perhaps obviously, it fails to be.)
11:56 camelia rakudo-jvm 7022ab: OUTPUT«(timeout)»
11:56 camelia ..rakudo-parrot 7022ab, rakudo-moar 7022ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tmpfileâ�¤Undeclared name:â�¤    G used at line 1â�¤â�¤Â»
11:56 Ven_ m: grammar G { token TOP { <ba('r')> ' & ' <ba('z')> }; token ba($end) { 'ba' $end } }; say G.parse("bar & baz").say;
11:56 camelia rakudo-moar 7022ab: OUTPUT«「bar & baz」␤ ba => 「bar」␤ ba => 「baz」␤␤True␤»
12:00 sqirrel_ joined #perl6
12:03 btyler joined #perl6
12:04 lizmat https://www.youtube.com/watch?v=eT6yjrLe4_U   (Perl-Operated Boy)
12:04 askz joined #perl6
12:06 lizmat that song will work also for another 20 years  :-)
12:07 FROGGS nice!
12:11 Ven_ pretty sure perl will also orient you in 20 years :-)
12:15 [Coke] lizmat: someone at work sent that to me, since I'm the only perler here. :)
12:15 [Coke] also: Hi, lizmat!
12:15 lizmat hi [Coke]!
12:15 lizmat I guess woolfy1  got it from you then  :-)
12:22 dayangkun joined #perl6
12:40 xenoterracide joined #perl6
12:51 sergot moritz: I want to gather information as many as possible, to write a presentation (summary) about Perl 6. I want to write there about VMs, comparision of performance, times etc.
12:52 sergot moritz: it's a big project of presentation. genrally I want to summarize the whole p6 development process done so far.
12:52 Ven_ r: my token foo($bar = "oops") { foo {say $bar} }; say "foo" ~~ /<foo("baz")>/
12:53 camelia rakudo-jvm 5e3054: OUTPUT«(timeout)»
12:53 camelia ..rakudo-parrot 5e3054, rakudo-moar 5e3054: OUTPUT«baz␤「foo」␤ foo => 「foo」␤␤»
12:54 moritz sergot: I doubt you'll get much more information out of that survey; time to start more specific questions
12:54 sergot moritz: I'll ask more specific question soon.
12:54 sergot This poll was just a start.
12:55 kbaker_ joined #perl6
12:56 sergot More questions would probably appear soon.
12:56 dalek roast: a783d7b | (Elizabeth Mattijsen)++ | S02-names/is_cached.t:
12:56 dalek roast: Add some more "is cached" tests
12:56 dalek roast: review: https://github.com/perl6/roast/commit/a783d7b768
13:01 sergot moritz: I can send you specific information about this "project" if you want :)
13:01 sergot any help would be appreciated
13:03 sergot cognominal++: thanks for your answer!
13:04 moritz sergot: people have asked for review of their presentations in #perl6, and have gotten good responses (IMHO)
13:04 moritz sergot: I know you aren't at that point you, but that's something you can keep in mind
13:05 jnthn my talk slides got used as...a coloring page? o.O :)
13:05 jnthn Gee. I've sure made it in life. :P
13:05 cognominal sergot, you are welcome. I felt free to go beyond your questions and be very speculative.
13:06 cognominal afk&
13:07 aramisf joined #perl6
13:08 guru joined #perl6
13:10 rurban joined #perl6
13:12 rurban1 joined #perl6
13:31 sergot moritz++ thanks
13:32 Ven_ is there a perl6 lisp parser already ?
13:33 lizmat Ven_: not that I know of, but maybe https://github.com/edumentab/r​akudo-and-nqp-internals-course can be an inspiration ?
13:33 lizmat s/PHP/Lisp/
13:33 lizmat :-)
13:33 Ven_ you mean s/Lisp/PHP/ ?
13:34 lizmat no, the examples in the course where about creating a PHP parser in NQP
13:34 lizmat you might want to do that for Lisp?
13:34 lizmat hence the s/PHP/Lisp/  :-)
13:34 Ven_ ah yeah, you mean replace in the github project -- I thought you meant to replace in my sentence !
13:35 Ven_ I already looked at the slides, but having the repo too is a good thing :)
13:35 Ven_ lizmat++ # thankies
13:38 jnthn I think I did scribble a really simple lisp grammar once
13:38 masak yes, you did.
13:38 Ven_ :-)
13:38 masak during a talk about implementing your own Lisp :)
13:38 Ven_ masak reporting !
13:38 jnthn ah, right
13:39 jnthn I think the heart of it was rule sexp { '(' <ident> <sexp>* ')' } or so :)
13:41 Ven_ you need a sym rule in that case, though ?
13:41 Ven_ for literals
13:41 jnthn bah, who needs literals :P
13:41 jnthn but yeah :)
13:41 Ven_ (how (do I) (do stuff) (? then))
13:41 jnthn .oO( True believers use Church numerals :P )
13:42 dalek rakudo/nom: 8421f53 | (Elizabeth Mattijsen)++ | src/core/ (6 files):
13:42 dalek rakudo/nom: Remove (Set|Bag|Mix)(|Hash).(min|max)
13:42 dalek rakudo/nom:
13:42 dalek rakudo/nom: The current meaning is too far away from Hash.(min|max).  So to prevent
13:42 dalek rakudo/nom: confusion, we're going to have to do this a different way.
13:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8421f537f8
13:42 Ven_ data Num = Z | Suc n
13:43 Ven_ what does "HLL" stand for ?
13:44 avar high level language
13:50 benabik joined #perl6
13:50 rurban joined #perl6
13:54 rhr joined #perl6
13:54 treehug88 joined #perl6
13:57 jnap joined #perl6
13:57 ggoebel111110 joined #perl6
14:01 dalek rakudo/nom: f64f40f | (Elizabeth Mattijsen)++ | src/core/ (2 files):
14:01 dalek rakudo/nom: Implement (Set|Bag|Mix)(|Hash).(minpairs|maxpairs)
14:01 dalek rakudo/nom:
14:01 dalek rakudo/nom: As an alternative to .min/.max
14:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f64f40f64c
14:03 dalek rakudo/nom: 00aeaa0 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
14:03 dalek rakudo/nom: Adapt Changelog for .min/.max -> .minpairs/.maxpairs
14:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00aeaa0025
14:07 brrt joined #perl6
14:22 salv0 joined #perl6
14:27 Rix joined #perl6
14:50 jnap1 joined #perl6
14:55 hoelzro morning #perl6
14:56 timotimo rob o/
14:59 hoelzro ahoy timo
14:59 lizmat hoelzro, timotimo o/
15:02 kaleem joined #perl6
15:02 dalek roast: 36be63e | (Elizabeth Mattijsen)++ | S02-types/ (6 files):
15:02 dalek roast: (Set|Bag|Mix)(|Hash).(min|​max)->(minpairs|maxpairs)
15:02 dalek roast: review: https://github.com/perl6/roast/commit/36be63e99d
15:02 hoelzro ahoy liz
15:07 guru joined #perl6
15:11 hoelzro so I ran my moar report script on rakudo * again this morning
15:11 hoelzro first of all: holy hell, did it get fast!
15:11 timotimo \o/
15:11 hoelzro way to go, #perl6/#moarvm team(s)!
15:12 jnthn hoelzro: Using HEAD Moar/Rakudo?
15:12 jnthn Or there abouts?
15:12 hoelzro as of an hour and a half ago, yes
15:13 jnthn nice
15:13 jnthn What's the report script doing?
15:13 jnthn And how much faster would you guess it is?
15:13 hoelzro 3-5x, maybe?
15:13 jnthn I'm curious 'cus I've seen the effect on the benchmarks, but not heard much about actual code "out there"
15:13 jnthn oh, nice :)
15:14 hoelzro it feels way faster
15:14 hoelzro that's probably an exaggeration from my brain =)
15:14 jnthn Well, it was quite an improvement.
15:14 jnthn There's more to come. :)
15:14 hoelzro =)
15:15 jnthn Though I suspect I'm too ill/exhausted to do much this evenign :(
15:15 * jnthn had hoped to work on async stuff...
15:16 hoelzro hmm...async + moar report could be interesting
15:16 hoelzro I was thinking of adding async stuff to perl6/doc
15:16 hoelzro oh, the second thing I wanted to bring up was ufo
15:17 hoelzro MIME::Base64 wasn't working on mokudo, but it was ufo's fault for trying to get mokudo to build .pm6.parrot files
15:17 hoelzro I have submitted a PR for masak's approval =)
15:17 hoelzro and third, LWP::Simple is failing
15:17 hoelzro but the test is just broken (a page it was testing no longer exists)
15:18 jnthn oh...it worked for me the other day...
15:19 hoelzro jnthn: which?
15:19 jnthn hotel &
15:19 dalek specs: 3ab8296 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
15:19 dalek specs: Spec Bag.(minpairs|maxpairs) instead Bag.(min|max)
15:19 dalek specs: review: https://github.com/perl6/specs/commit/3ab8296799
15:24 FROGGS hoelzro: it seems you are using an older star or at least old modules
15:24 FROGGS LWP::Simple is fixed
15:24 hoelzro my script does a pull before it tries it out
15:25 hoelzro but maybe something broke in my script
15:25 FROGGS hoelzro: see https://github.com/cosimo/perl6-lwp-simple/co​mmit/7043eca43dee228b6ff05b12c8479f723c692cde
15:25 hoelzro oh, sure enough
15:25 hoelzro thanks FROGGS!
15:25 hoelzro I'll fix my script then
15:40 timotimo i was thinking
15:40 timotimo maybe "is cached" should optionally accept a routine that'd be given the capture and is responsible for generating a key for the cache?
15:41 araujo joined #perl6
15:41 araujo joined #perl6
15:46 lizmat perhaps  :-)
15:46 lizmat fg
15:50 benabik lizmat: no jobs in background
15:50 lizmat benabik: that's what you think  :)
15:51 lizmat git diff
15:51 lizmat grrrr
15:52 benabik lizmat: Not a git repository
15:53 dalek rakudo/nom: 84887a2 | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
15:53 dalek rakudo/nom: Hash.perl is now random on key order, .gist sorted
15:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/84887a2c40
15:53 lizmat this now randomly breaks "is cached" tests
15:56 grondilu joined #perl6
15:57 pippo joined #perl6
15:57 lizmat afk for a few hours&
15:57 denis_boyun joined #perl6
15:59 timotimo http://p6weekly.wordpress.com/?p=​141&amp;shareadraft=534c05cfe6bd5 - today's draft
16:00 retupmoca timotimo: I created LibraryMake :P
16:01 timotimo oh!
16:01 timotimo dangit
16:01 timotimo i even looked it up
16:01 timotimo fixed now, though.
16:01 retupmoca timotimo++
16:02 PerlJam timotimo: I like the "Something for you to try" at the end.
16:02 timotimo thanks :)
16:02 timotimo as usual, nobody will answer it, but it's still nice to ask, isn't it?
16:02 PerlJam yep
16:02 denis_boyun___ joined #perl6
16:02 timotimo oh, i should probably mention, that repl readline stuff on moarvm is now cool
16:03 timotimo and the exit stuff
16:06 timotimo http://p6weekly.wordpress.com/?p=​141&amp;shareadraft=534c07793226d ← i'd publish it like this soon-ish
16:07 timotimo lizmat: would you accept a rewording like "refined further"?
16:10 Rotwang joined #perl6
16:12 denis_boyun_ joined #perl6
16:15 FROGGS timotimo++ # blog
16:15 FROGGS and again timotimo++ for the benchmarks from last friday
16:15 FROGGS very very interesting
16:15 timotimo :)
16:16 FROGGS especially interesting because I was away for a week :o)
16:16 tadzik timotimo: any reason uppercase Work in the title?
16:17 FROGGS he Is german, perhaps That is the Reason :o)
16:17 timotimo i hate groß-/kleinschreibung
16:17 timotimo but i suppose it's "Title Case"?
16:18 denis_boyun joined #perl6
16:20 dalek joined #perl6
16:21 havenwood joined #perl6
16:21 guru joined #perl6
16:22 timotimo bbl
16:26 denis_boyun___ joined #perl6
16:27 benabik joined #perl6
16:32 spider-mario joined #perl6
16:32 xinming__ joined #perl6
16:47 kaare_ joined #perl6
16:55 timotimo re
16:59 Rotwang joined #perl6
17:04 treehug8_ joined #perl6
17:05 Ulti I do wonder what the Perl5 benchmarks would look like using Moose
17:05 treehug8_ joined #perl6
17:05 nwc10 patches welcome? :-)
17:05 timotimo aye
17:05 nwc10 or "how much do you wonder?" ...
17:05 nwc10 how big is this itch
17:06 Ulti well I guess a lot of moose doesnt really apply to the benchmarks, but more in general if I was to write an OO Perl5 program does it look as favourable
17:07 Ulti I also don't really know any moose.... because all it does is massively slow down stuff I do
17:07 Ulti and its never so complex that I need a complicate OO model of the data
17:08 timotimo Perl 6 massively slows down stuff yßou do, too :3
17:08 Ulti yeah which is why I dont use it for work ;)
17:08 Ulti it speeds up funtime programming though
17:09 Ulti programmer time is better in perl6 without a doubt, just the bag datastructure doing what they do is super useful for a lot of the statistics I do
17:09 Ulti and I don't know any XS but have already played with NativeCall
17:11 Ulti shame I'm not still doing robotics because NativeCall would have made it really easy to hook up my C drivers to a scripting language for kids to play with
17:12 timotimo NativeCall is pretty fantastic
17:13 Ulti I guess you want something that writes the native call Perl6 from .h files next :)
17:14 timotimo like what the pypy people came up with: "cffi"
17:14 timotimo (not only for pypy)
17:14 * Ulti googles
17:14 timotimo it works that way, but it requires a C compiler to be available
17:14 Ulti I recall seeing a P6 grammar for C somewhere...
17:14 timotimo only for c headers?
17:14 Ulti no for the whole language
17:14 timotimo wow
17:15 vendethiel I think it was for C++11 ?
17:15 timotimo oh, i think i saw that a few days ago. or maybe just yesterday
17:16 Ulti the one I'm thinking of is olde
17:16 timotimo ok
17:17 Ulti I think it was part of an implementation for C on parrot
17:19 FROGGS[mobile] joined #perl6
17:20 brrt joined #perl6
17:24 hoverboard joined #perl6
17:29 benabik joined #perl6
17:30 stevan_ joined #perl6
17:31 sftp_ joined #perl6
17:33 havenwood joined #perl6
17:33 vendethiel r: class A { method foo:sym<bar> { say "hi" } }; A.new.'foo:sym<bar>'();
17:34 camelia rakudo-jvm 84887a: OUTPUT«(timeout)»
17:34 camelia ..rakudo-parrot 84887a, rakudo-moar 84887a: OUTPUT«hi␤»
17:38 guru joined #perl6
17:47 colomon joined #perl6
17:47 denis_boyun__ joined #perl6
17:51 japhb_ joined #perl6
18:03 kaare__ joined #perl6
18:04 denis_boyun___ joined #perl6
18:07 vendethiel joined #perl6
18:08 havenwood joined #perl6
18:10 tadzik anybody with cygwin, who I could bother for a couple of minutes?
18:11 TimToady .oO(people with cygwin are already bothered...)
18:12 vendethiel why would you use cygwin ;o) ?
18:18 Alula_ joined #perl6
18:20 klapperl joined #perl6
18:22 treehug88 joined #perl6
18:24 FROGGS joined #perl6
18:25 dragon_d joined #perl6
18:30 kurahaupo joined #perl6
18:32 tadzik I wouldn't :D
18:32 tadzik but I wrote my program on linux, wrote a makefile that installs all the deps with cpanminus etc, and the first thing my supervisor did is tried to run it on windows
18:33 tadzik so now while she's looking suspisciously at her old ubuntu installation, I'm trying to figure if making it windows-friendly is that much of an effort
18:33 [Coke] You might want to check your target audience first. ;)
18:34 leontopod joined #perl6
18:34 water joined #perl6
18:37 tadzik heh
18:37 tadzik well, I seem to recall there are some windows users on this channel :P
18:43 vendethiel tadzik: I have make in cmd.exe :)
18:46 dwarring joined #perl6
18:51 lizmat timotimo++: yes, it's fine that way  :-)
18:58 pippo joined #perl6
19:08 cxreg joined #perl6
19:13 FOAD joined #perl6
19:17 cognominal What are the rakudo VMs that currently support roped strings? I see that QAST.dump works around non roped strings.
19:19 cognominal lizmat, yesterday, in your memoizing implementation, the cache was a lexical variable inside the trait_mod routine. That seemed wrong to me. It seems to be a caching implementation that does not cache. Or am I missing something?
19:20 jnthn cognominal: I'd guess there was a .wrap that closed over the cache?
19:20 lizmat yes, that was my idea as well
19:20 cognominal ho, so I was wrong. Thx for explaining.
19:21 * cognominal go to look the code again with fresh eyes.
19:22 cognominal lizmat++, jhntn++
19:22 lizmat cognominal: every time a sub has a "is cached" attribute, the trait mod is called with a fresh %cache
19:22 lizmat closures++  :-)
19:22 FOAD joined #perl6
19:23 TimToady does that share the cache under recursion?
19:24 lizmat I wouldn't think so, as it is a "my %cache"
19:24 vendethiel it should, since the wrap is called at define time, right ?
19:24 vendethiel well yeah, but the function itself is wrapped when you define the function, right ?
19:25 vendethiel so what's called everytime is the argument to .wrap
19:26 lizmat TimToady: and everytime we see an "is cached" at compile time, the trait mod is called again, afaik
19:26 lizmat so each invocation should have its own "my %cache", shouldn't it?
19:26 TimToady that's not how I'd expect a recursive Ackerman to cache
19:26 jnthn Each sub will have its own cache.
19:27 vendethiel each sub yeah, but if you have a call to `f` in `sub f is cached`, it should cache it, shouldn't it ?
19:27 cognominal I keep getting tripped by the distinction compilation/runtime. I should know by now.
19:27 jnthn Not each invocation of the sub...though maybe lizmat++ menat invocation of the trait_mod.
19:27 lizmat indeed, each trait_mod invocation, that's where the my %cache lives
19:28 lizmat *not* inside the wrapping sub
19:28 TimToady okay
19:28 * vendethiel just apparently misunderstood the "under recursion"
19:29 * jnthn too, but I'm really dumb today :)
19:29 TimToady btw, .gist is not guaranteed to not lose info, but is probably good enough for numbers and strings
19:31 TimToady well, maybe not good enough for strings with spaces
19:31 TimToady well, maybe Capture.gist is good enough though
19:32 treehug8_ joined #perl6
19:33 lizmat except that atm it's dying on some captures... looking at that now
19:33 lizmat "This representation (VMIter) cannot unbox to a native string"
19:34 anaeem1_ joined #perl6
19:35 TimToady well, the spirit of .gist wants to respect laziness, but generating a hash key has to be eager
19:35 TimToady so .gist is still kind of a mismatch
19:35 lizmat .Str then maybe ?
19:36 lizmat which currently is exactly the same as Capture.gist
19:36 TimToady well, .Str isn't guaranteed to round-trip like .perl
19:37 TimToady so maybe you really want a .pretty to sort the keys
19:37 TimToady but then you're hashing on a bunch of whitespae
19:39 FOAD joined #perl6
19:47 virtualsue joined #perl6
19:49 eternaleye joined #perl6
19:50 rindolf joined #perl6
19:52 anaeem1 joined #perl6
19:55 cognominal I suppose that a less naive would have a scheme to limit the number of entries in a given cache, by counting count the calls with a given capture, decaying the count over time, and remove the entries with the less count. I would call that radioactive caches. :)
19:55 cognominal * naïve implementation
19:56 cognominal I have not yet read specs about timers btw
19:58 beastd joined #perl6
20:01 lizmat cognominal: first I think we need hashes with these features
20:02 lizmat than we can hang them in "is cached"
20:02 lizmat (similar to typed hashes)
20:04 vendethiel left #perl6
20:08 nwc10 https://twitter.com/SpaceX​/status/455798296557002752 -- no crazy rockets before Friday :-(
20:10 Vlavv joined #perl6
20:16 anaeem1 joined #perl6
20:20 timotimo http://www.perlfoundation.org/perl6/index.cgi - should this whole wiki perhaps be nuked?
20:20 vendethiel joined #perl6
20:23 moritz from outer space, no less
20:23 moritz though it'd be nice to have a backup of it somewhere
20:24 timotimo aye
20:24 timotimo there's certainly interesting stuff on there, but exposing it to the internet-at-large is dangerous in its current state
20:24 timotimo at least without big fat "this stuff is outdated" warnings all over
20:26 dalek roast: e7510e3 | (Elizabeth Mattijsen)++ | S02-names-vars/perl.t:
20:26 dalek roast: Skip tests that rely on ordered hash keys
20:26 dalek roast: review: https://github.com/perl6/roast/commit/e7510e3135
20:30 lue .oO(we need a November-powered wiki.perl6.org)
20:33 dalek rakudo/nom: 488e8af | (Elizabeth Mattijsen)++ | src/core/Capture.pm:
20:33 dalek rakudo/nom: Re-imagine Capture.gist
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/488e8affb1
20:33 dalek rakudo/nom: eea1867 | (Elizabeth Mattijsen)++ | src/core/Routine.pm:
20:33 dalek rakudo/nom: "is cached" now uses Capture.gist to generate keys
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eea1867dfa
20:35 dalek rakudo/nom: af7633e | (Elizabeth Mattijsen)++ | docs/ChangeLog:
20:35 dalek rakudo/nom: Changelog update wrt Hash.(perl|gist)
20:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af7633ed39
20:36 colomon lizmat: woah, does that "is cached" work?  It's drastically simpler than I imagined it would be...
20:36 lizmat it works with the spectests I've thrown at it
20:36 lizmat please try to break  :-)
20:37 dmol joined #perl6
20:37 colomon lizmat++
20:40 dalek rakudo/nom: a75d82d | (Elizabeth Mattijsen)++ | docs/ChangeLog:
20:40 dalek rakudo/nom: Clarify Capture.WHICH in Changelog
20:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a75d82d7f1
20:49 stevan_ joined #perl6
20:54 AW3i joined #perl6
21:01 denis_boyun__ joined #perl6
21:02 ilogger2 joined #perl6
21:03 dalek roast: b5a7af8 | (David Warring david.warring@gmail.com)++ | rosettacode/greatest_element_of_a_list.t:
21:03 dalek roast: tweak OUT override
21:03 dalek roast: review: https://github.com/perl6/roast/commit/b5a7af8b9b
21:03 dalek roast: bdc2189 | (David Warring david.warring@gmail.com)++ | integration/advent2009-day21.t:
21:03 dalek roast: completing advent 2009 day 21
21:03 dalek roast: review: https://github.com/perl6/roast/commit/bdc2189ac4
21:16 dayangkun joined #perl6
21:32 molaf joined #perl6
21:43 lizmat gnight, #perl6!
21:43 timotimo gnite #perl6 and lizmat
21:53 eternaleye joined #perl6
21:59 thou joined #perl6
22:12 donaldh joined #perl6
22:13 BenGoldberg joined #perl6
22:15 thou joined #perl6
22:17 dragon_d joined #perl6
22:41 benabik joined #perl6
22:53 pippo left #perl6
23:30 benabik joined #perl6
23:34 average joined #perl6
23:34 average yo timotimo
23:34 average TimToady: read your blogpost partially, saw at the end of it, you encourage someone to have a look at this-and-that-and-the-other
23:34 average timotimo  ^^
23:34 average sorry, my keyboard slipped
23:35 average timotimo: can we take this to e-mail to talk more about it ?
23:38 average ah, just e-mailed you
23:38 average I mean.. in the process of doing so
23:43 average email sent

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs