»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:00
stimpi left
00:01
dayangkun joined
|
|||
[Coke] is back at his house, yay. | 00:02 | ||
colomon | hmmm, did Yapsi build freeze, or have I lost my SSH connection? | 00:03 | |
Looks like Yapsi build maybe froze — certainly the SSH connection is still there. | 00:04 | ||
00:04
laouji joined
00:07
ggoebel joined
00:08
laouji left
00:17
Akagi201 left
00:18
ggoebel left
|
|||
colomon | Eight minutes so far | 00:19 | |
00:21
tinyblak joined
00:22
tinyblak left,
tinyblak joined
00:27
laouji joined
|
|||
colomon | twenty minutes, and now I’m trying to take a closer look | 00:31 | |
00:39
laouji left
|
|||
andreoss | timotimo: i've sent a report about this bug. thanks for helping me | 00:39 | |
00:39
laouji joined
|
|||
colomon | Yapsi is failing when asked to compile my $a; $a = 42; | 00:41 | |
00:41
tinyblak_ joined
00:43
tinyblak left
00:44
laouji left
00:48
kurahaupo1 joined
00:49
laouji joined
01:00
tinyblak joined
01:03
tinyblak_ left
|
|||
timotimo | you're most welcome | 01:03 | |
01:05
spider-mario left,
kurahaupo1 left
|
|||
colomon | Yapsi problem is in the grammar | 01:07 | |
possibly eat_terminator? | 01:09 | ||
masak: ^^ | 01:11 | ||
y | 01:14 | ||
well, eat_terminator fails, and then the grammar hangs | |||
01:19
Akagi201 joined
01:22
tinyblak left
|
|||
raydiak | colomon: changing some suspicious-looking whitespace handling gets it through parse to runtime, but then has another unrelated crash | 01:22 | |
though I'd say the real problem is the line which reads "my $VERSION = '2011.05';" :) | |||
01:24
kurahaupo1 joined,
vendethiel left,
colomon left
01:45
dolmen joined
|
|||
Mouq | o/ for the first time in a while | 01:53 | |
yoleaux | 14 Apr 2015 22:47Z <psch> Mouq: TOML doesn't have provides yet, FYI | ||
Mouq | Well, good thing I'm working on it now >.<; | ||
So, what does "Bytecode stream version too low" mean? Seems pretty LTA | |||
Mouq recompiles module. Duh. But still LTA | 02:00 | ||
02:00
dolmen left
02:05
laouji_ joined
02:08
BenGoldberg_ left
02:09
BenGoldberg joined
02:10
laouji_ left
02:23
koo6 left
02:26
chenryn joined
02:50
noganex_ joined
02:53
noganex left
02:54
araujo joined
02:57
vendethiel joined
|
|||
TimToady | Mouq!!! o/ | 03:01 | |
Mouq | Haha, hello! :) | 03:02 | |
03:03
yeahnoob joined
|
|||
Mouq | Finals came up, and after school ended I stopped coding for a while, but still tried to follow what was happening | 03:03 | |
TimToady | well, we officially approve of not slacking off at school :) | ||
Mouq | heh :) | 03:04 | |
03:20
ssqq joined
03:27
cibs left
|
|||
kurahaupo1 | I get fed the changelogs by email, and I was just reading "roots" in Numeric.pod. Can I ask, is the intention that it behave differently depending on whether the number is Complex or just Real (or Int, or whatever else)? | 03:30 | |
Also, it says "Returns NaN if $n <= 0" -- which is wrong, it should only do that if $n is even (or non-integral) | 03:32 | ||
03:33
cibs joined
|
|||
kurahaupo1 | oh drat, I'm short of coffee, NaN if $n < 0 AND the number is 0, or if $n==0 | 03:34 | |
03:36
laouji_ joined
|
|||
kurahaupo1 | (logically the -1th root of $x is simply 1/$x) | 03:38 | |
03:41
laouji_ left
03:44
vendethiel left
03:46
FROGGS__ joined
03:49
Sqirrel left
03:50
FROGGS_ left
03:51
chenryn left
|
|||
dalek | osystem: cbf1111 | retupmoca++ | META.list: Add Syndication (RSS/Atom) parser/generator |
03:51 | |
03:57
ssqq_ joined
|
|||
dalek | kudo/nom: d7c9bfa | Mouq++ | src/Perl6/Actions.nqp: Enable typing via "has Type method …" (RT #115868) Copied verbatim from &def_routine. |
03:58 | |
03:59
ssqq left
04:05
jack_rabbit joined
04:07
jack_rabbit left
04:08
jack_rabbit joined
04:15
chenryn joined
04:25
BenGoldberg left,
laouji left
04:27
Sqirrel joined,
jack_rabbit_ joined,
jack_rabbit_ left
04:28
jack_rabbit_ joined,
jack_rabbit_ left
04:30
jack_rabbit left,
jack_rabbit_ joined
04:32
jack_rabbit_ left
04:34
andreoss left,
adu joined
04:37
laouji joined
04:41
jack_rabbit joined
04:42
xinming left
04:43
xinming joined
04:47
quester joined
04:54
kaare__ joined
04:56
xinming left
|
|||
ssqq_ | anyone use Tidy tools for perl6? | 05:06 | |
05:12
adu left
05:14
ssqq_ left
|
|||
tony-o_ | is there a tidy out there for p6? | 05:20 | |
05:24
chenryn left
05:25
vendethiel joined
05:30
chenryn joined
05:33
kaare__ is now known as kaare_
05:54
rindolf joined
05:55
diana_olhovik_ joined
06:02
Sqirrel left
06:09
zacts joined
06:10
Sqirrel joined
06:20
xfix joined
06:27
salv0 left
06:31
Sqirrel left
|
|||
raydiak | m: say @(Nil).IO.absolute | 06:32 | |
camelia | rakudo-moar d7c9bf: OUTPUT«/home/camelia» | ||
raydiak | ^ and that, a while ago, was how the Nil change caused one of my projects to commit suicide and rm -rf itself :) | 06:33 | |
06:34
rindolf left
|
|||
bartolin | /o\ | 06:34 | |
raydiak | geekosaur++ gave me a tip about extundelete and saved it :) | ||
bartolin | geekosaur++ extundelete++ | 06:35 | |
raydiak | was wondering, though, if the empty string shouldn't fail or at least warn or something when coerced into a path with .IO | 06:36 | |
06:36
Sqirrel joined,
andreoss joined
|
|||
bartolin | j: my @list = "a".."c" # broken with 24aca6a8 | 06:37 | |
camelia | rakudo-jvm d7c9bf: OUTPUT«control operator crossed continuation barrier in block <unit> at /tmp/zQHABvJTJ_:1 in any <unit-outer> at /tmp/zQHABvJTJ_:1» | ||
06:39
andreoss` joined
06:41
FROGGS[mobile] joined,
andreoss left,
RabidGravy joined
|
|||
FROGGS[mobile] | raydiak: +1 to die | 06:42 | |
(or fail) | |||
raydiak | neat...I'll make a PR before bed then, and maybe ask what lizmat thinks since she did so much of the IO work | 06:44 | |
FROGGS[mobile]: do you know how I would go about EVALing those :auth/:ver in a restricted setting? do I have to start an entirely separate rakudo process just to parse them? | 06:45 | ||
06:46
domidumont joined,
domidumont left
|
|||
FROGGS[mobile] | hmmm | 06:46 | |
probably... | |||
06:46
domidumont joined
|
|||
FROGGS[mobile] | maybe we can do something with slangs here? | 06:47 | |
raydiak | I could manually parse a very limited subset like I already am but more variations, if that's not a pandora's box | 06:48 | |
you're the slang guy so if you think that's a good tool for the job, I'm happy to try it out with a few pointers to get started, unless you're volunteering yourself :) | 06:49 | ||
FROGGS[mobile] | aye :o) | 06:52 | |
raydiak | wrt "like I already am": github.com/raydiak/panda/blob/auth...m#L104-125 | ||
FROGGS[mobile] | need to think about it this evening | 06:53 | |
raydiak | indeed...it's a much deeper issue, this parsing of :auth and :ver than it seems like it would be at first glance :) | 06:54 | |
FROGGS[mobile] | should be possible to invent a slang that disallows running code at compile time | 06:55 | |
and also filters statements in some way | |||
raydiak: that's like it too often is, isnt it? | |||
06:55
domidumont left
|
|||
FROGGS[mobile] | bartolin: do we have a test for that? | 06:55 | |
06:55
laouji_ joined
|
|||
raydiak | quite...some problems are like one of those orders-of-magnitude zooming in/out animations...always another layer/scale with another set of distinct features | 06:57 | |
07:00
laouji_ left
07:01
fhelmberger joined
07:02
flaviusb joined
|
|||
bartolin | FROGGS[mobile]: there is a lot of spectest breakage for JVM: github.com/usev6/perl6-roast-data/....out#L1896 | 07:05 | |
07:06
fhelmberger left
|
|||
bartolin | FROGGS[mobile]: yesterdays spectest on JVM was clean, so I think 24aca6a8 is the cause | 07:06 | |
RabidGravy | morning | 07:14 | |
raydiak | o/ RabidGravy | 07:15 | |
FROGGS[mobile] | I see | 07:18 | |
07:19
laouji left,
laouji joined
07:20
Isp-sec joined
07:21
vendethiel left
|
|||
RabidGravy | so I'm looking at a module and it has "unit class Foo;" and then in another file I'm doing "say Foo.^methods();" to debug some weirdness and getting "Method 'methods' not found for invocant of class 'Perl6::Metamodel::PackageHOW'' - how did it end up with that Metamodel class? | 07:21 | |
07:22
chenryn left,
chenryn joined
07:23
laouji left,
laouji joined
|
|||
RabidGravy | very odd | 07:24 | |
07:27
virtualsue joined,
laouji left,
laouji joined
07:28
al2o3-cr joined
|
|||
sergot | morning | 07:29 | |
:) | |||
DrForr | Just barely, yeah. | 07:33 | |
07:33
salva left
|
|||
raydiak | .tell lizmat see an hour before now in the backlog, but I was wondering what you think of ''.IO being a failure with a message about 'use "." for the current dir'? | 07:33 | |
yoleaux | raydiak: I'll pass your message to lizmat. | ||
07:34
salva joined
|
|||
raydiak | .tell lizmat I tried to make a PR to that effect for consideration, but for some reason with the change it just gobbles all my RAM on stage parse | 07:35 | |
yoleaux | raydiak: I'll pass your message to lizmat. | ||
07:35
laouji left
|
|||
raydiak | good night #perl6 o/ | 07:35 | |
07:36
virtualsue left,
laouji joined
07:39
laouji left,
laouji joined
|
|||
RabidGravy | nighty nighty | 07:46 | |
08:04
laouji left
08:05
mohij joined
|
|||
masak | antenoon, #perl6 | 08:05 | |
08:05
laouji joined
|
|||
jnthn | o/ masak, * | 08:07 | |
08:08
darutoko joined
08:10
laouji left,
laouji joined
08:14
xinming joined
|
|||
jnthn | I've seen a couple of folks report isues involving a backtrace where we SEGV or similar doing a lookup in the method cache. | 08:15 | |
08:16
sunnavy joined
|
|||
jnthn | Or alternatively get a null method back | 08:16 | |
Curiously, this symptom is aggravated under concurrency. | |||
I'd been looking for some kind of data race, but if it's happening in non-concurrent code too...well... | |||
08:17
vendethiel joined
08:21
sunnavy left
08:22
sunnavy joined
08:23
quester left
08:33
Alina-malina left
08:34
Alina-malina joined
|
|||
jnthn | Hmm, except now I look into it, the failure mode looks different. Aww. | 08:36 | |
08:40
cibs left
08:41
vendethiel left
08:44
laouji_ joined
08:49
laouji_ left
08:51
vendethiel joined,
mohij left
|
|||
RabidGravy | does anyone have any feeling about gist.github.com/jonathanstowe/2eb6...edbd877ef5 - looks wrong to me, especially the output of Pack.WHO | 08:52 | |
(leaving aside the less than ideal design, this is similar to code from the ecosystem which one worked) | 08:53 | ||
DrForr | Hrm. Any way to declare a compound return type? I want to return (Int, Int) - Should I just abandon the 'returns (Int, Int)'? | 08:56 | |
08:56
mohij joined
|
|||
RabidGravy | DrForr, doesn't seem to work in any number of variants | 08:59 | |
DrForr | RabidGravy: yeah, I tried a few variants msyelf. | ||
09:00
FROGGS__ left
09:01
jack_rabbit left
|
|||
DrForr | RabidGravy: I'd be tempted to say 'method singleton {...}' inside Pack::Util::Collection, call that in your constructor. | 09:02 | |
Or at least in your 'method collection', that'll have roughly the same laziness. | 09:03 | ||
09:03
mohij left
|
|||
RabidGravy | yeah, that was basically what I was thinking, but the weirdness isn't so much the design as the Pack.WHO returning "Util => (Util)" which seems like all sorts of broken | 09:04 | |
and explains why it doesn't work | |||
anyway off out now | 09:06 | ||
DrForr | Feels like the makings of a recursive include loop to me, actually. Also you're not bringing in the definition of Pack explcitly, which might make the loop more obvious. | ||
09:08
laouji left
09:09
cibs joined,
laouji joined
09:10
RabidGravy left
09:13
[Sno] left
09:17
FROGGS[mobile]2 joined
09:18
FROGGS[mobile] left
09:20
[Sno] joined
|
|||
andreoss` | can i pass metadata to pod code block? | 09:25 | |
09:28
Alina-malina left,
[Tux] left,
yeahnoob left
09:29
Alina-malina joined,
[Tux] joined
09:31
Isp-sec left
|
|||
lizmat | bartolin: looking at 24aca6a8 on JVM | 09:34 | |
yoleaux | 07:33Z <raydiak> lizmat: see an hour before now in the backlog, but I was wondering what you think of ''.IO being a failure with a message about 'use "." for the current dir'? | ||
07:35Z <raydiak> lizmat: I tried to make a PR to that effect for consideration, but for some reason with the change it just gobbles all my RAM on stage parse | |||
lizmat | raydiak: excellent idea, we don't want no unwanted rm -rfs | 09:35 | |
09:36
vendethiel left
09:38
mohij joined,
vendethiel joined
09:40
cognominal left
|
|||
lizmat | wow: control operator crossed continuation barrier | 09:44 | |
jnthn | You may now proceed to read up on delimited continuations :P | 09:45 | |
lizmat | gist.github.com/lizmat/0ff9b21d33a03837d736 | 09:46 | |
jnthn | gather/take are the only constructs using those, fwiw | ||
09:48
andreoss` left
|
|||
lizmat | reverting 24aca6a8, seeing if that makes a difference | 09:48 | |
it does... :( but why? | 09:53 | ||
dalek | kudo/nom: 0f3400c | lizmat++ | src/core/ (2 files): Revert "List|Parcel.eager should only work on instances" It breaks the JVM badly. |
09:54 | |
lizmat | pasting jnthn's response from #moarvm for posterity: | 09:55 | |
[11:53:41] <jnthn>lizmat: Not sure immediately... | |||
[11:53:52] <jnthn>lizmat: It probably shouldn't make a difference. | |||
jnthn | oops :) | 09:56 | |
09:59
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:02
vendethiel left
10:04
vendethiel joined
10:10
kurahaupo1 left,
dayangkun left,
[Sno] left
|
|||
lizmat | hmmm... it appears we have spectests expecting IO::Path.new('') to succeed | 10:11 | |
10:11
[Sno] joined
|
|||
lizmat | I'm going to assume these are faulty | 10:12 | |
dalek | kudo/nom: e60f85c | lizmat++ | src/core/IO/Path.pm: Don't allow empty path specification, raydiak++ It functioned as 'current directory' so far, but that can have dangerous implications, especially when trying to do an rm-rf on a directory, and you lost the directory name somewhere along the way. |
10:15 | |
10:15
chenryn left
10:17
cognominal joined
10:18
[Sno] left
10:24
smls joined
10:28
kurahaupo1 joined,
vendethiel left
10:33
laouji_ joined
10:38
laouji_ left,
laouji left
10:39
laouji joined
|
|||
dalek | ast: 7e0bc10 | lizmat++ | S32-io/io-path- (3 files): Empty paths are no longer ok |
10:42 | |
smls | Has lizmat's newio work been merged in Rakudo? | 10:43 | |
And has there been a blog about it? | |||
lizmat | nope | ||
10:43
laouji left
|
|||
smls | ok | 10:43 | |
smls will be patient | 10:44 | ||
lizmat doctor | |||
10:46
laouji joined
|
|||
dalek | kudo/nom: 8bff469 | lizmat++ | docs/ChangeLog: Mention empty path legality as incompatible change |
10:46 | |
10:49
spider-mario joined
10:50
chenryn joined
|
|||
smls | m: my $x = 1; say "foo_$x\_bar" | 10:51 | |
camelia | rakudo-moar e60f85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Uv4ZD3daxFUnrecognized backslash sequence: '\_'at /tmp/Uv4ZD3daxF:1------> 3my $x = 1; say "foo_$x\7⏏5_bar" expecting any of: postfix» | ||
smls | ^^ this used to work, didn't it? | ||
it does in Perl 5 | |||
jnthn | The typical Perl 6 idiom for that is {$x} | 10:52 | |
smls | right | ||
10:53
vendethiel joined
10:54
BenGoldberg joined
|
|||
smls | m: say (^10e6).pick | 10:57 | |
^^ from the looooooooong time this takes to complete, I take it .pick is not special-cased for ranges? | |||
camelia | rakudo-moar e60f85: OUTPUT«(timeout)» | ||
10:57
laouji_ joined
10:58
laouji left
|
|||
smls | m: say 10e6.rand.Int | 10:58 | |
camelia | rakudo-moar e60f85: OUTPUT«2756905» | ||
smls | this is fast, but less pretty | ||
m: rand 10e6 # Also, this Perl5-ism error message suggests using pick | 10:59 | ||
camelia | rakudo-moar e60f85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/k1tiE3K1WWUnsupported use of rand(N); in Perl 6 please use N.rand for Num or (^N).pick for Int resultat /tmp/k1tiE3K1WW:1------> 3rand7⏏5 10e6 # Also, this Perl5-ism error mess» | ||
lizmat | smls: strange, looking | ||
11:00
Akagi201 left
|
|||
lizmat | return self.list.pick($n) unless nqp::istype($!min, Int) && nqp::istype($!max, Int); | 11:00 | |
hmmm... | |||
11:01
Ben_Goldberg joined
|
|||
lizmat | m: say (^10e6).roll | 11:01 | |
same issue | |||
smls | m: say (^10000000).pick # huh, this is fast | ||
(locally) | 11:02 | ||
camelia | rakudo-moar e60f85: OUTPUT«(timeout)» | ||
rakudo-moar e60f85: OUTPUT«3331991» | |||
lizmat | yeah, it's the Int check that forces it to generate the wole list | ||
jnthn | 10e6 is a Num | ||
lizmat | smls: it was waiting to timeout on mine | ||
[ptc] | tadzik: ping | ||
11:04
BenGoldberg left,
aborazmeh left
|
|||
lizmat | one could argue that (^10e6).pick should fail | 11:05 | |
11:06
kurahaupo1 left,
andreoss joined
|
|||
tadzik | [ptc]: hey | 11:06 | |
lizmat | m: (^10e1.1).pick.say | 11:07 | |
camelia | rakudo-moar e60f85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/H5d31IblF6Confusedat /tmp/H5d31IblF6:1------> 3(^10e1.7⏏051).pick.say» | ||
11:07
kaare_ left
|
|||
[ptc] | tadzik: I was wondering if you've got some time to answer a couple of questions about panda | 11:07 | |
tadzik: sorry, rakudobrew... (it has something to do with panda) | 11:08 | ||
tadzik | Email may be better, I have very scarce internet access for the next couple of weeks | 11:10 | |
The one in git log should be good :) | |||
[ptc] | well, I'm wanting to test modules and progs with Rakudo version 2015.04. I can get 2015.04 to build nicely with rakudobrew, but panda uses the most current code | 11:12 | |
which means that 2015.04 doesn't understand e.g. Empty... | |||
11:12
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
[ptc] | anyway, I've got a patch in the making to add a version option to build-panda, which would then allow one to use e.g `rakudobrew triple 2015.04 2015.04 2015.04` and then `rakudobrew build-panda 2015.04` | 11:13 | |
and then hopefully I can install dependencies at that version | |||
the problem is, that I need to check out a particular version of panda, and I was wondering if you could tag the panda repo at a few commits | 11:14 | ||
I can find out the commit which would correspond to a given Rakudo so that it makes your life easier | |||
anyway, I was wondering what you thought of the idea and if it makes sense to do | 11:15 | ||
tadzik | Tagging panda by compatible rakudo releases is something I think I've already done, once or twice :! | 11:16 | |
11:16
vendethiel left
|
|||
[ptc] | hrm, the last one which turns up in the repo is 2014.04 | 11:17 | |
github.com/tadzik/panda/tags | 11:18 | ||
tadzik: sorry if I've annoyed you! Most certainly not the intention! | 11:19 | ||
tadzik | Oh, you did not, don't worry about it :) | ||
11:20
colomon joined
|
|||
tadzik | And you're exactly right, I did it once or twice when introducing breaking changes that I recognized | 11:20 | |
11:21
vendethiel joined
|
|||
[ptc] | I don't know if it's possible to push just tags as a PR, however it'd be quite handy to use a Rakudo stack with panda all at the same version | 11:22 | |
especially when trying to debug issues where the problem could be a Rakudo update, or a problem in the module/program being investigated | 11:23 | ||
tadzik | But panda doesn't have any specific release policy, if any :P People commit stuff that works quite often, and gods bless them for it, but there's not much attention given to backwards compatibility | ||
Which I recognize as a problem and would like to change | |||
andreoss | could rakudo be shipped in binary by rakudobrew? | 11:24 | |
like it's done by rvm | |||
tadzik | If you'd like to take care of this issue, even if it's just this one time now, I'll happily provide you a commit bit :) | ||
andreoss | for rubies | ||
[ptc] | tadzik: ok, if you trust me with your repo :-) | 11:25 | |
tadzik: I'll try my hardest not to break anything | |||
tadzik | [ptc]: don't break anything and don't touch bootstrap.pl and you'll be fine :) | ||
[ptc] grins | |||
tadzik | bootstrap.pl is hydras' nest | 11:26 | |
It's the reason why I wear glasses agaib | |||
[ptc] | tadzik: it's ok, I don't think bootstrap.pl is on the yak I'm currently trying to shave | ||
tadzik | What's your github username? | ||
[ptc] | tadzik: paultcochrane | ||
tadzik | oh, it's you! Then I totally trust you with the repo :) | 11:27 | |
[ptc] | :-D | 11:29 | |
11:32
FROGGS[mobile]2 left
|
|||
[ptc] | mwaahaha | 11:33 | |
11:37
laouji joined
11:39
domidumont joined
11:41
telex left
11:42
laouji left,
telex joined
11:43
FROGGS[mobile] joined
|
|||
masak .oO( like "House of Cards" but for the panda repo ) :P | 11:47 | ||
11:47
Ven joined
|
|||
vendethiel | o/,#perl6 | 11:51 | |
masak | \o | 11:54 | |
lizmat | o/ vendethiel | 11:55 | |
12:09
chenryn left
12:12
Foxcool joined
12:24
aborazmeh left
12:26
Akagi201 joined
12:27
Akagi201_ joined
12:31
Akagi201 left
12:36
kaare_ joined
|
|||
masak | this is embarassing. the Haskell solution in blog.plover.com/prog/haskell/monad-search.html takes just under a second. | 12:40 | |
compare that with ~480 seconds for Perl 5 and ~1500 seconds for Perl 6. | 12:41 | ||
can someone produce a *fast* solution, in either Perl 5 or Perl 6? my guess would be by removing all the recursion. | |||
yeah, ok. I now have an iterative Perl 5 version that runs in 3.2 seconds. | 12:51 | ||
but it highlights exactly the thing MJD is warning about. basically it sacrifices code elegance on the altar of performance. | |||
Ven | I'm guessing no tco is what's hurting here? | 12:54 | |
masak | sounds possible to me, but I'm no expert on the internals of functional runtimes. | 12:55 | |
12:58
mohij left
13:00
grondilu joined
|
|||
masak | corresponding Perl 6 iterative solution takes 429 seconds :/ | 13:02 | |
13:12
laouji_ left
|
|||
masak | added native int typing in strategic places. result 591 seconds :( | 13:12 | |
(yes, adding native types made it go slower) | 13:13 | ||
13:24
laouji joined
13:26
colomon left
|
|||
btyler | masak: did you apply TCO to the recursive perl 5 version? (e.g. goto &subname in tail call position) | 13:28 | |
13:28
laouji left
|
|||
masak | no! good idea. I'll try that. | 13:29 | |
so far I've managed to get a Perl 6 version with while loops run in 324 seconds. | |||
btyler | goto &sub in perl5 is probably still not anywhere near the iterative version, since sub calls tend to be rather slow (when we're talking about 'slow' in the context of no IO happening) | 13:31 | |
13:31
yqt joined
13:32
ggoebel joined
|
|||
masak | hm, I don't think I can use `goto &NAME` in this program... | 13:35 | |
at least I don't see where it's applicable. | |||
help appreciated. | |||
13:38
chenryn joined
13:44
FROGGS[mobile] left
13:45
FROGGS[mobile] joined
|
|||
masak | ok, channel, I've got a puzzle for you. | 13:47 | |
gist.github.com/masak/ec8be246f58a1cc77be3 | |||
see line 10 of the output -- it should progress to 8 from 7, but it doesn't. | |||
spot the error. | |||
oh, argh! | |||
never mind :P | |||
(well, you can still spot the error -- but I just found it) :/ | 13:48 | ||
13:51
Akagi201 joined
13:52
Akagi201_ left
|
|||
Ven | masak: `next ++$r` should work :P | 13:53 | |
masak | ok, that optimization wasn't really worth it. (removing NEXT phasers and inlining the increments) | 13:54 | |
went from 324 seconds to 320 seconds. | |||
Ven | `my $money = :10[$m, $o, $n, $e, $y]` hahaha | 13:55 | |
masak | isn't that a nice syntax? :) | ||
Ven still thinks of that Sufficiently smart compiler | |||
masak | similarly, removing the native typing from that script loses me 9 seconds. not worth quibbling about. | 14:01 | |
14:04
chenryn left,
andreoss left
14:20
mchristo joined
|
|||
masak | wait, hm. what's the difference between <{ code }> and { code } inside the regex slang again? | 14:21 | |
masak has a temporary brain lapse and can't remember | |||
m: say "foo" ~~ / { say "oh hai" } foo / | 14:22 | ||
camelia | rakudo-moar 8bff46: OUTPUT«oh hai「foo」» | ||
masak | m: say "foo" ~~ / <{ say "oh hai" }> foo / | ||
camelia | rakudo-moar 8bff46: OUTPUT«oh haioh haioh haioh haiNil» | ||
masak | ok, at least they are different ;) | ||
oh! <{ code }> means the code produces a regex that's evaluated. got it. | 14:23 | ||
14:24
Ven left
14:27
colomon joined
14:32
colomon left
14:34
rmgk joined
14:35
beastd joined
14:37
pecastro left,
skids joined
14:39
mchristo left
14:42
kst joined
|
|||
smls | What's the Perl 6 equivalent of 'readlink' (getting the target path of a symbolic link)? | 14:49 | |
masak | m: "" ~~ m/ { say 1 } <{ say 2; "<?>" }> { say 3 } / | ||
camelia | rakudo-moar 8bff46: OUTPUT«123» | ||
14:50
colomon joined
|
|||
masak | smls: S16 talks about readlink | 14:50 | |
(but I don't know how up-to-date that information is) | |||
14:52
chenryn joined
|
|||
moritz | smls: it seems IO::Path.resolve is the only place in rakudo that calls nqp::readlink | 14:54 | |
smls | .resolve seems to work | ||
14:55
Khisanth left,
Khisanth joined
14:56
andreoss joined
|
|||
andreoss | »» is two times slower than map | 14:56 | |
smls | doc.perl6.org/type/IO#sub_dd -- I didn't know dd was officially part of Perl 6? I saw it in Rakudo sources once, but thought it was just an internal debug helper. | 14:57 | |
14:58
molaf joined,
chenryn left
15:00
espadrine joined
|
|||
TimToady | andreoss: try Xop | 15:00 | |
15:01
colomon left
15:03
colomon joined
|
|||
andreoss | TimToady: 3 times slower than map | 15:05 | |
15:07
Klaudioh left,
chenryn joined,
koo6 joined,
Khisanth left,
khisanth_ joined
|
|||
TimToady offline till evening...trying to go through Yosemite again... | 15:07 | ||
15:07
Klaudioh joined
15:08
laouji joined
15:15
Ben_Goldberg left
15:16
chenryn left
15:18
chenryn joined
15:19
molaf_ joined
15:22
atweiden joined,
molaf left,
vendethiel left
15:26
Ben_Goldberg joined,
vendethiel joined
15:29
mr-foobar left
15:30
mr-foobar joined
15:32
colomon left
|
|||
dalek | ast: 7539180 | usev6++ | S12-methods/syntax.t: Add tests for RT #67700, use that ticket number |
15:32 | |
15:35
egrep left
|
|||
andreoss | why .map is exactly 2 times faster »» and 3 times faster X? | 15:37 | |
15:37
diana_olhovik_ left
|
|||
nwc10 | andreoss: I have no idea, but if no-one else does, could you submit your 3 test cases that demonstrate this as a bug report, because it sounds like somethign that could be done better. | 15:38 | |
15:41
egrep joined
15:42
AlexDaniel joined
|
|||
AlexDaniel | m: say 'foo'; #`{ say 'bar; | 15:42 | |
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eXX2weIxiTCouldn't find terminator }at /tmp/eXX2weIxiT:1------> 3say 'foo'; #`{ say 'bar;7⏏5<EOL> expecting any of: horizontal whitespace whitespace» | ||
AlexDaniel | what this "expecting any of" thing is about? What kind of whitespace? | ||
andreoss | what do i use for benchmarking? | ||
nwc10 | andreoss: if you're on Linux or Unix, time is probably good enough, if you can get an example that's over about .2s for the fastest | 15:43 | |
because a factor of 2 or 3 should be obvious, even from time | |||
andreoss | i got GNU | 15:44 | |
i meant like Benchmark module | |||
nwc10 | ah OK. I'm not aware of a Perl 6 benchmark module | ||
andreoss | i found one, but it looks poor with features | ||
nwc10 | I was thinking just use time, for total program execution | ||
and 3 programs, one for each construct | 15:45 | ||
15:45
flaviusb left
|
|||
andreoss | paste.debian.net/183389/ | 15:45 | |
timotimo | the hyper operators try to mix the order of execution around so that you don't rely on it being sequential | ||
(as it can be parallelized in the future) | |||
m: (^5)>>.say | |||
camelia | rakudo-moar 8bff46: OUTPUT«42031» | ||
tony-o_ | github.com/tony-o/perl6-bench | ||
timotimo | that costs a little bit | ||
15:46
virtualsue joined
|
|||
nwc10 | OK. as it might be obvious, I'm about at the limit of how I can help now, because I don't know enough about the implementation (at the Rakudo level) | 15:46 | |
tony-o_ | andreoss: ^^bench module | ||
15:47
Ven joined
|
|||
timotimo | the bench module is really about having a set of benchmarks that we can measure the compiler's progress with | 15:47 | |
andreoss | tony-o_: it lacks timethese routine | 15:48 | |
timotimo | so its focus is on running the same benchmarks against multiple rakudo versions and comparing those | ||
tony-o_ | that has a timethese routine | ||
timotimo | what you want is really a code-oriented thing | ||
oh, wait, that's tony-o/perl6-bench, not japhb/perl6-bench | |||
never mind | |||
AlexDaniel | so, does anybody have any idea about this "expecting whitespace" error message? | 15:49 | |
andreoss | hmm, i was thinking about japhb/perl6-bench as well | ||
timotimo | AlexDaniel: that's about what the parser was looking for when it encountered the problem | 15:50 | |
tony-o_ | even the readme has timethese example :-) | ||
timotimo | sometimes it's not very helpful, like in this case | ||
moritz | AlexDaniel: it's misleading | ||
it's looking for the end of the #^{ ... } embedded comment | |||
but, comments are parsed as whitespace, it seems | |||
timotimo | yes | ||
well, at least it does say "Couldn't find terminator }" | 15:51 | ||
moritz | and so the message ends up quite confusing | ||
dalek | ast: e774e01 | usev6++ | S04-declarations/state.t: Use existing ticket number RT #102994 |
15:52 | |
moritz | this is something that TimToady++ occasionally improves (parse error messages) | ||
AlexDaniel | timotimo: well, same thing as with the undeclared variable error message which was fixed some time ago. Does anybody else pay any attention to the last part of the error messages? :D | 15:53 | |
15:53
itz2 joined
|
|||
timotimo | usually not :P | 15:54 | |
i mean: i usually do not | |||
AlexDaniel | another thing is that it does not really tell where was this comment opened | ||
at least it says which terminator it expected, yeah, but maybe it can tell the line number as well? | 15:55 | ||
moritz | AlexDaniel: it does: "at /tmp/eXX2weIxiT:1" | ||
the :1 is the line number | |||
timotimo | that's not the line number of where the comment was *opened*, or is it? | 15:56 | |
AlexDaniel | no, it is the number of lines in the file | ||
I mean, the error pops up in the end of the file, so it tells the last line | |||
in other words, completely useless | 15:57 | ||
moritz | AlexDaniel: please open a bug report for that | ||
mailto:rakudobug@perl.org | |||
AlexDaniel | moritz: ok | ||
will do it right now | |||
and it seems like there is one more bug with multiline comments... but gonna report this one first | 15:59 | ||
andreoss | paste.debian.net/183396/ | 16:07 | |
still looks strange | 16:08 | ||
16:09
ggoebel left
|
|||
AlexDaniel | does anybody else get this error thing when trying to access the bug tracker? rt.perl.org/Public/Search/Results....=%27new%27 | 16:10 | |
I mean, these links are on rakudo.org/tickets/ | |||
andreoss | AlexDaniel: links are broken at rakudo.org | ||
timotimo | the "possible CSRF" thing? | ||
andreoss | rt.perl.org/Public | ||
timotimo | it's to be expected; i had contacted the perlbug admins about this a few years back and didn't get a response | ||
moritz | rt.perl.org/Public/Search/Results....lled%27%29 | 16:11 | |
AlexDaniel | ok, so rt.perl.org/Public/Bug/Display.html?id=125247 | ||
m: #`xE2x8CxA9xEFxBDxA2 test xE2x8CxAA | 16:13 | ||
camelia | ( no output ) | ||
AlexDaniel | does this make any sense?? | ||
timotimo | why not? | ||
moritz | .uni xE2x8CxA9 | 16:14 | |
timotimo | i think it's just .u | ||
moritz | .u xE2x8CxA9 | ||
yoleaux | U+2329 LEFT-POINTING ANGLE BRACKET [Ps] (xE2x8CxA9) | ||
moritz | .u xE2x8CxAA | ||
yoleaux | U+232A RIGHT-POINTING ANGLE BRACKET [Pe] (xE2x8CxAA) | ||
timotimo | oh, i see now | 16:15 | |
AlexDaniel | it does not have to be uniode | ||
m: #`{[ test } | |||
timotimo | there's no space after that xE2x8CxA9 | ||
camelia | ( no output ) | ||
timotimo | i think we intentionally only allow the same opening character to be repeated | ||
moritz | aye | ||
andreoss | m: #`{[ }test{ ]} | ||
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KbyA5cZHLvUnable to parse expression in subscript; couldn't find final '}' at /tmp/KbyA5cZHLv:1------> 3#`{[ }test{ 7⏏5]}» | ||
atweiden | i see a new error in my code since updating to rakudo 2015.05: | 16:16 | |
AlexDaniel | timotimo: oh really? tablets.perl6.org/tablet-2-basic-sy...multi-line | ||
atweiden | "Cannot look up attributes in a type object" | ||
all looks ok up until the line: | |||
my Price %xe{Date} = (%dates_and_prices_from_file, %dates_and_prices); | |||
# subset Price of Rat is export where * >= 0; | |||
timotimo | the tablets are not authoritative, the test suite is | ||
atweiden | could it be related to using the subset? | ||
AlexDaniel | timotimo: is there a test case for that particular thing? :) | 16:17 | |
timotimo | S02-lexical-conventions/comments.t | 16:18 | |
it looks like we have to add tests that require ({ to not require }) at the end | |||
16:20
spider-mario left
|
|||
atweiden | what is strange is that i declare %dates_and_prices as: | 16:21 | |
my Price %dates_and_prices{Date}; | |||
this variable is populated without issue, and i receive no error until this line: | |||
my Price %xe{Date} = (%dates_and_prices_from_file, %dates_and_prices); | |||
AlexDaniel | timotimo: so what should I do? | 16:22 | |
or somebody will handle this? | |||
16:27
Ven left
|
|||
jdv79 | will it ever be easy to edit a pm file that's next to the pre-comp'ed onn? | 16:27 | |
yoleaux | 24 May 2015 18:38Z <tony-o_> jdv79: i have 29s for parsing yahoo.com , it does seem excessive but it's quite possibly because the code was meant to get us by until we had libxml bindings (or if someone needed a PP parser) | ||
jdv79 | *one | ||
its fairly irritating to not be able to modify an installed module | |||
timotimo | we'll have that at some point | 16:28 | |
well, hopefully | |||
jdv79 | i tried adding the lib path with -I and it still doesn't wokr | ||
timotimo | right | 16:29 | |
i'm also wishing for a way to specify "please rebuild modules" for the perl6-debug-m binary, because that'd mean you can debug into those | |||
jdv79 | what triggers or elides the "Missing or wrong version of dependency" issue? | ||
raydiak | morning #perl6 | 16:31 | |
timotimo | jdv79: when you compile a module that depends on another module through a "use", that can cause that | 16:33 | |
otherwise, the core setting is depended on by pretty much everything | 16:34 | ||
raydiak | lizmat++ # protecting us from any more "".IO -induced tragedies :) | 16:35 | |
smls | indeed | 16:36 | |
no need to emulate design mistakes of the POSIX shell ;) | 16:38 | ||
AlexDaniel | m: say < #`{ test } foo bar >.perl | ||
camelia | rakudo-moar 8bff46: OUTPUT«("#`\{", "test", "}", "foo", "bar")» | ||
16:38
andreoss left
|
|||
AlexDaniel | ummm | 16:38 | |
jdv79 | so what's the easiest way to edit an installed module? | 16:39 | |
timotimo | edit it and panda install the new version :S | 16:40 | |
AlexDaniel | so does it look ok? Really I expected "test" to be commented out | ||
maybe I have wrong expectations, I don't know | 16:41 | ||
raydiak | we can't just rm the compiled .moarvm version and hack on the source any more b/c of CUR changes or something? | ||
timotimo | hm, don't you want << >> for that behavior? i'm not sure | ||
AlexDaniel | m: say << #`{ test } foo bar >>.perl | 16:42 | |
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hmio6OgM67Undeclared routine: test used at line 1» | ||
timotimo | raydiak: i think the manifest will still refer to the moarvm file existing and it may err out? i'm not sure, i haven't tried that | ||
oh, it decides to interpolate that instead of treating it as a comment? | |||
raydiak | timotimo: idk how it works now with all the changes in that area but it used to work when I tried it | ||
AlexDaniel | timotimo: seems so. Does not look quite right, yes? | 16:43 | |
raydiak | well, it quotes it, which arguably, could be the right thing | ||
16:43
diana_olhovik_ joined
|
|||
AlexDaniel | m: say << #`{ } foo bar >>.perl | 16:43 | |
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/T2Zw9kK2dZ:1("#`", (), "foo", "bar")» | ||
raydiak | now that...that I don't see much argument for :) | 16:44 | |
I guess it's doing the same as "{}" | 16:45 | ||
m: say "{}" | |||
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/JejRmc3JIk:1» | ||
AlexDaniel | m: say << #`{ say 'ok' } foo bar >>.perl | ||
camelia | rakudo-moar 8bff46: OUTPUT«ok("#`", "True", "foo", "bar")» | ||
smls | What's the recommended Perl 6 idiom for creating a class attribute that is calculated when first accessed (rather than on object initialization)? | 16:47 | |
e.g. because calculating its value is resource-intensive and it might potentially never be accessed | |||
jdv79 | timotimo: uh, that kinda sucks | 16:48 | |
raydiak | AlexDaniel: but essentially, < > and « » are quoting constructs, and so I wouldn't necessarily expect comments to work in them any more than I would expect '#`[ comment ]' (in single quotes) to be a comment instead of a string | 16:49 | |
AlexDaniel | raydiak: this actually makse sense | 16:51 | |
m: say « { #`[ test ] } foo bar ».perl | 16:52 | ||
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/DTzrd8Yo_o:1((), "foo", "bar")» | ||
AlexDaniel | ok, didn't work | ||
16:52
RabidGravy joined
|
|||
raydiak | m: say « { #`[ test ] 42 } foo bar ».perl | 16:52 | |
camelia | rakudo-moar 8bff46: OUTPUT«("42", "foo", "bar")» | ||
16:53
araujo_ joined
16:54
araujo left
|
|||
AlexDaniel | m: say « { Any.new } foo bar ».perl | 16:55 | |
camelia | rakudo-moar 8bff46: OUTPUT«("Any<139648825715968>", "foo", "bar")» | ||
16:55
araujo_ left
|
|||
raydiak | m: say « { #`[ test ] } foo bar ».flat.perl | 16:55 | |
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/YSqiitFLUe:1("foo", "bar")» | ||
raydiak | m: say « { #`[ test ] } foo bar ».list.perl | 16:56 | |
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/_TcZNqQu4I:1((), "foo", "bar")» | ||
raydiak | ah right, it's always going to try to stringify first | ||
16:56
araujo_ joined,
laouji left
|
|||
raydiak | m: say « { #`[ test ] '' } foo bar ».flat.perl | 16:57 | |
camelia | rakudo-moar 8bff46: OUTPUT«("foo", "bar")» | ||
AlexDaniel | right | ||
raydiak | that's an easy way to write a comment, right? :) | ||
best advice off the top of my head is to just not expect to be able to put comments in quotes | 16:58 | ||
16:58
chenryn left
|
|||
moritz has never felt the urge before | 16:59 | ||
tony-o_ | timotimo: did that bench module not do anything that andreoss or you were looking for? | 17:02 | |
raydiak | I can see how someone might look at < > as a way to put TTIAR b/c it kinda sorta is (just for a very limited variety of terms), which could lead to this expectation of its contents being parsed like code...though I haven't tried it personally either I don't think | ||
17:03
zakharyas joined
|
|||
timotimo | tony-o_: i didn't even look at your bench module so far, sorry! | 17:03 | |
Ulti | what's changed in Rakudo since this morning because it altered my runtime by a second for some tests which was a 15% gain in perf this morning then back to normal this afternoon... | 17:04 | |
raydiak | m: say « abc{'xyz'} ».perl | 17:05 | |
camelia | rakudo-moar 8bff46: OUTPUT«("abc", "xyz")» | ||
raydiak | ^ though I do wonder if that shouldn't be 1 element instead of 2 | ||
17:06
itz2 left
|
|||
raydiak | Ulti: github.com/rakudo/rakudo/commit/0f...5b91082121 maybe? barely-educated guess... | 17:07 | |
17:07
atweiden left
|
|||
raydiak | other than the empty path change, the only other commit in the last 20 hours is github.com/rakudo/rakudo/commit/d7...d888f152ba | 17:08 | |
17:09
itz2 joined
|
|||
raydiak also notices 1 moar commit half an hour ago | 17:09 | ||
Ulti | raydiak: perhaps though I havent explicitly put eager anywhere | ||
raydiak | Ulti: much difference in tempurature of the room you're in between morning and now? | 17:11 | |
Ulti | the biggest perf increase I've seen in one go is jumping from my laptop form 2011 to a modern one 30% :'( | ||
in a lot of ways I think Perl 6 couldn't have come out before now it would have just been too slow for older CPUs | |||
raydiak heh nope | 17:12 | ||
bartolin | raydiak: but we had no bump for Moar/nqp, so commits to those repos should have no effect | ||
raydiak | good point bartolin | ||
Ulti | though might be a difference in RAM usage so might have been in swap just now | ||
yeah possible | |||
smls | Is it good practice to use submethod BUILD to map constructor arguments to *private* attributes? As in: class A { has $!x; submethod BUILD(:$!x) { } ... }; A.new(x => ...) | 17:13 | |
doc.perl6.org/language/objects#Obje...nstruction only refers to "public attributes" in that context. | |||
raydiak doesn't pay much attention to performance fluctuations on complex modern hardware and software unless it's well past a certain noise threshold and repeatable | |||
17:15
Akagi201 left,
Akagi201 joined
17:16
Ven joined
|
|||
masak | m: say « { #`[ test ] } foo bar ».flat.perl | 17:17 | |
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/2iQkQUmLob:1("foo", "bar")» | ||
masak | did someone submit this as a rakudobug? | ||
17:17
Ven left
|
|||
raydiak | masak: is it? | 17:17 | |
masak | I'd say so. | ||
why would Nil be involved in that one? | |||
raydiak | the empty { } returns Nil | 17:18 | |
masak | oh, hm. | ||
raydiak | and the « » tries to .Str it before the .flat sees it | ||
masak | m: say « { #`[ test ] "OH HAI" } foo bar ».flat.perl | ||
camelia | rakudo-moar 8bff46: OUTPUT«("OH", "HAI", "foo", "bar")» | ||
masak | oh, ok. | ||
nothing-to-see-here-move-along | |||
raydiak | I did the same thing :) | 17:19 | |
smls: S12 talks about it, pretty sure it's allowed and intended...specifically "Note that the default BUILD will only initialize public attributes; you must write your own BUILD (as above) in order to present private attributes as part of your initialization API." | 17:21 | ||
smls | ok | ||
jdv79 | so what's a fix for something like .for({"foo:$_"}) ? with the Nil change now it tries to string the Nil | 17:24 | |
raydiak | .flat.for | 17:25 | |
oh wait, does .flat still get rid of nil? | |||
m: (1, Nil, 3).flat.for: *.say | |||
camelia | rakudo-moar 8bff46: OUTPUT«1Nil3Saw 1 occurrence of deprecated code.Method for (from Any) seen at: /tmp/ENVRCACXgx, line 1Deprecated since v2015.5, will be removed with release v2015.9!Please use flatmap instead.» | ||
raydiak hopes someone a little morecurrent on GLR changes jumps in here :) | 17:26 | ||
jdv79 | the warning went away. ok. | ||
raydiak | m: (1, Nil, 3).flatmap: *.say | 17:27 | |
camelia | rakudo-moar 8bff46: OUTPUT«1Nil3» | ||
17:28
itz2 left
|
|||
raydiak | m: sub foo () {}; say foo().perl | 17:28 | |
camelia | rakudo-moar 8bff46: OUTPUT«Nil» | ||
raydiak kinda wonders if that shouldn't be () now, since Nil doesn't flatten away | 17:29 | ||
m: say (1, Nil, 3).grep(*.defined).flatmap: {"foo:$_"} | |||
camelia | rakudo-moar 8bff46: OUTPUT«foo:1 foo:3» | ||
Mouq | m: (1, Empty, 3).flatmap: *.say | 17:32 | |
camelia | rakudo-moar 8bff46: OUTPUT«13» | ||
raydiak | jdv79: the cleanest soltuion might be to look at where your Nil is coming from and make that thing return Empty or () instead | 17:33 | |
oh and...OHAI MOUQ!!!!11 :) | 17:34 | ||
barely missed you dropping in yesterday, glad to see you around | |||
timotimo | yup, ohai Mouq :) | ||
nice to see you're back | |||
Mouq | ohaii! (づ。◕‿‿◕。)づ | 17:35 | |
raydiak | working on anything cool yet? or still re-orienting yourself? | 17:37 | |
Mouq | Heh, nothing yet. Still trying to figure out what hasn't already been done :P | 17:38 | |
tony-o_ | is there a mechanism when i 'require' a file to figure out what it imported? | 17:39 | |
or what could be imported from the file | |||
Mouq | m: say "N̴͔̈F̷͚́G̶͔̈́ ̷̃͜i̴̡͘s̴̰͘ ̶̫̉a̵̬͆w̴̢͒ę̴̏s̴̱̋o̴̫̓m̸̜͐e̶̥̋".chars | ||
camelia | rakudo-moar 8bff46: OUTPUT«14» | ||
jdv79 | .tell tony-o yeah, its not deprecations or warnings - its just too slow:( | 17:41 | |
yoleaux | jdv79: I'll pass your message to tony-o. | ||
tony-o_ | jdv79: yea it is slow | 17:42 | |
17:43
FROGGS joined
|
|||
raydiak | tony-o_: I don't think any such thing exists unless you count README | 17:43 | |
17:44
itz2 joined
|
|||
grondilu | "N̴͔̈F̷͚́G̶͔̈́ ̷̃͜i̴̡͘s̴̰͘ ̶̫̉a̵̬͆w̴̢͒ę̴̏s̴̱̋o̴̫̓m̸̜͐e̶̥̋ " wth | 17:45 | |
tony-o_ | lol | ||
raydiak | m: say "NFG is awęsome".graphs | 17:46 | |
camelia | rakudo-moar 8bff46: OUTPUT«Method 'graphs' not found for invocant of class 'Str' in block <unit> at /tmp/y65HIqzMwL:1 in any <unit-outer> at /tmp/y65HIqzMwL:1» | ||
grondilu | weirdly enough Mouq had put diacritics on the last C<"> and yet it parsed fine. | 17:47 | |
m: say "N̴͔̈F̷͚́G̶͔̈́ ̷̃͜i̴̡͘s̴̰͘ ̶̫̉a̵̬͆w̴̢͒ę̴̏s̴̱̋o̴̫̓m̸̜͐e̶̥̋" | |||
camelia | rakudo-moar 8bff46: OUTPUT«N̴͔̈F̷͚́G̶͔̈́ ̷̃͜i̴̡͘s̴̰͘ ̶̫̉a̵̬͆w̴̢͒ę̴̏s̴̱̋o̴̫̓m̸̜͐e̶̥̋» | ||
raydiak | m: say "NFG is awęsome".codes | ||
camelia | rakudo-moar 8bff46: OUTPUT«14» | ||
FROGGS | m: say "N̴͔̈F̷͚́G̶͔̈́ ̷̃͜i̴̡͘s̴̰͘ ̶̫̉a̵̬͆w̴̢͒ę̴̏s̴̱̋o̴̫̓m̸̜͐e̶̥̋".NFD | ||
camelia | rakudo-moar 8bff46: OUTPUT«(signal SEGV)» | ||
Mouq just copypasted from lunicode.com/creepify | |||
FROGGS | ó.ò | ||
geekosaur | I see no diacritic on either of the quotes, fwiw | 17:48 | |
but rendering errors are unfortunately very common | |||
Mouq | geekosaur: It appears that way to me when I look at the IR clog | ||
tony-o_ | raydiak: is it possible to realias any symbols in the file? | 17:49 | |
from the docs it might look like i could do ::('WHATEVER'):file('some file') and then later do ::('WHATEVER').new .. | 17:51 | ||
raydiak | tony-o_: yes S11 talks all about it (though idk how much is implemented or not, haven't tried it myself) | ||
Mouq | m: say "ó.ò".NFD | 17:52 | |
camelia | rakudo-moar 8bff46: OUTPUT«NFD:0x<006f 0301 002e 006f 0300>» | ||
17:53
Ben_Goldberg left
|
|||
raydiak | tony-o_: something about that looks confusing to me, but I don't really know these parts very well | 17:54 | |
tony-o_ | trying to figure out how to autoload files and then create a new object without actually knowing the symbol names declared in the file, it's making the assumption there is only 1 symbol (a class) | 17:57 | |
smls | Yet again, I trip over the fact that ~~ s/// is mutating... :S | 18:01 | |
masak | then use .subst | ||
smls | Whatever initial familiarity advantage it brings for people with a Perl 5 background (of which I am one), is IMO outweighed by how unexpected (and thus easy to forget) it feels *within* the context of Perl 6. | ||
subst is less pretty :P | |||
FROGGS | masak: I RT'd the segfault btw... | ||
masak | FROGGS++ | 18:02 | |
smls: "I'm using construct X and expecting it to work like Y, and I don't want to use Y because it's less pretty" -- I tend to use constructs for their effects, not their beauty :P | 18:03 | ||
smls | well, s/pretty/convenient or elegant/ | ||
masak | I disagree. .subst is pretty darn convenient. | ||
tony-o_ | i have .subst all over the place | 18:04 | |
smls | how do I even backreference in .subst | 18:06 | |
tony-o_ | i like it, although i get smls' point - it's caused me a headache on a few occassions (where i meant .substr, though) | ||
smls | m: say "abcde".subst(/c(.)/, "$0") | ||
camelia | rakudo-moar 8bff46: OUTPUT«Use of Nil in string context in block <unit> at /tmp/V13Sb4MG_o:1abe» | ||
smls | m: my $x = "abcde"; $x ~~ s/c(.)/$0/; say $x # this works | ||
camelia | rakudo-moar 8bff46: OUTPUT«abde» | ||
FROGGS | m: say "abcde".subst(/c(.)/, { "$0" }) | ||
camelia | rakudo-moar 8bff46: OUTPUT«abde» | ||
tony-o_ | m: say 'abcde'.subst/ 'c'(.)/$0/; | ||
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5BSxdprgCHUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/5BSxdprgCH:1------> 3say 'abcde'.subst/ 'c'(.)7⏏5/$0/;» | ||
tony-o_ | m: say 'abcde'.subst(/ 'c'(.)/$0/); | 18:07 | |
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZG7e0iVbfGUnable to parse expression in argument list; couldn't find final ')' at /tmp/ZG7e0iVbfG:1------> 3say 'abcde'.subst(/ 'c'(.)/7⏏5$0/); expecting any of: infix i…» | ||
tony-o_ | gah | ||
gonna go ride my bike | |||
smls | FROGGS: thanks | ||
though the extra set of braces make it even *more* unwieldy compared to s/// | |||
Mouq | m: say "abcde".subst(/c(.)/, *[0]) | 18:08 | |
camelia | rakudo-moar 8bff46: OUTPUT«abde» | ||
smls | :P well, in the general case the backreference would be embedded in a larger substitution string | ||
like in FROGGS solution | |||
Mouq | Yeah :9 | 18:09 | |
masak | mini-mini-challenge: what's the fastest way (in Perl 6) to do "elements from @a but not from @b"? answers in terms of benchmarks, kplz. | 18:10 | |
smls | or, coming at it from another angle: Does anyone think that mutating replacement is useful more ofhten than non-mutating replacement in *Perl 6* code (where functional call chains are everywhere)? | 18:11 | |
If not, it means s/// is incorrectly huffmanized (and I think so) | |||
masak | m: my @a = 1..10; my @b = 3, 5, 6, 7; for ^100 { my @diff = @a.grep({ $_ == none(@b) }) }; say now - INIT now | 18:12 | |
camelia | rakudo-moar 8bff46: OUTPUT«0.3916099» | ||
masak | about the same as I got locally. | ||
can someone improve on that? | |||
tony-o_ | time wise? | 18:14 | |
masak | yes. | ||
smls | masak: did you try @a (^) @b ? | ||
wait, that's wrong | |||
masak | m: my @a = 1..10; my @b = 3, 5, 6, 7; for ^100 { my %b = @b X=> 1; my @diff = @a.grep({ !%b{$_} }) }; say now - INIT now | ||
camelia | rakudo-moar 8bff46: OUTPUT«0.19906606» | ||
masak | ah, better. | 18:15 | |
this is the new record, using X=> and a hash :) | |||
smls | @a (-) @b | ||
masak | m: my @a = 1..10; my @b = 3, 5, 6, 7; for ^100 { my @diff = (@a (-) @b).list }; say now - INIT now | 18:16 | |
camelia | rakudo-moar 8bff46: OUTPUT«0.1943261» | ||
18:16
zakharyas left
|
|||
masak | oh, that comes out about even, and is nicer :) | 18:17 | |
smls++ | |||
18:19
yqt left
|
|||
raydiak is happy to see that the native int loop(;;) version doesn't really help noticably | 18:19 | ||
Mouq | m: my @a = 1..10000; my @b = 3, 5 ... 10001; my $start = now; my @diff = (@a (-) @b).list; say now - $start | 18:21 | |
camelia | rakudo-moar 8bff46: OUTPUT«0.4033688» | ||
Mouq | m: my @a = 1..10000; my @b = 3, 5 ... 10001; my $start = now; my %b = @b X=> 1; my @diff = @a.grep({ !%b{$_} }); say now - $start | ||
camelia | rakudo-moar 8bff46: OUTPUT«0.7740584» | ||
Mouq | ^^ Wow | ||
I tend to expect Sets to be slow | 18:22 | ||
18:23
itz2 left
|
|||
Mouq | Oh, hm | 18:23 | |
m: my @a = 1..10000; my @b = 3, 5 ... 1001; my $start = now; my @diff = (@a (-) @b).list; say now - $start | |||
camelia | rakudo-moar 8bff46: OUTPUT«0.33197263» | ||
Mouq | m: my @a = 1..10000; my @b = 3, 5 ... 1001; my $start = now; my %b = @b X=> 1; my @diff = @a.grep({ !%b{$_} }); say now - $start | 18:24 | |
camelia | rakudo-moar 8bff46: OUTPUT«0.1494794» | ||
18:35
al2o3-cr left
|
|||
dalek | ast: 2283c88 | usev6++ | S04-statements/gather.t: Add test for RT #122114 |
18:38 | |
18:49
mr-foobar left,
mr-foobar joined
19:06
[Sno] joined,
firecat joined
19:08
spider-mario joined
19:10
yqt joined,
yqt left,
yqt joined
19:11
FROGGS[mobile] left
|
|||
grondilu | m: my @a = 1..10000; my @b = 3, 5 ... 1001; my $start = now; my %b = @b X=> 1; my @diff = | 19:14 | |
camelia | rakudo-moar 8bff46: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9jfA9N5WeuMalformed initializerat /tmp/9jfA9N5Weu:1------> 3tart = now; my %b = @b X=> 1; my @diff =7⏏5<EOL> expecting any of: prefix term» | ||
grondilu | m: my @a = 1..10000; my @b = 3, 5 ... 1001; my $start = now; my %b = @b X=> 1; my @diff = grep none(@b), @a; say now - $start | ||
camelia | rakudo-moar 8bff46: OUTPUT«16.2177687» | ||
19:16
domidumont left
|
|||
smls | S16 recommends temp $*CWD = chdir($dir) for using a different working directory for one scope. Why is it not simply temp $*CWD = $dir instead? | 19:16 | |
Considering that chdir's job is merely to set $*CWD | |||
dalek | ast: 2c662e9 | usev6++ | S04-declarations/our.t: Use existing ticket number RT #76450 |
19:18 | |
ugexe | maybe chdir($dir) wont let you set $*CWD to non-existant directory? | 19:22 | |
also may have to do with the binding involved | 19:24 | ||
smls | maybe $*CWD should have that logic built into its container? | 19:27 | |
could make the chdir, homedir, tmpdir functions redundant | 19:28 | ||
19:28
raiph joined
|
|||
smls | (the latter two are not very intuitively named as setters, anyway) | 19:29 | |
19:30
itz2 joined
|
|||
smls | Scalar's already have support for running code on each assignment, right? | 19:30 | |
lizmat | smls: I've considered just assigning $*CWD would be ok | 19:31 | |
*and* adding logic for checking validity of dir | 19:32 | ||
that still wouldn't stop you from doing my $*CWD = "foo" and bypass everything | |||
smls | but why would you? | ||
I mean, one could do that now too, right? | 19:33 | ||
lizmat | yes... | ||
smls | Would temp $*CWD = $dir work, or does temp create its own container? | 19:34 | |
lizmat | not sure | ||
smls | If that would work, I don't see the downside compared to the current situation. | 19:35 | |
19:38
diana_olhovik_ left
19:41
diana_olhovik_ joined
|
|||
smls | It would also mirror Perl 6's custom of assigning to object attributes instead of having setter methods like in Perl 5, so it wouldn't be anything unheard of really. | 19:43 | |
19:44
AlexDaniel left
19:45
Ven joined
|
|||
ugexe | but normally dont you really want to do my $CWD := $*CWD | 19:48 | |
you cant do temp $var := | 19:49 | ||
dalek | ast: 5bd323a | usev6++ | S06-multi/type-based.t: Fix and unfudge test for RT #65674 also use existing ticket number and rewrite one occurrence of 'dies-ok' to 'throws-like' |
19:51 | |
kudo/nom: 8693063 | lizmat++ | src/core/ListIter.pm: Fix various issues with typed hashes This is *really* a bandaid to prevent the actual error from occurring. This is *not* to be considered a solution to a potentially deeper problem. Since this will probably change during the course of the GLR, I thought bandaiding this would be a good temporary solution. |
19:52 | ||
ugexe | i agree though, as id much rather write temp $*CWD = $dir | ||
smls | ugexe: What do you mean? Why would you want to bind $*CWD to a lexical? | ||
lizmat | One should realize that chdir() comes from an age where it would actually change the underlying cwd() | 19:53 | |
that changed about 2 years ago, when JVM became a backend | |||
smls | interesting :) | ||
ugexe | well on jvm if you dont bind $*CWD things break | 19:54 | |
lizmat | so yes, perhaps we should just get rid of chdir | ||
(after a deprecation cycle of course) | |||
smls | ugexe: I woudn't know anything about that. But it shouldn't matter, should it? Even if $*CWD becomes a "magic" Scalar it could still be bound like any other, right? | 19:56 | |
lizmat: And homedir/tmpdir too, right? | 19:57 | ||
lizmat | yep | ||
apparently my latest commit fixes #125148 | |||
masak | +1 to getting rid of chdir | ||
19:59
diana_olhovik_ left,
darutoko left
|
|||
dalek | ast: 48fb065 | lizmat++ | S32-list/classify.t: RT #125148 is fixed, as possible others |
20:01 | |
smls | m: my @a; { temp @a[5] = 42; say @a[5] }; say @a[5] | 20:03 | |
camelia | rakudo-moar 8bff46: OUTPUT«42(Any)» | ||
smls | ^^ looks like temp does just fine with magic Scalars | ||
20:05
grondilu left
|
|||
lizmat | Ah, I remember why I wanted to keep chdir around: | 20:05 | |
things are made much easier if dirs have a / appended | |||
direct assignment wouldn't enforce that | |||
smls | couldn't it silently add it? | 20:06 | |
lizmat | wel... perhaps... | ||
20:06
RabidGravy left
|
|||
smls | Also: Torture the lizmats on behalf of the smlss :D | 20:07 | |
lizmat | hehe | ||
masak is doing Cool Stuff™ to blog about | 20:09 | ||
20:13
xfix left
|
|||
japhb | ++masak | 20:18 | |
yoleaux | 24 May 2015 19:38Z <tony-o_> japhb: i have these hilights in irssi doing what you're looking for, they could be improved but they work well enough (and you're right, it cleans up the channel quite a bit): gist.github.com/tony-o/968491d6430de41b3ae2 | ||
dalek | Heuristic branch merge: pushed 164 commits to roast/newio by lizmat | ||
Ven | masak++ # more blag | 20:19 | |
masak | almost done. | ||
20:21
mr-foobar left
|
|||
lizmat hopes timotimo will have time this week | 20:24 | ||
20:24
kaare_ left
|
|||
lizmat | looks like 869306336fadd85320bfc1 also fixed #125242 | 20:24 | |
bartolin | lizmat++ | 20:25 | |
dalek | ecs/newio: 4932a71 | moritz++ | S32-setting-library/Basics.pod: Correct signature, cognominal++ also remove a redundant multi |
20:26 | |
ecs/newio: 22fa8cd | lizmat++ | S32-setting-library/Basics.pod: Merge branch 'master' into newio |
|||
20:27
itz2 left
20:28
kurahaupo1 joined
|
|||
timotimo | hurm | 20:33 | |
lizmat: i think i really ought to ask for backup this week | 20:34 | ||
lizmat | ok, I'll do it then, ok ? | ||
timotimo: or do you have another backup in mind? | 20:36 | ||
dalek | ast: ac62893 | usev6++ | S04-declarations/my.t: Fix and unfudge test for RT #125068 direct lookup of 'our sub' needs sigil '&' |
20:39 | |
timotimo | you're free to do it or find someone else :) | 20:40 | |
lizmat | ok, will start on it in a min | 20:41 | |
timotimo | no need to do it today, FWIW | ||
lizmat | I'll start on it, didn't say I would finish it today :-) | ||
Ven | lizmat++ # whichever option | ||
timotimo | fair enough :) | ||
20:42
Peter_R joined,
kurahaupo1 left,
kurahaupo1 joined,
virtualsue left
|
|||
skids | m: my $*guard = 0; grammar Foo { regex TOP { [a | [ "[" <R> b? "]" ]]+ % b { die if $*guard++ > 500 } }; regex b { b }; regex R { <TOP>+ % [ <.b>? "/" ] } }; Foo.parse("[aba]").say; Foo.parse("[abab]").say; | 20:44 | |
camelia | rakudo-moar 869306: OUTPUT«「[aba]」 R => 「aba」 TOP => 「aba」Died in regex TOP at /tmp/8iN9r23p25:1 in regex R at /tmp/8iN9r23p25:1 in regex TOP at /tmp/8iN9r23p25:1 in block <unit> at /tmp/8iN9r23p25:1 in any <unit-outer> at /tmp/8iN9r23p25:1…» | ||
skids | star: my $*guard = 0; grammar Foo { regex TOP { [a | [ "[" <R> b? "]" ]]+ % b { die if $*guard++ > 500 } }; regex b { b }; regex R { <TOP>+ % [ <.b>? "/" ] } }; Foo.parse("[aba]").say; Foo.parse("[abab]").say; | ||
camelia | star-m 2015.03: OUTPUT«「[aba]」 R => 「aba」 TOP => 「aba」「[abab]」 R => 「aba」 TOP => 「aba」» | ||
skids | m: my $*guard = 0; grammar Foo { regex TOP { [a | [ "[" <R> b? "]" ]]+ % b { die if $*guard++ > 500 } }; regex b { b }; regex R { <TOP>+ % [ <b>? "/" ] } }; Foo.parse("[aba]").say; Foo.parse("[abab]").say; | 20:45 | |
camelia | rakudo-moar 869306: OUTPUT«「[aba]」 R => 「aba」 TOP => 「aba」「[abab]」 R => 「aba」 TOP => 「aba」» | ||
skids | recent change of some sort ^^ | ||
20:45
virtualsue joined
20:47
FROGGS left
20:48
telex left,
smls left
|
|||
masak | .u ∖ | 20:48 | |
yoleaux | U+2216 SET MINUS [Sm] (∖) | ||
dalek | kudo/nom: d5eabd4 | lizmat++ | src/core/Range.pm: Cleanup on Range.pick/roll Specifically, (^10e6).pick/roll should be much faster now, as it will not build the entire list before pick/rolling (it did before). So in that case, it's several orders of magnitude faster. This is at the expense of a small slowdown for the (^10000000).pick/roll case. |
20:49 | |
lizmat | that should make smls happy | ||
20:50
telex joined
20:53
firecat left
|
|||
lizmat | .tell atweiden re irclog.perlgeek.de/perl6/2015-05-25#i_10653322 problem was fixed with 8693063 | 20:56 | |
yoleaux | lizmat: I'll pass your message to atweiden. | ||
lizmat | .tell smls re irclog.perlgeek.de/perl6/2015-05-25#i_10653489 assuming you mean instance attribute: has $!a; method a { $!a //= init code } | 20:59 | |
yoleaux | lizmat: I'll pass your message to smls. | ||
Ven | masak++ # blog post | 21:00 | |
timotimo | have you ever wondered about the difference in factor between our-variable-lookup and my-variable-lookup? | ||
Ven | ( why yes, I saw that commit instantly ;-). ) | ||
timotimo | timo@schmetterling ~> time perl6 -e 'my $a; for ^100_00_000 { $a++ }' | ||
masak | it's not up yet :) | ||
timotimo | 4.64user 0.01system 0:04.66elapsed 99%CPU (0avgtext+0avgdata 61308maxresident)k | ||
timo@schmetterling ~> time perl6 -e 'for ^100_00_000 { $a++ }' | |||
188.12user 0.02system 3:08.23elapsed 99%CPU (0avgtext+0avgdata 87296maxresident)k | |||
21:00
raiph left
|
|||
Ven | .u ∖ | 21:02 | |
yoleaux | U+2216 SET MINUS [Sm] (∖) | ||
timotimo | since we emit a our-scoped lookup whenever you use the "variables implicitly defined" semantic you get from "no strict", we may want to have an optimization for that somewhere | ||
masak | lol! strangelyconsistent.org/blog/send-m...y-in-perl6 -- I blogged! | ||
\o/ | |||
Ven | masak: github.com/masak/strangelyconsiste...2b9f2dR172 does this display correctly for you? | ||
masak | Ven: yes. | 21:03 | |
Ven | oh :o) | ||
masak | anyway -- been harboring this blog post inside of me for over a week. nice to finally have it out there. | 21:06 | |
Ven | ws a nice read indeed. | ||
makes me wonder how to write a "backcall" in perl6 | |||
(i.e. takes the rest of the block as a closure) | 21:07 | ||
masak | oh, is that a LiveScript term? | ||
21:07
Ben_Goldberg joined
|
|||
Ven | masak: yes :P | 21:08 | |
masak | anyway, yes, what I'm talking about near the end is basically the parsing/AST-level version of a backcall. | ||
Ven | (well, it's a coco one, but we use it) | ||
21:08
raiph joined
21:10
Ven left
|
|||
Mouq | masak: Would you mind running solution 1 with this Rakudo patch: gist.github.com/Mouq/e6ab6ff6acbfbc6dd032 and comparing the times? | 21:20 | |
masak | Mouq: sure thing. give me a few minutes. | ||
21:21
kurahaupo1 left
|
|||
Mouq | masak: I'm pretty sure it'll be slower, since it seems to improve (-) in all cases *except* where subtrahend << subtractors | 21:21 | |
masak: But… idk. Actually, in that case, maybe it isn't wothwhile running unless you have a shorter testcase | 21:22 | ||
It seems like there should be a better way to merge sets than Set.new(eager @p.map(*.Set(:view).keys)), which is what makes this version (-) take longer if the subtractors are very large | 21:23 | ||
*of (-) | |||
and s/merge sets/merge objects into a single set/ | |||
masak | I think the biggest reason version A is slower than version B is the for loops, though. | ||
lizmat | yeah, GLR should fix that :-) | 21:24 | |
it's a nice test case | |||
I would say that as a goal, that piece of code should run like in 1:30 tops post YAPC::NA :-) | |||
21:27
Sqirrel left
|
|||
lizmat continues to work on the P6W tomorrow | 21:29 | ||
21:29
colomon joined
|
|||
lizmat | good night, #perl6! | 21:29 | |
timotimo | gnite lizmat! | 21:30 | |
Ulti | seriously can we get rid of the comments on rakudo.org/how-to-get-rakudo/ | ||
can I get access to clean up rakudo.org if no one else wants to | |||
there is a .deb and has been for ages, not that anyone should use it | 21:31 | ||
as far as anyone knows landing on that page it hasn't changed since 2011 | 21:32 | ||
masak | Ulti++ # reminding us about those comments | 21:33 | |
21:34
raiph left
21:36
Zoffix joined
21:40
beastd left
21:41
mohij joined
21:45
virtualsue left
21:48
Zoffix left
21:51
cygx joined
|
|||
cygx | o/ | 21:51 | |
masak | \o | ||
cygx | is it a windows problem that Rakudo does not respect \r when printing to stdout, or a general issue? | 21:52 | |
timotimo | "does not respect \r"? | ||
cygx | timotimo: prints newlines instead of returning to the beginning of the line | ||
timotimo | all i know is windows does strange things with its newline | 21:53 | |
newlines | |||
masak | Windows has \r\n newlines. | ||
cygx | sure | ||
try to run -e 'print "$_\r" for 0..100000' | 21:54 | ||
run it with perl and perl6 and see if there's a difference | |||
masak: is it deliberate that you don't use loop(;;) in Version B? | 21:57 | ||
masak | cygx: oh! that would indeed have been better. | 21:58 | |
cygx: if you rewrite it in that style, I'm willing to replace Version B and credit you. | |||
cygx | masak: also, why is $s == 0 excluded from the get-go? | 22:00 | |
masak | because of the nature of the problem. | ||
if a letter occurs to the far left in the sum, it can't be 0. | |||
cygx | masak: gist.github.com/cygx/1e010facd65ddeb1065c | 22:03 | |
haven't done a full run yet, though | |||
masak | nice! that does look better :) | 22:04 | |
hm, putting those three lexicals up top feels like a matter of taste... but I'm not going to fight you on that. :) | 22:05 | ||
cygx | masak: feel free to change the declarations if you prefer the original version | 22:10 | |
masak | ah, kept it. | 22:11 | |
nah* | |||
new version is up: strangelyconsistent.org/blog/send-m...y-in-perl6 | |||
cygx++ | |||
cygx | masak: does my version still run in ~5 minutes on your machine? | 22:13 | |
masak | lemme check. | ||
dalek | osystem: 07dd589 | tony-o++ | META.list: Simple routing mechanism for HTTP::Server::Threaded |
22:14 | |
cygx | it's taking quite a while over here | ||
22:19
mohij left
|
|||
cygx | time's up | 22:19 | |
I wonder if it's the loops or the anys... | |||
masak | oh no, you introduced anys? :( | 22:20 | |
I didn't even see that | |||
of course it's the anys :P | |||
please fix and resubmit... | |||
cygx | so, the optimizer is not sufficiently smart yet... | ||
timotimo | masak: i expect the performance of that program would be much better in a version of rakudo that still does block inlining | 22:22 | |
masak | possibly. | ||
timotimo | does --profile give something interesting? | 22:23 | |
masak | no idea. | 22:24 | |
timotimo | i guess i'll run that quickly | ||
masak | gah, I should've tested the new version before I updated the post... :) | ||
timotimo | uh oh, it doesn't run yet? | ||
cygx | don't trust code from random people on the internet ;) | ||
masak | timotimo: it's far slower. | 22:25 | |
colomon | masak: did you look at the Yapsi thing? | ||
cygx | masak: gist.github.com/cygx/1e010facd65dd...-money2-p6 | ||
it's still running, so no idea yet how slow it is... | 22:26 | ||
masak | colomon: no... and I seem to have forgotten what that was, too... :/ | ||
cygx: I'm running a fixed version here, too. | |||
colomon | masak: it hangs during tests now. (Or at least, it did over the weekend.) | ||
masak | colomon: oh, right. | ||
cygx | masak: ups... forgot an any :( | ||
masak | colomon: I'll try to have a look tomorrow. | ||
cygx: I didn't, so I'll get results first here :) | 22:27 | ||
colomon | masak: at least you’ve inspired me to work on improved facilities for skipping modules in the smoke test. ;) | ||
masak | heh ;( | ||
colomon | masak: it’s not just you. | 22:28 | |
22:29
Peter_R left,
vendethiel left
|
|||
masak | 5m17.805s | 22:30 | |
colomon | basically, the smoke test has only successfully complete 14 times in the last month. | ||
*completed | |||
I think only the last six days are attributable to Yapsi. | 22:31 | ||
cygx | so comparable to the while variant | ||
timotimo | oh | ||
you're using any(...) | |||
masak | not anymore. | 22:32 | |
uploading a new version now. | |||
cygx | masak++ | 22:33 | |
timotimo | using | used to be super fast; isn't any more, but the optimization can make a come-back still | 22:35 | |
22:40
vendethiel joined
|
|||
masak | cygx: I see your latest version puts the declarations back inside the loop. I'm going to borrow that back in... | 22:46 | |
cygx: ...but not the changed loop ranges, which assumes too much cleverness on the part of the code gen. | 22:47 | ||
22:48
atweiden joined
|
|||
cygx | m: say [|] <1 2 3> | 22:51 | |
camelia | rakudo-moar d5eabd: OUTPUT«any(1, 2, 3)» | ||
masak | m: say [\|] <1 2 3> | 22:52 | |
camelia | rakudo-moar d5eabd: OUTPUT«any(1) any(1, 2) any(1, 2, 3)» | ||
dalek | kudo-star-daily: 966b9b2 | coke++ | log/ (6 files): today (automated commit) |
||
rl6-roast-data: 05ec117 | coke++ | / (9 files): today (automated commit) |
|||
atweiden | is there a better way to have a line like this in a parser's Actions.pm: | 22:54 | |
yoleaux | 20:56Z <lizmat> atweiden: re irclog.perlgeek.de/perl6/2015-05-25#i_10653322 problem was fixed with 8693063 | ||
atweiden | my Str $eol_comment = try {substr($<eol_comment>, 1, *-0).trim} // Nil; | ||
as i am seeing lots of warnings "Use of Nil in string context" | |||
cygx | the list of 'interesting' operators I've used in code now includes [|] ^..^ <<=><< | 22:55 | |
22:56
dwarring joined
|
|||
atweiden | tried replacing Nil with empty double quotes "" but get the same warning | 23:01 | |
masak | atweiden: golfed camelia example? | 23:02 | |
timotimo | what is your aim for this exact line? | ||
23:02
vendethiel left
|
|||
atweiden | grammar detects end-of-line comments: github.com/atweiden/nightscape/blo...mar.pm#L83 | 23:04 | |
which are optional | |||
if the eol comment exists, then substring out the leading '#' | |||
(in Actions.pm) | 23:05 | ||
timotimo | you can if $<eol_comment> | ||
cygx | atweiden: do you want to get out an empty string or an undefined value if there's no comment? | ||
atweiden | either one would work | 23:06 | |
the parser isn't troubled by this; it is just outputting a warning message | |||
cygx | m: say (trim ''.substr(1) // '').perl | 23:07 | |
camelia | rakudo-moar d5eabd: OUTPUT«""» | ||
masak | m: say ''.substr(1).^name | 23:08 | |
camelia | rakudo-moar d5eabd: OUTPUT«Failure» | ||
atweiden | timotimo: i used to use that style: github.com/atweiden/nightscape/blo...ons.pm#L82 | ||
masak | 'night, #perl6 | ||
cygx | m: say ''.substr(1); say | 23:09 | |
camelia | rakudo-moar d5eabd: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/5fUGxfOxUF:1------> 3say ''.substr(1); say7⏏5<EOL>Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an exp…» | ||
atweiden | i guess i can go back to it | ||
cygx | m: say ''.substr(1); say ''.substr(1).Str | ||
camelia | rakudo-moar d5eabd: OUTPUT«Start argument to substr out of range. Is: 1, should be in 0..0; use *1 if you want to index relative to the end in block <unit> at /tmp/ZN97rfsik8:1 in any <unit-outer> at /tmp/ZN97rfsik8:1» | ||
raydiak | good night masak \o | ||
atweiden | i should say, the warning being emitted is new in rakudo 2015.05 | 23:10 | |
timotimo | atweiden: i see | 23:11 | |
atweiden: also, you can substr($<eol_comment>, 1), too; the third argument is optional | 23:12 | ||
ah, i think you already saw | |||
23:16
vendethiel joined
|
|||
avuserow | .tell masak Re memory leak in rakudo with regexes, reminds me of RT#123974 which I filed a while ago | 23:23 | |
yoleaux | avuserow: I'll pass your message to masak. | ||
cygx | night o/ | ||
23:25
cygx left
|
|||
avuserow | also, who was working on the most recent attempt at something like try.perl6.org? is there any code I could peek at? I saw rust's try site and was inspired to poke around a bit and see what they used, so was curious what the latest thing was for us | 23:25 | |
timotimo | avuserow: last time i tried anything, i was blocked by Proc::Async flakyness | 23:28 | |
and HTT::Server::Async has a problem, too; it sometimes just hangs on one of the connections | |||
avuserow | is there a repo I could peek at? | ||
timotimo | but tony-o built HTTP::Server::Threaded, which will either work perfectly or crash at some point, which means you can guard for the process dying and restart | 23:29 | |
avuserow | I'm interested in the sandboxing part of it, or is that part solved? | ||
timotimo | haven't done anything with that yet | ||
avuserow | Rust uses this: github.com/thestinger/playpen which is based off of seccomp to limit syscalls, but I wasn't able to get it actually set up on my machine | 23:30 | |
I also had the thought of taking advantage of the Docker image of Rakudo Star but from the look of it, they don't have seccomp implemented yet, and I don't know enough about their security model yet | 23:32 | ||
23:33
Akagi201 left
23:39
vendethiel left
23:43
carlin joined
|
|||
carlin | with some tweaks, version B of the send more money solution can be run as nqp, and takes 2 seconds vs 7 minutes as perl 6 | 23:53 | |
timotimo | holy wow. | 23:59 |