»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
xenoterracide joined
00:16
aborazmeh joined
|
|||
TimToady | 'as' is deprecated in any case | 00:25 | |
it will eventually be 'has Int(Cool) $bar' | 00:26 | ||
meaning it accepts a Cool but coerces to Int | |||
but it's NYI | 00:28 | ||
00:29
itz joined
00:30
raydiak__ is now known as raydiak
00:31
itz_ left
|
|||
dalek | kudo/nom: a3262f6 | TimToady++ | src/core/Whatever.pm: at least avoid multiple allocs in Whatever.new This is a stopgap till we figure out how to add constant singletons in the setting. |
00:32 | |
TimToady failed to add constant singletons many different ways :/ | |||
but it still the case that every darn .gimme(*) or .reify(*) calls Whatever.new | 00:36 | ||
00:46
leont left
|
|||
raydiak | r: Buf.new(0).subbuf-rw(0).say | 00:49 | |
camelia | rakudo-{parrot,jvm,moar} fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf' in block <unit> at /tmp/tmpfile:1» | ||
raydiak | ^ isn't this supposed to exist now? | ||
TimToady | m: Buf.new(0)[0] = 42; | 00:52 | |
camelia | ( no output ) | ||
TimToady | m: my $b := Buf.new(0); $b[0] = 42; say $b.decode | ||
camelia | rakudo-moar fd9238: OUTPUT«*» | ||
TimToady | proving that then answer to Life, the Universe, and Everything is really "whatever". | 00:53 | |
raydiak | heh | ||
how would I modify more than one value at a time? | 00:56 | ||
TimToady | m: my $b := Buf.new(0,0,0); $b[0,1,2] = 65,66,67; say $b.decode | 00:57 | |
camelia | rakudo-moar fd9238: OUTPUT«Cannot modify an immutable Int in method STORE at src/gen/m-CORE.setting:7513 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2615 in block <unit> at /tmp/QfLkMoqQcJ:1» | ||
TimToady | aww | ||
m: my $b := Buf.new(); $b[0,1,2] = 65,66,67; say $b.decode | |||
camelia | rakudo-moar fd9238: OUTPUT«Cannot modify an immutable Int in method STORE at src/gen/m-CORE.setting:7513 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2615 in block <unit> at /tmp/ghx6CeCera:1» | ||
TimToady | eh, beats me | 00:58 | |
raydiak | "subbuf-rw specced and implemented" may have been a tad premature? :) | ||
TimToady | m: my $b := Buf.new(0); $b.subbuf-rw(0,1) = 65; say $b.decode | 00:59 | |
camelia | rakudo-moar fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf' in block <unit> at /tmp/DyTrJcuD4K:1» | ||
TimToady | praps | ||
raydiak | very excited though...it's been a blocker for Pray since last year | 01:00 | |
01:01
BenGoldberg joined
|
|||
TimToady | m: my $b := buf8.new(0); $b.subbuf-rw(0,1) = 65; say $b.decode | 01:01 | |
camelia | rakudo-moar fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf[uint8]' in block <unit> at /tmp/suro800_qn:1» | ||
01:03
itz_ joined
01:05
itz left
01:09
anaeem1 left
|
|||
timotimo | we did have subbuf-rw! | 01:12 | |
TimToady | m: my $b := buf8.new(0); subbuf-rw($b,0,1) = 65; say $b.decode | ||
camelia | rakudo-moar fd9238: OUTPUT«Type check failed in binding $new; expected 'Blob' but got 'Int' in sub at src/gen/m-CORE.setting:5908 in block <unit> at /tmp/j2ZYXalpro:1» | ||
TimToady | eh? | 01:13 | |
timotimo | ah, subbuf-rw is a sub, not a method | ||
TimToady | m: my $b := buf8.new(0); subbuf-rw($b,0,1) = buf8.new(65); say $b.decode | ||
camelia | rakudo-moar fd9238: OUTPUT«Cannot assign to an immutable value in sub at src/gen/m-CORE.setting:5908 in block <unit> at /tmp/B_N4cfluuD:1» | ||
TimToady | huh | ||
timotimo | oh? | ||
dalek | ast: 469d6a5 | (David Warring [email@hidden.address] | S02-types/whatever.t: add fudged tests for RT #122708 non-currying: * min 2 |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122708 | ||
01:14
chenryn joined
|
|||
TimToady smells dinner, and is suddenly de-incentivized wrt hacking... & | 01:15 | ||
timotimo | something's keeping me from really progressing with the MATCH rewrite :\ | 01:19 | |
01:30
chenryn left
01:33
JimmyZ joined
01:42
aborazmeh left
01:47
cognome left
|
|||
raydiak | confirmed that subbuf-rw worked properly in moar 2014.08 as a sub at least...should file a bug, I assume? | 01:49 | |
oh, and it works properly as a sub now too...guess it's just not a method like timo said | 01:56 | ||
01:56
FROGGS_ joined
01:59
Sqirrel left
02:00
Sqirrel joined
02:01
FROGGS left,
raiph joined
02:04
itz joined
02:06
itz_ left
|
|||
masak | aloha, #perl6 | 02:09 | |
BenGoldberg | Do all alohas come from hawaii? | 02:12 | |
02:15
cognome joined
|
|||
masak | not this one. | 02:15 | |
ingy: re irclog.perlgeek.de/perl6/2014-09-05#i_9305944 -- when a language declares by assignment, there's no way to distinguish `my $x = 1; sub { $x = 2 }` from `my $x = 1; sub { my $x = 2 }`, and so the language has to choose (usually the latter). I've seen this decision cause untold head-scratchers, surprise, and hardship in (e.g.) Python and AngularJS. | 02:18 | ||
Python 3 introduces `nonlocal` as a way to get the former semantics. but then community-suggests that "you don't really want to do that". :/ | 02:19 | ||
02:22
cooper_ joined
02:31
ren1us left
02:34
davido_ joined
02:39
raiph left
02:48
dwarring left
02:59
noganex joined
03:01
colomon left
03:02
noganex_ left
03:03
colomon joined
|
|||
ingy | masak: I'm not sure I agreee | 03:03 | |
or at least that it's going to be a problem | |||
I could make a set of test cases | 03:04 | ||
And as I said, assignment is just the default decl | |||
ingy tests in CS | 03:05 | ||
masak | oh, you're free to agree or disagree ;) | 03:07 | |
I'm just saying I see that semantics causing actual pain in a way explicit declarations don't. | |||
there are plenty of ways to decide that declaration-by-assignment is still the right thing to do. for example, by considering the sum effort involved in declaring lexical variables to be worse than the occasional bug caused by implicitly mis-declaring one. | 03:09 | ||
ingy | nod | 03:10 | |
03:10
raiph joined
|
|||
masak | as for me, though, I've come to really really appreciate explicit declarations. they form a beautiful static modek in the program, and they frequently catch thinkos for me which otherwise might have escaped into live code as unintended declarations. | 03:11 | |
ingy | masak: so CafeScript is syntax and L'Ingy is the (syntaxless) language. | ||
one sec | |||
03:11
MilkmanDan left
|
|||
colomon just realized it must be morning for masak | 03:13 | ||
03:13
JimmyZ_ joined
03:14
MilkmanDan joined
|
|||
masak | colomon: it's before noon, yes. | 03:14 | |
JimmyZ_ doesn't like the implicit syntax in scala, btw :( | |||
03:15
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
masak | there's some sense in which implicit syntax looks like less work, but it ends up causing trouble when refactoring. | 03:15 | |
ingy | masak: possibly :) | 03:16 | |
masak | a bit like having the redundancy of indentation and explicit braces on blocks tends to be a good thing. | ||
ingy | masak: github.com/ingydotnet/pig-latin-ac...in.ly.yaml is the raw L'Ingy port | ||
masak looks | |||
ingy | that I just made | ||
it is close to the compilation unit (AST) of github.com/ingydotnet/pig-latin-ac...Latin.cafe | 03:17 | ||
masak | *nod* | ||
ingy | and all the vars are scoped and typed | ||
so I can swap syntaxen (theoretically) to meet issues | |||
Cafe is admittedly pushing full-on lean | 03:18 | ||
03:18
cooper_ left
|
|||
ingy | masak: you'll like: gist.github.com/7b86c66589fd5b67feab | 03:19 | |
I was reading p6OO doc and started refactoring :) | |||
note line 20 | 03:20 | ||
no comma after "x: | |||
no comma after "x: " | |||
that's because commas are optional following a literal in a list | 03:21 | ||
[1 2 3 4] | |||
stolen from audreyt's #1 fav lang LiveScript | |||
masak | seems a big perverse from a p6 perspective :) | 03:22 | |
bit* | |||
(as we typically reserve TTIAR for either special forms or parse errors) | 03:23 | ||
ingy | I have a lightning talk that asserts that , ; ( ) { } have pretty much identical meanings in all modern languages. they should always be supported, and semantically DTRT, and always be optional :) | ||
03:23
lastofthe left
|
|||
masak | reminds me of JS's optional semicolons, for some reason. | 03:24 | |
ingy: I also note that you opted for *neither* braces nor indentation to indicate nesting. | |||
ingy | perl6 feels perverse from the PoV of porting between other common langs | ||
? | |||
masak | everything's at indent level 0. | 03:25 | |
ingy | you mean I opted both either | ||
oh | |||
masak | well, in your example I see neither. | ||
what if I want nested classes? | |||
or nesting of something else? | |||
ingy | a 'Module' is Class* | ||
so class ends at next class | |||
masak | I figured. that's why you need a class main. | 03:26 | |
03:26
itz_ joined
|
|||
ingy | that's one thing from p5 I won't give up | 03:26 | |
but still ♥ indentation | |||
open code from before first class is also in main | 03:27 | ||
er Main | |||
I just didn't want to break the p6 code order | |||
masak | ingy: I find this discussion interesting in that it brings out language design preferences I didn't know I had, by looking at what you have and figuring out why I don't like it. ingy++ :) | 03:28 | |
03:28
lastofthe joined
|
|||
ingy | It will be pretty cool to see how Cafe beats up on P6 (and vice versa) | 03:28 | |
03:29
itz left
|
|||
ingy | backhanded compliment touché :P | 03:29 | |
masak | not meant as a slight in any way | ||
ingy | people like what they are used to | ||
masak | at least those who stick with what they like :P | ||
03:30
cognome left
|
|||
ingy | I find CoffeeScript to the most delightful syntax | 03:30 | |
masak | oh augh :P | ||
03:30
cognome joined
|
|||
ingy | well, until I realized it could be better | 03:31 | |
p6 is a fountainhead of great ideas | |||
masak | ingy: I think it's weird that your model has `main` as a class, since it has neither attributes, methods, or instances. just mainline code. | ||
ingy | masak: to be honest, Cafe's dream is only OO/Class/Module singularity | 03:32 | |
one programs in P6 | |||
one writes modules in Lingy/Cafe | |||
if one is Acmeist (wants ideas (modules) to go beyond one's tiny language domain) | 03:33 | ||
so the 'main' thing is not well thought out yet | |||
masak | sir, I wish you good luck on your ambitious Acmeist quest. | ||
ingy | but it's probably inevitable | ||
masak: it's the lonliest path least traveled, my good friend! | 03:34 | ||
03:34
cognome left
|
|||
ingy | but it's the only path that calls out to my soul… | 03:34 | |
I had all these ideas before coffee. coffee was a huge shot in the arm though. | 03:35 | ||
03:35
aborazmeh joined
|
|||
btyler | is it possible to use NativeCall with static libs? | 03:36 | |
ingy | and coffee taught me that the sugar can be richer than the target | ||
and take the best ideas from great langs | |||
masak | *nod* | ||
I give you that, CoffeeScript has had a huge influence by example. | |||
ingy | including the best of the greats, Perl6 | ||
btyler | I'm playing around with bindings for discount, the markdown compiler, but nativecall either looks for .dylib, or, when I specify "libmarkdown.a" can't find that | ||
JimmyZ | .oO(someone want ColaScript...) |
||
ingy | vendethiel- I believe was/is a huge backer of LiveScript (aka CoffeeScript++; aka FunctionalCoffeeScript) | 03:38 | |
vendethiel-: do you hear me, man?! | 03:39 | ||
03:45
jack_rabbit left
|
|||
masak should take a closer look at LiveScript | 03:50 | ||
04:01
xenoterracide left
04:04
JimmyZ_ joined
04:06
JimmyZ left,
JimmyZ_ is now known as JimmyZ
04:11
xenoterracide joined
04:13
lastofthe left
04:18
telex left
04:19
davido_ left
04:20
telex joined
04:30
itz joined
04:33
itz_ left
04:43
bjz left,
bjz joined
04:46
itz_ joined
04:49
itz left
04:53
raiph left
04:57
itz joined,
JimmyZ_ joined
04:59
JimmyZ__ joined,
itz_ left
05:01
JimmyZ left,
JimmyZ__ is now known as JimmyZ
05:02
JimmyZ__ joined,
JimmyZ_ left
05:03
JimmyZ_ joined
05:05
JimmyZ left
05:06
JimmyZ_ is now known as JimmyZ
05:07
JimmyZ__ left
05:08
BenGoldberg left
05:10
anaeem1 joined,
itz_ joined
05:12
itz left
05:13
xenoterracide left
05:14
anaeem1 left
|
|||
dalek | kudo/nom: cc1965f | jonathan++ | / (5 files): Bulid a * and ** during compile, and use them. This means that we eliminate the method calls to .new in both cases, as well as a bunch of object allocations. This should - at least in the pre-compiled module case where the created object is in gen2, or when the compilation ran long enough to promote it - JIT down to an instruction or two on Moar. Even if it's the less direct lookup, it will still be enormously faster than a method call. |
05:14 | |
05:19
tinyblak joined
|
|||
TimToady | \o/ | 05:20 | |
05:23
tinyblak left
|
|||
jnthn | lunch & | 05:27 | |
yoleaux | 5 Sep 2014 21:57Z <lizmat> jnthn: re "my $p; $p = start { await $p }; await $p" deadlock, maybe we should force waiting for a start promise to only be allowed in the originating thread ? | ||
05:29
haroldwu is now known as acgtyrant_,
acgtyrant_ is now known as haroldwu
05:32
tinyblak joined
|
|||
moritz | good morning | 05:37 | |
05:40
aborazmeh left
05:46
kaare_ joined
05:53
kurahaupo left
05:54
JimmyZ_ joined
05:57
JimmyZ left,
JimmyZ_ is now known as JimmyZ
06:00
dolmen joined
|
|||
lizmat | jnthn: re method new() { our $star //= nqp::create(self) }, wouldn't 'method new() { $ //= nqp::create(self) }' be better? | 06:01 | |
or even method new() { $ = nqp::create(self) } | 06:02 | ||
TimToady | can probably just be 'method new() { (*) }' now | ||
lizmat | and ** for HyperWhatever ? | 06:04 | |
TimToady | yes, World now already defines those as singleton instances, so there's no point in making more of 'em | ||
JimmyZ | m: say *.WHAT; (*).WHAT | 06:05 | |
camelia | rakudo-moar a3262f: OUTPUT«(Whatever)» | ||
JimmyZ | m: say *.WHAT; say (*).WHAT | ||
camelia | rakudo-moar a3262f: OUTPUT«(Whatever)(Whatever)» | ||
TimToady | not sure if the parens are necessarily, since {*} is an "onlystar" for protos | 06:06 | |
m: sub foo() {*} | |||
camelia | ( no output ) | ||
TimToady | m: sub foo() {*}; say foo.WHAT | ||
camelia | rakudo-moar a3262f: OUTPUT«(Whatever)» | ||
06:06
tinyblak left
|
|||
TimToady | looks safe-ish | 06:07 | |
lizmat | remember, we're doing this early in the settings | ||
a lot of things don't work yet then... | 06:08 | ||
testing $ = variant over breakfast& | |||
TimToady | what would be the point of assigning to a state var? | ||
lizmat | the same as //=, but without the METAOP ? | ||
TimToady doesn't understand what you are trying to do | 06:09 | ||
we scarcely need the new method at all now | |||
danaj | What's a fast way to read numbers from a file (one per line). It seems using "for $in.lines -> $_ { ... }" is extraordinarily slow. | 06:10 | |
Timbus | -> $_ | ||
you can do that? | |||
danaj | (sorry for basic question, feel free to point me to better channel for silly questions) | ||
06:13
mr-foobar joined
|
|||
TimToady | danaj: what kind of numbers? | 06:13 | |
06:14
tinyblak joined
|
|||
JimmyZ | I thinks somethink like perlmonks.org/?node_id=1099654? | 06:14 | |
*something | |||
TimToady | you might do better with $in.slurp.words | ||
danaj | TimToady: 64-bit integers. It takes many minutes to plow through 32M of them (with an empty loop). Perl 5 takes 5 seconds. | ||
JimmyZ | Note 3 ) part ? | ||
TimToady | yes, I know that p5 is very fast on input; I cheated all over to make it that way | 06:15 | |
we haven't cheated in P6 yet | |||
danaj | NP, I don't need P5 speed (yet :)) but this seems awfully boggish. | 06:17 | |
Hmm, slurp.words up to 8GB and still going. | 06:19 | ||
TimToady | it's possible that 'for eager $in.lines' will run faster | ||
the other thing that's going on here is that p5 will be using native 64-bit ints internally, while p6 is defaulting to arbitrary bigints | 06:21 | ||
so finding some way to convert direction to int64 will probably be quite a bit faster | 06:22 | ||
danaj | This is for testing the base-2 strong pseudoprimes, where the goal is to ensure is-prime returns true on each one (obviously the current one will, as only the first 12 bases are needed and we run an extra 88 for good luck) | ||
TimToady | *directly | ||
danaj | I can always just do the file open/read/loop directly from C and have it call the C routine, but there's something to be said for doing it from the language directly. | 06:23 | |
lizmat | TimToady: this is about a3262f65704cd4c1ac | ||
TimToady | opening the file in binary mode might help | ||
lizmat | a. why burden UNIT:: with something | 06:24 | |
TimToady | lizmat: that's obsolete | ||
lizmat | b. why use a METAop | ||
TimToady | jnthn++ has already done something better | ||
lizmat | so should a3262f65704cd4c1ac be reverted then? | 06:25 | |
TimToady | no, it should be changed to what I said, just returning * | ||
lizmat | commute to venue, will look at it there& | 06:26 | |
06:26
lizmat left
06:27
woolfy left
|
|||
TimToady | actually, should just delete new and clone, I think | 06:32 | |
dalek | kudo/nom: 4a74294 | TimToady++ | src/core/Whatever.pm: no longer need new and clone in Whatever |
06:34 | |
06:48
Salai is now known as Sarid,
Sarid is now known as Salai
06:51
lastofthe joined
06:56
darutoko joined
07:08
anaeem1_ joined,
gfldex joined
07:09
anaeem1_ left
07:10
anaeem1_ joined
07:13
lizmat joined
07:19
JimmyZ_ joined
07:21
virtualsue joined,
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
Woodi | morning #perl6 :) | 07:21 | |
lizmat | morning Woodi | ||
TimToady: re 4a74294806 : that's one way of solving it :-) | 07:22 | ||
Woodi | TimToady: I'm very interested what are all that places you cheat in p5 to make it fast :) could you share thes ideas ? | 07:24 | |
lizmat: I have long standing question to you :) maybe TimToady and masak also :) | 07:25 | ||
Timbus | you should ask leon timmermans about perl IO. he has a lot to say | 07:26 | |
Woodi | once I was watching 3in1 perl presentation and part 3on3 was you three a bit shyish "allowing" Perl5 community to branch Perl5 :) what was that actually ? :) | 07:27 | |
probably this was on same conference as Perl11 idea... | |||
07:32
lastofthe left
|
|||
lizmat | Woodi: would that be on stage at the YAPC::EU 2013 ? | 07:34 | |
07:34
tinyblak left,
dolmen left
|
|||
lizmat | if so, that was a very weird situation | 07:34 | |
the origanizer of the conference wanted a "Perl 7" discussion | |||
but in the end, didn't find anybody to defend the "perl 7" standpoint on stage | |||
Timbus | ... thats so weird | 07:35 | |
lizmat | so it became a weird one sided 45 minutes of my life | ||
07:35
jack_rabbit joined
|
|||
Woodi | probably becouse morphing perl5 code into v7 is hard... and (probably) includes dropping compability with perl5 :) | 07:36 | |
lizmat | there's that :-) | 07:37 | |
Woodi | some vendors coalition could do that but unlikely :) and from user perspective perl5 development is quite good :) | 07:38 | |
07:39
FROGGS_ is now known as FROGGS
07:55
virtualsue left,
anaeem1_ left
|
|||
dalek | ast: a9608c6 | (Elizabeth Mattijsen)++ | S17-lowlevel/thread.t: Unfudge: this seems stable now, even under load |
08:11 | |
kudo/nom: bdf153c | jonathan++ | src/core/control.pm: Improve take[-rw], proceed, succeed. By making them multis, the common cases can avoid a Parcel allocation along with the underlying list construction, as well as a call. This takes around 5% off a "read a million lines" benchmark, and probably is more significant in things that hot-path on gather. The succeed improvement should help all given/when usages. |
08:19 | ||
jnthn | Also brings the common cases within inlining thresholds, I'd imagine. | 08:20 | |
08:22
elohmrow joined
|
|||
elohmrow | greetings, from sunny olten! | 08:22 | |
Woodi | while installing R* 2014.08 with jit configure says my Pentium4 is i586 so no jitting for me... it's strange, I'm pretty sure `uname -a` says i686... | 08:24 | |
Timbus | danaj, i just tested using $file.lines vs loop{$file.get} and for a 100,000 file line the time goes from 8 seconds to 1 | ||
Woodi | elohmrow: o/ | ||
Timbus | if that helps | ||
firefish5000 | Is there currently a bash_completion for panda or perl6? | ||
Timbus | 100,000 line file* | 08:25 | |
08:28
BizarreCake joined
|
|||
danaj | Timbus: Thanks, I'll try that later. I was getting ~6s in binary using $file.lines for first 100k lines of 32M line file, ~11s if I call a nqp routine with the integer that immediately returns. The speedup will be nice, and that should be fine for now. | 08:31 | |
Timbus | i dont seem to get any speedup for using :bin, almost all of the slowdown is coming from the lazy list code. | 08:36 | |
danaj | Timbus: That goes to ~1s for first 100k lines for me as well. 12s for first 1M lines, and much better memory using moar. | ||
Timbus | cool :) | 08:37 | |
FROGGS | firefish5000: never heard of one | 08:39 | |
firefish5000 | In that case, would you guys be intrested in mine, (comes with no warrenty) | 08:40 | |
moritz | sure | 08:42 | |
FROGGS | sure! | 08:45 | |
shall we but that in the star repo? | 08:46 | ||
firefish5000 | Here it is. pastebin.com/JNKuF4KY | ||
firefish5000 is not responable for any damage nor injures aquired while using perl6 completion | 08:47 | ||
08:48
virtualsue joined
|
|||
firefish5000 | to use, put it in your bash_completion.d directory and source /etc/profile or source the file itself. | 08:49 | |
08:50
anaeem1 joined
|
|||
elohmrow | just starting with perl6 here ... vim user (don't shoot?!) ... and vim syntax goodies for perl6 | 08:50 | |
firefish5000 | I believe vim comes with builtin perl6 support (for highlighting/brace matching/etc). although its a little slow with big files. | 08:53 | |
08:55
brrt joined
|
|||
FROGGS | I think some ppl here use vim | 08:56 | |
08:56
araujo left
|
|||
lizmat uses vim but pretty vanilla | 08:57 | ||
moritz | firefish5000 is correct, though iirc it's not reliably autodetected; I put ft=perl6 in my modelines | 08:58 | |
elohmrow | yeah multi-line comments don't work in what i have | 08:59 | |
they work, but the highlighting !works | 09:00 | ||
firefish5000 notices a echo to file in his bash_completion in _perl6() { ... | |||
oops | |||
dalek | kudo/nom: 2132868 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Phase #1 of IO.pm breakup |
09:01 | |
kudo/nom: 8b9b6cc | (Elizabeth Mattijsen)++ | src/core/IO.pm: Phase #2 of IO.pm breakup |
|||
kudo/nom: fa8a7df | (Elizabeth Mattijsen)++ | src/core/IO/ (3 files): Part #3 of IO.pm breakup |
|||
kudo/nom: 95876bc | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Part #4 of IO.pm breakup |
|||
kudo/nom: 888b855 | (Elizabeth Mattijsen)++ | tools/build/ (3 files): Part #5 of IO.pm breakup |
|||
09:03
Salai left,
grep0r joined
09:05
akaseki joined,
leont joined
09:06
spider-mario joined
09:07
spider-mario left
09:08
vukcrni left
09:09
vukcrni joined,
spider-mario joined
|
|||
lizmat got fed up with the convulution in IO.pm | 09:11 | ||
*convolution rather | 09:15 | ||
09:16
virtualsue left
09:22
akaseki is now known as Salai,
Rotwang joined
|
|||
itz_ | one thing which would be nice for vim would be perl6 aware tag creation | 09:22 | |
either as a simple p6 script or support in etags | 09:23 | ||
09:23
leont left
09:26
leont joined
|
|||
Timbus | so, if .lines calls .get over and over, does the optimizer know that it doesn't have to test $!PIO and $!isDir every single time? does nqp or moar know to.. 'unroll' safety checks in some way? as i type this it seems less and less likely | 09:30 | |
09:35
JimmyZ_ joined
|
|||
dalek | kudo/nom: e0a98ba | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Make simple say more atomic in threaded situations |
09:35 | |
09:38
anaeem1 left,
JimmyZ left,
JimmyZ_ is now known as JimmyZ
09:40
kurahaupo joined
|
|||
nine | lizmat: does this make say faster or slower? | 09:41 | |
09:44
virtualsue joined
|
|||
Timbus | yes | 09:44 | |
lizmat | I'm pretty sure for most cases it won't make much difference | 10:03 | |
if you're saying a 1M character scalar, it probably will | 10:04 | ||
in reality, that doesn't happen much | |||
and if it *is* a performance issue, adding a , to the param list, should probably select the candidate that doesn't do the concatenation | 10:05 | ||
JimmyZ remembered jnthn++ optimized it to avoids ',' :P | 10:06 | ||
lizmat | well, perhaps we need to optimize 'say "foo"' to 'print "foo\n"' at compile time | 10:08 | |
10:08
BizarreCake left
|
|||
lizmat | actually, to '$*OUT.print: "foo\n"' | 10:09 | |
and then MMD print to have a candidate for Str:D: | |||
perhaps the \x candidate shouldn't be optimized like that | 10:10 | ||
otoh, calling .gist on something probably means a lot of concatenation already | |||
I felt the atomicity of say in that case, would be more important | 10:11 | ||
10:13
itz joined
|
|||
JimmyZ wonders what about 'say "$foo"' | 10:15 | ||
JimmyZ was asked by someone before | |||
10:16
itz_ left
|
|||
nine | lizmat: but it is not atomic. | 10:21 | |
jnthn | Timbus: No, those are done each time; factoring them out is one of my todos for later on today | 10:22 | |
lizmat | JimmyZ: "$foo" will foo.Str | ||
JimmyZ: say $foo will $foo.gist | |||
nine | lizmat: Nothing whatsoever prevents mixed lines in output if mutltiple threads say at the same time. You just reduced the chance of this happening thereby making potential race conditions harder to reproduce. | ||
lizmat | nine: are you saying race conditions on $*OUT.say are a problem ? | 10:24 | |
if so, we need to fix this | 10:25 | ||
nine | lizmat: I say you are obviously seeing them as a problem, otherwise why try to fix it?. But your fix is not a real fix. You just reduced the chance of the problem manifesting. | ||
lizmat | true... it's all about priorities | 10:26 | |
Timbus | jnthn, i see. i was more interested from an automatic optimizer perspective, but after thinking about it, it seemed.. difficult. | ||
lizmat | when trying to debug multi threaded apps, I take any semblance of atomicity on say as a help | ||
meanwhile, I'm trying to make @*INC and %*CUSTOM_LIB lazy | 10:27 | ||
vendethiel- | o/, #perl6 | ||
nine | And I might even argue that by reducing the chance, we make it harder for people to find such race conditions in their code. | ||
lizmat | $ time perl6 -e1 | ||
real0m0.165s | |||
user0m0.132s | |||
sys0m0.031s | |||
that would be nice, eh? | |||
Timbus | jnthn, anyway that said, removing the checks does speed up a 100k line iteration by 120 milliseconds or so. yay profiler | ||
lizmat | although wrt to spectesting, it wouldn't make a difference | ||
nine | Works fine on first glance but may still fail when larger strings are printed and the OS preempts in the middle. | ||
lizmat | as any "use" will cause @*INC and %*CUSTOM_LIB to be populated | 10:28 | |
and any test starts with "use Test" | |||
elohmrow | they work, but the highlighting !works | 10:29 | |
lizmat | nine: this is *only* for sub say { ... } | ||
elohmrow | oopsie, looks like i somehow accidentally re-posted that :) | ||
lizmat | and yes, I realize that as soon as the string exceeds the size of the IO buffering of the OS, we may seem "breakage" | 10:30 | |
*see | |||
10:30
virtualsue left,
mr-foobar left
10:32
brrt left
|
|||
Woodi | <stdio.h> is generally thread-safe now, could we use that somehow in ? in some shortcut way maybe... | 10:41 | |
grr... forget about all that VMs :) | |||
lizmat | Woodi: IO is handled by libuv, afaik | ||
Woodi | on j-nqp too ? | 10:42 | |
lizmat | sorry, I meant on -m | ||
Woodi | still we can invent some new and powerfull threaded apps debuging tool :) | 10:43 | |
with printf ;) | |||
leont isn't sure what printf would buy you | |||
Yes, it uses locks to guarantee every printf call is consistent, it's not that hard to write that honestly | 10:44 | ||
Woodi | leont: I just realized that we talk about stdout and my proposed powerfull tool is just adapter for printf :) | 10:45 | |
jnthn | In the case of MoarVM, in a multi-threaded program the VM takes a lock on its internal handle data structures, since libuv IO and event loop data structures ain't threadsafe. | ||
On the JVM, we lock as needed also | |||
10:47
JimmyZ_ joined,
jack_rabbit left
|
|||
lizmat is surprised to learn that libuv isn't threadsafe in that respect | 10:48 | ||
10:49
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
jnthn | lizmat: It was built initially for Node.js, so it ain't so surprising. :) | 10:49 | |
lizmat | jnthn: we don't have a standard way of making a proxy like object for arrays and hashes, do we? | 10:50 | |
jnthn | No, though a lazy array is, well, just a lazy list... :) | 10:51 | |
nwc10 | is this also why it's quite happy to change its API but only bump the most minor part of the version number? | 10:52 | |
10:52
PersonX joined,
PersonX left
|
|||
jnthn | nwc10: Well, I more meant that if you're building something that centers around huge amounts of overlapped IO on a single thread, you won't need to worry about thread safety of handles. | 10:53 | |
nwc10 | yes, sorry, I realised that. It makes sense | ||
it was more that I was feeling the need question why they are 0.11.lots rather than 0.12.smaller given that the API changes | 10:54 | ||
jnthn | Yes. The latter thing, not so much sense, though... | ||
10:55
pmurias joined
|
|||
pmurias | is there anyone still supporting the Perl 7 renaming? | 10:55 | |
vendethiel- | trolls? | 10:56 | |
10:56
vendethiel- is now known as vendethiel
|
|||
lizmat | vendethiel: :-) | 10:56 | |
pmurias noticed the irc log mentioned yapc 2013 not 2014 ;) | |||
vendethiel | yeah, the c-day-is-coming talk was apparently rather well received | 10:57 | |
Woodi | jnthn: is libuv planned to be eventually replaced ? | 10:58 | |
lizmat wasn't burnt at the stake :-) | 10:59 | ||
leont | Woodi: do you have anything better? | ||
10:59
PersonX joined
|
|||
jnthn | Woodi: I've no such plans. | 10:59 | |
Just because it's not perfect doesn't mean there's a better option. | 11:00 | ||
lizmat | jnthn: in Metamodel/BOOTSTRAP, I see a lit of repeated .HOW calls to a type object | ||
jnthn | lizmat: .HOW is rather cheap.... | ||
lizmat | would it make sense to do the .HOW once, store it and then call methods on that ? | ||
jnthn | lizmat: It's not actually a method call, even. | ||
11:00
PersonX left
|
|||
lizmat | ok | 11:00 | |
what I wanted to know | |||
leont | Woodi: keep in mind that cross-platform async is hard. There are only a handful viable low-level implementations. | 11:01 | |
boost.async is kind of neat, but moar is in C not in C++ | |||
jnthn for one does not want to design/implement a cross-platform async IO thingy :) | |||
vendethiel | I wonder why :D | ||
boost guys really are crazy (awesome). | 11:02 | ||
lizmat | jnthn: so if I wanted to do a lazy @*INC, I would create a ListIter with a .nextiter set to the code to run, and $!list set to PROCESS:::<@INC> ? | 11:05 | |
leont | jnthn: why wouldn't you want to port such a project to, say, OpenVMS? ;-) | 11:06 | |
pmurias | what are the reason for replacing libuv? | ||
Woodi | leont: *VMS users should do that ;) | ||
vendethiel | thread safety | ||
lizmat | pmurias: because we found something better ? | ||
but we didn't find it yet (afaik) | 11:07 | ||
Woodi | pmurias: primery is NIH :) | ||
leont | Woodi: sarcasm ;-) | ||
jnthn | lizmat: Actually I think you'd just create an array, and then .plan(gather { blah blabh set up stuff; take entry }) | ||
lizmat | is .plan actually functional now? | 11:08 | |
jnthn | lizmat: I thought TimToady implemented it the other day... | ||
leont: The only thing I know about VMS is what I've learned from Perl folks. And that boils down to, "porting stuff to VMS is HORRIBLE" :) | 11:09 | ||
leont | There is a POSIXy compatibility layer, but IPC in general is weird. perl5 still doesn't have a working IPC::Open2 for VMS for example :-/. | 11:10 | |
lizmat | jnthn: maybe, but 'ack '\.plan' t/spec' doesn't show any hits, so it is at least untested | 11:11 | |
pmurias | lizmat: have we found something better? | ||
jnthn | m: my @a; @a.plan(gather { say 'dugong'; take 1; }); say 'manatee'; say @a[0] | ||
camelia | rakudo-moar 4a7429: OUTPUT«(timeout)manatee» | 11:12 | |
jnthn | um... | ||
lizmat | that doesn't feel right :-) | ||
jnthn | TimToady: Oh the hue manatee! ^^ | ||
leont | I'm observing the done callback on a Supply (from Proc::Async) being called more than once, is that expected? | ||
jnthn | Um, no... o.O | 11:13 | |
more will be | |||
done should happen once | |||
11:13
elohmrow left
|
|||
pmurias | lizmat: sorry didn't reed | 11:14 | |
jnthn | If I managed to mess that up, please toss a bug report in RT | ||
leont | That's what I expected | 11:15 | |
I'll try to come up with a minimal example | |||
jnthn | Thanks | 11:16 | |
lizmat | in any case, the initialization of %*CUSTOM_LIB and @*INC is heavily intertwined | ||
so any access to %*CUSTOM_LIB would also need @*INC to be filled | 11:17 | ||
and we don't have a lazy hash filler, do we ? | |||
jnthn | Oh, somebody asked earlier about: | ||
await my $p = start { await $p } | |||
This is actually nothing to do with threading per se, just about setting up a situation where you wait for something to happen on a code-path to making it happen | 11:18 | ||
my $p = Promise.new; await $p; $p.keep(1) # exactly the same, with a single thread | 11:19 | ||
firefish5000 | Perl6 bash-completion v2 pastebin.com/ZGkKgZ3c , now runs on other systems! (now uses @*INC to find projects.json, basic support for rakudobrew) | 11:20 | |
jnthn | And, to be clear: | ||
my $a = False; until $a { }; $a = True # exactly the same, without a Promise :) | |||
lizmat: (lazy hash) no | |||
lizmat | well, this was related to #122709 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122709 | ||
lizmat | lunch& | 11:21 | |
11:21
lastofthe joined
|
|||
jnthn | lizmat: Ah, that involves multiple promises... | 11:22 | |
lizmat: So it's not quite such a simple case :) | |||
But yeah it shouldn't behave as it does. | |||
jnthn leaves it open in a browser tab for later examination | |||
For now, I think it's dinner time :) | |||
11:23
daxim left
11:24
PersonX joined
11:25
PersonX left,
brrt joined
|
|||
firefish5000 inst sure if he should blame pastebin or terminal cp/paste for $'r' on line 12.. | 11:31 | ||
11:31
BizarreCake joined
11:37
mr-foobar joined,
daxim joined
11:47
yeahnoob joined
|
|||
leont | m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { }, :done({ say "Done called" })); await $proc.start | 11:48 | |
camelia | rakudo-moar 4a7429: OUTPUT«Done calledDone called» | ||
11:49
nbrown___ joined,
lastofthe left
11:51
PersonX joined
11:56
pmurias left
|
|||
tadzik | hah | 11:57 | |
11:57
pmurias joined
|
|||
tadzik | m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { say "got something}, :done({ say "Done called" })); await $proc.start | 11:57 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/iPnYJX0xDXUnable to parse expression in double quotes; couldn't find final '"' at /tmp/iPnYJX0xDX:1------> say "Done called" })); await $proc.start⏏<EOL> expectin…» | ||
tadzik | grr | ||
m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { say "got something" }, :done({ say "Done called" })); await $proc.start | |||
camelia | rakudo-moar 4a7429: OUTPUT«got somethingDone calledDone called» | ||
firefish5000 | if anyone is still interested. perl6/panda/rakudo completion github.com/firefish5000/Mod6 . done right with git this time. | 12:00 | |
12:00
elohmrow joined,
nbrown___ left
12:01
PersonX left
|
|||
tadzik | nice :) | 12:03 | |
firefish5000++ | |||
firefish5000 | if anyone else trys it and finds it doesn't work... tell me (I spent too much time on it to be satisfied with just my system) | 12:04 | |
tadzik, thanks :) | |||
12:04
yeahnoob left
|
|||
firefish5000 leaves to take his (very late) nighttime shower | 12:07 | ||
12:07
zakharyas joined
12:15
PersonX joined
12:16
yeahnoob joined
|
|||
lizmat | jnthn: in Proc::Async, the first done is at line 110, the second is from line 95 | 12:17 | |
moritz | firefish5000++ | 12:19 | |
12:19
PersonX left,
nbrown___ joined
12:22
robinsmidsrod left
|
|||
dalek | kudo/nom: 6ff79a9 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm: Naive fix for double "done" |
12:22 | |
lizmat | jnthn: ^^^ as there are no tests, not sure if this changes behaviour or not | 12:23 | |
12:24
robinsmidsrod joined
|
|||
moritz | firefish5000: found the first bug, see github.com/firefish5000/Mod6/issues/1 | 12:28 | |
12:32
Ven joined
12:34
raiph joined
|
|||
leont | lizmat: yeah, that's what I suspect too, but I'm only have understanding the nqp there. I guess the one on line 110 should be left out. | 12:35 | |
lizmat | leont: that's what my naive patch did | 12:36 | |
12:37
jerrycheung joined
12:40
woolfy joined
|
|||
leont | m: my @l = 1, 2, 3; my $t = start { @l.map(* + 10) }; await $t; say $t.result.perl | 12:42 | |
camelia | rakudo-moar 4a7429: OUTPUT«().list» | ||
leont | Why is that an empty list? Why do I have to put square brackets around that map to make it DWIM? | ||
Is that a bug or a feature I don't understand? | 12:43 | ||
moritz | without knowing much about threads, I'd naively say it's a bug | 12:44 | |
12:44
dolmen joined
|
|||
leont too, but half of the time I'm thinking that I'm just not grokking the language | 12:48 | ||
12:49
Sqirrel left
12:54
PersonX joined
|
|||
dalek | kudo/nom: 28f3066 | moritz++ | src/core/Str.pm: remove return value annotation from unbase unbase is used for :8(...) and the like, but it can also return a Failure when the argument is not in a numeric format. The Numeric:D return type then makes it throw an exception, hiding the actual problem |
12:54 | |
kudo/nom: 27a5c13 | moritz++ | src/core/IO.pm: Avoid EVAL in IO.umask For interpreting a string as an octal number, :8(...) should be much faster, and it is not prone to injection attacks. |
|||
12:57
xenoterracide joined
13:00
PersonX left
|
|||
moritz | leont: when I run your code locally, I get "Unhandled exception in code scheduled on thread 140335676462848 Cannot assign to an immutable value in method break at src/gen/m-CORE.setting:18938" | 13:01 | |
13:01
cognome joined
13:03
yeahnoob left
|
|||
JimmyZ | I got '().list' locally | 13:03 | |
vendethiel | moritz: run it again ;D | 13:05 | |
13:07
JimmyZ_ joined
|
|||
JimmyZ_ | r: IO.umask | 13:09 | |
camelia | rakudo-jvm 4a7429: OUTPUT«(timeout)» | ||
( no output ) | |||
FROGGS | m: say IO.umask | ||
camelia | rakudo-moar 4a7429: OUTPUT«2» | ||
13:09
brrt left,
JimmyZ left
13:10
JimmyZ_ is now known as JimmyZ
|
|||
JimmyZ | perl6 -e 'say IO.umask' hangs locally with lastest commit | 13:10 | |
13:11
zakharyas left
|
|||
moritz | JimmyZ: what does perl6 -e 'say qx/umask/.perl' print for you? | 13:12 | |
JimmyZ | perl6 -e 'qx/umask/' hangs ... | ||
m: qx/umask/ | |||
camelia | rakudo-moar 4a7429: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub QX at src/RESTRICTED.setting:9 in block <unit> at /tmp/jXTaU4uU7E:1» | ||
moritz | JimmyZ: then it hung before the latest commit too | 13:13 | |
JimmyZ | lastest libuv issue? spwan bug? | ||
moritz | maybe | 13:14 | |
JimmyZ | I'm with ubuntu 14.04 | ||
moritz | so am I (I think) | ||
leont: oh, Array.map is lazy; maybe the code that generates the list is scheduled on the thread that's already gone when you call .result | 13:16 | ||
if so, await() should be eager, IMHO | |||
or start blocks | |||
or whatever the right abstraction is | |||
leont | That sounds like an explanation | 13:17 | |
JimmyZ | yeah, libuv update-ish bug, I revert updating libuv and rebuild moarvm , qx// works | ||
13:18
PersonX joined
13:20
yeahnoob joined
|
|||
moritz | m: my $x = start { die "42" }; await $x; | 13:22 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===42» | ||
moritz | m: my $x = start { die "42" }; Promise.allof($x); | 13:23 | |
camelia | ( no output ) | ||
moritz | m: my $x = start { die "42" }; Promise.allof($x); say $x.result.^name | ||
13:23
PersonX left
|
|||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===42» | 13:23 | |
dalek | ast: 9f5b221 | moritz++ | S17-promise/start.t: test returning lazy lists from start failing on rakudo-moar, fudged. leont++ |
13:26 | |
13:26
PersonX joined
|
|||
moritz | m: my @outer = 0..3; await my $x = start { eager @outer.map: *+1 }; say $x.result.perl | 13:26 | |
camelia | rakudo-moar 4a7429: OUTPUT«(1, 2, 3, 4).list» | ||
moritz | m: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl | ||
camelia | rakudo-moar 4a7429: OUTPUT«().list» | ||
colomon | j: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl | 13:27 | |
camelia | rakudo-jvm 4a7429: OUTPUT«().list» | ||
moritz | j: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl | 13:28 | |
camelia | rakudo-jvm 4a7429: OUTPUT«().list» | ||
moritz | j: my @outer = 0..3; await my $x = start { eager @outer.map: *+1 }; say $x.result.perl | ||
camelia | rakudo-jvm 4a7429: OUTPUT«(1, 2, 3, 4).list» | ||
moritz submits rakudobug | |||
13:30
PersonX left
13:33
nbrown___ left
|
|||
leont | m: Proc::Async.new(:path("echo")).start.result.perl.say | 13:34 | |
camelia | rakudo-moar 4a7429: OUTPUT«Proc::Status.new(exit => 0, pid => Any, signal => Any)» | ||
leont | I'd guess that pid attribute should be defined, right? Not that it's particularly useful… | 13:35 | |
FROGGS | leont: it should, yes | ||
but it isnt wired up yet | |||
13:37
Ven left
13:39
brrt joined
|
|||
lizmat | can we have a MMD selection on str versus Str ? | 13:45 | |
13:46
PersonX joined
|
|||
FROGGS | m: multi foo (Str) { say 1 }; multi foo (str) { }; foo("abc") | 13:47 | |
camelia | ( no output ) | ||
FROGGS | m: multi foo (Str) { say 1 }; multi foo (str) { say 2 }; foo("abc") | ||
camelia | rakudo-moar 4a7429: OUTPUT«1» | ||
FROGGS | O.o | ||
m: multi foo (Str) { say 1 }; multi foo (str) { say 2 }; foo(nqp::unbox_s("abc")) | |||
camelia | rakudo-moar 4a7429: OUTPUT«2» | ||
FROGGS | lizmat: we have that... except for the case #1 where it does not say anything | 13:48 | |
13:49
PersonX left
13:50
lastofthe joined
|
|||
lizmat | can we actually return an unboxed string from a Perl 6 sub ? | 13:50 | |
13:54
PersonX joined
13:55
PersonX left
|
|||
moritz | lizmat: with 'returns str' maybe? | 13:55 | |
lizmat | m: sub a ( --> str) { "Foo" }; say a #apparently not ? | 13:57 | |
camelia | rakudo-moar 4a7429: OUTPUT«Foo» | ||
FROGGS | lizmat: you can say a str | 13:58 | |
lizmat | that will just autobox it, afaik | ||
FROGGS | m: sub a ( --> str) { "Foo" }; say nqp::isstr(a) | ||
camelia | rakudo-moar 4a7429: OUTPUT«0» | ||
FROGGS | m: sub a ( --> str) { nqp::unbox_s("Foo") }; say nqp::isstr(a) | ||
lizmat | I was thinking on adding a MMD candidate for chomp() | ||
camelia | rakudo-moar 4a7429: OUTPUT«0» | ||
lizmat | that would take / return str rather than Str | ||
FROGGS | IIRC the return value gets hllized | ||
lizmat | yes, feared so as well | ||
FROGGS | that is why I had to use findmethod(...)(...) somewhere in v5 | 13:59 | |
14:01
PersonX joined
14:03
aborazmeh joined
14:04
nbrown___ joined
14:07
lastofthe left
14:09
lastofthe joined
14:11
PersonX left
|
|||
dalek | ast: f59399e | moritz++ | S17-promise/start.t: add ticket number |
14:11 | |
14:14
virtualsue joined
14:15
nbrown___ left
14:16
PersonX joined
|
|||
pmurias | if I relocate the star directory I have to run Configure.PL/make install again? | 14:16 | |
moritz | first clean, then reconfigure | 14:17 | |
14:17
JimmyZ left
14:22
aborazmeh left
|
|||
pmurias | there is a rakudobrew? | 14:24 | |
pmurias found it | 14:25 | ||
does it build star? | |||
leont | No it builds from git | 14:28 | |
14:28
jerrycheung left
|
|||
FROGGS | but is also has a build-panda command, which is the most important bit of star :o) | 14:30 | |
14:31
pmurias left
|
|||
lizmat | if we're ever want to get closer to p5 wrt reading text files, we will need an nqp::readlinefhchomp($!PIO) | 14:34 | |
doing this in P6 space is just a waste | |||
wheres nqp could just make the returned string a little shorter | |||
instead of having to copy | |||
FROGGS | lizmat: we can pass down a flag to chomp, like we pass a flag to sayfh to append a newline | 14:35 | |
lizmat | we have sayfh ? | ||
FROGGS | m: nqp::sayfh | 14:36 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===Arg count 0 doesn't equal required operand count 3 for op 'say_fhs'» | ||
FROGGS | yes :o) | ||
leont agrees with lizmat, this is something you kind of need to do low-level | 14:37 | ||
lizmat | the current situation with IO::Handle.get / getc is that for *each* call | ||
it checks whether there's a handle | |||
it checks whether it is a directory | |||
and it checks whether we're at end of file *before* doing anything at all | 14:38 | ||
14:38
pmurias joined
|
|||
lizmat | guess what IO::Handle.lines is using... | 14:38 | |
FROGGS | .get | ||
btw, `perl6 -n -e '1' bigfile.txt` spends 35% in ListIter.reify | 14:39 | ||
so at least in this case it isnt just .lines or .get to blame | |||
tadzik | pmurias: you can install Task::Star after it's there | 14:41 | |
14:42
PersonX left
|
|||
dalek | kudo/nom: 72c02db | (Elizabeth Mattijsen)++ | src/core/Str.pm: Make Str.chomp a bit smarter 1. don't change anything if there's nothing to chomp doing 1M chomps on a short string: 1.534 -> 1.138 2. reduce number of checks and characters checked 1M x Foo\n: 1.749 -> 1.717 1M x Foo\r\n: 1.842 -> 1.721 |
14:44 | |
14:47
PersonX joined
|
|||
lizmat | m: gather { last } # is this kosher ??? | 14:47 | |
camelia | rakudo-moar 4a7429: OUTPUT«(timeout)» | 14:48 | |
FROGGS | no | ||
vendethiel | broke it | 14:49 | |
lizmat | m: gather { .take for ^10; last } # not kosher either | ||
vendethiel | haha | ||
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | ||
14:49
nbrown___ joined
|
|||
dalek | kudo/nom: 1bebd3d | (Tobias Leich)++ | src/Perl6/Grammar.nqp: fix Label.gist for short source codes |
14:50 | |
pmurias | nine: ping | ||
14:50
PersonX left
|
|||
lizmat | FROGGS: I *should* be able to last out of a gather { } ??? | 14:51 | |
14:51
kst left
14:53
kst joined,
glumm joined
14:54
nbrown___ left,
PersonX joined
|
|||
FROGGS | lizmat: is a gather a loop? | 14:55 | |
masak | m: for 1, 2 { .say; my @a = gather { last; take 42 } }; say "alive" | ||
camelia | rakudo-moar 4a7429: OUTPUT«(timeout)1» | 14:56 | |
masak | o.O | ||
p6: for 1, 2 { .say; my @a = gather { last; take 42 } }; say "alive" | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/tmpfile line 1:------> for 1, 2 { .say; my ⏏@a = gather { last; take 42 } }; say "al1alive» | ||
..rakudo-{jvm,moar} 4a7429: OUTPUT«(timeout)1» | |||
..rakudo-parrot 4a7429: OUTPUT«1Cannot resume dead coroutine. in method reify at gen/parrot/CORE.setting:8094 in method reify at gen/parrot/CORE.setting:7804 in method reify at gen/parrot/CORE.setting:7804 in method gimme at gen/parrot/CORE.setting:8273 in metho…» | |||
lizmat | I guess gather is insufficiently tested :-( | 14:57 | |
masak | p6: for 1, 2 { .say; my @a = gather { last; take 42 }; 1 }; say "alive" | ||
gather is... weird. | |||
camelia | rakudo-{jvm,moar} 4a7429: OUTPUT«(timeout)1» | ||
..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/tmpfile line 1:------> for 1, 2 { .say; my ⏏@a = gather { last; take 42 }; 1 }; say 1alive» | |||
..rakudo-parrot 4a7429: OUTPUT«1Cannot resume dead coroutine. in method reify at gen/parrot/CORE.setting:8094 in method reify at gen/parrot/CORE.setting:7804 in method reify at gen/parrot/CORE.setting:7804 in method gimme at gen/parrot/CORE.setting:8273 in metho…» | |||
masak | I don't use it a lot. I wouldn't go so far as saying I mistrust it, but... maybe I do a little. | ||
also, Parrot probably should avoid using the word "dead" in its error messages :P | 14:58 | ||
fwiw, I see nothing wrong with the code I wrote, and I'm sorely tempted to submit a rakudobug on it. | 14:59 | ||
actually, my main goal was to provide a "no" answer to FROGGS++'s question. | |||
a gather is not a loop. in the "does it bind next/redo/last" sense. had my code worked, it'd've shown that. | 15:00 | ||
15:07
xinming_ is now known as xinming
|
|||
lizmat takes this as not being able to last out of a gather {} | 15:08 | ||
15:13
rindolf joined
|
|||
rindolf | Hi all. | 15:13 | |
What's up? | |||
FROGGS | rindolf: a lot actually :o) | 15:14 | |
rindolf | Can I be honest and share my thoughts about Perl 6? | ||
FROGGS: hi. | |||
FROGGS: what? | |||
FROGGS | libuv update troubles that seem to vanish, async hacking and much much more :o) | ||
rindolf | FROGGS: ah. | ||
FROGGS: don't know what those are. | |||
FROGGS | rindolf: of course you can share your thoughts | ||
rindolf | My thought is that Perl 6 as it currently stands is ran too perfectionistically and will never be ready. | 15:15 | |
tadzik | you used the R word | ||
;) | |||
pmurias | does perl6-m support automatic compilation of modules? | 15:16 | |
moritz | we're happy to prove you wrong, eventually | ||
tadzik | pmurias: nope | ||
FROGGS | pmurias: just must invoke it explicitly | ||
moritz | pmurias: it compiles modules that aren't compiled yet, but it doesn't save the bytecode | ||
FROGGS | rindolf: I don't think so... we have three missing features on our list before we call it ready, that does not sound perfectionistic | 15:17 | |
rindolf | I realise that the Perl 6 effort has proved of a lot of inspiration to perl 5, Perl 5, CPAN, and other languages, but is utility is over. I suggest rethinking the strategy. And I also suggest that Perl 6 people open up to more inspiration than just programming - Sci Fi/Fantasy/literature/etc. , television/cinema, psychology, philosophy, history, etc. - see www.shlomifish.org/humour/fortunes/...ruth-is-go | 15:18 | |
ds-truh | |||
pmurias | is there a list of those missing things? | ||
moritz | pmurias: mostly docs/ROADMAP in rakudo, and a bit in the feature matrix | 15:19 | |
tadzik | what happened to our brainstorm with "list of things before 6.0" recetly? | ||
FROGGS | pmurias: lizmat++ said it at the YAPC::EU.... it is about NFG, shared array/hashes, and perhaps the list refactor, maybe I forgot something | ||
tadzik | yes, that | ||
(FROGGS's memory)++ | 15:20 | ||
FROGGS | rindolf: I don't share that opinion, I think the current goal is reachable, and reading more scifi books won't help us there | ||
masak | I have put together a list, with the goal of turning it into a status page on perl6.org | ||
dunno if I am ready to share it just yet. | 15:21 | ||
FROGGS | masak: share early share often :o) | ||
masak | FROGGS: ...I'll have another look at it, and then consider it. | ||
nwc10 | FROGGS: I was suspicious that it might be four - DESTROY isn't on the list | ||
FROGGS | nwc10: because DESTROY isnt that important (to me) | 15:22 | |
japhb | lizmat: I love that 72c02dbd8a13f1620bcec3189f84f2df39eceff5 has details of the performance numbers from your improvement. Care to make that into a perl6-bench microbenchmark? :-) | ||
masak | rindolf: "its utility is over" -- this tells me you're not a Perl 6 user. you should try the language -- it's pretty great! | ||
lizmat | japhb: not right now, but soon | 15:23 | |
nwc10 | FROGGS: fair enough, but it is to nine and the Perl 5 stuff | ||
lizmat | the while IO::* need a real performance haul over... | ||
japhb | lizmat: I'll buy that. :-) | ||
yeah | |||
FROGGS | btw, I tried C# likee two weeks ago... and no, I stick to Perl 6 :o) - it is way nicer to write | ||
15:23
dolmen left
|
|||
rindolf | FROGGS: how partial are the implementations of Perl 6 so far? | 15:23 | |
masak: I tried it several times in the past - it was slow and buggy and incomplete. | 15:24 | ||
FROGGS | rindolf: the only implementation that matters is rakudo and it is not partial, it is able to clarify bits of the spec, or sometimes is the reason to extend the spec... | ||
masak | rindolf: it was. speed has much improved, though. there are still bugs, but fewer and fewer. as to incomplete -- Perl 5 is "incomplete". | 15:25 | |
FROGGS | bbi1h | ||
masak | rindolf: also, you may appreciate my view that "I tried it several times in the past" is not a goodenuf answer if you want to argue about whether Perl 6 is relevant *today*. | 15:26 | |
rindolf | masak: well, I tried it across many years. | 15:27 | |
masak | those years had smaller numbers than 2014, though. | ||
rindolf | masak: and many times. | ||
masak | right. | ||
I get that. | |||
you're very patient. | |||
have you tried it *recently*? | |||
rindolf | masak: I tried it about a year ago. | 15:28 | |
masak | then... you might be in for a pleasant surprise. | ||
Rakudo on Moar got a JIT since then, and a number of other performance improvements. | |||
and stability (which was decent already a year ago) has improved further. | 15:29 | ||
nwc10 | rakudo startup time is now comparable with Moose startup time | ||
masak | so I would strongly suggest that you update your view on Perl 6's utility on a *recent* Rakudo. | ||
nwc10 | rakudo concurrency makes ithreads look like, well, the ugly hack that it always was | 15:30 | |
15:31
elohmrow left
|
|||
masak | rindolf: basically, back in 2012 I wouldn't have been able to come back with anything stronger than "just you wait; Perl 6 will get there". last year I felt the pivot happening. this year, I can be assertive: Perl 6 is getting an edge or two over Perl 5. | 15:32 | |
well, besides the feature-related ones it's had for years. | |||
woolfy | masak++ | 15:33 | |
rindolf | BTW, I can recommend the recent en.wikipedia.org/wiki/Teenage_Muta...14_film%29 - it's a great film on so many levels, here's my review - www.reddit.com/r/TMNT/comments/2d9f..._2/ck2yiti | ||
15:34
zakharyas joined,
BizarreCake left
|
|||
itz | what do people recommend for parsing XML? | 15:34 | |
15:35
vendethiel left
|
|||
lizmat | FROGGS was working on a libxml NativeCall interface? | 15:35 | |
masak | rindolf: oh, here I was hoping you'd stay on topic. :/ I felt we were getting somewhere. | 15:36 | |
itz | I liked the look of XML::Parser::Tiny but it doesn't seem to work anymore :\ | ||
masak | rindolf: if you don't mind me saying so, your mentioning your (probably excellent) TMNT review just like that, while we are talking, feels slightly disrespectful and out of tune. | ||
itz | oh it works in the last * :) | 15:37 | |
rindolf | masak: well, back on topic - it seems like Perl 6 is too much like "The Boy Who Cried Wolf" for me. Too much promise and keep being disappointed times and times again. | ||
masak: anyway, I want to leave to the dogs+dog owners assembly-in-the-park soon | 15:38 | ||
masak | rindolf: agreed -- where Perl in general sucks at marketing, Perl 6 double-sucks at marketing. | ||
rindolf: we fail so hard that we disappoint many of the people in the Perl community! | |||
rindolf: (and for good reason. some may have expected 1 year, or 2, or 5, or maybe even 10. but 14 years is... a lot. and most of them don't have the overview of the current status we do.) | 15:39 | ||
tadzik | when Rakudo Star was released, it was said "it's not a final, feature-complete thing" | 15:40 | |
15:40
denis_boyun joined
|
|||
nine | pmurias: pong | 15:40 | |
tadzik | people want something that'll have the Seal of Approval saying "this is it, this is what you've been waiting for" | ||
masak | rindolf: tell you what, though. last year I went to YAPC::EU with a sinking feeling that the whole Perl 7 thing would blow up and fracture the whole community into irreparable shards. | ||
tadzik | if it doesn't have the entire spec in it, no problem | ||
dalek | kudo/nom: 7b2852d | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Make IO.lines faster Reading /usr/share/dict/words from 5.770s -> 3.941s (32% improvement) |
||
tadzik | as long as they can do their stuff | ||
lizmat++! | |||
flussence | .oO( I'm still waiting for CSS 3 ) |
||
tadzik | I'm still waiting for C99 | 15:41 | |
masak | rindolf: what happened instead was that the p7 people turned out to be a disorganized scattering of individuals who mostly just wanted someone to talk to. | ||
moritz is still waiting for CSS 6 | |||
flussence | :) | ||
15:42
vendethiel joined
|
|||
masak | rindolf: *this* YAPC::EU, people came up to us and said "you know, I used to be against Perl 6, but this year I am starting to pay attention" | 15:42 | |
vendethiel | also, we saw people coming here, and blog posts, and ... :-) | ||
glumm | masak: the last few days I used perl6 for real for the first time. And I like it. I miss the excellent documentation of perl5, and there are some bugs (or I just don't understand enough, hard to tell because of the missing docs), but I can live with that | 15:45 | |
masak | glumm++ # you'll get the money we agreed on later | ||
moritz | glumm: please take notes one what docs you are missing in particular | 15:46 | |
masak | oh, and what moritz said. | ||
dangit, I should be informative/useful first, and try to be funny second :P | |||
15:47
woolfy1 joined,
woolfy left,
woolfy1 left
|
|||
vendethiel | masak: definitely keep being funny first :P | 15:48 | |
the masak/moritz duo works. | |||
vendethiel will get back to his learnXinY after some scala | |||
moritz | m: say nqp::chomp("foo\n") | 15:49 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===No registered operation handler for 'chomp'» | 15:50 | |
15:50
nbrown___ joined
|
|||
flussence | How hard is it to add content to doc.perl6.org? I find myself falling back to the specs a lot when trying to get stuff done, so if it's possible, I may as well take useful notes while I'm there. | 15:50 | |
moritz | flussence: you just have to write pod6 to add content :-) | 15:51 | |
nine | Trying out Perl 6 for the first that first time had the feeling of Star Trek The Motion Picture. It's like when they first walk through the new Enterprise with people still busily working everywhere to finish it up. Yes, when they first took her for a spin, they encountered some limitations and problems but boy did we get an impression of what this ship was able to do. Rough edges nonwithstanding certainly worthy of being the new flagship! | ||
moritz | flussence: it's all in the perl6/doc repo; you should have a commit bit already | ||
flussence | oh, I'll take a look tonight then :) | ||
[Coke] | I am not a fan of removing return type annotations so we can return Failure instead of the type. | 15:52 | |
15:52
Arc joined
|
|||
flussence | +1 | 15:52 | |
moritz | [Coke]: it would be much nicer to be able to say returns Numeric:D | Failure | ||
15:52
Arc is now known as Guest60624
|
|||
vendethiel | moritz: "well volunteered"? | 15:52 | |
that's specced :P | |||
moritz | it is? | ||
vendethiel | | and & on types are specced, yes. | ||
They won't make it into 6.0 at least (pretty certain of that) | 15:53 | ||
moritz: abusing types is something I like doing, so I payed close attention WRT that while reading the spec. | |||
vendethiel is still thinking on how to encode church's number in P6 types | |||
15:54
Guest60624 left
|
|||
masak | ooh | 15:54 | |
15:54
nbrown___ left
|
|||
moritz | vendethiel: ah, my mental model of Perl 6 excludes anything that is marked as "after 6.0" | 15:55 | |
15:57
dolmen joined,
guru joined
|
|||
vendethiel | masak: wanna try :P ? | 15:57 | |
15:57
guru is now known as Guest97763
|
|||
vendethiel | moritz: right. at least, you can do `subset Foo where Int|Str`, but that's for different reasons (namely any() and smart matching) | 15:57 | |
15:58
Guest97763 is now known as ajr_
|
|||
vendethiel | also, probably won't get you compile-time errors | 15:58 | |
moritz | and won't help the optimizer at all | ||
vendethiel | ;-) | ||
tadzik | nine: that's a nice comparison :) | ||
15:58
brrt left
|
|||
vendethiel | moritz: I have this little dream of mine of being able to constant-fold or compile time-check some `where`s, but I'm not sure that's worth it. | 15:58 | |
Provability is undecidable in general | |||
moritz | profiling IO.lines shows that about 50% of the exclusive time is spent in method reify | 15:59 | |
vendethiel | m: role Foo[Int $n] { our const $b = $n; }; say $Foo[5]::n; | 16:00 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===Type 'const' is not declaredat /tmp/uaFZBFDHrl:1------> role Foo[Int $n] { our const⏏ $b = $n; }; say $Foo[5]::n;Malformed ourat /tmp/uaFZBFDHrl:1------> role Foo[Int $n] { our …» | ||
moritz | 'constant' | ||
vendethiel | m: role Foo[Int $n] { our constant $b = $n; }; say $Foo[5]::n; | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/r8bVbmw_70Variable '$Foo' is not declaredat /tmp/r8bVbmw_70:1------> ] { our constant $b = $n; }; say $Foo[5]⏏::n; expecting any of: postfix s…» | ||
vendethiel | m: role Foo[Int $n] { our constant $b = $n; }; say Foo[5]::$n; | 16:01 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/1GSEyOQwVxTwo terms in a rowat /tmp/1GSEyOQwVx:1------> n] { our constant $b = $n; }; say Foo[5]⏏::$n; expecting any of: postfix infix stopper…» | ||
vendethiel | eh. | ||
jnthn | lizmat: readlinefhchomp is something I've been pondering; especially since we simply can do it just by dropping those pieces off the end before doing bytes => string. | ||
vendethiel | moritz: not sure what's the syntax for that... | ||
.oO( oh boi, we have template constexprs already ) |
|||
lizmat | jnthn: yes, indeed :-) | ||
moritz | vendethiel: I don't think there is one | ||
vendethiel | m: role Foo[Int $n] { our sub b { $n } }; say Foo[5]::n; | 16:02 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/BlCfVHllbETwo terms in a rowat /tmp/BlCfVHllbE:1------> Int $n] { our sub b { $n } }; say Foo[5]⏏::n; expecting any of: postfix infix stopper…» | ||
dalek | kudo/nom: ecebe3c | moritz++ | src/core/IO/Handle.pm: speed up IO.lines another 4% by caching $.chomp into a lexical variable |
||
vendethiel | m: role Foo[Int $n] { our sub b { $n } }; say (Foo[5])::n; # :( | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/H89KMMqcXrTwo terms in a rowat /tmp/H89KMMqcXr:1------> t $n] { our sub b { $n } }; say (Foo[5])⏏::n; # :( expecting any of: postfix infix sto…» | ||
moritz | vendethiel: I think you you must use a method | ||
vendethiel | moritz: then I need an instance | ||
lizmat hopes that rindolf is finally looking at the *current* state of things | |||
moritz: your change is going to be incompatible with another opt I'm doing right now | 16:03 | ||
masak | as someone who is into Sci-Fi, he should have a vested interest in staying current with the version closest to the future :) | 16:04 | |
moritz | lizmat: :( | ||
lizmat | so it will disappear | ||
moritz | lizmat: :-) | ||
lizmat | the result will be better :-) | ||
vendethiel | moritz: actually, I don't think I can encode type-level SKI into P6's types | ||
because I'd need to have in-role templated type aliases | |||
moritz | lizmat: if that brings us more than the 4%, go ahead | ||
vendethiel | template<class T> using ...;, or type T[F] = ... | 16:05 | |
masak | vendethiel: and ::T is not enough? | ||
vendethiel | masak: where? | ||
m: class F[::T] {}; # :( | |||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/dkYJogXBsyUnable to parse class definitionat /tmp/dkYJogXBsy:1------> class F⏏[::T] {}; # :( expecting any of: statement list prefix or term…» | ||
moritz | role | 16:06 | |
vendethiel | I know, but it's why I'm sad | ||
why only roles? | |||
lizmat | moritz: again 11% | ||
masak | vendethiel: that has occurred to me a couple of times recently too. | ||
moritz | lizmat++ | ||
masak | vendethiel: but you can essentially ignore classes and just use roles. that should work. | ||
vendethiel | masak: yeah; 'guess so :) | 16:07 | |
16:07
Ven joined
|
|||
jnthn | lizmat: If you want to remove another allocation per line: $!ins could be a native int. | 16:07 | |
masak | m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; say R["OH"]; say R["OH", "HAI"] | 16:08 | |
camelia | rakudo-moar 4a7429: OUTPUT«(R[Str])(R[Str,Str])» | ||
masak | m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; say R["OH"].foo; say R["OH", "HAI"].foo | ||
camelia | rakudo-moar 4a7429: OUTPUT«oneTruetwoTrue» | ||
masak | m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; R["OH"].foo; R["OH", "HAI"].foo | ||
camelia | rakudo-moar 4a7429: OUTPUT«onetwo» | ||
lizmat | jnthn: tried that, it breaks building | ||
will look at that later | 16:09 | ||
Ven | m: role Foo[::T] {}; subset Bar of Foo[Int]; | ||
camelia | ( no output ) | ||
Ven | hmm mmh | ||
m: role Foo; role Bar[Foo | Str] {}; # probably will blow up | 16:10 | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/fRRfGYNz_hUnable to parse expression in generic role; couldn't find final ']' at /tmp/fRRfGYNz_h:1------> role Foo; role Bar[Foo | ⏏Str] {}; # probably will blow up …» | ||
jnthn | lizmat: OK. Or I can take a peek, but reviewing/working on timotimo++'s gen2 GC tuning patch first. | ||
TimToady | you can't use | or & in signatures, it already means something else | ||
Ven | TimToady: what does it mean, then? | 16:11 | |
TimToady | |c is a capture, &foo is a routine | ||
and we don't enforce ttiar inside sigs | |||
Ven | ooh, actually, I just encoded them :D. | 16:12 | |
well, I *kinda* cheated. | |||
TimToady | so there aren't really operators in signatures | ||
Ven | masak, moritz: gist.github.com/Nami-Doc/5c4c622e2613b96bfad7 | ||
masak | vendethiel: you can probably use `where` clauses for what you want. | 16:13 | |
masak looks | |||
Ven | this correctly prints "3" | ||
dalek | kudo/nom: 4d55aa5 | moritz++ | src/core/ListIter.pm: save two containers in ListIter.reify |
||
kudo/nom: aa7c060 | moritz++ | src/core/MapIter.pm: Save a few more allocations in MapIter.reify |
|||
moritz | oh dammit, I didn't want to push the last commit | ||
I haven't tested it yet | |||
masak | Ven: I think you can do without .new there | ||
moritz | be doubly impressed if it works anyway | ||
16:13
brrt joined
|
|||
TimToady | and .plan is known to be broken on subscripting | 16:14 | |
masak | Ven: that's a cute use of subset that I think you're the first one to do. | ||
Ven | am I ? Yay :). | ||
masak | Ven: did you try `constant`, though? | ||
should work, too. | |||
TimToady | m: my @a = 1,2,3; @a.plan: 4..100; say @a | ||
Ven | masak: I did, earlier in the backlog. Did not find the syntax to access it | ||
camelia | rakudo-moar 4a7429: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…» | ||
TimToady | that part works | ||
16:14
zakharyas left
|
|||
Ven | masak: indeed - works without the new!! | 16:14 | |
TimToady | but it hangs in the while loop in reify if you try to subscript | 16:15 | |
moritz | sorry, my last commit broke setting compilations | ||
s/s$// | |||
Ven | if I can get constant working, I'd be happy to say I'm the first to demonstrate p6 types are (not really) turing-complete | ||
moritz | I'm testing a fix now; if it doesn't work, I'll revert | ||
m: say Int.Int | |||
camelia | rakudo-moar 4a7429: OUTPUT«(Int)» | ||
Ven | Oooh, I got a segfault! | 16:16 | |
dalek | kudo/nom: 815b034 | moritz++ | src/core/MapIter.pm: Revert "Save a few more allocations in MapIter.reify" This reverts commit aa7c060894dafbbf266df31742db02284e019122. |
||
Ven | gist.github.com/Nami-Doc/f0232a94cec52f0ec14c <- this segfaults here :) | ||
and this `REPR:null`s: gist.github.com/Nami-Doc/63603a232733db06df8d | 16:17 | ||
Free bugs for everybody \o/ | |||
masak | there's probably something submittable in there, but it doesn't look golf'd. | 16:18 | |
segfault reproduced. golfing. | |||
Ven | ah, thanks :) | ||
Ven proceeds with equality now ... | |||
dalek | kudo/nom: c53772d | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Optimize IO.lines a bit more Reading /usr/share/dict/words: 3.941s -> 3.468s (12%) |
16:19 | |
Ven | well, I won't prove commutivity or w/e tho :P | 16:21 | |
masak | m: role S[::N] { N::x } | 16:22 | |
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | ||
masak submits rakudobug | |||
16:22
anaeem1 joined,
dolmen left
|
|||
masak | m: sub foo(::N) { N::x } | 16:22 | |
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | 16:23 | |
Ven | masak++ # golfing while I'm having fun | ||
16:23
timotimo left
|
|||
masak | m: my (::N); N::x | 16:23 | |
moritz could imagine that masak++ is also having fun | |||
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | ||
masak | definitely having fun :) | ||
Ven | well then, that's nice :d. | ||
moritz | m: (my ::N)::x | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===Type 'N' is not declaredat /tmp/kBVLYH4p7d:1------> (my ::N⏏)::xMalformed myat /tmp/kBVLYH4p7d:1------> (my ::N⏏)::x expecting any of: scoped declarat…» | ||
moritz | m: (my (::N))::x | 16:24 | |
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/b3ASLhGiCtTwo terms in a rowat /tmp/b3ASLhGiCt:1------> (my (::N))⏏::x expecting any of: postfix infix stopper infix or meta-infix…» | ||
lizmat | jnthn: the reason I could not make $!ins a native int: | ||
16:24
kaare__ joined
|
|||
lizmat | m: class A { has int $.a = 42 }; say A.new | 16:24 | |
camelia | rakudo-moar 4a7429: OUTPUT«Cannot modify an immutable int in block at src/gen/m-CORE.setting:957 in method BUILDALL at src/gen/m-CORE.setting:912 in method bless at src/gen/m-CORE.setting:901 in method new at src/gen/m-CORE.setting:885 in block <unit> at /tmp/Hl…» | ||
16:24
anaeem1 left
|
|||
jnthn | lizmat: Why do we need to assign to it there? | 16:24 | |
Doesin't it start at zero? :) | 16:25 | ||
lizmat | ah, good point | ||
Ven | well, p6 is powerful, right. | ||
FROGGS | itz / lizmat: aye, sergot and me are working on a XML::LibXML port, and after that on a. XML::Compile port | ||
Ven | encoding GADTs with roles is fun :DDDD | ||
btyler | hi all. two NativeCall questions: 1) should it work with static libs? it seems it only search for the shared lib object name for the platform (.so or .dylib on osx), and when I specified "libmarkdown.a" it still could not locate. lib is in the path, compiling as a shared lib got NativeCall to find it | ||
moritz | btyler: I don't see how it could work | 16:27 | |
btyler: after a static library has to be compiled into an executable | |||
btyler: whereas nativecall loads library dynamically (it's not a C linker) | |||
btyler | 2) libmarkdown performs most of its work on **char buffers that get passed to functions. life would be simple and lovely if I could pass it a reference to a p6 string, but I haven't been able to make that happen, so I tried giving it a reference to a CArray[int8], but the lib can't seem to fill it with anything (still ends up with null values) | ||
16:28
kaare_ left
|
|||
btyler | moritz: ok, cool, makes sense. my C is pretty much limited to reading source, so I didn't know if that was a reasonable expectation or not | 16:28 | |
masak | Ven: I cannot reproduce your `REPR:Null` error from gist.github.com/Nami-Doc/63603a232733db06df8d , though: I get "No such method 'count' for invocant of type 'N'" | ||
Ven | masak: do you? maybe I'm a little bit outdated then | ||
moritz | btyler: as a workaround, a CArray[Str] gives you a pointer to a string | ||
Ven | m: role Zero { constant count = 0; }; role Suc[::N] { constant count = 1 + N.count }; | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===No such method 'count' for invocant of type 'N'» | ||
geekosaur | btyler, the only architecture that can reasonably load static libraries that way is PowerPC | 16:29 | |
Ven | m: role Zero { constant count = 0; }; role Suc[::N] { constant count = 1 + N.count }; say "alive" # wtf? | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!===No such method 'count' for invocant of type 'N'» | ||
Ven | ooh. | ||
m: constant foo = ...; 1 | |||
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | ||
Ven | :D | ||
masak submits rakudobug | 16:30 | ||
Ven | this seems to be my "lucky day". But not quite the implementor's... | ||
btyler | moritz, geekosaur: excellent, now I know :) I tried CArray[Str] but the array was still full of null values (well, the (Str) type object) at the end of things. I'll gist my code and then start throwing printfs into discount to see where things are choking | ||
masak | Ven: bug discoveries/reports are good for everyone, including the implementors. | 16:31 | |
Ven | well, I'll go back to a method in the meantime | 16:32 | |
jnthn | The pattern here seems to be "BEGIN time thing throws"... | ||
Ven | indeed | 16:33 | |
16:33
telex left
|
|||
dalek | kudo/nom: ff31e66 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: Save some more allocations with IO.lines Reading "/usr/share/dict/words": 3.468 -> 3.344 (3%) |
16:33 | |
Ven | m: role F { ... }; role A does F {}; role B[::T] does F {}; | 16:34 | |
camelia | rakudo-moar 4a7429: OUTPUT«Unhandled exception: Could not instantiate role 'B':Not enough positional parameters passed; got 1 but expected 2 at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295) from src/gen/m-Metamode…» | ||
lizmat | jnthn++ for encouragement in that area | ||
Ven | m: role F { ... }; role A does F {}; role B[::T] {}; | ||
camelia | rakudo-moar 4a7429: OUTPUT«Unhandled exception: Could not instantiate role 'B':Not enough positional parameters passed; got 1 but expected 2 at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295) from src/gen/m-Metamode…» | ||
16:34
telex joined
|
|||
Ven | m: role F { ... }; role A does F {}; role B[::T] does F {}; say "alive"; | 16:34 | |
camelia | rakudo-moar 4a7429: OUTPUT«alive» | ||
Ven | it ... works in the repl, but crashes in my file. duh | 16:35 | |
masak | Ven: sometimes I feel I should write an "automated feature combination bug suggestion generator", that spits out "what happens if you use <X> and <Y> together in Rakudo". sometimes I find I would've found some bug sooner if I had had one and it'd given me inspiration. today <X> is "type capture parameters" and <Y> is "package namespace lookup". | 16:36 | |
Ven | indeed | ||
okay, now I'm really puzzled. | |||
why does it crashes in my fail but not in my repl | |||
16:37
yeahnoob left
|
|||
Ven | masak: gist.github.com/Nami-Doc/e781f62e46e3a530c8ab do you see any reason for the REPL to work | 16:38 | |
and for the script file to crash here? | |||
oh-uh. Adding a `1` at the end of the file ... fixes it?? | 16:39 | ||
dalek | kudo/nom: a436ebe | moritz++ | src/core/MapIter.pm: Avoid a few more containers in MapIter.reify |
||
firefish5000 | moritz: Thanks for the bug report! padre-completion fixed now. | 16:41 | |
moritz | firefish5000: s/padre/panda/ I hope :-) | ||
firefish5000 | ...yes, padre is not supported... | 16:42 | |
Ven | masak: I abandoned the idea of using a super-role to encode GADTs. just doesn't work : | ||
=( | |||
firefish5000 needs some coffee | |||
leont | How do I deal with «Unhandled exception in code scheduled on thread 140243200333568\nNo exception handler located for warn»? | 16:45 | |
Ven encoded + | 16:46 | ||
TimToady | leont: warn the developers! :) | ||
moritz | firefish5000: now I don't get any suggestions at all anymore when typing 'panda install Math::' and then hitting tab :( | ||
TimToady | if you have control of the warning, maybe try 'note' instead | 16:47 | |
if you don't, a CONTROL block might or might not be a workaround | |||
I think more thought has gone into threading 'die' than into 'warn' though | |||
it would be nice if such meta handlers would do a better job of printing out the subsidiary warning/failure | 16:48 | ||
firefish5000 | moritz, ensure you re-sourced it. It's working for me still. | 16:49 | |
Ven | masak: I haz the ADD nao | ||
moritz | firefish5000: I did | ||
16:49
Salai left
|
|||
Ven | doing the TIMES ... | 16:49 | |
firefish5000 | ... what shelll are you on? (prehaps I borked other shells) | 16:50 | |
16:50
timotimo joined
|
|||
moritz | firefish5000: after 'panda install '<tab> it suggests --nodeps and --notests, but no module names | 16:50 | |
firefish5000: bash 4.3 | |||
Ven | TimToady: thanks for type capture and type capture constraining :D. | ||
16:51
nbrown___ joined
|
|||
Ven | masak: Okay, TIMES work. | 16:51 | |
TimToady | Ven: If a language can't easily be abused, it can't easily be used. | 16:52 | |
16:52
M_o_C joined
|
|||
Ven | TimToady: and I like you for these words ;-) | 16:52 | |
firefish5000 | moritz: the old version should have had that problem.. could you try the Development branch prehaps (should be the same as master though). | 16:53 | |
dalek | kudo-star-daily: 753c9b6 | coke++ | log/ (14 files): today (automated commit) |
||
rl6-roast-data: 94227cf | coke++ | / (6 files): today (automated commit) |
|||
Ven | masak: gist.github.com/Nami-Doc/5c4c622e2613b96bfad7 | ||
masak looks | |||
Ven | Note that I'm cheating because I'm not (YET) providing operations on the type-level. | ||
I'm afraid I can't do that right now, since there's no way to access a role's type parameter (AFAIK?) | |||
moritz | you can make it accessible | 16:54 | |
Ven | m: role F[::T] {}; say F[Int].T; | ||
camelia | rakudo-moar 4a7429: OUTPUT«No such method 'T' for invocant of type 'F[Int]' in block <unit> at /tmp/iRpI01zqNQ:1» | ||
Ven | moritz: can I :)? | ||
moritz | role Foo[::T] { method of() { T } } | ||
Ven | true that :p | ||
moritz | m: role Foo[::T] { method of() { T } ; say Foo[42].of | ||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tdiaiev0LSUnable to parse expression in block; couldn't find final '}' at /tmp/tdiaiev0LS:1------> :T] { method of() { T } ; say Foo[42].of⏏<EOL> expecting any of…» | ||
lizmat | SPW shutting down & | ||
16:54
lizmat left
|
|||
moritz | m: role Foo[::T] { method of() { T } } ; say Foo[42].of | 16:54 | |
camelia | rakudo-moar 4a7429: OUTPUT«(Int)» | ||
moritz | m: role Foo[$x] { method of() { $x } } ; say Foo[42].of | 16:55 | |
camelia | rakudo-moar 4a7429: OUTPUT«42» | ||
[Coke] | massive failures on the JVM today. | ||
rakudo.moar down to a single failure. | |||
parrot still failing the same tests since TimToady's divby0 change. | |||
Ven | can I make a role ... invocable ? ie Role[F, T]() | ||
16:55
nbrown___ left
|
|||
masak | Ven: I was surprised at lines 33 and 45. aren't you supposed to define those in terms of Suc and Add, respectively? | 16:56 | |
moritz | Ven: try giving it a method postcircumfix:<( )>(|c) { } | ||
TimToady | [Coke]: but there's an #if parrot in there that restores the fail on parrot, so I don't see how that can be the cause | ||
firefish5000 | moritz, just opened a new shell, ran git clone, sourced, and it workd. could you run _panda_modules and see if it outputes anything | 16:57 | |
moritz | firefish5000: it doesn't | ||
[Coke] | TimToady: I agree that should have resolved the issue. | 16:59 | |
16:59
glumm left
|
|||
[Coke] | well, avoided the issue. | 16:59 | |
firefish5000 | just to be sure, you havn't upgraded rakudo/moarvm etc which would change perl6's inst dir to a new and clean one have you? | ||
moritz | firefish5000: I upgraded rakudo, and rebootstrapped panda. Install dir is stil the same as before. | 17:00 | |
[Coke] | TimToady: I'll see if I can dig deeper once I unbust jvm. | ||
moritz | firefish5000: and yes, I pulled and started a fresh shell | ||
firefish5000 | moritz, could you give me the output of perl6 -e 'for @*INC { say $_.Str if $_.^name === "CompUnitRepo::Local::Installation" ;}', (feel free to change your homedir) | 17:01 | |
17:02
SamuraiJack_ joined
|
|||
firefish5000 | I havn't used rakudobrew so I havn't tested it yet. | 17:02 | |
17:04
tinyblak joined
|
|||
timotimo | i'm glad to see all these performance tunings in the backlog | 17:05 | |
Ven | masak: yes, indeed! | 17:06 | |
masak: that's why it's still called "cheating" | |||
timotimo | The List Refactor might end up blowing us all away with the improvement it brings to performance everywhere ... | ||
Ven | masak: I need to deconstruct it, etc, and return a type. | ||
But I guess I'll head out tonight as well, not in the mood for the computer | |||
masak: (also, those 0s should be ZEROes) | 17:07 | ||
moritz | firefish5000: /home/moritz/p6/rakudo/install/languages/perl6 | 17:08 | |
/home/moritz/p6/rakudo/install/languages/perl6/site | |||
17:08
tinyblak_ joined
|
|||
[Coke] | I'm getting this building rakudo.jvm: ===SORRY!=== | 17:09 | |
control operator crossed continuation barrier | |||
let me try a -j1 build. | |||
17:11
tinyblak left
|
|||
vendethiel | masak: heading out right now. I'll finish that later :-). | 17:12 | |
I still believe that my code has the potential to find a few new segfaults haha | |||
m: role infix:<***>[::T1, ::T2] { method Str { "{T1}|{T2}" } }; say (Str *** Int) | |||
camelia | rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/kIWNrnfivlTwo terms in a rowat /tmp/kIWNrnfivl:1------> hod Str { "{T1}|{T2}" } }; say (Str *** ⏏Int) expecting any of: postfix infix stopper…» | ||
vendethiel | ha; too bad :D. | 17:13 | |
vendethiel really likes agda's parsing, which is quite powerful: `if_then_else_` for example, which you can then implement as `if cond then res1 else 2 | |||
vendethiel ` (or `if_then_else cond res1 res`) | 17:14 | ||
masak | ooh | ||
17:15
Ven left
|
|||
firefish5000 | moritz, I have changed two lines that would affect panda install, but _panda_modules is completly unchanged and should output a list of modules. | 17:16 | |
vendethiel | m: role _Mult_Impl[::T1, ::T2] { method Str { "{T1}|{T2}" } }; sub infix:<***>(::T, ::T2) { _Mult_Impl[T, T2].Str }; say Int *** Str | 17:17 | |
camelia | rakudo-moar 4a7429: OUTPUT«No such method 'Stringy' for invocant of type 'T' in method Str at /tmp/KJ6lrdHaxq:1 in any at src/gen/m-Metamodel.nqp:1440 in sub infix:<***> at /tmp/KJ6lrdHaxq:1 in block <unit> at /tmp/KJ6lrdHaxq:1» | ||
vendethiel | m: role _Mult_Impl[::T1, ::T2] { method Str { "{T1.gist}|{T2.gist}" } }; sub infix:<***>(::T, ::T2) { _Mult_Impl[T, T2].Str }; say Int *** Str | ||
camelia | rakudo-moar 4a7429: OUTPUT«No such method 'gist' for invocant of type 'T' in method Str at /tmp/cqTzv_20d4:1 in any at src/gen/m-Metamodel.nqp:1440 in sub infix:<***> at /tmp/cqTzv_20d4:1 in block <unit> at /tmp/cqTzv_20d4:1» | ||
17:18
BizarreCake joined,
M_o_C left
|
|||
firefish5000 | moritz, I have to go, but ill stay online and read anything highlighted when I come back (~6hr), | 17:18 | |
17:18
M_o_C joined
|
|||
firefish5000 | prehaps try executing a panda command (if you havn't already) and maybey it will generate a new projects.json, or check if a a /panda/projects.json exists in any of the inst: locations (if so, it should be detected) else, I borked it somehow..(I blame exhaustion) | 17:22 | |
moritz | firefish5000: I'll play with it a 'tod;t n | 17:29 | |
that was supposed to be "a bit" at the end :-) | 17:31 | ||
17:31
denis_boyun left
|
|||
pmurias | nine: inline_perl5.pl is the Inline-Perl5 repo is outdated | 17:32 | |
17:34
brrt left,
akaseki joined
17:42
molaf joined
17:43
tinyblak_ left
17:45
Akagi201 joined
17:46
tinyblak joined
|
|||
moritz | eeks, I get lots of NativeCall test failures | 17:50 | |
expected 'OpaquePointer' but got 'Whatever' | |||
seems to be the common theme | |||
17:51
nbrown___ joined
|
|||
moritz | maybe related to Whatever changes in rakudo today or yesterday | 17:53 | |
timotimo | sounds likely | 17:54 | |
17:55
leont left,
leont joined
|
|||
leont | And then I crashed my computer using perl6 (death-by-swap | 17:56 | |
colomon | NativeCall passed for me ~14 hours ago in the smoke test | ||
leont | ) | ||
17:56
nbrown___ left
|
|||
timotimo | leont: luckily, we're fast at allocating stuff ;) | 17:56 | |
colomon: i believe the whatever changes are at most 12 hours old | 17:57 | ||
colomon | looking at the commit log in github, it looks like there was a batch 17 hours ago and a batch 11 hours ago | ||
timotimo | oh | ||
i believed wrong, then | |||
17:57
zakharyas joined
|
|||
leont | It seems I made the grammar engine go recursive | 17:58 | |
TimToady | is NativeCall using * for something idiosyncratic? | ||
leont | Still, that should fail more gracefully | ||
TimToady | leont: that's not difficult, if you try to do left recursion; we're not trying to be LL(*) | ||
itz | LWP::Simple doesn't decode the Buf if the web server doesn't supply a charset (which seems common) | 17:59 | |
leont | It was a typo, not a parsing cheat | ||
TimToady | well, $* is known to be a very short infinite loop :) | 18:00 | |
m: '' ~~ /$*/ | |||
camelia | rakudo-moar 4a7429: OUTPUT«(signal )» | ||
TimToady | ooh, signal before timeout | 18:01 | |
18:01
brrt joined
|
|||
TimToady | sure would be nice if it would say *which* signal... | 18:01 | |
timotimo | it says so right between "signal " and ")" | ||
jnthn | Aye. I guess it mighta been OOM-killed 'cus it built up a huge set of backtracking points... | 18:02 | |
TimToady | wait, lemme write a regex to parse that | ||
colomon | moritz: yup, duplicated your fail | ||
sub Argless() is native('./01-argless') { * } | 18:05 | ||
Could that be the troubling Whatever? | |||
errr, no, because that one works | 18:06 | ||
nine | pmurias: thanks, good catch! | ||
colomon | I don't see any sign this is actually related to Whatever? | ||
nine | will fix that once I can sneak away from the family gathering | 18:09 | |
colomon | okay, NativeCall still worked as of a3262f65704cd4c1ac26c5ceb82dae22aac92657 | 18:12 | |
18:12
akaseki left,
SamuraiJack_ left
18:14
molaf_ joined,
teodozjan joined
|
|||
dalek | kudo/nom: 244026e | jonathan++ | src/core/control.pm: Optimizations to exception throw, returning. Make the functions more inliner-friendly and avoid some boxing. |
18:15 | |
kudo/nom: 4896509 | jonathan++ | src/core/Str.pm: Further optimize chomp. This avoids a couple of string allocations. |
|||
TimToady | does that help with $x .= chomp? | 18:16 | |
flussence | every time I've looked in here today something's been made faster :D | ||
jnthn | TimToady: Yes | ||
18:17
molaf left
|
|||
jnthn | TimToady: It means the only allocation that happens now in chomp is for the result, nothing intermediate. | 18:17 | |
18:17
akaseki joined
|
|||
TimToady | would be nice to figure out you can steal it, and do it in place | 18:17 | |
18:17
akaseki is now known as Salai
18:18
zakharyas left
|
|||
jnthn | That's Really Hard. | 18:18 | |
colomon | NativeCall fails with 6ff79a9a293aaee5051a34d5184fe7f3d161f1ed | ||
afk # time to read aloud | |||
18:19
teodozjan left
|
|||
jnthn | (Basically, needs escape analysis) | 18:20 | |
masak | sounds more like borrowed pointers. | 18:22 | |
but maybe they overlap somewhat. | |||
18:22
FROGGS left
|
|||
TimToady | well, hopefully IO can just precalculate the chomp without copying, in any case | 18:22 | |
jnthn | TimToady: Yes, that's the goal for IO | ||
TimToady: Doesn't hurt to have a faster chomp for any other use cases folks have for chomp, mind. | |||
TimToady | well, as was mentioned, ropes should let you just return a shorter strand | 18:23 | |
jnthn | That's already happening here, afaik | ||
TimToady | okay | 18:24 | |
jnthn | Though for short lines it's not always so wise | ||
TimToady | yes, large k | ||
jnthn | That is, the strand data structure can be bigger than the storage we'd need for the substring | ||
I've not dealt with that yet. Will get to it soonish | 18:25 | ||
btyler | managed to get my buffer back out of discount :) github.com/kanatohodets/p6-text-ma...n-discount | ||
moritz: thanks for the help, here's what I ended up doing (feels like cheating, but messing with CArray[Str] kept resulting in an uninitialized array): github.com/kanatohodets/p6-text-ma...ount.pm#L8 | 18:27 | ||
jnthn | Think I'll get to some sleep for now, though :) | ||
'night o/ | |||
18:30
spider-mario left,
FROGGS joined,
kaare__ left
|
|||
FROGGS | m: sub foo returns Str { * }; foo | 18:30 | |
camelia | rakudo-moar 4a7429: OUTPUT«Type check failed for return value; expected 'Str' but got 'Whatever' in any return_error at src/vm/moar/Perl6/Ops.nqp:646 in block <unit> at /tmp/NKtMJVOL5Y:1» | ||
leont | I'm trying to parse with arguments: one token passes an indent string to the next (for consistent unindenting). Is this sensible? | 18:31 | |
TimToady | so why are we putting a * in native calls? wouldn't a simple {} do? | ||
FROGGS | TimToady: it should look like an empty proto | 18:32 | |
TimToady | but it's not a proto, and who says it "should" | ||
feels more like cargo culting to me | |||
FROGGS | leont: you just have to be careful that this does not have side effects, in case you use it as a look ahead | ||
TimToady: s/should/was meant/ # germish | 18:33 | ||
moritz | but shouldn't the "is native" replace the routine anyway? | ||
TimToady | but surely the...what moritz sez | ||
FROGGS | yes, the body should never be run | ||
leont | FROGGS: I think I found a less "smart" way to work around, may be a better idea anyway | ||
TimToady | then it shouldn't matter what's in it | 18:34 | |
flussence | the stuff I wrote with nativecall has { ... }, it kinda makes more sense to me | ||
FROGGS | leont: you can use a dynamic variable though, that should work | ||
TimToady | unless it really is calling the body and inserting the native call where * is | ||
in which case it is a sort of proto | |||
albeit with a different dispatcher | |||
and apparently not detecting "onlystar" correctly, if * breaks it | 18:35 | ||
FROGGS | TimToady: no, NativeCall does its own magic by providing a postcircumfix:<( )> by the is native trait | ||
TimToady | does writing the body with {} change the buggy Whatever behavior? | 18:36 | |
since that's the only obvious Whatever I can see | |||
is something trying to do analysis on the body even though it will be replaced maybe? | 18:37 | ||
try with ... instead of * praps? | |||
leont | Great. The YAML module doesn't implement .load :-/ | ||
tadzik | which one? I think we have at least two :) | 18:38 | |
FROGGS | TimToady: ... works, an empty body doesnt | ||
tadzik | oh, we don't | ||
TimToady | so you just need a parser that pays attention to indentation :) | ||
FROGGS | because it statically checks the return type somehow | 18:39 | |
tadzik | perhaps it should be renamed to YAML::Dumper | ||
leont | ingy: your TestML thingie is warning due to deprecated constructs you're using | ||
FROGGS | TimToady: that's why I cannot but a 'returns' trait on Inline::C subs, since the body contains just a string (to be compiled) | 18:40 | |
sbut/put/ | |||
grrr | |||
s/but/put/ | |||
so... do I push the changes I made to NativeCall? | 18:49 | ||
or do we roll back? | |||
there are many modules that are broken now | 18:50 | ||
moritz | what change actually triggered the error? | ||
leont | I want to use a previous match value to substitute in another value, is that possible without a temporary? | 18:51 | |
FROGGS | moritz: I dunno | 18:52 | |
though, I can bisect it easily | |||
TimToady | leont: not easily; use a temp | ||
leont | I'm not doing «.subst(/ ^^ <$indent>/, '', :g)», but I can't pass it $<indent> instead, right? | ||
s/not/now/ | |||
TimToady | well, by normal lexical scoping, sure | 18:53 | |
but not for each application | |||
not if $<indent> comes from a previous $/ | 18:54 | ||
we traded that binding for cleaning up the \1 backref fiasco | |||
so $0 now is the current match on both sides of s/// | 18:55 | ||
and also for the ability to match any var literally | |||
dalek | volaj/stub_instead: 3592f0e | (Tobias Leich)++ | / (11 files): replace { * } by { ... } |
||
TimToady | I'll note that a literal match of indent is going to fail with mixed tabs/spaces | ||
leont | I'll interpret the spec I'm working with as "must be consistent" | 18:56 | |
Surely, adding extra indenting to YAML was a good idea… | |||
FROGGS | uhh | 19:00 | |
moritz: we have a problem | 19:01 | ||
brrt | hmm... quick question. anybody here ever did a CS class, had to do a project, and found a library that claimed it implements 90% of your project | ||
tadzik | heheh hmm | ||
brrt | what would be the chances of that being OK with any given professor | ||
tadzik | I had a project to parse mbox once | ||
moritz | FROGGS: hm? | ||
FROGGS | moritz: when I change a source file or rakudo, the make file does not detect this, because the single files are not dependencies anymore | ||
brrt | mbox is the mail box in a file format | 19:02 | |
tadzik | in that case chances would be close to 0, becuse the point was to teach people to write a parser | ||
brrt | rirc | ||
iirc | |||
tadzik | correct | ||
FROGGS | moritz: so `make install` just copies over stuff, but does not recompile | ||
brrt | hmm | ||
this is for distributed systems | |||
moritz | FROGGS: which file did you change? | ||
brrt | best way to figure out is to ask | ||
FROGGS | moritz: src/core/IO/Handle.pm | ||
tadzik | indeed | ||
FROGGS | moritz: I did `git checkout HEAD^` a few times | 19:03 | |
moritz | FROGGS: well | ||
19:03
lastofthe left
|
|||
moritz | FROGGS: src/core/IO/Handle.pm is pretty new | 19:03 | |
FROGGS: if you configured on a commit where it didn't exist, Makefile can't know about it | |||
FROGGS | huh | 19:04 | |
19:04
nick___ joined,
rindolf left
|
|||
nick___ | yellow | 19:04 | |
moritz | FROGGS: there's no way around reconfiguring when something in the build system changes | ||
FROGGS | moritz++ # you seem to be right | ||
tadzik | hello nick___ | ||
nick___ | how is everyone doing | 19:05 | |
FROGGS | I'm fine :o) | ||
moritz | I can't speak for everyone | ||
19:07
raiph left
|
|||
FROGGS .oO( Und? Dir geht's gut Heinrich? ) | 19:07 | ||
nick___ | well i was think of making web framework for perl, but for jvm platform. i notice in job a lot of company and corp use jvm env . should i focus on the jvm or parrot vm? | ||
FROGGS | wow, stage parse here was 32s right now... I've not yet seen something <34s | ||
moritz | nick___: either on the JVM or on MoarVM | ||
nick___: parrot isn't developed all that much anymore | 19:08 | ||
TimToady | .oO(must...not...make...monty...python...sketch...references...) |
19:09 | |
19:09
nick___ left
|
|||
FROGGS | nick___: when you develop in pure Perl 6, it will very likely work on JVM, MoarVM and Parrot at the same time | 19:09 | |
tadzik | another satisfied customer | ||
FROGGS | TimToady: *g* | ||
19:09
nick___ joined
|
|||
FROGGS | nick___: when you develop in pure Perl 6, it will very likely work on JVM, MoarVM and Parrot at the same time | 19:09 | |
TimToady | you can say that again | 19:10 | |
19:10
xinming_ joined
|
|||
FROGGS | no, I'm sitting in a room of kids that are supposed to be asleep :o) | 19:10 | |
19:11
nbrown___ joined,
darutoko left
|
|||
leont | nick___: if you are going to write such a framework, better make it an interesting one :-) | 19:11 | |
19:11
BizarreCake_ joined,
xinming left,
BizarreCake left
|
|||
leont | A Dancer port is a nice proof of concept, but perl6 has a much better chance of shining in an asynchronous framework | 19:12 | |
brrt | of course we can use said library as a researchable example | ||
FROGGS | ... with an interesting name ...maybe a shout ...three letters should do | ||
brrt | can we do Mojo::Six | ||
or maybe | |||
MJ6 | |||
TimToady | SIX! | ||
FROGGS | CGI! | ||
TimToady | MST! | 19:13 | |
brrt | (like MI6 but with a J) | ||
nick___ | also rakudo is the only offical complier ? | ||
brrt | madness standard time | ||
mst | TimToady: WHAT | ||
brrt | no way man | ||
rakudo is the official compiler of rakudo perl 6 | |||
FROGGS | nick___: no, there is no official compiler... but rakudo is the best (feature wise) | ||
brrt | perl6 doesn't have a official compiler | ||
any more than rakudo has an official target vm | 19:14 | ||
moritz | well, we can change that :-) | ||
pmurias | but rakudo is currently the most actively developed compiler | ||
tadzik | moritz: maybe we should | ||
brrt | hmm yeah, but we should be careful in differentiating between community overlap and technical goal overlap | ||
tadzik | or maybe it should be the reference compiler? :) | 19:15 | |
brrt | no that would imply that the compiler would be the spec | ||
and the roles are reversed | |||
tadzik | hmm, would it now? | ||
well, sort of yes | |||
brrt | yes. no point in calling something reference if it isn't authoritive | ||
i could live with recommended :-) | 19:16 | ||
moritz recommends rakudo-m right now | |||
FROGGS | yeah | ||
19:16
vendethiel left,
MilkmanDan left,
jdv79 left,
xiaomiao left,
muraiki left
|
|||
TimToady | if something passes roast, and doesn't match the behavior of some other "reference" compiler, it's still officially Perl 6, by current spec | 19:16 | |
moritz | there you have it, a recommended compiler from somebody who has patched the spec now and then :-) | 19:17 | |
tadzik | :D | ||
TimToady | so start writing more tests to bias roast in favor of rakudo :) | ||
brrt | lol | ||
nick___ | well , the rakudo lic says a person can redistrub the rakudo compiler the way he want with whatever logo or other name | ||
moritz | the last tests I wrote actually fail on rakudo :-) | ||
FROGGS | hopefully not for long :o) | 19:18 | |
moritz | nick___: that's not quite what it says | ||
nick___ | do this mean someone redist it has to include the butterfly logo :P | ||
brrt | that's ok. bugs we can fix :-) | ||
nick___ | i am being more general | ||
moritz | nick___: if you redistributed rakudo as "Microsoft Word", you'd be in trouble | ||
:-) | |||
nick___ | i know that | 19:19 | |
lol | |||
TimToady | nick___: if you fork, we'd prefer that you do so in a way that doesn't confuse people, is all | ||
brrt | speaking of forks | ||
moritz | fork bomb! | ||
brrt | i heard scala 'forked' today | ||
or | |||
the scala compiler did | |||
TimToady | I would note, however, that the butterfly is marked with a ™ | 19:20 | |
brrt | which i think is uh.. unhappy for them | ||
pmurias | what's the recommended way of precompiling a module under mokudo | ||
FROGGS | pmurias: using panda | ||
moritz | pmurias: 'panda install .' | ||
FROGGS | I'd say | ||
tadzik | what a brand :) | ||
moritz | pmurias: though ufo && make might also work | ||
FROGGS | pmurias: provides you provide a META.info | ||
provided* | |||
nick___ | why do we use a butterfly anyway? | ||
19:21
lastofthe joined
|
|||
TimToady | because otters are out this year | 19:21 | |
FROGGS | nick___: that is the logo of the language, not the compiler | ||
hehe | |||
nick___ | true | ||
moritz | because that fat penguin already has other connotations | ||
nick___ | i miss the camel, it had more meaning | ||
pmurias | why is panda so slow? | ||
TimToady | we don't want Perl 6 known for being ugly | ||
FROGGS | pmurias: it isnt... at least not on moar | 19:22 | |
tadzik | it's pretty fast on moar | ||
moritz | pmurias: cause it reads the json list of all packages | ||
tadzik | nick___: camel is actually an oreilly's trademark | ||
timotimo | moritz: is that really the reason? | ||
pmurias | 'panda help' takes 2.5s | ||
nick___ | so we cover it up with a butterfly? | ||
timotimo | oh ... that's true ;( | ||
TimToady | and, in fact, the butterfly is more meaningful than the camel | ||
otters don't represent metamorphosis | 19:23 | ||
pmurias | is a 2.5s starup for panda expected | ||
leont | Can someone add raw.githubusercontent.com/Leont/ta.../META.info to the modules list for me? | ||
FROGGS | nick___: raw.githubusercontent.com/perl6/mu...amelia.txt | 19:24 | |
nick___ | perl language is cool as it is, it has a lot depends. using a butterfly seem odd | ||
brrt | butterflys on the other hand do not represent resilience or long life | ||
i think the thing with perl5 is mostly that it worked really well in a time that was in many respects simpler than today's | 19:25 | ||
tadzik | leont: on it | ||
nick___ | yea, but the project has a long history so does perl, we should use a animal that has more meaning, butterfly dont last long | ||
brrt | animals don't have any meaning per se | ||
19:25
nbrown___ left
|
|||
dalek | osystem: 2e7b671 | (Tobias Leich)++ | META.list: add TAP::Harness6 leont++ |
19:26 | |
FROGGS | tadzik: ha! | ||
tadzik | FROGGS: PFFTBT | ||
nick___ | if that was true no one would a animal for a logo | ||
brrt | it is humans who give meaning - or maybe other animals that communicate in a similar manner | ||
timotimo | pmurias: yeah, panda starts up quite slow indeed ;( | ||
FROGGS | brrt: cats! do not forget of cats! | ||
colomon | o/ # finished book, now need to prep noms for later | ||
brrt | do cats give meaning to other animals? maybe they do, but how would they communicate it? | 19:27 | |
FROGGS | brrt: I think so by how they look at me | ||
nick___ | enlightenment how would butterfly would communicate with perl or people | ||
TimToady | by smiling | ||
moritz | meaningful wing flapping | ||
FROGGS | "you are disgusting, servant" | 19:28 | |
brrt | causing hurricanes clearly | ||
i'm very much of the opinion that a great deal of the animal kingdom is concious | |||
i'm not so sure about sentient because i frankly have no idea what that means | |||
moritz | causing hurricanes that cause cosmic rays to alter bits in your PC's memory | ||
TimToady | you should also realize that a butterfly with a 3-meter wingspan has a correspondingly longer lifespan too | ||
nick___ | so being eating by a frog or cameleon | 19:29 | |
brrt | but most animals are not so good at communication | ||
19:29
vendethiel joined,
MilkmanDan joined,
jdv79 joined,
xiaomiao joined,
muraiki joined
|
|||
brrt | i doubt the physics of a 3-meter wingspan butterfly | 19:29 | |
given that butterfly wings are but two cell layers thick | |||
moritz | magically reinforced, of course | ||
brrt | although i have heard of 1-meter wingspan dragonfly's | 19:30 | |
TimToady | well, she might be an ET that just looks like a butterfly | ||
pmurias | so if I want to play around with Inline-Perl5 I should write a META.info for that and install it with panda? | ||
TimToady never said where he got the picture :) | |||
nick___ | ??Q? | ||
leont | dragonfly's are awesome | ||
FROGGS | pmurias: you could bug nine about the usage | ||
leont | flies | ||
FROGGS | moritz: the bad commit is: cc1965f... Bulid a * and ** during compile, and use them | 19:31 | |
brrt | flies yeah | ||
nick___ | |'''| =^._.^= kitty | ||
19:31
raiph joined
|
|||
TimToady | use of Unicode is encouraged here | 19:31 | |
ASCII is so...20th century | 19:32 | ||
brrt | what i'm wondering about is, are there any more moar-specific breakages for me to research | ||
nick___ | lol | ||
brrt | oh wait, i recall | ||
hmm | |||
i can do the force_gc thingy | 19:33 | ||
TimToady | .oO(löl) |
||
pmurias | nine: how should I install Inline-Perl5? | ||
nick___ | \xF0\x9F\x98\xB8 | ||
nine | I actually have no idea what would be needed to install Inline::Perl5. After all I'm an absolute Perl 6 n00b ;) | ||
FROGGS | m: say "\xF0\x9F\x98\xB8" | 19:34 | |
camelia | rakudo-moar 4a7429: OUTPUT«ð¸» | ||
nick___ | U+1F638 | ||
if perf unicode lol | 19:35 | ||
leont | TimToady: 😸 | ||
FROGGS | m: say chr(0x1F638) | ||
camelia | rakudo-moar 4a7429: OUTPUT«😸» | ||
TimToady | .u 😸 | ||
yoleaux | U+1F638 GRINNING CAT FACE WITH SMILING EYES [So] (😸) | ||
nick___ | so back to the subject why are we using a butterfly | ||
FROGGS | m: say "\c[GRINNING CAT FACE WITH SMILING EYES]" | ||
camelia | rakudo-moar 4a7429: OUTPUT«😸» | ||
FROGGS | m: say "\c[GRINNING CAT FACE WITH SMILING EYES]".ord | 19:36 | |
camelia | rakudo-moar 4a7429: OUTPUT«128568» | ||
FROGGS | m: say "\c[GRINNING CAT FACE WITH SMILING EYES]".ord.fmt('%#x') | ||
camelia | rakudo-moar 4a7429: OUTPUT«0x1f638» | ||
nine | But I'd appreciate any help or someone experimenting | ||
pmurias | I'm also a Perl 6 n00b :/ | ||
moritz | nine: I know that one can write a Build.pm or so and panda will pick it up | 19:37 | |
nine | You could just try and see how it goes :) | ||
moritz | nine: ... and that's about all I remember :( | ||
can anybody remember a p6 module that uses that mechanism? | |||
timotimo | moritz: when did you last see if SVG::Plot works properly? :) | ||
tadzik | nine: I can help you with that | ||
moritz | ++tadzik | ||
nine is only typing on his phone at a family gathering | 19:38 | ||
nick___ | ok, back to snakes | ||
19:38
nick___ left
|
|||
tadzik | nine: I think your best shot is to compile things in Build.pm and compute the path to .so relatively to Inline/Perl5.pm | 19:38 | |
FROGGS | .tell jnthn You've killed NativeCall! (rakudo/cc1965f makes it able to check the return type of { * }. There is a stub_instead NativeCall branch if that is the way to go) | ||
yoleaux | FROGGS: I'll pass your message to jnthn. | ||
tadzik | panda will install the .so somewhere alongside it | 19:39 | |
FROGGS | nine: look at sergot/OpenSSL as a pattern | ||
tadzik | oh yes, that's a good one | 19:40 | |
moritz | FROGGS: so the difference is that the * is now created at compile time, and thus the type known at compile time, and thus the error, somehow? | ||
FROGGS | moritz: yes | ||
nine | I'm already loading the .so from the dir where Perl5.pm6 is located | ||
19:40
PersonX left
|
|||
FROGGS | nine: but you have to be careful, don't apply the `is native` trait directly | 19:41 | |
nine: because that would happen at compile time, which happens in a temp directory | |||
nine | FROGGS: ok, thanks | 19:43 | |
FROGGS | lol: thedailywtf.com/Articles/Accuracy-i...hing!.aspx | ||
pmurias | tadzik: any ideas what is causing the 'panda help' slowness? | 19:44 | |
colomon | so, dunno if someone figured this out along the way or not, but cc1965fba794c28ee80273ad5198674ff3be9082 seems to be what is causing the problems in NativeCall | ||
tadzik | pmurias: probably the loads of code it has | ||
pmurias: but it might be parsing the json and not lazily building Ecosystem | 19:45 | ||
pmurias | loads of code? it's <726 lines | ||
well =726 lines ;) | 19:46 | ||
tadzik | heh | ||
it feels big alright :P | |||
FROGGS | colomon: look at what I '.tell'd jnthn :o) | 19:47 | |
TimToady | how many stone is that? | ||
pmurias | stone? | ||
FROGGS | it is at least 23.4456 cups | ||
tadzik | that's less than a koku | ||
FROGGS | what's a koku? | ||
tadzik | it's the amount of rice to feed an adult man for a year | 19:48 | |
FROGGS | :D | ||
TimToady | how hungry is he? | ||
tadzik | en.wikipedia.org/wiki/Koku | ||
so yeah, koku is about 23-24 stone :) | 19:49 | ||
colomon | FROGGS: are you sure that's the exact problem? there seemed to be some successes and some failures in the NativeCall tests if you prove --verbose | ||
tadzik | oh, it was actually for a generic person, not neceserily a male | ||
however you write neceserily | |||
FROGGS | colomon: all passes at the commit before that | 19:50 | |
pmurias | reading the .json project file is a slow part for sure | ||
colomon | FROGGS: … maybe a better way of saying this is does your NativeCall branch pass all tests? | 19:52 | |
FROGGS | colomon: yes, my branch passes all tests at rakudo/HEAD | 19:53 | |
there are tests that do not have a 'returns' trait, these pass anyway | 19:54 | ||
colomon | FROGGS++ | 19:56 | |
19:57
lastofthe left
20:01
Salai left,
akaseki joined,
akaseki is now known as Salai
20:04
BizarreCake_ left,
glumm joined
20:11
brrt left
20:17
lastofthe joined,
Sqirrel joined
|
|||
timotimo | m: my @series := 1, 1, *.rand + *.rand ... *; my @data = @series[^100]; | 20:25 | |
camelia | ( no output ) | ||
timotimo | m: my @series := 1, 1, *.rand + *.rand ... *; my @data = @series[^100]; say @data; | ||
camelia | rakudo-moar 4a7429: OUTPUT«1 1 0.990956539530755 1.14596832130274 0.594032977212282 1.22437501862986 0.469724590512463 1.43381736696177 1.66513142467329 1.39218025168342 2.53376430317992 2.28981422567561 2.42785688234683 1.11403423682945 2.78958838847796 2.93708793726731 3.013136638…» | ||
timotimo | huh. | ||
Cannot call 'postcircumfix:<[ ]>'; none of these signatures match: ← this is what i get on my local REPL | |||
but in non-repl it works | 20:27 | ||
20:32
lizmat joined,
Sqirrel left
20:36
lastofthe left
20:38
woolfy joined,
tinyblak left
|
|||
timotimo | moritz: i'm apparently using your SVG::Plot wrong ... | 20:40 | |
perl6-m -e 'use SVG; use SVG::Plot; my @series := 1, 1, *.rand + *.rand ... *; my $plot = SVG::Plot.new(:width(800), :height(600), :plot-height(550), :data(@series[^100]), :x(^100)).plot(:lines)' | |||
first it gives use of uninitialized value of type Any in numeric context in method plot at lib/SVG/Plot.pm:329 and then it gives Cannot coerce Inf or NaN to an Int originating from the * in in method y-ticks at lib/SVG/Plot.pm:382 | |||
TimToady | sounds like another * that has to turn into ... | 20:42 | |
timotimo | oh, no this is a multiplication * | 20:48 | |
20:50
lastofthe joined
|
|||
timotimo | plotting that series didn't turn out as fun as i hoped | 20:51 | |
20:51
ajr_ left
|
|||
timotimo | the one example in svg-plot that doesn't need a file from somewhere throws an exception | 21:02 | |
but the tests succeed ... so test coverage needs some improvements :) | 21:03 | ||
hm, nothing's happening any more? :\ | 21:09 | ||
21:10
raiph left
21:15
raiph joined
21:20
xenoterracide left
|
|||
vendethiel 's back | 21:36 | ||
21:36
nbrown___ joined
21:39
jack_rabbit joined
|
|||
vendethiel | github.com/rakudo/rakudo/commit/48...be8cac3R87 - maybe this warrants a comment? | 21:40 | |
not sure everybody knows the ASCII table by heart :-) | |||
21:42
xenoterracide joined
21:44
BenGoldberg joined
|
|||
lizmat | vendethiel: was on my list of things to do... | 21:46 | |
vendethiel | lizmat++ # teaching us ASCII | ||
lizmat | BTW, that optimization made my benchmark file load in 2.759s | ||
so, that means we went from 5.8 to 2.8 seconds today | |||
vendethiel | wow :-). (people)++ | 21:47 | |
lizmat | that's more than 2 times as fast | ||
anyway, Str.lines will need a similar treatment | |||
will do that sometime after I'm home again | |||
for now, sleep& | |||
vendethiel | g'night :) | 21:48 | |
21:54
nbrown___ left
21:59
raiph left
22:01
lastofthe left
22:02
gfldex left
22:06
glumm left
22:12
gibbysan joined
|
|||
vendethiel | retupmoca++ | 22:12 | |
timotimo | huh? | 22:13 | |
22:13
raiph joined
22:14
virtualsue left,
gibbysan left
|
|||
vendethiel | timotimo: made my module panda-installable | 22:15 | |
also made it work with case-sensitive filesystems | |||
he's doing it again: github.com/afiskon/p6-xml-parser-tiny/pull/4 :-) | 22:16 | ||
retupmoca | vendethiel: I like green checkmarks on the smoke tester :) | ||
vendethiel | retupmoca: I can guarantee you that my module passes locally :P | ||
retupmoca | yeah, the tests failed because I'm on linux (case sensitive) | 22:17 | |
and the file that didn't build looked like your tests may not have hit it | |||
so only panda tried to compile it | |||
timotimo | sweet | 22:18 | |
vendethiel | yes, either that or I didn't re-push after fixing the typo locally | ||
retupmoca | or that | ||
dalek | ast: 4ef1028 | coke++ | S17-promise/start.t: use std. RT #xx format |
||
22:27
xenoterracide left
22:31
Psyche^ joined
22:32
raiph left
22:35
Psyche^_ left
|
|||
retupmoca | m: role Foo { method bar { ... } }; say 1 | 22:40 | |
camelia | rakudo-moar 4a7429: OUTPUT«1» | ||
retupmoca | that seems to die on my local machine | 22:41 | |
with master/master/nom | |||
I get "Unhandled exception: Method 'bar' must be implemented by Foo because it is required by a role" | 22:42 | ||
22:47
pmurias left
|
|||
leont | I just saw that error 10 minutes ago, but moved on instead of figuring out what was wrong, assuming I had screwed up | 22:52 | |
22:55
nebuchadnezzar left,
nebuchadnezzar joined,
raiph joined
|
|||
retupmoca | ... and Game::Crypt passes tests with prove, but fails tests with panda :( | 22:58 | |
tadzik | precomp issue probably | ||
retupmoca | oh right, I didn't test precomp | 22:59 | |
[Coke] | looks like jnthn++ busted rakudo-jvm with bdf153c23d893e0b6da1f5ee9d03d2f7c91f7b1d | 23:00 | |
23:05
colomon left
23:12
xragnar_ joined,
xragnar is now known as Guest8160,
Guest8160 left,
xragnar_ is now known as xragnar
23:13
raiph left
|
|||
vendethiel | .tell ingy I started a scala port of your stuff, and ended up fighting its regexps for around 3hours :d. they're so much better in 6 ;) | 23:14 | |
yoleaux | vendethiel: I'll pass your message to ingy. | ||
retupmoca | gist.github.com/retupmoca/6def9837388382a054b9 | 23:21 | |
^ can someone duplicate this as well? Just to make sure | |||
I suppose I should learn how to bisect, as well... | 23:23 | ||
TimToady is still learning how to monosect... | 23:28 | ||
kurahaupo hand TimToady a monopole magnet | 23:40 | ||
TimToady finds himself drawn toward the East Pole | 23:41 | ||
leont | «Invocant requires an instance, but a type object was passed» this is not a very useful error without any further information | 23:47 | |
diakopter | TimToady: not the inner pole? | 23:50 | |
TimToady | leont: indeed, we call that LTA (Less Than Awesome) | 23:52 | |
and people who make error messages awesome are held in high regard around here | 23:53 | ||
23:55
colomon joined
|