»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
pink_mist I think they're automagically inflated to a class if you try? maybe? 00:00
dalek ast: 87bf26b | TimToady++ | S03-junctions/misc.t:
actually test onearg semantics on junctions
00:02
ast: 9079e5d | TimToady++ | S03-operators/ (2 files):
junctional listops don't flatten now
BenGoldberg m: my role foo { }; say foo.new().WHAT 00:03
camelia rakudo-moar f8ee5f: OUTPUT«(foo)␤»
dalek kudo/nom: 885cf27 | TimToady++ | src/core/Junction.pm:
do onearg correctly on junctional listops
kudo/nom: 7173d13 | TimToady++ | src/core/operators.pm:
logic infixes shouldn't flatten
00:05
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:07
[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:09
00:12 Peter_R left
[Coke] That might help the medicine go down, anyway. 00:16
00:18 mr_ron joined 00:20 lichtkind left 00:21 laouji joined
TimToady well, we might be able to work something out that can do information-preserving autoconversions anyway 00:21
it's really binding that has to be super strict
00:22 espadrine left 00:29 gfldex joined 00:31 telex left 00:32 telex joined
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
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.
(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:39
TimToady right, so we're not gonna do it that way, if we do anything 00:41
mspo anyone else doing any os packaging? 00:42
00:42 telex left
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?)
TimToady right
ShimmerFairy dnmfarrell: of course, in fact I would strongly recommend file extensions with a 6 in them :) 00:44
(except for .t :P)
00:44 telex joined
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 :)
dnmfarrell haha 00:45
mst plus .pm6 uncomplicates quite a lot of things
ShimmerFairy dnmfarrell: it's my own personal opinion that Rakudo has made a big mistake using .pm in src/core :P
dnmfarrell but .t6 files are not executed by Panda I think ...
or maybe it's just prove
mst yeah, the cargo culting of .pm from rakudo core is really upsetting
pink_mist dnmfarrell: right, nobody suggested using .t6 =) 00:46
dnmfarrell aright thanks for the info everybody!
mst unfortunately, doing the rename with outstanding branches would be a colossal pain in the derriere
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
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:47
ShimmerFairy 'use v6' is another thing I heard hasn't caught on that much (just what I heard), so eek 00:48
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.
pink_mist hahah
mst right, because mysql
00:50 raiph left
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
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
mst I think core should be 'as correct as possible' in such things, ideally
since people are totally going to cargo cult whatever it does
right or wrong 00:51
mst is applying Alias' "everything your users do wrong with your software is your fault" principle here
ShimmerFairy afk 00:54
00:59 AlexDaniel left
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:00
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
dnmfarrell ah yeah, let me test that
my vim doesn't seem to do that (automatically). But it would be easy to add a "use v6;" check in the /vimrc 01:02
mst TimToady: oh, btw, perl5's thing where if it detects a non-perl #! it re-execs is really useful 01:03
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
mst is getting steadily more polyglot as time goes by 01:06
TimToady just incorporates all other languages into Perl... 01:07
vendethiel mst++ # tricking people into believing you're writing Perl, when really you're writing Tcl *g* 01:08
01:08 frodwith joined
mst TimToady: oh, I'll almost certainly end up writing a Tcl grammar eventually ;) 01:10
01:12 telex left 01:14 telex joined
japhb jnthn++ # nope.md, both for intrinsic value and because of the excellent choice of filename 01:16
01:27 raiph joined 01:29 quester left 01:36 telex left 01:38 telex joined 01:41 vendethiel left, skids joined, mr_ron left 01:46 aborazmeh joined, aborazmeh left, aborazmeh joined
dalek kudo/nom: 1b09de3 | TimToady++ | src/core/List.pm:
list and cache listops can now use +args

