»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
00:02
kurahaupo left
00:04
spider-mario left
00:10
laouji joined
00:23
owlsley joined
00:24
danaj left
00:28
fhelmberger joined
00:33
fhelmberger left
00:38
danaj joined,
chenryn joined
00:39
laouji left
00:40
laouji joined
00:41
chenryn left
00:43
laouji left
00:44
laouji joined
00:57
Akagi201 joined
|
|||
raydiak | adu: pong! | 00:59 | |
adu: gcc.gnu.org/ml/gcc-help/2003-06/msg00070.html | |||
01:01
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
raiph joined
01:04
aborazmeh left
01:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:09
cheungmc joined
01:11
cheungmc left
01:18
cheungmc joined,
cheungmc left,
cheungmc joined
01:19
cheungmc left
01:24
cognominal left
01:26
aborazmeh left
01:31
dayangkun joined
01:34
nbdsp joined
|
|||
nbdsp | Greetings! Could someone advise please what is the 'perl6' method to test a key in a hash for existence? Is the following method correct one? | 01:38 | |
m: my %h = "a"=>1,"b"=>2,"c"=>3; say "b" ~~ any %h.keys; | |||
camelia | rakudo-moar 6b4f9b: OUTPUT«True» | ||
ugexe | %h.<key>:exists | ||
colomon | %hash{“key”} :exists | 01:39 | |
nbdsp | ugexe: thanks! | ||
01:46
ilbot3 left,
yqt left
01:47
Zoffix joined,
colomon left,
ilbot3 joined,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:48
colomon joined
01:52
chenryn joined
02:10
Sqirrel left
02:11
vendethiel joined
02:13
noganex joined
02:16
noganex_ left
02:18
rba_ joined
02:23
rba_ left
|
|||
adu | raydiak! | 02:23 | |
so __extension__ is absolutely meaningless | 02:24 | ||
I can do that | |||
02:25
rmgk_ joined,
rmgk is now known as Guest86457,
rmgk_ is now known as rmgk
|
|||
ugexe | m: class X { method y { ENTER { say state $count++ } }; }; X.y(); # expected? | 02:25 | |
camelia | rakudo-moar 6b4f9b: OUTPUT«01» | ||
raydiak | yeah looks like ignoring __extension__ entirely would be fine, unless someone is trying to use C::Parser in a way which requires them to see it via C::AST or whatever | 02:28 | |
02:28
Guest86457 left
02:29
colomon left
02:31
colomon joined
02:33
tinyblak joined
02:35
colomon left,
colomon joined
02:38
Akagi201 left,
Akagi201 joined,
cheungmc_ joined
02:39
Akagi201 left,
Akagi201 joined,
aborazmeh left
02:40
RabidGravy left
02:43
cibs left
02:45
cibs joined
02:47
raiph left
03:09
nbdsp left
03:29
cibs left
03:30
vendethiel left
03:37
mr-foobar left
03:42
laouji left
03:46
cibs joined,
nbdsp joined
|
|||
nbdsp | Greetings! I have a file with records of pattern 'aaa\tbbb' and reading this file into map %m<aaa>="bbb" takes several orders of magnitude longer than with, say, Python. I read as follows: my $s = "file".IO.slurp; my %m; for $s.lines { my @pair = $_split("\t"); %m{@pair[0]} = @pair[1];} The file is following: raw.githubusercontent.com/kevina/w...speech.txt . I wonder, whether the speed can be significantly | 03:47 | |
method? | |||
03:47
cibs left
|
|||
cheungmc_ | perl or python ? | 03:48 | |
nbdsp | With some other method in Perl 6? | 03:50 | |
raydiak | nbdsp: your message was truncated between "be significantly" and "method?" | ||
03:50
cibs joined
|
|||
nbdsp | I wonder, whether the speed can be significantly increased with some other method of handling this task? | 03:51 | |
raydiak | the answer is probably "profile" and "glr" :) | ||
if you can get more specific details about what is slow there, it'd be helpful to those who can improve such things | 03:52 | ||
03:53
khisanth_ joined,
Khisanth left
|
|||
raydiak | (baring answers from more informed people who could give more direct answers to your question) | 03:54 | |
also if you can figure out exactly which part is slow, we may have ideas about how to do that specific operation faster | 03:55 | ||
so I guess my consolidated suggestion would be to sprinkle some "say now;"s in there and go from there depending on what you see | 03:57 | ||
nbdsp | Hmm.. Is this task slow only in my particular case? | 03:58 | |
raydiak | well we have a lot of slownessess in many cases still, but hard to know which part is slowing you down until you profile it somehow | 04:00 | |
nbdsp | Well, the code contains only two lines. =) | 04:04 | |
raydiak | then you may need to verbosify it into more lines to narrow down exacty what is slowing you down | 04:05 | |
I would split up what you masted into like...6 lines | |||
*pasted | |||
nbdsp | If developer runs it on his/her machine, will it give incorrect results and it will run as fast as the Python's code? | 04:07 | |
raydiak | is it the split that's slowing you down? the hash assignment? maybe the for loop itself takes a long time between iterations for some reason. find out. | ||
wrt Python, I'm lost, not sure what you're asking\ | |||
04:08
BenGoldberg left
|
|||
nbdsp | raydiak: I'm asking if this task runs 200 times slower than in Python (or C/C++) on Perl 6 developers machines? | 04:15 | |
04:29
fhelmberger joined
|
|||
nbdsp | Because this slowness is of such scale that I though that either it's well known or I perform this task incorrectly. | 04:29 | |
*...that I thought... | 04:30 | ||
raydiak | dsp: I can tell you that on my old pawnshop laptop without turning off cool'n'quiet, turbocore, etc, at current room temp that takes almost 7 minutes. I don't know python or C very well, but it seems quite likely that it is a whole lot slower than either, which is why it'd be interesting to know which part is slow if you have the tuits to narrow it down for a bugreport, for whomever may be able to improve it | 04:32 | |
04:32
petercommand left,
petercommand joined
04:33
fhelmberger left
04:34
tinyblak left,
tinyblak joined
|
|||
nbdsp | Since on python it takes several seconds, I wonder whether it's needed to submit a bug report because obviously it's a known issue. | 04:37 | |
04:39
tinyblak left,
adu left
|
|||
raydiak | depends on how much you care I guess | 04:40 | |
it's certainly likely to get fixed sooner or later; just that if you want it to be sooner, a bug report helps people keep track of all the various things because there's a lot of them | 04:42 | ||
04:44
Sqirrel joined
|
|||
nbdsp | raydiak: Thanks for helping and checking this code. I will try to narrow down the cause of slowness. | 04:44 | |
04:46
chenryn left
|
|||
raydiak | nbdsp: glad to help :) I don't see anything obviously terrible in your own code if that what you were asking, there is definitely something here which we could improve | 04:46 | |
04:47
kaare_ joined
|
|||
nbdsp | I meant thanks for running this code on your machine and testimoning thats it's not a some glitch on mine which is the cause. | 04:48 | |
04:50
jack_rabbit left
|
|||
raydiak | certainly, you're welcome :) | 04:51 | |
04:51
raiph joined
04:52
dolmen joined
04:55
laouji joined
04:57
jack_rabbit joined
04:59
chenryn joined,
konsolebox left,
konsolebox joined
05:02
laouji_ joined
05:04
laouji_ left,
tinyblak joined
05:05
laouji left,
laouji joined
05:09
kurahaupo joined
05:21
PZt left,
rivarun left,
pyrimidine left
05:22
pyrimidine joined,
rivarun joined
05:23
mr-foobar joined
05:24
sftp left
05:25
sftp joined
05:26
raiph left
05:28
adu joined
05:37
adu left
|
|||
raydiak | good night #perl6 | 05:37 | |
dalek | c: a8dbc9a | (Stefan Seifert)++ | META.info: Add missing File::Temp dependency Thanks to zengargoyle++ for reporting. Fixes GH #80 |
05:41 | |
05:45
Patterner joined
05:48
rindolf joined
|
|||
nbdsp | I wonder if there is any estimation how this speed can be improved and when? If this code runs 7 mins where python runs 10 sec, can this runtime at all be reduced to 30 sec? | 05:49 | |
05:50
Psyche^ left
06:02
diana_olhovik joined
06:09
kurahaupo left
06:11
khisanth_ left
06:18
dolmen left
06:19
bjz joined
06:20
khisanth_ joined
06:21
skids left,
bjz left
06:25
rindolf left
06:26
bjz joined
06:27
kurahaupo joined,
konsolebox left
06:28
bjz left
06:29
bjz joined,
bjz left
06:34
khisanth_ left,
khisanth_ joined
06:37
Generator_ joined
06:39
_mg_ joined
06:41
khisanth__ joined
06:43
khisanth_ left
06:45
domidumont joined
06:50
domidumont left
06:51
domidumont joined,
andreoss left
06:54
kaare_ left
|
|||
tadzik | nbdsp: we've seen improvements like that happen :) | 06:56 | |
06:56
kaare_ joined
|
|||
tadzik | I'll try to profile your code to see if I can find something, but I my wild guess is that it's mostly the list iteration that's slow, and that's bound to improve massively in the upcoming months | 06:57 | |
dalek | pan style="color: #395be5">perl6-examples: f79aaa5 | paultcochrane++ | categories/cookbook/02numbers/02-01valid-number.pl: [cookbook] move code comments into pod |
06:58 | |
pan style="color: #395be5">perl6-examples: 6931a93 | paultcochrane++ | t/categories/cookbook/02numbers.t: [cookbook] add tests for the 02numbers subcategory |
|||
06:59
abraxxa joined
07:00
kaare__ joined
07:01
quester joined
07:04
kaare_ left
07:06
dayangkun left
07:07
kurahaupo left
|
|||
lizmat | .tell nbdsp You might want to try .lines(:eager) | 07:09 | |
yoleaux | lizmat: I'll pass your message to nbdsp. | ||
07:09
domidumont left
|
|||
lizmat | which you could think of as a pre-cursor of the type of speed increase you will see after GLR | 07:09 | |
07:10
dayangkun joined,
fhelmberger joined
|
|||
lizmat typically sees the :eager version as 5x as fast | 07:12 | ||
07:12
dayangkun left
07:13
bjz joined
|
|||
timotimo | .tell nbdps it may very well be a lot faster to use the regex engine to do the work for you than to build a for loop; at least the regex engine doesn't have to provide for things like making next/last/redo possible and it might also be a tiny bit faster at "splitting into lines" in this case | 07:22 | |
yoleaux | timotimo: I'll pass your message to nbdps. | ||
timotimo | o/ | ||
damn, i typo'd the nick | |||
.tell nbdsp it may very well be a lot faster to use the regex engine to do the work for you than to build a for loop; at least the regex engine doesn't have to provide for things like making next/last/redo possible and it might also be a tiny bit faster at "splitting into lines" in this case | |||
yoleaux | timotimo: I'll pass your message to nbdsp. | ||
07:25
rba_ joined
|
|||
lizmat | on a related note, I just found that IO::Handle.lines(:eager) is taking the first candidate, *not* the one with :$eager! :-( | 07:26 | |
I'm pretty sure that used to work... :-( | 07:27 | ||
timotimo | oh damn. | ||
can you re-order it in the source? | |||
or use the "*% ()" annotation trick? | |||
lizmat | well, of course I can, but why should I have to ? | 07:28 | |
07:28
Erendis42d left
|
|||
timotimo | i don't know, i'm just decoration | 07:28 | |
lizmat | and what a decoration you are! :-) | 07:29 | |
seriously, this feels like a (recent) regression to me | |||
and I wonder how we can test for cases like this :-( | |||
dalek | kudo/nom: 0fe9416 | TimToady++ | src/ (4 files): Distinguish Nil from Empty Nil no longer iterates to (). Use Empty if that meaning is needed. |
07:31 | |
ast: 831838f | TimToady++ | S (6 files): tweaks for Nil/Empty distinction |
|||
07:34
FROGGS joined
|
|||
timotimo | m: say "in this one script, 'get' takes { 3202.01 / 479829 } s per line" | 07:35 | |
camelia | rakudo-moar 6b4f9b: OUTPUT«in this one script, 'get' takes 0.00667323 s per line» | ||
07:35
bjz left
07:37
grondilu left
|
|||
timotimo | isn't that kinda slow? | 07:37 | |
even though it relies on a VM-level operation that could be pretty fast? | 07:38 | ||
07:38
rba_ left
07:39
woolfy joined,
woolfy left
07:41
Isp-sec joined
07:42
rindolf joined
|
|||
FROGGS | o/ | 07:43 | |
dalek | kudo/nom: 9c543b5 | lizmat++ | src/core/IO/Handle.pm: Move IO::Handle.words/lines candidates around For some reason, the :eager/:count candidates were not run. Moving the candidates up in the list, makes them run as they should. Pretty sure this is a fairly recent regression. |
07:44 | |
timotimo | ohai FROGGS | ||
lizmat | get pre newio, is pretty slow because it needs to check a lot of things *each* time | ||
timotimo | i only see a check for $.chomp | 07:45 | |
um | |||
isn't this absolutely bogus, though? | |||
oh, no it isn't | |||
i read "$x .= chomp if $.chomp" as "self.=chomp if $.chomp | |||
lizmat | ah, I guess I fixed some of it already in nom | ||
timotimo | that would have been a hilarious bug | 07:46 | |
lizmat | yeah, and noticed quickly | ||
timotimo | verily | ||
huh | 07:47 | ||
dispatch:<.=> seems to be pretty expensive | |||
lizmat | in newio it's been made to not use that | ||
timotimo | maybe you could measure changing that to "$x = $x.chomp if $.chomp" against current code while i'm away? | ||
lizmat | well, I was just going to say that I will be afk for a bit as well :-) | 07:48 | |
timotimo | maybe FROGGS has a bit of spare time :P | ||
lizmat | and I think I fixed it in newio already | ||
timotimo | right | ||
lizmat | $!chomp | ||
?? nqp::p6box_s($line).chomp | |||
!! nqp::p6box_s($line); | |||
so: 1 not using methid, and 2 not assigning | 07:49 | ||
*method | |||
afk& | |||
timotimo | yeah, that ought to be faster | ||
FROGGS | ummm, what? | 07:50 | |
timotimo | hi there :3 | ||
FROGGS | I currently use my spare time to review nearly 100 test files, which are not (yet) included in spectest.data | 07:51 | |
timotimo | ooooh | ||
FROGGS | I managed to fix about five files yesterday | ||
timotimo | that's much more useful :) | ||
FROGGS++ | |||
FROGGS | my goal is to have all (not by then removed) files from roast included, so we actually know what is in roast | 07:52 | |
07:52
zakharyas joined
|
|||
FROGGS | TimToady++ and others should then review all files that have '#?v6' fudge lines | 07:53 | |
because these are questionable from a language point of view | |||
07:53
tinyblak left
|
|||
FROGGS | ahh, and I am implementing ignoremark right now | 07:53 | |
07:54
tinyblak joined
|
|||
timotimo | ooooh | 07:54 | |
07:57
cognominal joined
08:00
telex left
08:02
telex joined
08:03
domidumont joined
08:06
domidumont1 joined
08:08
cognominal left,
domidumont left
08:17
brrt joined
|
|||
Generator_ | Hi, need suggestion. I am intend to make a program. From current problem analysis, my program will me handling a lot of data in flow. The program will have lots of live data and it will do operations on those data. It will also have to handle n no of connections/instances. n is the number of user this program will be handling. So my query is, will perl be a good choice ? | 08:17 | |
08:17
laouji left
08:19
darutoko joined
|
|||
bbkr | Generator_: what traffic are you talking about? | 08:21 | |
yoleaux | 29 Mar 2015 11:11Z <tadzik> bbkr: hey, you guys still using Rakudo-Parrot in your business? | ||
08:22
virtualsue joined,
rba_ joined
|
|||
Generator_ | users connect to this program via internet bbkr | 08:22 | |
bbkr by traffic what do you want to ask ? | 08:23 | ||
bbkr | Generator_: payload size, estimated requests per second | ||
masak | antenoon, #perl6 | 08:24 | |
Generator_ | bbkr those are not analyzed yet. In the beginning request are pretty small per second, but if the userbase grows request may be >1000 per sec | 08:25 | |
bbkr | Generator_: looks like you need www->perl(fastcgi+nginx is extremely fast)->queue(to buffer and dispatch requests, maybe RabbitMQ)->workers(crunching data) | 08:26 | |
Generator_ | bbkr thank you. I will check those suggestions :) | 08:27 | |
bbkr | Generator_: I'm processing few thousands requests per second using that flow and it is VERY reliable and scalable. If you are not scared of asynchronous programming use Perl 5 AnyEvent::* stuff (AnyEvent::RabbitMQ, AnyEvent::FCGI). If you like to experiment try Perl6 (plenty of servers to choose from and github.com/retupmoca/P6-Net-AMQP/ to communicate with message broker) | 08:30 | |
Generator_ | bbkr wow these are really nice. But just to be sure, will it give me much advantage over python ? | 08:33 | |
08:33
Isp-sec left
|
|||
moritz | we have an AMQP implementation in Perl 6? Cool | 08:34 | |
08:35
kurahaupo joined
|
|||
moritz uses RabbitMQ at $work | 08:35 | ||
btyler | Generator_: the 'perl5 or python' question is pretty much down to which you feel more productive in. both have likely all the libraries you need. now, 'perl6 or python' is a bit different question, since if you start applying perl6 you'll be encountering a lot more 'frontier' style issues -- potential bugs in the interpreter, needing to write new libraries, etc. | 08:36 | |
bbkr | Generator_: depends on your payload type and analysis. I've tried both on heavy load and they tied. But Perl was chosen because of unified AnyEvent asynchronous interface. | ||
08:36
araujo joined
|
|||
Generator_ | bbkr if I am going to use perl I must use perl6, cos my program will continue developing, so I have to think about future scope | 08:38 | |
bbkr | moritz: Perl 6 implementation lacks queue cancel, which may be major no-go in some scenarios. but other than that it is awesome because it has Supply style interface which makes it really easy to use. | 08:41 | |
moritz | bbkr: sounds good. (And at $work, I haven't needed queue cancel yet) | 08:42 | |
btyler | Generator_: not to discourage you from using perl 6, but I don't think there's much reason to be worried about perl 5 longevity | ||
Generator_ | cool | ||
moritz | I don't think the Perl 6 release will reduce interest in and comittment to Perl 5 development | 08:43 | |
FROGGS | true | ||
08:44
cognominal joined
|
|||
moritz | (and contrary to python, nobody aims to EOL Perl 5) | 08:44 | |
python 2, I should say | |||
DrForr | If anything it'll encourage parallel development. | 08:46 | |
nwc10 | Jython 2.7 was released a few days ago fwierzbicki.blogspot.fi/2015/05/jyt...eased.html | ||
FROGGS | $ nqp-m -e 'say("bär" ~~ /:m á/)' | 08:47 | |
ä | |||
\o/ | |||
nwc10 | \o/ | ||
moritz | \o/ | ||
bbkr | what kind of sorcery is that!? | ||
FROGGS | ignoremark :o) | 08:48 | |
08:48
ab5tract joined
|
|||
Generator_ | I really hate java things. I dont knw why when I hear the word java it resembles to 'slow' in my mind | 08:48 | |
FROGGS | Generator_: that's because you think of startup time only :o) | 08:49 | |
Generator_ | but that is a time too :0 | ||
bbkr | Generator_: startup is slow. but it is good for long running processes, when the JIT kicks in it outperforms event C++ in some scenarios | ||
FROGGS | I dislike other things of Java more than its startup time characteristics | 08:50 | |
bbkr | even* | ||
Generator_ | FROGGS I have not been much into java so i just see slowww, may be u can say what things are there to dislike :O | 08:51 | |
FROGGS | if (MyNumber != 0) { # grr | 08:52 | |
it is way to verbose | |||
Generator_ | :/ | 08:53 | |
FROGGS | if (!(foo instanceof bar)) { # -.- | 08:54 | |
08:54
cheungmc_ left
|
|||
FROGGS | and the concept of StringBuilders etc | 08:54 | |
it is too low level in many ways | 08:55 | ||
08:55
laouji joined
|
|||
jnthn waves from Trondheim airport | 08:58 | ||
(on way to OSDC.no) | |||
FROGGS | jnthn: o/ | ||
lizmat | jnthn o/ | 08:59 | |
jnthn | FROGGS: How'd you do ignoremark, ooc? | 09:00 | |
FROGGS | jnthn: clever of course :P | ||
jnthn | FROGGS: Nabbed the decomp_spec handling stuff from normalize.c? :) | ||
FROGGS | jnthn: I decompose to NFD, and compare the basechars | ||
09:00
tinyblak left
|
|||
nwc10 | jnthn: some sort of occult alchemy based on toothpaste and painkiller, I think, judging by last night's purchases :-) | 09:00 | |
FROGGS | jnthn: but I'll push to a branch today so you can review | ||
jnthn | FROGGS: OK | 09:01 | |
pmichaud | good morning, #perl6 | ||
jnthn | FROGGS: We need to get the NFG engine to understand it too is all | ||
And need it to handle synthetics | |||
But maybe you nailed 'em both :) | |||
o/ pmichaud | |||
FROGGS | jnthn: because I guess there might be a smarter way than I'm doing it currently, though it is not much code | ||
hi pmichaud | |||
nwc10 | pmichaud: you're not in Kansas, er, Texas, any more? | ||
pmichaud | nwc10: I haven't been in Texas for several days. :) | 09:02 | |
FROGGS | jnthn: that's the core of it: gist.github.com/FROGGS/61a3e002267bf54b1e42 | 09:03 | |
lizmat | pmichaud o/ | 09:04 | |
jnthn | FROGGS: Oh, that's not too bad | ||
pmichaud | lizmat o/ | ||
jnthn | FROGGS: But yeah, we can cheat and be faster :) | ||
FROGGS | jnthn: that's what I thought :o) | ||
.u ƌ | |||
yoleaux | U+018C LATIN SMALL LETTER D WITH TOPBAR [Ll] (ƌ) | ||
FROGGS | that one does not work yet | 09:05 | |
but the other tests from ignoremark.t pass | |||
jnthn | m: say 'ƌ'.NFD | ||
camelia | rakudo-moar 9c543b: OUTPUT«NFD:0x<018c>» | ||
jnthn | That has no decomposition. | ||
Apparently | |||
FROGGS | hmmm | ||
jnthn | m: say 'ƌ'.ord | ||
camelia | rakudo-moar 9c543b: OUTPUT«396» | ||
jnthn | m: say uniname(396) | ||
camelia | rakudo-moar 9c543b: OUTPUT«LATIN SMALL LETTER D WITH TOPBAR» | ||
jnthn | m: say uniprop(396, 'Decomp_Spec') | 09:06 | |
camelia | rakudo-moar 9c543b: OUTPUT«0» | ||
jnthn | Nope. | ||
FROGGS | so this is a unicode issue, not ours | ||
jnthn | Right | ||
lizmat | m: class A { multi method a(:$close) { say "default"; } multi method a(:$eager!, :$close) { say "eager"; } }; A.a(:eager); # expecting "eager" here | ||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6RZB3C5hn_Strange text after block (missing semicolon or comma?)at /tmp/6RZB3C5hn_:1------> 3lti method a(:$close) { say "default"; }7⏏5 multi method a(:$eager!, :$close) { say expecting an…» | ||
FROGGS | jnthn: there is also no separate TOPBAR | 09:07 | |
lizmat | m: class A { multi method a(:$close) { say "default" }; multi method a(:$eager!, :$close) { say "eager" } }; A.a(:eager); # expecting "eager" here | ||
camelia | rakudo-moar 9c543b: OUTPUT«default» | ||
FROGGS | .u TOPBAR | ||
yoleaux | U+0182 LATIN CAPITAL LETTER B WITH TOPBAR [Lu] (Ƃ) | ||
U+0183 LATIN SMALL LETTER B WITH TOPBAR [Ll] (ƃ) | |||
U+018B LATIN CAPITAL LETTER D WITH TOPBAR [Lu] (Ƌ) | |||
FROGGS | that's all | ||
lizmat | m: class A { multi method a(:$eager!, :$close) { say "eager" }; multi method a(:$close) { say "eager" } }; A.a(:eager); # change the order, and it works ? | ||
camelia | rakudo-moar 9c543b: OUTPUT«eager» | ||
lizmat | m: class A { multi method a(:$eager!, :$close) { say "eager" }; multi method a(:$close) { say "eager" } }; A.a(:close); | 09:08 | |
camelia | rakudo-moar 9c543b: OUTPUT«eager» | ||
jnthn | There may be a good reason not to consider them marks. | ||
09:08
dayangkun joined
|
|||
FROGGS | jnthn: I fix the test | 09:08 | |
jnthn | FROGGS: +1 | ||
timotimo | say eager in both methods? | 09:09 | |
jnthn | I can't think of a sane way of defining ignoremark besides Unicode's decomp_spec prop | ||
lizmat | m: class A { multi method a(:$eager!, :$close) { say "eager" }; multi method a(:$close) { say "close" } }; A.a(:close); # oops | ||
camelia | rakudo-moar 9c543b: OUTPUT«close» | ||
dalek | ast: 5ed2ff4 | FROGGS++ | S05-modifier/ignoremark.t: fix plan, and fix invalid test about ƌ being decomposable |
09:10 | |
lizmat | so, why is the order of the candidates significant? Is it intended to be that way? | ||
jnthn | lizmat: Named parameters act as constraints and we define multis with constraints as being tested in order. | 09:11 | |
lizmat | did that change recently? | 09:12 | |
implementation wise, I mean? | |||
jnthn | Not afaik | 09:13 | |
I mean, I don't think many of us patch the multi-dispatcher :) | 09:14 | ||
And I don't remember doing it any time recently | |||
FROGGS | lizmat: I remember that behaviour for a long time now | 09:15 | |
lizmat: like when implementing a trait and you forgot to mark the named param (the trait name) as mandatory | 09:16 | ||
09:17
yqt joined
|
|||
lizmat | well, somehow IO::Handle.lines(:eager) became lazy again :-( | 09:19 | |
and I'm pretty sure at one time it wasn't | 09:20 | ||
09:20
dayangkun left
|
|||
lizmat | same for IO::Handle.words btw | 09:20 | |
moritz | why doesn't IO::Handle.words .slurp in the first place? | 09:21 | |
lizmat | because if you want to run the risk of exploding memory by slurping a multi GB file | 09:23 | |
09:23
jack_rabbit left
|
|||
lizmat | you can do $handle.slurp.words ? | 09:23 | |
moritz | oh, I misunderstood | 09:24 | |
I though .words called .lines(:eager) | 09:25 | ||
and if it did that, it might as well could have called .slurp right away | |||
lizmat | indeed | ||
ab5tract | lizmat: is that MMD situation that you pointed out actually resolvable? it looks to me that such a thing would ideally be a compile time error | 09:26 | |
lizmat | you should ask jnthn that, I merely get tripped up by it from time to time :-) | 09:27 | |
ab5tract | :) | ||
brrt | i'd... think the mmd situation like that is correct, or is that wrong? | 09:29 | |
what's bad about it | |||
jnthn | It's consistent :) | 09:30 | |
Just falls out of all methods having a *%_ by default | |||
And named parameters not really being involved in MMD | |||
lizmat | well, it's bad if you're trying to augment a class with a named parameter | 09:31 | |
09:31
rba_ left
|
|||
lizmat | as you cannot force it to the top of the mmd list, can you ? | 09:31 | |
s/class/method | |||
ab5tract | it seems like something that should blow up to me.. having an optional named param and a required one in signature A, and only the required one in signature B | ||
jnthn | If you're trying to augment a class, it's already bad :P | 09:32 | |
lizmat | true, but this effectively bars you from augmenting a class that way | ||
jnthn | ab5tract: As I already said, named parameters aren't really involved in MMD, besides serving as a tie-breaker, and tie-breakers are simply tested in order. We won't be changing that in 6.0. | 09:33 | |
lizmat | I know it's a smell, but sometimes you need to make code that stinks IRL | ||
jnthn | lizmat: You could solve similar kinds of problems by .wrap-ing the method | 09:34 | |
ab5tract | in what order, though? the order of multi method declaration? the order of named params (which one would assume are hash-based and thus are barred from a consistent order) | ||
lizmat | now, that I find smelly | ||
anyways, out for some sightseeing& | 09:35 | ||
jnthn | ab5tract: Declaration order. | ||
ab5tract | anyway, not something that will likely impact me much. but it doesn | ||
jnthn | ab5tract: As far as the multi-dispatcher knows, the only interesting thing is "are there any named params in the signature". It doesn't look any deeper. | 09:36 | |
09:36
RabidGravy joined
|
|||
ab5tract | 't feel particularly cozy either | 09:36 | |
jnthn: okay, that makes a bit more sense | |||
09:42
rba_ joined
|
|||
DrForr | I don't see unsigned types in the official NativeCall documentation - Are unsigned types available and just undocumented? | 09:44 | |
FROGGS | DrForr: they are implemented, undocumented and sadly buggy right now | 09:46 | |
jnthn | Buggy? | 09:47 | |
jnthn added a bunch of tests when he implemented them... | |||
In NativeCall, I mean. Outside of NativeCall, no, we don't really do them yet. | 09:48 | ||
DrForr | Nod. I'll comment out the call for the time being. | 09:49 | |
FROGGS | jnthn: yes, they work inside of NativeCall, but at some point you loose the unsignedness when working with them before/after the call | 09:51 | |
jnthn: and there seems to be a bug with uint8 on osx, so that make test does fail there | |||
m: say EVAL 'EnumMap.new(Empty)' # hmmm | 09:56 | ||
camelia | rakudo-moar 9c543b: OUTPUT«EnumMap.new(Nil)» | ||
09:58
quester left
|
|||
FROGGS | m: say Empty.perl | 09:59 | |
camelia | rakudo-moar 9c543b: OUTPUT«Empty» | ||
09:59
grondilu joined
10:02
rba_ left
|
|||
FROGGS | m: say ().pick | 10:07 | |
camelia | rakudo-moar 9c543b: OUTPUT«Nil» | ||
10:09
darutoko- joined
10:11
darutoko left
10:12
kaare__ left
|
|||
FROGGS | hmmm | 10:14 | |
10:16
kaare__ joined
10:21
yqt left
10:24
owlsley left
10:27
Alina-malina left
10:39
chenryn left
10:48
yqt joined
10:49
vendethiel joined
10:52
uncleyea1 joined
10:53
uncleyear left
10:54
larion joined
11:00
kurahaupo left
11:06
araujo left
11:09
laouji left,
Alina-malina joined
11:13
laouji joined
11:19
Akagi201 left
11:21
chenryn joined
11:24
vendethiel left
11:26
espadrine_ joined
11:32
laouji left
11:33
laouji joined
11:36
rba_ joined
11:42
vendethiel joined
11:51
nbdsp left
11:52
PZt joined,
rba_ left
|
|||
masak | m: say +Empty | 11:55 | |
camelia | rakudo-moar 9c543b: OUTPUT«use of uninitialized value of type Empty in numeric context0» | ||
masak | m: say ~Empty | ||
camelia | rakudo-moar 9c543b: OUTPUT«use of uninitialized value of type Empty in string context» | ||
masak | m: say ?Empty | ||
camelia | rakudo-moar 9c543b: OUTPUT«False» | ||
masak | I'm not backlogged. Empty is yet another undefined value in Perl 6? | ||
vendethiel | o/, #perl6! | 11:56 | |
vendethiel backlogs | |||
masak | I like the name, by the way. far clearer than Nil or Null or None or whatever. | ||
just wondering if we only gained a new one, or if we lost an old one too. | |||
& | |||
11:57
nbdsp joined
11:58
andreoss joined
|
|||
FROGGS | masak: TL;DR: Nil is now split into Nil and Empty | 11:59 | |
12:00
rba_ joined
12:01
beastd joined
|
|||
nbdsp | my @l = 'a'..'zzz'; my $cnt=0; for @l { $cnt++ }; say $cnt; say now - INIT now; | 12:01 | |
yoleaux | 07:09Z <lizmat> nbdsp: You might want to try .lines(:eager) | ||
07:22Z <timotimo> nbdsp: it may very well be a lot faster to use the regex engine to do the work for you than to build a for loop; at least the regex engine doesn't have to provide for things like making next/last/redo possible and it might also be a tiny bit faster at "splitting into lines" in this case | |||
nbdsp | m: my @l = 'a'..'zzz'; my $cnt=0; for @l { $cnt++ }; say $cnt; say now - INIT now; | ||
camelia | rakudo-moar 9c543b: OUTPUT«182781.297819» | ||
nbdsp | timotimo: I tried regexes, they run a bit faster, the runtime is still several minutes | 12:02 | |
timotimo | OK | ||
nbdsp | I don't know, maybe if Perl 6 is planned for release, there is a plan for significant speed improvements in this kind if functionality. | ||
timotimo | lizmat just fixed :eager to actually apply | ||
vendethiel | Interesting choice of Foo{} (that reminds me of C++ for "some" reason) | ||
timotimo | yes, of course; that's what the GLR is about | ||
nbdsp | timotimo: well, everyone can try to read this file raw.githubusercontent.com/kevina/w...speech.txt into map and see how things are going . | 12:05 | |
timotimo | thanks :) | ||
DrForr | Wordnet? | 12:07 | |
vendethiel | irclog.perlgeek.de/perl6/2015-05-07#i_10565810 <- I'm glad we're not adopting the JMM (Java Memory Model) :-) | ||
m: class A{method m is rw is cached { my $ = rand; } }; my A $a .= new; say $a.m; $a.m = 50; say $a.m; say A.new.m; | 12:12 | ||
camelia | rakudo-moar 9c543b: OUTPUT«use of uninitialized value of type Empty in string context in block <unit> at /tmp/Gw8RTr_KB9:10.141107619007296use of uninitialized value of type Empty in string context in block <unit> at /tmp/Gw8RTr_KB9:1use of uninitialized value of ty…» | ||
12:13
yqt left,
yqt joined
|
|||
andreoss | m: say 1 before 2 | 12:16 | |
camelia | rakudo-moar 9c543b: OUTPUT«True» | ||
andreoss | m: say 1 less 2 | 12:17 | |
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qIgjKumpz_Two terms in a rowat /tmp/qIgjKumpz_:1------> 3say 17⏏5 less 2 expecting any of: infix infix stopper postfix statement end statem…» | ||
vendethiel | m: class X { method y { ENTER { say $++ } }; }; X.y(); # expected? | ||
camelia | rakudo-moar 9c543b: OUTPUT«01» | ||
12:17
raiph joined
|
|||
vendethiel | m: class X { method y { ENTER { say $++ } }; }; X.new.y(); # huh | 12:18 | |
camelia | rakudo-moar 9c543b: OUTPUT«01» | ||
vendethiel | Am I getting that right that Nil flattens to an empty list but Empty doesn't? | 12:19 | |
m: my @a = 1, 2, Nil, Empty, 3; say @a.perl | 12:20 | ||
camelia | rakudo-moar 9c543b: OUTPUT«[1, 2, Any, 3]<>» | ||
vendethiel | m: my @a = 1, 2, Nil, 5, Empty, 3; say @a.perl # I'm so stupid | ||
camelia | rakudo-moar 9c543b: OUTPUT«[1, 2, Any, 5, 3]<>» | ||
vendethiel | Okay, seems like I got it the other way around :-) | ||
dalek | ast: 9a3666c | FROGGS++ | S05-match/perl.t: RT #125138 fudge tests because of Empty/Nil confusion |
12:22 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125138 | ||
vendethiel | m: say (flat (1, Empty, 2, Nil, 3, Any, 4)).perl | 12:27 | |
camelia | rakudo-moar 9c543b: OUTPUT«(1, 2, Nil, 3, Any, 4)» | ||
12:37
abraxxa left,
chenryn left
12:38
chenryn joined
12:41
nbdsp left
12:44
cygx joined
|
|||
cygx | o/ | 12:44 | |
.tell nbdsp try slurp('part-of-speech.txt').match(:g, /<-[\t\n]>+/)>>.Str.hash | 12:46 | ||
yoleaux | cygx: I'll pass your message to nbdsp. | ||
12:46
chenryn left
|
|||
cygx | NativCall feature request: the ability to pass in a pointer and a signature and get back something callable | 12:48 | |
FROGGS | hmmm | 12:50 | |
cygx: please ticket it | |||
12:50
laouji left
|
|||
timotimo | cygx: is that much faster? | 12:52 | |
cygx | timotimo: it's more about the ability to use function pointers | ||
12:53
mr-foobar left,
laouji joined
|
|||
timotimo | no, i mean the slurp + match thing | 12:53 | |
cygx | timotimo: took ~30s for me, not the several minutes nbdsp spoke of | 12:54 | |
12:54
skids joined
|
|||
timotimo | good | 12:55 | |
thank you | |||
cygx | FROGGS: where should that ticket go? Rakudobug? MoarVM issue? | ||
FROGGS | cygx: RT (rakudobug) | 12:56 | |
I'd say | |||
the issue tracker in the zavolaj repository would also work | 12:57 | ||
cygx | is there some magic tag like [FEATURE-REQUEST] I should add? | 12:58 | |
timotimo | ah! the joys of befriending cat owners | ||
12:59
araujo joined
|
|||
hoelzro | morning #perl6 | 13:00 | |
timotimo | morning hoelzro! | ||
13:01
nbdsp joined
|
|||
hoelzro | ahoy timotimo! | 13:06 | |
13:06
skids left
13:09
zengargoyle joined
13:10
laouji left
|
|||
vendethiel | it's funny I just realized that having operator overloading through subs makes it lexical instead of object-scoped | 13:13 | |
nbdsp | cygx: thanks, I'll try it. But 'several minutes' was related to my particular machine (although raydiak also reported about 7 minutes). It makes more sense to speak about relative times (e.g. compared to Python speed executing this task.The python code is like this: f = open( part-of-speech.txt)\nm={}\nfor x in f\n\ta,_,b=x.partition("\t")\n\tm[a]=b | ||
yoleaux | 12:46Z <cygx> nbdsp: try slurp('part-of-speech.txt').match(:g, /<-[\t\n]>+/)>>.Str.hash | ||
timotimo | vendethiel: that's both good and bad | ||
vendethiel | that might be *very* surprising to some, for sure :-) | ||
13:14
muraiki joined
|
|||
vendethiel | when you take "Any" (passed through another module) and don't get the operators then | 13:14 | |
hoelzro | with the CURLI changes that happened recently, does Rakudo no longer look for .mbc files in CURLF locations in @?INC ? | ||
timotimo | vendethiel: it also makes it harder to "just" override "cmp" and have sort work for your new class | 13:15 | |
cygx | nbdsp: I did not time the other apporaches, but they did take significantly longer (as in multiple minutes) on my machine as well | 13:16 | |
FROGGS | hoelzro: it should still look at CURLF | ||
vendethiel | right. but it gives a performance boost because it can be resolved at compile-time | ||
13:16
uncleyea1 is now known as uncleyear,
uncleyear left,
uncleyear joined
|
|||
hoelzro | FROGGS: my mistake; I screwed up the naming of the mbc file =/ | 13:21 | |
thanks for clarifying! | |||
13:23
airdisa joined
|
|||
FROGGS | ahh, k :o) | 13:23 | |
13:26
Celelibi left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:32
tinyblak joined
|
|||
FROGGS | m: say ordfirst('ä') | 13:35 | |
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YoTddDSatZUndeclared routine: ordfirst used at line 1» | ||
FROGGS | m: say nqp::ordfirst('ä') | ||
camelia | rakudo-moar 9c543b: OUTPUT«The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp::operations in your Perl6 code, you must add a: use nqp;to the outer …» | ||
FROGGS | m: use nqp; say nqp::ordfirst('ä') | ||
camelia | rakudo-moar 9c543b: OUTPUT«228» | ||
13:35
Celelibi joined
13:40
Akagi201 joined,
rurban joined
13:44
larion left
13:52
Foxcool left
13:53
Foxcool joined
|
|||
cygx | .tell jnthn dynload might need patching: github.com/MoarVM/MoarVM/issues/214 | 13:55 | |
yoleaux | cygx: I'll pass your message to jnthn. | ||
14:01
rba_ left
14:02
larion joined
|
|||
zostay | m: grammar Foo { token TOP { 'x' } }; class FooAct { method TOP($/) { 'x' ~~ /^/ } }; Foo.parse('x', :actions(FooAct.new)) | 14:02 | |
camelia | rakudo-moar 9c543b: OUTPUT«Cannot assign to a readonly variable or a value in method TOP at /tmp/el0Kn7dAJG:1 in regex TOP at /tmp/el0Kn7dAJG:1 in block <unit> at /tmp/el0Kn7dAJG:1» | ||
zostay | is there a way to use a regex within an action class method? | 14:03 | |
14:04
aborazmeh left
14:05
jepeway left
14:06
kaare__ left,
jepeway joined
14:07
raiph left
|
|||
moritz | zostay: yes, by not using $/ as parameter | 14:08 | |
zostay: because that's the problem here: $/ is a parameter, and thus read-only; the regex match tries to assign its result to it, thus the error | 14:09 | ||
14:10
airdisa_ joined,
Hor|zon joined
|
|||
zostay | thanks | 14:11 | |
14:12
airdisa left,
cygx left,
chenryn joined
|
|||
zostay | i thought maybe it had to be $/ because make wasn't working without that, but i can call the .make() method instead | 14:14 | |
14:17
chenryn left
14:24
chenryn joined
|
|||
moritz | correct | 14:24 | |
also, you can use an inner scope | |||
that has its own $/ | |||
(maybe force it with 'my $/') | |||
and then regex-match inside the inner scope, and make() in the outer scope | 14:25 | ||
though that sounds much more complicated than do a $match.make($value) | |||
14:25
thou joined
14:26
skids joined
14:30
brrt left
14:39
rurban left
14:47
mr-foobar joined
14:48
FROGGS left,
gfldex joined
|
|||
hoelzro | can anyone point me in the direction of the code that initializes the dispatcher object retrieved by nqp::p6finddispatcher('callsame')? | 14:49 | |
there's a bug I found I'd like to dig into after work | |||
also, if something is missing from doc/Changelog post-release, is it ok to go in and edit the corresponding section? | 14:53 | ||
14:56
cognominal left
14:57
airdisa_ left
14:59
rba_ joined
|
|||
pmichaud | hoelzro: yes, I think it's okay to edit the corresponding section. | 15:05 | |
15:06
lizmat left
|
|||
TimToady | pmichaud: welcome to Norway :) | 15:11 | |
15:12
FROGGS joined
|
|||
TimToady | as I suspected, delisting Nil wasn't all that hard, but I had to introduce Empty (at least temporarily) to handle the list comprehensions because I couldn't get them to just 'else next' | 15:13 | |
15:14
yqt left
|
|||
TimToady | and I couldn't just use (), because that is (for now) still a Parcel, which doesn't really go away unless you flatten | 15:14 | |
15:16
rba_ left,
lizmat joined
15:17
bjz joined
|
|||
lizmat | hoelzro: please do, it's a work in progress :-) | 15:20 | |
pmichaud | TimToady++ | ||
TimToady | m: say Empty ~~ Nil | 15:22 | |
camelia | rakudo-moar 9c543b: OUTPUT«True» | ||
15:22
_mg_ left
|
|||
pmichaud | time for me to head to the panel event... bbl | 15:22 | |
TimToady | have fun | ||
15:23
chenryn left
|
|||
jnthn | hoelzro: Search for $*DISPATCHER in Actions.nqp | 15:27 | |
yoleaux | 13:55Z <cygx> jnthn: dynload might need patching: github.com/MoarVM/MoarVM/issues/214 | ||
jnthn is also in Oslo :) | |||
arnsholt | Welcome to the unseasonably nice weather =) | 15:28 | |
15:29
ab5tract left
|
|||
TimToady will have to settle for Yosemite today... | 15:30 | ||
15:31
diana_olhovik left
|
|||
jnthn | TimToady: Hard life :P | 15:35 | |
15:36
rba_ joined
|
|||
TimToady | well, the road through Yosemite isn't *supposed* to be open this early, but there's no snowpack to speak of this year... | 15:37 | |
jnthn | That's not cool... :P | ||
dalek | pan style="color: #395be5">perl6-examples: 1722d24 | (Andrei Osipov)++ | categories/euler/ (2 files): [euler] problem 98 |
15:42 | |
pan style="color: #395be5">perl6-examples: 27a3bf0 | (Andrei Osipov)++ | categories/euler/ (2 files): [euler] problem 99 |
|||
pan style="color: #395be5">perl6-examples: ceadb2f | (Andrei Osipov)++ | t/categories/euler.t: [euler] tests for p99, p98 |
|||
pan style="color: #395be5">perl6-examples: e117c17 | (Andrei Osipov)++ | categories/euler/prob054-andreoss.pl: [euler] fixed indentation in p54 |
|||
15:43
lizmat left
15:45
zakharyas left
|
|||
raydiak | m: dir '.' | 15:46 | |
camelia | ( no output ) | ||
raydiak | m: say dir '.' | ||
camelia | rakudo-moar 9c543b: OUTPUT«"/home/camelia/.bash_history".IO "/home/camelia/p6eval-token".IO "/home/camelia/std".IO "/home/camelia/.ssh".IO "/home/camelia/star".IO "/home/camelia/perl5".IO "/home/camelia/.perl6".IO "/home/camelia/.rcc".IO "/home/camelia/p1".IO "/home/camelia/nqp-js".…» | ||
raydiak | m: say 'foobar'.IO.e | ||
camelia | rakudo-moar 9c543b: OUTPUT«False» | ||
raydiak | m: use lib "foobar"; use foo; say 'foobar'.IO.e | 15:47 | |
camelia | rakudo-moar 9c543b: OUTPUT«===SORRY!===Could not find foo in any of: file#foobar, file#/home/camelia/.perl6/2015.04-181-g9c543b5/lib, inst#/home/camelia/.perl6/2015.04-181-g9c543b5, file#/home/camelia/rakudo-inst-1/share/perl6/lib, file#/home/camelia/rakudo-inst-1/share/perl6/ven…» | ||
raydiak | m: say 'foobar'.IO.e | ||
camelia | rakudo-moar 9c543b: OUTPUT«True» | ||
raydiak | "use lib 'foo';" followed by "use Anything;" whether Anything exists or not, causes foo to be created. | 15:48 | |
15:49
rba_ left
15:50
rba_ joined
15:52
jeffreykegler joined
|
|||
raydiak | #125141 | 15:53 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125141 | ||
jeffreykegler | Just thought I'd drop in with a note about a syntax Marpa has adopted from Perl 6 | 15:54 | |
15:54
bbkr left
15:55
rba_ left
|
|||
jeffreykegler | Marpa in a parser which allows sequence statements, of the kind "seq ::= item*" and it's nice to be able to specify a separator which you can do in Perl 6 | 15:55 | |
15:55
lolisa left
|
|||
jeffreykegler | using Perl6's % and %% modifiers. | 15:55 | |
The new version of Marpa, Kollos, will use the % and %% modifiers, and introduce two others | 15:56 | ||
The %- modifier will be a synonym for % -- the hyphen intended to indicate separation must occur between items -- users not familiar with Perl 6 may find this clearer. | 15:57 | ||
Similarly, Kollos will have a %$ separator, which means that separation is actaully termination -- a separator *must* come after each item. | 15:58 | ||
So %% , in effect, is the same as allowing both %- and %$ | 15:59 | ||
In other news, there's work on a Perl 6 port of the low-level interface of Marpa: irclog.perlgeek.de/marpa/2015-05-07#i_10561384 | 16:01 | ||
16:03
khisanth__ is now known as Khisanth,
telex left
16:04
telex joined
16:05
diana_olhovik joined
|
|||
vendethiel | maybe our %% should be "%$?" and we should have "%$" :P | 16:07 | |
jeffreykegler | While I brought them up with the idea Perl 6 might want to adopt them, I will note that, while they serve the same purpose, the context is very different between Marpa and Perl 6. | 16:13 | |
raydiak | cool news :) though I do wonder if <elem> %$ <sep> isn't just a less legible version of [<elem> <sep>]* | ||
<elem>* %$ <sep> I mean | 16:14 | ||
vendethiel | troo :-) | 16:15 | |
just like 'a' ~ 'b' 'c' is the same as 'a' 'b' 'c'? | |||
jeffreykegler | In Marpa these modifiers are declarative -- they describe the syntaxes allowed and how they are implemented is not described. In Perl 6 they are procedural -- their description is in terms like "end matching here". | ||
raydiak | vendethiel: istr there's a semantic difference between those two wrt LTM or something | 16:17 | |
16:17
rba_ joined
|
|||
vendethiel | I think it's regarding error messages/backtracking, but LTM might be something as well | 16:17 | |
raydiak | I can see how %$ would seem like an obvious variant to add to the collection though | 16:18 | |
16:22
_mg_ joined
16:26
Akagi201 left
16:27
fhelmberger left
16:31
rmgk left
16:32
colomon left,
rba_ left
16:33
rba_ joined,
rmgk joined
16:36
colomon joined
16:38
rba_ left
16:39
_mg_ left
|
|||
tony-o | timotimo: do you happen to know if anything installing to a CUR now instead of a CUL ? I'm looking through my dirs to find a MANIFEST file but i'm not seeing much | 16:43 | |
16:43
kaare__ joined
|
|||
tony-o | .tell timotimo i don't see anything out of the box using a CUR but Pluggable is updated to work with the changes to the way @*INC reports CU*s | 16:45 | |
yoleaux | tony-o: I'll pass your message to timotimo. | ||
andreoss | m: say @*INC.perl | 16:46 | |
camelia | rakudo-moar 9c543b: OUTPUT«["file#/home/camelia/.perl6/2015.04-181-g9c543b5/lib", "inst#/home/camelia/.perl6/2015.04-181-g9c543b5", "file#/home/camelia/rakudo-inst-1/share/perl6/lib", "file#/home/camelia/rakudo-inst-1/share/perl6/vendor/lib", "file#/home/camelia/rakudo-inst-1/share/…» | ||
hoelzro | thanks pmichaud, lizmat, jnthn! | 16:48 | |
tony-o | andreoss: none of those are repos - there is one format of a repo that installs modules as '###' and keeps a MANIFEST[.json] file relating what each ### provides from a module/package perspective and which module/package each file belongs to | 16:49 | |
Pluggable combs all of @*INC looking for modules that begin with Your::Class::[Plugin|whatever]:: | 16:50 | ||
andreoss | when i push something in @*INC should i prefix it with "file#" too? | ||
tony-o | it gets handled for you last i checked, you can also do 'use lib "lib"' | 16:51 | |
use lib 'lib' prefixes it | 16:52 | ||
nbdsp | I tried slurp('part-of-speech.txt').match(:g, /<-[\t\n]>+/)>>.Str.hash, this improved things, but it still runs almost 4 minutes on my machine (Python's code runs about 2 seconds). Sorry for the maybe silly question, but is the current executing speed of this task (reading file into map) is considered within acceptable limits? | 16:53 | |
16:54
jeffreykegler left,
mr_ron joined
|
|||
tony-o | depends on how big that file is, can you gist it? | 16:57 | |
nbdsp | tony-o : raw.githubusercontent.com/kevina/...speech.txt | 16:59 | |
the file format is 'aaa\tbbb'. The task is to read it into map : m<aaa> = 'bbb' | 17:01 | ||
17:02
_mg_ joined
|
|||
tony-o | are you expecting bbb to start with a pipe in most of these cases | 17:02 | |
nbdsp | Does it make difference in this code: slurp('part-of-speech.txt').match(:g, /<-[\t\n]>+/)>>.Str.hash ? | 17:03 | |
tony-o | i'm golfing it to figure out where your speed is | 17:05 | |
nbdsp | raydiak ealier today reported that this task takes 7 minutes on his machine. | ||
tony-o | that slurp thing took 18s on my machine | 17:11 | |
how long does it take for your machine to run 'my %r = "part-of-speech.txt".IO.slurp.lines.map({ .split("\t", 2) });' | 17:12 | ||
17:16
Isp-sec joined
|
|||
tony-o | nbdsp: gist.github.com/tony-o/799419e6807c95ef9927 | 17:17 | |
4 to 7 minutes seems excessive | 17:19 | ||
raydiak | that one took 53s here | 17:20 | |
tony-o | raydiak: the map version ? | 17:21 | |
raydiak | time perl6 -e '%r = slurp("part-of-speech").match(:g, /<-[\t\n]>+/)>>.Str.hash; %r.keys.elems.say;' | ||
I'm wondering if it isn't the split in the version I tried before that takes so long | |||
tony-o | the one you ran was the original one, .match is the one nbdsp posted | 17:22 | |
ugexe | andreoss: dont push to @INC | 17:23 | |
raydiak digs into last night's irclog (that was last night for me) | |||
tony-o | the .map for me is slower, more in the area of 1m20 | 17:24 | |
raydiak | the original question: irclog.perlgeek.de/perl6/2015-05-08#i_10567007 | ||
thing I ran last night: my $s = "file".IO.slurp; my %m; for $s.lines { my @pair = $_split("\t"); %m{@pair[0]} = @pair[1];} | 17:25 | ||
tony-o | ah ^ i just got into it about 40 minutes ago :-) | ||
raydiak | glad a little tweaking at least cut it down to under a minute :) | 17:26 | |
17:26
Akagi201 joined
|
|||
raydiak was trying to convince nbdsp to break it up into more lines and time the different steps | 17:27 | ||
%r = slurp("part-of-speech.txt").comb(/<-[\t\n]>+/); %r.keys.elems.say; drops it to 45s here | 17:30 | ||
17:30
Sysaxed joined
|
|||
Sysaxed | m: @arr = <one two three>; | 17:30 | |
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S2BJNOx01uVariable '@arr' is not declaredat /tmp/S2BJNOx01u:1------> 3@arr7⏏5 = <one two three>; expecting any of: postfix» | ||
Sysaxed | why does it say "expecting any of: postfix"? | 17:31 | |
ugexe | tony-o: file# and inst# are both compunitrepos | ||
Sysaxed | what does it mean? | ||
tony-o | m: my @arr = qw<one two three>; | ||
camelia | ( no output ) | ||
ugexe | CompUnitRepo::Local::File and CompUnitRepo::Local::Installation | 17:32 | |
Sysaxed | tony-o: I know, I know | ||
tony-o: and the first part of the message is correct | |||
tony-o | ugexe: they're both CURLs | ||
17:32
Akagi201 left
|
|||
Sysaxed | but I'm just wondering what kind of a postfix could it possibly want? | 17:32 | |
"my" is not a postfix? | |||
tony-o | i was wondering if timotimo knew about a change for CURI | ||
Sysaxed | or is it? | ||
tony-o | m: @arr = qw<one two three>; | ||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tvRWIPYWstVariable '@arr' is not declaredat /tmp/tvRWIPYWst:1------> 3@arr7⏏5 = qw<one two three>; expecting any of: postfix» | ||
tony-o | weird | 17:33 | |
17:33
rba_ joined
|
|||
raydiak | it's a good question, what postfix is valid on an undeclared var name? :) | 17:33 | |
std: @arr = qw<one two three>; | 17:34 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable @arr is not predeclared at /tmp/6RtAQPVoze line 1:------> 3<BOL>7⏏5@arr = qw<one two three>;Check failedFAILED 00:00 137m» | ||
raydiak | ^ that's what we want, I expect... | 17:35 | |
Sysaxed | raydiak: I'm not sure. It actually says "'@arr' is not declared" which is 100% correct | ||
mr_ron | perl5 and use strict gives a similar legible error | ||
Sysaxed | raydiak: but then goes on and tells about a postfix... | ||
ugexe | if you just want to load a single compunit i think the expected way is $cur.load, but im not sure that works completely | 17:38 | |
17:38
rba_ left
|
|||
ugexe | er, $cu.load | 17:38 | |
tony-o | it's for Pluggable so it's combing instead of loading | ||
raydiak | ah ha... | 17:39 | |
m: @arr.DUMP.say | |||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yzGZRjPUR3Variable '@arr' is not declaredat /tmp/yzGZRjPUR3:1------> 3@arr.DUMP.say7⏏5<EOL> expecting any of: method arguments» | ||
raydiak | hm, that worked locally, weird | ||
Sysaxed | raydiak: nope, does not work | 17:41 | |
geekosaur wonders why a prefix would be proposed as a postfix | |||
(""my" is not a postfix?" no, it's a prefix) | |||
Sysaxed | geekosaur: well, that's what I thought :D | 17:42 | |
that's why I came here, right | |||
17:42
araujo left
|
|||
geekosaur | I think it's working from the position that error recovery left it in statement context and it's looking for a statement postfix, maybe? | 17:42 | |
but not certain and don't have the production rules for p6's grammar in front of me just now | 17:43 | ||
17:45
araujo joined
|
|||
raydiak | yep playing with it, kinda looks like it parses the whole statement, complains about the undeclared name, then gives you suggestions for what would have been valid where it left the cursor, at the end of the statement, falsely assuming that the error was where parsing stopped | 17:47 | |
m: @a.a | |||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1kqYZUJBsZVariable '@a' is not declaredat /tmp/1kqYZUJBsZ:1------> 3@a.a7⏏5<EOL> expecting any of: method arguments» | ||
raydiak | now it expects method arguments :) | ||
m: @a.a() | 17:48 | ||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/A7cCYyunNXVariable '@a' is not declaredat /tmp/A7cCYyunNX:1------> 3@a.a()7⏏5<EOL> expecting any of: argument list» | ||
geekosaur | remember that = is special | ||
raydiak | I don't know very much about it, really | 17:49 | |
geekosaur | so it's realizing the problem there after eating .a (in theory it could do so at . but I suspect the rule consumes the method name before it's recognized that it's applying to an undefined name) | 17:50 | |
Sysaxed | and then you give it an argument list | ||
m: @a.('hello', 'world'); | |||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gQD8OfRsShVariable '@a' is not declaredat /tmp/gQD8OfRsSh:1------> 3@a.('hello', 'world')7⏏5;» | ||
Sysaxed | hooray, correct error! | ||
geekosaur | but for assignment it reads the whole assgnment before gettng there | ||
nbdsp | >"that one took 53s here" - Sorry, I simply don't know what is considered fast or not so fast in the Perl 6. Is 53 seconds is OK in this case? | ||
Sysaxed | nbdsp: which case? | 17:51 | |
raydiak | correct error, wrong curcor position still :) | ||
*cursor | |||
nbdsp | In case considered here: reading 250,000 lines into map | ||
geekosaur | (also you can diosable strict checking, IIRC, and get p5-like behavior where the assignment implicitly declares) | 17:52 | |
Sysaxed | geekosaur: sooo, should I create a bug report? | 17:53 | |
geekosaur | it is certainly LTA | ||
we're just trying to nail down what the exact bug *is* | 17:54 | ||
not saying it's not one | |||
Sysaxed | :) | ||
raydiak | note that in @a.a() there is no = but it still definitely acts weird | ||
raydiak should ask fewer questions and read the grammar more | |||
17:54
andreoss left
|
|||
geekosaur | yes, I conjectured earlier it reralizes the problem only after parsing the .a | 17:55 | |
and that's the context the "expecting:" is generated from | |||
tony-o | nbdsp: it's OK right now albeit slow | ||
geekosaur | so actually similar issue of the error using the wrong context, it just doesn't eat the whole statement | 17:56 | |
raydiak | ah got it | ||
Sysaxed | nbdsp: I've heard that if you find something slow then you can submit a test case for perlbench or something | ||
nbdsp | tony-o : thanks! I guess I should run Perl 6 on a more fast machine than. | ||
tony-o | most of that time is spent in the .match it looks like | ||
Sysaxed | nbdsp: this way somebody might eventually pick it up and optimize it | ||
raydiak | I tried it in some other expressions and saw it doesn't eat the whole expression | ||
so that seems to be congruent | 17:57 | ||
geekosaur | IIRC assignment is macro-like, turns into something internally like <op:=>(<var>,<value>) so it reads the whole expression and only later realizes the thing in <var> was not declared | 17:58 | |
nbdsp | Sysaxed: thanks, I just didn't know if such a speed is considered an issue or this is just a price for all the cool features. | ||
Sysaxed | nbdsp: no, it is indeed slow | 17:59 | |
nbdsp: but there are constant performance improvements | |||
tony-o | ++ | ||
Sysaxed | nbdsp: I actually like following p6weekly.wordpress.com/ | ||
nbdsp: it kinda gives me an idea of how fast things are progressing | 18:00 | ||
18:00
larion left
|
|||
geekosaur | correctness has been the main worry until recently, performance is becoming the focus with things like the GLR expected to solve a bunch of performance issues all at once.. but still leaving many to be addressed | 18:00 | |
nbdsp | Thanks for the link. Will check it regularly. | ||
vendethiel | m: say "hi" | 18:01 | |
camelia | rakudo-moar 9c543b: OUTPUT«hi» | ||
vendethiel | m: say "ae be ce".grep(/<|w>+/) | ||
^ is that a known problem? | |||
raydiak | geekosaur: that makes sense. do you know how we correctly handle errors in those cases? is it supposed to be moving the cursor back to the beginning of the name when it sees the error, or is it supposed to not show the irrlevant suggestions, or...???... | 18:02 | |
camelia | rakudo-moar 9c543b: OUTPUT«Memory allocation failed; could not allocate 155504 bytes» | ||
vendethiel | do I not get how <|w> works? | ||
geekosaur | I think the 'expecting' part makes more sense with syntax-related errors, this is a semantic issue in a syntactically correct statement | ||
i.e. it doesn't really belong with or add to the error message | |||
18:03
zengargoyle left
|
|||
tony-o | nbdsp: are you using JVM or MOAR ? | 18:03 | |
18:03
zengargoyle joined,
rba_ joined
|
|||
nbdsp | I have both, and run this on Moar. | 18:03 | |
geekosaur | inb *some* cases a semantic error might actually be because of mangled syntax, but I'm not sure that is worth consideration here | ||
Sysaxed | nbdsp: there was a great talk about performance in perl 6 | 18:05 | |
nbdsp: jnthn.net/papers/2014-yapceu-performance.pdf | |||
nbdsp: here is the video www.youtube.com/watch?v=bhAIyrk2ogo | |||
you can actually skip to the last slides for a couple of cool graphs | 18:06 | ||
nbdsp | Sysaxed: thanks, will check it. | ||
18:08
zengargoyle left
18:10
rba_ left
18:14
zengargoyle joined
|
|||
raydiak | geekosaur: I'm looking at where that error gets thrown; what type of thing is in $*W, so I can read and understand its methods? | 18:21 | |
ugexe | $*W is World | 18:26 | |
18:26
cygx joined
|
|||
cygx | o/ | 18:26 | |
raydiak | cool thanks :) | 18:27 | |
\o cygx | |||
18:27
yqt joined
|
|||
cygx | nbdsp: see gist.github.com/cygx/c1d06377387178097c58 for a low-level implementation | 18:28 | |
nbdsp: as the optimizer gets smarter, the other solutions should come closer to that performance | 18:29 | ||
nbdsp | cygx: thanks! thats very helpful. | ||
18:30
zengargoyle left
18:31
cognominal joined
18:32
nbdsp left
18:33
Guest96 left
18:36
domidumont1 left
18:42
rba_ joined
|
|||
raydiak | this is a very sad area of code to work in...worries, sorrows, crying... | 18:44 | |
18:47
rba_ left
18:49
_mg_ left
18:57
cognominal left
19:03
spider-mario joined
19:07
zengargoyle joined
19:10
rindolf left,
arnsholt left
19:11
arnsholt joined,
zengargoyle left
19:16
Akagi201 joined,
_mg_ joined
19:19
mr_ron left
19:21
Akagi201 left
19:27
mr_ron joined,
zengargoyle joined
|
|||
raydiak | heh I can't recommend editing the perl 6 grammar directly on github unless you like to listen to your CPU fan scream for the fun of it :) | 19:30 | |
but anyway I do have a fix for that weird undeclared var error if anyone feels confident enough to merge it: github.com/rakudo/rakudo/pull/422 | 19:32 | ||
19:34
nbdsp joined
|
|||
dalek | ast: a8ce3b9 | usev6++ | S32-num/int.t: Use unique ticket number for 'Inf and NaN NYI for Int' |
19:34 | |
ast: 2edbb00 | usev6++ | S32-num/int.t: Replace one instance of eval_dies_ok with throws_like |
|||
ast: 66999bf | usev6++ | S04-declarations/constant.t: Unfudge passing test for unicode constant name |
|||
nbdsp | cgyx: your low level implementation is awesome! it runs about 5 seconds. thanks! | 19:37 | |
cygx | nbdsp: no problem | 19:41 | |
19:41
mr_ron left
|
|||
cygx | nbdsp: just make sure that the last line terminates with \n, or it'll blow up if you use the script as-is ;) | 19:43 | |
19:43
rba_ joined
|
|||
masak .oO( n: The Terminator ) | 19:44 | ||
masak .oO( "I'll be last" ) | |||
masak .oO( "Hasta la vista, script as-is" ) | |||
19:45
zengargoyle left
19:46
zoosha_ left,
zengargoyle joined
|
|||
masak | Perl 6: come for the language semantics, stay for the puns. | 19:47 | |
19:48
rba_ left
|
|||
masak | ...or possibly the other way around... | 19:49 | |
cygx | nbdsp: of course, one could also just add the line `$nl = $chars if $nl < 0;` - but where's the fun in that ;) | ||
arnsholt | masak: Or both =) | ||
19:50
cognominal joined
19:52
tinyblak left
|
|||
FROGGS | implementing ignoremark is not so much fun :o( | 19:54 | |
masak .oO( what have you got against Mark? ) | 19:55 | ||
19:56
zoosha joined
19:58
_mg_ left
20:01
kaare__ left
|
|||
bartolin | m: constant $foo = 42; try { $foo = 21 }; say "alive" | 20:01 | |
camelia | rakudo-moar 9c543b: OUTPUT«alive» | ||
bartolin | m: constant $foo = 42; try { $foo := 21 }; say "alive" | ||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tXGQRfuDW3Cannot use bind operator with this left-hand sideat /tmp/tXGQRfuDW3:1------> 3constant $foo = 42; try { $foo := 21 7⏏5}; say "alive"» | ||
bartolin | ^^ the second evaluation is okay to fail at compile time, isn't it? | 20:02 | |
FROGGS | I... I ge | ||
bartolin | also: hi, #perl6! | ||
FROGGS | I... I guess so | ||
hi bartolin | |||
masak | sure, any rebinding of constants should be an error. the earlier the better. | 20:03 | |
that cannot ever work at runtime. | |||
FROGGS | and try is not supposed to catch that? | ||
wow, I got character classes with ignoremark to work... | 20:04 | ||
at least for the few tests I got | |||
masak | FROGGS: what I'm saying is I'm fine with it failing to compile, and `try` feels more like for things that may or may not work, not things that are guaranteed to fail as soon as you run them. | 20:05 | |
bartolin | FROGGS: are you still at the GPW? | 20:06 | |
FROGGS | bartolin: sort of | ||
bartolin: I'm in my hotel room | |||
masak: k | |||
masak | FROGGS: think of it this way: the `constant` keyword is a compile-time assertion that the value is not going to be messed with. | 20:07 | |
and so we're free to catch things at compile time. | |||
bartolin | FROGGS: I'm a bit sad that I didn't have time to go to Dresden, too. but maybe next year ... | 20:08 | |
FROGGS: hope you had/have fun there! | 20:09 | ||
dalek | ast: f7415ae | usev6++ | S04-declarations/constant.t: Use unique ticket number for similiar tests |
20:10 | |
ast: f5deb5c | usev6++ | S04-declarations/constant.t: Fix two tests which relied on try catching a compile time error |
|||
FROGGS | bartolin: ohh yes, it was quite fun | ||
bartolin: next time seems to happen in Nuremberg | 20:11 | ||
bartolin | FROGGS: oh, I didn't visit Nuremberg yet :) | 20:12 | |
20:15
araujo left
|
|||
Sysaxed | Haha, so I was wondering why unicode stuff does not work properly in my terminal, and it turned out that I was actually running xterm instead of urxvt | 20:20 | |
and indeed, cannot tell the difference files.progarm.org/2015-05-08-23150..._scrot.png | |||
20:20
zengargoyle left
20:21
grondilu left
20:22
zengargoyle joined
|
|||
Sysaxed | At the same time, I'm still getting this: "------> @bâ = <hello world>;", as far as I understand that symbol should be rendered as an arrow, right? | 20:22 | |
20:22
mr-foobar left
|
|||
Sysaxed | hmm there's something wrong with my locale... | 20:23 | |
20:23
mr-foobar joined
|
|||
Sysaxed | OH right | 20:24 | |
got it | |||
raydiak | .u ⏏ | 20:26 | |
yoleaux | U+23CF EJECT SYMBOL [So] (⏏) | ||
raydiak | close enough to an arrow :) | ||
20:30
muraiki left
|
|||
masak | it is an arrow. on top of a box. | 20:34 | |
20:36
darutoko- left
20:37
zengargoyle left
20:39
domidumont joined
|
|||
dalek | ast: 692d7be | usev6++ | S05-modifier/my.t: Unfudge 4 passing tests, fix test no. 5 |
20:40 | |
bartolin | ^^ could someone review that commit, please? as in: was the last test wrong (nok 'c3' ~~ &hasstate) ? | 20:43 | |
20:44
dolmen joined,
zengargoyle joined
|
|||
masak reviews | 20:44 | ||
20:45
diana_olhovik left
|
|||
bartolin | thanks, masak++ | 20:45 | |
masak | yeah, that change makes a lot of sense. | 20:46 | |
bartolin | nice, another ticket can be closed :-) | 20:47 | |
masak | the (corrected) test as such is not one I'd've written, but I'm hard-pressed to explain why not. | ||
a first stab at explaining why: testing not-c4 is a lot less specific than testing for c3 (which you know to expect, so might as well test for it). | 20:48 | ||
but if you do that, it's quite clear that you're testing nothing new compared to the c2 test. | |||
bartolin | *nod* | 20:49 | |
masak | this has been masak's mini-course "Don't Write Tests Because You Have To, Write Tests Because You Have Something To Test" :) | 20:53 | |
20:53
zengargoyle left
|
|||
bartolin | this goes into the ticket :-) | 20:53 | |
20:54
zengargoyle joined
|
|||
masak | :P | 20:54 | |
20:55
domidumont left
20:56
skids left
|
|||
raydiak | probably leaving soon but, can anyone explain what is being accomplished with $/.PRECURSOR and $*W.throw(:precursor) in src/Perl6/{Actions,World}.nqp ? I made a PR which uses it and seems to do the right thing but it makes me uneasy not knowing the full why and how of it. | 20:59 | |
raydiak just found github.com/perl6/nqp/blob/5e9f7b8c...r.nqp#L731 | 21:01 | ||
21:04
Akagi201 joined
21:10
Akagi201 left
21:16
Sqirrel left
21:17
Sqirrel joined
|
|||
Sysaxed | raydiak: maybe it would be better if you ask it right in the pull request? | 21:27 | |
this way someone might searching for the same thing might stumble upon it | |||
s/might// | |||
raydiak | I did give a pretty clear indication in the PR that I'm less than certain about the prematch thing | 21:28 | |
vendethiel | m: say Nil.defined, Any.defined | 21:33 | |
camelia | rakudo-moar 9c543b: OUTPUT«FalseFalse» | ||
cygx | any suggestions for a better name for github.com/cygx/p6-uni63 ? | ||
dalek | ast: 9d53706 | usev6++ | S03-operators/assign.t: Use unique ticket number for similiar tests |
21:34 | |
ast: e9074a8 | usev6++ | S03-operators/assign.t: Replace one instance of dies_ok with throws_like |
|||
ast: fdaa7dc | usev6++ | S0 (2 files): Unfudge passing test for RT #116178, add 2nd test |
|||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=116178 | ||
masak | m: say .defined for Any, Nil, Empty | 21:35 | |
camelia | rakudo-moar 9c543b: OUTPUT«FalseFalse» | ||
masak | heh :) | ||
vendethiel | :D | 21:36 | |
masak | now which one of you jokers disappeared from my list? | ||
masak guesses Nil | |||
m: say .defined for Any, Empty | |||
camelia | rakudo-moar 9c543b: OUTPUT«False» | ||
cygx | m: say .defined for Any, Nil, $(Empty) | ||
camelia | rakudo-moar 9c543b: OUTPUT«FalseFalseFalse» | ||
masak | nope. | ||
m: say .defined for Any, Nil | |||
camelia | rakudo-moar 9c543b: OUTPUT«FalseFalse» | ||
masak | ok, Empty auto-disappears from lists. unlike Any and Nil. | ||
I guess that makes sense, if Empty is mostly like () | 21:37 | ||
dalek | : d259b71 | usev6++ | misc/rt.perl.org/cleanup_nyc_hackathon_tickets.txt: Keep track of merged and resolved tickets |
21:40 | |
RabidGravy | is Empty quite recent? | 21:42 | |
cygx | RabidGravy: 14h old | ||
RabidGravy | ah okay | ||
I'd created an enum in Sys::Utmp with an Empty in it and it didn't warn | 21:43 | ||
21:43
rba_ joined
|
|||
RabidGravy | changed now | 21:43 | |
masak | don't think it should warn in that case. `Empty` would just be lexically shadowed in that scope. | 21:44 | |
Sysaxed | raydiak: now I wonder, it says "Variable '$test' is not declared" | 21:45 | |
raydiak: any reason it couldn't go on and suggest to add "my" ? | |||
RabidGravy | masak, best to chane it anyway, it'll cause a problem down the line :) | 21:47 | |
21:48
rba_ left
|
|||
Sysaxed | yea, well, imagine somebody coming with a different experience, let's say python | 21:49 | |
m: $test = 1 | |||
camelia | rakudo-moar 9c543b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u_pSw0GMn_Variable '$test' is not declaredat /tmp/u_pSw0GMn_:1------> 3$test7⏏5 = 1 expecting any of: postfix» | ||
Sysaxed | "is not declared? What do you mean? Here, I declared it: $test = 1" | 21:50 | |
masak | RabidGravy: agreed. | ||
Sysaxed | I could be wrong though, somebody has to confirm that it is actually LTA... | 21:51 | |
21:51
zengargoyle left
21:52
zengargoyle joined
|
|||
RabidGravy | Sysaxed, but 'my' might not be what the want or expect, they may have typo-ed a name already in scope or expected it to be be declared from another scope or something else | 21:53 | |
so the message is probably not ideal but tricky to guess what they intended | 21:54 | ||
confounding an expectation raised by not understanding the language is probably better than suggesting they do something which is wrong | 21:58 | ||
22:03
zengargoyle left,
zengargoyle joined
22:04
nbdsp left
22:05
virtualsue left,
Akagi201 joined
|
|||
Sysaxed | RabidGravy: "If you wanted to declare a variable, then use 'my'" | 22:06 | |
RabidGravy: doesn't sound good enough? | 22:07 | ||
22:10
Akagi201 left
|
|||
RabidGravy | well to be fair gcc would do the same | 22:12 | |
error: ‘test’ undeclared (first use in this function) | |||
22:17
espadrine_ left
22:26
larion joined
22:28
fhelmberger joined
22:31
skids joined,
dolmen left
22:33
fhelmberger left
|
|||
dalek | kudo/nom: 3b8b315 | hoelzro++ | docs/ChangeLog: Mention linenoise changes in the changelog |
22:57 | |
22:58
RabidGravy left
23:05
rba_ joined
23:14
kurahaupo1 joined
|
|||
masak | 'night, #perl6 | 23:16 | |
japhb | Sysaxed: You mentioned earlier that slow issues could be submitted as tests. You are correct -- they should be submitted here: github.com/japhb/perl6-bench | ||
Patches of any type welcome. Regular patchers get commitbits. :-) | 23:17 | ||
23:19
larion left
23:25
rba_ left
23:26
coffee` left
23:27
coffee` joined,
Zoffix left
23:33
lizmat joined
23:34
cognominal left,
cognominal joined
23:37
Isp-sec left
23:39
rba_ joined
23:40
beastd left
|
|||
Sysaxed | japhb: yea I know, I'm also running ./bench quickstart for several hours now... :D | 23:43 | |
because I couldn't find the latest stats | |||
timotimo | right, i haven't posted benchmarks in $longtime | ||
yoleaux | 16:45Z <tony-o> timotimo: i don't see anything out of the box using a CUR but Pluggable is updated to work with the changes to the way @*INC reports CU*s | ||
23:44
rba_ left
|
|||
Sysaxed | timotimo: might be worth doing, that's pretty interesting | 23:44 | |
timotimo | i'm just afraid the results may turn out pretty bad | 23:45 | |
and whenever i run benchmarks, i leave that machine alone completely and try to shut off pretty much everything running in the background | |||
Sysaxed | timotimo: how long does it take? | 23:46 | |
timotimo | depends very much on what i run | ||
23:46
Erendis42d joined
|
|||
Erendis42d | ^v^ | 23:46 | |
timotimo | last time i ran benchmarks, rakudo-parrot was still a thing, i believe | ||
dalek | osystem: 046d58b | cygx++ | META.list: Add TinyCC to the ecosystem |
||
osystem: 676b7cc | (Zoffix Znet)++ | META.list: Merge pull request #44 from cygx/patch-2 Add TinyCC to the ecosystem |
|||
Sysaxed | do I get it right that first of all it compiles everything | ||
timotimo | but if you run the jvm benchmarks, expect that alone to take 4x or 5x as long as the moarvm benchmarks | ||
Sysaxed | and only then runs the benchmarks? | ||
timotimo | for every benchmark it runs the task with "zero workload" first to figure out how long it takes to start up and compile | 23:47 | |
and it runs the benchmarks a few times in a row to get more precise results | |||
Sysaxed | well, I meant the compilation of rakudo, moarvm and stuff | 23:48 | |
timotimo | oh | ||
quickstart will compile a whole bunch of versions for you | |||
Sysaxed | yea | ||
okay, well | |||
timotimo | and then benchmark all of them, that's right | ||
Sysaxed | it has been several hours and I believe that most of the stuff is not compiled | 23:49 | |
timotimo | it's pretty neat, as it puts all the stuff that needs to download stuff up front | ||
Sysaxed | patience is a virtue, right? | ||
timotimo | yes | ||
i've wanted it to output a bigger status summary every now and then so that you can tell where it's at and what it wants to be doing | 23:50 | ||
Sysaxed | timotimo: I really enjoy p6weekly, thanks | 23:51 | |
timotimo | you're welcome; and thanks for telling :) | ||
also, a full set of perl6-bench things takes a whole lot of hard drive space | 23:53 | ||
Sysaxed | timotimo: how much? | ||
timotimo | i'm measuring my folder right now | 23:54 | |
but that has a *lot* of versions built | |||
23:54
Akagi201 joined
|
|||
timotimo | 15gb and counting | 23:55 | |
japhb: do you think we should be running "make clean" after "make install" in our compilation steps? | 23:56 | ||
Sysaxed | mine is already at 10gb | 23:57 | |
timotimo | 22gb in components/ | ||
7.4gb in timings/ | 23:58 | ||
ah | |||
that's because the perl5 json files are all half a gig big | |||
the compiled rakudo-moar's are about 290mb big | |||
i mean, each compiled rakudo-moar | 23:59 | ||
23:59
Akagi201 left
|