»ö« 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.
timotimo germany 00:02
near the tip where france pokes in
i mean the tip of france that pokes in 00:03
but on the germany side 00:04
tony-o_ ah, i've been to füssen and münchen
timotimo i don't know fussen :S
tony-o_ seems like it'd be a really nice place to ride
timotimo agreed 00:05
except if you have hayfever ;)
which i do :\
tony-o_ i have the year round allergies too. i've started taking a heaping spoon of raw bee pollen in the mornings and it seems to help a lot (for me anyway) - much better than the shots i've been getting since i was 12 00:06
timotimo oh? interesting 00:07
where can you get that kind of thing?
tony-o_ füssen is about half way between münchen and liechtenstein 00:08
i get it at a 'natural foods' store, kind of a hippy store where everything is marketed as organic and cleansing
timotimo mhm 00:09
what amount of money do you pay for such a thing?
tony-o_ get about 16oz for $8
45[0-9] grams 00:10
timotimo a heaping spoon of that would not be terribly much, right? i imagine that stuff is very light?
tony-o_ i don't know the conversion to euros 00:11
timotimo closer to 1:1 these days, sadly
tony-o_ it'd probably last a month or two if that's all youy used it for
timotimo what else would it be good for?
and more importantly: how did you reach this idea? :)
tony-o_ i've discovered that folks with allergies think it tastes terrible, others don't think that so much 00:12
timotimo oh? that sort of sounds sensible 00:13
hm. the "send more money" script doesn't terminate after the first result? 00:14
tony-o_ i had a lot of people tell me to 'eat honey, that works great', it doesn't so i started reading about why people think honey works and thought bee pollen is what really works for people, the small amount of pollen in honey is good enough for most people. my gf puts pollen in her smoothies that she makes, so i at a couple granules and turned beat red
then i just went for it the next day and didn't have any allergy problems after that
timotimo wow, that sounds pretty awesome
tony-o_ no more hives, itchy eyes, fatigue, fogginess, etc
timotimo and you have to keep that up to keep the symptoms away?
tony-o_ it works pretty instantly and the effects go away just as quickly 00:15
timotimo EUR 19,95/kg
on amazon :)
tony-o_ your CNS attacks the pollen instead of attacking your body, so it doesn't get rid of the problem but it makes your CNS not make you leak like a sieve or take it out on your body in other ways 00:16
timotimo that sounds awesome
i wish it'd help :)
but anything less than 1kg is pretty expensive, comparatively 00:17
tony-o_ most of that is speculation or a single pass reading of some medical document about why it works. i will say it does work for me, though 00:18
never thought about amazon
timotimo hehe 00:19
i might see if it helps me at all
tony-o_ i'd be interested to know the outcome 00:20
timotimo how much grams are in such a "heaping spoon"?
tony-o_ i've never measured 00:21
15-25g ?
timotimo i'm trying to figure out if it's an "esslöffel" or a "teelöffel" 00:21
tony-o_ about a tablespoon size, not sure if tablesppon is a universal thing
timotimo ah, tablespoon then 00:22
now, there's still a difference between putting a heap onto a tablespoon or removing any excess off the top so that the "heap" becomes flat, essentially 00:26
tony-o_ lol 00:27
tony-o_ i'm not that scientific about it 00:27
jdv79 oddly quiet 03:53
tony-o_ its eerie
almost sinister 03:54
m: garbage
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1aiSu3TC0W␤Undeclared routine:␤ garbage used at line 1␤␤»
tony-o_ m: GLOBAL::.hash.say
camelia rakudo-moar c2a57e: OUTPUT«␤»
tony-o_ m: GLOBAL::.hash.say; use Test;
camelia rakudo-moar c2a57e: OUTPUT«Test => (Test)␤»
jdv79 is like larry, jonathan, and patrick are colluding elsewhere and perl6 will just be done tomorrow 03:55
s/is/its/
raydiak
.oO( so quiet you can almost hear camelia growing intelligence and plotting terminator-style world domination )
03:57
jdv79 a killer butterfly. now that's sinister. 03:58
raydiak turns out the locusts in Revelation with breastplates "like iron" are really gonna be cybernetic hunter-killer butterflies :) 04:03
tony-o_ like hitlers cattle
TimToady back home, yosemite was pretty 05:35
tony-o_ where were you in yosemite? 05:36
i just got back from zion forest a few weeks ago
TimToady started at Mono Lake, came over the 120, had lunch up in the valley, afternoon at Glacier Point 05:37
tony-o_ oh very cool
TimToady good time of year for the waterfalls, despite the drought
120 isn't usually open this early, in fact
tony-o_ no i remember last year i tried getting in but it was closed off 05:38
did you just drive through or did you stay down there? 05:42
TimToady stayed last night on the west end of Mono Lake 05:43
(up from San Diego the night before)
TimToady spent several hours going around the valley floor 05:44
tony-o_ valley floor is awesome, fun swimming in that river down there too 05:49
dalek osystem: 9d54d37 | tony-o++ | META.list:
role for HTTP::Server so we can have start building out some servers with interchangeable backends
05:52
dalek on: 1e44a0f | moritz++ | lib/JSON/Tiny.pm:
Replace deprecated method .for by .flatmap, timotimo++
06:37
dalek on: 635a8ae | moritz++ | t/0 (5 files):
Replace deprecated test functions with appreciated ones
06:39
Ulti doc.perl6.org/language/operators#infix_%25 <--- shouldnt that read 'returns' 06:46
moritz yes 06:55
dalek osystem: 7145efa | tony-o++ | META.list:
Update META.list
06:56
tony-o_ too tired to see what is wrong with my metas.. 07:03
moritz nine: ecosystem-api.p6c.org/errors.json looks like Inline::Perl5's META.info isn't valid JSON 07:16
FROGGS moritz / nine: I PR'd it: github.com/niner/Inline-Perl5/pull/22 07:21
dalek line-Perl5: 5444f1d | FROGGS++ | META.info:
add missing comma
07:22
line-Perl5: c1b6df5 | lizmat++ | META.info:
Merge pull request #22 from FROGGS/patch-1