list is not guaranteed to produce a List now, since it can also pass a Seq through unchanged. Use List for a guarantee.
02:04
ast: 5463a12 | TimToady++ | S03-operators/context-forcers.t:
account for list listop passing Seq through
02:07
02:12 telex left 02:14 telex joined 02:22 raiph left 02:27 lolisa left
dalek ast: 247d3fb | TimToady++ | S17-supply/minmax.t:
reverse is non-flattening now
02:29
02:30 kid51 left
dalek kudo/nom: fd3c578 | TimToady++ | src/core/List.pm:
reverse is now oneargy
02:30
kudo/nom: fec7edb | TimToady++ | src/core/control.pm:
callwith/nextwith shouldn't flatten
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
02:36 raiph joined
mspo I need to get moar from the build to be different from moar I install 02:37
02:45 telex left 02:46 telex joined, noganex_ joined 02:49 noganex left 02:50 zacts left 02:51 dnmfarrell left 02:53 zacts joined 02:59 lolisa joined 03:03 raiph left 03:05 BenGoldberg left
dalek ast: b8cea3d | TimToady++ | S32-list/classify.t:
classify doesn't flatten now
03:15
kudo/nom: 89751c5 | TimToady++ | src/core/Any-iterable-methods.pm:
don't need raw on +args
kudo/nom: f6a2fad | TimToady++ | src/core/ (3 files):
more miscellaneous deflattening
TimToady I think that pretty much wraps up my flattening audit
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
TimToady hopefully we're finally close to the end of the GLR shakeup 03:18
03:27 telex left 03:28 telex joined
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")␤»
TimToady still doesn't know what to make of it... 03:31
03:31 rurban left
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:32
TimToady well, it's a sort of deep map 03:35
03:35 aborazmeh left 03:38 colomon left
ShimmerFairy TimToady: true, and probably the nicest solution for "pull these elements into this structure". 03:38
03:43 vendethiel joined, colomon joined 03:48 colomon left
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
m: say "foobar".path
camelia rakudo-moar f6a2fa: OUTPUT«"/home/camelia/foobar".IO␤»
03:54 laouji left
mspo skids: I'm trying to create a pkgsrc pkg 03:54
03:54 laouji joined
mspo skids: so when moar is built insid eof the destdir it links with moar.so in the wrong place 03:54
I can probably do the build and then futz with the linking later but it's nasty 03:57
03:59 laouji left
mspo I can also just build radkudo and nqp withouth -star 04:00
err- moar
04:02 telex left 04:04 telex joined 04:08 vendethiel left 04:25 ponbiki joined 04:26 rmgk left, rmgk_ joined, rmgk_ is now known as rmgk 04:38 laouji joined 04:39 khw left 04:49 telex left 04:50 telex joined 04:56 Loren joined 05:12 raiph joined 05:34 telex left 05:36 telex joined 05:39 kaare_ joined 05:45 telex left 05:46 telex joined 05:48 xinming left 05:49 xinming joined 06:26 telex left 06:28 telex joined 06:48 FROGGS joined
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.
ShimmerFairy Where is this nope.md ? 06:51
06:52 raiph left
go|dfish ShimmerFairy: gist.github.com/jnthn/040f4502899d39b2cbb4 06:52
FROGGS moritz: was star released already? I won't be able to help today, but probably tomorrow evening (doing the MSI etc) 06:53
ShimmerFairy thanks :) 06:55
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:01
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:04
mst wut 07:08
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
I helped arrange the PAUSE adoption for it when it got orphaned for a bit
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 :)
FROGGS mst: at some point we just need to talk to the PDL ppl to know what they'd need
and aid them somehow 07:10
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:11
FROGGS exactly 07:12
mst have you perused p3rl.org/PDL at all?
that should give you a quick overview
ShimmerFairy I've not, but I'll look
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:12 telex left
ShimmerFairy My first instinct to that is "use nqp ops [rakudo only, ech] or do something with NativeCall". 07:13
mst please remember I've not read the synopsis, I'm just explaining based on what I know of PDL 07:14
07:14 telex joined
mst I'm a perl5 person who hangs out here in the name of cross-contamin^Wpollination 07:14
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
wait, no, french perl workshop
sorry
I'll be doing that again soon now parrot is actually dead and I can do it properly
FSVO soon
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:19
mst it's just like matrix and vector shit but with operator overloading 07:21
I ... dunno why it got into a synopsis
except maybe "if we can't overload at least this hard, we suck"
07:23 telex left
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
At the very least, it doesn't need to be support specially labeled for PDL :)
07:24 telex joined
mst that's rather my point 07:24
hence "if we can't overload at least this hard, we suck"
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 :)
mst that would be nice 07:25
the fact I can't oveerload that from pure perl has often made me sad in perl5
(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 :(
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.))
mst x is not stringy in perl5 07:28
if perl6 has decided to make it more restrictive, that's just weird
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:29
mst ShimmerFairy: it does in perl5 07:30
ShimmerFairy: it also works on lists
ShimmerFairy: (1) x 4 -> (1, 1, 1, 1) 07:31
mst uses that a lot more than the string version
ShimmerFairy m: say ((1) x 4).perl
camelia rakudo-moar f6a2fa: OUTPUT«"1111"␤»
ShimmerFairy m: say ((1) xx 4).perl
camelia rakudo-moar f6a2fa: OUTPUT«(1, 1, 1, 1).Seq␤»
ShimmerFairy the list version is now xx, and x is always stringy :) 07:32
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:34
07:38 araujo_ joined
mst ShimmerFairy: aha, right 07:38
just speaking as a mathematician, being able to use x as matrix cross product would be really nice 07:39
I could likely live with xx instead :)
FROGGS .tell jnthn I also think Bit/bit, a proper Complex and Cat are also quite nope
yoleaux FROGGS: I'll pass your message to jnthn.
07:41 telex left
ShimmerFairy mst: the cool people way would be to define the unicode operator × for it :) 07:41
07:41 araujo left 07:42 telex joined, skids left 07:49 diana_olhovik joined
mst ShimmerFairy: how would I get that on a normal keyboard without wanting to stab myself? 07:50
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
that obviously needs a compose key setup though
m: say "×".ord.base(16)
camelia rakudo-moar f6a2fa: OUTPUT«D7␤»
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
mst there are occasionally disadvantages to maintaining an editor written in 1970
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:53
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
maybe larry'll correct that
dalek ast: 7a34a79 | FROGGS++ | S02-names/pseudo.t:
refudge, we know about CORE now
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
mst right 07:58
07:58 perl6_newbee joined 08:09 rindolf joined 08:11 telex left, brrt joined 08:12 telex joined 08:16 nine joined 08:17 darutoko joined 08:20 espadrine joined 08:21 telex left 08:22 telex joined
masak good antenoon, #perl6 08:44
brrt good * masak 08:46
masak and a fine * it is 08:47
08:53 telex left 08:54 telex joined 08:55 zacts left 08:59 cognominal joined 09:04 xinming left 09:06 diana_olhovik left 09:07 xinming joined 09:09 xinming left, xinming joined 09:12 CIAvash joined 09:16 perl6_newbee left 09:17 FROGGS left 09:20 Goblin_ joined
Goblin_ How to generate all possible combinations with repetition of given length? 09:20
09:20 lolisa left
brrt Goblin_: i'm sorry, i don't understand what exactly you want 09:20
Goblin_ en.wikipedia.org/wiki/Combination#...repetition 09:24
Тут нет русских? 09:34
09:35 spider-mario joined 09:37 leont joined
masak да, конечно мы говорим по-русски 09:40
cognominal Goblin_: you have to write yourselve. There is a .permutations without repetition though
m: < a b c >.permutations 09:41
camelia ( no output )
cognominal m: say < a b c >.permutations
camelia rakudo-moar f6a2fa: OUTPUT«((a b c) (a c b) (b a c) (b c a) (c a b) (c b a))␤»
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:43 Goblin_ left
cognominal there is an extremely ineffecient way to do it. 09:44
Or though I thought. 09:45
say < a a b c >.permutations.unique
m: say < a a b c >.permutations.unique
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))␤»
cognominal apparently it's not unique :(
09:46 jack_rabbit_ left
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))␤»
cognominal ho, Goblin_ was not patient enough 09:52
10:01 araujo_ left 10:02 araujo_ joined
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
07:39Z <FROGGS> jnthn: I also think Bit/bit, a proper Complex and Cat are also quite nope
10:10 araujo_ left, araujo joined 10:13 vendethiel joined
jnthn .tell FROGGS thanks, added those to gist.github.com/jnthn/040f4502899d39b2cbb4 10:14
yoleaux jnthn: I'll pass your message to FROGGS.
10:20 Peter_R joined
timotimo o/ 10:22
10:24 alpha- joined, alpha- left 10:26 colomon joined 10:28 TEttinger left 10:29 mprelude joined
vendethiel jnthn: "that works" <- tiny typo 10:31
timotimo should be "that work's"? :P
mst blinks 10:32
mst first read that as 'tiny hippo'
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
10:33 pmurias joined
timotimo i.e. we don't offer any kind of interface yet 10:33
10:33 CQ joined, aborazmeh joined, aborazmeh left, aborazmeh joined
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:34
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:35
i'm not sure we'll be able to get somewhere similar 10:36
without a whole bunch of work
10:36 pdcawley left
lizmat good *, #perl6! 10:39
timotimo heyo liz!
lizmat jnthn: taint mode I guess is also a nope
timotimo o/
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
lizmat: Will add, thanks
vendethiel: thanks! 10:42
vendethiel jnthn++
timotimo jnthn: numpy (or at least scipy) has a whooole lot of code in fortran, so it supports both C and Fortran array layout
jnthn timotimo: aha
timotimo but it has these "strides" that can pretty much be anything, IIUC
jnthn timotimo: Good we have repr poly ;)
timotimo heh :) 10:44
jnthn gist updated :) 10:45
lizmat jnthn: last year I made a list for myself, good to see many things got implemented :-)
jnthn ;)
lunch &
lizmat DYNAMIC:: is that still a thing
?
augment: seen by subclasses ? 10:46
multi level type definitions? 10:47
10:55 espadrine left
[Tux] Updating panda as well 11:03
X11 forwarding request failed on channel 0
==> Bootstrapping Panda
Default constructor for 'Panda::Ecosystem' only takes named arguments
in method throw at /pro/3gl/CPAN/rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:1
in sub make-default-ecosystem at /pro/3gl/CPAN/rakudobrew/moar-nom/panda/lib/Panda/App.pm:39
in sub MAIN at bin/panda:16
in block <unit> at bin/panda:95
11:04 FROGGS[mobile] joined
timotimo lizmat: "augment seen by subclasses" is not going to make it into 6.christmas? :o 11:05
that seems pretty bad
lizmat well, that is the question
FROGGS[mobile] jnthn: what's this flexible type unint4 for you are talking about? :o)
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...
timotimo mhh
lizmat jnthn: last time I raised this with jnthn, he seemed to find it not that easy to fix
timotimo classes should not keep their subclasses alive in a GC situation 11:07
11:08 FROGGS[mobile] left
timotimo that's the first thing that comes to my mind at least 11:08
building a simple nqp-level array or hash into a ClassHOW that tracks the subclasses for method cache invalidation would make classes uncollectable 11:09
cognominal I thought there already was weak hashes in MoarVM 11:14
timotimo oh? 11:23
11:29 Marius joined
Marius Marius1984 11:29
11:29 Marius is now known as Guest98026
Guest98026 Titulo hack01 Banck $ tress start 11:30
Start tress
Tress
Arvores iniciar
Nick serv
timotimo hello marius, how can we help you? 11:31
Guest98026 Cancelar tudo 11:32
11:33 brrt left
Guest98026 Como posso hackear um jogo? 11:33
pink_mist Guest98026: do you speak english? 11:34
Guest98026 Sair
11:35 Guest98026 left 11:36 kid51 joined
tadzik i.imgur.com/fNEy5Wd.gif 11:36
Loren evening , #perl6 11:37
timotimo helloren
Loren timotimo, hi. 11:38
vendethiel o/ 11:40
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: gist.github.com/kanatohodets/f193d...a755e32d23 11:43
11:47 kaare_ left
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:52
11:56 xinming left 11:58 xinming joined
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
lizmat kid51 o/ 12:03
it has been a while
kid51 2 weeks is a while? 12:04
pink_mist well yoleaux had a message for you from June 2014 0_o
lizmat the message from [Coke] was from June 2014 ?
kid51: IRL indeed :-) 12:05
kid51: I'm afraid I cannot answer your question... feels to me like you should have a perl6 installed
note that "make install" does *not* install a system wide perl6
it just installs it in the local install dir 12:06
personally, I have a symlink to my most used perl6 in /usr/local/bin
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
Is there any reason *not* to install into /usr/local/ 12:08
?
psch no particular rakudo-specific reason afaik 12:10
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.
lizmat is a rakudo-star noob
++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
So I don't see need for git checkout of perl6 itself or need to keep up with HEAD 12:13
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?
psch kid51: our cpanm equivalent, i think? cpanm is the small one that doesn't do that much right? :) 12:15
12:15 CIAvash left
[ptc] kid51: it's a package manager for perl6 12:15
similar in spirit to cpanm
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
Does panda come with Rakudo Star?
psch kid51: sure, but many distros recommend not putting those kind of files into /usr/, but instead ~/usr for example 12:19
kid51: i personally don't have strong feelings about that, but i've read that some people do
pink_mist is there a local::lib equivalent for perl6? 12:23
lizmat pink_mist: there will be, in a way 12:24
thing is, rakudo won't have a centrally managed package list
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?
lizmat pink_mist: why would there not be a cpan for perl6
? 12:26
there will be many (conceptually speaking)
please read S22
pink_mist oh, you said there wouldn't be a centrally managed package list ... I assumed that meant no cpan
lizmat ah, I meant locally
pink_mist so in that case I don't understand what you actually meant with that. could you explain further?
12:27 rurban joined
lizmat S22 describes a "recommendation manager" 12:27
that you *could* equate to CPAN's module list
but there does not need to be a single one in the world :-)
pink_mist alright, wonder how that will work out :P 12:28
lizmat :-) me too :-) 12:29
12:33 aborazmeh left
kid51 So what I ended up doing was: 12:33
perl Configure.pl --backend=moar --gen-moar --prefix=/home/jkeenan/rakudo 12:34
and then adding /home/jkeenan/rakudo/bin to PATH in .bashrc
$ perl6 -v
This is perl6 version 2015.07.2 built on MoarVM version 2015.07
lizmat looks legit to me :-) 12:35
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:39
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:42
ShimmerFairy kid51: not surprised. I imagine things will get updated quickly once Christmas arrives, though :) 12:44
12:50 Psyche^ joined
psch ShimmerFairy: fair enough, it's that's what /usr/local is for i probably misremember whatever rant i read 12:51
ShimmerFairy: and yeah, i saw panda install $pkg $to a bit afterwards
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
psch: ? just panda install Module::Name works. It'll install to ~/.perl6
psch shrugs
i don't use panda much :P
magnet:?xt=urn:btih:403caa0859fa0b3b6fba11c0b1bdcc69696bfdb9&dn=Red133%20Artwork&tr=210.244.71.11:6969/announce&tr=...0/announce 12:54
err whoops
tadzik oh, mispaste :)
psch yeah...
fixing my mouse
tadzik what would that lead to.. :P
psch uhm
i think trails in the sky
12:54 Psyche^_ left
psch ohh 12:54
no
horrible disgusting porn
>_>
yeah well vOv
moritz: can i ask you to scrub that..? ._. 12:55
magnet:?xt=urn:btih:403caa0859fa0b3b6fba11c0b1bdcc69696bfdb9&dn=Red133%20Artwork&tr=210.244.71.11:6969/announce&tr=...0/announce
ohh ffs
moritz psch: first stop pasting that stuff please :-)
psch yeah
sorry 12:56
pink_mist coughs
12:57 mprelude left
tadzik so, how do we scratch that off everyone's immediate backlog. Have you guys heard? Rust 1.3 is out or something 12:58
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
psch it's weird and complicated
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
tadzik: but I'd seriously consider it if I had something very low-level to do
psch oh, they a stringly-typed switch/case?
doc.rust-lang.org/book/patterns.html yeah, no, it's almost given/when with junctions :o 13:01
tadzik wow :)
psch and ranges
leont Rust looks to me like the first credible C++ replacement I've seen so far 13:02
I hope it will kill off Go
[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
[ptc] kid51: MoarVM is already packaged and (I believe) 2015.07 or 2015.08 is current
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...
psch this IntStr stuff is all kinds of confusing, as mentioned 13:05
because it kind of works, but breaks in some cases
like for example after .^isa($type) 13:07
but not after .isa($string)
i've figured out that it's something about decont... vOv 13:08
$ ./perl6-j -MTest -e'use nqp; my $intval = val("42"); print +$intval, " ", nqp::decont($intval), " " andthen print +$intval, " "; say +$intval'
42 42 1 1
which is scary because why would decont change contents of the fields..? 13:09
gist.github.com/peschwa/f054f0b8a8baaf72e3c2 is the current diff, careful: Java :P 13:10
i am fairly confident that it's probably somewhere in there, because that code is very involved in everything IntStr 13:12
the andthen also doesn't cause it either, replacing that with a ; gives the same output 13:18
13:20 mprelude joined
psch oh, i found at least one thing that's completely bogus in my makeBI impl there 13:27
13:27 frodwith left
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:29
13:31 kaare_ joined
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:31
13:34 rindolf left 13:46 FROGGS[mobile] joined
FROGGS[mobile] bbkr_: should be safe, yes 13:49
bbkr_ thanks
dalek kudo/nom: 0901378 | lizmat++ | src/core/IO/Handle.pm:
Fix "words".IO.lines(10).elems

And make sure we close the handle in that case if necessary
13:50
lizmat cycling&
bbkr_ does C size_t has any special representation in NativeCall or can I simply use "int" in signature? 13:52
leont size_t is an unsigned type in C 13:53
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
I can't think of any platform where it isn't an unsigned long, but nothing guarantees that I think
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
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␤»
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␤␤»
bbkr_ thanks
moritz m: &::('CORE')::none = sub { 42 }
camelia rakudo-moar f6a2fa: OUTPUT«Cannot modify an immutable Sub␤ in block <unit> at /tmp/Hw555w0y1_:1␤␤»
TimToady heh, xkcd.com/1579/ 14:10
14:10 Sqirrel_ joined 14:13 Sqirrel left 14:14 Guest22461 is now known as jsimonet 14:29 brrt left 14:34 CIAvash joined 14:38 leont left, laouji left
FROGGS[mobile] :o) 14:39
TimToady : shall we create a release plan for roast? 14:41
geekosaur yak shaving crossed with cat herding >.> 14:42
TimToady let's at least plan to
FROGGS[mobile] k, *g*
timotimo i'd suggest switching that to be "yak herding and cat shaving" instead, but shaving cats isn't terribly easy, either 14:44
14:44 nuc left
TimToady maybe put the cat shaving into nope 14:46
14:49 khw joined 14:51 rurban left
moritz herd shaving and yak catting 14:53
lucs have yaks, shred cats 14:59
FROGGS[mobile] O.o 15:02
15:05 CIAvash left
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␤␤»
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:10
15:12 BenGoldberg joined
FROGGS[mobile] what if you augmented Foo before calling the method? 15:13
15:14 skids joined
FROGGS[mobile] (augment Foo { };) 15:14
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{ };…»
FROGGS[mobile] augment class Foo { }? 15:16
I dunno
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:21 ShimmerFairy left 15:25 rindolf joined
timotimo btyler_: when you write Foo { }, the class is already composed 15:27
what you want to do is create the class without the "class" syntax
github.com/timo/ADT/blob/master/lib/ADT.pm6#L55
^- btyler_ does this help?
this code creates a supertype and a bunch of derived subtypes and gives all of them some attributes with accessors 15:28
then, at line 177, the container type gets .HOW.compose'd
at line 81, all the subclasses have already been composed 15:29
btyler_ cool, thanks
timotimo YW :) 15:30
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
btyler_ (doing it outside a role because of the bug with error messages for problems inside roles at the moment)
timotimo you can put a piece of code into a role that gets run when composation happens 15:32
er
no, i remembered that wrong
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:33
15:52 Ven joined 15:56 cognominal left 15:57 Ven left
Loren night ,#perl6 && everyone. 15:58
zostay is there any sane way to track down syntax errors that cause: Unhandled exception: Cannot unbox a type object ? 16:00
16:00 Ven joined
jnthn FROGGS[mobile]: unint is clearly a zombie int... ;) 16:01
lizmat: What does "multi level type definitions" mean? :)
zostay: --ll-exception
m: DYNAMIC:: 16:03
camelia ( no output )
jnthn Seems to be an implemented thing, even :)
16:04 ShimmerFairy joined
Loren maybe perl6-debug-m .. byebye, .sleep() 16:04
16:04 Loren left 16:05 spider-mario left
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:05
16:07 Ven left
zostay hmm... --ll-exception didn't help :( 16:07
timotimo fair enough, jnthn 16:08
jnthn zostay: You need to know how to interpret the output of it :) 16:09
zostay: Mostly it tells which syntactic construct it exploded while compiling 16:10
zostay: If you gist what you see I can perhaps figure that bit out
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
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?
timotimo how do you know it's a syntax error, then? 16:13
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
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
timotimo good idea
kid51 On this page, doc.perl6.org/language/5to6, I see under "File-Related Operations" ... 16:16
spurt "test-file", q:to/END/;
... but when I type that into the repl, I get ..
===SORRY!=== Error while compiling <unknown file>
Ending delimiter END not found
at <unknown file>:3
------> <BOL>⏏<EOL>
expecting any of:
timotimo ah, yes, heredocs in the repl aren't functional, sorry
kid51 vertical whitespace
whitespace
And 'spurt' is not documented at doc.perl6.org/routine.html 16:17
timotimo ugh
zostay gist.github.com/zostay/c576f8692ae60531f2d4
timotimo "method, method, method, method, method, method, method, method, method, method"
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))␤»
timotimo that doesn't seem like it's happening during parsing
moritz m: say ((1,2,3).pairs X (4,5,6).pairs).perl
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␤»
kid51 Well, that leaves the question of whether 'spurt' is documented or not
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
i'll go back to what i've been doing before and incrementally go through my changes and see which one caused it
timotimo kid51: right, apparently not documented 16:25
16:27 confuseAcat joined
kid51 afk 16:29
moritz timotimo: kid51: it's documented in type IO 16:31
there's just some bug with the indexing / HTML generation 16:32
dalek kudo/nom: c3ecd46 | jnthn++ | src/core/Variable.pm:
Allow Mu, Junction etc. as a variable default.
16:34
kudo/nom: 97e47a5 | jnthn++ | src/Perl6/Metamodel/ContainerDescriptor.nqp:
Avoid returning default value, so not to sink it.

