Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-20

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 pink_mist I think they're automagically inflated to a class if you try? maybe?
00:02 dalek roast: 87bf26b | TimToady++ | S03-junctions/misc.t:
00:02 dalek roast: actually test onearg semantics on junctions
00:02 dalek roast: review: https://github.com/perl6/roast/commit/87bf26b656
00:02 dalek roast: 9079e5d | TimToady++ | S03-operators/ (2 files):
00:02 dalek roast: junctional listops don't flatten now
00:02 dalek roast: review: https://github.com/perl6/roast/commit/9079e5ddc8
00:03 BenGoldberg m: my role foo { }; say foo.new().WHAT
00:03 camelia rakudo-moar f8ee5f: OUTPUT«(foo)␤»
00:03 dalek rakudo/nom: 885cf27 | TimToady++ | src/core/Junction.pm:
00:03 dalek rakudo/nom: do onearg correctly on junctional listops
00:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/885cf27d0a
00:05 dalek rakudo/nom: 7173d13 | TimToady++ | src/core/operators.pm:
00:05 dalek rakudo/nom: logic infixes shouldn't flatten
00:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7173d13f88
00:07 TimToady there's a difference: IntStr etc. are for when the user has no option but to use a textual representation of a number, whereas there is no Rat trap here, just an overspecified target compared to the source
00:09 [Coke] masak said many times that ints were not rats... but didn't say why the type system ended up in such a way that it wasn't.
00:16 [Coke] That might help the medicine go down, anyway.
00:18 mr_ron joined #perl6
00:21 laouji joined #perl6
00:21 TimToady well, we might be able to work something out that can do information-preserving autoconversions anyway
00:21 TimToady it's really binding that has to be super strict
00:29 gfldex joined #perl6
00:32 telex joined #perl6
00:35 mspo just got rakudo-star 2015.07 pkgsrc package working (I think)
00:35 ShimmerFairy [Coke], TimToady: my guess is that class inheritance is all about "lemme take this, and add more features to it!", where mathematical types are more about "lemme take this domain, and restrict it a bit"
00:35 dnmfarrell joined #perl6
00:36 mspo not sure if I should make lang/perl6 just point to this pkg or just rename it to perl6 or what
00:36 ShimmerFairy So 'subset's are perhaps more suited for a mathematical version of the numeric hierarchy, however they're not featureful enough to do stuff like subclassing can.
00:39 ShimmerFairy (in more concrete terms, if we made Int.isa(Rat), then we'd have to cut off functionality inherited from the Rat class that doesn't make sense for Int, which would most likely cause a number of issues)
00:41 TimToady right, so we're not gonna do it that way, if we do anything
00:42 mspo anyone else doing any os packaging?
00:43 ShimmerFairy the Right Solution™ for mathematicians would be to invent a new HOW for restrictive inheritance .oO(use Math::SubsetsPlus)
00:43 dnmfarrell Is it still ok to use .pm6 file endings for Perl 6 class files? (but not .t6 right?)
00:43 TimToady right
00:44 ShimmerFairy dnmfarrell: of course, in fact I would strongly recommend file extensions with a 6 in them :)
00:44 ShimmerFairy (except for .t :P)
00:44 telex joined #perl6
00:44 dnmfarrell Ah that was going to be my next question, whether there was a consensus that .pm6 was to be preferred over .pm
00:44 TimToady free advertising :)
00:45 dnmfarrell haha
00:45 mst plus .pm6 uncomplicates quite a lot of things
00:45 ShimmerFairy dnmfarrell: it's my own personal opinion that Rakudo has made a big mistake using .pm in src/core :P
00:45 dnmfarrell but .t6 files are not executed by Panda I think ...
00:45 dnmfarrell or maybe it's just prove
00:45 mst yeah, the cargo culting of .pm from rakudo core is really upsetting
00:46 pink_mist dnmfarrell: right, nobody suggested using .t6 =)
00:46 dnmfarrell aright thanks for the info everybody!
00:46 mst unfortunately, doing the rename with outstanding branches would be a colossal pain in the derriere
00:46 ShimmerFairy If it wasn't going to be perceived as even more useless than normal bikesheds (which I'm sure it would be), I'd be tempted to just make a big commit and do *.pm -> *.pm6 in one fell swoop :P
00:47 mst I think the problem that somebody noticed was that if you don't 'use v6;' and use .pm as an extension, static tooling gets utterly confused
00:48 ShimmerFairy 'use v6' is another thing I heard hasn't caught on that much (just what I heard), so eek
00:49 mst while I think it would probably be cruel to require it, I thing having linters complain loudly that you should be either using .pm6 or .pm w/'use v6;' would be a net win
00:49 labster use v6; convinces my editor that the file is SQL.
00:49 pink_mist hahah
00:49 mst right, because mysql
00:50 mst could be worse. could be cassandra.
00:50 pink_mist I think I saw somewhere that github (for their code stats) assumes all .pm files are perl 6 unless there's a use statement for a perl5 version in them ... not sure if that's still true though
00:50 ShimmerFairy Maybe if we did a more gradual renaming of files, starting with most-stable core files, it wouldn't be such a problem :P
00:50 mst I think core should be 'as correct as possible' in such things, ideally
00:50 mst since people are totally going to cargo cult whatever it does
00:51 mst right or wrong
00:51 * mst is applying Alias' "everything your users do wrong with your software is your fault" principle here
00:54 * ShimmerFairy afk
01:00 dnmfarrell so with vim to get Perl6 syntax highlighting, you can: use *.pm6 extension, include a syntax directive "# vim: ft=perl6" or have project vimrc. Any other methods people use?
01:01 mst it -should- detect 'use v6;' but apparently that's rarely used enough that things often don't
01:01 * mst prefers vi, and hence doesn't have syntax highlighting at all
01:01 dnmfarrell ah yeah, let me test that
01:02 dnmfarrell my vim doesn't seem to do that (automatically). But it would be easy to add a "use v6;" check in the /vimrc
01:03 mst TimToady: oh, btw, perl5's thing where if it detects a non-perl #! it re-execs is really useful
01:04 mst TimToady: though people have a tendency to look at me really funny when they realise half of my t/*.t start with #!/usr/bin/env tclsh
01:04 dnmfarrell haha
01:06 * mst is getting steadily more polyglot as time goes by
01:07 * TimToady just incorporates all other languages into Perl...
01:08 vendethiel mst++ # tricking people into believing you're writing Perl, when really you're writing Tcl *g*
01:08 frodwith joined #perl6
01:10 mst TimToady: oh, I'll almost certainly end up writing a Tcl grammar eventually ;)
01:14 telex joined #perl6
01:16 japhb jnthn++  # nope.md, both for intrinsic value and because of the excellent choice of filename
01:27 raiph joined #perl6
01:38 telex joined #perl6
01:41 skids joined #perl6
01:41 mr_ron left #perl6
01:46 aborazmeh joined #perl6
01:46 aborazmeh joined #perl6
02:04 dalek rakudo/nom: 1b09de3 | TimToady++ | src/core/List.pm:
02:04 dalek rakudo/nom: list and cache listops can now use +args
02:04 dalek rakudo/nom:
02:04 dalek rakudo/nom: list is not guaranteed to produce a List now, since it can also
02:04 dalek rakudo/nom: pass a Seq through unchanged.  Use List for a guarantee.
02:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1b09de3d13
02:07 dalek roast: 5463a12 | TimToady++ | S03-operators/context-forcers.t:
02:07 dalek roast: account for list listop passing Seq through
02:07 dalek roast: review: https://github.com/perl6/roast/commit/5463a12cbe
02:14 telex joined #perl6
02:29 dalek roast: 247d3fb | TimToady++ | S17-supply/minmax.t:
02:29 dalek roast: reverse is non-flattening now
02:29 dalek roast: review: https://github.com/perl6/roast/commit/247d3fbb68
02:30 dalek rakudo/nom: fd3c578 | TimToady++ | src/core/List.pm:
02:30 dalek rakudo/nom: reverse is now oneargy
02:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fd3c578f52
02:30 dalek rakudo/nom: fec7edb | TimToady++ | src/core/control.pm:
02:30 dalek rakudo/nom: callwith/nextwith shouldn't flatten
02:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fec7edbceb
02:36 * colomon really hopes that means reverse now follows the one argument rule, and not, as he first thought, that reverse had been renamed “oneargy”.
02:36 raiph joined #perl6
02:37 mspo I need to get moar from the build to be different from moar I install
02:46 telex joined #perl6
02:46 noganex_ joined #perl6
02:53 zacts joined #perl6
02:59 lolisa joined #perl6
03:15 dalek roast: b8cea3d | TimToady++ | S32-list/classify.t:
03:15 dalek roast: classify doesn't flatten now
03:15 dalek roast: review: https://github.com/perl6/roast/commit/b8cea3dcae
03:15 dalek rakudo/nom: 89751c5 | TimToady++ | src/core/Any-iterable-methods.pm:
03:15 dalek rakudo/nom: don't need raw on +args
03:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/89751c5fee
03:15 dalek rakudo/nom: f6a2fad | TimToady++ | src/core/ (3 files):
03:15 dalek rakudo/nom: more miscellaneous deflattening
03:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6a2fad5c1
03:15 TimToady I think that pretty much wraps up my flattening audit
03:16 skids mspo: not sure what you need exactly but look at "rakudobrew triple" maybe?
03:16 TimToady everything remaining has a decent reason to stay flattening, usually having to do with expecting all the arguments to be non-structural or they wouldn't work anyway
03:17 rurban joined #perl6
03:18 TimToady hopefully we're finally close to the end of the GLR shakeup
03:28 telex joined #perl6
03:29 skids m: my @a = <a b c d>; @a[(1,2),3].perl.say # so funny story, I accidentially made this happen, and not knowing it was me, or an accident, I docced it.  And a few people liked it, but no real "ruling" on it yet.
03:29 camelia rakudo-moar fec7ed: OUTPUT«(("b", "c"), "d")␤»
03:31 * TimToady still doesn't know what to make of it...
03:32 ShimmerFairy I can't think of a good use for it myself, so I wouldn't be bothered if it disappeared, but I can't help but feel like it's a Cool Thing™
03:35 TimToady well, it's a sort of deep map
03:38 ShimmerFairy TimToady: true, and probably the nicest solution for "pull these elements into this structure".
03:43 vendethiel joined #perl6
03:43 colomon joined #perl6
03:53 ShimmerFairy Huh, 'path' was supposed to be removed from Str, right? 'Cos there's a method path in Cool that makes sure it's still available for Str :P
03:53 ShimmerFairy m: say "foobar".path
03:53 camelia rakudo-moar f6a2fa: OUTPUT«"/home/camelia/foobar".IO␤»
03:54 mspo skids: I'm trying to create a pkgsrc pkg
03:54 laouji joined #perl6
03:54 mspo skids: so when moar is built insid eof the destdir it links with moar.so in the wrong place
03:57 mspo I can probably do the build and then futz with the linking later but it's nasty
04:00 mspo I can also just build radkudo and nqp withouth -star
04:00 mspo err- moar
04:04 telex joined #perl6
04:25 ponbiki joined #perl6
04:26 rmgk_ joined #perl6
04:38 laouji joined #perl6
04:50 telex joined #perl6
04:56 Loren joined #perl6
05:12 raiph joined #perl6
05:36 telex joined #perl6
05:39 kaare_ joined #perl6
05:46 telex joined #perl6
05:49 xinming joined #perl6
06:28 telex joined #perl6
06:48 FROGGS joined #perl6
06:49 FROGGS .tell jnthn I agree with all points made on nope.md fwiw, though I bet there are more nopes out there
06:49 yoleaux FROGGS: I'll pass your message to jnthn.
06:51 ShimmerFairy Where is this nope.md ?
06:52 go|dfish ShimmerFairy: https://gist.github.com/jnthn/040f4502899d39b2cbb4
06:53 FROGGS moritz: was star released already? I won't be able to help today, but probably tomorrow evening (doing the MSI etc)
06:55 ShimmerFairy thanks :)
07:01 ShimmerFairy Hm. I have a question: what is PDL (I know it's a Perl 5 thingy), and why exactly does Perl 6 need to "support" it, according to S09?
07:04 ShimmerFairy AFAICT, the parts of S09 about it read like "how to make modules doing something like PDL", rather than describing anything directly relevant to core.
07:08 mst wut
07:08 mst PDL is perl data language, basically it's a bigass set of operator overloaded classes that allow things like matrix multiplication in perl5 except backed by lovingly hand optimised C code
07:08 mst I helped arrange the PAUSE adoption for it when it got orphaned for a bit
07:09 mst I would strongly suspect that a lot of this stuff is obsoleted by perl6's subsequent choices to be really freaking clever in terms of how you're doing math stuff
07:09 ShimmerFairy mst: well, a lot of reads like "PDLers would want to do [this]" or "A PDL implementation would...", which doesn't sound very core-ish to me :)
07:09 FROGGS mst: at some point we just need to talk to the PDL ppl to know what they'd need
07:10 FROGGS and aid them somehow
07:11 ShimmerFairy mst: I don't know PDL at all, so I couldn't say, but my intuition is that whenever PDL was last written down in S09 was long enough for lots of things to have changed :)
07:12 FROGGS exactly
07:12 mst have you perused p3rl.org/PDL at all?
07:12 mst that should give you a quick overview
07:12 ShimmerFairy I've not, but I'll look
07:12 mst but my bet is that basically what it would mean is "make sure we can define e.g. matrix multiplication operators and have them be reasonably efficient"
07:13 ShimmerFairy My first instinct to that is "use nqp ops [rakudo only, ech] or do something with NativeCall".
07:14 mst please remember I've not read the synopsis, I'm just explaining based on what I know of PDL
07:14 telex joined #perl6
07:14 mst I'm a perl5 person who hangs out here in the name of cross-contamin^Wpollination
07:15 ShimmerFairy There's only a couple dozen mentions of PDL in S09, and I just now flipped through them. So I'm not that much more familiar myself :P
07:15 mst also because I accidentally released rakudo as a CPAN module at one point to help fund the belgian perl workshop
07:15 mst wait, no, french perl workshop
07:15 mst sorry
07:15 mst I'll be doing that again soon now parrot is actually dead and I can do it properly
07:15 mst FSVO soon
07:19 skids My impression of PDL was it was the set of ops that, once Perl6 got them, would plumbed to transparenty use a multi-interpreter cloud/cluster before most anything else would.
07:21 mst it's just like matrix and vector shit but with operator overloading
07:21 mst I ... dunno why it got into a synopsis
07:21 mst except maybe "if we can't overload at least this hard, we suck"
07:23 ShimmerFairy mst: after browsing the QuickStart, I'm of the opinion that Perl 6 doesn't need to offer any special support for PDL, since it can already handle what I've seen.
07:23 ShimmerFairy At the very least, it doesn't need to be support specially labeled for PDL :)
07:24 telex joined #perl6
07:24 mst that's rather my point
07:24 mst hence "if we can't overload at least this hard, we suck"
07:24 ShimmerFairy Also of note is that the P6 version of PDL wouldn't have to hijack infix:<x> , it could write a infix:<×> as it should be :)
07:25 mst that would be nice
07:25 mst the fact I can't oveerload that from pure perl has often made me sad in perl5
07:25 mst (I am, after all, a pure maths grad before I accidentally a programming career ;)
07:26 ShimmerFairy mst: yeah, just took a look and saw that P5 took the C++ route of operator overloading, by the looks of it :(
07:27 mst I dunno, I've largely avoided C++ anything overloading on grounds of the world doesn't contain enough changes of underwear ;)
07:27 ShimmerFairy (Also, the P6 PDL module would be strongly discouraged from defining a compatibility infix:<x> , since that's a Stringy op and we don't generally like conflating meanings like that (cf. eq/==, leg/<=>, etc.))
07:28 mst x is not stringy in perl5
07:28 mst if perl6 has decided to make it more restrictive, that's just weird
07:29 ShimmerFairy mst: infix:<x> works on strings in P6 ("A" x 4 -> "AAAA"), so making it do something numeric too would be a poor idea.
07:30 mst ShimmerFairy: it does in perl5
07:30 mst ShimmerFairy: it also works on lists
07:31 mst ShimmerFairy: (1) x 4 -> (1, 1, 1, 1)
07:31 * mst uses that a lot more than the string version
07:31 ShimmerFairy m: say ((1) x 4).perl
07:31 camelia rakudo-moar f6a2fa: OUTPUT«"1111"␤»
07:31 ShimmerFairy m: say ((1) xx 4).perl
07:31 camelia rakudo-moar f6a2fa: OUTPUT«(1, 1, 1, 1).Seq␤»
07:32 ShimmerFairy the list version is now xx, and x is always stringy :)
07:34 ShimmerFairy mst: basically, unless I'm mistaken, it would be like defining  sub infix:<eq>(Matrix $a, Matrix $b) { }  for matrix equality, instead of using == (or whatever fancy Unicode math op there may be for matrix equality)
07:38 araujo_ joined #perl6
07:38 mst ShimmerFairy: aha, right
07:39 mst just speaking as a mathematician, being able to use x as matrix cross product would be really nice
07:39 mst I could likely live with xx instead :)
07:39 FROGGS .tell jnthn I also think Bit/bit, a proper Complex and Cat are also quite nope
07:39 yoleaux FROGGS: I'll pass your message to jnthn.
07:41 ShimmerFairy mst: the cool people way would be to define the unicode operator × for it :)
07:42 telex joined #perl6
07:49 diana_olhovik joined #perl6
07:50 mst ShimmerFairy: how would I get that on a normal keyboard without wanting to stab myself?
07:51 mst genuine question, I'm normally very much 7-bit clean in terms of what I type
07:51 ShimmerFairy mst: I've got Compose key + x + x
07:51 ShimmerFairy that obviously needs a compose key setup though
07:51 ShimmerFairy m: say "×".ord.base(16)
07:51 camelia rakudo-moar f6a2fa: OUTPUT«D7␤»
07:51 mst also I have a horrible feeling ex-vi will get really confused by that
07:52 ShimmerFairy huh. I'm surprised you'd only have to upgrade to 8-bit clean for that one :P
07:52 mst there are occasionally disadvantages to maintaining an editor written in 1970
07:53 ShimmerFairy mst: nice modules would provide ASCII versions of operators. We do that with « » available as << >>, and all the set ops we provide, for example.
07:56 mst but, yeah, "make it so a PDLish thing can be built" still seems like me to be all that should be retained from whatever
07:56 mst maybe larry'll correct that
07:57 dalek roast: 7a34a79 | FROGGS++ | S02-names/pseudo.t:
07:57 dalek roast: refudge, we know about CORE now
07:57 dalek roast: review: https://github.com/perl6/roast/commit/7a34a79f32
07:57 ShimmerFairy I'm sure we've already got quite a bit of stuff in place for PDL (sans the remaining work on multidim arrays). We've even got support for C++ in NativeCall, for pete's sake! :P
07:58 mst right
07:58 perl6_newbee joined #perl6
08:09 rindolf joined #perl6
08:11 brrt joined #perl6
08:12 telex joined #perl6
08:16 nine joined #perl6
08:17 darutoko joined #perl6
08:20 espadrine joined #perl6
08:22 telex joined #perl6
08:44 masak good antenoon, #perl6
08:46 brrt good * masak
08:47 masak and a fine * it is
08:54 telex joined #perl6
08:59 cognominal joined #perl6
09:07 xinming joined #perl6
09:09 xinming joined #perl6
09:12 CIAvash joined #perl6
09:20 Goblin_ joined #perl6
09:20 Goblin_ How to generate all possible combinations with repetition of given length?
09:20 brrt Goblin_: i'm sorry, i don't understand what exactly you want
09:24 Goblin_ https://en.wikipedia.org/wiki/Combinatio​n#Number_of_combinations_with_repetition
09:34 Goblin_ Тут нет русских?
09:35 spider-mario joined #perl6
09:37 leont joined #perl6
09:40 masak да, конечно мы говорим по-русски
09:40 cognominal Goblin_: you have to write yourselve. There is a .permutations without repetition though
09:41 cognominal m: < a b c >.permutations
09:41 camelia rakudo-moar f6a2fa: ( no output )
09:41 cognominal m: say < a b c >.permutations
09:41 camelia rakudo-moar f6a2fa: OUTPUT«((a b c) (a c b) (b a c) (b c a) (c a b) (c b a))␤»
09:42 cognominal I would not be surprised if does already exist on Rosetta though
09:42 masak Goblin_: it's a good question. I don't know offhand. would need to code it up, I think
09:44 cognominal there is an extremely ineffecient way to do it.
09:45 cognominal Or though I thought.
09:45 cognominal say < a a b c >.permutations.unique
09:45 cognominal m: say < a a b c >.permutations.unique
09:45 camelia rakudo-moar f6a2fa: OUTPUT«((a a b c) (a a c b) (a b a c) (a b c a) (a c a b) (a c b a) (a a b c) (a a c b) (a b a c) (a b c a) (a c a b) (a c b a) (b a a c) (b a c a) (b a a c) (b a c a) (b c a a) (b c a a) (c a a b) (c a b a) (c a a b) (c a b a) (c b a a) (c b a a))␤»
09:45 cognominal apparently it's not unique :(
09:51 cognominal m: say < a a b c >.permutations.unique(as => -> @a { join '', @a })
09:51 camelia rakudo-moar f6a2fa: OUTPUT«((a a b c) (a a c b) (a b a c) (a b c a) (a c a b) (a c b a) (b a a c) (b a c a) (b c a a) (c a a b) (c a b a) (c b a a))␤»
09:52 cognominal ho, Goblin_ was not patient enough
10:02 araujo_ joined #perl6
10:08 jnthn The question said "with repetition", I thought, so no uniq'ing required :)
10:08 yoleaux 06:49Z <FROGGS> jnthn: I agree with all points made on nope.md fwiw, though I bet there are more nopes out there
10:08 yoleaux 07:39Z <FROGGS> jnthn: I also think Bit/bit, a proper Complex and Cat are also quite nope
10:10 araujo joined #perl6
10:13 vendethiel joined #perl6
10:14 jnthn .tell FROGGS thanks, added those to https://gist.github.com/jnthn/040f4502899d39b2cbb4
10:14 yoleaux jnthn: I'll pass your message to FROGGS.
10:20 Peter_R joined #perl6
10:22 timotimo o/
10:24 alpha- joined #perl6
10:24 alpha- left #perl6
10:26 colomon joined #perl6
10:29 mprelude joined #perl6
10:31 vendethiel jnthn: "that works" <- tiny typo
10:31 timotimo should be "that work's"? :P
10:32 * mst blinks
10:32 * mst first read that as 'tiny hippo'
10:33 timotimo the problem about "we already have shaped arrays and such!" is that we can't really give them to NativeCall in a sensible manner
10:33 pmurias joined #perl6
10:33 timotimo i.e. we don't offer any kind of interface yet
10:33 CQ joined #perl6
10:33 aborazmeh joined #perl6
10:33 aborazmeh joined #perl6
10:34 timotimo i haven't looked at the design of our shaped arrays too closely yet; i just remember that numpy has an extremely flexible design that'll allow you to arrange your data in more or less any way you'd like
10:35 timotimo and there's this inline c++ code thing that'll expose these numpy arrays as an extremely high-powered class with a lot of support for advanced slicing and such
10:36 timotimo i'm not sure we'll be able to get somewhere similar
10:36 timotimo without a whole bunch of work
10:39 lizmat good *, #perl6!
10:39 timotimo heyo liz!
10:39 lizmat jnthn: taint mode I guess is also a nope
10:39 lizmat timotimo o/
10:41 jnthn timotimo: I did, afaik, have our shaped arrays laid out as C does lay its out, so as to make at least the easy case work out
10:41 jnthn lizmat: Will add, thanks
10:41 jnthn vendethiel: thanks!
10:42 vendethiel jnthn++
10:42 timotimo jnthn: numpy (or at least scipy) has a whooole lot of code in fortran, so it supports both C and Fortran array layout
10:42 jnthn timotimo: aha
10:42 timotimo but it has these "strides" that can pretty much be anything, IIUC
10:42 jnthn timotimo: Good we have repr poly ;)
10:43 timotimo heh :)
10:45 jnthn gist updated :)
10:45 lizmat jnthn: last year I made a list for myself, good to see many things got implemented  :-)
10:45 jnthn ;)
10:45 jnthn lunch &
10:45 lizmat DYNAMIC::  is that still a thing
10:45 lizmat ?
10:46 lizmat augment: seen by subclasses ?
10:47 lizmat multi level type definitions?
11:03 [Tux] Updating panda as well
11:03 [Tux] X11 forwarding request failed on channel 0
11:03 [Tux] ==> Bootstrapping Panda
11:03 [Tux] Default constructor for 'Panda::Ecosystem' only takes named arguments
11:03 [Tux] in method throw at /pro/3gl/CPAN/rakudobrew/moar-nom/install/​share/perl6/runtime/CORE.setting.moarvm:1
11:03 [Tux] in sub make-default-ecosystem at /pro/3gl/CPAN/rakudobrew/moar-​nom/panda/lib/Panda/App.pm:39
11:03 [Tux] in sub MAIN at bin/panda:16
11:03 [Tux] in block <unit> at bin/panda:95
11:04 FROGGS[mobile] joined #perl6
11:05 timotimo lizmat: "augment seen by subclasses" is not going to make it into 6.christmas? :o
11:05 timotimo that seems pretty bad
11:05 lizmat well, that is the question
11:05 FROGGS[mobile] jnthn: what's this flexible type unint4 for you are talking about? :o)
11:06 lizmat timotimo: currently, classes don't know their subclasses: only subclasses know their parent class
11:06 FROGGS[mobile] lizmat: I dont think that this would be hard to solve...
11:06 timotimo mhh
11:06 lizmat jnthn: last time I raised this with jnthn, he seemed to find it not that easy to fix
11:07 timotimo classes should not keep their subclasses alive in a GC situation
11:08 timotimo that's the first thing that comes to my mind at least
11:09 timotimo building a simple nqp-level array or hash into a ClassHOW that tracks the subclasses for method cache invalidation would make classes uncollectable
11:14 cognominal I thought there already was weak hashes in MoarVM
11:23 timotimo oh?
11:29 Marius joined #perl6
11:29 Marius Marius1984
11:30 Guest98026 Titulo hack01 Banck $ tress start
11:30 Guest98026 Start tress
11:30 Guest98026 Tress
11:30 Guest98026 Arvores iniciar
11:30 Guest98026 Nick serv
11:31 timotimo hello marius, how can we help you?
11:32 Guest98026 Cancelar tudo
11:33 Guest98026 Como posso hackear um jogo?
11:34 pink_mist Guest98026: do you speak english?
11:34 Guest98026 Sair
11:36 kid51 joined #perl6
11:36 tadzik http://i.imgur.com/fNEy5Wd.gif
11:37 Loren evening , #perl6
11:37 timotimo helloren
11:38 Loren timotimo, hi.
11:40 vendethiel o/
11:43 btyler_ hi folks. continuing with some meta-programming messing around, how do I dynamically add an attribute with an accessor? add_attribute + add_method that secretly does $attribute.get_value feels a bit clunky, and isn't working to boot: https://gist.github.com/kanat​ohodets/f193d552caa755e32d23
11:52 btyler_ to save a click through: "doesn't work" here means: I self.^attributes lists the given attribute, but when I grep it out of self.^attributes and do $attr.get_value(self), I get a crash saying "no such attribute" (on this object, presumably)
11:58 xinming joined #perl6
12:00 kid51 A perl6 beginner's question:  To use the p6doc tool to read the documentation, you have to have a perl6 executable installed -- correct?
12:00 yoleaux 17 Jun 2014 14:13Z <[Coke]> kid51: Pending parrot-nyc-users request that I can't do anything with. it's been pinging me for a few days
12:03 lizmat kid51 o/
12:03 lizmat it has been a while
12:03 kid51 2 weeks is a while?
12:04 pink_mist well yoleaux had a message for you from June 2014 0_o
12:04 lizmat the message from [Coke] was from June 2014 ?
12:05 lizmat kid51: IRL indeed  :-)
12:05 lizmat kid51: I'm afraid I cannot answer your question...  feels to me like you should have a perl6 installed
12:05 lizmat note that "make install" does *not* install a system wide perl6
12:06 lizmat it just installs it in the local install dir
12:06 lizmat personally, I have a symlink to my most used perl6 in /usr/local/bin
12:07 kid51 Looking at the README for Rakudo Star, it states that, upon build, the executable is installed into ./install/ -- not into a more permanent location like /usr/local/
12:07 kid51 Is there any reason *not* to install into /usr/local/
12:08 kid51 ?
12:10 psch no particular rakudo-specific reason afaik
12:11 lizmat kid51: ah, rakudo-star is a bit of a different beast
12:11 kid51 Background: dha has been asking me to work with him on his p52p6 documentation efforts.
12:11 * lizmat is a rakudo-star noob
12:12 lizmat ++kid51 dha++  :-)
12:12 * kid51 knows nothing about current state of perl6 language; is not currently interested in contributing to perl6 source code; perl 6 docs are separate repository
12:13 kid51 So I don't see need for git checkout of perl6 itself or need to keep up with HEAD
12:14 psch i think installing rakudo or rakudo-star into /usr/local means 1) you have package manager untracked files there 2) you have run panda as root
12:14 kid51 What is panda?
12:15 psch kid51: our cpanm equivalent, i think?  cpanm is the small one that doesn't do that much right? :)
12:15 [ptc] kid51: it's a package manager for perl6
12:15 [ptc] similar in spirit to cpanm
12:18 kid51 psch: If I am compiling rakudo-star (or even just rakudo) from source, I am by definition not using a package manager -- in which case *all* installed files are "package manager untracked" -- correct?
12:18 kid51 Does panda come with Rakudo Star?
12:19 psch kid51: sure, but many distros recommend not putting those kind of files into /usr/, but instead ~/usr for example
12:19 psch kid51: i personally don't have strong feelings about that, but i've read that some people do
12:23 pink_mist is there a local::lib equivalent for perl6?
12:24 lizmat pink_mist: there will be, in a way
12:24 lizmat thing is, rakudo won't have a centrally managed package list
12:25 lizmat but having said that, it is currently in flux pretty much
12:25 pink_mist oh, so there won't be a cpan for p6?
12:25 lizmat pink_mist: why would there not be  a cpan for perl6
12:25 lizmat ?
12:26 lizmat there will be many (conceptually speaking)
12:26 lizmat please read S22
12:26 pink_mist oh, you said there wouldn't be a centrally managed package list ... I assumed that meant no cpan
12:26 lizmat ah, I meant locally
12:26 pink_mist so in that case I don't  understand what you actually meant with that. could you explain further?
12:27 rurban joined #perl6
12:27 lizmat S22 describes a "recommendation manager"
12:27 lizmat that you *could* equate to CPAN's module list
12:27 lizmat but there does not need to be a single one in the world  :-)
12:28 pink_mist alright, wonder how that will work out :P
12:29 lizmat :-)  me too  :-)
12:33 kid51 So what I ended up doing was:
12:33 kid51 perl Configure.pl --backend=moar --gen-moar --prefix=/home/jkeenan/rakudo
12:34 kid51 and then adding /home/jkeenan/rakudo/bin to PATH in .bashrc
12:34 kid51 $ perl6 -v
12:34 kid51 This is perl6 version 2015.07.2 built on MoarVM version 2015.07
12:35 lizmat looks legit to me :-)
12:39 ShimmerFairy psch: well, first of all, /usr/local is specifically supposed to be for outside-package-manager system-wide install (AFAIU), and secondly you can most certainly run panda without root :)
12:42 kid51 Speaking of package managers, ... the results for apt-cache search rakudo seem horribly out of date; refer to Rakudo as Perl 6 on Parrot VM
12:44 ShimmerFairy kid51: not surprised. I imagine things will get updated quickly once Christmas arrives, though :)
12:50 Psyche^ joined #perl6
12:51 psch ShimmerFairy: fair enough, it's that's what /usr/local is for i probably misremember whatever rant i read
12:51 psch ShimmerFairy: and yeah, i saw panda install $pkg $to a bit afterwards
12:52 ShimmerFairy psch: at least on gentoo that's how it works, so I can't help but think that any package manager making use of /usr/local is perhaps not very good :P
12:52 ShimmerFairy psch: ? just  panda install Module::Name  works. It'll install to ~/.perl6
12:52 * psch shrugs
12:52 psch i don't use panda much :P
12:54 psch ((removed))
12:54 psch err whoops
12:54 tadzik oh, mispaste :)
12:54 psch yeah...
12:54 psch fixing my mouse
12:54 tadzik what would that lead to.. :P
12:54 psch uhm
12:54 psch i think trails in the sky
12:54 psch ohh
12:54 psch no
12:54 psch horrible disgusting porn
12:54 psch >_>
12:54 psch yeah well vOv
12:55 psch moritz: can i ask you to scrub that..? ._.
12:55 psch ((removed))
12:55 psch ohh ffs
12:55 moritz psch: first stop pasting that stuff please :-)
12:55 psch yeah
12:56 psch sorry
12:56 * pink_mist coughs
12:58 tadzik so, how do we scratch that off everyone's immediate backlog. Have you guys heard? Rust 1.3 is out or something
12:59 psch i can complain about getBI and makeBI..?
12:59 tadzik has anyone tried it yet? It seems like an interesting language, kind of forcing you to change your way of thinking about things
12:59 psch it's weird and complicated
13:00 moritz tadzik: I've toyed a bit with Rust (0.9 iirc), but quickly gave up, because I had no real use case
13:00 moritz tadzik: but I'd seriously consider it if I had something very low-level to do
13:00 psch oh, they a stringly-typed switch/case?
13:01 psch https://doc.rust-lang.org/book/patterns.html yeah, no, it's almost given/when with junctions :o
13:01 tadzik wow :)
13:01 psch and ranges
13:02 leont Rust looks to me like the first credible C++ replacement I've seen so far
13:02 leont I hope it will kill off Go
13:03 [ptc] kid51: the Debian packages for MoarVM/NQP/Rakudo are in the process of being updated to current Rakudo
13:03 moritz leont: unlikely; Go seems to appeal to the pythonistas, not to the low-level programmers
13:03 [ptc] kid51: MoarVM is already packaged and (I believe) 2015.07 or 2015.08 is current
13:04 leont To me, Go's niche seems to be "I want a fast somewhat low level language without having to deal with low-level issues"
13:04 [ptc] if I bother to kick myself in the backside, nqp might end up happening soon...
13:05 psch this IntStr stuff is all kinds of confusing, as mentioned
13:05 psch because it kind of works, but breaks in some cases
13:07 psch like for example after .^isa($type)
13:07 psch but not after .isa($string)
13:08 psch i've figured out that it's something about decont... vOv
13:08 psch $ ./perl6-j -MTest -e'use nqp; my $intval = val("42"); print +$intval, " ", nqp::decont($intval), " " andthen print +$intval, " "; say +$intval'
13:08 psch 42 42 1 1
13:09 psch which is scary because why would decont change contents of the fields..?
13:10 psch https://gist.github.com/pe​schwa/f054f0b8a8baaf72e3c2 is the current diff, careful: Java :P
13:12 psch i am fairly confident that it's probably somewhere in there, because that code is very involved in everything IntStr
13:18 psch the andthen also doesn't cause it either, replacing that with a ; gives the same output
13:20 mprelude joined #perl6
13:27 psch oh, i found at least one thing that's completely bogus in my makeBI impl there
13:29 bbkr_ hi. is is safe in NativeCall to declare overloaded functions like "sub cfunc ( OpaquePointer, int ) is native( 'libsomething' ) { * };" and "sub cfunc ( OpaquePointer, Str ) is native( 'libsomething' ) { * };" ?
13:31 kaare_ joined #perl6
13:31 bbkr_ I remember NativeCall was cheating a bit few years ago when it came to finding function by signature and I'd like to know if it's still needed to declare conflicting C function names in separate Perl 6 namespaces
13:46 FROGGS[mobile] joined #perl6
13:49 FROGGS[mobile] bbkr_: should be safe, yes
13:49 bbkr_ thanks
13:50 dalek rakudo/nom: 0901378 | lizmat++ | src/core/IO/Handle.pm:
13:50 dalek rakudo/nom: Fix "words".IO.lines(10).elems
13:50 dalek rakudo/nom:
13:50 dalek rakudo/nom: And make sure we close the handle in that case if necessary
13:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/09013785ba
13:50 lizmat cycling&
13:52 bbkr_ does C size_t has any special representation in NativeCall or can I simply use "int" in signature?
13:53 leont size_t is an unsigned type in C
13:54 leont Typically of the same length as a pointer (which isn't necessarily the same size as an int, in particular on 64 bit systems)
13:54 leont I can't think of any platform where it isn't an unsigned long, but nothing guarantees that I think
13:56 bbkr_ so if I use Perl 6 NativeCall "long" type to map it it will have weird consequences on big values because "long" is signed, right?
13:56 FROGGS[mobile] bbkr_: never use int, always use int* or long, ulong etc
13:57 brrt joined #perl6
13:57 moritz m: &::('
13:57 camelia rakudo-moar f6a2fa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/laoPqrFULI␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/laoPqrFULI:1␤------> 3&::('7⏏5<EOL>␤    expecting any of:␤        single quotes␤        term␤»
13:58 moritz m: &::('CORE')::bla = sub { 42 }
13:58 camelia rakudo-moar f6a2fa: OUTPUT«No such symbol '&::CORE::bla'␤  in block <unit> at /tmp/kPizi5xnTn:1␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/kPizi5xnTn:1␤␤»
13:58 bbkr_ thanks
13:58 moritz m: &::('CORE')::none = sub { 42 }
13:58 camelia rakudo-moar f6a2fa: OUTPUT«Cannot modify an immutable Sub␤  in block <unit> at /tmp/Hw555w0y1_:1␤␤»
14:10 TimToady heh, http://xkcd.com/1579/
14:10 Sqirrel_ joined #perl6
14:34 CIAvash joined #perl6
14:39 FROGGS[mobile] :o)
14:41 FROGGS[mobile] TimToady : shall we create a release plan for roast?
14:42 geekosaur yak shaving crossed with cat herding >.>
14:42 TimToady let's at least plan to
14:42 FROGGS[mobile] k, *g*
14:44 timotimo i'd suggest switching that to be "yak herding and cat shaving" instead, but shaving cats isn't terribly easy, either
14:46 TimToady maybe put the cat shaving into nope
14:49 khw joined #perl6
14:53 moritz herd shaving and yak catting
14:59 lucs have yaks, shred cats
15:02 FROGGS[mobile] O.o
15:07 btyler_ m: class Foo { }; Foo.^add_attribute(Attribute.new(name => 'bar', has-accessor => True, package => Foo, type => Str)); Foo.^compose_attributes; my $foo = Foo.new(bar => 'baz'); say $foo.bar;
15:07 camelia rakudo-moar 090137: OUTPUT«Method 'bar' not found for invocant of class 'Foo'␤  in block <unit> at /tmp/j86RSErl34:1␤␤»
15:10 btyler_ anyone know what I'm missing? Attribute->compose seems to handle generating the accessor, and that gets called by Perl6/Metalmodel/AttributeContainer compose_attributes
15:12 BenGoldberg joined #perl6
15:13 FROGGS[mobile] what if you augmented Foo before calling the method?
15:14 skids joined #perl6
15:14 FROGGS[mobile] (augment Foo { };)
15:15 btyler_ m: class Foo { }; Foo.^add_attribute(Attribute.new(name => 'bar', has-accessor => True, package => Foo, type => Str)); Foo.^compose_attributes; my $foo = Foo.new(bar => 'baz'); augment Foo { }; say $foo.bar;
15:15 camelia rakudo-moar 090137: OUTPUT«5===SORRY!5===␤Type 'Foo' is not declared␤at /tmp/5YUqlYCjD3:1␤------> 3oo = Foo.new(bar => 'baz'); augment Foo 7⏏5{ }; say $foo.bar;␤Malformed augment␤at /tmp/5YUqlYCjD3:1␤------> 3oo = Foo.new(bar => 'baz'); augment Foo 7⏏5{ };…»
15:16 FROGGS[mobile] augment class Foo { }?
15:16 FROGGS[mobile] I dunno
15:17 btyler_ did augment class, error message said "you need monkey typing", did that, and back to "method bar not found for invocant of class Foo"
15:17 FROGGS[mobile] :o(
15:25 rindolf joined #perl6
15:27 timotimo btyler_: when you write Foo { }, the class is already composed
15:27 timotimo what you want to do is create the class without the "class" syntax
15:27 timotimo https://github.com/timo/ADT/​blob/master/lib/ADT.pm6#L55
15:27 timotimo ^- btyler_ does this help?
15:28 timotimo this code creates a supertype and a bunch of derived subtypes and gives all of them some attributes with accessors
15:28 timotimo then, at line 177, the container type gets .HOW.compose'd
15:29 timotimo at line 81, all the subclasses have already been composed
15:29 btyler_ cool, thanks
15:30 timotimo YW :)
15:31 btyler_ so when I'm doing this sort of thing in a role, this is all taking place before things are composed
15:31 timotimo aye, roles compose when they are either punned or mixed into a class or instance
15:31 btyler_ (doing it outside a role because of the bug with error messages for problems inside roles at the moment)
15:32 timotimo you can put a piece of code into a role that gets run when composation happens
15:32 timotimo er
15:32 timotimo no, i remembered that wrong
15:33 timotimo https://gist.github.com/jnthn/b291be5a7a18398849d4 - this is about Attribute that'll have the method "compose" called on it and you can insert a method into the inheritance chain and call the next one with "nextsame" like shown here
15:52 Ven joined #perl6
15:58 Loren night ,#perl6 && everyone.
16:00 zostay is there any sane way to track down syntax errors that cause: Unhandled exception: Cannot unbox a type object ?
16:00 Ven joined #perl6
16:01 jnthn FROGGS[mobile]: unint is clearly a zombie int... ;)
16:01 jnthn lizmat: What does "multi level type definitions" mean? :)
16:01 jnthn zostay: --ll-exception
16:03 jnthn m: DYNAMIC::
16:03 camelia rakudo-moar 090137: ( no output )
16:03 jnthn Seems to be an implemented thing, even :)
16:04 ShimmerFairy joined #perl6
16:04 Loren maybe perl6-debug-m .. byebye, .sleep()
16:05 jnthn The "subclasses don't see augments" issue isn't a lang definition one; I don't think anyone's really questioned if they should. That's an impl issue. I'm trying to nail down *language* issues at the moment. :)
16:07 zostay hmm... --ll-exception didn't help :(
16:08 timotimo fair enough, jnthn
16:09 jnthn zostay: You need to know how to interpret the output of it :)
16:10 jnthn zostay: Mostly it tells which syntactic construct it exploded while compiling
16:10 jnthn zostay: If you gist what you see I can perhaps figure that bit out
16:11 * jnthn would also like to fix it to give a gooder error :)
16:11 zostay the output with --ll-exception was the same as the without, i don't see anything new to interpret
16:12 timotimo i've just had an idea where my "inlining blocks recursively blows up" problem might come from, but it turns out it's most probably wrong; i thought perhaps Var objects get overshared via compile-time inlining of subs ... but lexical vars or inline blocks would make generating the inline_info bail out anyway, no?
16:12 jnthn It didn't give a stack trace from inside the compiler?
16:13 timotimo how do you know it's a syntax error, then?
16:14 zostay yes, w/o --ll-exception it was giving me a stack trace from the compiler, i was expecting --ll-exception to show me something new
16:14 timotimo right
16:15 timotimo i mirror the ask for a paste :)
16:15 zostay ok, just a sec, i'm building a new rakudobrew since i haven't in a week or so
16:15 timotimo good idea
16:16 kid51 On this page, http://doc.perl6.org/language/5to6, I see under "File-Related Operations" ...
16:16 kid51 spurt "test-file", q:to/END/;
16:16 kid51 ... but when I type that into the repl, I get ..
16:16 kid51 ===SORRY!=== Error while compiling <unknown file>
16:16 kid51 Ending delimiter END not found
16:16 kid51 at <unknown file>:3
16:16 kid51 ------> <BOL>⏏<EOL>
16:16 kid51 expecting any of:
16:16 timotimo ah, yes, heredocs in the repl aren't functional, sorry
16:16 kid51 vertical whitespace
16:16 kid51 whitespace
16:17 kid51 And 'spurt' is not documented at http://doc.perl6.org/routine.html
16:17 timotimo ugh
16:17 zostay https://gist.github.com/zo​stay/c576f8692ae60531f2d4
16:17 timotimo "method, method, method, method, method, method, method, method, method, method"
16:18 moritz m: say (1,2,3).pairs X (4,5,6).pairs
16:18 camelia rakudo-moar 090137: OUTPUT«((0 => 1 0 => 4) (0 => 1 1 => 5) (0 => 1 2 => 6) (1 => 2 0 => 4) (1 => 2 1 => 5) (1 => 2 2 => 6) (2 => 3 0 => 4) (2 => 3 1 => 5) (2 => 3 2 => 6))␤»
16:18 timotimo that doesn't seem like it's happening during parsing
16:18 moritz m: say ((1,2,3).pairs X (4,5,6).pairs).perl
16:18 camelia rakudo-moar 090137: OUTPUT«((0 => 1, 0 => 4), (0 => 1, 1 => 5), (0 => 1, 2 => 6), (1 => 2, 0 => 4), (1 => 2, 1 => 5), (1 => 2, 2 => 6), (2 => 3, 0 => 4), (2 => 3, 1 => 5), (2 => 3, 2 => 6)).Seq␤»
16:18 kid51 Well, that leaves the question of whether 'spurt' is documented or not
16:19 moritz lib/Type/IO.pod:=head2 sub spurt
16:19 zostay blah... i've always found when i get that error its been a missing semi or a comma or something, whether it's an actual syntax error or not
16:19 zostay i'll go back to what i've been doing before and incrementally go through my changes and see which one caused it
16:25 timotimo kid51: right, apparently not documented
16:27 confuseAcat joined #perl6
16:29 kid51 afk
16:31 moritz timotimo: kid51: it's documented in type IO
16:32 moritz there's just some bug with the indexing / HTML generation
16:34 dalek rakudo/nom: c3ecd46 | jnthn++ | src/core/Variable.pm:
16:34 dalek rakudo/nom: Allow Mu, Junction etc. as a variable default.
16:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c3ecd46acb
16:34 dalek rakudo/nom: 97e47a5 | jnthn++ | src/Perl6/Metamodel/ContainerDescriptor.nqp:
16:34 dalek rakudo/nom: Avoid returning default value, so not to sink it.
16:34 dalek rakudo/nom:
16:34 dalek rakudo/nom: Fixes is default(Failure.new).
16:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/97e47a5883
16:34 FROGGS[mobile] jnthn: so it was unint-entional?
16:34 jnthn :P
16:34 dalek roast: 2fe8266 | jnthn++ | S02-names/is_default.t:
16:34 dalek roast: Tests for RT #126110 and RT #126115.
16:34 dalek roast: review: https://github.com/perl6/roast/commit/2fe8266702
16:35 FROGGS[mobile] .oO( this was an un-pun )
16:35 geekosaur p-un?
16:36 cognominal joined #perl6
16:38 FROGGS[mobile] moritz: don't know if you already answered.... but, how far is star?
16:39 jnthn bbiab
16:39 moritz FROGGS[mobile]: it's mostly missing an announcement
16:40 moritz FROGGS[mobile]: otherwise, I'd like to see a pull request in one upstrea module included, but I'd ship it without if necessary
16:40 rurban joined #perl6
16:42 FROGGS[mobile] which one?
16:42 moritz FROGGS[mobile]: https://github.com/labster/p​6-file-directory-tree/pull/5
16:42 moritz oops, already merged :-)
16:43 FROGGS[mobile] *g*
16:44 raydiak just rakudobrewed and trying to bootstrap panda gives Default constructor for 'Panda::Ecosystem' only takes named arguments from lib/Panda/App.pm:39
16:45 dalek star: 1ae5aa4 | moritz++ | modules/p6-file-directory-tree:
16:45 dalek star: Bump File::Directory::Tree version
16:45 dalek star:
16:45 dalek star: to one that has s/done/done-testing/
16:45 dalek star: review: https://github.com/rakudo/star/commit/1ae5aa4062
16:46 moritz raydiak: yes, that's a JIT bug :/
16:46 raydiak hm...workaround?  don't use the JIT for now? :(
16:48 moritz raydiak: assign the return value from the .new to a variable, return that
16:49 timotimo a jit bug? oh f***
16:49 timotimo how come i've never heard of that yet?
16:50 raydiak okay thanks moritz++
16:50 moritz timotimo: you didn't backlog? :-)
16:50 moritz timotimo: it might be not really a JIT "bug" in the usualy sense, merely a missing feature after a rakudobug was fixed
16:51 moritz timotimo: the rakudobug was that return() didn't return nameds, but silently swallowed them
16:53 Alina-malina joined #perl6
16:54 raydiak hooray, adding 'my $ =' between the return and the Panda::Ecosystem indeed fixes it
16:54 timotimo could it also be a spesh bug perhaps?
16:54 lizmat jnthn: re multiple level type definition: defining an array of hashes with Int keys and Str as values
16:55 lizmat I seem to recall there are hints about that in S02
16:56 rurban joined #perl6
16:57 zostay so, i found the problem, but i don't know why i'm getting the 'Cannot unbox a type object' error when i should be getting: Variable '%env' is not declared.
16:58 moritz timotimo: disabling spesh makes the bug go away
16:59 moritz timotimo: but so does disabling JIT
16:59 moritz timotimo: but iirc JIT needs spesh, so it looks like JIT bug to me
17:00 CIAvash joined #perl6
17:01 timotimo right
17:02 zostay so there's a bug a in Perl 6 somewhere that results in the stacktrace i posted in the gist, but i have no idea how to reproduce it with a concise example
17:06 dalek rakudo/nom: 386153c | moritz++ | src/core/IO/Path.pm:
17:06 dalek rakudo/nom: RT #126006: after .spurt, the file exists
17:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/386153c387
17:10 domidumont joined #perl6
17:14 raiph joined #perl6
17:15 domidumont joined #perl6
17:17 perl6_newbee joined #perl6
17:21 timotimo moritz: all i saw in the backlog was PDL discussion :|
17:22 lizmat m: role R { has int $!a }; class A does R { method a() { $!a = 42 } }; say A.new.a   # sight
17:22 camelia rakudo-moar 97e47a: OUTPUT«Cannot assign to an immutable value␤  in method a at /tmp/xjfoxVcXDh:1␤  in block <unit> at /tmp/xjfoxVcXDh:1␤␤»
17:22 moritz timotimo: http://irclog.perlgeek.de/p​erl6/2015-09-19#i_11245158
17:22 lizmat m: role R { has Int $!a }; class A does R { method a() { $!a = 42 } }; say A.new.a   # works fine if it is not a native
17:22 camelia rakudo-moar 97e47a: OUTPUT«42␤»
17:22 lizmat jnthn: ^^^ is that a bug, or a nope ?
17:22 timotimo that's a golfable code here?
17:22 timotimo (if you just run it often enough for the jit to kick in)
17:25 moritz timotimo: nothing golfed yet; and panda just calls that .new once
17:26 timotimo huh!
17:26 timotimo well, it could be caused by On-Stack-Replacement of a caller
17:36 * lizmat just rakudobugged ##126120
17:41 frodwith joined #perl6
18:05 rurban joined #perl6
18:06 rurban joined #perl6
18:08 FROGGS joined #perl6
18:14 xinming joined #perl6
18:17 bartolin joined #perl6
18:26 vendethiel joined #perl6
18:36 z448 joined #perl6
18:40 patrickz joined #perl6
18:46 rindolf joined #perl6
18:55 spider-mario joined #perl6
18:55 rurban1 joined #perl6
18:56 Ven joined #perl6
19:02 rurban joined #perl6
19:12 Ven joined #perl6
19:12 bbkr_ I'm getting mysterious "Internal error: Unwound entire stack and missed handler" when assigning to variable from outside scope inside NativeCall callback. what does it mean?
19:19 espadrine joined #perl6
19:28 lizmat bbkr_: seems more like a question likely to receive an answer on #moarvm
19:30 cognominal joined #perl6
19:32 Ven joined #perl6
19:33 skids joined #perl6
19:40 masak well, without knowing anything else, it means an invariant was broken in the VM.
19:40 jnthn bbkr_: It means that your callback didn't handle an exception, and since there's C stack frames "in the way" things don't really go too well when Moar tries to locate a handler.
19:40 Ven joined #perl6
19:40 masak ah.
19:40 jnthn We should probably try to do something cleverer
19:40 jnthn But it's not clear what the right cleverer thing to do is
19:41 jnthn And I suspect even when we *do* something smarter it'll still be the best practice to write exception handlers in your callbacks.
19:43 jnthn lizmat: The role thing - is one of those situtaions that could never happen before when you couldn't talk about a role's attributes inside of a class body
19:44 jnthn lizmat: It means that rather than just keeping track of what unresolved names we have, we need to keep track of usages, so we can fix them up with type later
19:44 jnthn So, just a straight compiler bug
19:45 lizmat well, I made a ticket, and I could work around it, so if/when this gets fixed, we can revisit the code to make it faster again  :-)
19:48 jnthn It shouldn't be too horrible to fix.
19:48 skids jnthn: WRT language issues, the whole "role vs BUILD" issue, "diamond" role attribute self-conflicts, and Ovid's point about role definition order are spongy spec areas that might do with either nailing down pre-6.0 or noting as unstable-until-later.
19:51 jnthn skids: The BUILD one and the "do we want to merge that branch I did that made accidental overrides harder" are both certainly wanting nailing donw, yeah
19:51 jnthn skids: The self conflict is less of an issue in so far as it's something that just doesn't work, and making it work wouldn't break working code.
19:51 dalek rakudo/nom: cab8889 | lizmat++ | src/core/IO/ (2 files):
19:51 dalek rakudo/nom: GLRify IO::Handle.words properly
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: Makes things between 30% ("words".IO.words[{ $_-10 .. $_-1 }]) and 5x
19:51 dalek rakudo/nom: faster ("words".IO.words.elems).
19:51 dalek rakudo/nom:
19:51 dalek rakudo/nom: The limit positional variable has been removed: because of a proto issue,
19:51 dalek rakudo/nom: this has never worked for IO.words and was not spectested.  It appears that
19:51 dalek rakudo/nom: post-GLR this optimization is basically not needed, since it only marginally
19:51 dalek rakudo/nom: makes things faster at the expense of serious code bloat.
19:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cab8889696
19:53 * jnthn is mostly worried about implementation issues where things work wrongly that pepole will end up relying on
19:53 jnthn Those are the things we probably want to attach to the christmas blocker RT
19:55 * jnthn wonders about taking a trawl through RT now to attach some to that
19:55 jnthn (Had been on my "stuff to do soon" list)
19:58 lichtkind joined #perl6
20:09 lichtkind I just checked that quote sublang is still called $~Q
20:14 Ven joined #perl6
20:19 diana_olhovik joined #perl6
20:24 Zefram_Fysh joined #perl6
20:24 Zefram_Fysh oh hai
20:24 _itz hi zefram
20:25 Zefram_Fysh some people on #london.pm have suggested that you'd appreciate some of my findings from my current bug hunt other than the actual bug reports
20:25 vendethiel o/
20:26 Zefram_Fysh so far most of what I've done has taken the form of "insert awkward value X into language feature Y"
20:26 Zefram_Fysh for example, X = Nil and Y = variable default value, [perl #126105]
20:26 vendethiel .oO( A tester enters a bar and asks for a beer, ten beers, 99999999999999 beers, -1 beers, 3.4 beers and a C'thulhu à
20:27 vendethiel s/à/)/
20:27 Zefram_Fysh yeah, like that
20:27 Zefram_Fysh thing is, Perl 6 has *loads* of each
20:27 Zefram_Fysh so there's an O(n^2) thing going on
20:28 Zefram_Fysh each X/Y combination is an opportunity for there to be a bug
20:28 Zefram_Fysh I've only reported the combinations that turned out to house a bug
20:28 Zefram_Fysh but *every* combination could be made into a roast test
20:30 Zefram_Fysh getting systematic about it would get bugs squashed quicker, and maybe throw up combinations that need some language design thought
20:30 _itz maybe "fuzzing"?
20:30 geekosaur see comment yesterday about human fuzzer
20:31 Zefram_Fysh this is a very directed kind of fuzzing
20:31 Zefram_Fysh actual fully-random fuzzing is good for detecting some kinds of low-level bug, but that's not where Rakudo is atm
20:33 vendethiel well, could ber
20:33 vendethiel .oO( could be, or cold beer? )
20:33 Zefram_Fysh also, I've learned that every kind of value is awkward for something
20:34 Zefram_Fysh the use of unfilled objects notionally of a class to stand for the class is a great source of awkward values for anything that's expecting mundane filled objects
20:35 Zefram_Fysh but conversely, it means that interfaces that want a type object have almost no type constraints, and if they're not careful they can be discombobulated by passing them a filled object
20:35 Zefram_Fysh in [perl #126117], the mundane value 3 is an awkward value for code that expects a type object
20:36 vendethiel I'd like to know if people are 100% decided that they want to see :_ be the default type smiley
20:37 lizmat Zefram_Fysh: we welcome bug reports: #perl6 has a history of people doing crazy things and generate bug reports  (the masak bot comes to mind :-)
20:38 lizmat Zefram_Fysh: I would not expect all of them to be resolved, even before 6.Christmas though
20:41 Zefram_Fysh that's OK; I'm not expecting all of mine to be resolved quickly
20:43 jnthn We're better off with them in RT, though :)
20:43 Zefram_Fysh many of them look like they ought to be small jobs, though.  jnthn++ has made a start on those
20:44 jnthn Zefram_Fysh: Yeah, many so far look to be easy fixes - it's just that nobody really tried it before.
20:45 Zefram_Fysh yeah.  that's where a systematic approach would come in
20:45 lizmat m: my Int:D $a = 42; say $a
20:45 camelia rakudo-moar cab888: OUTPUT«42␤»
20:45 lizmat m: my Int:D $a; say $a   # also fine, I would think
20:45 camelia rakudo-moar cab888: OUTPUT«(Int)␤»
20:45 Zefram_Fysh yeah
20:45 jnthn lizmat: I added the RT for that just moments ago
20:45 lizmat m: my Int:D $a = Int; say $a   # should fail ?
20:45 camelia rakudo-moar cab888: OUTPUT«(Int)␤»
20:45 Zefram_Fysh is :D supposed to work there?
20:46 Zefram_Fysh I tried it, and saw that it's silently ignored
20:46 jnthn lizmat: But I suspect definedness types are, for 6.christmas purposes, going to fall into the same category as coercion types: only allowed on parameters
20:46 lizmat I'm not sure, but it is *not* complaining either  :-)
20:46 Zefram_Fysh but I haven't got far enough into the specs to understand what it's meant to do there
20:46 jnthn So the 6.christmas answer is "reserved for the future" :)
20:46 Zefram_Fysh m: my Int:wibble $a; say $a
20:46 lizmat jnthn: wfm
20:46 camelia rakudo-moar cab888: OUTPUT«(Int)␤»
20:47 ShimmerFairy m: sub foo(--> Int:U) { 42 }; say foo
20:47 camelia rakudo-moar cab888: OUTPUT«42␤»
20:47 ShimmerFairy they don't work on return values though :(
20:47 Zefram_Fysh if it's reserved for the future, it ought to error while unsupported
20:48 Zefram_Fysh and :wibble should error too
20:48 jnthn Zefram_Fysh: Agree
20:49 ShimmerFairy jnthn: are return types different enough from parameters that they fall into the "nope.md" bucket too?
20:50 jnthn ShimmerFairy: Not sure; the lazy answer is "yes" ;)
20:52 lizmat perhaps --> Foo:T should error for now
20:52 lizmat only allow --> Foo
20:53 lizmat same for my Foo:T $a
20:53 ShimmerFairy jnthn: sure, but that'd be a shame considering it's so near parameters textually :P
20:53 lizmat to at least make sure the syntax doesn't survive into a future error
20:56 jnthn ShimmerFairy: Having plenty of years of nice things to do beyond 6.christmas isn't really a shame... :)
20:57 jnthn 6.christmas is just the end of the beginning :)
20:57 ShimmerFairy jnthn: that's true. I'm excited to see what Perl 6.1's development will look like :)  .oO(More RFCs? :P)
21:01 vendethiel *g*
21:06 dalek specs: c432736 | lizmat++ | S32-setting-library/IO.pod:
21:06 dalek specs: Update .lines and .words more to reality
21:06 dalek specs: review: https://github.com/perl6/specs/commit/c432736cb2
21:07 leont joined #perl6
21:07 lichtkind jnthn: how much work is it to rename $~Q to $~Quote
21:07 _28_ria joined #perl6
21:12 TEttinger joined #perl6
21:15 * lizmat is looking at https://rt.perl.org/Public/​Bug/Display.html?id=125626
21:16 lizmat I'm thinking in a post-GLR world, we don't need lines($limit) anymore
21:16 lizmat "words".IO.lines[^10] should give you the first 10 lines eagerly (without reading more than needed)
21:17 vendethiel lizmat: how far are we from that?
21:17 jnthn lizmat: Indeed
21:18 lizmat I've got a patch for that already
21:18 lizmat it's just that there are some spectests that expect lines($limit) to work
21:19 vendethiel lizmat: is there a perf hit?
21:20 lizmat well, I GLRified it in 6252fc45b9751a7052248
21:20 lizmat but when working on .words, I realized the performance gain is minimal, and the code bloat s significant
21:21 dalek roast: 704a2a3 | skids++ | S12-construction/BUILD.t:
21:21 dalek roast: Add test for RT#123407
21:21 dalek roast: review: https://github.com/perl6/roast/commit/704a2a358a
21:21 lizmat also: on .words I found out a. it was not tested, and b. .IO.words($limit) didn't work because of a proto problem
21:21 vendethiel lizmat: well, for a "deprecated" time, can't lines($limit) just be callsame[^$limit]?
21:22 lizmat well, it's slightly trickier than that
21:22 lizmat as the IO::Handle may have read some lines already, so it would involve some calculations with $!ins as well
21:22 lizmat but yeah
21:23 vendethiel right
21:23 vendethiel I guess otherwise, it wouldn't be that much code bloat..
21:24 jnthn OK, I've been through the whole RT queue :)
21:24 lizmat ok, I'll make the tests pass with a temporary? candidate
21:24 jnthn https://rt.perl.org/Ticket/Display.html?id=123766 is now my "Rakudo to go with 6.christmas" worklist
21:25 jnthn A word of warning: while picking tickets off from thre is of course encouraged, some I have explicitly but in there with the intention of rejecting them.
21:25 jnthn *put
21:25 jnthn Perhaps with a negative spectest and/or wording updates in the design docs.
21:25 jnthn So don't assume just 'cus I added it means I agree :)
21:26 jnthn for example, the bug about earliest is in there as a reminder that we're killing that :)
21:26 lizmat didn't we kill that already ?
21:26 lizmat nope, we killed winner  :-)
21:27 jnthn Yeah, react/whenever is the replacement :)
21:27 jnthn Just need to make sure Channel.Supply is in good order.
21:27 lizmat so, deprecation cycle ?
21:27 jnthn We can add a deprecation note now on it
21:27 jnthn And make it elligible in the next release
21:28 jnthn So there's one more with it
21:28 jnthn Generally, the tickets I've picked are those that represent a notable semantic issue that carries risk of not being able to make a desirable change in the future.
21:30 lichtkind lizmat: can i have a small chat?
21:30 lizmat sure
21:30 jnthn lichtkind: On the rename, probably not much, but why? :)
21:31 jnthn lichtkind: It's probably clearer what it means as Quote though
21:31 lichtkind jnthn: over year ago i had small chat with $larry and he agreed so i changed it in the syn and tablets
21:31 lichtkind buts had no effect on implementation
21:32 jnthn lichtkind: ah, OK
21:32 telex joined #perl6
21:32 jnthn lichtkind: Well, yeah, patching syn and sitting and waiting is not going to be a very successful strategy ;)
21:33 jnthn lichtkind: If you didn't already, please RT it :)
21:34 lizmat lichtkind: send an email to rakudobug@perl.org
21:35 * jnthn notes there are 118 tickets to look into in the list
21:36 lichtkind thanks
21:38 lichtkind done
21:44 jnthn Time for some rest...see if I can get rid of my cold... &
21:48 masak 'night, jnthn
21:56 dalek rakudo/nom: 3480aac | lizmat++ | src/core/IO/ (2 files):
21:56 dalek rakudo/nom: Remove special handling of lines(something)
21:56 dalek rakudo/nom:
21:56 dalek rakudo/nom: This is now a frontend for lines[something] and should probably be deprecated.
21:56 dalek rakudo/nom: Also added 'pull-exactly' candidates for faster slicing.
21:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3480aacc35
21:59 felher joined #perl6
22:01 Allan_ joined #perl6
22:01 masak 'night, #perl6
22:01 lizmat gnight masak jnthn
22:02 lichtkind good night mäsak
22:02 lichtkind good night jnthn
22:04 gt9th joined #perl6
22:26 ShimmerFairy Hm. $~Quote feels wrong to me somehow. I think I'm very used to it being called the "Q language", not the "Quote language" :)
23:05 laouji joined #perl6
23:26 laouji joined #perl6
23:28 dalek rakudo/nom: c189c7e | lizmat++ | src/core/Str.pm:
23:28 dalek rakudo/nom: GLRify Str.words properly
23:28 dalek rakudo/nom:
23:28 dalek rakudo/nom: for $str.words now 2x as fast, and $str.words.elems 15x as fast.
23:28 dalek rakudo/nom: We seem to be calling the push-exactly candidate for 1 element at a time
23:28 dalek rakudo/nom: in a for-loop.  Wonder why it is not calling the pull-one candidate instead.
23:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c189c7e5f5
23:29 lizmat and with this I wish #perl6 a good night

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

Perl 6 | Reference Documentation | Rakudo