»ö« 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. |
|||
00:06
spider-mario left
00:11
koo6 joined
00:20
hobbs left
00:27
hoelzro left
00:31
Peter_R left
00:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:51
hobbs joined
00:54
dayangkun joined
01:00
adu left
01:05
yqt left
01:18
aindilis` joined
01:20
dayangkun_ joined
01:22
kurahaupo joined,
dayangkun left,
DarthGandalf left,
aindilis left,
ShimmerFairy left
01:23
ShimmerFairy joined,
DarthGandalf joined
01:33
adu joined
01:41
aborazmeh left
01:53
Sqirrel left
01:59
llfourn joined
02:04
llfourn left
02:14
llfourn joined
02:24
AlexDaniel left
02:27
davido_ left
02:28
davido_ joined
02:35
rmgk is now known as Guest9057,
rmgk_ joined,
Guest9057 left,
rmgk_ is now known as rmgk,
adu left
02:37
noganex joined
02:40
noganex_ left
02:43
ShimmerFairy left
02:48
hoelzro joined
02:49
SevenWolf left,
SevenWolf joined
02:50
SevenWolf left
02:55
ShimmerFairy joined
03:05
sjn_phone left,
sjn_phone joined
|
|||
zostay | m: my @h = Pair.new('a', 1); | 03:07 | |
camelia | rakudo-moar c2a57e: OUTPUT«Too many positionals passed; expected 1 argument but got 3 in block <unit> at /tmp/mEMguar280:1» | ||
zostay | m: my @h = Pair.new(:key<a>, :value(1)); | 03:08 | |
camelia | ( no output ) | ||
tadzik | I wouldn't mind Pair.new to have a positional variant, frankly | 03:09 | |
03:11
[Sno] left
|
|||
zostay | m: enum Test <Zero One Two>; my @h = Zero => 0, One => 1, Two => 2; @h.perl.say; | 03:11 | |
camelia | rakudo-moar c2a57e: OUTPUT«[:Zero(0), :One(1), :Two(2)]<>» | ||
zostay | m: enum Test <Zero One Two>; my @h = ::(Zero) => 0, ::(One) => 1, ::(Two) => 2; @h.perl.say; | 03:12 | |
camelia | rakudo-moar c2a57e: OUTPUT«[Test::Zero => 0, Test::One => 1, Test::Two => 2]<>» | ||
03:13
bin_005 joined
03:20
Sqirrel joined
03:21
cschwenz joined
|
|||
atweiden | m: enum Test <Zero One Two>; grammar T1 { token TOP { Zero } }; class TA { method TOP($/) { make ::(EVAL $/.Str); } }; my Str $content = "Zero"; my $actions = TA.new; if my $parsed = T1.parse($content, :$actions) { say $parsed.made.perl }; | 03:25 | |
camelia | rakudo-moar c2a57e: OUTPUT«Test::Zero» | ||
atweiden | won't be needing this method i see: github.com/atweiden/nightscape/blo...pes.pm#L35 | 03:27 | |
m: enum Test <Zero One Two>; grammar T1 { token TOP { Zero } }; class TA { method TOP($/) { make ::($/.Str); } }; my Str $content = "Zero"; my $actions = TA.new; if my $parsed = T1.parse($content, :$actions) { say $parsed.made.perl }; | 03:28 | ||
camelia | rakudo-moar c2a57e: OUTPUT«Test::Zero» | ||
03:32
SevenWolf joined
03:33
koo6 left
03:48
bin_005 left
03:51
SevenWolf left
03:53
diegok left
03:56
diegok joined
04:01
diegok left
04:02
diegok joined,
flussence left,
flussence joined
04:07
davido_ left
04:18
kaare_ joined
04:33
lmc_1136 joined
04:34
lmc_1136 left
04:40
cschwenz left
04:41
amurf left
04:54
amurf joined
04:58
amurf left
|
|||
masak | morning, #perl6 | 05:10 | |
05:13
meis joined,
skids left
|
|||
masak | m: say sign(NaN) | 05:18 | |
camelia | rakudo-moar c2a57e: OUTPUT«1» | ||
masak | ok, old Rakudo. | ||
lizmat: I don't think the fix in d5d93adcc30 goes to the root of the problem. | |||
the above would be NaN on a new Rakudo, but... | 05:19 | ||
m: say NaN.sign | |||
camelia | rakudo-moar c2a57e: OUTPUT«1» | ||
masak | still a problem. | ||
I think the fix should be applied in src/core/Real.pm, the method that sign() delegates to | |||
also, | 05:20 | ||
multi method sign(Real:U:) { Mu } | |||
I don't see why this has a claim to being Mu. Int sounds more reasonable to me. (the type object for the type being returned) | 05:21 | ||
or possibly Num, since NaN is also in the codomain. | |||
moritz | or maybe Real | 05:34 | |
which can be either Int or Num | |||
masak | aye. | ||
Mu is problematic -- can't store it in a lexical, for example. | 05:35 | ||
m: say (my $x).WHAT | |||
camelia | rakudo-moar c2a57e: OUTPUT«(Any)» | ||
moritz | m: my $x = Mu | 05:36 | |
camelia | ( no output ) | ||
moritz | it's passing to a function that's problematic | ||
m: sub f($x) { }; f Real.sign | |||
camelia | rakudo-moar c2a57e: OUTPUT«Type check failed in binding $x; expected 'Any' but got 'Mu' in sub f at /tmp/WZoCkleQYr:1 in block <unit> at /tmp/WZoCkleQYr:1» | ||
masak | oh, ok. | 05:39 | |
m: my Any $x = Mu | 05:40 | ||
camelia | rakudo-moar c2a57e: OUTPUT«Type check failed in assignment to '$x'; expected 'Any' but got 'Mu' in block <unit> at /tmp/IWBnJ0JjXN:1» | ||
masak | oh, so Any isn't the implicit type constraint of a declared lexical, it's just the default value. got it. | ||
05:41
jack_rabbit joined
|
|||
moritz | m: my $a = 0; my $b is default(++$a); say $b; $b = Nil; say $b | 05:52 | |
camelia | rakudo-moar c2a57e: OUTPUT«11» | ||
05:52
diana_olhovik_ joined
|
|||
dalek | c: eca2f2d | moritz++ | lib/Language/variables.pod: variables: Document "is default" trait |
05:55 | |
05:56
_mg_ joined
05:57
[Sno] joined,
_mg_ left
|
|||
masak | m: my ($a, $b, $c) is default(42); say $b | 05:58 | |
camelia | rakudo-moar c2a57e: OUTPUT«(Any)» | ||
masak | this feels like it's a rakudobug for either of two reasons. | ||
(a) the default didn't apply, but it should | 05:59 | ||
(b) you're not allowed to do that, but there's no error message | |||
I kinda prefer (a), because it feels like it could be a useful thing to do sometimes -- to initialize several variables with the same default | |||
but I confess to not knowing how tricky it'd be implementation-wise | |||
one could argue that any trait in a declaration like that should just automatically distribute to all the declared variables | 06:00 | ||
as if they'd been declared individually with `is default(42)` | |||
06:03
jack_rabbit left
06:04
Akagi201 joined
06:13
RabidGravy joined,
domidumont joined
06:17
oetiker left
06:18
domidumont left,
oetiker joined
|
|||
moritz | +1 | 06:18 | |
06:18
domidumont joined
|
|||
El_Che | w | 06:19 | |
masak submits rakudobug | 06:20 | ||
06:20
FROGGS joined
|
|||
masak | m: my $b is default(42); say $b | 06:21 | |
camelia | rakudo-moar c2a57e: OUTPUT«42» | ||
FROGGS | good morning | 06:23 | |
masak | morning, FROGGS | ||
06:40
atweiden left
|
|||
moritz | quick DB design straw poll: do you prefer natural keys or surrogate keys as primary key? | 06:41 | |
06:43
amurf joined
|
|||
masak | surrogate keys. | 06:54 | |
06:54
zakharyas joined
|
|||
masak | (because data changes, so the only thing that stays the same in all possible situations is something made-up.) | 06:55 | |
("but masak, things like countries or datetimes are stable enough to be used as natural keys!" -- "Czechoslovakia. leap seconds. all instances of adopting or getting rid of DST, ever." -- "oh.") | 06:57 | ||
moritz: see also c2.com/cgi/wiki?AutoKeysVersusDomainKeys for lots of back-and-forth about this. | 06:58 | ||
06:59
oetiker left
|
|||
masak | moritz: blog.plover.com/IT/GUID.html also supports my case. | 07:00 | |
07:00
oetiker joined
07:07
Ven joined
07:09
rba_ left
07:16
Ven_ joined,
Ven left
|
|||
Ven_ | \o, #perl6 | 07:17 | |
masak | o/ | 07:20 | |
moritz | masak: takk | 07:24 | |
masak: I also use surrogate keys | 07:25 | ||
masak: one argument I don't see very often that referencing a table with a composite, natural key leads to a lot of data duplication | 07:26 | ||
*is that | |||
and makes the referencing tables brittle when the business rules for the referenced tables change | 07:27 | ||
07:28
[Sno] left
|
|||
moritz | ah, the c2 page does mention it further down the page | 07:29 | |
07:31
[Sno] joined
07:33
amurf left
|
|||
masak | right. a surrogate key is comparable to an impartial "handle" with which you can refer to a particular table row. | 07:33 | |
moritz | not to mention tooling support (I'm looking at you, Django) | 07:34 | |
masak | Django automatically gives everything an id, no_ | 07:40 | |
? | |||
07:41
espadrine left
|
|||
dalek | kudo/nom: 0a30724 | lizmat++ | src/core/ (2 files): Fix sign NaN at the root, masak++ |
07:45 | |
masak | lizmat++ | ||
lizmat | $ 6 'say NaN.sign; say sign NaN' | ||
NaN | |||
masak | yay | ||
lizmat | .tell [Tux] $=finish now works | 07:50 | |
yoleaux | lizmat: I'll pass your message to [Tux]. | ||
[Tux] | lizmat++ | ||
yoleaux | 07:50Z <lizmat> [Tux]: $=finish now works | ||
lizmat | m: my ($a, $b, $c) is argh(42) # masak, agree we need some kind of error here, right ? | 07:52 | |
camelia | ( no output ) | ||
07:53
jaffa4 joined
|
|||
jaffa4 | hi all | 07:53 | |
I am testing the speed of n body implemented in perl 6 | 07:54 | ||
It is very slow. Could someone look at the code if there is a mistake in it? | |||
07:54
domidumont left
|
|||
masak | jaffa4: sure thing! maybe provide it as a gist or something? | 07:57 | |
07:58
domidumont joined
|
|||
jaffa4 | gist? | 07:58 | |
masak | lizmat: "need some kind of error" because there's no `argh` trait? | ||
jaffa4: gist.github.com/ | |||
lizmat | yes | ||
masak | lizmat: agreed. | ||
m: my $a is argh(42) | 07:59 | ||
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fPt9WzHilkCan't use unknown trait 'is argh' in a variable declaration.at /tmp/fPt9WzHilk:1------> 3my $a is argh(42)7⏏5<EOL> expecting any of: TypeObject default …» | ||
masak | lizmat: like that, basic'ly. | ||
lizmat | yup | ||
but apparently it's a parsing issue, as the it never winds up in a trait mod, not if in an Any:D trait mod | |||
masak | in general, I'd expect `my ($a, $b, $c) is x($y);` to work exactly like `my $a is x($y); my $b is x($y); my $c is x($y);` -- no matter what x and $y are. | 08:00 | |
lizmat | yeah... but like I said, looks like a parsing / action issue atm | ||
jaffa4 | gist.github.com/jaffa4/27bc61e573f086feafed | ||
FROGGS | lizmat: action issue | ||
lizmat | FROGGS o/ | 08:01 | |
jaffa4 | perl6-m.bat nbodies.p6 50000000 | ||
lizmat | FROGGS: any idea where ? | ||
FROGGS | lizmat: I'm looking for the right spot currently | ||
masak | jaffa4: you have data duplication between $NBODIES and @bodies. that's not a reason for your slowdown, but it's kinda weird in Perl 6. | 08:02 | |
jaffa4: maybe because you converted from an ancient language, like FORTRAN or C? | |||
(where one needs to pass on the length of an array along with the array) | |||
FROGGS | lizmat: are you sad if I attempt a fix? | 08:03 | |
lizmat | no, please do :-) | ||
jaffa4 | masak: yes, no reason | ||
masak | did you mean "no good reason"? :P | ||
lizmat | I'm just trying to do small things until I have a few days of consecutive quality time | ||
jaffa4 | no reson for slowdown | ||
yes, it is translation from c | 08:04 | ||
masak | well, you can simplify that bit if you want. | ||
the rest looks fairly straightforward. no big mistakes that might be the cause of the slowdown. | |||
jaffa4 | it is very slow | ||
dalek | Heuristic branch merge: pushed 20 commits to rakudo/newio by lizmat | 08:05 | |
jaffa4 | that is the state of Moar jit then | ||
masak | could be that this is the kind of thing that's amenable to vector calculation, or parallel calculations... | ||
FROGGS | $ perl6-m -e 'my ($a, $b, $c) is argh(42)' | ||
===SORRY!=== Error while compiling -e | |||
Can't use unknown trait 'is argh' in a variable declaration. | |||
$ perl6-m -e 'my ($a, $b, $c) is default(42); say "$a $b $c"' | |||
42 42 42 | |||
masak | \o/ | 08:06 | |
FROGGS | masak: wait for the fix :D | ||
dalek | Heuristic branch merge: pushed 31 commits to roast/newio by lizmat | 08:07 | |
08:07
Ven_ left
|
|||
dalek | kudo/nom: 45068ba | FROGGS++ | src/Perl6/Actions.nqp: handly traits when declaring vars in a list |
08:07 | |
lizmat | wow! | ||
FROGGS++ | |||
masak | FROGGS++ | 08:08 | |
FROGGS | I love single line patches :o) | ||
lizmat | although not a single line patch, I loved the low number of patches needed to get $=finish to work | 08:09 | |
FROGGS | aye | 08:10 | |
that proves a good design IMO | |||
lizmat | yup | ||
FROGGS | and that is one thing that makes hacking on perl6 fun | ||
lizmat | agree | 08:11 | |
FROGGS | and I am very proud that I was able to apply an almost equally good design to an application at work | ||
I would not have been able to do that without what I have learned here | 08:12 | ||
moritz | same here | ||
FROGGS | I mean, I never studied CS or anything else... | ||
08:13
darutoko joined
08:19
rba_ joined
08:23
_mg_ joined
|
|||
dalek | kudo/nom: ad21e90 | lizmat++ | src/Perl6/World.nqp: Stub "use internals" for internal helper subs |
08:27 | |
lizmat | afk for a few hours& | 08:29 | |
08:31
domidumont left,
domidumont joined,
espadrine joined
|
|||
DrForr | ===SORRY!=== | 08:35 | |
Could not find ANTLR4::Actions::Perl6 in any of: file#lib:../json/lib | |||
Doesn't seem that PERL6LIB allows setting multiple paths? | 08:36 | ||
08:36
llfourn left
08:37
bin_005 joined
|
|||
FROGGS | DrForr: what delimiter do you use? | 08:38 | |
m: say $*DISTRO.cur-sep | 08:39 | ||
camelia | rakudo-moar c2a57e: OUTPUT«,» | ||
08:40
_mg_ left
08:42
Ulti left
|
|||
DrForr | Well, I was using the (reasonably traditional) ':'. | 08:42 | |
08:42
Ulti joined
08:45
jaffa4 left
|
|||
DrForr | PERL6LIB=lib:../json/lib bin/antlr2perl6 foo.g4 # Here's the CLI. | 08:46 | |
I can invoke it as perl6 -Ilib -I../json/lib bin/antlr2perl6 # of course, but it'd be nice to be able to just run the app. | 08:48 | ||
08:52
andreoss joined
|
|||
RabidGravy | m: IO::Socket::INET.new(host => "127.0.0.1:80") | 08:55 | |
camelia | rakudo-moar c2a57e: OUTPUT«IO::Socket::INET is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in method new at src/RESTRICTED.setting:32 in block <unit> at /tmp/50mde9ZMy8:1» | ||
RabidGravy | boo | ||
08:55
larion joined
|
|||
RabidGravy | anyway, just going to send a PR to fix "Type check failed in assignment to '$!port'; expected 'Int' but got 'Str' | 08:56 | |
in block <unit> at -e:1" when you do that | |||
FROGGS | RabidGravy++ | ||
08:57
cschwenz joined,
cschwenz left
09:00
chenryn joined
09:02
telex left
|
|||
jnthn | morning, #perl6 | 09:03 | |
09:04
telex joined
|
|||
arnsholt | FROGGS: If it's any consolation, good development methodology and architecture is not always a very large part of CS curricula | 09:05 | |
Also, it feels to me like they're very much practical skills. It's hard to see the wisdom of some things before you've felt the pain of doing it wrong | 09:06 | ||
FROGGS | arnsholt: yes, and I do not regret getting my hands dirty with about age 16 | 09:07 | |
I had enough of schools and wanted to do something "sensible" | 09:08 | ||
but sometimes I lack knowledge, and it feels sometimes hard to learn (or even just understand) concept that were teached in CS classes | 09:09 | ||
taught* | |||
arnsholt | Yeah, it's a hard balance to strike | ||
FROGGS | morning jnthn | ||
arnsholt | I sometimes have the inverse feeling. I have lots and lots of theory, but it's often hard to see where it's relevant (or how to apply it) | 09:10 | |
RabidGravy | github.com/rakudo/rakudo/pull/435 if anyone feels that specifying host:port is sufficiently useful to need to work ;-) | ||
dalek | kudo/nom: b9ab2c2 | RabidGravy++ | src/core/IO/Socket/INET.pm: Make port an Int if extracted from host:port in host |
||
kudo/nom: fbd86b4 | FROGGS++ | src/core/IO/Socket/INET.pm: Merge pull request #435 from jonathanstowe/nom Make port an Int if extracted from host:port in host |
|||
RabidGravy | :) | ||
FROGGS | jnthn: so you are living in Praha now, right? | 09:11 | |
09:11
bin_005 left,
bin_005 joined
09:12
gagalicious left
|
|||
FROGGS | jnthn: because it is quite possible that I'll be there around august for a week, with wife and kids | 09:13 | |
masak waves... from A TRAIN o | |||
FROGGS | masak: *g* | 09:14 | |
o/ | |||
fffrrroomm aa ttrn | 09:15 | ||
09:15
sjn_phone left
|
|||
FROGGS | ohh, that wasnt even right I think | 09:15 | |
masak | FROGGS: I'm in the same boat as you are wrt uni education. I took a lot of bioinformatics, but ended up wishing I could've studied a lot more of the "informatics" part. | ||
jnthn | FROGGS: Yes, right. :) | 09:16 | |
FROGGS: I'll be around in August when I'm not at YAPC::Asia and Swiss Perl workshop :) | |||
FROGGS | jnthn: awesome :o) | ||
09:17
amurf joined
|
|||
masak | oh, and... I have a Perl 6 day today! | 09:17 | |
my goal is to blog, but I won't say what about ;) | |||
jnthn | Macros! | ||
FROGGS | masak: I became an electronics engineer after school (with 16), and quite enjoyed it | 09:18 | |
I always wanted to fix things I guess | |||
jnthn: now you spoiled it! | |||
El_Che | jnthn: happy marrying etc! | ||
09:20
zeleiadi joined
|
|||
masak | jnthn: nope :) | 09:21 | |
(though it's a decent guess) | |||
09:22
amurf left
|
|||
jnthn | El_Che: Thanks :) | 09:22 | |
09:22
Ven joined
|
|||
masak | FROGGS: is "with 16" (intead of "at 16") a Germanism? I'm intrigued. | 09:22 | |
09:22
larion left
|
|||
FROGGS | masak: ohh, indeed | 09:23 | |
masak | "mit sechzehn [Jahre]"? | 09:26 | |
FROGGS | mit sechzehn Jahren | ||
masak | ah, yes. | 09:27 | |
but still, in German you *are* your age ("ich bin") instead of *having* your age ("ich habe"), right? | |||
FROGGS | correct | ||
nwc10 | masak: is this train moving in an appropriate direction? | 09:28 | |
masak | nwc10: well, it is moving away from you... :P | 09:34 | |
(north) | |||
masak .oO( "masak, this kind of senseless meanness is not becoming of #perl6!" ) | 09:35 | ||
nwc10 | you're running away from the heat? | 09:38 | |
masak | I'm going up to my old university town (Uppsala) to be a part of the doctoral defense of a good friend. | 09:39 | |
basically, I started at Edument; he stuck around and did a PhD. | |||
09:40
Sqirrel left,
domidumont left
|
|||
nwc10 | if anything, it seems to be warmer there: www.bbc.co.uk/weather/2666199 www.bbc.co.uk/weather/2692969 | 09:40 | |
09:41
domidumont joined
09:47
brrt joined
|
|||
_itz | can anyone recommend a good LISP intro and system for a beginner to play with? | 09:47 | |
brrt | .tell lizmat that i now know why we haven't implemented isatty yet :-P | ||
yoleaux | brrt: I'll pass your message to lizmat. | ||
brrt | _itz: why not SICP | ||
has a book, video lectures on the internets | 09:48 | ||
helped me a lot | |||
masak | +1 for SICP | ||
brrt | ocw.mit.edu/courses/electrical-engi...-lectures/ <- this taught me a lot | ||
_itz | thanks I'll take a look | ||
masak | this version is very nicely formatted: sicpebook.wordpress.com/ebook/ | 09:49 | |
09:52
mr-foobar left
09:53
larion joined
09:54
jab joined
|
|||
jab | Where can I find the syntax for the enum statement? | 09:55 | |
DrForr | s/// seems to throw an excption when run on class 'Any' rather than silently do nothing. I assume this is by design? | 09:56 | |
jab | it is | 09:57 | |
masak | exception is what I would expect, yes. | ||
jab: described in S12, at least. | |||
S12:Enumerations | 09:58 | ||
synbot6 | Link: design.perl6.org/S12.html#Enumerations | ||
jab | thanks | ||
masak | dunno if docs.perl6.org has something. if not, it probably should. | 09:59 | |
cursory search yields nothing. | |||
09:59
dayangkun_ left
|
|||
jab | Yeah it's hard to find enum info | 09:59 | |
masak files issue | |||
09:59
bin_005 left
10:00
bin_005_i joined
|
|||
_itz | rosettacode.org/wiki/Enumerations#Perl_6 | 10:00 | |
masak | github.com/perl6/doc/issues/87 | 10:01 | |
DrForr | While I can guess why that's now disallowed it means 'if $content' needs to be added... | 10:02 | |
Ven never read SICP | 10:03 | ||
I should someday. | |||
10:03
bin_005_i_q joined
10:04
bin_005_i left
|
|||
jab | Is there anything perl6 implementations that use JVM? | 10:06 | |
10:08
zeleiadi left
|
|||
DrForr | Yep, it's even mentioned on the rakudo homepage. | 10:09 | |
10:09
rindolf joined
|
|||
brrt | the rakudo compiler has a JVM backend | 10:10 | |
jab | Can you combine perl and java code? | ||
brrt | i'm not terribly sure how that works, but i believe there has been some work on java/rakudo interop | 10:12 | |
10:13
mr-foobar joined
10:14
llfourn joined
10:24
llfourn_ joined,
Akagi201 left
10:26
llfourn left
|
|||
timotimo | o/ | 10:26 | |
oh, jaffa4 isn't around any more | |||
lizmat | brrt: do tell :-) | 10:27 | |
yoleaux | 09:47Z <brrt> lizmat: that i now know why we haven't implemented isatty yet :-P | ||
timotimo | .tell jaffa4 i found it a bit strange that you were using hashes for the bodies in your nbodies translation | 10:28 | |
yoleaux | timotimo: I'll pass your message to jaffa4. | ||
brrt | long story short: we use libuv. libuv exposes two conflicting notions of the idea 'file stream'. One is the simple synchronous uv_file (always an int, always a file descriptor) and one is the uv_handle (a multiplexed magic wrapper for sockets, pipes, file streams, ttys, etc) | ||
to determine if something is a tty, one uses the standard posix isatty() call on a posix file handle | |||
uv_file behaves in all respects like a posix file handle | 10:29 | ||
timotimo | well, uv has this magical "guess handle type" function | ||
we even use that in one spot to get the right type to build the stdin stream with | |||
brrt | uv_handle can resolve, if desired, to a posix file handle (now called a uv_os_fd_t), *if* you are on a unix system | ||
10:30
Ven left
|
|||
brrt | on windows uv_handle resolves to a HANDLE, which is defined as an opaque void pointer, which may - depending on context - actually be an integer or may actually be a pointer, whatever the OS likes best | 10:31 | |
lizmat | brrt: fwiw, isatty should only return true on the handle that has the default STDOUT / STDERR stream | ||
brrt | yes timotimo, and that function accepts an uv_file (i.e. an int) | ||
why? | |||
lizmat | in all other cases it should return false | ||
timotimo | hm, oh. | ||
lizmat | in my "world" :-) | ||
10:31
chenryn left
|
|||
brrt | if i do "/dev/tty1/".IO.open.t that should be 'yes' | 10:31 | |
lizmat | what you want to know, is whether there is potentially a person that with which you can interact | 10:32 | |
timotimo | and if i do echo "hello" | perl6 -e ... it should be 'no' for stdin and if i do perl6 -e '...' > foobar, it should be 'no' for stdout | ||
brrt | exactly :-) | ||
timotimo | in my world that's exactly what "isatty" is for ... also i think you can't use tty-like stuff on such handles | ||
using ansi escapes for colors for example, or placing the cursor "on the screen" | 10:33 | ||
brrt | that restricts isatty to syncfile structures | ||
which, i suppose, is fair enough | 10:35 | ||
and that means we'll only support getting a file descriptor on syncfiles | |||
which i also suppose is reasonable | |||
timotimo | the profiler gets very upset with the nbodies program | 10:39 | |
exit, THE_END and <unit> all share 33.33% of the time (18446744073709.51ms each) and everything else has almost 0ms | 10:40 | ||
brrt lunch & | |||
10:40
brrt left
|
|||
lizmat | timotimo: is the program exiting all the time ? | 10:42 | |
lizmat is confused | |||
m: THE_END # :-) | |||
camelia | ( no output ) | ||
masak | hm, we might want to hide that symbol from public use... | 10:45 | |
10:45
yqt joined
10:46
dakkar joined,
bin_005_i_q left
|
|||
timotimo | lizmat: no, it only exits once, but it spends almost all of its time in that | 10:47 | |
lizmat | masak: working on that | ||
timotimo: are there many phasers ? | 10:48 | ||
END phasers I mean | |||
timotimo | no | ||
but it ends in "exit(0)" | |||
so maybe that confuses it? | |||
lizmat | sub exit($status = 0) | 10:49 | |
so, hardly any confusion possible | |||
timotimo | no, i mean ... just exiting at all | 10:50 | |
10:52
yakudza joined
|
|||
masak | m: sub foo($x = exit) { say $x }; foo "OH HAI"; foo; foo "Elvis has left the building" | 10:53 | |
camelia | rakudo-moar c2a57e: OUTPUT«OH HAI» | ||
timotimo | i managed to reduce the number of BOOTCode allocations from 8060610 to 3860605, but at the same time, i got the number of Num allocations up from 7100430 to 6300430 | ||
oh, wait | |||
m: say 6300430 / 7100430 | |||
camelia | rakudo-moar c2a57e: OUTPUT«0.8873308» | ||
timotimo | that's not more | ||
10:54
jab left
|
|||
timotimo | and the number of GCs from 275 to 217 | 10:56 | |
m: say "METAOP_ASSIGN takes { 583.85 / 1500000 }ms per call" | 10:58 | ||
camelia | rakudo-moar c2a57e: OUTPUT«METAOP_ASSIGN takes 0.000389233ms per call» | ||
10:58
xinming left
|
|||
dalek | kudo/nom: 47f91b0 | lizmat++ | src/core/control.pm: Use a more elegant once block for the end |
10:58 | |
timotimo | well, that lets it end up in 4th place | ||
10:59
xinming joined
|
|||
timotimo | oh! | 10:59 | |
second place is the anonymous sub that implements METAOP_ASSIGN and that's in second place with 12% | |||
so actually METAOP_ASSIGN ends up taking about 16.5% of the program's time | 11:00 | ||
FROGGS | timotimo: what's the program ooc? | 11:02 | |
timotimo | i was taking jaffa4's nbody.p6 and turning the hashes into classes | ||
lizmat | looking at the METAOP subs, I wonder if it would be worthwhile to factor out the $triangle business in a separate candidate | 11:03 | |
timotimo | postcircumfix:<{ }> used to be in second place at 10.3% and AT_KEY in 4th place (just above METAOP_ASSIGN) with 7.9% | ||
timotimo has the brilliant idea to use native num instead of Real | 11:05 | ||
5.37user 0.02system 0:05.40elapsed 99%CPU (0avgtext+0avgdata 77424maxresident)k | 11:07 | ||
oh!7.80user 0.02system 0:07.83elapsed 99%CPU (0avgtext+0avgdata 96824maxresident)k | |||
(without "oh!") | |||
that's the improvement i got so far | |||
oh holy wow. with the "better" version with native nums, the amount of spesh'd vs jitted frames is *much* worse, and there's a whole lot more allocations and GCs, but it's still faster | 11:10 | ||
what the ... find_method gets invoked? | 11:12 | ||
FROGGS | hmmm, sounds like you get quite some insights currently :o) | 11:13 | |
timotimo | well, the not jitting is possibly because of NumAttrRef and related ops, maybe those aren't implemented yet; the jit log will tell me in a second. | ||
BAIL: op <getattrsref_n> | 11:15 | ||
should be easy enough. | |||
FROGGS | that's what I was hoping for :o) | ||
11:17
chenryn joined
11:20
noganex left,
adu joined
11:26
Rotwang joined
|
|||
Rotwang | hi | 11:26 | |
11:27
noganex joined
11:36
Ven joined
11:41
_mg_ joined
|
|||
Ven | can anyone confirm a bug I'm seeing in the REPL (os x)? | 11:45 | |
if I just `$ perl6` then up arrow + enter, it segfaults | |||
lizmat | $ perl6 | 11:46 | |
> ^[[A | |||
===SORRY!=== Error while compiling <unknown file> | |||
Bogus statement | |||
at <unknown file>:1 | |||
Ven | weird, I recompiled everything an hour ago :| | ||
Ven re-pulls | |||
lizmat | fwiw, I don't have readline or linenoise or anything like that installed | 11:47 | |
Ven | ah, that might be it | ||
seems like I was just missing a panda rebootstrap | 11:51 | ||
dalek | kudo/nom: d4dcca7 | lizmat++ | src/core/metaops.pm: MMDize METAOP_REDUCE_xxx subs The short-term win is about 4% in each call without :triangle. The longer term win is that we can now easily add optimized candidates for e.g. [+]. |
||
Ven | lizmat: :triangle is [\+]? | 11:54 | |
lizmat | I think so | 11:55 | |
Ven | which makes me realize there's no syntax for named "matching". what I mean is that this works: | ||
m: multi foo(True){1}; multi foo($){0}; say foo(True); | |||
camelia | rakudo-moar c2a57e: OUTPUT«1» | ||
Ven | but this doesn't: | ||
m: multi foo(:val(True)){1}; multi foo(:val($)){0}; say foo(:val); | 11:56 | ||
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YUBqhZKO4eMalformed parameterat /tmp/YUBqhZKO4e:1------> 3multi foo(:val(7⏏5True)){1}; multi foo(:val($)){0}; say fo expecting any of: formal parameter» | ||
lizmat | Ven: yes, named params are only for breaking ties between candidates | 11:57 | |
FROGGS | std: multi foo(:val(True)){1}; multi foo(:val($)){0}; say foo(:val); | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Malformed parameter at /tmp/upMZicrion line 1:------> 3multi foo(:val(7⏏5True)){1}; multi foo(:val($)){0}; say fo expecting any of: named_param_term new name to be defined parameter routine_def signatureParse …» | ||
FROGGS | Ven: I like that syntax fwiw | ||
Ven | lizmat: I know it is | ||
I'm just making a parallel between named and positional params :) | |||
FROGGS: nice :) | |||
FROGGS | Ven: and it fits the concept of what we do with pairs usually | 11:58 | |
though one could argue that the value of that pair is not a matcher but the default value | |||
Ven | we have a syntax for default values already, though | 12:00 | |
grondilu | m: say [+] rand xx 3 | 12:05 | |
camelia | rakudo-moar c2a57e: OUTPUT«1.54526622351538» | ||
12:05
Ven left
|
|||
grondilu | locally I get a 'can not call infix:<+>' | 12:05 | |
grondilu pulls rakudo and recompiles | 12:06 | ||
lizmat | $ 6 'say [+] rand xx 3' | 12:07 | |
1.58108774004982 | |||
Looks like my MMDing of METAOPs is doing bad things on the JVM :-( | |||
12:10
stanrifkin joined
|
|||
lizmat | dilemma: do I just revert, or do I re-instate the old code for the JVM and the new code for Moar ? | 12:14 | |
jnthn: ^^^ opinions ? | |||
12:19
uncleyear joined,
_mg_ left
|
|||
FROGGS | lizmat: bad things in what way? | 12:20 | |
lizmat | massive spectest failure | 12:21 | |
timotimo | anyway, with attrref_* and attrsref_* implemented, the number of jitted frames goes up to 76% | ||
FROGGS | timotimo: \o/ | 12:22 | |
timotimo is quite sidetracked at the moment, though | |||
FROGGS | cats again? :o) | ||
timotimo | nope | 12:23 | |
FROGGS has a cat on his back near his neck, though it is just printed on his shirt | |||
timotimo | :3 | ||
lizmat tries to get a better idea about the actual failures on the JVM | 12:24 | ||
FROGGS | lizmat: yeah, that sounds like a good thing to do | 12:25 | |
12:27
adu left
|
|||
FROGGS | and I am also think that we should turn the named $triangle into a positional | 12:27 | |
lizmat | hmmm.... that's a good idea... :-) | ||
FROGGS | which happens at rakudo/src/Perl6/Actions.nqp:5836 | 12:28 | |
lizmat | $ perl6-j -e 'my @a; [+] @a' | 12:29 | |
java.lang.NullPointerException | |||
in block <unit> at -e:1 | |||
FROGGS | j: my @a; @a.shift | 12:30 | |
camelia | rakudo-jvm c2a57e: OUTPUT«Unhandled exception: Cannot .shift from an empty Array in throw (gen/jvm/CORE.setting:14593) in sink (gen/jvm/CORE.setting:16528) in MAIN (gen/jvm/main.nqp:41) in <mainline> (gen/jvm/main.nqp:35) in (gen/jvm/main.nqp)» | ||
lizmat | same here | 12:31 | |
FROGGS | ahh, I have no idea what it is... and I cannot compile perl6-j right now | ||
but hopefully --ll-exception points to something | |||
lizmat | FROGGS: no, it doesn't :-( | 12:32 | |
grondilu | m: say [+] rand xx 1_000 | 12:34 | |
camelia | rakudo-moar c2a57e: OUTPUT«512.224868591308» | ||
grondilu | m: say [+] rand xx 19_000 | ||
camelia | rakudo-moar c2a57e: OUTPUT«9514.29931266904» | ||
grondilu | well that's weird | ||
lizmat | grondilu: what is ? | 12:35 | |
grondilu | I get 'can not call infix' if I try to sum one thousand numbers | ||
12:35
uncleyear left,
mr-foobar left,
andreoss left
|
|||
grondilu | m: say [+] rand xx 3 # is fine locally | 12:35 | |
camelia | rakudo-moar c2a57e: OUTPUT«1.43158160533389» | ||
12:35
mr-fooba_ joined
|
|||
grondilu | m: say [+] rand xx 1_000 # is not | 12:35 | |
camelia | rakudo-moar c2a57e: OUTPUT«507.256616612841» | ||
12:35
uncleyear joined
|
|||
grondilu | This is perl6 version 2015.05-105-gd4dcca7 built on MoarVM version 2015.05-35-gc4c7ebd | 12:36 | |
lizmat | hmmm... the triangle version is fine on the JVM | ||
grondilu | [+] rand xx $n works unless $n > 135 (wtf?) | 12:37 | |
grondilu tries this on his raspberry pi FYI | 12:38 | ||
FROGGS | ahh | ||
moritz | Perl 6: add up to 136 numbers in one statement! | ||
FROGGS | that probably explains it | 12:39 | |
lizmat | grondilu: could you try with MVM_SPESH_DISABLE=1 ? | ||
grondilu | lizmat++ that make it work indeed | ||
oh wait | 12:40 | ||
lol | |||
lizmat | yeah, this looks similar to the SPESH issue that [Tux] found with repeated CATCHes in a loop | ||
grondilu | weirdly enough MVM_SPESH_DISABLE=0 makes it work as well!? | ||
grondilu guesses as long as it's not empty, it's true | 12:41 | ||
lizmat | that would be another bug :-) | ||
12:41
kurahaupo left
|
|||
jnthn | lizmat: Is the failure mode the control exception + continuation one? | 12:42 | |
lizmat | yeah, I think so | ||
jnthn | Hmmm... | ||
We should probably figure that one out | |||
lizmat | also 135 times or so | ||
[Tux] probably can whip up the RT number just like that | 12:43 | ||
12:43
smls joined
|
|||
|Tux| | RT#124191 | 12:43 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=124191 | ||
FROGGS | lizmat: I'll have a perl6-j soon | ||
jnthn | lizmat: If you go with the two code-paths approach, please leave a note saying why, with the error in, so we can triage them. | ||
lizmat | will do | ||
12:44
Akagi201 joined
|
|||
grondilu | line 352 of moar.c: | 12:45 | |
if (!spesh_disable || strlen(spesh_disable) == 0) { | |||
though I get that parsing a "yes/no" string properly in C is a hassle | 12:46 | ||
timotimo | is that terrible? | 12:47 | |
12:47
LonelyGM joined
|
|||
grondilu | nah it probably does not matter much | 12:47 | |
12:51
LonelyGM left
12:54
amurf joined
|
|||
FROGGS | lizmat: I found the issue | 12:56 | |
lizmat | FROGGS: do tell :-) | ||
dalek | kudo/nom: 8d2899e | FROGGS++ | src/core/metaops.pm: bind returned closure to scalar to aid jvm Otherwise it will blow up with an NPE... |
12:57 | |
lizmat | aw yuk | 12:58 | |
would you mind if I made that conditional for the JVM ? | |||
FROGGS | no, go ahead | ||
are you changing the :$triangle to positional or shall I? | 12:59 | ||
lizmat | I'll do the triangle as well | ||
FROGGS | lizmat++ | ||
lizmat | thanks for pointing me in the direction | ||
12:59
amurf left
|
|||
FROGGS | :o) | 12:59 | |
FROGGS goes back to $work | |||
lizmat | FROGGS++ | ||
13:03
uncleyear left
|
|||
masak | what's the idiomatic way to introspect a given attribute, again? I forget. | 13:04 | |
13:04
uncleyear joined
|
|||
masak | I see the method .^attributes -- do I have to loop over it to find my attribute? | 13:04 | |
13:04
LonelyGM joined
|
|||
masak | or is .^get_attribute_for_usage what I'm supposed to use? | 13:05 | |
lizmat | .^attributes.first ? | ||
jnthn | masak: Yes, you have to grep it out, and then .get_value | ||
masak | I could've sworn we had a .^get_attribute... | ||
oki | |||
jnthn | There's no especially idiomatic way 'cus it's usually a bad idea :P | 13:06 | |
And in the cases where it is a good idea you normally care about all of them. :) | |||
('cus you're writing generic code) | |||
masak | :) | ||
that's what I thought you were going to say :P | |||
though I'll note for posterity that I only partially buy "we're making it difficult because we know what's best for you" as an argument... | 13:07 | ||
jnthn | .oO( a little later... <masak> gah, it was a bad idea to introspect that attr... ) |
||
masak | in many cases it's turned out that we *can't* predict all the legitimate needs of users. | ||
I'm writing a blog post! :P | |||
lizmat | masak: it's not that we're making it difficult, it's that we're not making it easy :-) | ||
masak | nodnod | ||
jnthn | OK, I'll read the blog post and then see if I can see a better way :) | 13:08 | |
masak | you do that | ||
my use case was exactly "ok, we can't do hash lookup on objects like in Perl 5, but we can do this:" | |||
dalek | kudo/nom: fbe67fe | lizmat++ | src/core/metaops.pm: Add binding METAOPs only for the JVM To prevent an unbound closure causing an NPE on the JVM, FROGGS++ |
13:09 | |
masak | m: class C {}; say C.HOW.^methods | ||
camelia | rakudo-moar c2a57e: OUTPUT«Method 'gist' not found for invocant of class 'NQPRoutine' in block <unit> at /tmp/I2Zy3pPfrh:1» | ||
masak | by the way, do we expect the above ever to work? | 13:10 | |
jnthn | I can imagine making them work, yeah | ||
masak | in this case, it made me have to go and read source instead of staying inside the REPL | ||
13:11
adu joined
13:15
LonelyGM left
|
|||
masak | m: class C { method foo is export { say "OH HAI, {self}" } }; import C; foo C.new | 13:17 | |
camelia | rakudo-moar c2a57e: OUTPUT«OH HAI, C<140563536010464>» | ||
masak | oh wow, that still works :) | ||
smls | m: say "apples and oranges" ~~ /:s ^ (apples|oranges)+ % "and"/ | 13:18 | |
camelia | rakudo-moar c2a57e: OUTPUT«「apples 」 0 => 「apples」» | ||
smls | ^^ why does thos not match the full string? | ||
masak | is there a good reason we don't use `is export` more on methods in the core setting? | ||
smls | shouldn't sigspace allow space between the elements and separator of % ? | ||
13:18
LonelyGM joined
|
|||
FROGGS | m: say "apples and oranges" ~~ /:s ^ (apples|oranges) +% "and"/ | 13:19 | |
camelia | rakudo-moar c2a57e: OUTPUT«「apples 」 0 => 「apples」» | ||
lizmat | masak: because is export doesn't work in the settings | ||
like many attributes, if not all | |||
masak | huh. did not know that. thank you. | ||
so it's a case of "if we could, we would"? | |||
arnsholt | IIRC the solution to <ws> around the separator is /:s<stuff>+ % [ ',' ]/ | ||
masak | m: say "apples and oranges" ~~ /:s ^ (apples|oranges)+ % [ "and" ]/ | 13:20 | |
camelia | rakudo-moar c2a57e: OUTPUT«「apples 」 0 => 「apples」» | ||
lizmat | masak: I think so, yes | ||
masak | m: say "apples and oranges" ~~ /:s ^ (apples|oranges) + % [ "and" ]/ | ||
camelia | rakudo-moar c2a57e: OUTPUT«「apples and oranges」 0 => 「apples」 0 => 「oranges」» | ||
smls | why is that? | ||
masak | arnsholt, FROGGS: seems you need both in this case. | ||
FROGGS | aye | ||
masak | my bet is that ' ' before '+' is needed for the ' ' before the 'and'. | ||
and the ' ' before ']' for the space after. | |||
lizmat: the answer I expected someone to offer was something related to inlineability. but maybe our JIT is already smart enough for that not to matter. | 13:21 | ||
lizmat | if it isn't yet, it will be :-) | 13:22 | |
arnsholt | Oh, wait. Looks like I'm wrong | ||
It's the spacing *after* each matching element that's the key. From S05: "When significant space is used under :sigspace, each matching element enables the immediately following whitespace to be considered significant. Space after the % does nothing. If you write:" | 13:23 | ||
ms/ <element> + % ',' / | 13:24 | ||
#1 #2 #3 #4 #5 | |||
it ignores whitespace #1 and #4, and rewrites the rest to: | |||
/ [ <element> <.ws> ]+ % [ ',' <.ws> ] <.ws> / | |||
#2 #5 #3 | |||
13:26
chenryn left,
uncleyear left
13:27
skids joined
13:28
uncleyear joined
|
|||
dalek | kudo/nom: 7978f4a | lizmat++ | src/ (2 files): Make METAOPs triangle a positional for better MMD Suggested by FROGGS++ |
13:31 | |
FROGGS | ncie | 13:33 | |
nice* | |||
13:36
yqt left
|
|||
masak | sometimes I think it's a pity that .can returns an array, and not just the first applicable method. | 13:37 | |
13:37
Akagi201 left
|
|||
masak | (because the first applicable method is what I'm interested in 90% of the time, so I do `[0]` a lot) | 13:37 | |
13:37
rba_ left
13:38
Ven joined
|
|||
jnthn | masak: Why aren't you using .^lookup or .^find_method ? | 13:38 | |
13:38
Akagi201 joined
|
|||
masak | good question. | 13:38 | |
I haven't heard of .^lookup before, what's the difference between that and .^find_method ? | 13:39 | ||
jnthn | .^lookup is "give me the thing that was actually declared" | ||
.^find_method is "give me something to invoke that will handle the message" | |||
masak | oh, so .^find_method if I'm fine with under-the-hood magic happening? | ||
jnthn | In simple cases they overlap, but if you were using, say, Grammar::Tracer or OO::Monitor or so on, .^find_method gives you back something that, if invoked, will do the logging/locking as needed | 13:40 | |
masak | nodnod | ||
jnthn | While .^lookup will give you the Method object, which is useful if you want to look at its Pod. | ||
masak | right. they diverge in cases where we are living under an interesting metaclass. | ||
jnthn | .oO( We all live in a yellow metaclass... ) |
13:41 | |
13:41
Akagi201 left,
Ven left
|
|||
lizmat | afk for a bit& | 13:45 | |
13:54
Ven joined
13:56
uncleyear left,
uncleyear joined
|
|||
dalek | ecs/newio: f0dc104 | (Stéphane Payrard)++ | S99-glossary.pod: added NPE and rakudobrew spotted on #perl6. fixed a link |
13:56 | |
masak | cognominal: ...wrong branch? | 13:57 | |
13:58
rindolf left,
yqt joined
|
|||
|Tux| | gist.github.com/Tux/3e10b75ae0752654bb28 - Inline::Perl5 compilation warning | 14:01 | |
dalek | ecs: c9f4f63 | (Stéphane Payrard)++ | S99-glossary.pod: added NPE and rakudobrew spotted on #perl6. fixed a link |
||
14:01
colomon left
|
|||
masak | detrain & | 14:02 | |
14:02
cognominal joined
|
|||
cognominal | Thx masak. I need to learn how to revert on a public repo. | 14:04 | |
Or is this necessary because it will eventually get merged? | 14:05 | ||
jnthn finally has time and energy for some Perl 6 work again :) | 14:07 | ||
...and a cup of tea to go with it | |||
14:07
rindolf joined
|
|||
hoelzro | morning #perl6 | 14:11 | |
jnthn | o/ hoelzro | 14:12 | |
|Tux| | TIMEZONE's-- | 14:13 | |
sjn | \o | ||
jnthn: have you moved to Prague yet? :) | 14:14 | ||
jnthn | sjn: Move in progress. :) | 14:15 | |
sjn | ah, cool | ||
14:15
sue_ left
|
|||
jnthn | sjn: I'm in Prague, some of my stuff is in Prague, the rest of it will be by the time the month's out :) | 14:15 | |
sjn will be in Vienna for 6 weeks, starting the end of this month | |||
jnthn | Cool :) | 14:16 | |
sjn | need to familiarize myself with the beer options in the area :D | ||
14:16
LonelyGM left
|
|||
sjn | (where "the area" really might include anything within a 4-hour train trip :D) | 14:17 | |
jnthn | Prague is just over 4 hours | ||
BUT if you get the right train, then it has draught beer on board! :P | |||
|Tux| | lizmat, between Tue and now, csv.pl started failing with "Cannot invoke null object in method parse at csv.pl:69" | 14:18 | |
which makes no sense at all | |||
FWIW csv.pl is Jihn's state machine that never changed | |||
John | |||
sjn | jnthn: oh, cool! | 14:19 | |
14:19
Ven left
14:20
mohij joined
|
|||
dalek | ecs: 16eb4ec | (Stéphane Payrard)++ | S17-concurrency.pod: S17: sub start is deprecated |
14:23 | |
14:27
llfourn_ left
|
|||
dalek | ecs: a1a7745 | jnthn++ | S29-functions.pod: s/evalfile/EVALFILE/, for consistency with EVAL. |
14:28 | |
14:29
Ven joined
|
|||
FROGGS | jnthn: do we need EVALFILE at all? | 14:30 | |
dalek | ast: 367f23b | jnthn++ | S29-context/evalfile.t: s/evalfile/EVALFILE/, add lexical visibility test. |
14:31 | |
14:31
colomon joined
|
|||
jnthn | FROGGS: It's a small convenience I gues. | 14:32 | |
*guess | |||
dalek | kudo/nom: 9be4715 | jnthn++ | src/ (2 files): Implement EVALFILE. |
||
jnthn | And was an easy RT for me :) | ||
FROGGS | :P | 14:33 | |
jnthn | It's long been in the design docs, and it's not a lot of work to do :) | ||
Anyway, one RT down :) | 14:34 | ||
14:34
llfourn joined
14:35
brrt joined
|
|||
FROGGS | jnthn: I guess there is one for 'goto' too :P | 14:35 | |
14:35
mohij left
|
|||
jnthn | heh | 14:36 | |
14:36
rindolf left
|
|||
jnthn picks a "slightly tricker" one, having done an "easy" one :) | 14:37 | ||
cognominal | it seems that Promise implementation is not conform to the spec. It seems possible to keep a promise even if someone ele has taken a vow. | ||
jnthn | cognominal: Example? | ||
FROGGS | sorry... I just listen to sherlock holmes stories too much, and he's always talking about excercizing his brain | ||
jnthn is pretty sure that was working... | |||
jnthn picks RT #125260 as his next victim | 14:38 | ||
cognominal | jnthn, it seems I am wrong | 14:40 | |
m: my $p = Promise.in(10); $p.keep | 14:41 | ||
camelia | rakudo-moar c2a57e: OUTPUT«Access denied to keep/break this Promise; already vowed in block <unit> at /tmp/92o58Lq_Mp:1» | ||
cognominal | so I misread the code :( | 14:42 | |
14:44
yqt left,
amurf joined
14:45
g4 left
|
|||
cognominal | I should double check before crying wolf :( | 14:45 | |
jnthn | Well, there's no use crying over spilt wolves... | 14:48 | |
14:49
amurf left
14:52
uncleyear left,
uncleyear joined
|
|||
DrForr | m: say "\x[effff]" | 14:56 | |
camelia | rakudo-moar c2a57e: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 983039 in block <unit> at /tmp/y3sYzfRQtM:1» | ||
DrForr | \x[effff] is a valid codepoint, at least it's inside the 0..0x10ffff range. | 14:57 | |
jnthn | m: say uniname 0xeffff | 14:58 | |
camelia | rakudo-moar c2a57e: OUTPUT«<unassigned>» | ||
DrForr | Unassigned ne unencodable, no? | ||
15:00
sue_ joined
|
|||
dalek | kudo/nom: 22f6232 | jnthn++ | src/Perl6/Actions.nqp: Enforce sigil types on placeholder params. Fixes RT #125260. |
15:00 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125260 | ||
jnthn | DrForr: Need to check the Unicode spec; was just trying to figure out what might be going on. | ||
DrForr | www.unicode.org/versions/Unicode7.0.0/ch01.pdf claims 0..0x10ffff is the codepoint range. | ||
It is v7, but I think the upper end has been 10ffff since at least v5. | 15:01 | ||
dalek | ast: 09a6122 | jnthn++ | S06-signature/mixed-placeholders.t: Tests for RT #125260. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125260 | ||
DrForr | 6.0 as well, checking 5.0. | 15:02 | |
colomon | m: say 0xeffff | 15:03 | |
camelia | rakudo-moar c2a57e: OUTPUT«983039» | ||
DrForr | All the way back to v4.0, I need to read v3.0 closer to determine. | ||
v3.0 introduces surrogate pairs covering codepoints outside the BMP. | 15:05 | ||
jnthn | lizmat: I disagree with d841d4e14f0, and RT #125257 is not a bug. You can provide any number of things to await, if we make zero an error it's just going to make the await do for @things { start { ... } } pattern have a really awkward degenerate case. | 15:06 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125257 | ||
DrForr | 4.0 looks like the earliest spec stating that codepoints range from 0 to 0x10ffff, on page 6. Though that's just the introduction. | 15:07 | |
lizmat | m: await my @a # not a problem | ||
camelia | ( no output ) | ||
lizmat | m: await # a problem, because developer misconception | 15:08 | |
camelia | ( no output ) | ||
15:08
meis left
|
|||
jnthn | DrForr: Well, it's not about codepoint range we want to be looking, it's the utf-8 encoding | 15:08 | |
15:08
diana_olhovik_ left
|
|||
lizmat | jnthn: or do you think a bare "await" can make sense at any time ??? | 15:08 | |
DrForr | A point. | ||
lizmat | $ 6 'await' | ||
Must specify a Promise or Channel to await on | |||
jnthn | lizmat: Ah, I see... | 15:09 | |
lizmat | $ 6 'await my @a' | ||
no problem | |||
jnthn | lizmat: OK, I think I'm happy enough with it done that way | ||
lizmat | it's a bit like the bare say | ||
m: say | |||
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/SyC14Z5Zdx:1------> 3say7⏏5<EOL>Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or …» | ||
lizmat | hmmm... that looks like a double error | 15:10 | |
FROGGS | double? | ||
15:10
bbkr left
|
|||
colomon | @@EFF80UnassignedEFFFF | 15:10 | |
@Noncharacters | |||
@+These codes are intended for process-internal uses. | |||
EFFFE<not a character> | |||
EFFFF<not a character> | |||
15:11
bbkr joined
|
|||
colomon | m: say "\x[efffa]” | 15:11 | |
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u8fdOdbpheUnable to parse expression in double quotes; couldn't find final '"' at /tmp/u8fdOdbphe:1------> 3say "\x[efffa]”7⏏5<EOL> expecting any of: argument list dou…» | ||
colomon | m: say “\x[efffa]” | ||
camelia | rakudo-moar c2a57e: OUTPUT«» | ||
lizmat | FROGGS: malformed and unsupported use | ||
colomon | efffe and effff appear to be special | 15:12 | |
FROGGS | lizmat: the unsupported use is correct | ||
colomon | www.unicode.org/Public/UCD/latest/u...esList.txt | ||
lizmat | yeah, wonder where the other comes from | ||
FROGGS | m: say ; | ||
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hx5Z_PofdCUnsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argumentat /tmp/hx5Z_PofdC:1------> 3say7⏏5 ;» | ||
FROGGS | parsing issue | ||
with eof | 15:13 | ||
lizmat | ah, ok | ||
DrForr | On closer reading I think the current interpretation *might* be consistent with www.unicode.org/versions/Unicode4.0.0/ch03.pdf but I'll have to read it closer later. | 15:18 | |
15:18
uncleyear left
|
|||
jnthn is looking at v7 of the standard at the moment | 15:19 | ||
15:19
uncleyear joined,
uncleyear left,
uncleyear joined
|
|||
DrForr | I wasn't sure which version perl6 purports to support. | 15:19 | |
moritz | The Best of course :-) | 15:20 | |
lizmat | jnthn: I just realized that the await change prompted me to want to have a (+@a) signature | ||
similar to a normal slurpy (*@a), but would need at least 1 value | 15:21 | ||
moritz | but that's not the right semantics for await | ||
lizmat | that could make the bare await (and similar cases) a compile time error, rather than runtime (as it is now) | ||
moritz | because 0 elements at runtime are fine | ||
lizmat | moritz: ?? | ||
jnthn | @a where +@a # how to spell it now :) | ||
brrt | few things worse than 'we support unicode! lol but not *your* unicode because we support only UCS-2' | ||
moritz | jnthn: or even @a where @a | 15:22 | |
jnthn | Or that, yes :) | ||
lizmat | jnthn: yeah, but that would make MMD a lot slower, no? | ||
jnthn | And as moritz++ points out, it would not help here | ||
DrForr | brrt: Careful, I pushed for UTF-9 support at one time :) | ||
lizmat | this would be about values specified, no? | ||
jnthn | lizmat: Inventing syntax sugar doesn't make it faster :P | ||
brrt | that has to be a joke somehow | ||
lizmat | I mean, an empty array would still be 1 parameter | ||
jnthn | lizmat: The fast paths are all about *type* distinctions | ||
DrForr | ch3 pg 19-20 seems to be terribly relevant. | 15:23 | |
brrt: it was an AFJ RFC, but it is implementable IIRC. | |||
If you have PDP with 9-bit-wide registers, that is :) | |||
brrt | you can emulate any number of bits in a stream | ||
lizmat | jnthn moritz : what I suggest is *not* the same as (*@a where @a) | 15:24 | |
but rather to be applied to the number of elements *before* flattening | 15:25 | ||
need to be afk, will check again later& | |||
arnsholt | lizmat: There's also ($required, *@rest) | ||
DrForr | Getting ready 4YAPC, cya there. | ||
15:26
FROGGS left
|
|||
moritz | lizmat: ok, that's not how I understood the proposal | 15:26 | |
arnsholt | Although that would require a bit of gymnastics inside the function if you want all the args in a single list | ||
moritz | man, 'hg grep' really is slow | 15:28 | |
15:29
mr-fooba_ left
15:30
mr-foobar joined
|
|||
raydiak | sub foo (+@all) {} instead of sub foo ($first, *@rest) { my @all = $first, @rest; } would be nice and something I've wanted in the past as well | 15:31 | |
15:34
bbkr__ joined
|
|||
jnthn | DrForr: www.unicode.org/faq/private_use.html#nonchar8 gives an answer | 15:36 | |
15:36
bbkr left
|
|||
jnthn | Also www.unicode.org/versions/corrigendum9.html | 15:37 | |
So, I'll fix things :) | 15:38 | ||
raydiak | m: sub foo (*@all ($, *@)) { @all.perl.say }; foo <a b c>; foo 42; foo; # although you can get the same effect as +@ with a subsig | 15:39 | |
camelia | rakudo-moar c2a57e: OUTPUT«["a", "b", "c"]<>[42]<>Too few positionals passed; expected 1 to 0 arguments but got 0 in sub-signature of parameter @all in sub foo at /tmp/fn2vvAK50J:1 in block <unit> at /tmp/fn2vvAK50J:1» | ||
raydiak | that's an interesting error message | ||
m: sub foo (*@all ($, |)) { @all.perl.say }; foo | 15:40 | ||
camelia | rakudo-moar c2a57e: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature of parameter @all in sub foo at /tmp/Mkzwf2GkMZ:1 in block <unit> at /tmp/Mkzwf2GkMZ:1» | ||
raydiak | and...differently wrong :) | ||
arnsholt | raydiak: Oh, good idea to use destructuring on the *@ list! | ||
raydiak | thanks :) | 15:41 | |
15:42
zakharyas left
15:43
uncleyear left
15:44
uncleyear joined
|
|||
moritz | time ack 'class ImportError' in the cpython repo takes 32s on my Very Slow desktop machine, under load | 15:45 | |
hg grep for the same string: still not finished after 8min | |||
wtf? | |||
[ptc] | moritz: hg is written in python? ;-) | 15:46 | |
[ptc] shames himself for dissing another language | |||
moritz | ah, reading the man page, it seems to search older revisions too | 15:47 | |
15:47
colomon left
|
|||
arnsholt | Heh. That'll do it, yeah =) | 15:47 | |
dalek | p: 97c86af | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for UTF-8 non-char fix. |
15:49 | |
15:49
larion left
|
|||
dalek | kudo/nom: 6c1a478 | jnthn++ | tools/build/NQP_REVISION: Get a MoarVM that can UTF-8 encode non-chars. |
15:49 | |
15:50
mr-foobar left
|
|||
dalek | ast: 8779aa0 | jnthn++ | S32-str/encode.t: Tests for UTF-8 encoding of non-chars. |
15:50 | |
15:50
rindolf joined
|
|||
jnthn | DrForr: All fixed up now; thanks :) | 15:50 | |
15:51
brrt left
15:52
mr-foobar joined
|
|||
dalek | ast: 76e600f | jnthn++ | S32-str/encode.t: Add an RT ticket number to test. |
15:54 | |
_itz | [ptc]: I'm hoping the Text::VimColour should pass more reliably now and was wondering about trying it on perl6-examples? | 15:56 | |
oh you report a segfault | 15:57 | ||
|Tux| | moritz, I think the DBIsh is not a panda bug, but is rakudo/moar | 16:00 | |
moritz | |Tux|: possible; I know too little about the state of panda and rakudo these days :( | 16:01 | |
dalek | rl6-roast-data: a2dfa5b | coke++ | / (9 files): today (automated commit) |
||
16:01
vendethiel left
|
|||
|Tux| | that null object is also seen inside a script that worked yesterday but not today | 16:01 | |
but if it shows in panda, all the better: that'll trigger many more eyes than a single scripter | 16:02 | ||
|Tux| => $HOME | |||
[Coke] opens what might be a dupe Inline::Perl5 ticket - doesn't work on a fresh build on OS X. | 16:07 | ||
16:07
Ven left
|
|||
jnthn dinner & | 16:09 | ||
16:14
domidumont left,
uncleyea1 joined
16:17
uncleyear left
16:18
pierrot left
16:23
domidumont joined
16:24
Ven joined
16:27
colomon joined
16:34
kaare__ joined,
Ven left
16:36
pierrot joined,
telex left,
colomon left
16:38
kaare_ left,
telex joined
16:39
uncleyea1 left
16:40
uncleyear joined,
kaare__ left
16:42
brrt joined
|
|||
TimToady | I see that camelia is still not updating due to DNS failure; do we need to increase the quasi-bus-number for that server somehow? | 16:44 | |
yoleaux | 3 Jun 2015 22:04Z <lizmat> TimToady: could you check github.com/rakudo/rakudo/commit/2f1960c7e9 for sanity ? | ||
16:51
spider-mario joined
|
|||
japhb | moritz said that it was outside his control ... whose control is it *inside*? | 16:52 | |
TimToady | he hilit nine at the time, but I don't know if there's anyone else with access | ||
16:53
molaf joined
16:58
brrt left,
HuStmpHrrr joined
|
|||
HuStmpHrrr | Hi guys, and tutorial or doc for pattern matching in perl6? | 16:59 | |
very few docs mentioned about this | |||
17:00
uncleyear left,
uncleyear joined
17:01
espadrine left
|
|||
jnthn | doc.perl6.org/language/regexes | 17:01 | |
HuStmpHrrr | not regex matching | ||
17:01
Ven joined
|
|||
HuStmpHrrr | functional pattern matching | 17:01 | |
multi sub | 17:02 | ||
17:02
koo6 joined
|
|||
HuStmpHrrr | ml type of matching | 17:02 | |
just like this post: perlgeek.de/blog-en/perl-6/2013-pat...ching.html | |||
17:03
liztormato joined
|
|||
jnthn | Ah... | 17:03 | |
Only a short bit in doc.perl6.org/type/Signature#Destru...Parameters | |||
Maybe somebody else knows some more references | |||
liztormato | arnsholt: the point was to make 'await' a compile time error | ||
HuStmpHrrr | oh | ||
i found doc.perl6.org has lots of dead links and wrong links | 17:04 | ||
liztormato | arnsholt: or more precisely: the optimizer not seeing a no-parameter candidate | ||
arnsholt: that lists the alternatives | 17:05 | ||
arnsholt: and having ($first, *@rest) listed, would be confusing | 17:06 | ||
skids | HuStmpHrrr: doc.perl6.org is actively maintained so we'd be interested to know here there are dead links. | ||
HuStmpHrrr | skids: alot when i went through the language tab and some in operator. let me find some | 17:07 | |
skids: doc.perl6.org/routine.html postcircumfix .() link is wrong | 17:08 | ||
skids: the same as .{} .[], and a lot others | 17:09 | ||
skids | Yeah looks like something has gone wrong there. | ||
HuStmpHrrr | skids: btw, i think tutorials in language tab are in a bad order too. | 17:10 | |
17:11
andreoss joined,
larion joined
|
|||
HuStmpHrrr | skids: another example: doc.perl6.org/language/classtut all links here are pointing to doc.perl6.org/routine/ which should not be | 17:12 | |
_sri_ | perl 6 ruins perl 5 stats on github :( github.com/github/linguist/issues/2149 | 17:13 | |
skids | HuStmpHrrr: I cannot replicate that last one. | 17:14 | |
17:14
koo6 left
|
|||
HuStmpHrrr | skids: not exactly all, but in Constructors section, "bless" and "Mu" are pointing to doc.perl6.org/routine/ | 17:15 | |
and in Inheritance section, the github link is pointing to the same place too | 17:16 | ||
skids | HuStmpHrrr: thanks | ||
HuStmpHrrr | skids: another one doc.perl6.org/language/concurrency Promises section, the link to X::Promise::CauseOnlyValidOnBroken is broken | 17:18 | |
TimToady | HuStmpHrrr: re pattern matching, see also rosettacode.org/wiki/Pattern_matching#Perl_6 | ||
HuStmpHrrr | TimToday: thanks. but i am looking for pattern matching in a more ML sense, or paramter destruction. | 17:20 | |
TimToady | HuStmpHrrr: did you look at it? that's not about regex | 17:23 | |
HuStmpHrrr | TimToady: oh, sorry, yeah, i looked. that's still not too complete and descriptive. for example, how to pattern match a custom class | 17:24 | |
japhb | HuStmpHrrr: did you look at the one jnthn linked? | 17:25 | |
pyrimidine | guessing that smoke.perl6.org isn't updating? Last report is from May 29. | ||
17:26
domidumont left
|
|||
HuStmpHrrr | japhb: the one about regex? yes, it's about regex. | 17:26 | |
japhb | HuStmpHrrr: No, this one: doc.perl6.org/type/Signature#Destru...Parameters | ||
17:26
beastd joined
|
|||
HuStmpHrrr | oh, yes, that one too. but still not too descriptive on how to customize. | 17:27 | |
japhb | True. There's always the source. :-) | ||
HuStmpHrrr | i am hoping something like ML exists in perl6 too. that make things much powerful | ||
TimToady | you can destructure anything that does the Position or Associative role, I think | 17:28 | |
japhb | HuStmpHrrr: TimToady++ meant Positional there, not Position. | ||
17:28
uncleyear left
|
|||
HuStmpHrrr | if that's the only case, it would be too bad | 17:29 | |
17:29
khisanth_ is now known as Khisanth,
uncleyear joined
|
|||
skids | Wasn't there also obj->method destructuring. | 17:29 | |
? | |||
HuStmpHrrr | is there? | 17:30 | |
japhb | HuStmpHrrr: Anything that does the Positional or Associative *role*, not just those things, and destructuring any generic object based on its (public, IIRC) attributes. What else are you looking for | ||
? | |||
HuStmpHrrr | yeah, just generally look for what features perl6 has | 17:31 | |
pattern matching is an important part for me | 17:32 | ||
17:32
rindolf left
|
|||
HuStmpHrrr | and is there some feature like with statement in python in perl6? | 17:32 | |
japhb | HuStmpHrrr: I say without any attempt at obfuscation: Perl 6 has so many features (some borrowed/adapted from other languages, some home grown), that you really need to tell us what your use cases are, so we can explain which features work for that. | 17:33 | |
m: given "foo" { .say } | |||
camelia | rakudo-moar c2a57e: OUTPUT«foo» | ||
japhb | HuStmpHrrr: Like that ^^ ? | ||
HuStmpHrrr | i am just trying to learn it in a general sense, with comparison to other languages | ||
17:34
koo6 joined
|
|||
HuStmpHrrr | yep, that's one type of pattern matching | 17:34 | |
japhb | HuStmpHrrr: Yes, there is very generic given/when. | ||
17:35
rindolf joined
|
|||
japhb | m: given 12 { when Str { say "String!" }; when Num { say "Floating point!" }; when * > 40 { say "Too big!" }; when 12 { say "Bingo!" } } | 17:35 | |
camelia | rakudo-moar c2a57e: OUTPUT«Bingo!» | ||
HuStmpHrrr | let's say class Abc { has $.xyz } can i apply some form of destruction to get that xyz out? | 17:36 | |
moritz | HuStmpHrrr: yes | 17:37 | |
HuStmpHrrr | or apply constraint when matching Abc.new ? | ||
japhb | m: class Abc { has $.xyz }; sub foo($obj (:$xyz)) { say "$obj has xyz = $xyz" }; my Abc $a .= new(:xyz(42)); foo($a); | ||
camelia | rakudo-moar c2a57e: OUTPUT«Abc<140578331421688> has xyz = 42» | ||
japhb | HuStmpHrrr: ^^ | 17:38 | |
HuStmpHrrr: You mean you want multi-method constructors? (Yes, we have that.) | |||
HuStmpHrrr | oh? an example please? | ||
moritz | m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => -3) | 17:39 | |
camelia | rakudo-moar c2a57e: OUTPUT«negative» | ||
moritz | m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => 42) | ||
japhb | Thanks moritz! | ||
camelia | rakudo-moar c2a57e: OUTPUT«positive» | ||
moritz | m: class A { has $.x }; multi a ($ (:$x where { $x > 0 }) ) { say 'positive' }; multi a ($ (:$x where { $x < 0 }) ) { say 'negative' }; a A.new(x => 0) | ||
camelia | rakudo-moar c2a57e: OUTPUT«Cannot call a(A.new(x => 0)); none of these signatures match: (Any $ (Any :x($x) where { ... })) (Any $ (Any :x($x) where { ... })) in block <unit> at /tmp/H79si5MxYC:1» | ||
japhb | Oh, those weren't constructors. Still, same principle applies. Constructors aren't special -- method new is a *convention*, not a requirement. | 17:40 | |
s/requirement/special case/ | |||
HuStmpHrrr | oh. nice | 17:41 | |
dalek | c: 8cd58a3 | skids++ | lib/Type/X/Promise/CauseOnlyValidOnBroken.pod: Fix broken link by documenting X::Promise::CauseOnlyValidOnBroken |
17:42 | |
HuStmpHrrr | another question, do i have to swallow the whole file in memory at once, without doing it in old way?(ie open->read->explicit close) | 17:43 | |
japhb | HuStmpHrrr: Laziness is all over the place now. That includes things like IO.lines. | ||
HuStmpHrrr | oh, that's sweet | 17:44 | |
17:44
liztormato left,
liztormato joined
|
|||
HuStmpHrrr | a special case, if i once read to the file end, but the file gets appended, what would happen if i continue reading? | 17:45 | |
japhb | (Of course, if you request eagerness, you'll get it, but then you deal with the consequences. We trust you meant to do that.) | ||
liztormato | HuStmpHrrr: you can repeatedly call .lines on an IO::Handle afaik | 17:46 | |
japhb | HuStmpHrrr: We understand both blocking and async I/O paradigms, including both traditional and channel/supply style. | ||
Some variants are NYI, but if you find something that's implemented and doesn't do what you'd expect, let us know. | |||
HuStmpHrrr | ok | 17:47 | |
oh, i have another question which confuses me a lot | 17:49 | ||
what happened to parrot? | |||
why switch to moar? it seems parrot is not in the backend candidate any more | |||
liztormato | Moar is what parrot should have been | 17:50 | |
skids | MoarVM was written specifically for Perl6 to speed up development. | ||
HuStmpHrrr | are they compatible? so what's wrong with parrot? | ||
moritz | HuStmpHrrr: basically MoarVM has the advantage of being faster, using less memory, offering concurrency in a way parrot can't, and being maintainable/extensible | 17:51 | |
so rakudo has abandoned the parrot backend for now | |||
geekosaur | the main driver for dropping parrot was that its windows support is not sufficient for rakudo any more | ||
moritz | with the idea of maybe eventually reinstating it, if/when we have the resources, and good reason to | ||
geekosaur | iirc | ||
17:52
Rotwang left
|
|||
liztormato | Parrot is one of the shoulders rakudo is standing on | 17:52 | |
moritz | geekosaur: the main driver was that parrot offered virtually nothing that moar didn't, but slowed down rakudo development (due to stuff having to be ported to several platforms, conditional compilation etc.) | ||
liztormato | Without it, we wouldn't be where we are now | ||
moritz | liztormato: fully agreed | ||
the parrot developers still release it every month | 17:53 | ||
though the changelogs look pretty short this year | |||
japhb | If someone wanted to do the (hard) work of reinstating the parrot backend, we'd certainly support them, but it's *not* a simple thing at this point. | ||
17:53
uncleyear left
17:54
llfourn left
|
|||
moritz | ... and we'd only do it after the Christmas release | 17:54 | |
japhb | moritz: Is nine the only person who can fix the DNS problems plaguing Camelia rebuild? | ||
17:54
uncleyear joined,
liztormato left
|
|||
japhb | moritz: agreed; we don't have the spare tuits before that. | 17:55 | |
HuStmpHrrr | ok. understood | ||
moritz | github.com/parrot/parrot/graphs/contributors | ||
japhb: yes, I think so | |||
Ulti | HuStmpHrrr out of curiosity does it make a difference to you for using Rakudo? | 17:57 | |
japhb | Sigh, always I am cursed on leaderboards by my tendency to do my changes in fewer commits. | ||
17:57
FROGGS joined
17:59
Ven left
|
|||
smls | masak: You rakudobug'd the "intermediate backtracking results end up in the Match object" issue a while ago, right | 18:00 | |
? | |||
nwc10 | dear github, you don't mention me | ||
git log --author [email@hidden.address] --pretty=oneline | wc | |||
thinks I have 140 commits in parrot | |||
jnthn | smls: I saw a recent-ish ticket along those lines in RT earlier toniht... | 18:01 | |
*tonight | |||
smls | ah, I think I found the ticket. | ||
nwc10 | clearly, if you aren't on github, you're an unperson | 18:02 | |
18:04
ZoffixWork joined
|
|||
ZoffixWork | Hi. Would you agree that *lack* of a 'use v6;' is a sane heuristic when trying to determine whether source code is not Perl 6? GitHub's Linguist currently has trouble differentiating between Perl5 and Perl6 and the point has been brought up as a possible solution. Is 'use v6;' something that's recommended and wide-spread enough? | 18:06 | |
This is the discussion in question BTW: github.com/github/linguist/issues/...-108992653 | |||
Ulti | just look for 'use strict;' to identify Perl 5 (oh zing) | 18:07 | |
18:07
andreoss left
|
|||
ZoffixWork | That's not sufficient. There are many different modules that enable strictures under the hood, so 'use strict' isn't present in those cases. | 18:07 | |
Ulti | which is why it was meant as a joke, sorry >:3 | ||
ZoffixWork | heh | ||
FROGGS | ZoffixWork: that won't work... all languages but Perl 6 lack a 'use v6' I guess | 18:08 | |
Ulti | it would have the added bonus of making ugly Perl 5 look ugly without colours | ||
ZoffixWork | FROGGS, in this case the ambiguity is only between Perl5 and Perl6. | ||
FROGGS | ZoffixWork: but that is not how their heuristic work, no? | ||
nwc10 | ZoffixWork: alternative question - is it viable to help train the basien filter - ie would github be happy with a button for "you're wrong, it's this other language?" | ||
FROGGS | "disambiguate "Perl", "Perl6", "Prolog" do |data|" | ||
nwc10 | that feels like a more long term scalable solution, and one they might think is cool | ||
Ulti | ZoffixWork does it have to be a single criteria rather than a cascade of them? | 18:09 | |
I think if you dont use .pm6 .pl6 a shebang line with 'perl6' in or 'use v6;' then marking up as perl5 is more than acceptable | |||
ZoffixWork | Ulti, what about .t files? | ||
Ulti | well you could write some tests in a mix of perl5 and 6 anyway | 18:10 | |
ZoffixWork | nwc10, what you said is way over my head, but I'll be sure to pass it into the ticket :P | ||
Ulti | you might want to use Perl5 with the Inline::Perl6 stuff just to get a lot of extra modules | ||
18:10
SevenWolf joined
|
|||
FROGGS | Ulti: the mechanism at that time does not know the file extension | 18:10 | |
Ulti | oh | ||
well shebang line with a 6 in or use v6 still feels ok | 18:12 | ||
nwc10 | ZoffixWork: thanks. | ||
Ulti | since at some point you'd hope running 'perl' on a perl6 program would run perl6 for you | ||
18:13
cognominal left
|
|||
smls | ZoffixWork: I posted a commentyon the github thread. | 18:14 | |
ZoffixWork | Thanks | ||
skids | "const_iX NYI" Wow. How did that ever happen? | 18:16 | |
18:19
HuStmpHrrr left
18:20
bin_005 joined
|
|||
grondilu | do you guys use SSH on Windows? Because: www.extremetech.com/computing/20736...y-a-decade | 18:20 | |
18:21
diana_olhovik_ joined
18:22
amurf joined
18:24
uncleyear left
|
|||
RabidGravy | there fixed Cache::Memcached | 18:24 | |
ZoffixWork | \o/ | 18:25 | |
18:25
uncleyear joined
|
|||
RabidGravy | it's probably a load of cobblers as I have only used memcached once about four years ago but hey | 18:26 | |
18:26
amurf left
18:29
_mg_ joined
|
|||
skids | gist.github.com/skids/7ba5cc3b031e69abcf83 # ll-exception trace for somehow reaching a bad opcode. In case it is useful. | 18:30 | |
18:36
cdc joined,
ZoffixWork left
|
|||
FROGGS | grondilu: yes, I use Putty | 18:37 | |
cdc | Hello #perl6 | 18:43 | |
github.com/perl6/specs/commit/16eb4ecdb5 seems suspicious to me | 18:44 | ||
as of my understanding, "start" -- as a statement -- is still supported | |||
m: start { 42.say } | 18:45 | ||
camelia | ( no output ) | ||
cdc | m: await start { 42.say } | 18:46 | |
camelia | rakudo-moar c2a57e: OUTPUT«42» | ||
cdc | better :) | ||
smls | m: say (<1 2> X (<a b> Z <x y>)).perl | 18:47 | |
camelia | rakudo-moar c2a57e: OUTPUT«(("1", "a"), ("1", "x"), ("1", "b"), ("1", "y"), ("2", "a"), ("2", "x"), ("2", "b"), ("2", "y"))» | ||
smls | ^^ can I prevent the RHS from being flattened before being passed to X ? | ||
would have expected the result: ("1", <a x>), ("1", <b y>), ("2", <a x>), ("2", <b y>) | |||
cdc | .tell cognominal irclog.perlgeek.de/perl6/2015-06-04#i_10702538 | 18:48 | |
yoleaux | cdc: I'll pass your message to cognominal. | ||
18:50
uncleyear left
|
|||
smls | m: say (<1 2> X (<a b> Z <x y>).tree.list).perl | 18:50 | |
camelia | rakudo-moar c2a57e: OUTPUT«(("1", ("a"; "x").item), ("1", ("b"; "y").item), ("2", ("a"; "x").item), ("2", ("b"; "y").item))» | ||
smls | Hm I suppose this works, but it's not that nice to write. | ||
18:51
uncleyear joined,
bin_005 left
|
|||
japhb | cdc: camelia is running an old Rakudo, because it can't rebuild on that host, because DNS problems. | 18:52 | |
.ask nine moritz says around irclog.perlgeek.de/perl6/2015-06-04#i_10702197 that you are the only one who can fix the DNS problems plaguing Camelia's rebuilds. Can that power be spread around a bit more? Or is there a blocker to that? | 18:54 | ||
yoleaux | japhb: I'll pass your message to nine. | ||
PerlJam | .seen nine | 18:56 | |
yoleaux | I saw nine 26 May 2015 18:56Z in #perl6: <nine> I guess "unit" refers to the CompUnit? | ||
cdc | japhb: ok for camelia, but as of my understanding lizmat made "start" (a statement instead of a sub): github.com/rakudo/rakudo/commit/21...1bca47d3a3 | ||
japhb: so "start { ... }" is legal, isn't it? | 18:57 | ||
japhb | Yes, sorry, my point was merely that believing camelia WRT whether something still works isn't valid at the moment. :-( | 18:59 | |
19:00
Sqirrel joined
|
|||
cdc | japhb: no problem :) I wasn't aware about current camelia's problem. | 19:01 | |
japhb | Anyone happen to know an alternate contact method for nine if he doesn't pop in soon? | ||
19:04
uncleyear left
|
|||
PerlJam | we could kick camelia and run another version (with a higher truck number) on hack | 19:04 | |
19:05
uncleyear joined
19:08
stanrifkin left
19:11
yqt joined
|
|||
RabidGravy | cdc, yeah that is odd as whilst there is a deprecation on the sub start in asyncops.pm I don't think that is where the actual start comes from | 19:11 | |
(certainly running "await start { "foo" }" on a rakudo with that deprecation in doesn't raise the deprecation) | 19:14 | ||
PerlJam | If start takes a blorst now, I'm not sure how you'd ever hit the deprecation | 19:18 | |
19:20
bin_005 joined
19:23
[Sno] left
19:24
_mg_ left
|
|||
TimToady | by calling start() perhaps | 19:25 | |
19:25
espadrine joined
|
|||
PerlJam | doesn't look like it | 19:28 | |
19:28
uncleyear left
|
|||
moritz | &start | 19:28 | |
19:28
uncleyear joined
|
|||
moritz | await map &start, &print, &say | 19:29 | |
19:29
meisl joined
|
|||
RabidGravy | odd | 19:30 | |
meisl | hello #perl6 | 19:32 | |
japhb | Hello, meisl! | ||
meisl | oh hi :) | 19:33 | |
I've got some "QASTions", ie am playing with the nqp toolchain | 19:34 | ||
anyone? | |||
PerlJam | meisl: you've got to ask the questions before anyone has a hope of answering them ;) | 19:35 | |
meisl | PerlJam: right - the 1st question was if anyone is willing to find out if she has a hope of answering :) | 19:37 | |
so: I found that nqp produces QASTs where not all nodes are of type QAST::Node, plain str appear under circumstances (*not* wrapped in an SVal) | 19:38 | ||
19:38
llfourn joined
|
|||
meisl | I, personally find that rather annoying, and incoherent. But maybe there's a good reason for this? | 19:39 | |
japhb | meisl: Can you give an example of source that produces such a mixed-node AST? | 19:40 | |
meisl | yep, just a moment plz | ||
jnthn | QAST::Want and a QAST::Op of type handle are two examples where that can happen. | ||
In neither case are the strings actually serving as literals in the same way a QAST::SVal does though | 19:41 | ||
meisl | and there's an op "locallifetime" which has as last child a literal string (I don't understand what that op is for, actually) | ||
jnthn | For constraining the lifetime of a local | 19:42 | |
e.g. it's a codegen hint | |||
lizmat | PerlJam: start({42}) will do it after 2015.06 comes out | ||
19:43
llfourn left
|
|||
meisl | jnthn: why not just use annotations for that? | 19:43 | |
jnthn | meisl: Annotations are not aimed at the code-gen, they're intended as a stash for the compiler writer | ||
RabidGravy | lizmat, so the deprecation isn't aimed at start { ... } ? In which case github.com/perl6/specs/commit/16eb4ecdb5 is wrong | 19:45 | |
meisl | jnthn: hmm, ok. I see that it might make sense to keep those apart. | ||
lizmat | RabidGravy: agree, that commit is wrong | ||
19:46
cognominal joined
|
|||
jnthn | meisl: It's worked well for us so far. :) | 19:46 | |
smls | Is <.&foo> the only way to call a my token foo {} outside a grammar without creating a named capture? | ||
jnthn | smls: <&foo> doesn't create one | 19:47 | |
meisl | jnthn: sure enough. Just trying to understand: isn't there Stmt (vs Stmt*s*) already for what I suppose is the purpose of Op locallifetime? | ||
smls | jnthn: oh, you're right, thanks. | ||
19:47
rindolf left
|
|||
dalek | ecs: 415fa4c | lizmat++ | S17-concurrency.pod: Revert "S17: sub start is deprecated" start as a sub is deprecated, start as a statement is still very much there! start 42; # now works start { 42 }; # already works, was handled by sub, now in grammar start( { 42 } ); # still works, but deprecated |
19:48 | |
PerlJam | oh, I see. I was misreading the deprecation. | 19:49 | |
jnthn | meisl: Good question. I think we ended up with locallifetime sometime during the JVM porting work. | ||
meisl: I don't remember exactly what blocked QAST::Stmt from being used, but I suspect it's a matter of granularity | 19:50 | ||
meisl | jnthn: Stmt being too coarse? | ||
jnthn | Yeah | ||
19:51
mj41 joined,
uncleyear left
|
|||
meisl | in the src, I kinda remember to have seen to TODOs and XXXs re locallifetime... | 19:51 | |
*to have seen some...* | |||
jnthn | That's entirely possible; on MoarVM we don't face some of the same constraints as on the JVM and so may get away without it so far. Suspect handling it may still get us better code-gen, however | 19:52 | |
19:52
uncleyear joined
|
|||
meisl | yes, it was in moar code where it said like "don't need it here, so noop it" | 19:53 | |
jnthn: could give a hint what kind of constraints of the JVM you have in mind? | 19:54 | ||
jnthn | It may have been number of locals per method | ||
19:55
kaare__ joined
|
|||
masak | smls: yes, I believe I did. do you need to find it? | 19:56 | |
smls | already did | ||
jnthn | (iirc, it's 256, except doubles and longs take 2 slots) | ||
smls | jnthn: Ouch, replacing <filename> with <&filename> in one place in my regex causes a "Cannot call method '!cursor_next' on a null object" | 19:57 | |
Rakudo bug or possibly my mistake? | |||
lizmat | jnthn: did you realize that EVALFILE can also eval code from an open filehandle / socket ? | 19:58 | |
jnthn | lizmat: Uh...can it? | ||
lizmat: I'm pretty sure it can't given I implemented it using slurp :P | |||
lizmat | multi sub slurp(IO::Handle:D | ||
cognominal | m: say $/.WHAT for 'aaa' ~~ m:g/./ | 19:59 | |
yoleaux | 18:48Z <cdc> cognominal: irclog.perlgeek.de/perl6/2015-06-04#i_10702538 | ||
camelia | rakudo-moar c2a57e: OUTPUT«(List)(List)(List)» | ||
jnthn | smls: If it's that error, then a Rakudo bug, though of course possibly both ;) | ||
smls | :P | ||
Will try to golf. | |||
jnthn | lizmat: Feel free to add another candidate, and tests ;) | ||
lizmat | jnthn: slurp(IO::Handle:D:) is deprecated, though | ||
meisl | jnthn: oh... so that limit is actually hit?! Anyways, now I recall the main example for plain strs: Op handle with eg "CATCH" as last child - that really seems odd | ||
TimToady | lizmat: re sanity of said patch, note that perl -E 'say 123 __END__ stuff' works; there should be no ^^ or $$ constraint | 20:00 | |
jnthn | meisl: Yes, we hit it :) | ||
TimToady: wtf!! Perl 5 is crazy :P | |||
lizmat | TimToady: ok, so apart from that, you're ok with it ? | ||
TimToady | es | ||
*y | |||
lizmat | k | ||
o | |||
jnthn | meisl: I...think think CATCH shold be the last cild | 20:01 | |
*child | |||
There should be something after it saying how CATCH is handled | |||
dalek | kudo/nom: 5d0f9bd | lizmat++ | docs/ChangeLog: Mention EVALFILE, some more specifics |
||
20:01
raiph joined
|
|||
TimToady | lizmat: it should probably test for » though | 20:01 | |
jnthn | Uh, and "don't think" :) | ||
lizmat | TimToady: ?? | 20:02 | |
jnthn | lizmat: Word boundary | ||
lizmat | ah, ok | ||
jnthn | >> in texas :) | ||
lizmat | okidoki | ||
TimToady | though it probably wouldn't ever fail due to LTM, but better to be safe | 20:03 | |
meisl | jnthn: it seems to always be. But shouldn't that be rather an attribute of the handle op - or else be promoted to a kind of Node of its own? | ||
lizmat | TimToady: building and running tests | ||
jnthn | meisl: Why should it? :) | ||
meisl | well, because it's a structural thing, on the syntactic level | 20:04 | |
20:04
vendethiel joined
|
|||
meisl | or not? | 20:04 | |
jnthn | meisl: I mean, we could do it that way, but...I've not really found myself wishing it was that way | ||
We've generally preferred a small number of node types, to keep processing of trees relatively straightforward. | 20:05 | ||
cognominal | cdc++, you are right, I did not realize that start just changed status moving from sub to statement_prefix github.com/rakudo/rakudo/blame/nom....nqp#L1546 | ||
jnthn | When I first looked at QAST my first reaction was "oh my, we'll need LOADS more nodes!" | ||
Having worked with it for some years, I'm mostly glad we've kept the number down. | 20:06 | ||
meisl | jnthn: ...and for the price of incoherence/inconsistency | ||
jnthn | All design is trade-offs. | ||
meisl | jnthn: just kidding, I just stumbled over it. And docs/qast.markdown gives you a whole different idea... | 20:07 | |
cognominal | ho, lizmat++ already reverted my blunder | ||
lizmat | cognominal++ # for trying to keep up with changes! | ||
meisl | it is also omitting quite a bunch | ||
jnthn | Yeah, it's hardly complete, I'm afraid. | ||
20:07
kst left
|
|||
meisl | I could try to improve it, if I feel a bit more comfortable with all that stuff | 20:08 | |
jnthn | That'd be helpful. There's a set of tests to see what's yet to be documented, iirc. | ||
cdc | cognominal, lizmat: I didn't see the revert, my mistake. | ||
cognominal | cdc, lizmat reverted after your remark :) | 20:09 | |
cdc | :) | ||
lizmat | TimToady: 'say 123 __DATA__' is now a TTIAR, but I guess we can live with that? | ||
20:09
uncleyear left
|
|||
meisl | yes, there's t/docs/opcodes.t | 20:09 | |
github.com/perl6/nqp/blob/master/t.../opcodes.t | 20:10 | ||
cognominal | lizmat++ and jnthn++ are so productive/creative that it becomes difficult keep pace with them | ||
TimToady | lizmat: surely obs throws immediately? | 20:11 | |
lizmat | apparently not | ||
token term:sym<p5end> { | |||
- ^^ __END__ $$ | |||
+ << __END__ >> | |||
<.obs('__END__ as end of code', | |||
'the =finish pod marker and $=finish to read')> | |||
TimToady | oh, it's not looking for a term there | ||
jnthn | TimToady: I think we're already upset by the time we fail to find an infix.. | 20:12 | |
TimToady | __END__ isn't a term in P5 | ||
20:12
darutoko left,
stanrifkin joined
|
|||
cognominal | I don't understand yet why say $/.WHAT for 'aaa' ~~ m:g/./ gives lists | 20:12 | |
nwc10 | IIRC __END__ is a token which behaves as EOF | ||
stanrifkin | are there any books out there yet? | ||
meisl | jnthn: to be honest, I don't get it, though. Any advice where else in the src I should look in order to understand what a particular Op I come across is doing/is for? | 20:13 | |
jnthn | m: say .WHAT for 'aaa' ~~ m:g/./ | ||
camelia | rakudo-moar c2a57e: OUTPUT«(Match)(Match)(Match)» | ||
nwc10 | and as the file is parsed a line at a time, a side effect is that the rest of the line contianing the __END__ is discardged | ||
cognominal | oops | ||
jnthn | cognominal: It's $_ that is bound each time | ||
cognominal | I guess I need to call it a day | ||
TimToady | and we recently added List to the category of success indicators | 20:14 | |
jnthn | meisl: Looking for examples in NQP/Rakudo is one way, seeing if the NQP course material defines it is another, seeing how it's implemented in JVM/Moar is a third....but the laziest is to ask here :) | ||
20:16
uncleyear joined
|
|||
meisl | jnthn: I did get lost before asking here... | 20:16 | |
20:17
dakkar left
|
|||
meisl | jnthn: by NQP course material you mean edumentab.github.io/rakudo-and-nqp-...als-course ? | 20:17 | |
lizmat | meisl: yes | 20:18 | |
jnthn | Yes | ||
meisl | thx (just hoped there was more) | ||
TimToady | well, it's called "internals" for a reason... | 20:20 | |
meisl | btw: no offense, it's just that I am still in that stage where everything seems strange and overwhelming. I do know this, and also that later a lot of problems will look ridiculous. | ||
jnthn | meisl: None taken; NQP and QAST suffer a bit from being the thing we've built primarily in order to build a Perl 6 implementation. | 20:21 | |
meisl: So they only get so much attention themselves. | |||
lizmat | TimToady: I'm unclear on what to use instead of "term" for __END__ | 20:22 | |
meisl | jnthn: sure, once they suffice to "make the leap"... | ||
TimToady | meisl: I've been working with them for a year or so, and they still seem strange and overwhelming :) | ||
meisl | TimToday: ooh, thx. To hear you say it - makes my day :) | 20:23 | |
lizmat | afk for a bit& | 20:24 | |
TimToady | lizmat: term is probably adequate for this purpose | ||
dalek | kudo/nom: 51cccca | lizmat++ | src/Perl6/Grammar.nqp: Just work on word bounds, instead of line bounds As suggested by TimToady++ |
20:25 | |
meisl | jnthn: I understand the primary purpose of NQP, but imho it is already great in itself as a toolchain for building other langs (as advertised, btw) | 20:26 | |
jnthn | meisl: Yes, it's just received a lot less polish. :) | ||
meisl | jnthn: maybe a bit of Czech would help? | 20:27 | |
(@sorear++) | |||
jnthn | Možná... :) | 20:28 | |
stanrifkin | are there any recent perl6 books out there? | ||
20:29
Peter_R joined
|
|||
timotimo | i don't know of any, sadly :( | 20:29 | |
dalek | p/openpipe3: 102e74d | FROGGS++ | / (2 files): map op syncpipe and adjusts tests for latest openpipe |
||
mj41 | jnthn: Vítej op v Česku. Doufám, že si užiješ nejlepši piva na planetě :-). A taky jsi určitě vítaný v Brně, třeba na Brno Perl Mongers ( www.facebook.com/brnopm ). | 20:31 | |
s/op/opět/ | |||
FROGGS | ETOOMANYACCENTS | 20:32 | |
meisl | jnthn: bezpiecznie; I consider my efforts a little bit of "Czech" (say it) | ||
hoelzro | I understood "piva na planetě" =) | 20:33 | |
20:34
maettu1 left,
maettu1 joined
|
|||
meisl | bks | 20:35 | |
hoelzro: I do my checks in Czech and my polishing... and I'm drinking Munich beer. | 20:36 | ||
20:36
uncleyear left,
uncleyear joined,
kaare__ left
|
|||
jnthn | hoelzro: and of course the thing before it has to mean "best" :P | 20:37 | |
20:37
uncleyear left,
uncleyear joined,
Ven joined
|
|||
FROGGS | and Brně is just another declination of Brno? | 20:38 | |
mj41 | Seženu nějaké tipy na hospody a pivovary. Třeba www.pivovarskyklub.com/pivo/index/lang/en by mělo být ok. | ||
FROGGS | so, "nejlepši piva na planetě" means "best beer on this planet"? | ||
s/this planet/earth/ # as if there is just one | |||
20:39
uncleyear left,
uncleyear joined
|
|||
jnthn | FROGGS: "on the planet" I think :) | 20:39 | |
20:40
bin_005_s joined
|
|||
meisl | FROGGS, jnthn: something like that, but the prominent thing is piva, imho | 20:40 | |
20:40
bin_005 left,
rurban joined
|
|||
FROGGS | is piva beer or wine? | 20:40 | |
jnthn | Beer! | ||
FROGGS | I was under the impression that pivo is wine somewere | 20:41 | |
but... no, must be a braino | |||
jnthn | That's vino :) | ||
FROGGS | onhh! | ||
mj41 | yes, Brno = Brně ... en.wikipedia.org/wiki/Czech_declension#Neuter | ||
meisl | it could be a verb in 1st person elsewhere | ||
FROGGS | 7! | 20:42 | |
/o\ | |||
meisl | "beering" / "wining" | ||
(I do, that is) | |||
jnthn | mj41: Děkuji! :-) And yes, once I'm settled here, I'll gladly make some visits to Brno.pm :-) | 20:44 | |
It's not all that far away... | |||
mj41 | piva means beers ... or types of beers | ||
dalek | kudo-star-daily: 7da4b86 | coke++ | log/ (2 files): today (automated commit) |
20:45 | |
FROGGS | lizmat: do I get your +1 to deprecate open(:p) ? | ||
jnthn | hah, that do | ||
meisl | mj41: so kind of a plural, or generalization? | ||
mj41 | plurar | ||
plural | |||
jnthn | Darn, 5 years of not using any of the Slovak I've learned + Czech being a different language = I've got some quite some re-learning to do. | 20:46 | |
20:46
adu left
|
|||
PerlJam | stanrifkin: What kind of perl6 book would you want? What would it cover? | 20:46 | |
jnthn is back at "phew, I understand this restaurant menu enough to choose something tasty" and "yay I understand how much the cashier wants me to pay for these groceries"... | 20:47 | ||
FROGGS | and I guess the food really was tasty | ||
jnthn | FROGGS: Yes. :) | ||
FROGGS | I wish I could be in .cz right now :/ | ||
20:48
mohij joined
|
|||
mj41 | btw: GoodData ( www.gooddata.com/ ) has Perl developers in Brno and Prague. I will be in Prague tomorrow. I should wake up 5am, takže dobrou noc a uživej si Prahu a pivo. | 20:48 | |
meisl | so: pivo / piva is Czech for "beer(s)", polish is "piwo", where "piwa" is for kinda genitive-ish use (eg "butelka piwa" = bottle o' beer = Flaschbier) | 20:49 | |
jnthn | Dobrou noc, mj41 o/ | 20:50 | |
20:50
llfourn joined,
Ven left
|
|||
jnthn | .oO( Flasch! Bier...saviour of the universe... ) |
20:51 | |
timotimo | :D | ||
m: unit class Foo; has $.a, $.b, $.c; # LTA error, IMO. | 20:52 | ||
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iZekMrKESmVariable $.b used where no 'self' is availableat /tmp/iZekMrKESm:1------> 3unit class Foo; has $.a, $.b7⏏5, $.c; # LTA error, IMO. expecting any of: term» | ||
meisl | mj41: g'night (that much I understood) | ||
jnthn | Hm, I think STD gets that one better maybe... | ||
std: unit class Foo; has $.a, $.b, $.c; | |||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable $.b used where no 'self' is available at /tmp/8xrFIjN_1i line 1:------> 3unit class Foo; has $.a, 7⏏5$.b, $.c;Variable $.c used where no 'self' is available at /tmp/8xrFIjN_1i line 1:------> 3unit class Foo; has $.a, …» | ||
jnthn | std: unit class Foo; has $.a, $.b; | 20:53 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable $.b used where no 'self' is available at /tmp/YoxtjQ1mXU line 1:------> 3unit class Foo; has $.a, 7⏏5$.b;Undeclared routine: 'unit' used at line 1Check failedFAILED 00:00 139m» | ||
jnthn | No, sadly not | ||
meisl | jnthn: yea, Werner. but actually I prefer the southern stuff, you know | ||
20:53
mohij left
|
|||
jnthn | m: my $a, $b; | 20:53 | |
camelia | rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ll7u2b82w0Variable '$b' is not declaredat /tmp/Ll7u2b82w0:1------> 3my $a, 7⏏5$b;» | ||
jnthn | std: my $a, $b; | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/pD7dgRvWZ8 line 1:------> 3my $a, 7⏏5$b;Check failedFAILED 00:00 137m» | ||
jnthn | Ah, it has one there that Rakudo could do with stealing | ||
Wonder if we can't generalized it to has also. | |||
timotimo | very good | 20:54 | |
20:55
cognominal left,
llfourn left
|
|||
jnthn | Maybe something for me to do in the morning :) | 20:55 | |
For now, time for some rest :) | |||
FROGGS | gnight jnthn :o) | 20:56 | |
meisl | gnight & thx | ||
hoelzro | jnthn: I figured as much =) | ||
20:59
mj41 left,
uncleyear left,
skids left
|
|||
timotimo | gnite jnthn :) | 20:59 | |
hoelzro | night jnthn | 21:00 | |
21:00
uncleyear joined,
Ven joined
|
|||
dalek | kudo/openpipe3: 7e1bee5 | FROGGS++ | src/core/ (2 files): follow recent nqp::openpipe changes |
21:00 | |
lizmat | FROGGS: in newio branch, open(:p) is already deprecated :-) | 21:01 | |
FROGGS | lizmat: cool! | ||
lizmat | so yes, go ahead :-) | ||
FROGGS | then I'll backport it (tomorrowish) | ||
lizmat | I can do that now, if you want :-0) | 21:02 | |
FROGGS | sure, that'd be great | ||
PerlJam | lizmat: when will newio merge? | ||
lizmat | PerlJam: as soon as it is a sufficient amount of-Ofun for me | 21:03 | |
PerlJam | okie | ||
FROGGS | seems I need IO::Pipe from newio too | 21:05 | |
21:06
bin_005_s left,
bin_005_s_t joined
|
|||
lizmat | FROGGS: well, that you will have to do yourself tomorrowish | 21:06 | |
FROGGS | aye | ||
lizmat | I'm about to shutdown for an early night and a long commute to SLC tomorrow | ||
FROGGS | I also need to think more about it | ||
SLC? | |||
lizmat | Salt Lake City, UT | 21:07 | |
FROGGS | ohh | ||
lizmat | YAPC::NA | ||
FROGGS | have fun there for me :S | ||
lizmat | will try :-) | ||
FROGGS | *g* | ||
meisl | good night, lizmat; I'll quit too now. Bye #perl6. | 21:08 | |
FROGGS | gnight meisl | ||
meisl | c-ya'll | 21:09 | |
21:09
meisl left
|
|||
hoelzro | lizmat: have a safe flight, and enjoy! | 21:10 | |
lizmat | hoelzro: I'll tell the pilot to fly safely :-) | 21:11 | |
hoelzro | =) | ||
lizmat | git diff | ||
grrr | |||
FROGGS | :D | ||
dalek | kudo/nom: 5afe889 | lizmat++ | src/core/IO/Handle.pm: Deprecate open(:p), FROGGS++ |
21:12 | |
FROGGS | lizmat: thank you | ||
gnight #perl6 | |||
21:12
FROGGS left
|
|||
hoelzro | night freeze | 21:13 | |
dammit | |||
21:14
Ven left
|
|||
RabidGravy | I'm thinking of adding a couple of exceptions to Panda - Panda::X::PlatformNotSupported and Panda::X::DepemdencyMissing for the the beneft of automated testing | 21:17 | |
such that a developer can make a Buld.pm and if they decide upfront the module won't work they can bail the build but supply richer information | 21:18 | ||
any thoughts? | 21:20 | ||
21:20
smls_ joined,
smls left
|
|||
timotimo | i'm not sure it should be Panda::X ... shouldn't it be X::Panda:: ? | 21:22 | |
21:22
atweiden joined
|
|||
[Coke] | also, is panda deciding that something doesn't work on a platform? Or is that coming from the module you're installing? | 21:23 | |
timotimo | it'd be for the module developer | ||
21:24
Sqirrel left
|
|||
RabidGravy | the module, currently I'm doing "class Builder is Panda::Builder { method build(..) { if $*DISTRO.is-win32 { die "not supported on Windows"; }}" for example | 21:25 | |
21:26
smls_ left
|
|||
ugexe | shouldnt those happen during the hooks | 21:26 | |
RabidGravy | that stops fail test reports on platforms it won't work on, but completely aborts the build | ||
ugexe | well, i think it should show failures on a platform it fails on. even if its not meant to | 21:27 | |
RabidGravy | it should show n/a or something | ||
21:27
Foxcool_ left
|
|||
RabidGravy | which is somewhat the point of the above | 21:28 | |
21:29
uncleyear left
|
|||
RabidGravy | doing the above just aborts before the test report | 21:29 | |
21:29
uncleyear joined
|
|||
ugexe | i imagine module authors will just make a small script to throw in /hooks (if /hooks is still supposed to be a thing eventually) | 21:30 | |
timotimo | gist.github.com/timo/7babb36055768fe04eeb - i'm putting step-by-step improvements to jaffa4's port of the nbody benchmark into the history of this gist | 21:32 | |
21:32
johan joined
|
|||
RabidGravy | right, but right now a tiny adjustment to panda, such that the developer can create a Build.pm which may throw an exception to signal that it wishes not to be tested | 21:32 | |
timotimo | if someone could automate timing each commit in there, that'd be sweet. i only have my laptop which is on battery and power saving and such | ||
21:33
ggoebel left
|
|||
timotimo | i wonder if something branch-related would be good for that for exploring different things | 21:35 | |
and combinations | |||
like "real vs Real in the attributes" | |||
21:36
raiph left
21:37
ggoebel2 joined
21:41
diana_olhovik_ left
|
|||
ugexe | looks like perl6 is about to hit travis-ci github.com/travis-ci/travis-build/...-109061325 | 21:44 | |
"Also, if you have fun bits of information about you (and other volunteers) to share in the announcement blog post, I'd appreciate it!" | |||
21:44
rurban left
21:45
ggoebel2 left
|
|||
hoelzro | wow, that's spectacular | 21:45 | |
21:46
ggoebel joined
|
|||
timotimo | now is really a good time to try to make rakudobrew build stuff faster | 21:48 | |
does travis-ci like multi-threaded build? | |||
for MAKEOPTS=-j4 or something for moarvm | 21:49 | ||
hoelzro | timotimo: I think you can, but I think each build instance gets one core | ||
timotimo | OK, in that case there's no speed win | ||
hoelzro | would it just be for monthly releases? | 21:50 | |
or nightlies too? | |||
either way, new VM images with rakudo built could be used for individual travis builds | |||
timotimo | it uses "rakudobrew triple" | 21:51 | |
+ if version == "latest" | |||
+ sh.cmd "rakudobrew triple #{version} #{version} #{version}", assert: false | |||
is this correct? #{version} three times? does that allow you to give different versions for rakudo, nqp and moar? | |||
ugexe | it would probably be best to use rakudobrew build anyway, to make it easier to add JVM | 21:52 | |
lizmat | good night, #perl6! | ||
21:52
lizmat left
|
|||
timotimo | hm, right | 21:52 | |
[ptc]: can you comment on this? | 21:53 | ||
rakudobrew triple with #{version} #{version} #{version} would only allow you to get release versions, because only then will version names coincide | 21:54 | ||
hm ... i guess that's fine | 21:55 | ||
21:55
espadrine left
|
|||
timotimo | ugexe: you get "latest" by default and then it'll "rakudobrew build" | 21:55 | |
ugexe | rakudobrew triple cannot build jvm backened | 21:56 | |
or are you talking about something else | |||
21:56
uncleyear left
21:57
uncleyear joined
21:59
amurf joined
22:01
stanrifkin left,
adu joined
22:04
amurf left,
ggoebel2 joined,
ggoebel left
22:07
rurban joined
22:08
adu left
|
|||
RabidGravy | right, nighty night | 22:09 | |
22:10
rurban left
|
|||
timotimo | ugexe: if you don't specify a version in your travis file, you'll get "latest" | 22:10 | |
then it does "rakudobrew build moar" | 22:11 | ||
[ptc] | hoelzro++ # Travis Perl 6 support! | 22:13 | |
_itz: I'll give the new VimColour stuff a go as soon as I get time. $dayjob is pretty busy atm | |||
22:14
RabidGravy left
|
|||
ugexe | timotimo: ah i see what you mean. yeah it shouldnt be #{version} 3 times... it should be 3 different variables | 22:14 | |
22:14
johan left
22:22
smls joined
22:24
colomon joined,
smls_ joined
22:25
ggoebel2 left
|
|||
[ptc] | ugexe++ # Travis Perl 6 volunteer :-) | 22:25 | |
22:26
bin_005_s_t left,
huf left
|
|||
smls_ | What's the difference between -> ($a, $b) {...} and -> [$a, $b] {...} ? | 22:26 | |
22:26
ggoebel joined
22:27
huf joined
|
|||
smls_ | both seem to unpack Positional arguments. | 22:27 | |
22:27
smls left,
Peter_R left
|
|||
timotimo | that's right. i'm not sure if there's a nother difference | 22:28 | |
can i just say | |||
we're not compile-time-evaluating METAOP_ASSIGN | |||
and i don't know why | 22:29 | ||
22:29
koo6 left,
ggoebel2 joined
22:30
sirdancealot joined
22:31
ggoebel left
|
|||
timotimo | so for ^100 { $a += 5 } will generate += from + 100 times | 22:31 | |
22:31
vendethiel left,
_sri_ left
22:32
smls_ left,
_sri joined
22:33
ggoebel joined,
ggoebel2 left
22:35
pRiVi joined
|
|||
hoelzro | wait, what? | 22:35 | |
so the "+=" magic is redundantly generated 100 times there? | |||
22:35
pRiVi_ left
22:38
broquaint left,
zostay joined
22:39
vike1 joined,
broquaint joined,
llfourn joined
22:40
ggoebel left,
jercos left,
jercos joined,
ggoebel2 joined
|
|||
jdv79 | what's goin on so early in SLC? i'm flying out sunday myself. | 22:41 | |
22:41
SevenWolf left
|
|||
jdv79 | the pre-pre-pre-pre-arrival dinner? | 22:42 | |
22:43
danstone1 joined,
ruoso joined
22:44
llfourn left
22:47
skids joined
22:48
SevenWolf joined
22:52
beastd left
22:56
ggoebel2 left
22:57
Akagi201 joined
22:58
ggoebel joined
22:59
Akagi201 left,
Akagi201 joined
|
|||
Mouq | .ask lizmat So is #125312 (start 41 + 2) closable? | 23:01 | |
yoleaux | Mouq: I'll pass your message to lizmat. | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125312 | ||
23:02
telex left
23:04
telex joined
23:05
amurf joined
23:09
Akagi201 left
23:15
ggoebel2 joined,
ggoebel left
23:19
ggoebel2 left
23:22
ggoebel joined
23:27
spider-mario left
23:28
spider-mario joined
|
|||
timotimo | hoelzro: yes, indeed | 23:29 | |
well, we only take a closure of the thing | |||
hoelzro | yikes | ||
sounds like a quick performance win, though =) | 23:30 | ||
timotimo | i suppose | ||
the optimizer already has a case for $a += $b | 23:31 | ||
23:31
ggoebel left
|
|||
timotimo | to turn that immediately into $a = ($a // &infix:<+>()) + $b | 23:31 | |
but only if the assigned-to variable is a $-sigiled var | |||
23:31
ggoebel joined
|
|||
timotimo | in the case we have in this benchmark here, the lhs is a method call on an object | 23:31 | |
(to get an is-rw container) | |||
hoelzro | ah ha | 23:34 | |
timotimo | the thing is: we should actually be compile-time-calling METAOP_ASSIGN and generating the closure to be re-used | 23:37 | |
at least that should have been optimized by the existing optimizer | |||
timotimo is hacking on the optimizer this very moment | |||
23:38
ggoebel left
|
|||
hoelzro | timotimo++ | 23:39 | |
maybe I can pick your brain sometime about some things I'd like to speed up! | |||
timotimo | that's what i used to do all the time :P | 23:40 | |
23:42
uncleyear left,
uncleyear joined
23:44
ggoebel joined
23:52
Akagi201 joined
23:54
Akagi201 left
23:55
Akagi201 joined
23:56
Akagi201_ joined,
Akagi201 left
|