Fixes is default(Failure.new).
FROGGS[mobile] jnthn: so it was unint-entional?
jnthn :P
dalek ast: 2fe8266 | jnthn++ | S02-names/is_default.t:
Tests for RT #126110 and RT #126115.
FROGGS[mobile]
.oO( this was an un-pun )
16:35
geekosaur p-un?
16:36 cognominal joined
FROGGS[mobile] moritz: don't know if you already answered.... but, how far is star? 16:38
jnthn bbiab 16:39
moritz FROGGS[mobile]: it's mostly missing an announcement
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
16:40 rurban joined 16:41 Alina-malina left
FROGGS[mobile] which one? 16:42
moritz FROGGS[mobile]: github.com/labster/p6-file-directo...ree/pull/5
oops, already merged :-)
FROGGS[mobile] *g* 16:43
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:44
dalek ar: 1ae5aa4 | moritz++ | modules/p6-file-directory-tree:
Bump File::Directory::Tree version

to one that has s/done/done-testing/
16:45
16:46 rurban left
moritz raydiak: yes, that's a JIT bug :/ 16:46
raydiak hm...workaround? don't use the JIT for now? :(
16:47 BenGoldberg left
moritz raydiak: assign the return value from the .new to a variable, return that 16:48
timotimo a jit bug? oh f*** 16:49
how come i've never heard of that yet?
raydiak okay thanks moritz++ 16:50
moritz timotimo: you didn't backlog? :-)
timotimo: it might be not really a JIT "bug" in the usualy sense, merely a missing feature after a rakudobug was fixed
timotimo: the rakudobug was that return() didn't return nameds, but silently swallowed them 16:51
16:53 Alina-malina joined
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?
lizmat jnthn: re multiple level type definition: defining an array of hashes with Int keys and Str as values
I seem to recall there are hints about that in S02 16:55
16:56 rurban joined
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:57
moritz timotimo: disabling spesh makes the bug go away 16:58
timotimo: but so does disabling JIT 16:59
timotimo: but iirc JIT needs spesh, so it looks like JIT bug to me
17:00 CIAvash joined
timotimo right 17:01
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:02
dalek kudo/nom: 386153c | moritz++ | src/core/IO/Path.pm:
RT #126006: after .spurt, the file exists
17:06
17:10 domidumont joined 17:14 raiph joined 17:15 domidumont left, domidumont joined 17:17 perl6_newbee joined
timotimo moritz: all i saw in the backlog was PDL discussion :| 17:21
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␤␤»
moritz timotimo: irclog.perlgeek.de/perl6/2015-09-19#i_11245158
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
camelia rakudo-moar 97e47a: OUTPUT«42␤»
lizmat jnthn: ^^^ is that a bug, or a nope ?
timotimo that's a golfable code here?
(if you just run it often enough for the jit to kick in)
moritz timotimo: nothing golfed yet; and panda just calls that .new once 17:25
timotimo huh! 17:26
well, it could be caused by On-Stack-Replacement of a caller
17:33 perl6_newbee left
lizmat just rakudobugged ##126120 17:36
17:41 frodwith joined 17:47 braintwist left 17:56 skids left 17:57 FROGGS[mobile] left 18:00 rurban left 18:03 cognominal left 18:05 rurban joined, rurban left 18:06 rurban joined 18:08 FROGGS joined 18:13 xinming left 18:14 xinming joined 18:17 bartolin joined 18:18 rindolf left, vendethiel left 18:26 vendethiel joined 18:36 z448 joined 18:38 CIAvash left 18:40 patrickz joined 18:44 z448 left 18:46 rindolf joined 18:55 spider-mario joined, rurban1 joined 18:56 Ven joined 18:58 rurban left 19:00 rurban1 left 19:02 rurban joined, Ven left 19:12 Ven joined
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:12
19:18 rurban left 19:19 espadrine joined 19:24 Ven left
lizmat bbkr_: seems more like a question likely to receive an answer on #moarvm 19:28
19:30 cognominal joined 19:32 Ven joined 19:33 skids joined 19:39 Ven left
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
masak ah. 19:40
jnthn We should probably try to do something cleverer
But it's not clear what the right cleverer thing to do is
And I suspect even when we *do* something smarter it'll still be the best practice to write exception handlers in your callbacks. 19:41
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:43
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
So, just a straight compiler bug
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:45
jnthn It shouldn't be too horrible to fix. 19:48
19:48 Ven left
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:48
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
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.
dalek kudo/nom: cab8889 | lizmat++ | src/core/IO/ (2 files):
GLRify IO::Handle.words properly

