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