»ö« 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/tmpfile␤Unsupported use of $. variable; in Perl 6 please use the filehandle's .line method␤at /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«A␤A␤»
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 context␤use of uninitialized value of type Any in string context␤use 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/tmpfile␤Placeholder variable '$^a' cannot override existing signature␤at /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«42␤23␤»
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«foo␤bar␤»
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/tmpfile␤Undeclared 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