»ö« 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/Uv4ZD3daxF␤Unrecognized 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/k1tiE3K1WW␤Unsupported use of rand(N); in Perl 6 please use N.rand for Num or (^N).pick for Int result␤at /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/H5d31IblF6␤Confused␤at /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 hai␤oh hai␤oh hai␤oh hai␤Nil␤»
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«1␤2␤3␤»
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/eXX2weIxiT␤Couldn'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«4␤2␤0␤3␤1␤»
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: #`􏿽xE2􏿽x8C􏿽xA9􏿽xEF􏿽xBD􏿽xA2 test 􏿽xE2􏿽x8C􏿽xAA 16:13
camelia ( no output )
AlexDaniel does this make any sense??
timotimo why not?
moritz .uni 􏿽xE2􏿽x8C􏿽xA9 16:14
timotimo i think it's just .u
moritz .u 􏿽xE2􏿽x8C􏿽xA9
yoleaux U+2329 LEFT-POINTING ANGLE BRACKET [Ps] (􏿽xE2􏿽x8C􏿽xA9)
moritz .u 􏿽xE2􏿽x8C􏿽xAA
yoleaux U+232A RIGHT-POINTING ANGLE BRACKET [Pe] (􏿽xE2􏿽x8C􏿽xAA)
timotimo oh, i see now 16:15
AlexDaniel it does not have to be uniode
m: #`{[ test }
timotimo there's no space after that 􏿽xE2􏿽x8C􏿽xA9
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/KbyA5cZHLv␤Unable 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/hmio6OgM67␤Undeclared 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«1␤Nil␤3␤Saw 1 occurrence of deprecated code.␤Method for (from Any) seen at:␤ /tmp/ENVRCACXgx, line 1␤Deprecated 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«1␤Nil␤3␤»
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«1␤3␤»
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:1␤abe␤»
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/5BSxdprgCH␤Unsupported 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/ZG7e0iVbfG␤Unable 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/9jfA9N5Weu␤Malformed initializer␤at /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 malformed␤at /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