»ö« 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. |
|||
timotimo | possibly it's trying to prevent "<unit-outer>" from appearing even though the exception comes from some inside-ish place? | 00:01 | |
actually, the --ll-exception output has <unit-outer> in the middle somewhere | |||
00:07
telex left
00:08
telex joined
00:19
beastd left
00:30
larion left
00:40
BenGoldberg joined
00:43
gfldex left
01:17
firefish5000 left
01:45
ilbot3 left
01:47
ilbot3 joined
01:54
yqt left
|
|||
grandtehftjiujit | hello, I'd like to contribute to the perl6 docs on GitHub, however, when trying to build from the instructions I get an error when running htmlify.p6 | 02:01 | |
02:01
JimmyZ_ joined
|
|||
grandtehftjiujit | for the third build in a row I get "dot command failed! (did you isntall Graphviz?) | 02:02 | |
raydiak | grandtehftjiujit: do you have graphviz installed on your system? it is used to render the type diagrams | 02:05 | |
grandtehftjiujit | no, I was confused since the instructions hadn't mentioned it | 02:06 | |
that, of course, worked though :) | |||
raydiak | grandtehftjiujit: yeah I did the same thing the first time I contributed to the docs, and accidentally uploaded a version with no images :) | ||
grandtehftjiujit | I'm not sure how / if i'll be able to contribute... but I've been looking for a jumping in point | 02:07 | |
the right brew of things at the right time i suppose | 02:08 | ||
raydiak | yep, whatever suits you...btw, Welcome! | ||
02:10
scribouilleur left
|
|||
raydiak | writing and maintaining a module or two can be an easy way to start also | 02:10 | |
02:10
coffee` joined
02:12
hovering joined
02:13
nys left,
hovering left
|
|||
grandtehftjiujit | thanks, I'm not a very experienced programmer, but I do have a general exposure to html, css, python, and sheel, so maybe I can whip something up :) | 02:16 | |
*shell | |||
02:17
noganex joined
|
|||
raydiak | nice...never too late to learn more either; perl 6 is a lot of fun when you get the hang of it | 02:17 | |
not that I'm biased :) | 02:18 | ||
02:20
noganex_ left
|
|||
raydiak | usually you'd get much more vocal reception, but a good portion of our contributors are asleep atm, in Europe | 02:20 | |
02:21
laouji joined
|
|||
grandtehftjiujit | ic, that's quite alright | 02:23 | |
i'm finding it quite fun already. I felt like i was grinding my teeth a bit on perl5 so when I whipped my first rakudo spin I was pleasantly surprised / relieved / excited :) | 02:25 | ||
raydiak | glad to hear it :) I thought parts of it were a bit odd at first when I came from a p5 background, but I'm quite happy I switched now | 02:29 | |
TimToady isn't here either :) | 02:33 | ||
yoleaux | 19 Jun 2015 21:24Z <jnthn> TimToady: in STD, "my $exists = @foo[0]:exists" puts the adverb on the whole scope decl, because adverbs have item assignment precedence, put the initializer preclimits to item assignment. In Rakudo we wrongly had preclimit doing exclusive, not inclusive, checking, so we never noticed until now. | ||
19 Jun 2015 21:26Z <jnthn> TimToady: s/put/but/. Also I don't immediately see a good fix; I suspect changing adverb's prec will have bad effects, but initializer doesn't feel like the right change either. Ideas welcome. :) | |||
02:34
grandtehftjiujit left
02:38
rmgk_ joined,
rmgk is now known as Guest55898,
Guest55898 left,
rmgk_ is now known as rmgk
|
|||
raydiak wonders if TimToady's quasiabsent state too closely resembles a ghost and scared grandtehftjiujit away | 02:39 | ||
TimToady | .tell jnthn well, it looks to me as though initializers are already correctly parsing at i= prec, so it seems like it would be pretty easy to give adverbs a precedence "slightly tighter" than that as it says in S03:1533, maybe "i^=" or so | 02:43 | |
yoleaux | TimToady: I'll pass your message to jnthn. | ||
02:46
kivutar joined
03:11
CQ_ joined
03:13
CQ left,
CQ_ is now known as CQ
03:43
schmooster joined
03:49
kivutar left
04:03
gtbjj joined
04:09
gtbjj left
04:20
BenGoldberg left
04:25
skids left
05:04
zacts joined
05:21
kaare__ joined
05:23
kivutar joined
05:29
aborazmeh joined,
aborazmeh left,
aborazmeh joined
05:31
krishna1 joined
05:32
laouji left
05:33
laouji joined
05:38
laouji left
05:41
krishna1 left
05:46
Psyche^_ joined,
laouji joined
05:48
krishna1 joined
05:50
Psyche^ left
06:10
araujo_ joined,
araujo left
06:18
kivutar left
06:19
Sqirrel left
06:26
krishna1 left
06:33
Sqirrel joined
06:47
aborazmeh left
06:52
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:55
bin_005 left
06:56
bin_005 joined
07:00
TEttinger joined
|
|||
TEttinger | someone in another channel was describing the trouble he was having designing a compiler in Java. "It's just like, you want to start with no types, like ruby or something, and only once you understand it you assign the types." I smirked inside and said "like... gradual typing?" | 07:02 | |
07:04
ShimmerFairy left
07:06
RabidGravy joined
|
|||
TEttinger | so if I want to describe something in NQP that gets completely ignored after it's parsed, not even counting as a part of other parsed forms, how would I do that? | 07:08 | |
in clojure, the language feature that I want to implement is done with #_ followed immediately by the form to be ignored. something like (def myVar #_(/ 10 0) "the value I want") wouldn't ever evaluate the 10 divide by 0 | 07:09 | ||
07:12
_mg_ joined
07:16
ShimmerFairy joined
07:17
_mg_ left
|
|||
TEttinger | looks like I need to add it to the ws token? | 07:18 | |
07:30
kivutar joined
07:41
FROGGS joined
07:44
salv00 left
07:45
_mg_ joined
07:47
_mg_ left
08:00
diana_olhovik joined
|
|||
xinming | Just cruious, When we have ~$object Is there a way to override the default behavior so $object can return the different things in Str context? | 08:00 | |
moritz | TEttinger: or you can simply not return an AST from the action method; or a null op | 08:01 | |
xinming: yes, define a method Str | |||
xinming | ah, sorry, I tried that, But I put it into the wrong class. >_< | 08:02 | |
that's what I did, I just now realized I put the method in wrong class | |||
08:11
diana_olhovik left
|
|||
dalek | ast: 4366d91 | usev6++ | S04-exceptions/fail.t: Add test (fudged 'todo') for RT #115436 |
08:14 | |
ast: fa9de57 | usev6++ | S02-types/lazy-lists.t: Unfudge passing test for JVM, RT #121994 |
|||
08:16
darutoko joined
|
|||
RabidGravy | er, "Cannot find method 'is_composed'" that's helpful | 08:22 | |
yoleaux | 19 Jun 2015 12:28Z <jnthn> RabidGravy: if rt.perl.org/Ticket/Display.html?id=125408 also seems fixed for him (I just tried it and it doesn't fail) | ||
08:27
_mg_ joined
08:28
salva joined,
aborazmeh left
|
|||
TEttinger | oh boy, this is gonna be fun... how do I either make the existing ww method recognize more characters as valid components of names (that need spaces between tokens), or make my own equivalent to ww for a more permissive identifier char set? | 08:32 | |
the rule I have for a variable is : | 08:33 | ||
token value:sym<variable> { <-[\d\c[APOSTROPHE]\c[QUOTATION MARK]\c[NUMBER SIGN]\{\}\(\)\[\]\~\,\s\/]> <-[\c[APOSTROPHE]\c[QUOTATION MARK]\c[NUMBER SIGN]\{\}\(\)\[\]\~\,\s\/]>* } | |||
(can't start with a number, can't ever contain the other chars) | |||
RabidGravy | jnthn, nope #125408 still fails with the same error | 08:35 | |
08:40
rindolf joined
08:44
tinyblak joined
|
|||
dalek | ast: 6ea448b | usev6++ | S03-operators/arith.t: Add test for RT #123077 |
08:50 | |
xinming | Just curious, Is there something like lazy build feature for class attributes? | 08:51 | |
I mean object attributes | 08:52 | ||
08:52
steve_mc left
|
|||
RabidGravy | ah, found it | 08:53 | |
m: enum Error ( Metadata => -20); class Metadata { } | 08:54 | ||
camelia | rakudo-moar d47424: OUTPUT«===SORRY!===Cannot find method 'is_composed'» | ||
RabidGravy | xinming, I think someone made something experimental a while back but it's not in rakudo | ||
timotimo | right, it's supposed to go into module space, but nobody put it up yet | 08:55 | |
xinming | RabidGravy: will that be something like has $.attr is lazy { }... ? | ||
08:55
gfldex joined
|
|||
timotimo | xinming: github.com/rakudo/rakudo/commit/34788bf - you can basically put the reverse of this commit into a .pm file and use that, then you can has $.attr will lazy { ... } | 08:56 | |
08:57
tinyblak left
|
|||
timotimo | there should be an earlier commit that explains it in a bit more detail, i imagine | 08:57 | |
but i gotta go for now | |||
TTYL! | |||
RabidGravy | byeeeeee | ||
xinming | Ok, Thanks | 08:59 | |
xinming waves | |||
09:05
steve_mc joined
09:07
_mg_ left
09:12
_mg_ joined
09:13
_mg_ left
|
|||
masak | good antenoon, #perl6 | 09:20 | |
jnthn | o/ | ||
yoleaux | 02:43Z <TimToady> jnthn: well, it looks to me as though initializers are already correctly parsing at i= prec, so it seems like it would be pretty easy to give adverbs a precedence "slightly tighter" than that as it says in S03:1533, maybe "i^=" or so | ||
09:22
araujo_ left
09:24
kivutar left
|
|||
TEttinger | good <time of day> jnthn, masak! | 09:26 | |
I'm not sure here, how do I either make the existing ww method recognize more characters as valid components of names (that need spaces between tokens), or make my own equivalent to ww for a more permissive identifier char set? | |||
if I just steal nqp's ww, it only uses word chars, but I allow more than taht | 09:27 | ||
moritz | TEttinger: you can implement the equivalent of ww with look-ahead and look-behind assertions | 09:28 | |
TEttinger | I know in JVM regexes that uss something like (?>![my thing]) | 09:30 | |
I have no idea how perl assertion regexy things do it | |||
RabidGravy | m: enum Error ( Metadata => -20); class Metadata { }; # I may RT this as a somewhat less than awesome diagnostic message, it took me ages to find it in a large enum | 09:31 | |
camelia | rakudo-moar d47424: OUTPUT«===SORRY!===Cannot find method 'is_composed'» | ||
09:35
spider-mario joined
|
|||
jnthn | RabidGravy: Please do, it's an easy fix | 09:35 | |
09:36
_mg_ joined
09:42
_mg_ left
|
|||
RabidGravy | jnthn, in as #125441 | 09:46 | |
jnthn, in regard to the RT#125408 it still appears to be doing it for me | 09:48 | ||
09:49
muethos joined
|
|||
jnthn | RabidGravy: Odd, I ran the code from RT#125408 and it completed successfully, and I bumped up the thresholds and the same... :S | 09:49 | |
RabidGravy: Will have to give it another guy, mebbe will try it on another platform | |||
RabidGravy | Would it be fixed in some bump of moar that a plain rakudobrew wouldn't get? | 09:51 | |
(this on a linux x86_64 btw) | 09:52 | ||
timotimo | damn this guy | 09:55 | |
TEttinger | timotimo: mips stuff? | ||
timotimo | no, just punning off jnthn's typo | ||
TEttinger | so, how bout them look-ahead and look-behind assertions? where would I look to learn more about those? | 09:57 | |
jnthn | oh wow, "another try" :) | ||
RabidGravy: No, I don't think there's been any relevant commits since 2015.06 | 09:58 | ||
09:58
tinyblak joined,
spintronic left,
spintronic joined
|
|||
jnthn | yay, the TimToady++ suggestion on fake infix prec seems to help... | 10:01 | |
Though only so much... | |||
(Helps the adverb issue, but seems there's still spectest fallout) | 10:02 | ||
dalek | kudo/nom: 146ad05 | usev6++ | src/core/Failure.pm: Type check when creating Failure object with '.new' fixes RT #115436 |
10:03 | |
kudo/nom: 1cc73fc | jnthn++ | src/core/Failure.pm: Merge pull request #442 from usev6/type_check_for_failure Type check when creating Failure object with '.new' |
|||
jnthn | m: my $pair = 'foo' => 'bar'; say $pair | 10:04 | |
camelia | rakudo-moar d47424: OUTPUT«foo => bar» | ||
jnthn | Damm it, we've broken that one too... | 10:05 | |
TEttinger | so currently my ws token is this: | ||
token ws { <!ww> [\s | ',' | <.comment> ]* } | |||
I'm not sure what the ! before ww means | 10:06 | ||
jnthn | TEttinger: "does not match here" | 10:07 | |
(And zero-width) | |||
TEttinger | good | ||
thanks, jnthn++ | |||
10:08
kivutar joined
|
|||
TEttinger | moritz++ mentioned that lookaround could be used here to replicate ww, but AFAICT the syntax is going to be different | 10:08 | |
(than other regex engines, since this isn't a regex, or is it?) | |||
10:11
espadrine joined
|
|||
jnthn | Depends how you define "regex". token/rule turn off backtracking, which means you san performantly parse, but Perl 6 regexes are using the same syntax as the rule/token stuff you're using | 10:13 | |
m: my $b = 2; my $a = $b = 3; say $a; say $b; | 10:16 | ||
camelia | rakudo-moar d47424: OUTPUT«33» | ||
jnthn | .tell TimToady While that helps the colon pair case, we run into problems with pairs, as in "my $a = 'foo' => 'bar'", because those are %item_assignment too. Also chained assignments to declarators seem to go wrong (e.g. my $a = $b = 2). | ||
yoleaux | jnthn: I'll pass your message to TimToady. | ||
10:16
lizmat joined
|
|||
lizmat waves from home | 10:18 | ||
vendethiel | o/ lizmat! | ||
lizmat | vendethiel o/ | ||
jnthn | o/ lizmat | ||
lizmat | jnthn o/ | ||
TEttinger | hallo | ||
jnthn | Hope the journey was uneventful :) | ||
lizmat | yes, smooth and uneventful | ||
jnthn | yay | ||
lizmat | first thing to do: git pull; make; make spectest | 10:21 | |
when running as part of the spectest, t/spec/S17-supply/unique.t hangs for me | |||
runs fine by itself :-( | |||
TEttinger | I'm really sorry to keep bothering everyone, but... where would I learn more about how NQP grammar stuff works? I'm most of the way through Edument's NQP thing ( edumentab.github.io/rakudo-and-nqp-...s-day1.pdf ), even though it doesn't make that much sense yet because I'm still learning... Perl. | 10:24 | |
the Edument course didn't explain <!...> at all, so I am not thinking it will explain stuff like other regex-style matching | 10:25 | ||
jnthn | TEttinger: Did you read the Perl 6 regex/grammar docs yet? | ||
TEttinger: 'cus the syntax is the same | |||
TEttinger | I have no idea where they are | ||
I'd guess perl6.org | |||
jnthn | doc.perl6.org/language/regexes and doc.perl6.org/language/grammars | 10:26 | |
TEttinger | doc.perl6.org/language.html ? ah ok | ||
10:28
laouji left
|
|||
lizmat | jnthn: datapoint: it hangs without using any CPU | 10:28 | |
hmmm... and now it was t/spec/S17-supply/map.t that hang | |||
*hung :-) | |||
TEttinger | huh, lookahead is empty, it's just <?before foo> right? | 10:29 | |
jnthn | TEttinger: Yes, <?before foo> or if you just have a char class <?[abc]>, or you can use any other token/rule as a lookahead with <?name> | ||
And ! in all of those places instead for negative lookahead | 10:30 | ||
TEttinger | gotcha, thanks! | ||
so if I wanted to check if there was this token, neither ahead or behind: token value:sym<variable> { ... } (there's a very long character class in there) | 10:31 | ||
I would use <?!after variable> <?!before variable> | 10:32 | ||
or would it need value:sym<variable> | |||
jnthn | Any time you see foo:sym<bar> it's part of an alternation (known as a "protoregex" | ||
You can't talk about those directly | |||
TEttinger | ok, so put that in its own thing, have the protoregex reference it? | 10:33 | |
jnthn | You should factor the shared stuff out to a token of its own, have your token value:sym<variable> look more like <variable>, and then use that. | ||
Yes, you've got it. | |||
lizmat takes a geezette nap | 10:34 | ||
TEttinger | oh, and <?!after variable> <?!before variable> will make it require Both of those, right? | ||
similar to ww | 10:35 | ||
jnthn | TEttinger: ?! looks...odd | ||
If you mean "not after a variable" and "not before a variable" just <!after <variable>> <!before <variable>> would do it | 10:36 | ||
TEttinger | doc.perl6.org/language/regexes#Look...assertions ? | ||
huh | |||
ok | |||
jnthn | Oddness | 10:37 | |
The ? is redundant, I thought... | |||
TEttinger | it also hasn't filled in lookahead in the section above | ||
maybe outdated? | |||
jnthn | I suspect the lookahead bit is just "not written yet" | 10:39 | |
The docs situation has gotten loads better over the last year, but there's still gaps. | |||
m: my $a = a => b => c; say $a.perl | 10:40 | ||
camelia | rakudo-moar 1cc73f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QXFMqTPXnlUndeclared routine: c used at line 1» | ||
jnthn | m: my $a = a => b => 'c'; say $a.perl | ||
camelia | rakudo-moar 1cc73f: OUTPUT«:a(:b("c"))» | ||
jnthn | m: my $a = a => 'b' => 'c'; say $a.perl | ||
camelia | rakudo-moar 1cc73f: OUTPUT«:a(:b("c"))» | ||
jnthn | m: multi foo($a where { $_ == False } = True) { }; foo(False); | 10:46 | |
camelia | rakudo-moar 1cc73f: OUTPUT«Cannot modify an immutable Block in sub foo at /tmp/KKGuUn55Kc:1 in block <unit> at /tmp/KKGuUn55Kc:1» | ||
dalek | p: 046eb33 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for updated MAST::Nodes. The previous version was accidentally invalid NQP syntax, but a precedence limit handling bug in NQP meant we got away with it. |
10:48 | |
10:48
kivutar left
|
|||
dalek | p: 1d5165f | jnthn++ | src/HLL/Grammar.nqp: Correct EXPR precedence limit test. As per STD, it should be an inclusive, not exclusive, test. |
10:49 | |
RabidGravy | is making a trait that "auto-handles" all the methods in the object that are marked with another trait a completely insane idea | 10:52 | |
I'm a lazy typist | |||
timotimo | sounds fine to me | ||
10:55
telex left
10:56
telex joined
|
|||
jnthn | RabidGravy: I'm guessing you're putting the first trait on the class itself? | 10:57 | |
dalek | kudo/nom: 9ed8577 | jnthn++ | / (2 files): Get EXPR preclim fix; cope with its fallout. The EXPR method used to incorrectly test against the precedence limit. This commit bumps to an NQP without this bug. This entails three small changes to Perl6::Grammar. First, we undo a hack in infix:<?? !!> that worked around the precedence limit bug, bringing us in line with STD. The second two changes are needed because we previously parsed both initializers and fatarrows as intended only due to the bug that is now fixed. STD gets things incorrect in these two cases also, but since it only does syntax, not semantics, it has never been noticed until now. There is no spectest fallout with this patch. There may be a little ecosystem fallout, possibly because we were a little too liberal. With this change, RT #123623 is also fixed. |
||
RabidGravy | something like "class Foo { method bar is delegated { .. } } class Bar { has Foo $!foo is auto-proxy }" and an object of Bar has the bar method | 10:58 | |
jnthn | .tell TimToady I ended up doing github.com/rakudo/rakudo/commit/9ed8577888 which I suspect you'll want to review; as far as I can tell, STD is wrong for ages on these things and we never noticed. | ||
yoleaux | jnthn: I'll pass your message to TimToady. | ||
jnthn | RabidGravy: You do know about "handles"? | 10:59 | |
RabidGravy | yes | ||
jnthn | RabidGravy: Including the forms where you don't list the method names, but use a type as the matcher? | 11:00 | |
Either that or I'm missing some aspect of your problem... | |||
RabidGravy | oh wait, no not that part | ||
looks at the handles code again | |||
11:01
FROGGS[mobile] joined
|
|||
jnthn | iirc, "handles Foo" means "fall back to delegate all methods Foo can do to the attribute" | 11:01 | |
*delegating | |||
RabidGravy | yeah see that now | 11:05 | |
FROGGS[mobile] | o/ | ||
TEttinger | QAST::Var.new() takes a :scope like :scope('lexical') or :scope('attribute'); where's the list of the possible scopes and/or what they mean? it isn't in QAST::Var, as far as I can tell | 11:08 | |
dalek | ast: 40fa9bf | jnthn++ | S (2 files): Tests covering RT #123623. |
11:09 | |
jnthn | TEttinger: The course is probably the best best for examples of that | ||
TEttinger | ok | ||
jnthn | I think it should cover most of them | 11:10 | |
RabidGravy | though, the subtle difference with what I am thinking is that the delegated class can indicate which methods are thus delegated which I guess could be achieved with some matcher | ||
jnthn | You can always look into the QAST -> MAST | ||
11:11
larion joined
|
|||
jnthn | Phew, now our RT queue "only" goes up to page 21, not 22... | 11:14 | |
FROGGS | ó.ò | ||
jnthn: we'll get that down | |||
jnthn | Indeed | ||
FROGGS | I will do only RT tickets in near future I guess... in case there are some that I can do | ||
11:15
Ven joined
|
|||
jnthn | I'm sure there will be :) | 11:17 | |
timotimo | RabidGravy: you can build a role that "marks" all methods that you want to delegate | ||
and then "... handles MyRole" | 11:18 | ||
jnthn will do some more RTs soon...but lunch first :) | |||
RabidGravy | timotimo, ah hah! yes of course | 11:19 | |
Ven | m: role A[::T] {}; sub f(A[::T]) | 11:20 | |
camelia | rakudo-moar 9ed857: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
Ven | m: role A[::T] {}; sub f(A[::T]) { say T.perl } | ||
camelia | rakudo-moar 9ed857: OUTPUT«===SORRY!===Could not locate compile-time value for symbol T» | ||
11:20
tinyblak left
11:21
tinyblak joined
|
|||
Ven | I'm not sure I get that error | 11:21 | |
(I mean -- I get *why* it happens, but isn't ::T supposed to work here?) | |||
TEttinger | m: [+] ^100^3 | 11:24 | |
camelia | ( no output ) | ||
TEttinger | m: say [+] ^100^3 | ||
camelia | rakudo-moar 9ed857: OUTPUT«one(100, 3)» | ||
TEttinger | huh | ||
m: say [+] ^(100^3) | 11:25 | ||
camelia | rakudo-moar 9ed857: OUTPUT«one(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65…» | ||
TEttinger | nooooo | ||
Ven | m: say (100 ^ 50) | ||
camelia | rakudo-moar 9ed857: OUTPUT«one(100, 50)» | ||
Ven | m: say so 50 == 100 ^ 50) | ||
camelia | rakudo-moar 9ed857: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1vudac6KhCUnexpected closing bracketat /tmp/1vudac6KhC:1------> 3say so 50 == 100 ^ 507⏏5)» | ||
Ven | m: say so 50 == 100 ^ 50 # whoops | ||
camelia | rakudo-moar 9ed857: OUTPUT«True» | ||
TEttinger | is there an exponentiation op? | ||
Ven | m: say 50 ** 4 | ||
camelia | rakudo-moar 9ed857: OUTPUT«6250000» | ||
TEttinger | m: say [+] ^100**3 | ||
camelia | rakudo-moar 9ed857: OUTPUT«499999500000» | ||
TEttinger | nice | ||
golf winnar | |||
m: say [+]^100**3 # curious | 11:26 | ||
camelia | rakudo-moar 9ed857: OUTPUT«one(0, 1000000)» | ||
TEttinger | ha | ||
timotimo | jnthn: you remember my little SMOP? :) | 11:31 | |
bartolin | m: class A { has @.ints }; my $one = A.new; $one.ints = [1, 2]; say $one.ints.elems | 11:34 | |
camelia | rakudo-moar 9ed857: OUTPUT«1» | ||
bartolin | m: class A { has @.ints }; my $one = A.new( ints => [1, 2] ); say $one.ints.elems | 11:35 | |
camelia | rakudo-moar 9ed857: OUTPUT«2» | ||
bartolin | I wonder whether that's correct | 11:36 | |
11:36
kurahaupo left
|
|||
timotimo | m: my @foo; @foo = [1, 2]; say @foo.elems | 11:37 | |
camelia | rakudo-moar 9ed857: OUTPUT«1» | ||
bartolin | RT #123757 seems to state that the second evaluation shoud give 1 as well. | ||
timotimo | probably should | ||
masak | no please no | ||
bartolin | but we have a test for RT #74636 which seems to go with itemization | ||
masak: ? | |||
masak | I fought at one point for the second evaluation giving 2. | ||
timotimo | oh | ||
masak | it still seems like an eminently good idea to me | 11:38 | |
timotimo | listen to the masak with the experience | ||
masak | let's at least please discuss this first | ||
Ven | m: class A { has @.ints; submethod BUILD(:@.ints) {} }; my $one = A.new( ints => [1, 2] ); say $one.ints.elems | 11:39 | |
camelia | rakudo-moar 9ed857: OUTPUT«2» | ||
masak | `my @foo = 1, 2; say A.new( ints => @foo ).ints.elems;` -- 1 or 2? | ||
Ven | two | ||
masak | agreed. | ||
so `ints => [1, 2]` should also give 2 | |||
not a very solid argument, but maybe the beginning of a solid one | 11:40 | ||
Ven | I don't understand the argument. (1, 2) is (*currently*) different from [1,2] | ||
masak | basically, list assignment is not the same as attr initialization by constructor argument | 11:41 | |
Ven | m: class A { has @.ints }; my $one = A.new( ints => (1, 2, (3, (4,))) ); say $one.ints.elems | ||
camelia | rakudo-moar 9ed857: OUTPUT«4» | ||
masak | if GLR makes that one into 3, I'm fine with that. | ||
I'm talking specifically about [] DWIMming when passing constructor arguments. | 11:42 | ||
I could probably dig up a very old RT ticket about this, too. | |||
Ven | m: class A { has @.ints; }; my $one = A.new( ints => $(1, 2) ); say $one.ints.elems | ||
camelia | rakudo-moar 9ed857: OUTPUT«2» | ||
masak | I remember discussing this in 2010 with mberends and jnthn, in the back of a car moving some of jnthn's stuff to .se | ||
Ven | (I don't have an opinion on that, FWIW. I can agree with both point of views) | 11:43 | |
bartolin | masak++ # stories from the past ;-) | ||
11:43
kurahaupo joined
|
|||
Ven | masak: what do you think of irclog.perlgeek.de/perl6/2015-06-20#i_10777713 ? | 11:44 | |
masak | I'll also try to dig up the spec change that made things more in line with what I'm arguing for now. | ||
Ven | m: class A{}; role T[A]{}; T[5]; # <- doesn't fail | 11:45 | |
camelia | ( no output ) | ||
Ven | m: class A{}; role T[A]{}; T[5].perl.say; # <- but does here | ||
camelia | rakudo-moar 9ed857: OUTPUT«No appropriate parametric role variant available for 'T' in any specialize at src/gen/m-Metamodel.nqp:2437 in any specialize at src/gen/m-Metamodel.nqp:2031 in any compose at src/gen/m-Metamodel.nqp:2747 in any make_pun at src/gen/m-Metamod…» | ||
masak | Ven: I... think that's the first time I see a type capture inside a [] after a role in a type signature. | 11:46 | |
Ven: I agree it'd be lovely if that worked, but I'm not sure how realistict it is to expect it to work. | |||
Ven: either way, please rakudobug it. | |||
Ven | I might've pasted another one like that before, not sure if that's been rakudobugged though | ||
I think jnthn++'s answer was a bit of the same :-) | |||
masak: well, I'm just wondering -- how could I write a polymorphic reverse? | 11:47 | ||
timotimo | jnthn: it could very well be that send-more-money-subs doesn't lower one of the sigs because the choose and guard subs take an &-sigiled variable and the lowerer doesn't check for that | ||
Ven | m: multi role T[5] { method f { "first" } }; multi role T[6] { method f { "second " } }; say T[6].f; | ||
camelia | rakudo-moar 9ed857: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1GKegXIpAhMissing blockat /tmp/1GKegXIpAh:1------> 3multi role7⏏5 T[5] { method f { "first" } }; multi ro expecting any of: new name to be defined» | ||
Ven | m: role T[5] { method f { "first" } }; role T[6] { method f { "second " } }; say T[6].f; | 11:48 | |
camelia | rakudo-moar 9ed857: OUTPUT«second » | ||
Ven | m: role T[5] { method f { "first" } }; role T[6] { method f { "second " } }; BEGIN say T[6].f; | ||
camelia | rakudo-moar 9ed857: OUTPUT«second » | ||
timotimo | hm, i don't think that's it | 11:49 | |
11:49
bin_005 left
|
|||
masak | bartolin, timotimo: found the relevant backlog: irclog.perlgeek.de/perl6/2010-03-07#i_2073494 | 11:50 | |
<pmichaud> masak: we're still working out list issues, sadly. | |||
(from 2010!) | |||
yeah, good thing we managed to get past that stage! :P:P:P | 11:51 | ||
bartolin | masak: thanks a lot for digging! | ||
bartolin reads | |||
masak | m: class A { has @.ints }; my @ints = 1, 2; my $a = A.new(:@ints); say $a.ints.elems; @ints.push(3); $a.ints.elems | 11:53 | |
camelia | rakudo-moar 9ed857: OUTPUT«2» | ||
masak | m: class A { has @.ints }; my @ints = 1, 2; my $a = A.new(:@ints); say $a.ints.elems; @ints.push(3); say $a.ints.elems | ||
camelia | rakudo-moar 9ed857: OUTPUT«22» | ||
Ven | (there's no way to access type parameters from "outside", right? like List[Int].^something | ||
) | |||
masak | seems we got it exactly right since that backlog in 2010. | ||
Ven: .of ? | 11:54 | ||
Ven | masak: in the case of List, yes :). I meant a more general "role A[::X] {}; say A[Int]::X" (or .X) | ||
masak | m: my Array[Int] $l; say $l.of | ||
camelia | rakudo-moar 9ed857: OUTPUT«(Int)» | ||
masak | Ven: then why ask the more specific question? I'm confused. | ||
11:55
nys joined
|
|||
Ven | masak: that's why my question said "type parameters", but yeah :) | 11:55 | |
masak | ok. | ||
anyway, I think the answer to your general question is "no, unfortunately not" | 11:56 | ||
Ven | masak: (just in case, the stuff I was trying to do lives here: github.com/vendethiel/6meta-experi...rch.pl#L18 ) | 11:58 | |
11:58
cognominal joined
12:01
cognominal left
12:06
Ven left
12:08
diana_olhovik joined
|
|||
timotimo | multi sub squish(*@values, |c) { @values.squish(|c) } | 12:17 | |
oh, i was about to ask "what is this", but it's just %* | |||
basically | |||
masak | vendethiel: thank you for pushing the limits of Perl 6 implementations the way you do. I find it very interesting. | 12:19 | |
timotimo | we don't lower the signature of Capture.new, which is method new(:@list,:%hash) { | 12:20 | |
vendethiel | masak: you must not consider yourself an "implementor" for thanking me *g* | 12:21 | |
(but really, thank everyone who did that in other languages / papers in literature / etc. I'm barely trying to translate it to p6) | |||
masak | vendethiel: I'm actually not sure whether I consider myself an implementor. but I see what you mean ;) | 12:22 | |
vendethiel: I am invested in Perl 6 converging on solid theory in cases like this. | 12:23 | ||
12:24
AlexDaniel joined,
Ven joined
|
|||
Ven | masak: I'm very scared by all the possible interactions. But perl6 is *consistent* at its core, or cheats really well to get there :) | 12:24 | |
masak | walk & | 12:25 | |
timotimo | aha! | 12:26 | |
it's quite possible that the slow-path binder gets invoked because Setty's submethod BUILD (does it even get called if it comes in from a role?) doesn't get lowered | 12:27 | ||
submethod BUILD (:%!elems) { self } | |||
TEttinger | I'm trying to wrap my head around some of the rubyish code from the course. github.com/perl6/nqp/blob/master/e...#L694-L704 | 12:29 | |
it assigns to $var , it puts it in the block[0] , but then later it does a make on a different variable | 12:30 | ||
Ven | also funny that this works: | ||
m: my role X[::T] { my T $x; method f { say $x.perl } }; say X[Int].f; | 12:31 | ||
camelia | rakudo-moar 9ed857: OUTPUT«IntTrue» | ||
TEttinger | is the make really putting an identifier into the AST, not making a new Var ? | ||
Ven | but this doesn't: | ||
m: my role X[::T] { method create(--> T) { T.new } }; say X[Int].create; say Int.new; | |||
camelia | rakudo-moar 9ed857: OUTPUT«Type check failed for return value; expected 'T' but got 'Int' in any return_error at src/vm/moar/Perl6/Ops.nqp:650 in method create at /tmp/abDgsxjbd5:1 in any at src/gen/m-Metamodel.nqp:1643 in block <unit> at /tmp/abDgsxjbd5:1» | ||
12:32
cognominal joined,
_mg_ joined
|
|||
timotimo | TEttinger: it looks like $block.symbol is also a setter, more or less | 12:32 | |
TEttinger: also, pushing something onto a block's first child is what you do to add lexical definitions properly | 12:33 | ||
and the thing it makes is a reference to the created variable | |||
TEttinger | oh ok | ||
timotimo | you can see the difference in whether or not :decl is present | ||
TEttinger | so it's returning a reference regardless, but if it isn't declared already, it declares it first? | 12:34 | |
got it | |||
timotimo | sounds sensible to me | 12:36 | |
jnthn | timotimo: It's entirely possible we don't know how to compile attributive param binds, yes | 12:39 | |
timotimo | yes, we bail out for that explicitly | ||
i was thinking i could probably implement it easily | |||
dalek | kudo/nom: 6bba8ab | jnthn++ | src/Perl6/Grammar.nqp: Fix bad error on redeclaring an enum element. Fixes RT #125441. |
12:40 | |
ast: 7404f8c | jnthn++ | S32-exceptions/misc.t: Test for RT #125441. |
|||
jnthn | timotimo: I think it shoudln't be too bad to do, yeah | ||
Woodi | hallo #perl6 :) | 12:43 | |
dalek | ast: dbf53cb | usev6++ | S12-attributes/instance.t: Add tests for RT #118559 and RT #120059 |
12:44 | |
Woodi | skids: what exactly must-haves Emacs have ? maybe rest of the World could use thes too ? :) | 12:45 | |
Ven | Woodi: evil-mode :P | 12:47 | |
dalek | ast: f86283d | jnthn++ | S12-introspection/meta-class.t: No longer have prefix ^ meaning "HOW". Resolves RT #125016. |
12:48 | |
Woodi | Ven: but this is vi4emacs, I thinked skids was talking about something in emacs what is missed anywhere else | 12:51 | |
dalek | ast: 3a01073 | jnthn++ | S12-introspection/meta-class.t: .^layout is spelled .REPR these days; update test. Resolves RT #125018. |
12:52 | |
Woodi | anyway I prefer to do not play with any evil(s) :) | ||
12:53
Ven left,
spintronic left,
Ven joined
12:54
_mg_ left
|
|||
dalek | kudo/nom: a0fa1a7 | jnthn++ | src/core/operators.pm: Add HOW(...); it's mentioned in spec and tested. And is consistent with having WHAT and VAR. |
12:56 | |
Ven | jnthn: shouldn't that "Wants" become "Want" them? | 12:57 | |
Woodi | masak: "model refactoring" looks a bit like ORM layer and it would be simplest way for some tool. I think Positional role is step in such direction. now we need a meta roles that know how to automatically convert things :) | ||
12:57
spintronic joined
|
|||
jnthn | Like I know how to English... | 12:57 | |
timotimo | now i've changed the output of my "failure to lower signature" complain sub so that vim understands it | 12:58 | |
dalek | ast: 4ee860b | jnthn++ | S12-introspection/meta-class.t: Unfudge test for HOW(...). |
||
colomon imagines Englishing involves walking around saying “What, what” and “Sorry old chap” | |||
Ven | m: macro MYHOW($x) { quasi { {{{$x}}}.HOW } }; say MYHOW(3); | ||
camelia | rakudo-moar 9ed857: OUTPUT«Perl6::Metamodel::ClassHOW.new» | ||
Woodi | so <?foo> is zero-width lookahead and it do not moe cursor... what it do ? marks some bit in engine and allows to construct some if(<?foo>) then { ... } ? | 13:00 | |
*move | 13:01 | ||
timotimo | what engine? | ||
jnthn: are you aware we seem to bail out of every method defined in a role because type_captures is set? at least it seems to be that way | 13:03 | ||
um | 13:05 | ||
or maybe that's the signature of the role itself? | 13:06 | ||
jnthn | Probably that of the role itself | 13:08 | |
[ptc] | colomon: there's probably a lot of "quite", "indeed" and "rather" as well ;-) | ||
jnthn | I think we'd be seeing a lot more bails otherwise. | ||
timotimo | yes, you are right | 13:09 | |
Woodi | timotimo: the thingie that moves corsor :) I assumed it's about grammars | ||
timotimo | Woodi: that's correct. where does "if(<?foo>) then { ... }" come from? that doesn't seem like anything in perl6 | ||
jnthn: what's tricky about doing method new(:@list,:%hash) { | 13:10 | ||
Woodi | no 'if's. just description how it could work... | ||
timotimo | it seems like it's a bail because we don't have a default value for @list | ||
jnthn | timotimo: Not sure without looking. Is it perhaps optional array/hash args? | ||
timotimo | yeah | 13:11 | |
i just put a ! at the end to see if the bail disappears :) | |||
13:13
diana_olhovik left
|
|||
timotimo | hm. i have no idea what nominal_generic does | 13:15 | |
"this can happen in (::T, T)" | 13:16 | ||
hm. we quite often have ::?CLASS:D in signatures just because we want the :D, but don't necessarily know the class | 13:18 | ||
that keeps the binder lowerer from lowering | |||
bind_accessor being set in %info is never the reason for a bail | 13:20 | ||
dalek | kudo/nom: 936ef82 | jnthn++ | src/Perl6/Grammar.nqp: Allow invocant colon at EOF. Fixes RT #125440. |
13:21 | |
13:21
rindolf left
|
|||
dalek | ast: 8724f14 | jnthn++ | S12-methods/indirect_notation.t: Test for RT #125440. |
13:21 | |
jnthn | timotimo: Hm, the ::?CLASS:D one is probably fixable | 13:22 | |
timotimo | i thought it would be, but i'm not 100% sure how. just detecting it's ::?CLASS and as such we don't actually set the value of ::?CLASS | ||
and also ::?CLASS: is never actually worth a type check | |||
hm. actually ... not never | 13:23 | ||
jnthn | It can matter | ||
timotimo | like if we .^find_method for example | ||
jnthn | Well, it's more that we should emit code to look up the type var | ||
(lexically) | |||
timotimo | fair enough | ||
jnthn | There's even a typevar scope iirc | ||
So that spesh would know that it can cache the lookup if it's specializing on invocant type | 13:24 | ||
Which means it could even eliminate the type check | |||
timotimo | i'm more worried about the reason why :%!config, for example, bails out because of "no default value, but we have a % sigil" | ||
that means it doesn't properly set bind_accessor in the %info hash | 13:25 | ||
oh, hold on | |||
bind_accessor is for %.config | |||
bind_attr is for ! twigils | |||
and we do support that | 13:26 | ||
AlexDaniel | timotimo: p6monthly :( | ||
:) | |||
timotimo | i've been a bit tuitdrained and i - for some reason - didn't ask lizmat for assistance | 13:27 | |
jnthn | errands & | 13:31 | |
13:35
araujo joined,
araujo left,
araujo joined
|
|||
dalek | line-Perl5: 54672b6 | (Stefan Seifert)++ | t/from.t: Simplify test code a bit by using "new" features. |
13:38 | |
line-Perl5: db5dff2 | (Stefan Seifert)++ | README.md: Major documentation update. Added documentation for all implemented features. Updated examples to reflect the development of the past months. Document more details like return values. |
13:40 | ||
timotimo | m: sub test(:@arr) { say @arr.perl }; test(); | ||
camelia | rakudo-moar a0fa1a: OUTPUT«[]<>» | ||
timotimo | m: sub test(:@arr) { say @arr.DUMP }; test(); | 13:41 | |
camelia | rakudo-moar a0fa1a: OUTPUT«Array<1>( :$!flattens(True), :$!items(▶Mu), :$!nextiter(▶Mu))» | ||
timotimo | m: say Array.new().perl | ||
camelia | rakudo-moar a0fa1a: OUTPUT«[]<>» | ||
timotimo | m: say Array.new().DUMP | ||
camelia | rakudo-moar a0fa1a: OUTPUT«Array<1>( :$!flattens(True), :$!items(▶Mu), :$!nextiter(ListIter<4>( :$!list(=Array<1>), :$!reified(▶Mu), :$!nextiter(▶Mu), :$!rest(BOOTArray<5>()) )))» | ||
dalek | ast: 21babba | usev6++ | S04-exceptions/fail.t: Unfudge test for RT #115436 |
13:43 | |
timotimo | ah, i know what i have to do: | 13:47 | |
m: use nqp; my $a := nqp::create(Array); nqp::bindattr($a, List, '$!flattens', True); say $a.dump; | 13:48 | ||
camelia | rakudo-moar a0fa1a: OUTPUT«Method 'dump' not found for invocant of class 'Array' in block <unit> at /tmp/OJ33USE0Ix:1» | ||
timotimo | m: use nqp; my $a := nqp::create(Array); nqp::bindattr($a, List, '$!flattens', True); say $a.DUMP; | ||
camelia | rakudo-moar a0fa1a: OUTPUT«Array<1>( :$!flattens(True), :$!items(▶Mu), :$!nextiter(▶Mu))» | ||
timotimo | m: use nqp; my $a := nqp::create(Array); say $a.DUMP; | ||
camelia | rakudo-moar a0fa1a: OUTPUT«Array<1>( :$!flattens(▶Mu), :$!items(▶Mu), :$!nextiter(▶Mu))» | ||
timotimo | right. | ||
13:50
_mg_ joined
|
|||
timotimo | m: use nqp; my $a := nqp::bindattr(nqp::create(Array), List, '$!flattens', True); say $a.DUMP; | 13:55 | |
camelia | rakudo-moar 936ef8: OUTPUT«True» | ||
timotimo | damn, it doesn't return its first param :( | ||
13:56
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:58
Sqirrel left,
skids joined
14:01
Sqirrel joined
14:04
brrt joined,
Ven left
|
|||
timotimo commutes | 14:05 | ||
brrt | \o | ||
14:07
domidumont joined
14:08
xxx left
14:10
xxx joined
14:11
domidumont left,
domidumont joined
|
|||
ugexe | ultimately should a package/module manager only build/test/install items listed in the `provides`? | 14:13 | |
as in, it shouldnt walk the directories looking for files | 14:14 | ||
14:15
Aurelie joined
|
|||
ugexe | also regarding `provides`, is having 2 unit names point to the same file OK? A => lib/module.pm, B => lib/module.pm | 14:16 | |
14:17
domidumont left
14:19
aborazmeh left
14:20
domidumont joined
14:21
Ven joined
|
|||
brrt | ugexe: counterargument: source code should be authorative over some configuration file | 14:22 | |
ugexe | the source code doesnt link to files | 14:23 | |
you need to map the source's use/require whatever to a file name somehow | |||
brrt | hmm | ||
i see what you mean | |||
having the full fileset in a module explicit would be a big advantage in precompilation / packaging scenario | 14:24 | ||
skids | jnthn++ RT slaughtering | 14:27 | |
14:27
Ven left
|
|||
ugexe | brrt: the other thing is you still need to find which files are part of a package. In the best case scenario you just look at the provides in META.info. The other way is to do a recursive file search for all .pm/.pm6 files from a base directory and try to precompile them... maybe this is ok, but if extra stuff ends up in that directory later it may try to precompile/run code that doesnt belong belong to the c | 14:31 | |
rusty old repo you thought you were installing | |||
14:31
yqt joined
|
|||
brrt | hmmm | 14:33 | |
yes | |||
RabidGravy | can I reliably do this: | ||
m: my $a = sub foo() returns Bool {} ; my $b = $a.signature.returns; say $b(0) | |||
camelia | rakudo-moar 936ef8: OUTPUT«False» | ||
RabidGravy | for all built in types? | ||
14:34
skids left
|
|||
ugexe | i hope so, thats nifty | 14:34 | |
14:41
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
timotimo | m: say Bool(0); say Int(0); say List(0) | 14:42 | |
camelia | rakudo-moar 936ef8: OUTPUT«False00» | ||
timotimo | m: say Bool(0).perl; say Int(0).perl; say List(0).perl | ||
camelia | rakudo-moar 936ef8: OUTPUT«Bool::False0(0,)» | ||
14:42
_mg_ left
|
|||
moritz | no | 14:50 | |
you can't create a Code object like that, for example | 14:51 | ||
14:56
domidumont left
14:59
ugexe left
|
|||
RabidGravy | sorry, not quite sure what you mean | 15:00 | |
timotimo | m: Code(0).perl.say | ||
camelia | rakudo-moar 936ef8: OUTPUT«(signal SEGV)» | ||
timotimo | ^- he means that | ||
RabidGravy | oh, I see | ||
15:02
ugexe joined
|
|||
cognominal | jnthn empties RT faster than masak can pour :) | 15:03 | |
RabidGravy | but for a given type $a and type $b where $b.can($a.perl) one can do $a($b) | 15:07 | |
I think that's safe | |||
lizmat | timotimo: I will do the P63W next Monday then? | ||
timotimo | for 63 weeks? | 15:08 | |
wow, ambitious! | |||
but yeah, i'd appreciate it | |||
nwc10 | I think it's the Perl 3 for 6 weeks. Or something like that :-) | ||
timotimo | %) | 15:09 | |
15:10
naptastic left
15:11
kurahaupo left
|
|||
lizmat | nononono It's the new Perl 63 :-) that's 9 * 7 to you :-) | 15:11 | |
brrt | perl 61 would be prime | 15:15 | |
timotimo | a prime example | 15:17 | |
huf | why restrict yourself to just traditional numbers? what about perl galoshty-four? | ||
15:18
espadrine left
|
|||
jnthn | FROGGS: Didn't you implement ignoremark already? If so, is rt.perl.org/Ticket/Display.html?id=116256 resolvable? | 15:23 | |
15:23
kurahaupo joined
15:25
aindilis left
15:27
aborazmeh left
|
|||
jnthn | m: say "ü" ~~ /:ignoremark 'u'/ | 15:36 | |
camelia | rakudo-moar 936ef8: OUTPUT«Nil» | ||
jnthn | m: say "ü" ~~ /:m 'u'/ | 15:37 | |
camelia | rakudo-moar 936ef8: OUTPUT«Nil» | ||
jnthn | hm, mebbe not | ||
bartolin | m: say "ü" ~~ m:ignoremark/ u / | 15:39 | |
camelia | rakudo-moar 936ef8: OUTPUT«「ü」» | ||
dalek | kudo/nom: bbc369b | jnthn++ | src/Perl6/Optimizer.nqp: Do not inline blocks with exit handlers. Otherwise, we'll miss running any LEAVE, POST, etc. Fixes RT #113950. |
15:40 | |
15:40
setty1 joined
|
|||
dalek | ast: f15b126 | jnthn++ | S04-phasers/enter-leave.t: Unfudge test for RT #113950. |
15:41 | |
jnthn | Another one down. | ||
bartolin | jnthn++ | 15:42 | |
jnthn | Hm, and now let's see if I can fix one that goes all the way back to 2010... | ||
brrt | \o/ | 15:43 | |
jnthn | Filed by masak, of course... | ||
:) | |||
FROGGS | m: say "ü" ~~ /:ignoremark 'u'/ | ||
camelia | rakudo-moar 936ef8: OUTPUT«Nil» | ||
FROGGS | m: say "ü" ~~ /:m 'u'/ | 15:44 | |
camelia | rakudo-moar 936ef8: OUTPUT«Nil» | ||
FROGGS | ahh | ||
hmmm | |||
jnthn | heh, glad the ticket found an actual bug | ||
FROGGS | jnthn: yes, should be doable without much fuzz | 15:45 | |
jnthn | Yeah, I figured you already did the hart part :) | ||
uh, hard | |||
bartolin | well, schwierig :-) | ||
FROGGS | jnthn: will fix it this evening, dont wanna switch branches right now | 15:49 | |
15:49
silug joined
|
|||
jnthn | m: class A { submethod m() { } }; class B is A { }; B.m | 15:49 | |
camelia | rakudo-moar 936ef8: OUTPUT«Method 'm' not found for invocant of class 'B' in block <unit> at /tmp/uxkvnmpXLh:1» | ||
15:49
espadrine joined
|
|||
jnthn | m: class A { submethod m() is default { } }; class B is A { }; B.m | 15:49 | |
camelia | ( no output ) | ||
15:50
Aurelie left
15:51
schmooster left
|
|||
moritz | m: say "ä" ~~ /:m a/ | 15:52 | |
camelia | rakudo-moar 936ef8: OUTPUT«「ä」» | ||
moritz | m: say "ä" ~~ /:m zkya/ | 15:53 | |
camelia | rakudo-moar 936ef8: OUTPUT«Nil» | ||
moritz | we can't do the index search when :m is in scope | ||
dalek | kudo/nom: a59d812 | usev6++ | src/core/Mu.pm: Use nqp::decont on attributes passed with .clone Fixes RT #120059 |
||
kudo/nom: f658992 | lizmat++ | src/core/Mu.pm: Merge pull request #443 from usev6/clone_attributes Use nqp::decont on attributes passed with .clone |
|||
FROGGS | moritz: good catch | ||
m: say "ä" ~~ m:m/zkya/ | |||
camelia | rakudo-moar 936ef8: OUTPUT«False» | ||
moritz wonders if he did that optimization in rakudo or in nqp | 15:54 | ||
FROGGS | m: say "ü" ~~ m:ignoremark/ au / | ||
camelia | rakudo-moar 936ef8: OUTPUT«False» | ||
FROGGS | I thought that gets tested... | ||
zostay | m: sub x { }; GLOBAL::<&x>.perl.say | 15:56 | |
camelia | rakudo-moar 936ef8: OUTPUT«Any» | ||
zostay | m: sub x { }; GLOBAL::.perl.say | 15:57 | |
camelia | rakudo-moar 936ef8: OUTPUT«{}<>» | ||
zostay | are the symbol tables not being populated yet or am i missing something? | ||
jnthn | Subs are lexical by default. | ||
dalek | kudo/nom: be122ad | lizmat++ | lib/Test.pm: Fix 2 throws_like omissions |
15:58 | |
zostay | m: our sub x { }; GLOBAL::.perl.say | ||
camelia | rakudo-moar 936ef8: OUTPUT«{"\&x" => sub x () { #`(Sub|44146728) ... }}<>» | ||
zostay | thx | ||
moritz | the index_s optimization already checks for 'ignorecase', 'ignoremark' and 'ignorecase+ignoremark' | 16:07 | |
16:12
rindolf joined
16:20
uncleyear left
16:21
uncleyear joined
16:24
muethos left,
lolisa joined
16:27
brrt left,
araujo left
16:29
araujo joined
|
|||
RabidGravy | okay going, going back to the earlier casting thing,is there a generalised way of testing whether one can cast the value of variable $a to type $b? my previous assumption doesn't work for enums | 16:34 | |
16:34
salva left
|
|||
itz_ | :p for pipe seen at: src/gen/m-CORE.setting, line 18605 Deprecated since v2015.6, will be removed with release v2015.9! Please use pipe($path,...) instead. | 16:36 | |
timotimo | itz_: yeah, we saw that :S | ||
FROGGS is dilligently at work in that area | |||
and i believe this issue is already on his radar | |||
itz_ | ah yes sorry I should have checked scrollback | 16:37 | |
timotimo | no worries | ||
dalek | kudo/nom: 784ce58 | jnthn++ | / (4 files): Add Perl6::Metamodel::Configuration. Lets us factor out various bits of configuration we do on the MOP so we can share the data easily amongst various meta-objects. Use it to clean up the stash type handling. |
16:40 | |
kudo/nom: 425679e | jnthn++ | src/Perl6/Metamodel/ (3 files): Fix fragile submethod testing. We would fail to consider a submethod with a role mixed in to be a submethod. |
|||
ast: b99ebea | jnthn++ | S14-traits/routines.t: Test submethods and traits interaction. Covers a (seemingly unreported) bug discovered while investigating a different RT. |
|||
ast: a63aa1d | jnthn++ | S05-grammar/methods.t: Don't be case-sensitive in text test. |
|||
jnthn | shoppin n cookin & | ||
16:41
oetiker_ joined
|
|||
timotimo | is enter-leave failing for other people as well? | 16:50 | |
ah, i probably just got that in via rebase | 16:53 | ||
dalek | line-Perl5/fix_precomp: be6e160 | (Stefan Seifert)++ | / (3 files): WiP |
16:54 | |
17:00
muethos joined
17:06
_mg_ joined
|
|||
dalek | kudo/nom: 70c5bc5 | timotimo++ | src/Perl6/Actions.nqp: we can now lower signature binding with optional @ and % vars. |
17:11 | |
17:14
dha joined
|
|||
dalek | line-Perl5: fdc218f | (Stefan Seifert)++ | / (3 files): Support P6 objects with overloaded stringification A Perl 6 object's Str() method will now be called when the object is used as string in Perl 5 code. This is for example most helpful when a Perl 6 exception is cought by Perl 5 code that just tries to print the error message. |
17:16 | |
17:18
tinyblak left
17:19
LonelyGM joined
|
|||
tony-o | m: use MONKEY-TYPING; augment class Mu { method ddump { "ddump".say; } }; my Int $a = 5; $a.ddump | 17:23 | |
camelia | rakudo-moar be122a: OUTPUT«Method 'ddump' not found for invocant of class 'Int' in block <unit> at /tmp/23lpzqhIxK:1» | ||
17:27
muethos left
|
|||
timotimo | known problem; we don't propagate changes down the inheritance chain yet | 17:29 | |
flussence | m: 'hello world'.encode('ASCII').index(Buf.new(0x20)) | 17:32 | |
camelia | rakudo-moar be122a: OUTPUT«Method 'index' not found for invocant of class 'Blob[uint8]' in block <unit> at /tmp/XAdWxbWsU7:1» | ||
17:35
Sqirrel left,
muethos joined
|
|||
tony-o | timotimo: ty | 17:36 | |
flussence wishes Bufs had all the string methods that could be made to work sensibly... | |||
tony-o | m: 'hello world'.encode('ASCII').index(Buf.new(0x20).decode('ascii')) | ||
camelia | rakudo-moar be122a: OUTPUT«Method 'index' not found for invocant of class 'Blob[uint8]' in block <unit> at /tmp/d5dHVCe8DM:1» | ||
tony-o | oops | 17:37 | |
flussence | that one in particular is LHF, because it could just call strstr | 17:39 | |
17:40
Sqirrel joined
|
|||
dalek | ast: cad696a | usev6++ | S12-attributes/instance.t: Unfudge test for RT #120059 |
17:47 | |
bartolin | is it just me or is the jvm build broken atm? | ||
17:50
lolisa left
|
|||
bartolin | (I get a NullPointerException in 'add_method' (from src/Perl6/Metamodel/MethodContainer.nqp)) | 17:50 | |
17:51
lolisa joined
17:57
kst left
|
|||
xinming | I saw that in ::= the example does something like { my $*OUT ::= open(...); dosomething... } <--- Isn't this example contradicting with the dyanmic scoped var with 'temp'??? | 17:58 | |
17:58
lolisa left
|
|||
xinming | Just curious what are the differences between the { my $*OUT .. } and { templ $*OUT ... } in this case. | 17:59 | |
18:00
dha left
18:01
kst joined
|
|||
xinming | It's in design.perl6.org/S03.html under the introduction about ::= | 18:01 | |
And another question, Why is andthen uses $_ but orelse uses $! Doesn't make much sense to me. seems to be inconsistent. Just to indicate orelse is "error" ? | 18:10 | ||
18:13
Sqirrel left
|
|||
RabidGravy | is there any way of knowing whether a type object is *really* Mu , obviously $type ~~ Mu is always True | 18:17 | |
hoelzro | =:= should do it, right? | ||
m: Any =:= Mu | |||
camelia | ( no output ) | ||
hoelzro | m: Mu =:= Mu | ||
camelia | ( no output ) | ||
hoelzro | m: say(Any =:= Mu) | ||
camelia | rakudo-moar be122a: OUTPUT«False» | ||
hoelzro | m: say(Mu =:= Mu) | 18:18 | |
camelia | rakudo-moar be122a: OUTPUT«True» | ||
RabidGravy | perfect | ||
hoelzro | camelia: y u no print output?! | ||
RabidGravy | so many operators | ||
;-) | |||
poor little brane not big enuff | |||
18:19
lolisa joined,
espadrine left
|
|||
xinming | Anyone here would answer my question? :-) | 18:21 | |
hoelzro | I think that Perl 6's operators are pretty consistent; =:= follows := | ||
18:21
Sqirrel joined
|
|||
hoelzro | xinming: I don't know about your first question, but I think your assumption about orelse is correct | 18:21 | |
xinming | Ok, Thanks. Will ask when the next time I re-read the doc from start. :-) | 18:25 | |
18:30
dha joined
|
|||
dha | So, is pod syntax changing in Perl 6? | 18:31 | |
yoleaux | 17 Jun 2015 23:34Z <b2gills> dha: I sure hope you aren't trying to re-implement the Test::Builder module from Perl 5, which they are currently trying to replace with a better model | ||
timotimo | yeah, we have "pod6" now | 18:32 | |
dha | In answer to that question, Test::Builder seems to have been implemented already. I'm working on Test-Simple stuff. But I'm probably going to take a break from that to expand heavily on the 5to6 translation docs. | 18:33 | |
timotimo - great! Where are those changes documented? | 18:34 | ||
(see comment about writing docs above :-) | 18:35 | ||
18:35
zacts left
|
|||
dha | It suddenly occurs to me that github will be made ill from p6 pod. :-/ Which I guess raises the question: would it be better to just write in p5 pod or plain text and convert to p6 pod later? | 18:37 | |
timotimo | design.perl6.org has a document on it | ||
18:38
zacts joined
|
|||
dha | How fixed is the information in that document? | 18:39 | |
18:40
lolisa left
|
|||
timotimo | relatively, i suppose | 18:40 | |
dha | And, I guess for my purposes, is p6 pod a superset of p5 pod, or are there conflicts? | ||
timotimo | i don't know, i never did any perl5 | 18:41 | |
dha | Ah, so I guess what I'm working on is not really of use to you. :-) | 18:42 | |
timotimo | pod5 to pod6 converter? :) | 18:44 | |
18:45
zakharyas joined
18:47
espadrine joined
|
|||
dha | I'm sure that would be handy. :-) | 18:47 | |
RabidGravy | dha: at minimum your p5 pod needs a =begin pod .. =end pod round it and drop =over .. =back for lists | 18:48 | |
most of the rest will work | |||
dha | What do you use for lists in p6? | ||
Just use =item ? | 18:49 | ||
RabidGravy | yeah | ||
dha | And does the requirement of =begin...=end hold for documents that are entirely pod? | ||
RabidGravy | yes (it is still parsed as perl 6) | 18:50 | |
dha | *nod* Thanks RabidGravy | ||
Oh, that's you. Didn't recognize the new handle. ;-) | 18:51 | ||
Although I probably should have... | |||
RabidGravy | :) | 18:52 | |
japhb | Oooh, someone (usev6?) fixed a 2-year old RT of mine, nice! | 18:53 | |
RabidGravy | it was just an accident, I'd been using IRC for the radio station | ||
18:53
espadrine left
|
|||
dha | Ah. | 18:53 | |
dalek | kudo/nom: 37ab741 | timotimo++ | src/Perl6/Actions.nqp: elaborate more on generic archetypes and uncuddle else |
19:05 | |
kudo/nom: 020b2f2 | hoelzro++ | docs/release_guide.pod: Remove myself from upcoming releases |
19:09 | ||
dha | Ok, so I put a bunch of stuff in @array. then I go "say @array". It prints out the elements with spaces in between them. a) this is the behaviour of 'say "@array"' in p5, so does p6 say autoquote its arguments? Or is there some other thing going on here? b) Is it necessarily space separated, or is there a way of changing that, a la p5's $" var? | 19:32 | |
masak | (b) no way, at least not currently. | 19:33 | |
dha | Also, my brain hurts. | ||
ok, that's definitely helpful. | |||
masak | m: my @array = 1, 2, 3; say @array | ||
camelia | rakudo-moar be122a: OUTPUT«1 2 3» | ||
masak | m: my @array = 1, 2, 3; say @array.list | ||
camelia | rakudo-moar be122a: OUTPUT«1 2 3» | ||
masak | m: my @array = 1, 2, 3; say(|@array) | ||
camelia | rakudo-moar be122a: OUTPUT«123» | ||
masak | m: say(1, 2, 3) | 19:34 | |
camelia | rakudo-moar be122a: OUTPUT«123» | ||
19:34
LonelyGM left
|
|||
dha | I should probably at some point figure out what that pipe character is doing. | 19:34 | |
masak | this is one way in which (argument) lists and arrays differ. | ||
dha: that pipe character flattens the array into the argument list. | |||
dha: happens automatically in Perl 5 if you pass in a non-reference array. | 19:35 | ||
dha | Right. ok. | ||
19:36
zakharyas left
|
|||
dha | I see the difference, but still not clear why the @array, rather than the argument list, gets the behaviour it does. | 19:36 | |
masak | the proximal reason is that Array has a Str method which puts in the spaces. | 19:37 | |
dha | So... basically... "Arrays just do that now." | 19:38 | |
masak | m: my @array = 1, 2, 3; say @array.has("Str"); my $s = @array.Str; say $s | ||
camelia | rakudo-moar be122a: OUTPUT«Method 'has' not found for invocant of class 'Array' in block <unit> at /tmp/s9NkyVZAY1:1» | ||
masak | m: my @array = 1, 2, 3; say @array.can("Str"); my $s = @array.Str; say $s | ||
camelia | rakudo-moar be122a: OUTPUT«Str Str Str1 2 3» | ||
masak | m: my @array = 1, 2, 3; say ?@array.can("Str"); my $s = @array.Str; say $s | ||
camelia | rakudo-moar be122a: OUTPUT«True1 2 3» | ||
masak | dha: you'll have to ask TimToady for a deeper reason than that. | 19:39 | |
dha: but one difference between Perl 5 and Perl 6 is that arrays *don't* autoflatten. this at least forms the basis for the different behavior in the first place, if not a complete rationale. :) | |||
dha | So, if I'm understanding this right, @array's Str method is automatically invoked when it's used in a context that expects a string, and that stringifies it with the spaces? | 19:40 | |
masak | aye. you are understanding this right. | ||
dha | The irony here is that I don't know why I'm trying so hard to understand this, since what I was really looking for was whether $" had a p6 equivalent... :-) | 19:41 | |
Oh good. I like understanding things right. :-) | |||
masak hits S28 to look for a $" analog | |||
yeah, S28 says there is none :/ | 19:42 | ||
dha | Does it say there will never be? | ||
19:42
bin_005 joined
|
|||
masak | I'm not sure it has the authority to say that. :) but it doesn't look like there are plans for any. | 19:42 | |
dha | For context, I've decided we need more info for people going from p5 to p6, so I'm starting that by going through all the special variables and pointing to what you would use instead in p6. | 19:43 | |
masak | then S28 is definitely for you. | ||
dha | So, for $" the answer is "You're screwed." | ||
masak | the answer was literally "-" in S28. | ||
dha | How fixed is the information in S28? or any of those documents, for that matter? | 19:44 | |
masak | it varies. S28 can sometimes get out-of-date with respect to more current documents. | ||
(in this case I have no reason to believe it is, though) | |||
dha | ok. I guess I'll just have to live with that. Thanks for the pointer, though. | 19:45 | |
masak | S02..S06 and S12 are "core" in some sense, and almost always the most current. | 19:46 | |
(and they thankfully don't change much these days) | |||
RabidGravy | dha, currently List.Str is literally: "multi method Str(List:D:) { self.join(' ') }" | 19:47 | |
dha | Gesundheit. :-) | ||
Actually, most of that makes sense. clearly I'm starting to ingest the Kool-Aid. | |||
RabidGravy | so if one cared one could augment Array with some different implementation or something | 19:48 | |
masak wishes the IT world hadn't landed on a metaphor which involves suicide cults :/ | |||
19:50
_mg_ left
|
|||
RabidGravy | masak, depends which origin you go for. It could be (and *I* tend to think of it more as, ) Ken Kesey and the Merry Pranksters rather than Jonestown :) | 19:54 | |
bartolin | m: my %hash = (a => 42); for %hash.pairs -> $p { $p.value += 100 }; say %hash<a> | ||
camelia | rakudo-moar be122a: OUTPUT«42» | ||
bartolin | m: my $pair = (a => 42); for $pair.pairs -> $p { $p.value += 100 }; say $pair<a> | ||
camelia | rakudo-moar be122a: OUTPUT«142» | ||
bartolin | ^^ is there a reason for % and $ behaving differently here? | 19:55 | |
dha | Yeah, I'm going to go with the pranksters. | ||
19:56
sjn_phone_ joined
|
|||
masak | RabidGravy: interesting. that seems to also be the origin of the term "acid test" (of CSS fame). unless that term is much older, which is not at all unlikely, come to think of it. | 19:56 | |
colomon | pretty sure “acid test” goes way way back | 19:57 | |
“Any decisive test or ordeal; from the former use of nitric acid to test a metal for its gold content.” | |||
www.thefreedictionary.com/acid+test | |||
masak | oh! I stand corrected. | 19:58 | |
that makes a whole lot of sense. | |||
colomon | “Acid test is American English, 1892, from the frontier days, when gold was distinguished from similar metals by application of nitric acid.” www.etymonline.com/index.php?term=acid | ||
masak | in other words, as most computer terminology, it comes out of California :P | 19:59 | |
dha | Of course, in the case of the Pranksters, the use of "acid test" was punny. | ||
Ew. $*PROGRAM does not what I expect. | 20:00 | ||
oh. You *have* to explicitly stringify it to get what I was expecting. | 20:01 | ||
20:01
sjn_phone joined
20:02
rindolf left
|
|||
masak | $*PROGRAM_NAME | 20:02 | |
20:03
labster_ joined
20:04
TEttinger left,
sjn_phone_ left
20:05
d4l3k_ joined,
pRiVi_ joined
20:06
rindolf joined,
cognominal_ joined,
muethos left
20:07
BooK_ joined,
nowan_ joined,
BinGOs_ joined,
mephinet- joined,
bobkare_ joined,
ilbelkyr_ joined,
integral_ joined,
integral_ left,
integral_ joined
20:08
nine_ joined,
ilbelkyr left,
ilbelkyr_ is now known as ilbelkyr,
cow-orker joined
|
|||
dha | Oh. That's what I get for paying attention to S28, then... :-/ | 20:08 | |
20:08
pmichaud_ joined
|
|||
masak | dha: yes, that should clearly be updated in S28. | 20:09 | |
dha: care to supply a patch? | |||
(in either case, thanks for discovering it) | |||
dha | Sure. What's the patch process for those documents? | 20:10 | |
masak | usually we just give people commit access. what's your github id? | ||
dha | dha | ||
masak | invitation sent. | 20:11 | |
20:11
JimmyZ_ left
|
|||
dha | I note that stringification of $*PROGRAM gives you what $*PROGRAM_NAME gives you, which is what S28 says now. | 20:12 | |
thanks. | |||
Is there any reason to put both in there? Or just equate $0 to $*PROGRAM_NAME and be done with it? | |||
20:13
setty1_ joined
|
|||
ugexe | $*PROGRAM returns an IO object. you do IO on it | 20:13 | |
20:13
Timbus_ joined
|
|||
dha | Well, ok, but if you stringify it, it *does* give you the program name. | 20:13 | |
masak | dha: my opinion: put $*PROGRAM_NAME as the primary suggestion, but mention $*PROGRAM too | 20:14 | |
(as $*PROGRAM_NAME is the closest analog of $0) | |||
dha | ok, as I said, stringification of $*PROGRAM is how it is in s28 now. So I guess it doesn't hurt to put both on that line. | ||
20:14
cognominal left,
setty1 left,
ShimmerFairy left,
nowan left,
dalek left,
njmurphy left,
labster left,
Timbus left,
BooK left,
pnu left,
pRiVi left,
camelia left,
mephinet left,
bobkare left,
vytas left,
cow-orke1 left,
BinGOs left,
labster_ is now known as labster
20:15
bobkare_ is now known as bobkare
|
|||
masak | I don't think stringification of $*PROGRAM is all that important to mention. | 20:15 | |
if someone wants the stringified form, they'd more likely use $*PROGRAM_NAME | |||
RabidGravy | I think it's just there to make "say $*PROGRAM.slurp" really eay ;-) | ||
20:15
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek
|
|||
masak | for all we know, the note about stringification predates $*PROGRAM_NAME | 20:15 | |
RabidGravy | easy | ||
dha | True. | 20:16 | |
ugexe | it also keeps you from doing "-e".slurp | ||
20:17
BinGOs_ is now known as BinGOs
|
|||
masak | which would even count as a security risk. | 20:17 | |
20:17
BinGOs left,
BinGOs joined
20:19
vytas joined,
felher joined,
ShimmerFairy joined,
felher is now known as Guest53465
|
|||
ugexe | looks like IO coerces "-e" to "", i.e. "-e".IO.say gives "".IO But of course you can actually have a file/folder named "-e" on windows | 20:20 | |
20:20
telex left
|
|||
ugexe | maybe on linux too... but at least its trying to make it hard for me | 20:21 | |
20:21
d4l3k_ joined,
camelia joined
20:23
gagalicious left,
ChanServ sets mode: +v camelia
20:24
integral joined,
integral left,
integral joined,
BooK joined
20:25
mrf_ joined,
danstone1 joined,
StavroMu1ller joined
20:26
kaare__ left
20:28
tardisx` joined,
rvchangu- joined
20:29
telex joined,
integral_ left,
BinGOs left,
BooK_ left,
dalek left,
sjn_phone left,
skarn left,
mrf left,
maettu left,
hobbs left,
mattp_ left,
StavroMueller left,
lsm-desktop left,
tardisx left,
chansen_ left,
Spot__ left,
fernando___ left,
danstoner left,
rvchangue left
20:30
rvchangu- is now known as rvchangue,
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek
|
|||
dalek | kudo/nom: de76003 | timotimo++ | src/Perl6/Actions.nqp: we can now lower binding to @ and % + "is copy" sadly, we only hit this 4 times in all of CORE.setting |
20:30 | |
20:31
pnu joined,
darutoko left
|
|||
ugexe | ah, i take that back after seeing the difference in .IO.perl and .IO.gist | 20:32 | |
20:32
chansen_ joined
20:33
hobbs joined
20:34
uncleyea1 joined
20:35
BinGOs joined
20:36
sjn_phone_ joined
20:37
dsm_ joined,
vendethiel- joined,
telex left,
telex joined
20:38
Juerd_ joined,
maettu joined,
mattp_ joined,
lsm-desktop joined,
jdv79_ joined
20:39
flussenc1 joined,
pmichaud joined,
DrForr_ joined,
cosimo_ joined
20:40
gfldex_ joined,
nine joined,
flussenc1 left,
flussenc1 joined,
jnthn_ joined,
flussence left
20:41
flussenc1 is now known as flussence,
sivoais_ joined,
eviltwin_b joined,
fernando___ joined
20:42
vike1 joined
20:43
burnersk_ joined
|
|||
dalek | ecs: 1a69575 | (David H. Adler)++ | S28-special-names.pod: Changed equivalent of Perl 5's $0 from C<$*PROGRAM> to C<$*PROGRAM_NAME> |
20:43 | |
RabidGravy | dha++ | ||
masak | dha++ | 20:44 | |
dha | Decided not to put in the bit about stringification of $*PROGRAM as a) it's probably confusing and b) wouldn't fit on the line well. :-) | ||
Thanks. :-) | |||
20:44
Spot__ joined
|
|||
dha | So I have added FIVE WHOLE CHARACTERS to a p6 design document! ;-D | 20:44 | |
RabidGravy | perfect | 20:45 | |
20:45
eviltwin_b is now known as geekosaur
|
|||
ugexe | dynvars escaped name kabobing | 20:45 | |
masak | am I the only one who thinks PROGRAM_NAME is both a little less ugly than PROGRAM-NAME, and easier to type on most keyboard layouts? | 20:46 | |
timotimo | i have the least keyboard layouts | 20:47 | |
masak | I've mostly come to peace with calling my identifiers things like `program-name`, even when vim gets the syntax highlighting wrong. | ||
ugexe | i like underscores asthetically for all uppercase stuff | ||
masak | but I would still go for `PROGRAM_NAME`, at least in my own code. | ||
20:48
skarn joined,
pmichaud_ left,
nine_ left,
uncleyear left,
spintronic left,
gfldex left,
vendethiel left,
sivoais left,
Foxcool left,
tadzik left,
vike left,
ggherdov left,
clkao left,
Juerd left,
jdv79 left,
DrForr left,
cosimo left,
burnersk left,
Jonis left,
yogan left,
jnthn_ is now known as jnthn,
tadzik joined
20:49
Foxcool joined
20:52
pRiVi joined
20:53
daxim left,
eternaleye left,
eternaleye_ joined,
yeltzooo9 left,
jercos_ joined,
dj_goku_ joined,
araujo left,
jasonmay_ joined,
jdv79 joined,
daxim joined
20:54
Pauekn_ joined,
spintronic joined,
eternaleye_ is now known as eternaleye,
BenGoldberg joined,
freeze_ joined
20:55
Jonis joined
20:56
dsm joined
20:58
cognominal_ left,
pyrimidi_ joined,
mr-fooba_ joined
20:59
jasonmay1 joined,
skarn left,
Spot__ left,
burnersk_ left,
fernando___ left,
flussence left,
jdv79_ left,
Juerd_ left,
dsm_ left,
integral left,
vytas left,
mephinet- left,
pRiVi_ left,
dha left,
ugexe left,
dj_goku left,
jack_rabbit left,
jasonmay left,
jercos left,
hoelzro left,
freeze left,
Obbi_ left,
garu_ left,
avuserow left,
garu joined
21:00
cow-orke1 joined
21:01
freeze_ is now known as freeze,
Gruber joined,
mr-foobar left,
cow-orker left,
btyler left,
jasonmay_ left,
maddingue left,
DrForr_ left,
pyrimidine left,
Foxcool left,
jferrero left,
dg left
21:02
Foxcool joined,
jferrero joined,
tictac joined,
simcop2387 left,
tictac is now known as Guest84625
|
|||
masak | m: my %h = foo => 42; %h does role { method bar { say "OH HAI" } }; %h.bar | 21:02 | |
hello? camelia? | |||
camelia | rakudo-moar be122a: OUTPUT«OH HAI» | ||
21:04
maddingue joined
21:07
ggherdov joined
21:08
clkao joined,
dg joined
21:09
DrForr joined
21:11
Juerd joined,
bin_005 left
21:12
flussence joined,
sivoais_ is now known as sivoais,
sivoais left,
sivoais joined,
bin_005 joined
21:13
ggoebel2 joined,
[dpk] joined
21:14
Quom joined,
[Coke]_ joined
21:15
bloonix_ joined,
tinita_ joined,
pochi_ joined,
integral joined,
integral left,
integral joined
21:16
spider-mario_ joined,
lizmat_ joined,
zostay_ joined,
nine_ joined,
dpk left,
[dpk] is now known as dpk,
haroldwu_ joined
|
|||
dalek | kudo/nom: 6481e24 | timotimo++ | src/Perl6/Actions.nqp: let the binding lowerer cope with ::?CLASS and role parameters |
21:16 | |
21:16
[ptc]_ joined,
Sqirrel_ joined
21:17
spider-mario left,
spider-mario_ is now known as spider-mario,
hahainte1net joined
21:18
Util_ joined,
Sqirrel left,
FROGGS left,
hoelzro joined,
arnsholt_ joined,
FROGGS joined
21:19
yogan joined,
mephinet joined,
clkao_ joined,
mr-fooba_ left,
Obbi joined
21:20
skarn joined,
oetiker left,
yoleaux left,
[ptc] left,
Mouq left,
yoleaux joined,
DrForr left,
nine left,
grondilu left,
ggoebel left,
[Coke] left,
tinita left,
bloonix left,
[ptc]_ is now known as [ptc],
Exodist left,
clkao left,
zostay left,
sftp left,
tadzik left,
Util left,
renormalist left,
literal left,
jfried left,
haroldwu left,
jantore left,
woshty left,
avar left,
pochi left,
arnsholt left,
ggherdov left,
steve_mc left,
yoleaux left,
lizmat left,
CQ left,
risou left,
yoleaux joined,
ChanServ sets mode: +v yoleaux,
jantore_ joined,
avar joined,
avar left,
avar joined
|
|||
masak | stormy on the IRCs tonight. | 21:20 | |
21:20
sftp_ joined,
raydiak joined,
Bucciarati left
21:21
sftp_ is now known as sftp,
tadzik joined,
steve_mc joined,
Bucciarati joined,
risou joined
21:22
ugexe joined,
clkao_ is now known as clkao,
simcop2387 joined,
Exodist joined,
oetiker joined
|
|||
AlexDaniel | masak: yup, but it's even worse on other channels | 21:22 | |
21:23
DrForr joined
21:24
literal joined,
ggherdov joined
21:25
woshty joined,
stux|RC joined
21:26
jfried joined,
wtw joined
|
|||
masak | huh. | 21:26 | |
even with regards to netsplits, #perl6 is unusually nice? :) | |||
AlexDaniel | masak: netsplits? It is an attack, as far as I can see | 21:27 | |
21:28
psch_ joined,
bowtie joined,
ruoso_ joined,
bowtie is now known as Guest88664
21:29
oetiker left,
oetiker joined
21:31
stux|RC-only left,
zoosha_ joined
21:32
dagurval_ joined
21:35
ashleyde1 joined
21:36
CQ joined
21:38
Guest85966 left,
oetiker_ left,
ruoso left,
zoosha left,
dagurval left,
colomon left,
ashleydev left,
masak_ joined
21:40
muethos joined
21:42
rindolf left
|
|||
RabidGravy | boo! | 21:42 | |
masak_ jumps | 21:43 | ||
21:43
masak_ is now known as masak
|
|||
RabidGravy | has some one already RT'd that | 21:43 | |
m: Code(0) | 21:44 | ||
camelia | rakudo-moar be122a: OUTPUT«(signal SEGV)» | ||
RabidGravy | thing | ||
masak | RabidGravy: don't think so. please do. | ||
21:44
espadrine joined
21:45
uncleyea1 is now known as uncleyear,
uncleyear left,
uncleyear joined
|
|||
jnthn | Add it to the Code.new ticket | 21:45 | |
Which also SEGV'd and is almost certainly the same thing | |||
21:46
diego_k joined
|
|||
masak | ah, good idea. | 21:46 | |
RabidGravy | I've concluded that rather than trying to guess whether SomeRandomType($some-value) will work is a mugs game, just trying it is best | ||
21:47
diegok left
|
|||
RabidGravy | but a SEGV somewhat militates against that approach ;-) | 21:47 | |
dalek | href="https://perl6.org:">perl6.org: 78e2927 | Austin++ | source/style.css: nav menu mobile overlap fix |
||
href="https://perl6.org:">perl6.org: 65c5460 | ab5tract++ | source/style.css: Merge pull request #18 from grandtheftjiujitsu/master Navigation Menu Entries Overlap in Mobile View |
|||
21:48
Some-body_ joined,
DarthGandalf left,
Khisanth left,
sjn_phone_ left
|
|||
RabidGravy | I think that one was mine too :-\ serial Code abuser innit | 21:48 | |
21:49
Some-body_ is now known as DarthGandalf,
apejens left,
sjn_phone_ joined,
Jonis left,
muethos left,
apejens joined
21:50
Khisanth joined
|
|||
dalek | kudo-star-daily: 5f7875c | coke++ | log/ (2 files): today (automated commit) |
21:51 | |
kudo-star-daily: 21c2945 | coke++ | log/ (2 files): today (automated commit) |
|||
rl6-roast-data: dfb8e7e | coke++ | / (9 files): today (automated commit) |
|||
rl6-roast-data: 73b9e32 | coke++ | / (9 files): today (automated commit) |
|||
21:54
Jonis joined
21:56
dj_goku_ left
|
|||
dalek | ast: 8b5aeb6 | usev6++ | S26-documentation/09-configuration.t: Use existing ticket number RT #124970 |
21:59 | |
ast: 3d4f970 | usev6++ | S (2 files): Use unique ticket numer for RT #124640 |
|||
RabidGravy | jnthn, was it #125376 you meant? | 22:00 | |
jnthn | yes but *sigh* | 22:01 | |
RabidGravy | If so it's slightly different | 22:02 | |
jnthn | Fixing a VM level SEGV by papering over it in Rakudo is just plain stupid. | ||
RabidGravy | I'll re-open and update | ||
jnthn | Thanks. | ||
Will see if I can hunt it down tomorrow | 22:03 | ||
masak | should I revert the fix? | ||
jnthn | masak: The Rakudo patch may still be the best way to give a good message there. | 22:04 | |
masak | ok, leaving it in. | ||
22:04
burnersk joined
|
|||
bartolin | ha, I closed that one too early? | 22:04 | |
jnthn | It's not that the patch is bad in itself, it's just sweeping a SEGV under the carpet is only asking for trouble later. | 22:05 | |
masak | bartolin: no, it's fixed according to the letter of the law :) | ||
22:05
cognominal_ joined
|
|||
bartolin | g | 22:05 | |
masak | (which is what a ticketing system should run on) | ||
jnthn | *nod* | ||
Please do try and make sure SEGV-ing things get fixed deeply. | 22:06 | ||
22:06
espadrine left
|
|||
jnthn | I'm jumping on those I can. In the worst case, they can be exploitable security issues. | 22:06 | |
bartolin | okay, I'll keep that in mind. | ||
masak | that is indeed worth remembering. | 22:07 | |
RabidGravy | in my mind the VM should never segfault | ||
jnthn | RabidGravy: Mine too, which is why I want us to fix those places it does. | 22:08 | |
masak | in my mind software should never behave not to spec. | 22:09 | |
RabidGravy | looking at the BT of the Code(0), I think it may be completely different though | ||
masak,aye but nobody every puts "must not segfault/must not GPF" in a spec, 'cause y'know .... | 22:11 | ||
masak | maybe they should. :> | 22:12 | |
'night, #perl6 | 22:13 | ||
japhb | RabidGravy: People do put "must be warnings- and sanitizer-clean" in specs though. | ||
o/ masak | |||
bartolin | o/ | ||
22:13
acsigusz left
|
|||
RabidGravy | true | 22:14 | |
also difficult to test | 22:17 | ||
well a pain to test as you'd have to run each potential failure in a seaparate process and see how it exited | 22:19 | ||
not sure you can even do that properly on windows | |||
22:20
jack_rabbit joined
22:22
dha joined
|
|||
RabidGravy | mebbe a Test::NoSegfault would be useful to module developers though | 22:28 | |
jnthn wonders if a "SEGV report" on testers.perl6.org would be do-able easily | 22:30 | ||
RabidGravy | It reports the exit code of the tests, this could be munged to determine whether there was a segfault (on Unux-like operating systems anyway) | 22:33 | |
dha | s28 indicates that $( and $) are replaced in p6 with $*GID and $*EGID, but the docs on Variables only shows $*GROUP which, I'm guessing, is the real GID? Does this mean p6 actually has no $EGID equivalent? | 22:36 | |
22:37
Al-Caveman left
|
|||
RabidGravy | not presently, $( is $*GROUP.Int IIRC | 22:37 | |
22:38
vytas joined
|
|||
RabidGravy | (that is I put those things in the Varaiables page but drank a lot of beer since ;-) | 22:39 | |
dha | nope, Int isn't doing that, although since $*GROUP in numeric context is supposed to return the group number, I'm not sure why. $*GROUP.Str *does* return the group name. | ||
RabidGravy | let me look | ||
dha | $*GROUP.perl gives me IdFetch.new | 22:40 | |
RabidGravy | ah $*GROUP.Numeric | ||
dha | Ugh. | 22:41 | |
And $EGID is currently not a thing? | |||
[Coke]_ wishes irssi | |||
nevermind. | 22:42 | ||
22:42
[Coke]_ is now known as [Coke]
|
|||
dha | Well, I'm certainly glad you gave me that commit bit on the design docs. Looks like I'll be using it a bit... :-) | 22:43 | |
And, oddly, $( in Perl 5 is giving me a whole bunch of numbers. weird. | 22:45 | ||
RabidGravy | actually, IdFetch is probably odd, I think those things are broken and should be IdName objects | 22:47 | |
22:47
kurahaupo left
22:48
jercos_ is now known as JERCOS,
JERCOS is now known as jercos
|
|||
dha | So... Obviously s28 should be amended with respect to $*GID/$*GROUP. Should I leave $*EGID alone there or indicate non-implementation? | 22:48 | |
RabidGravy | I'd leave it for the time being. I don't believe the population of $*USER/$*GROUP is doing what it is intended to do | 22:51 | |
dha | ok, I won't mess with s28 on user and group vars. FOR NOW. | 22:52 | |
RabidGravy | (in src/core/Process.pm in rakudo at least ) | ||
22:54
Sqirrel_ left
22:55
Sqirrel joined
22:59
spider-mario left
23:00
Al-Caveman joined
23:01
raiph joined
|
|||
RabidGravy | with my code archaeology hat on, I think someone forgot the .fetch in the BUILD of the IdFetch and some one implemented the rest of the code as if that was deliberate | 23:03 | |
23:05
btyler joined
|
|||
RabidGravy | will do patch in morning | 23:06 | |
dha | Ok, moving on... $a and $b: no longer special at all, or does "Just params to anonymous block" (from s28) really mean something? | ||
lizmat_ | dha: there is no special meaning | 23:07 | |
23:07
lizmat_ is now known as lizmat
|
|||
dha | ok. Should that line be taken out of s28, then? | 23:07 | |
dalek | ecs: bbb0e90 | lizmat++ | S28-special-names.pod: Clarify lack of special meaning of $a,$b in Perl 6 |
23:09 | |
lizmat | dha: yes ^^^ :-) | ||
RabidGravy | :) | ||
lizmat calls it a day (again) | |||
.oO( sleeping in on my own bed for a change ) |
23:10 | ||
dha | Yay! | ||
RabidGravy | yaw, bed time for me too | 23:19 | |
23:23
larion left
23:24
RabidGravy left
23:27
telex left
23:28
telex joined
23:32
Celelibi left
|
|||
dha | What? You can't go to bed! Who will answer all my annoying questions?? | 23:32 | |
23:33
go|dfish left
23:34
eiro left,
eiro joined,
go|dfish joined
|
|||
timotimo | i'm going to bed soon as well, so ... i might not :\ | 23:35 | |
23:35
rjbs joined,
Celelibi joined
23:36
Ben_Goldberg joined
|
|||
timotimo | i mean: i might not answer your annoying questions | 23:36 | |
dha | Right. :-) | 23:37 | |
maybe I'll take a break, then. | |||
23:37
BenGoldberg left,
dha left
23:50
raiph left
23:52
regreg left
|