add missing comma
FROGGS \o/
lizmat good *, FROGGS 07:23
yoleaux 26 May 2015 22:18Z <cygx> lizmat: github.com/perl6/roast/pull/60/files ; it's my first commit to roast, so please sanity-check
FROGGS morning lizmat
lizmat just saw it coming into my mail
DrForr Morning as well.
lizmat DrForr o/
FROGGS morning DrForr 07:24
DrForr: the RT ticket is missing the test file that triggers the error
DrForr I thought I attached both. 07:25
Apparently not though.
FROGGS only a Readline.pm is attached
TimToady: is there anything in the synopsis about a pragma that gives a (lexical) environment like the RESTRICTED setting would give me? 07:27
DrForr Actually it's in the github repo, I think. 07:28
DrForr github.com/drforr/perl6-readline/b.../02-base.t 07:29
FROGGS TimToady: I'd like to do: my $foo = { use restricted; EVAL 'some foreign code' }() # this does not wipe my hard disk
DrForr: k, will try the code in the repo later
DrForr Simplest way to do that I think would just be to pull the module and run the test suite, should fail spectacularly, eventually. 07:30
FROGGS yes 07:31
DrForr yep, just discovered another failure mode as it happens. Free of invalid pointer. 07:32
[Tux] OUCH gist.github.com/Tux/3cbe7b39d401c1060c19 07:39
FROGGS [Tux]: that got fixed just minutes ago
[Tux]: I::P5's META.info contained invalid JSON 07:40
[Tux] I git pull'd just seconds ago
i'll re-pull
lizmat is rebootstrapping
FROGGS [Tux]: you need to wait for the modules.json to get updated, which happens hourly IIRC
[Tux] ah. rats :) 07:40
FROGGS and a 'panda update' might also be worth doing 07:41
[Tux] I rebuild everything from scratch every morning
DrForr Thanks for the reminder :) Say, who's going to make it for the p6 tutorial? I know Liz is... 07:44
lizmat [Tux] FROGGS after a panda update, panda install Inline::Perl5 seems to work for me 07:45
[Tux] after a git clone, panda install . worked for me 07:46
#124298 still broken :(
[Tux] lizmat, I got *no* reply at all from perl6-users 07:49
lizmat perhaps it's a difficult question :-) 07:50
I won't have much time to dig into it in the next weeks, I'm afraid
lot's of travelling and preparations for travelling and meetings :-(
[Tux] I still see no serious speedups :/ 07:51
anyway, off to $work 07:52
lizmat that's because most of the GLR changes have been cosmetic, on the outside
pmichaud is working on the GLR internals changes, afaik
FROGGS there wont be any speedups until Somebody® rewrites our iterators me thinks 07:56
lizmat cygx++ # IO::Path tests 07:57
m: for ^10 { .say; next 42 } # what does the "next 42" mean ??? 07:59
camelia rakudo-moar c2a57e: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
lizmat std: for ^10 { .say; next 42 }
camelia std 28329a7: OUTPUT«ok 00:00 137m␤»
FROGGS m: my @a = do for ^10 { .say; next 42 }; say @a # this should contain 42's me thinks 08:00
camelia rakudo-moar c2a57e: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤␤»
lizmat why would it ?
FROGGS lizmat: because you can return data this way 08:01
lizmat you can ???
S02:4445 only mentions Mylable.leave(@results) 08:02
jnthn FROGGS: I wasn't totally sure of that, tbh :) 08:03
yoleaux 26 May 2015 22:01Z <ab5tract1> jnthn: This async code will work more often than not, but if I do it 20 times in a row, I can get fairly consistent blowups at some point in the run gist.github.com/ab5tract/2c618fa8accc70464952
26 May 2015 22:03Z <ab5tract1> jnthn: also, I expected the output to be relatively uniform across 'frames', but sometimes the delay values to sleep don't seem to be taking effect
FROGGS S06:2756
lizmat / jnthn: design.perl6.org/S06.html#The_leave_function 08:04
hmm, this does not state it properly
FROGGS last 42 is, IIRC, like (with an implicit label FOO): FOO.next(42) 08:05
FROGGS err, FOO.last(42) 08:05
lizmat I was just wondering whether the else in the new 2nd candidate for next/last shouldn't just doe
*die
cause in my understanding next/last either take a Label or nothing at all 08:06
FROGGS ahh wait 08:07
last COUNT is equivalent to COUNT.leave 08:08
and COUNT.leave is a way to 'return' stuff
hmmm, looks like LABEL.leave does not take any arguments... 08:09
then I just misremember
FROGGS ohh, I am not misremembering: 08:10
for 1..10 { leave $_ * 2 } # 2..20
read S05 line 2783 08:11
S06*
lizmat but, that's got nothing to do with next/last ?
FROGGS lizmat: leave LABEL is the same as last LABEL
and &?ROUTINE.leave(X) is the same as 'return X'
lizmat right, but what is next 42 or last 42 ? 08:12
FROGGS A C<leave>
from the inner loop block, however, merely specifies the return value for
that iteration:
so next 42 is nonsense, but last 42 isnt
I cant describe it better than: design.perl6.org/S06.html#The_leave_function 08:13
lizmat m: my @a = do for ^10 { .say; last 42 }; dd @a # so @a should have been [42]<> 08:14
camelia rakudo-moar c2a57e: OUTPUT«0␤@a = []<>␤»
FROGGS I think so, yes 08:15
lizmat ok, let's make sure that works post GLR :-)
FROGGS aye 08:16
lizmat meanwhile, I'm going to make 'next 42' fail
FROGGS a good fudge message might be 'LABEL.leave NYI'
lizmat ok, will do that as well...
dalek ast: 5844f9c | lizmat++ | S32-list/categorize.t:
Add some categorize :into / :as tests

And some additional tweaking
08:29
Ven \o, #perl6 08:51
lizmat Ven o/ 08:52
dalek kudo/nom: edadb1d | lizmat++ | src/core/control.pm:
Allow next/last/redo FOO only with Label

I'm not sure how you would create a label object at runtime, but if that is possible, then you could technically say "next $label" and have it work. If that is not supposed to be possible, then this check should probably be moved to compile time.
08:57
jnthn writed a small blog post with a little update: 6guts.wordpress.com/2015/05/27/tak...ort-break/ 09:04
I'll only be about occasionally during the next ~week.
lizmat and a well deserved break it is! :-) 09:06
FROGGS ohh! 09:07
jnthn: have a nice weekend then :o)
jnthn FROGGS: Thanks :)
dalek kudo/nom: 40b72ab | lizmat++ | src/core/ (2 files):
Add NYI for Label/Method/Sub.leave, FROGGS++
09:09
[ptc] jnthn: congratulations! Hope you have a great weekend :-) 09:23
itz2 jnthn: yeah have a good one :) 09:24
Woodi hi today :)
moritz jnthn: congratulations!
lizmat afk&
Woodi jnthn: IMO civilized free time period in such circumstances is even a month :) GL ! 09:26
cognominal jnthn: congratulations. 09:31
tadzik jnthn: yayy, congratulations! 09:42
moritz Woodi: come on, a whole months without hacking? that sounds... boring :-)
jnthn Thanks, everyone :) 09:45
lunch & 09:46
tadzik It is :o Every time I'm on vacation without a computer I spend a lot of time planning on the projects I'll finally get to do when I get back 09:52
Woodi I realy wandering is something like IT "calling" exists :) some ppls wants madly to be actors, singers or drivers :) 10:03
Juerd On vacation without a computer?! 10:05
tadzik I always wanted to be a programmer
Juerd tadzik: Me too 10:06
DrForr Don't, it's boring :)
masak good afternoon, #perl6 10:42
yoleaux 26 May 2015 22:44Z <jdv79> masak: what of RT #109880?
26 May 2015 22:46Z <jdv79> masak: also what of RT #113040
itz2 the only sensible computer to take on a real vacation is a kindle! (unless you jailbroke down to the linux) 10:43
azawawi hi :) 10:46
masak jdv79: aye, rt.perl.org/Ticket/Display.html?id=109880 seems to be an invalid assignment. your variant looks better. I'm not sure that's the actualy problem described in the ticket, though. 10:47
jdv79: rt.perl.org/Ticket/Display.html?id=113040 looks closeable now. 10:48
dalek c: 6f69701 | azawawi++ | t/pod- (2 files):
Fix deprecated API: eval_dies_ok and isa_ok
11:02
c: 320b2fb | RabidGravy++ | t/pod- (2 files):
Merge pull request #86 from azawawi/master

