»ö« 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/laoPqrFULIUnable 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:1Actually 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 declaredat /tmp/5YUqlYCjD3:1------> 3oo = Foo.new(bar => 'baz'); augment Foo 7⏏5{ }; say $foo.bar;Malformed augmentat /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 mxE4sak | 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
|