Makes things between 30% ("words".IO.words[{ $_-10 .. $_-1 }]) and 5x faster ("words".IO.words.elems).
The limit positional variable has been removed: because of a proto issue, this has never worked for IO.words and was not spectested. It appears that post-GLR this optimization is basically not needed, since it only marginally makes things faster at the expense of serious code bloat.
19:52 frodwith left
jnthn is mostly worried about implementation issues where things work wrongly that pepole will end up relying on 19:53
Those are the things we probably want to attach to the christmas blocker RT
jnthn wonders about taking a trawl through RT now to attach some to that 19:55
(Had been on my "stuff to do soon" list)
19:56 domidumont left 19:58 lichtkind joined 19:59 FROGGS left 20:06 kaare_ left 20:08 rindolf left
lichtkind I just checked that quote sublang is still called $~Q 20:09
20:13 darutoko left 20:14 Ven joined 20:19 diana_olhovik joined 20:24 Zefram_Fysh joined, Ven left
Zefram_Fysh oh hai 20:24
_itz hi zefram
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/
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
for example, X = Nil and Y = variable default value, [perl #126105]
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 à
s/à/)/ 20:27
Zefram_Fysh yeah, like that
thing is, Perl 6 has *loads* of each
so there's an O(n^2) thing going on
each X/Y combination is an opportunity for there to be a bug 20:28
I've only reported the combinations that turned out to house a bug
but *every* combination could be made into a roast test
20:29 diana_olhovik left
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"?
geekosaur see comment yesterday about human fuzzer
Zefram_Fysh this is a very directed kind of fuzzing 20:31
actual fully-random fuzzing is good for detecting some kinds of low-level bug, but that's not where Rakudo is atm
vendethiel well, could ber 20:33
.oO( could be, or cold beer? )
Zefram_Fysh also, I've learned that every kind of value is awkward for something
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:34
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
in [perl #126117], the mundane value 3 is an awkward value for code that expects a type object
vendethiel I'd like to know if people are 100% decided that they want to see :_ be the default type smiley 20:36
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:37
Zefram_Fysh: I would not expect all of them to be resolved, even before 6.Christmas though 20:38
Zefram_Fysh that's OK; I'm not expecting all of mine to be resolved quickly 20:41
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
jnthn Zefram_Fysh: Yeah, many so far look to be easy fixes - it's just that nobody really tried it before. 20:44
Zefram_Fysh yeah. that's where a systematic approach would come in 20:45
lizmat m: my Int:D $a = 42; say $a
camelia rakudo-moar cab888: OUTPUT«42␤»
lizmat m: my Int:D $a; say $a # also fine, I would think
camelia rakudo-moar cab888: OUTPUT«(Int)␤»
Zefram_Fysh yeah
jnthn lizmat: I added the RT for that just moments ago
lizmat m: my Int:D $a = Int; say $a # should fail ?
camelia rakudo-moar cab888: OUTPUT«(Int)␤»
Zefram_Fysh is :D supposed to work there?
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
lizmat I'm not sure, but it is *not* complaining either :-)
Zefram_Fysh but I haven't got far enough into the specs to understand what it's meant to do there
jnthn So the 6.christmas answer is "reserved for the future" :)
Zefram_Fysh m: my Int:wibble $a; say $a
lizmat jnthn: wfm
camelia rakudo-moar cab888: OUTPUT«(Int)␤»
ShimmerFairy m: sub foo(--> Int:U) { 42 }; say foo 20:47
camelia rakudo-moar cab888: OUTPUT«42␤»
ShimmerFairy they don't work on return values though :(
Zefram_Fysh if it's reserved for the future, it ought to error while unsupported
and :wibble should error too 20:48
jnthn Zefram_Fysh: Agree
ShimmerFairy jnthn: are return types different enough from parameters that they fall into the "nope.md" bucket too? 20:49
jnthn ShimmerFairy: Not sure; the lazy answer is "yes" ;) 20:50
lizmat perhaps --> Foo:T should error for now 20:52
only allow --> Foo
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
lizmat to at least make sure the syntax doesn't survive into a future error
jnthn ShimmerFairy: Having plenty of years of nice things to do beyond 6.christmas isn't really a shame... :) 20:56
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)
vendethiel *g* 21:01
dalek ecs: c432736 | lizmat++ | S32-setting-library/IO.pod:
Update .lines and .words more to reality
21:06
21:07 leont joined
lichtkind jnthn: how much work is it to rename $~Q to $~Quote 21:07
21:07 _28_ria joined 21:12 TEttinger joined
lizmat is looking at rt.perl.org/Public/Bug/Display.html?id=125626 21:15
I'm thinking in a post-GLR world, we don't need lines($limit) anymore 21:16
"words".IO.lines[^10] should give you the first 10 lines eagerly (without reading more than needed)
vendethiel lizmat: how far are we from that? 21:17
jnthn lizmat: Indeed
lizmat I've got a patch for that already 21:18
it's just that there are some spectests that expect lines($limit) to work
vendethiel lizmat: is there a perf hit? 21:19
lizmat well, I GLRified it in 6252fc45b9751a7052248 21:20
but when working on .words, I realized the performance gain is minimal, and the code bloat s significant
dalek ast: 704a2a3 | skids++ | S12-construction/BUILD.t:
Add test for RT#123407
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
vendethiel lizmat: well, for a "deprecated" time, can't lines($limit) just be callsame[^$limit]?
lizmat well, it's slightly trickier than that 21:22
as the IO::Handle may have read some lines already, so it would involve some calculations with $!ins as well
but yeah
vendethiel right 21:23
I guess otherwise, it wouldn't be that much code bloat..
jnthn OK, I've been through the whole RT queue :) 21:24
lizmat ok, I'll make the tests pass with a temporary? candidate
jnthn rt.perl.org/Ticket/Display.html?id=123766 is now my "Rakudo to go with 6.christmas" worklist
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
*put
Perhaps with a negative spectest and/or wording updates in the design docs.
So don't assume just 'cus I added it means I agree :)
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 ?
nope, we killed winner :-)
jnthn Yeah, react/whenever is the replacement :) 21:27
Just need to make sure Channel.Supply is in good order.
lizmat so, deprecation cycle ?
jnthn We can add a deprecation note now on it
And make it elligible in the next release
So there's one more with it 21:28
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.
lichtkind lizmat: can i have a small chat? 21:30
lizmat sure
jnthn lichtkind: On the rename, probably not much, but why? :)
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
buts had no effect on implementation
21:32 telex left
jnthn lichtkind: ah, OK 21:32
21:32 telex joined, pmurias left
jnthn lichtkind: Well, yeah, patching syn and sitting and waiting is not going to be a very successful strategy ;) 21:32
lichtkind: If you didn't already, please RT it :) 21:33
lizmat lichtkind: send an email to [email@hidden.address] 21:34
jnthn notes there are 118 tickets to look into in the list 21:35
lichtkind thanks 21:36
done 21:38
21:40 patrickz left
jnthn Time for some rest...see if I can get rid of my cold... & 21:44
masak 'night, jnthn 21:48
21:56 vendethiel left
dalek kudo/nom: 3480aac | lizmat++ | src/core/IO/ (2 files):
Remove special handling of lines(something)

This is now a frontend for lines[something] and should probably be deprecated. Also added 'pull-exactly' candidates for faster slicing.
21:56
21:59 felher joined, felher is now known as Guest34943 22:01 Allan_ joined
masak 'night, #perl6 22:01
lizmat gnight masak jnthn
lichtkind good night m􏿽xE4sak 22:02
good night jnthn
22:03 Allan_ left 22:04 gt9th joined 22:07 lichtkind left 22:18 TEttinger left
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" :) 22:26
22:32 gt9th left 22:40 espadrine left 22:50 spider-mario left 23:00 ilbelkyr is now known as bcode 23:04 mprelude left 23:05 laouji joined 23:21 cognominal left 23:24 laouji left 23:26 laouji joined
dalek kudo/nom: c189c7e | lizmat++ | src/core/Str.pm:
GLRify Str.words properly

for $str.words now 2x as fast, and $str.words.elems 15x as fast. We seem to be calling the push-exactly candidate for 1 element at a time in a for-loop. Wonder why it is not calling the pull-one candidate instead.
23:28
lizmat and with this I wish #perl6 a good night 23:29
23:29 yuvipanda left 23:53 laouji left