Fix deprecated API: eval_dies_ok and isa_ok
moritz azawawi: fwiw you can push directly to perl6/doc 11:03
azawawi moritz: i noticed :)
moritz IWBN if github showed a big "YOU HAVE WRITE ACCESS TO THIS REPO" button on repos that aren't in your own namespace
(and mayebe even on those)
azawawi forking is more fun though :) 11:04
RabidGravy or it could give you the option of merging directly when you go to create the PR 11:05
azawawi moritz: what about github.com/moritz/json/pull/16 ?
moritz azawawi: likely unnecessary by my last two commits 11:07
RabidGravy can anyone think of anythink that changed between 2015.04 sometime and now that would change the way that IO::Socket::Async.bytes_supply behaves? Nothing in the class itself, Promise or supply appears to have changed in that time 11:10
azawawi any plans to add version support to panda?
Ven .u ॣ 11:13
yoleaux U+0963 DEVANAGARI VOWEL SIGN VOCALIC LL [Mn] (◌ॣ)
[ptc] RabidGravy: maybe the fact that Empty has replaced Nil in some places? 11:13
tadzik azawawi: yes :) 11:14
azawawi tadzik: cool :)
tadzik: when?
tadzik I think it's even ticketed 11:15
Getting module authors to version their stuff though, that's gonna be tough :!
azawawi github.com/tadzik/panda/issues/139 ?
[ptc] tadzik: oh ys 11:16
*yes
azawawi well warnings/deprecation notices will do the trick with time
tadzik azawawi: yep, that 11:17
RabidGravy [ptc], Hmm
[ptc] RabidGravy: there was a change from TimToady where Empty had to be used in the place of Nil when iterating over a (possibly empty) array 11:18
RabidGravy: or something like that
[ptc] waves hands vaguely in the air
FROGGS tadzik / azawawi: hoelzro is working on it atm 11:19
azawawi FROGGS: hi
FROGGS hi 11:20
azawawi FROGGS: there was a discussion on #perl6 a while ago about perl6 error warning/messages as JSON 11:20
tadzik Awesome!
azawawi FROGGS:
timotimo masak: i'm not sure if it'll surprise you, but most of the time your subs-based send-more-money solver takes is spent in the array iteration bits
azawawi FROGGS: any progress on that? 11:21
tadzik (I'll go work at my lack of sleep :))
timotimo masak: on the other hand, i made a commit that made the loops version a bit faster
m: say 1 / 1.3
camelia rakudo-moar c2a57e: OUTPUT«0.769231␤»
timotimo shaved about 25% of run time off by making "next" less expensive 11:22
timotimo lizmat: can you think of a reason why we would want to keep using a slurpy array argument to next/redo? 11:23
timotimo rather than just next(Label $l) ? 11:23
masak timotimo: I got a Perl 5 version this morning that seems to make a similar point. 11:24
timotimo: (it used hashes to emulate sets in Perl 5, and the program ran a lot faster)
masak haven't had time to look at it yet, but I can imagine a similar thing'll speed up the Perl 6 version, too. 11:24
timotimo i wonder how well just using "combinations" would work for this 11:26
of course, that'd increase the number of times you'll calculate "send", "more" and "money" 11:27
and our implementation of :10[ ... ] could get optimized in cases where we know that its arguments cannot be evil WRT getting listified
(which i'm afraid may not work in your example code) 11:28
timotimo masak: any way, i'd be glad if you could re-time your subs-based code against latest rakudo and see if it's much better on your end as well :) 11:28
FROGGS azawawi: about the error messages? not as far as I know 11:29
masak timotimo: will do. thanks. 11:31
timotimo did you see the comments up on hackernews? many other implementations and also the suggestion that whatever you used in perl5 to emulate sets is likely the culprit - which you already seem to know 11:33
ribasushi morning 11:37
moritz \o ribasushi
ribasushi chatter from elsewhere - inquiring minds want to know: paste.scsys.co.uk/483340
azawawi FROGGS: namely irclog.perlgeek.de/perl6/2015-05-19#i_10624752 11:38
DrForr multi operator infix<"︵╰(°□°)╯︵">( @down, @up ) { } # :) 11:39
operator:infix that is :)
FROGGS azawawi: yes, I remember... though, there was no progress on that front
ribasushi DrForr: neat ;) 11:40
azawawi FROGGS: any pointers to where i can start?
FROGGS azawawi: augment Failure, add a method 'to-json-error' that first marks it as handled and then jsonifies it correctly 11:41
azawawi FROGGS: working on it. Thanks :)
FROGGS azawawi: have fun 11:42
azawawi if you think of it, JSON::RPC and debug/error messages would make Perl 6 integration with IDEs/Editors far more easier
start one perl6 process with JSON::RPC and then compile/debug/run in a loop 11:44
ganiii what's up guys? 11:48
DrForr Lots, I'm sure :) 11:49
FROGGS $dayjob... :o(
masak no no, it's spelled "$dayjob \o/" 11:50
(we're hiring) :P
itz2 IDEs? you mean like vim and emacs? :P 11:51
Ulti those are only integrated if you are programming in viml or lisp respectively :P though most IDEs are light on the 'I' part now :( 12:03
AlexDaniel Hi! I've seen some examples of "async BLOCK" but for me it says that "async" is an undeclared subroutine, what am I missing?
m: async { say 'hello' }
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hKmCt__yXB␤Undeclared routine:␤ async used at line 1. Did you mean 'asin', 'asinh', 'asec'?␤␤»
timotimo you spell that "start" nowadays 12:04
where did you find these examples? maybe we can update them?
AlexDaniel timotimo: I have no idea, I'm following perl6 development for quite some time, it is from my memory 12:05
m: wait
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5===␤Whitespace required after keyword 'wait'␤at /tmp/nIZeT_mos_:1␤------> 3wait7⏏5<EOL>␤Undeclared routine:␤ wait used at line 1. Did you mean 'await'?␤␤␤»
timotimo ah, ok
AlexDaniel is it right? wait is now await?
timotimo hasn't it always been await?
AlexDaniel I don't think so 12:06
but again, it is from my imperfect memory
AlexDaniel m: start { say 'XXX'; sleep 4; say 'YYY'; }; await; say 'ZZZ'; 12:09
camelia rakudo-moar c2a57e: OUTPUT«XXX␤ZZZ␤»
AlexDaniel this is not what I expected
AlexDaniel what am I doing wrong? 12:09
timotimo you have to await a promise 12:10
m: my $promise = start { say 'xxx'; sleep 4; say 'YYY' }; await $promise; say 'ZZZ'
camelia rakudo-moar c2a57e: OUTPUT«xxx␤YYY␤ZZZ␤»
AlexDaniel then what's the point of await without args?
AlexDaniel if it is unable to wait for all of the threads to finish, then why not a compile-time error? 12:13
AlexDaniel but again, I feel like I've seen an example of async & await without args 12:14
hoelzro o/ #perl6
timotimo hm.
smls Getting a "JIT: No function for op 304 in op_to_func." error in one of my scripts :( 12:21
(with latest r-m installed via rakudobrew)
The error message claims it's from IO.resolve, though i'm having trouble golfing it 12:23
timotimo oops? damn. gimme a second. 12:24
oh yikes 12:26
we usually bump moar_revision for this kind of fix, right? 12:28
smls: can you get a latest moarvm master and retry?
timotimo will be AFK for a bit
masak "Go in Go". interesting talk about bootstrapping. talks.golang.org/2015/gogo.slide 12:42
dalek pan style="color: #395be5">perl6-examples: b9cfa48 | paultcochrane++ | / (2 files):
Disable Text::VimColour

Unfortunately Text::VimColour isn't installing correctly at present via panda, and since we're actually not using it currently for the examples, we can comment out its installation and its use for the time being.
12:49
masak .oO( vimcOUlor isn't instOUlling cOUrrectly ) :P 12:50
AlexDaniel so what's up with await? 12:51
moritz hopes it waits for stuff 12:52
AlexDaniel moritz: scroll a little bit up
[ptc] masak: actually it's hanging on my perl6, endlessly waiting for *something* 12:53
... when testing 12:54
[ptc] likes Text::VimColour's name though :-)
itz2 its probably waiting on the "ex" shell call 12:58
I've seen it do that on linux although not OS X .. I'll likely to investigate next week 12:59
timotimo i did that moarvm commit very inelegantly
itz2 I'm going to have a lot more perl6 time RSN :) 13:00
moritz AlexDaniel: agreed, it should error out when called without args
(but not when called with an empty argument list, like my @a; await @a)
smls timotimo: The JIT error is still there after `rakudobrew build moar nom` 13:03
(Or is that not the right way to install moarvm master?) 13:04
timotimo it is not. incidentally, i broke MoarVM on master and i'm fixing it now :) 13:06
smls btw this reliably triggers the bug for me: touch aa; ln -s aa bb; perl6 -e '"aa".IO.resolve for ^26' 13:08
with ^25 or less it doesn't appear ;)
timotimo yeah, that's when the jit kicks in 13:09
timotimo you can "rakudobrew triple nom master master" to get the very newest of all components 13:10
smls ah 13:12
AlexDaniel moritz: ok, but what's wrong with waiting for all existing threads? 13:15
moritz AlexDaniel: afaict await doesn't work on threads 13:17
AlexDaniel: but rather on promises, channels, supplies
AlexDaniel: and those aren't globally scoped
timotimo moritz: in DBIish we've still got a .for inside DBDish.pm6
AlexDaniel moritz: hmmm
timotimo in theory, the scheduler could get a method that'd let you wait for everything that belongs to it to terminate 13:18
that seems more useful than "wait for all global things"
and it'll still DTRT when you just use the default, outermost $*SCHEDULER
is $*SCHEDULER set up lazily, btw? does it take much time to create? 13:19
moritz: and also is_deeply in the 05-mock.t test file
i'll go ahead and make a PR for you :)
oh, i hadn't realized it's under the perl6/ namespace 13:20
moritz timotimo: yes, you should be able to push directly 13:23
timotimo has to rebootstrap panda locally to test if everything's all right
timotimo and JSON::Tiny is under perl6/, too, i assume 13:24
oh. that one isn't
but the fixes are already in, so that's fine 13:25
dalek Iish: 519fbe1 | timotimo++ | / (3 files):
.for -> .flatmap
13:37
Iish: 36e66e8 | timotimo++ | t/ (4 files):
kebabcase subs from Test
timotimo wow ... the perl6-examples test could really use a bit of benchmarking and optimization ... 48 minutes for a travis-ci build :S 13:38
i wonder what this is all about: t/categories/best-of-rosettacode.t ......... 5/15 Unable to parse expression in balanced; couldn't find final ']' 13:39
[ptc] timotimo: ah, that's a flappy test :-/ 13:40
timotimo: there are several examples which are quite computationally intensive, so yeah, they take a while 13:41
timotimo: and I've already stripped out the ones I thought took too long!
timotimo: the flappy test is the categories/best-of-rosettacode/balanced-brackets.pl example 13:42
timotimo: one of the versions of the balanced brackets algorithm uses grammars and for Some Reason (TM) doesn't always work *sigh* 13:43
timotimo just now i'm watching the euler.t counter tick up veeeeerrrrrryyy slowly :D
the test run exceeded 50 minutes and was killed :( 13:46
[ptc] aui 13:47
of course, moar, nqp and rakudo are all built and installed first before starting the perl6-examples tests. But still... 13:48
timotimo yeah 13:49
that takes ~400s 13:50
m: say 400 / 60
camelia rakudo-moar c2a57e: OUTPUT«6.666667␤»
timotimo a tiny amount, in comparison
(but if it had been replaced with just a wget + untar, it could possibly have caused this particular build run to succeed?)
[ptc] no idea. The runs which didn't have any test failures all ran to completion afaik 14:00
timotimo OK
well, the next run will have fewer deprecation warnings, but i can't see that stealing more than a second, all in all
[ptc] timotimo: thanks for fixing the deprecation warnings :-) 14:03
must dash, commute &
timotimo sure :) 14:04
it's one of the easier jobs
moritz: i don't have a test setup for mysql and pg on my machine; can you run a DBIish test with all test databases set up at some point?
moritz timotimo: sure; just push
timotimo i already pushed. thank you very much :) 14:09
dalek p: 00b1d1e | timotimo++ | tools/build/MOAR_REVISION:
bump MOAR_REVISION for missing op_to_func stuff in the jit
14:35
kudo/nom: 6b406bd | timotimo++ | tools/build/NQP_REVISION:
bump nqp for fixes in the MVM JIT for op_to_func
14:36
timotimo oh well. there and back again 14:37
dalek kudo/nom: ab4a5ef | timotimo++ | tools/build/NQP_REVISION:
Revert "bump nqp for fixes in the MVM JIT for op_to_func"

This reverts commit 6b406bd38839e5e39a2320766f6edae41f508e7c.
we are still waiting for a lazy deserialization fix to make asynchronous stuff stable again after the recent fix for 100% cpu consumption
14:38
smls m: grammar G {rule TOP{g}}; class A {method TOP($/){ "a" ~~ /a/ }}; G.parse("g", :actions(A)); 15:05
camelia rakudo-moar c2a57e: OUTPUT«Cannot assign to a readonly variable or a value␤ in method TOP at /tmp/UKWk0rPmL4:1␤ in regex TOP at /tmp/UKWk0rPmL4:1␤ in block <unit> at /tmp/UKWk0rPmL4:1␤␤»
smls ^^Am I not allowed to use regexes in action methods? :( 15:06
b2gills m: grammar G {rule TOP{g}}; class A {method TOP($\ is copy){ "a" ~~ /a/ }}; G.parse("g", :actions(A)); 15:07
camelia ( no output )
smls thanks 15:08
b2gills it would probably be better to rename $\ though 15:09
PerlJam surely you mean $/
smls yeah I think I'll go with method TOP ($match) 15:11
lizmat timotimo: atm I can't think of any reason 15:19
[Coke] there's a syntax for creating a string using the name of the unicode character, yes? (I can't find it in S15) 15:20
found it in S02. 15:21
[Coke] m: "S⃒".chars.say # Why isn't this 1? 15:23
camelia rakudo-moar c2a57e: OUTPUT«1␤»
[Coke] ... because my perl6 is super old, I guess. 15:23
m: my S⃒boom;
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/68clMWq5j9␤Malformed my (did you mean to declare a sigilless \S⃒boom or $S⃒boom?)␤at /tmp/68clMWq5j9:1␤------> 3my S⃒boom7⏏5;␤»
itz2 [Coke]: also examples.perl6.org/categories/cookb...icode.html 15:39
Ulti m: say [~] "\c[SMILING CAT FACE WITH HEART-SHAPED EYES]" .. "\c[CRYING CAT FACE]" 15:50
camelia rakudo-moar c2a57e: OUTPUT«😻😼😽😾😿␤»
itz2 is there a cat face iterator? 15:53
Ulti map all integers onto the catface space 15:55
lizmat git diff 15:57
oops :-)
Ulti there's catfaces before heart shaped eyes but that one is more impressive 15:58
dalek kudo/nom: f86437c | lizmat++ | src/core/control.pm:
Simplify next/last/redo handling, timotimo++
geekosaur waits for the esolang composed solely of cat faces
lizmat afk again&
Ulti that's almost useful since you can look at the whole emoticon range and stuff say [~] "\c[GRINNING FACE]" .. "\c[PERSON WITH FOLDED HANDS]"; 16:03
without having to know the hex at least 16:04
PerlJam IS there some reason we're really strict about the letter case in those? Why wouldn't \c[grinning face]" also be acceptable? 16:05
Ulti I think it's convention, whenever you see it anywhere they are all caps 16:09
RabidGravy there wasn't a problem with IO::Socket::Async in what I was looking at earlier, it was a change in the flattening behaviour of the zip operator
tony-o_ hoelzro++ 16:15
smls I like how Perl 6 lets me express many thing without creating temporary variables 16:31
like my $string = "foo{ " ($_)" if $_ given STRING_EXPRESSION) }..."
smls well, I suppose this example could have been done done without temporary variables in Perl 5 as well, using sprintf 16:33
actually, no, I don't think it could have 16:34
so, (Perl 6)++
TimToady " ($_) " x (!!$_) 16:35
smls damn :P 16:36
mst map " ($_) ", grep defined, $expression
TimToady well, didn't really need the parens
mst yeah, but the parens made it clearer than my usual idiom as well as shorter 16:37
... hrm, aiming for clarity over brevity might be the opposite of golf, but people are going to give me funnier looks than usual if I call it code flogging 16:38
TimToady lately I've taken to saying that we should achieve brevity in the domain of symbols rather than keystrokes 16:39
where by "symbol" I mean something closer to psychological chunking 16:40
smls "($_)" if .so given "STRING_EXPRESSION" -- don't even need to reference $_ twice :P 16:41
TimToady, since you're here: Can you explain to me what the purpose of the anonymous blocks is in rosettacode.org/wiki/Amb#Using_lazy_lists ? 16:44
smls (article history credits you as the author of that solution) 16:44
for that matter, what's the purpose of doing a gather/take here? 16:45
TimToady how you gonna backtrack without some form of thunking?
this is essentially how STD does backtacking, btw 16:46
smls i don't understand how the cause backtracking
*they
TimToady via the X 16:47
smls so the exceptions thrown from the blocks affect X? 16:48
TimToady next is probably dropping the current cross product 16:49
been a while though...
smls still doesn't see how the presence of those blocks has an effect on that) 16:51
TimToady m: my infix:<op> ($a, $b) { next if $a.ord %% 2 == $b %% 2; "$a$b" }; say <a b c d e> Xop ^5
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5===␤Type 'infix:<op>' is not declared␤at /tmp/G78ZfKMhPR:1␤------> 3my infix:<op>7⏏5 ($a, $b) { next if $a.ord %% 2 == $b %%␤Malformed my␤at /tmp/G78ZfKMhPR:1␤------> 3my infix:<o7⏏5p> ($a, $b) { next if $a.ord %% 2 ==…»
TimToady m: sub infix:<op> ($a, $b) { next if $a.ord %% 2 == $b %% 2; "$a$b" }; say <a b c d e> Xop ^5
camelia rakudo-moar c2a57e: OUTPUT«a0 a2 a4 b1 b3 c0 c2 c4 d1 d3 e0 e2 e4␤»
smls btw, this much simpler variant also works, although it compute all possible combinations of the search space: gist.github.com/smls/9f11b70574f7088c5922 16:52
TimToady with Xlf a next in one of the earlier lists trims a large part of the search space away 16:53
m: sub infix:<op> ($a, $b) { next if $a.ord %% 2 == $b %% 2; "$a$b" }; say <a b c d e> Xop ^5 Xop <x y z> 16:54
camelia rakudo-moar c2a57e: OUTPUT«Earlier failures:␤ Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏x' (indicated by ⏏)␤ in sub infix:<op> at /tmp/23geVMwPbT:1␤ in block <unit> at /tmp/23geVMwPbT:1␤␤Final error:␤ Cannot call Real(…»
TimToady m: sub infix:<op> ($a, $b) { next if $a.ord %% 2 == $b.ord %% 2; "$a$b" }; say <a b c d e> Xop ^5 Xop <x y z>
camelia rakudo-moar c2a57e: OUTPUT«a0x a0 a0z ax a az a2x a2 a2z ax a az a4x a4 a4z b by b b1 b1y b1 b by b b3 b3y b3 b by b c0x c0 c0z cx c cz c2x c2 c2z cx c cz c4x c4 c4z d dy d d1 d1y d1 d dy d d3 d3y d3 d dy d e0x e0 e0z ex e ez e2x e2 e2z ex e ez e4x e4 e4z␤»
[Coke] Is that your Final Error? 16:55
TimToady here it never tests the x y z fork if the a1 fork fails
[Coke]: I hope to not stop making errors any time soon...
smls: anyway, 'next' is serving as the cut operator here 16:56
smls I understand that part 16:57
but not why it works with { } in the list but not with, say, ''
which should also make the substr comparison fail and cause next
TimToady well, '' would fail the last/first criterion 16:58
smls removing blocks by trial & error, this is the minimum amount needed to make it still work: gist.github.com/smls/9f11b70574f70...tfile2-6pl
TimToady well, the thunks allow lazy throws of exceptions, but that is perhaps not utilized with this particular problem 16:59
STD actually uses 'die' in some of those cases 17:00
m: say 1,2,die "foo"
camelia rakudo-moar c2a57e: OUTPUT«foo␤ in block <unit> at /tmp/e2ZCT4wK62:1␤␤»
TimToady m: say 1,2,{die "foo"}
camelia rakudo-moar c2a57e: OUTPUT«12-> ($_? is parcel) { #`(Block|50676640) ... }␤»
TimToady we wouldn't need the {} if there were a listy form of thunks, which is more or less what masak wants when he says "do notation" 17:02
the intent has been to mutate semicolons into a more general form
but so far we've only got as far as lols 17:03
m: say (1,2,3; 4,5,6; 7,8,9).perl
camelia rakudo-moar c2a57e: OUTPUT«(1, 2, 3; 4, 5, 6; 7, 8, 9)␤»
TimToady with a lol we actually make 3 lazy lists here, but a bare semilist doesn't quite thunkify 17:04
smls Can you show a simpler example that needs the {} ?
TimToady I think we'd want a keyword of some sort to make it more monadic
smls also, isn't {} a Hash? And yet the example still works with it 17:05
tony-o_ m: .perl.say for (1,2,3;4,5,6;,7,8,9);
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lVMaYDG_7Q␤Preceding context expects a term, but found infix , instead␤at /tmp/lVMaYDG_7Q:1␤------> 3.perl.say for (1,2,3;4,5,6;,7⏏057,8,9);␤»
tony-o_ m: .perl.say for (1,2,3;4,5,6;7,8,9);
camelia rakudo-moar c2a57e: OUTPUT«$(1, 2, 3)␤$(4, 5, 6)␤$(7, 8, 9)␤»
tony-o_ m: .elems.say for (1,2,3;4,5,6;7,8);
camelia rakudo-moar c2a57e: OUTPUT«3␤3␤2␤»
tony-o_ didn't know that was valid, that's pretty cool 17:06
TimToady m: sub infix:<op> ($a, $b) { next if $a.ord %% 2 == $b.ord %% 2; "$a$b" }; say <a b c d e> Xop ^5 Xop 'x',die("oops"),'z' 17:07
camelia rakudo-moar c2a57e: OUTPUT«oops␤ in block <unit> at /tmp/rBeIL9Wevc:1␤␤»
smls I know that you need braces to pass around actual code. 17:10
Maybe we're talking past each other :)
Juerd Not with * 17:11
smls I'm freaked out about the fact that in the previously linked gist, changing amb(<the that a>, { }) to amb(<the that a>) makes it no longer print the correct solution 17:11
and I don't see how it makes a difference 17:12
ooooh, { } makes a hash which has no postcircumfix:<( )> and thus throws an exception which goes through 'take', right? 17:14
vendethiel backlogs..
smls that's why it still worked after changing { die "oops" } to { } 17:15
and the exception somehow affects the X operator?
TimToady caught by the next if try
unless* 17:16
if you remove the try it'll fail harder
TimToady this is the basic problem with 'try'--it's too general, and catches the errors you didn't anticipate as well as the ones you did 17:17
TimToady so real production code should generally use a CATCH with a specific case 17:17
smls ok, I'm starting to grok this now :) 17:18
TimToady and, in fact, the die that STD does has specific values that it checks for on the eval end 17:19
:D
dalek osystem: 771c56b | tony-o++ | META.list:
renamed HTTP::Server::Threaded::Router to HTTP::Server::Router

git repo changed
timotimo tony-o_: i approve of this re-ordering 17:23
tony-o_ timotimo: which re-ordering?
timotimo making things not rely on a specific HTTP::Server implementation 17:24
tony-o_ i kind of like the idea of the role based HTTP::Server series - i'm building out the requests/response skeletons in there. i think it will let us start building some web apps that we can swap in better servers as they become more stable / faster 17:25
at some point i'm going to need to do actual work today tho, sadly 17:26
smls TimToady: Unfortunately the syntax for catching a single exception is not that pretty: CATCH { when ... { } } 17:28
so many braces...
maybe CATCH ... { } or something similar could be allowed for the single-condition case? 17:29
ibo2perl6 m: my $x = BagHash.new(); { my $y = $x; $y{42}++; $x (+)= $y }; say $x; # expected bag(42(1)) no? 17:30
camelia rakudo-moar c2a57e: OUTPUT«bag(42(2))␤»
TimToady I wouldn't modify the phaser; I'd be more inclined to have variants of try that were restricted to particular error types
ibo2perl6 m: my $x = BagHash.new(); for ^2 { my $y = $x; $y{42}++; $x (+)= $y }; say $x; #
camelia rakudo-moar c2a57e: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/ZFDaRrncde:1␤␤»
smls You mean like try:io {...} ? 17:30
TimToady maybe try itself should default to only catching AdHoc, for instance
[Coke] (too broad catch) java/cf code smell as well.
TimToady: given that we haven't done a review of all the exception types in core, I'd be leery of that. 17:31
lots of stuff happens to be adhoc, but maybe shouldn't be.
TimToady and vice versa :)
seriously, many of the exception types strike me as overly specific rather than overly generic... 17:34
dalek href="https://modules.perl6.org:">modules.perl6.org: 2e5b95c | (Zoffix Znet)++ | web/index.tmpl:
Fix searching for HTTP modules (Closes #8)

The search JS plugin erroneously picks up href="" attributes.
17:36
smls
.oO( Let's steal the Python exception classes; just replace the "Error" suffix with an "X::" prefix and no one will notice! )
tony-o_ m: role X { has $.str; }; class A does X { has $.str = 'default'; }; A.new.str.say; 17:42
camelia rakudo-moar c2a57e: OUTPUT«===SORRY!===␤Attribute '$!str' already exists in the class 'A', but a role also wishes to compose it␤»
tony-o_ m: role X { has $.str; has $.str2; }; class A does X { submethod BUILD (:$!str = 'default') { *; }; }; A.new.str.say; 17:45
camelia rakudo-moar c2a57e: OUTPUT«default␤»
tony-o_ m: role X { has $.str; has $.str2; }; class A does X { submethod BUILD (:$!str = 'default') { *; }; }; A.new(str2 => 'a').str2.say;
camelia rakudo-moar c2a57e: OUTPUT«(Any)␤»
tony-o_ m: role X { has $.str; has $.str2; }; class A does X { submethod BUILD (:$!str = 'default') { {*}; }; }; A.new(str2 => 'a').str2.say;
camelia rakudo-moar c2a57e: OUTPUT«Error while constructing error object:Could not locate compile-time value for symbol Comp::AdHoc␤===SORRY!===␤Error while compiling, type X::Comp::AdHocpayload: {*} may only appear in proto␤ at line 2, near "; }; }; A."␤»
tony-o_ m: role X { has $.str; has $.str2; }; class A does X { submethod BUILD (:$!str = 'default') { callsame; }; }; A.new(str2 => 'a').str2.say; 17:46
camelia rakudo-moar c2a57e: OUTPUT«(Any)␤»
tony-o_ hm
masak hah! someone sent me a p5 version A that runs in 6 seconds! :P 17:50
porting it to p6 now.
masak discovered a rakudobug! 17:53
m: sub foo { say &^fn }; foo(42)
camelia rakudo-moar c2a57e: OUTPUT«42␤»
masak hah!
I can't believe none of us has thought of that one before :P
masak submits it
raydiak nice...works with all the sigils 17:54
nwc10 j: sub foo { say &^fn }; foo(42)
camelia rakudo-jvm c2a57e: OUTPUT«42␤» 17:55
masak m: sub foo(&fn) { say &fn }; foo(42) 17:56
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tFD8nnr8OL␤Calling foo(int) will never work with declared signature (&fn)␤at /tmp/tFD8nnr8OL:1␤------> 3sub foo(&fn) { say &fn }; 7⏏5foo(42)␤»
masak not only is the ordinary form checked, it's *checked at CHECK time* and never even runs.
ugexe if i have `class CompUnit2 is CompUnit`, a CompUnit2.new on a module that augments is returning a CompUnit instead of a CompUnit2. Is this expected behavior due to monkey typing, or bug caused by it? 18:10
tony-o_ need a better github ios app 18:11
PerlJam ugexe: I'm not quite sure what you mean by "CompUnit2.new on a module that augments ..." Can you show the code? 18:12
masak heh, the ->@* postfix dereference syntax is ugly even for p5. 18:17
dalek href="https://modules.perl6.org:">modules.perl6.org: 5a5bd04 | (Zoffix Znet)++ | web/lib/P6Project.pm:
Use proper JSON booleans (Closes #2)
18:19
vendethiel m: sub f(&a){say a}; f(42); #what's the cannon error message? 18:20
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eF2koEDInT␤Calling f(int) will never work with declared signature (&a)␤at /tmp/eF2koEDInT:1␤------> 3sub f(&a){say a}; 7⏏5f(42); #what's the cannon error message?␤»
masak my p6 port takes 15 minutes. 18:21
dalek href="https://modules.perl6.org:">modules.perl6.org: 28193b1 | (Zoffix Znet)++ | web/index.tmpl:
Fix the fix for href="" exclusion from searches (Issues #8)
ugexe PerlJam: looks like its when also using the module.. i.e. `use mod; CompUnit2.new("/path/to/mod.pm6")`
gist.github.com/ugexe/a9463c3ec6a1ae257ed2 18:22
without 'use mod' 18:23
it works
well, works as in it will return CompUnit2, not CompUnit
TimToady m: sub foo(&fn) { say foo(42) } 18:24
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/i7N2klQgx4␤Calling foo(int) will never work with declared signature (&fn)␤at /tmp/i7N2klQgx4:1␤------> 3sub foo(&fn) { say 7⏏5foo(42) }␤»
FROGGS ugexe: rakudo probably caches CompUnit object by abspath
objects*
dalek pan style="color: #395be5">perl6-examples: 3380129 | andreoss++ | / (2 files):
[euler] problem 32
pan style="color: #395be5">perl6-examples: 4ff97f2 | andreoss++ | / (2 files):
[euler] problem 33
pan style="color: #395be5">perl6-examples: a115e2f | andreoss++ | / (2 files):
Merge branch 'master' of github.com/perl6/perl6-examples
pan style="color: #395be5">perl6-examples: ef0f149 | andreoss++ | / (2 files):
[euler] problem 38
ugexe FROGGS: only happens when the CompUnit/module use MONKEY-TYPING, fwiw 18:30
FROGGS okay, then I am out of ideas 18:31
vendethiel timotimo++ #speeding up masak's script :D 18:36
vendethiel saw masak's commit mentioning it go through
masak vendethiel: it's spooky to have someone read the commits of that repo :P 18:40
vendethiel masak: and as instantly as you push, to add! 18:40
masak vendethiel: also, I hope you've realized that by revealing yourself the other day, I'm now never going to push before I publish... :) 18:40
vendethiel hehehe 18:41
I get github notifications
masak I figured.
vendethiel (that's why I don't use github's following system which is 100% useless when you're watching ~300 repos)
cygx o/ 18:55
where did S15 go: design.perl6.org/S15.html
jercos >=comment Oh, this is in Pod6 format. Just so you know. 18:59
A notable entry not found in the other pod files... perhaps a hiccup in Text::SmartLinks detecting pod6? 19:00
jercos Or it could be choking on the UTF-8 character on line 22 if it's trying to read it with the wrong encoding >.> 19:01
lizmat ugexe: for a given abspath, there can only be one CompUnit object at any time 19:10
ugexe lizmat: i think it has to do with monkey-typing though. i can create new CompUnit for other modules that I am currently using. Its only if one of the used modules uses MONKEY-TYPING 19:13
lizmat did you post a gist already ? 19:14
ugexe gist.github.com/ugexe/a9463c3ec6a1ae257ed2
i can emulate the behavior of CompUnit2 with a role, and then do my $cu = CompUnit.new(whatever) but CompUnit2 and it works as well. So a runtime mixin seems to not have the problem either 19:15
lizmat fwiw, I didn't write CompUnit with subclassing in mind
I'm also wondering what you're trying to achieve :-) 19:16
ugexe im changing .precomp-path so it doesnt have to be /same/path/as/source.moarvm 19:18
ugexe .precomp takes $out as an argument, but from what i can tell its pointless as the method returns false unless $out matches its predefined definition of precomp-path 19:20
lizmat looks 19:25
no, if .precomp doesn't fail, it returns True always 19:27
lizmat it *only* sets its internal attribute has-precomp if out actually matched the default output path 19:27
so Compunit.new("Foo.pm").precomp("Bar.moarvm") *should* just work 19:28
ugexe you shouldnt have to pass Bar.moarvm, thats the default right? 19:29
if you pass anything that isnt the default, then it wont pass $out eq self.precomp-path
lizmat CompUnit.new("Foo.pm").precomp # creates Foo.pm.moarvm
smls m: say (grammar {token TOP {.}}).parse("a", :actions(class { method TOP ($/) { $/.make: (2, 4, 6, 8) } })).made.perl
camelia rakudo-moar c2a57e: OUTPUT«$(2, 4, 6, 8)␤»
lizmat CompUnit.new("Foo.pm").precomp("Bar.moarvm") # create Bar.moarvm
smls ^^ $/.make in action method itemizes the returned AST 19:30
doesn't happen with the sub form of make, nor does it happen when called from isnide the grammar instead of the action class
bug, or feature?
ugexe so what about CompUnit.new("/some/path/lib/Foo.pm").precomp("/some/path/lib2/Foo.pm.moarvm") 19:31
lizmat that should work and create it in lib2
in fact, that is one of the features I want to use to allow multiple precomps to coexist for the same source installation 19:32
ugexe method precomp-path(CompUnit:D: --> Str) { "$!path.$!precomp-ext" }
lizmat aka, in CURLI, I think it would make sense to store precomps in a directory named by git describe tag 19:33
ugexe but in .precomp $!has-precomp = True if $out eq self.precomp-path;
lizmat yeah, I think maybe has-precomp is getting too confusing
ugexe $!path dirname is not the same as precomp-path dirname
ab5tract lizmat: that's an interesting use case indeed
lizmat perhaps it is a premature optimization
ugexe lizmat: im already doing that with curli :)
lizmat okidoki 19:34
so, maybe we need to get rid of has-precomp
ugexe or make precomp-path an attribute
lizmat yeah, but I only want 1 instance for every abspath 19:36
of the "source" 19:37
thing is, I want it also to be able to support an installation *without* any source files
biab 19:38
vendethiel I guess my "last $x = 5" will break with these latest commits :P 19:47
masak m: my $x = 0; for 1..3 { .say; last $x = 5 }; say $x 19:48
camelia rakudo-moar c2a57e: OUTPUT«1␤5␤»
masak vendethiel: nope.
vendethiel masak: how so? github.com/rakudo/rakudo/commit/f8...9bf3425R93 19:49
flussence What's the idiomatic p6 way to write «$SIG{WARN} = sub {$warned++};»? I'm a bit stumped and all I've got is a multi-line mess that causes an internal error.
m: for ^10 { warn if .is-prime; CONTROL { } }
camelia rakudo-moar c2a57e: OUTPUT«Warning: something's wrong in block at /tmp/Ti8qSE2Bl6:1␤Trying to unwind over wrong handler␤»
flussence that's the error golfed down a bit
TimToady m: for ^10 { warn if .is-prime; CONTROL { .say } } 19:50
camelia rakudo-moar c2a57e: OUTPUT«Warning: something's wrong␤ in block <unit> at /tmp/dGYxdelD2A:1␤␤Warning: something's wrong in block at /tmp/dGYxdelD2A:1␤Trying to unwind over wrong handler␤»
TimToady m: for ^10 { warn if .is-prime; CONTROL { when * { .say } } }
camelia rakudo-moar c2a57e: OUTPUT«Warning: something's wrong␤ in block <unit> at /tmp/XbXY5Dna9F:1␤␤Warning: something's wrong␤ in block <unit> at /tmp/XbXY5Dna9F:1␤␤Warning: something's wrong␤ in block <unit> at /tmp/XbXY5Dna9F:1␤␤Warning: something's wrong␤ in blo…»
masak vendethiel: oh, camelia is running on an old Rakudo.
TimToady m: for ^10 { warn if .is-prime; CONTROL { when * { .say; .resume } } }
camelia rakudo-moar c2a57e: OUTPUT«Warning: something's wrong␤ in block <unit> at /tmp/uNtO3aZOCE:1␤␤Warning: something's wrong␤ in block <unit> at /tmp/uNtO3aZOCE:1␤␤Warning: something's wrong␤ in block <unit> at /tmp/uNtO3aZOCE:1␤␤Warning: something's wrong␤ in blo…»
masak why is camelia running such an old Rakudo? several hours.
TimToady m: for ^10 { warn if .is-prime; CONTROL { when * { .resume } } }
camelia ( no output ) 19:51
masak no, yesterday's, even.
TimToady probably the "forgiven" nqp bump
masak oh :/
TimToady just guessing though... 19:52
itz_ is there an OS independent way of getting file path separator? 19:53
flussence oh, it's called CX::Warn now. I was testing for «when X::AdHoc» still...
ugexe m: say $*SPEC.dir-sep 19:54
camelia rakudo-moar c2a57e: OUTPUT«/␤»
TimToady CX looks like some kind of mario-universe critter
itz_ ugexe: ty 19:55
masak m: say CX.WHAT
camelia rakudo-moar c2a57e: OUTPUT«(CX)␤»
masak m: say CX.WHO
camelia rakudo-moar c2a57e: OUTPUT«Last => (CX::Last), Next => (CX::Next), Proceed => (CX::Proceed), Redo => (CX::Redo), Succeed => (CX::Succeed), Take => (CX::Take), Warn => (CX::Warn)␤»
masak m: say CX.HOW 19:56
camelia rakudo-moar c2a57e: OUTPUT«Perl6::Metamodel::PackageHOW.new␤»
lizmat itz_: '/'
masak oh, "Control eXception".
itz_ lizmat: I was worried about VMS ;)
stanrifkin What do you use as filename suffix for perl6? 19:57
lizmat ah, do we need to worry about VMS?
itz_ probably not
masak even if we need to worry about VMS, '/' has won and should be the default.
VMS should take the perf penalty for not having the default.
lizmat as we don't have a IO/Spec/VMS
in any case, the newio branch assumes just '/' 19:58
std: for ^10 { next my $x = 42 }
camelia std 28329a7: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/75yooyof0g line 1:␤------> 3for ^10 { next my $x7⏏5 = 42 }␤ok 00:00 138m␤»
lizmat std: my $x; for ^10 { next $x = 42 } 19:59
camelia std 28329a7: OUTPUT«ok 00:00 139m␤»
lizmat m: my $x; for ^10 { next $x = 42 }; say $x
camelia rakudo-moar c2a57e: OUTPUT«42␤»
lizmat I was just going to commit a patch that would do: 20:00
$ 6 'for ^10 { next my $x = 5 }'
Cannot call next(Int); none of these signatures match:
()
(Label:D \x)
vendethiel lizmat: ... isn't that already the case? 20:01
I mean, since your patch 4hours ago
lizmat yes, but then it would die at runtime 20:02
vendethiel oh :)
lizmat this would be at compile time (well, optimize time technically)
Perl 5 says: 20:03
$ perl -E 'my $x; while (1) { last $x = 42 }; say $x'
Label not found for "last 42" at -e line 1
so also not what you expect 20:04
yes...
(sorry, referring to "I guess that will break "last $a = 42" reference by vendethiel just now) 20:05
vendethiel I guess "$x = 42, last" is the correct way to put it? 20:06
lizmat vendethiel: is there something wrong with: $a = 42; last ?
vendethiel before of @a = , tho
lizmat: I just wanted a quick postfix if :)
lizmat yeah, "$x = 42, last if $foo" should work 20:07
and might as well be clearer as well ?
lizmat as well (hmm.... seem to be stuck as well) 20:08
dalek kudo/nom: 6b99119 | lizmat++ | src/core/control.pm:
Make next/last/redo foo fail at compile time

KISS really, having a MMD candidate that just dies, makes it a runtime error. Removing that candidate, makes it a compile time error.
20:14
lizmat hopes TimToady agrees with this last change to next/last/redo 20:15
jercos okay, the other script error that goes up when throwing together a design.perl6.org clone, S26, is absent entirely from design.perl6.xyl.be/ but present in design.perl6.org/ so presumably hand-updated... 20:17
oh, cygx left :-\
ah well
mr_ron where is flatmap documented. I don't see it in the synopses or docs.perl.org 20:28
rjbs I didn't know/think p6 had a flatmap. 20:30
I appear wrong at least going by backlog, though. 20:31
masak it's fairly new.
mr_ron can I add an RT that it needs to be documented?
masak I haven't grokked it well enough to understand whether it's the same as what the FP world calls flatMap
mr_ron: sure!
rjbs masak: I've used .flat.map a couple times, which already makes me predict confusion. : 20:32
itz_ [ptc]: I think I've fixed Text::VimColour now 20:33
RabidGravy that's weird, just rebuildin rakudo moar from scratch on FreeBSD 10.1 and interp.o took half an hour 20:35
itz_ RabidGravy: the issue is the version of clang .. try clang36
flussence I used to be able to backup $install/share/perl6/site/panda/state, and it'd automatically reinstall everything I had prior to a rakudo update, but that doesn't seem to work any more... did it stop using that file?
RabidGravy itz_, I'll try that when it's finished 20:36
dalek kudo/nom: 079de37 | lizmat++ | src/core/control.pm:
Make THROW a multi

So that simple Nil throws don't have to throw Nil
20:46
lizmat argh! I broked the JVM build 20:50
control operator crossed continuation barrier :-( 20:51
smls What's the best way to make a class Foo so that Foo.new($:name) returns the *existing* object with that $.name if it already exists?
A my-scoped hash in the class mapping names to known objects, together with a custom method new which checks and extends that hash? 20:52
RabidGravy yeah that would work 20:52
lizmat CompUnit.new does something like: %instances{$path} //= self.bless( 20:53
to prevent race conditions, it does it inside a lock.protect() block 20:54
smls ok, thanks. 20:55
flussence oh, figured out the panda thing - my rebuild-rakudo script was looking for it in an ancient file path. never mind. 20:58
dalek kudo/nom: 08b0e97 | lizmat++ | src/core/control.pm:
Unbreak the JVM build

Using MMD for THROW was a bridge to far. So do the selections of the candidates manually by (different) name.
21:07
lizmat *too
vendethiel lizmat: wow, that's a scary error message 21:08
does that make any perl6 concept unimplementable on the jvm, btw?
(continuations on the jvm?)
lizmat well, in combination with such low level things as take / return / next / last / etc. 21:11
there are apparently a number of gotcha's there
the current solution is just not as clean, but essentially the same 21:12
vendethiel lizmat: I see, thanks. I guess that's the price to pay to run on a VM *not* designed for your very malleable language :) 21:13
lizmat guess so :-)
masak night, #perl6 21:31
lizmat gnight masak 21:33
lizmat also calls it a night 21:36
timotimo lizmat: did you see # RT #122732 - control operator crossed continuation barrier 23:26
#?if jvm
right above the code you changed? :)
timotimo i like THROW-NIL 23:28
i mean
THROW with MMD would be nice, too. but having this is a good start
dalek kudo-star-daily: 5322ff6 | coke++ | log/ (2 files):
today (automated commit)
23:31
rl6-roast-data: 5f323e2 | coke++ | / (9 files):
today (automated commit)