Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 dalek nqp: f976687 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
00:01 dalek nqp: Enable proxy to be used for abstract classes.
00:01 dalek nqp:
00:01 dalek nqp: Before, it only worked with interfaces.
00:01 dalek nqp: review: https://github.com/perl6/nqp/commit/f976687483
00:03 dalek rakudo/nom: 8ac6bb1 | jnthn++ | src/vm/jvm/core/Threading.pm:
00:03 dalek rakudo/nom: Implement Promise.sleep.
00:03 dalek rakudo/nom:
00:03 dalek rakudo/nom: This produces a Promise that is kept after the specified time elapses.
00:03 dalek rakudo/nom: Think of it like an asynchronous sleep, that doesn't block a thread.
00:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ac6bb1d90
00:03 jnthn yay, now you can implement sleep sort efficiently without choking up the thread pool :)
00:03 jnthn my @a = (1..20).pick(*);
00:03 jnthn await @a.map(-> $n { Promise.sleep($n).then({ say $n }) })
00:03 jnthn :)
00:10 timotimo YES
00:10 timotimo finally i can use perl6 in production
00:35 adu joined #perl6
00:40 adu joined #perl6
00:43 adu joined #perl6
00:45 hypolin joined #perl6
00:52 jnthn sleep &
00:57 benabik joined #perl6
00:59 FROGGS_ joined #perl6
01:06 adu hi jnthn
01:10 crab2313 joined #perl6
01:18 drbean joined #perl6
01:22 ggoebel joined #perl6
01:32 xinming joined #perl6
01:32 colomon joined #perl6
01:43 pnu joined #perl6
01:44 Util joined #perl6
01:44 timotimo joined #perl6
01:45 sergot joined #perl6
01:46 tadzik joined #perl6
01:54 obra joined #perl6
01:55 Maddingue joined #perl6
01:57 tomaw_ joined #perl6
01:58 FROGGS__ joined #perl6
02:18 lue joined #perl6
03:03 gdey joined #perl6
03:10 wtw_ joined #perl6
03:40 preflex joined #perl6
03:54 cognominal joined #perl6
04:17 adu joined #perl6
04:19 drbean joined #perl6
04:21 labster joined #perl6
04:25 drbean joined #perl6
04:45 drbean joined #perl6
04:54 birdwindupbird joined #perl6
05:15 drbean joined #perl6
05:16 thou joined #perl6
05:22 drbean joined #perl6
05:25 FROGGS joined #perl6
05:42 Mouq joined #perl6
05:48 raiph joined #perl6
05:52 FROGGS joined #perl6
05:52 diakopter .
06:04 JimmyZ ..
06:04 rom1504 ...
06:06 rindolf joined #perl6
06:13 FROGGS ....
06:14 moritz '.' x 5
06:19 grondilu rn: say [**] <4 3 2>
06:19 camelia rakudo 8ac6bb, niecza v24-88-g1f87209: OUTPUT«262144␤»
06:20 grondilu rn: say (4**3)**2
06:20 camelia rakudo 8ac6bb, niecza v24-88-g1f87209: OUTPUT«4096␤»
06:20 grondilu so the reduction metaoperator preserves associativity?  Good to know.
06:21 * grondilu noticed it while looking at http://rosettacode.org/wiki/Arbitrary-precision_integers_(included)#Perl_6
06:25 ssutch joined #perl6
06:33 kaleem joined #perl6
06:39 FROGGS joined #perl6
06:40 JimmyZ http://act.yapc.eu/ye2013/talk/4943  What, it's accepted and scheduled
06:42 JimmyZ and after it is jnthn++'s talk about Perl 6
06:42 FROGGS well, doesnt sounds that bad if you scratch the first line
06:45 nwc10 Until a few months ago, the london.pm hive mind hadn't heard of Pirum. Now we're very aware that they are trying to recruit
06:45 drbean_ joined #perl6
06:50 diakopter communiting, for the 4th time today
06:50 diakopter well
06:51 diakopter the first sentence is just plain untrue.
06:51 diakopter Perl 6 gets only a tiny amount of attention, creativity, and effort, in the scheme of things.
06:52 diakopter bbiab &
06:56 drbean joined #perl6
07:07 drbean joined #perl6
07:16 dmol joined #perl6
07:16 felipe joined #perl6
07:43 leont joined #perl6
07:55 tadzik lies. Everything bad happens because Perl 6 steals creativity
07:57 masak morning, #perl6
07:59 masak it's true. I stole a creativity into Perl 6 just a few days ago.
08:00 masak it turns out that it made features literally disappear from the original language, but it also ended up stealing a couple of developers, since contribution is a zero-sum game.
08:00 masak I'd feel bad about it if I weren't so devoid of a conscience.
08:03 FROGGS hehe
08:03 domidumont joined #perl6
08:04 masak I see a not-so-distant future where Perl 6 stops being distracted by "language development" and puts all its energy into the soul-stealing business.
08:05 masak people will fear us, and close up cities wherever we walk on the face of the Earth.
08:06 masak "it's the Perl 6 people! hide your semicolons!"
08:07 FROGGS but the good thing is, since other language will have no features anymore by then, the war between them vanishes with them
08:09 jnthn I thought it was their colons they'd need to watch out for more... :P
08:11 moritz colon, semicolon, they are all /colon/
08:12 jnthn .oO( Perl 6: I love the smell of it's colon... )
08:12 * jnthn yawns and makes coffee
08:13 * FROGGS already had three
08:13 FROGGS but w/e, coffee is a good idea
08:13 jnthn Yeah but I only just got up :)
08:13 FROGGS :o)
08:13 jnthn Which is bad prep for tomorrow when I should be doing something useful by 9am...
08:14 masak FROGGS: yes, that's the dark side of "every language is really a dialect of Perl 6" -- it's because all the other languages will have to ask us nicely for *their own* features. at a license fee, of course.
08:14 FROGGS coffee makes me type and think faster, but the problem is that it makes me impatient too, when waiting of rakudo to recompile
08:15 FROGGS 'course
08:15 FROGGS :o)
08:15 masak solution, give Rakudo coffee.
08:16 FROGGS well, even when that works what I do right now (@a >>+<< @b), it wont compile fater :o(
08:16 FROGGS faster
08:31 diakopter faster
08:35 FROGGS time perl6 -e 'my @a = ^100000; nqp::add_MT(@a, @a, Array); say "done"' # real 0m9.603s   user 0m26.792s   sys 0m1.716s
08:36 sqirrel joined #perl6
08:36 diakopter what's add_MT
08:36 FROGGS add_MT calls parrot's add under the hood, and sometimes it dies in the middle of computing, but at least it uses more than one core
08:36 diakopter O_O
08:36 FROGGS diakopter: a test op
08:36 diakopter +_+
08:37 diakopter X_X
08:37 diakopter -_-
08:37 diakopter o_-
08:37 diakopter o_o
08:37 FROGGS I just wanted to see if it still only utilizes just one core or not
08:38 JimmyZ ^_^
08:38 diakopter ok, now I'm curious
08:39 FROGGS the question is now: since we can't use parrot's add for Ints, what op do I need to call that won't be executed effectively in the main thread?
08:39 diakopter now that moarvm can probably run all the perl6-bench
08:39 diakopter timotimo: ping
08:42 dmol joined #perl6
08:43 diakopter bah, requires perl6
08:44 diakopter *grumble*
08:44 FROGGS well, it is called *perl6*-bench
08:44 FROGGS not ruby-bench
08:45 jnthn I suspect you could use it to do some profiling of NQP on Moar, no?
08:45 diakopter yeah I'm getting morbidly curious about that
08:45 diakopter building some form of rakudo; *sigh*
08:46 diakopter .oO( that's a lot of unreachable code )
08:48 diakopter "you're unreachable"
08:50 diakopter hee hee. "Stage post"  shoudln't that be pirt?
08:50 JimmyZ should be Stage Mast?
08:51 tadzik it's like Jast which is actually Jost
08:51 JimmyZ and Most ?
08:51 tadzik haha, but for Moar it will be Most
08:51 tadzik .tr pl en most
08:51 yoleaux pl in Most (gl → en)
08:51 tadzik wat
08:51 FROGGS ahhh cool, it is just the debug 'say' statement in pir that is causing the crash
08:51 tadzik anyway, Most means Bridge in Polish
08:52 diakopter actually qast->mast->.moarvm (both on disk and in memory)
08:52 JimmyZ so we should s/as_mast/as_most/ ?
08:52 FROGGS in german it is the state of the apple juice before it is wine
08:52 JimmyZ :P
08:53 jnthn .tr sk en most
08:53 yoleaux sk a mashed (no → en)
08:53 jnthn wtf :)
08:54 jnthn diakopter: I think the stage just never got renamed :)
08:54 arnsholt Being in Bulgaria ATM, I think "most" around here means bridge. Same in Polish and Slovak?
08:54 tadzik in Polish, yes
08:54 jnthn In Slovak too
08:55 jnthn The two main bridges in the capital had very creative names: stary most and novy most :)
08:55 arnsholt Old and New? =)
08:56 arnsholt I like Pont Neuf in Paris. The oldest bridge crossing the Seine still standing =D
08:56 arnsholt Like New college in Oxford
08:56 jnthn yes, old and new ;)
08:57 jnthn I think "old" was kinda appropriate though, given that for part of my time in Blava they partially closed the bridge 'cus it was at risk of falling down, or something :)
08:57 diakopter here, I'll just manually do nqp parrot vs nqp moarvm
09:02 diakopter what's the y-axis on test-plots.html
09:02 diakopter number of iterations of the loop per second?
09:03 diakopter er. no.
09:03 * JimmyZ still thinks .moarvm is too long :)
09:05 mathw we're running out of short and concise filename extensions
09:05 jnthn It's not like you type it explicitly that often :)
09:05 jnthn At least, I don't :)
09:05 diakopter anyone know what the y-axis is?
09:05 mathw <tab>
09:06 JimmyZ not type it, but most file ext is 3 words
09:06 JimmyZ 2~3
09:07 daxim joined #perl6
09:09 FROGGS .mvm seems unused
09:10 SmokeMac_ joined #perl6
09:10 crab2313 joined #perl6
09:11 JimmyZ .mvm .mbc .moa .mar ?
09:11 tadzik .mor
09:12 arnsholt Having an extension > 3 characters long is a good way to weed out silly platforms, if you ask me =)
09:13 JimmyZ i.e: dos ?
09:13 tadzik also, Configure.pl
09:13 tadzik come on, it's too long. Should be 8 characters long
09:13 tadzik Configur.pl
09:14 tadzik or maybe: Configur.epl
09:14 FROGGS *g*
09:14 diakopter while_empty: nqp-moar: 4,911,364/s p5: 20,763,886/s  so... 4.2x slower
09:15 diakopter at 2**12 iterations
09:15 JimmyZ not bad, Did  you compile with --omptimize ?
09:16 diakopter yeah i think so
09:16 tadzik does --omptimize use OMP? :)
09:16 diakopter haha
09:16 JimmyZ *optimize
09:18 diakopter while_bind at 2**12: nqp-moar: 4,755,446/s p5: not fair
09:19 diakopter ;)
09:22 diakopter ergh, the string ones should be ... interesting. :/
09:23 JimmyZ fib(35) is faster than p5
09:23 diakopter nice, segfault
09:26 diakopter 3x slower on while_concat; hrm.
09:26 tadzik concats gonna conc
09:27 diakopter it died on 2**12 but worked on 2**11
09:28 diakopter strangly the native variant is a lot slower on moar
09:28 jnthn That sounds odd...
09:28 jnthn Does the code-gen go boxing somewhere?
09:28 diakopter surely..
09:29 diakopter yeah, like infinitely slower
09:31 diakopter mwahaha
09:31 diakopter demolishes in the while_push_join
09:32 domidumont joined #perl6
09:33 diakopter er, no..
09:33 diakopter just 2x as slow as p5
09:33 diakopter demolishes the other NQPs anyway
09:34 diakopter while_push segfaults
09:34 diakopter *sigh*
09:35 diakopter er, no it doesn't
09:35 diakopter wat.
09:37 diakopter wel that's just crazy; it segfaults if there's NOT an say('alive') at the end
09:37 tadzik clearly, it's not alive
09:37 tadzik alive ergo sum
09:38 diakopter also, non cogitas
09:38 labster carthago delenda est
09:41 domidumont joined #perl6
09:42 diakopter roughly same as nqp parrot for while_array_set
09:45 kaleem joined #perl6
09:48 masak you sort of have to question the modus operandi of people who use Latin phrases for no good reason.
09:50 diakopter usually modus operandi is a synonym for "standard operative procedure" ... oh.
09:50 diakopter *operating
09:50 jnthn .oO( carpe cervisia... )
09:51 diakopter carpe carp
09:53 diakopter rnp: 10 COME FROM 10
09:53 camelia rakudo 8ac6bb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/pUbCITVVV5â�¤Two terms in a rowâ�¤at /tmp/pUbCITVVV5:1â�¤------> [32m10 [33mâ��[31mCOME FROM 10[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤  â€¦
09:53 camelia ..pugs: OUTPUT«*** ␤    Unexpected "COME"␤    expecting operator␤    at /tmp/BxZS6LOTsA line 1, column 4␤»
09:53 camelia ..niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Two terms in a row at /tmp/mwReSoc49A line 1:�------> [32m10 [33m�[31mCOME FROM 10[0m��Parse failed��»
09:53 Rotwang joined #perl6
10:01 masak diakopter: yes. "operandi" is a gerund.
10:01 masak literally "way of working". I think there's a partitive genitive, too.
10:01 masak arnsholt would know. :)
10:03 * jnthn attempts to add some promise combinators :)
10:06 mathw \o/
10:15 dakkar joined #perl6
10:17 jnthn mathw: yes, they're cute, ain't they... :)
10:18 mathw I just love the idea of combinators for asynchronous things
10:19 mathw without them things tend to get really nasty
10:19 mathw with them, you can pretend some semblance of comprehensible code
10:19 Ulti joined #perl6
10:23 Ulti r: sub infix:<concat>{$^a~$^b}; 1,2,3 Zconcat 4,5,6;
10:23 camelia rakudo 8ac6bb:  ( no output )
10:24 Ulti r: sub infix:<concat>{$^a~$^b}; say 1,2,3 Zconcat 4,5,6;
10:24 camelia rakudo 8ac6bb: OUTPUT«14 25 36␤»
10:24 Ulti r: say 1,2,3 Z{$^a~$^b} 4,5,6;
10:24 camelia rakudo 8ac6bb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/eFGlrfOWZwâ�¤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)â�¤at /tmp/eFGlrfOWZw:1â�¤------> [32msay 1,2,3 Z[33mâ��[31m{$^a~$^b} 4,5,6;[0mâ�¤    expecting any of:…
10:25 Ulti is there any practical reason that second example couldn't be made to work?
10:28 jnthn Here's an example of finding the 10000th prime, reporting progress as we go...
10:28 jnthn https://gist.github.com/jnthn/6172897
10:29 Ulti jnthn: is that running the same search in parallel and then just taking the result of whichever thread gets there first?
10:30 dalek rakudo/nom: 9117969 | jnthn++ | src/vm/jvm/core/Threading.pm:
10:30 dalek rakudo/nom: Implement anyof and allof promise combinators.
10:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9117969266
10:30 jnthn Ulti: The search isn't being done in parallel, no
10:30 jnthn Ulti: It's running the search on a thred in the thread pool there.
10:30 mathw it's picking up the contents of the array as they're being generated by a different thread?
10:30 masak mathw: most statement forms ('if', 'while', etc) are combinators for synchronous things. programming without them also tends to get really nasty ;)
10:30 mathw masak: yes, but combinators for asynchronous things are fairly unusual still, and thus highly valued when they appear
10:31 masak we're just less wired to think asynchronously.
10:31 jnthn mathw: Not even that. The async block returns a Promise, much like Task in .Net. The task is working to find the 10000th prime
10:31 masak that's why we need math and logic, to keep our brains straight.
10:31 jnthn mathw: In the main program body, we sit in a loop, waiting for either the result to arrive or a second to elapse. If a second elapses with no result still, we report progress so far and continue looping.
10:32 jnthn The loop is left when we have a result.
10:32 mathw duh
10:32 Ulti jnthn: is there a mechanism to specify you don't mind running the same task several times for speculative execution, sometimes if you are doing a stochastic calculation running a couple of them one might converge quicker for example
10:32 mathw sorry I'd not quite picked up on it updating $found from inside the async
10:32 jnthn mathw: ah :)
10:33 mathw up to the eyeballs in C# today
10:33 jnthn Ulti: Yes, you could build that out of the anyof combinator.
10:33 Ulti also thats really cool! :D
10:33 mathw well, not so much C# but some of the annoying bits it gets involved in... like web.config
10:33 bruges joined #perl6
10:33 Ulti okedoke
10:34 mathw jnthn: so Promise.sleep(1) makes a promise that doesn't do anything, but takes a second to do it?
10:35 FROGGS that sounds exactly like my co-workers
10:37 rindolf joined #perl6
10:39 jnthn mathw: Yes, using a timer mechanism so it doesn't actually sleep a thread.
10:39 FROGGS jnthn: I create and return an RPMCA within/from pir code, and when I call .gist on the op that returns it, it states it can't call .gist on an QRPA... how can I box it into an array?
10:40 jnthn Ulti: https://gist.github.com/jnthn/6172985 # silly stochastic example for you
10:41 mathw jnthn: handy. Can I assume that normal sleep is/will be smart enough that "await Promise.sleep(10)" doesn't turn out to be more sensible?
10:41 jnthn mathw: for now, sleep itself will always be a normal "sleep this thread"
10:42 mathw probably always will need access to that
10:42 mathw sometimes being smart is the wrong choice
10:42 jnthn Yeah...at this level, anyway.
10:43 mathw the primitives need to be available
10:43 mathw if only because you need them to build other cool stuff out of
10:44 jnthn Right.
10:46 jnthn JimmyZ: btw, you asked about promises that can be created and explicitly kept. That's now possible: my $p = Promise.new(); and then later $p.keep($value)
10:47 masak jnthn: what's the opposite of .keep ?
10:47 jnthn masak: .break
10:47 jnthn masak: Just like in real life, you keep promises or break them :)
10:48 FROGGS liars!
10:48 masak also, jQuery makes the distinction between "deferreds" (where you can use the .keep or .break equivalents) and "promises" (where you can't). do/will we have anything similar?
10:49 masak it seems Very Bad in some cases to expose the .keep/.break methods to the user.
10:49 Ulti jnthn: neat thanks, I guess you could also just have a function that's an async and just call it four times as parameters to Promise.anyof too?
10:49 jnthn Ulti: Yeah, anyof takes a slurpy and expects all the things will be of type Promise
10:49 Ulti oh wait that is what you have because the array is that
10:49 mathw what does $promise.keep actually do?
10:49 Ulti :)
10:50 jnthn masak: If you have a Promise that is based around a piece of code and you try to call .keep on it, it will explode.
10:50 * Ulti hasnt had coffee or an anti hayfever pill yet
10:50 Ulti does explode mean raise an exception or actually bomb out
10:50 mathw ...
10:51 jnthn mathw: Sets the result, sets status to completed, and fires any then
10:51 mathw so what is .keep *for*?
10:51 mathw oh so you can have a Promise which has no associated code
10:51 jnthn mathw: Setting the result of any Promise that is not backed by some code.
10:51 mathw and someone can come along and say 'okay I kept that promise for you'
10:52 jnthn Yeah, allowing that to happen seems a bad idea... :)
10:52 mathw so you can use that kind of promise as a synchronisation mechanism
10:52 jnthn Right.
10:52 jnthn That's how Promise.delay(...) works. It sets up the timer, and then when it fires just does .keep
10:52 diakopter latch
10:52 jnthn Ulti: Exception
10:53 mathw where?
10:53 mathw in the thread that's waiting on the promise?
10:53 dalek Perlito: f8bc871 | (Flavio S. Glock)++ | / (5 files):
10:53 dalek Perlito: Perlito5 - js - fix subroutine reference
10:53 dalek Perlito: review: https://github.com/fglock/Perlito/commit/f8bc871741
10:53 clkao win 8
10:54 * masak hugs clkao, good irrsi user
10:54 masak irssi*
10:54 jnthn mathw: At present, there's a semaphore inside of the Promise. If you block on it, then you're unblocked when keep releases.
10:55 jnthn The entire code behind this is under 300 lines, fwiw. :)
10:56 pmurias joined #perl6
10:56 jnthn (Probably 'cus there's a bunch more to do on it :P)
10:56 mathw hehe
10:57 mathw hopefully it'll stay under 300,000 though :)
10:57 * jnthn ponders whether, since the thing that underlies anyof and allof is n_of, he should expose that
10:58 Ulti yeah maybe if you wanted N possible solutions to something running in parallel
10:58 mathw there might be a case for that
10:58 mathw "I want the first two of these things that finish"
10:58 Ulti especially if you want to then map the output N at a time
10:58 jnthn The thing I ain't got in yet is cancellation
10:59 Ulti do you get FailedPromises for all the threads that died for some reason?
10:59 Ulti BrokenPromises sorry ;)
10:59 mathw cancellation's hard
11:00 mathw good luck
11:00 mathw lunch &
11:01 jnthn Ulti: It's a Promise, but when you try to use the result it throws the exception.
11:03 Ulti might have to play with this later and port a perl5 script I use with GNU parallel
11:04 Ulti is there a Perl5 -> Perl6 regular expression translator anywhere?
11:04 Ulti I realise you can use Perl5 regex anyway
11:05 jnthn No, that'd be a fun thing to write though...in Perl 6, of course :)
11:05 FROGGS Ulti: but it only support a small subset of P5 regex
11:05 FROGGS supports*
11:05 Ulti yeah might give it a go, the bioinformatics stuff I'm doing at the moment is essentially scoring regular expressions in parallel over a large set of strings
11:06 Ulti people publish regular expressions of sequence motifs that have a biological function :D
11:06 Ulti FROGGS: well these are POSIX compatible regex I think
11:07 Ulti http://elm.eu.org/elms/browse_elms.html  <--- the database of curated regex
11:07 Ulti those should be really trivial to translate anyway
11:09 Ulti then I can blog about some parallel Perl6 code "in production"
11:09 FROGGS ++Ulti
11:09 Ulti plus I have the perl5 equivalent laying around to compare against
11:15 PacoLinux joined #perl6
11:40 mdxi joined #perl6
11:40 mdxi left #perl6
11:50 crab2313 joined #perl6
11:56 JimmyZ jnthn: good
11:59 colomon joined #perl6
12:06 jnthn afk, stockholm &
12:07 FROGGS AAAAHHHHH, HE GOT KIDNAPPED!!!
12:13 masak so that's what the capital city of my home country gets associated with.
12:16 FROGGS :P
12:16 masak Ulti: parenthesis semantics is a little different between 5 and 6.
12:17 masak Util: in 5 the rule is "label starting at $1 based on the order of opening parentheses"
12:17 masak Ulti: in 6 the rule is "label starting at $0 based on nesting, taking alternations into account"
12:19 masak $ perl -Mstrict -wE '"foo" =~ /(?:(r)|(f))(oo)/; say $3'
12:19 masak oo
12:19 masak r: "foo" ~~ /[(r)|(f)](oo)/; say $1
12:19 camelia rakudo 911796: OUTPUT«「oo」␤␤»
12:21 masak so above, in Perl 5 (r) is $1 and (f) is $2
12:22 masak but in Perl 6 both (r) and (f) are $0
12:22 Ulti masak: thanks though none of those regex I linked to is actually capturing its just they aren't perl5 regex specifically
12:22 Ulti as in I'd only ever want $0
12:22 Ulti oh wait whats the whole match
12:22 masak $/ :)
12:22 Ulti heh right like grammars
12:22 masak in Perl 5, $0 means $*PROGRAM_NAME
12:23 masak Ulti: in fact, in Perl 6, all the capture variables like $5 are just data inside $/ -- $5 is sugar for $/[5]
12:24 Ulti wait not @/[5]
12:24 FROGGS because $/ is the match variabel, not @/
12:25 Ulti and [] is over ridden for the match object?
12:25 FROGGS r: "abc12" ~~ / (\w) $<foo>=[ (\w+) | (\d+) ] /; say $/
12:25 camelia rakudo 911796: OUTPUT«「abc12」␤ 0 => 「a」␤ 1 => 「bc12」␤ foo => 「bc12」␤␤»
12:26 FROGGS r: "abc12" ~~ / (\w) $<foo>=[ (\w+) | (\d+) ] /; say $/; say $/[1]; say $/<foo>
12:26 camelia rakudo 911796: OUTPUT«「abc12」␤ 0 => 「a」␤ 1 => 「bc12」␤ foo => 「bc12」␤␤「bc12」␤␤「bc12」␤␤»
12:26 FROGGS r: "abc12" ~~ / (\w) $<foo>=[ (\w+) | (\d+) ] /; say $1; say $<foo>
12:26 camelia rakudo 911796: OUTPUT«「bc12」␤␤「bc12」␤␤»
12:27 FROGGS Ulti: is just supports positional operations
12:27 FROGGS and associative
12:27 masak Ulti: anything can have .[] indexing, whether it sits inside a $ variable or a @ variable.
12:27 Ulti yeah so its a scalar because its a single object but just has stuff for using those operators
12:27 masak scalar in Perl 6 just means "we don't know anything special about the object".
12:28 masak it could still be an array or a hash or something else.
12:28 masak rn: my $mystery = ["OH HAI"]; say $mystery[0]
12:28 camelia rakudo 911796, niecza v24-88-g1f87209: OUTPUT«OH HAI␤»
12:28 Ulti ahh yeah I just assigned a list to a scalar I never even thought to try that
12:29 Ulti which does beg the question why use anything else
12:31 fridim__ joined #perl6
12:37 dalek nqp: 0b93372 | (Solomon Foster)++ | src/HLL/sprintf.nqp:
12:37 dalek nqp: Proper support for NQP types in Int sprintfs.
12:37 dalek nqp: review: https://github.com/perl6/nqp/commit/0b93372570
12:39 masak I just realized that my biggest kvetch against Perl 5's lookahead (?=) (?!) and lookbehind (?<=) (?<!) operators is that they are not properly strangely consistent.
12:39 masak at least not in my view.
12:39 masak the lookahead operators should've been (?>=) (?>!)
12:40 masak I think from now on my mnemonic will be "they're like that, except the '>' is missing" :)
12:40 [Coke] pick a list for someone asking question that starts with "I am trying to use the C extention feature with perl6. Although it worked fine with perl5, the C extention is different from perl5 to perl6"
12:40 [Coke] -compiler? -user?
12:41 [Coke] er, -users?
12:41 [Coke] I'll go with -users.
12:44 itz joined #perl6
12:46 PacoLinux joined #perl6
12:46 [Coke] someone trying to use a program that uses Inline::C with perl6.
12:48 fhelmberger joined #perl6
12:48 colomon Time::Duration failed tests overnight...
12:50 masak \b means "word boundary" in (p5) regexes, but "backspace" in char classes. TIL.
12:50 masak $ perl -E 'say "\b" =~ /[\b]/'
12:50 masak 1
12:50 masak thanks, Python documentation ;)
12:50 masak (in Perl 6, \b means "backspace" in all three contexts: string, regex, charclass)
12:51 orafu joined #perl6
13:01 masak interesting module idea: regex coverage checking.
13:01 masak given a list of regexes, see if (a) they cover all possible strings, and (b) there's no overlap.
13:02 PacoLinux joined #perl6
13:12 masak ok, "trapped on the surface of a sphere" is my new reply. http://xkcd.com/1248/
13:14 crab2313 :q
13:14 * hugme hugs crab2313, good vi(m) user!
13:15 masak is it too early yet to port hugme to Perl 6?
13:15 masak looks like it's 268 lines of POE Perl 5.
13:16 daxim first you write/port an event loop framework…
13:17 PacoLinux joined #perl6
13:17 masak well, we already have an IRC bot module, so I don't think that's necessary.
13:18 ajr joined #perl6
13:18 Ulti masak: if you did that regex covering module I'd coauthor you on my paper ;)
13:18 timotimo well, MuEvent exists
13:18 masak Ulti: heh :)
13:18 masak Ulti: I suppose for arbitrary regexes it's too ambitious.
13:18 masak Ulti: but for a lot of real-world ones it's quite doable.
13:19 Ulti I'm especially interested how many regexes are confused in that database, at the momeny I'm just using the output to work it out
13:19 timotimo diakopter: can't run all the benchmarks on moarvm, while_concat segfaults and the benchmark framework still counts that as "success! i should make a bigger task!"
13:19 Ulti just something that takes two match objects and tells you the overlap would be useful
13:19 Ulti rather than looking at the regex
13:21 Ulti I also want something that works out expectations of a regular expression matching too if you give the expectation of each character
13:22 Ulti which gets really tricky for when you have * or + or anything that matches multiple times
13:23 konundra joined #perl6
13:27 masak Ulti: all of this gets much easier once you view regexes as ASTs.
13:27 masak Ulti: not super-easy, but definitely within the realm of the achievable.
13:29 Ulti I have to finish my thesis before I play ;___;
13:29 skids joined #perl6
13:31 masak what's the timeline for your paper? I don't have any time before YAPC::EU, but I think a coverage module is definitely something I could write.
13:33 pmurias isn't coverage in some horrible complexity class?
13:34 pmurias masak: a quick google search found this http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.3636&amp;rep=rep1&amp;type=pdf
13:37 masak pmurias: interesting.
13:38 masak yes, it's a hard problem in general.
13:40 alester joined #perl6
13:41 logie joined #perl6
13:41 masak in order to use regexes in Python, you have to `import re` -- hahahaha *sob*
13:44 xilo joined #perl6
13:44 [Coke] (IRC bot module) did that ever become usable?
13:44 timotimo perl5: say "Segmentation fault (core dumped)" =~ /core dumped/;
13:44 timotimo eval: say "Segmentation fault (core dumped)" =~ /core dumped/;
13:45 [Coke] ... crap. rakudo-jvm has promises, but not sockets.
13:46 timotimo yes :((
13:46 timotimo i don't know enough about sockets to come up with something acceptable
13:46 timotimo (and even on parrot, the rakudo sockets are a bit peculiar)
13:47 GlitchMr I miss easy sockets in Node.js.
13:47 nebuchadnezzar joined #perl6
13:49 pmurias masak: 'import re', that should make switching to Perl 6 rules easier ;)
13:52 JimmyZ use v6; use re:from<python>;
13:53 timotimo huh. so the code does my ($out, $err) = capture { $status = system @$compile }, shouldn't i be able to get the output from $out and $err? could also be a bad sign that the segmentation fault message ends up on the console without $err and $out being printed anywhere ...
13:53 * [Coke] has a week of vacation coming up and hopes he can get a few days to hack on p6.
13:55 FROGGS timotimo: sounds like it dies... you can try warring the system call in an eval (which is Perl 5's version of `try`)
13:55 FROGGS ohh cool, ++[Coke]
13:56 notjack joined #perl6
13:56 timotimo what, system dies?
13:57 timotimo how exactly do i wrap it in eval? just write it before? do i have to put curlies?
13:57 tadzik system dies if you use autodie
13:58 GlitchMr rn: my @array = 2, 0.2; say [*](@array) ** (1 / @array)
13:58 camelia niecza v24-88-g1f87209: OUTPUT«0.63245553203367588␤»
13:58 camelia ..rakudo 911796: OUTPUT«0.632455532033676␤»
13:58 FROGGS timotimo: http://perldoc.perl.org/functions/eval.html
13:58 timotimo i've seen no indication of an exception flying out, but what do *i* know about perl5? :)
13:58 FROGGS timotimo: you will see that Perl 5 is a great mess compared to Perl 6
13:59 * FROGGS hopes that he doesn't get killed for his opinion
13:59 lizmat FROGGS, timotimo: eval in p5 will *never* throw an exception
13:59 GlitchMr FROGGS: Perl 5 isn't bad.
13:59 FROGGS GlitchMr: I know
13:59 GlitchMr There is Try::Tiny module on CPAN to improve exception support.
14:00 FROGGS lizmat: there was no `eval` in timotimo's code at that point
14:00 lizmat ah, ok
14:01 FROGGS GlitchMr: but having an eval which acts more like try/catch where you have to check for $@ where other ops put things in $! and $@ is just weird
14:01 FROGGS I mean, you get used to it, but it still is weird :o)
14:01 GlitchMr $@ is always eval error in Perl 5.
14:03 timotimo oh, i'm silly
14:03 timotimo i've of course been looking at the wrong lines altogether
14:04 FROGGS timotimo: btw, complains about 'explicit package name' means that something is undeclared
14:05 timotimo in this case it meant i forgot to put parens around the if condition which confused the parser so massively that it started a drunken tumble through the rest of the code, completely unaware of its surroundings, knowing only that nothing seemed quite right
14:06 timotimo great, my segfault detection works :)
14:06 FROGGS timotimo++ # yet another Perl 5 hacker :o)
14:07 timotimo now i can run all the tests, hopefully
14:07 timotimo i'd prefer not to do too much perl5 in the future ~_~
14:12 notjack I've had to dust off my perl5 neurons recently
14:13 notjack turns out I may need a scouring pad and some bleach
14:20 ajr joined #perl6
14:24 timotimo it seems like rc-forest-fire was being run, but didn't actually do anything, or should have failed, or something
14:24 timotimo i'm running nqp-jvm benchmarks right now, so that moarvm performance can be compared to the other two
14:24 FROGGS cool
14:24 FROGGS I'm eager to see it
14:25 FROGGS even when I know that moarvm is not totally optimized atm
14:25 timotimo i'm also eager to see it ;)
14:27 [Coke] ... and there's the email.
14:27 PacoLinux joined #perl6
14:29 timotimo which one is that?
14:29 [Coke] "Can anyone please help with using inline C in perl6 ? basically I want C extensions in perl6.
14:30 [Coke] I figure the best answer doesn't involve inline'd c, but easy access to it with nativecall.
14:30 btyler joined #perl6
14:31 FROGGS [Coke]: there is Inline::C fwiw
14:31 [Coke] for 6?
14:32 FROGGS yes
14:32 [Coke] good thing I forwarded him to the list then. ;)
14:32 FROGGS but one should choose NativeCall when it comes to using C-libs
14:32 FROGGS it seems I'm missing a list subscription...
14:33 FROGGS [Coke]: which list?
14:33 [Coke] perl6-users
14:34 [Coke] I was cc'd - it might not have made it through spam filters yet
14:38 Psyche^ joined #perl6
14:39 domidumont joined #perl6
14:46 masak I finally understand why it's separator.split(str) in Python, not str.split(separator)
14:47 pmurias so it works with regexes?
14:47 leont When lacking multi-methods, it's the most useful way to do it I suppose
14:47 masak the full form is actually re.split(pattern, str) -- where pattern=separator
14:48 masak there are seven such methods on re, and all of them have pattern as the first parameter.
14:48 masak and all of them have alternative forms where instead of passing a (string) pattern as the first parameter, you call them on a compiled regex object.
14:49 pmurias masak: so what is the reason?
14:51 timotimo http://t.h8.lv/p6bench/moarvm_nqp_2013-08-07.html - didn't even look at it myself yet
14:51 timotimo wow, why is it so irregular?
14:51 bluescreen10 joined #perl6
14:52 masak pmurias: consistency. for many of the other of the seven methods, it makes a lot of sense to keep `pattern` as the first parameter.
14:52 timotimo weird. so many are missing
14:53 FROGGS timotimo: the bigger the better?
14:53 timotimo yes, more up = more good
14:54 dalek rakudo/nom: 1d15f4d | (Elizabeth Mattijsen)++ | src/core/control.pm:
14:54 dalek rakudo/nom: Tentatively implement "samewith" for calling same method with different params
14:54 dalek rakudo/nom:
14:54 dalek rakudo/nom: This is essentially syntactic sugar for &?ROUTINE.dispatcher()( self, @params );
14:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1d15f4d70c
14:54 JimmyZ what, zero moarmv is worst?
14:55 _jaldhar joined #perl6
14:55 timotimo ... what? :)
14:55 timotimo ah, yes
14:56 timotimo well, it contains the time for a parrot to start and the cross compiler to compile "nothing" and then for a moarvm to start and run "nothing"
14:56 FROGGS timotimo: if you show me where the code is I would add a precomp-moarvm
14:56 JimmyZ no p5 there :(
14:56 timotimo sure. gimme a sec.
14:57 timotimo https://github.com/timo/perl6-bench/tree/latest-stuff - there you go
14:58 timotimo you will probably want to look into components.pl to figure out how the stuff is run
14:58 _jaldhar joined #perl6
15:02 dalek roast: 184ff24 | (Elizabeth Mattijsen)++ | S12-methods/defer-next.t:
15:02 dalek roast: Check new "samewith" functionality
15:02 dalek roast: review: https://github.com/perl6/roast/commit/184ff24323
15:03 FROGGS ohh now, I need perl6 modules to run it
15:03 FROGGS no*
15:03 pmurias I could be fun to port a "real" benchamark like Octane that Dart is using http://www.dartlang.org/performance/
15:05 tsmith joined #perl6
15:07 masak huh, "samewith" :)
15:07 * FROGGS .oO( "laszer" )
15:07 FROGGS -.-
15:07 FROGGS lazer*
15:09 masak FROGGS: friggin' ones, on the heads of sharks?
15:09 lizmat well, it's not nextwith
15:10 lizmat it's for the case where you want to call the same method with different parameters using the same dispatcher
15:11 kaare_ joined #perl6
15:11 masak aye.
15:12 masak I've never put it down into words, but I'm disappointed at where we ended up with things like $obj.*method()
15:13 masak it turns out that there are two axes along which there can be "several methods": the mro axis and the multi axis.
15:13 masak the .* syntax picked the wrong axis, making the syntax much less exciting for Perl 6 programmers.
15:14 itz joined #perl6
15:14 lizmat yuck.  the test for samewith succeeds, but the use case in Hash.classify-list fails :-(
15:14 masak time to write more tests! :)
15:14 pmurias masak: you would prefer it to be the multi axis?
15:15 lizmat masak: indeed
15:16 masak pmurias: I... I don't know. in a way I still haven't organized my thoughts about this enough.
15:16 masak pmurias: I really should, and the result should probably be a blog post.
15:16 masak but it needs to be centered around use cases, and I haven't sat down and worked those out.
15:18 pmurias masak: .?foo seems usefull to me, .+ and .* seem a bit crazy
15:19 masak yeah.
15:19 masak r: class A { method foo($x) { say "A" } }; class B is A { method foo(Int $x) { say "B" } }; B.new.*foo(42)
15:19 camelia rakudo 1d15f4: OUTPUT«B␤A␤»
15:19 masak r: class A { method foo($x) { say "A" } }; class B is A { method foo(Int $x) { say "B" } }; B.new.*foo("not 42")
15:19 camelia rakudo 1d15f4: OUTPUT«Nominal type check failed for parameter '$x'; expected Int but got Str instead␤  in method foo at /tmp/lNQCmmJfDD:1␤  in method dispatch:<.*> at src/gen/CORE.setting:1186␤  in block  at /tmp/lNQCmmJfDD:1␤␤»
15:19 pmurias it seems like something that would make sense to use on methods designed to work with that
15:21 masak r: class A { multi method foo($x) { say "generalist" }; multi method foo(Int $x) { say "specialist" }; multi method foo(42) { say "über-specialist" } }; A.new.*foo(42)
15:21 camelia rakudo 1d15f4: OUTPUT«über-specialist␤»
15:21 dalek rakudo-js: b38ae57 | (Pawel Murias)++ | / (5 files):
15:21 dalek rakudo-js: Implement/fix things needed for multis.
15:21 dalek rakudo-js:
15:21 dalek rakudo-js: Handle QAST::BVal, compile the only child of the CompUnit.
15:21 dalek rakudo-js: Fix nqp::setcodeobj,nqp::getcodeobj.
15:21 dalek rakudo-js: Implement nqp::captureposelems,nqp::captureposarg,nqp::usecapture,nqp::savecapture.
15:21 dalek rakudo-js: Implement nqp::curcode. Pass test 75 for that.
15:21 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/b38ae572a2
15:21 masak right. so only works along the mro axis.
15:21 ajr joined #perl6
15:22 masak thanks to The Last Multi Reform, at least the mro and multi axes are orthogonal ;) that's undoubtedly a plus.
15:27 pmurias masak: it's specced to work on both axes
15:28 masak pmurias: do you have a reference for that?
15:29 sqirrel joined #perl6
15:29 masak pmurias: also, does that mean that my last eval above is a rakudobug?
15:29 pmurias S12:924
15:29 synopsebot Link: http://perlcabal.org/syn/S12.html#line_924
15:32 dalek rakudo/nom: a3eecdc | (Elizabeth Mattijsen)++ | src/core/control.pm:
15:32 dalek rakudo/nom: Small optimization in "samewith"
15:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3eecdce21
15:33 konundra joined #perl6
15:34 daxim http://sciencevsmagic.net/fractal/#0090,0180,1,2,1,0,5
15:35 PacoLinux joined #perl6
15:39 dalek rakudo/nom: 3ba7f55 | (Elizabeth Mattijsen)++ | src/core/control.pm:
15:39 dalek rakudo/nom: Fix problem with self not being found crying wolf
15:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3ba7f5579e
15:39 dalek rakudo/nom: 93ca160 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
15:39 dalek rakudo/nom: Use new "samewith" functionality in (classify|categorize)-list
15:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/93ca160d63
15:42 timotimo i don't know how exactly samewith operates, does the name "againwith" sound applicable?
15:43 masak timotimo: 'samewith' sounds more like 'nextwith' to me, which is probably a good thing.
15:43 * masak submits rakudobug
15:44 timotimo since there's "nextsame", too, would th equivalent of "samewith" be caled "samesame"? :)
15:44 masak r: class A { multi method x { say "1" }; multi method x { say "2" } }; A.new.*x()
15:44 camelia rakudo 1d15f4: OUTPUT«Ambiguous call to 'x'; these signatures all match:␤:(A : Mu *%_)␤:(A : Mu *%_)␤  in method x at src/gen/CORE.setting:510␤  in method dispatch:<.*> at src/gen/CORE.setting:1186␤  in block  at /tmp/NijVu67lCH:1␤␤»
15:45 masak timotimo: yes.
15:46 lizmat fwiw, my initial choice for the name was simply "again"
15:46 lizmat but found that too general, second choice was indeed "againwith"
15:46 FROGGS that clashes with 'once'
15:46 lizmat FROGGS: how ?
15:47 FROGGS "again" feels more like the opposite of 'once', no?
15:48 lizmat well, once takes a thunk/block, samewith takes any parameters
15:48 FROGGS and the 'with' in 'nextwith' points somehow to passing arguments, so it feels like it must have to do something with subs/methods
15:49 lizmat well, yes, hence the same*with* : )
15:49 FROGGS right :o)
15:50 lizmat anyway, it felt stupid having to repeat the method name, and nextwith() not doing what I needed
15:50 FROGGS yeah
15:50 lizmat I'm not really partial to the name, but I am to the functionality
15:51 lizmat if there's a better way to do it, I'm all for it!
15:51 FROGGS commute &
15:51 FROGGS I like the name fwiw
15:51 lizmat cycling and dinner&
16:04 [Coke] samewith: ENOSPEC
16:05 masak not all things implemented are spec'd.
16:05 [Coke] moritz: irc search logs broken?
16:06 [Coke] masak: they should be spec'd or documented by the implementation.
16:07 [Coke] moritz: http://irclog.perlgeek.de/perl6/search/?nick=&amp;q=samewith :: no results
16:08 sjn joined #perl6
16:08 masak someone reported a couple of days ago that there are no search results after some particular date.
16:08 [Coke] masak: http://irclog.perlgeek.de/perl6/search/?nick=masak&amp;q= - no results.
16:08 [Coke] so, looks like just no results at this point.
16:12 ssutch joined #perl6
16:13 [Coke] masak: if it's not spec'd and won't be, why are the tests going in roast?
16:16 masak to recognize regressions when they happen.
16:17 FROGGS joined #perl6
16:19 dmol joined #perl6
16:22 btyler joined #perl6
16:28 moritz [Coke]: heh, search for nextwith works
16:28 moritz [Coke]: I can only guess that the stemmer and/or stopword analysis make garbage out of samewith
16:33 moritz masak, [Coke]: fwiw the "no such results after a particular date" bug has been fixed
16:41 masak ok. nice.
16:42 masak "Basically, every use of resumption had represented a failure to keep separate levels of abstraction disjoint." -- https://en.wikipedia.org/wiki/Exception_handling#History_and_rationale
16:42 masak that explains why I've never felt a great need for resumable exceptions.
16:44 census joined #perl6
16:47 moritz and yet we have them in Perl 6
16:48 moritz (and less obvious in Perl 5 too)
16:49 masak it'd be interesting to see a use case for them.
16:50 geekosaur I've used something similar to resumable exceptions to implement cooperative threading. of course that's not exactly a flagship use case
16:50 masak no, that's a misuse case :P
16:50 geekosaur more a "stone knives and bearskins"
16:52 spider-mario joined #perl6
16:53 timotimo i'm still kind of bummed that running coroutines cannot be pickled away by rakudo :|
16:53 timotimo er, running coroutines is of course not sensible
16:53 timotimo i meant coroutines that are currently not running
16:53 leont "pickled away"?
16:55 [Coke] saved for later.
16:55 daxim that's why the python serialiser is called pickle
16:55 [Coke] pickling is like... ... ah: from Modula-3: Pkl (or Pickle): Object serialization of any reference types reachable by the garbage collector
16:56 daxim conserved data, hmmmm. p-:
16:57 timotimo that mail didn't reach perl6.users yet, it seems
16:57 colomon joined #perl6
16:58 leont Right
16:58 konundra joined #perl6
16:59 timotimo continuation passing style web frameworks like nagare (python) or seaside (i think? smalltalk) are really amazing to me
17:00 masak haha, Python has *two* built-in exception types dedicated to tabs and indentation. (IndentationError and TabError, the latter subclassing the former)
17:01 timotimo business (or game) logic that has loops and branches can, in my opinion, be super-nicely mapped to coroutines and friends (that is until you need to change the logic and find out you can't patch currently running instances ...)
17:02 raiph joined #perl6
17:03 * moritz loved http://blog.reverberate.org/2012/12/hello-jit-world-joy-of-simple-jits.html
17:06 dmol joined #perl6
17:08 moritz it makes me want to write my own JIT compiler, eventually
17:11 perigrin you're sick ... and infectious ... cause it maks me want to do the same.
17:11 masak yes, that looks pretty interesting.
17:11 geekosaur eventually you learn to ignore these little bouts of self-abuse :)
17:14 geekosaur like every so often I get fed up with mail clients and think about writing a decent one, then I remember how well that worked last time I did it (and things are much worse now...)
17:15 leont Yeah, what perigrin says :-)
17:19 FROGGS joined #perl6
17:20 simonl13 joined #perl6
17:30 arnsholt geekosaur: I have that same issue with make. It's a horrible tool, but all the options are worse
17:41 sqirrel joined #perl6
17:43 sjn joined #perl6
17:45 masak arnsholt: https://twitter.com/mccv/status/350037001384361984
17:48 leont arnsholt: the general concept behind make can be implemented in a few dozen lines of code
17:48 leont In fact, I was considering doing just that as my first perl 6 program next Sunday
17:48 moritz I like the answer "lego"
17:50 nwc10 me too :-)
17:51 slava I hate to bug everyone, but in grammars, when I use token, do I need to do something special to match across multiple lines?
17:52 moritz slava: no, you don't
17:52 timotimo i thought tup was kind of cute
17:52 slava moritz: thanks
17:52 moritz r: say "a\nb" ~~ /.+/
17:52 camelia rakudo 93ca16: OUTPUT«「a␤b」␤␤»
17:52 slava sweet
17:52 moritz r: say "a\nb" ~~ /\w\s\w/
17:52 camelia rakudo 93ca16: OUTPUT«「a␤b」␤␤»
17:53 masak leont: you might be interested in http://cr.yp.to/redo.html if you haven't seen it already
17:53 leont Yeah, I'm vaguely familiar with it
17:54 leont But what I really want right now is a make with subs instead of commands
17:54 timotimo tup has pretty excellent performance: http://gittup.org/tup/tup_vs_mordor.html
18:00 btyler joined #perl6
18:02 arnsholt masak: That about sums it up =D
18:04 crab2313 joined #perl6
18:10 ajr joined #perl6
18:15 FROGGS timotimo: where can I find the timing tests that it runs?
18:15 berekuk joined #perl6
18:16 timotimo do you mean microbenchmarks.pl?
18:16 FROGGS ahh yes
18:21 bluescreen10 joined #perl6
18:22 cooper joined #perl6
18:22 cooper joined #perl6
18:30 simonl13 joined #perl6
18:30 stevan_ joined #perl6
18:30 berekuk joined #perl6
18:38 raiph joined #perl6
18:53 dalek nqp: d23d885 | jonathan++ | src/vm/jvm/ (2 files):
18:53 dalek nqp: Add a nqp::jvmisnull op.
18:53 dalek nqp: review: https://github.com/perl6/nqp/commit/d23d88587c
18:58 diakopter leont: just make a super-simple subset of miniperl that builds without make...
18:58 diakopter "just"
18:59 diakopter wait, are you trying to eliminate the make dependency entirely?
18:59 diakopter what's the question?
19:06 dalek rakudo/nom: 42758c1 | jonathan++ | src/vm/jvm/core/Threading.pm:
19:06 dalek rakudo/nom: Add a basic Channel implementation.
19:06 dalek rakudo/nom:
19:06 dalek rakudo/nom: Same idea as channels from Go. Also add a select primitive that can
19:06 dalek rakudo/nom: take a list of pairs of channels and code objects, and invokes the
19:06 dalek rakudo/nom: code object for whichever channel has a value first. The select
19:06 dalek rakudo/nom: implementation is an utter hack, but it will let us play with the
19:06 dalek rakudo/nom: idea and API.
19:06 dalek rakudo/nom:
19:06 dalek rakudo/nom: Both await and select can be used with promises, so you could use
19:06 dalek rakudo/nom: a Promise.sleep(2) along with a channel in a select to time out if
19:06 dalek rakudo/nom: the channel does not have a value within two seconds.
19:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42758c1db5
19:08 hashref joined #perl6
19:22 crab2313 joined #perl6
19:31 sqirrel joined #perl6
19:35 Rotwang joined #perl6
19:43 lizmat I guess diakopter will need to see leont's talk at YAPC::EU
19:43 * masak just tried the motivating example with the horrible graph in http://swtch.com/~rsc/regexp/regexp1.html
19:44 lizmat [Coke]: wrt ENOSPEC of "samewith": I found out the hard way that people react better to code being implemented than specs being written
19:44 masak in Perl 5.14.2, it takes no time at all. `time` says 0m0.008s real time. which is nothing at all.
19:44 lizmat so nowadays I lean towards implementing first, rather than speccing
19:44 masak lizmat++ # I think that's a good idea
19:45 masak spec backed by at least one implementation is likely to have better survivability, too.
19:45 masak less slushy from the start.
19:46 BabsSeed joined #perl6
19:46 thou rn: my $r = "tire"; $r .= subst(rx/(t)? ire/, { $0 ?? "flag" !! "vinegar" }); $r.say;
19:46 camelia niecza v24-88-g1f87209: OUTPUT«flag␤»
19:46 camelia ..rakudo 42758c: OUTPUT«vinegar␤»
19:46 BabsSeed Hi all
19:46 thou rn: my $r = "tire"; $r = $r.subst(rx/(t)? ire/, { $0 ?? "flag" !! "vinegar" }); $r.say;
19:46 camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«flag␤»
19:47 thou o/
19:47 tadzik jnthn: what would you say about a Go-like select(), which runs a default coderef when no awaitables are ready?
19:48 masak hi BabsSeed
19:49 BabsSeed Hi masak
19:49 BabsSeed I'm new here, have been using perl5 for a long time though
19:49 thou ^ is that a known rakudo bug with $r .= subst() not passing $/ (it takes $/ from caller's scope instead of passing $/ to closure), vs. correct behavior when $r = $r.subst()?
19:49 masak thou: no, I think it's new. very weird.
19:50 masak thou: want to submit it, or shall I?
19:50 lizmat jnthn is detraining atm
19:50 masak BabsSeed: welcome to here. :)
19:50 * masak .oO( and tomorrow jnthn will be training... others )
19:50 colomon Isn't subst supposed to set $/ in the caller's scope?  (Mind you, I disagree strongly with that behavior…)
19:51 lizmat on that note, I would like to announce that in cooperation with Edument, we have found jnthn willing to give a 2 day workshop about Rakudo and NQP internals
19:51 lizmat Provisional program at https://gist.github.com/lizmat/6177720
19:51 masak \o/
19:51 BabsSeed Is there any MVC framework for web for perl6 yet?
19:51 masak Edument++ lizmat++
19:52 masak BabsSeed: no, only slightly smaller-scale things, like Bailador.
19:52 lizmat The workshop will be given somewhere in Europe late August / September 2013
19:52 tadzik I'd be very interested in atteding that
19:53 PerlJam BabsSeed: Bailador
19:53 thou masak: I'll submit, thanks
19:53 colomon video it and post?
19:53 diakopter stream it
19:53 PerlJam BabsSeed: Web::App::MVC
19:53 masak PerlJam: which is not an MVC framework.
19:53 PerlJam masak: it can be used as such :)
19:53 masak Bailador, that is.
19:53 colomon which is to say, I'd love to see it, but there's no way I'm making it to Europe in the next month.
19:54 lizmat Suggestions for place and time are welcome!
19:54 masak PerlJam: sure, by *building* an MVC framework on top of it!
19:54 lizmat Well, maybe we should have it in Iceland ?
19:54 lizmat that would still be Europe ?
19:54 thou There's Plackdo, I never see it mentioned.
19:55 berekuk joined #perl6
19:55 tadzik lizmat: sounds cool :0
19:55 lizmat I might add that attendance to this workshop is free, but only available on a first come, first served basis
19:55 tadzik so if your flight is late then you're not attending? :P
19:56 lizmat eh, no, not like that
19:56 lizmat and anyway, you probably want to get there the night before: the days are going to be packed and very intensive, I would gather
19:56 masak aye -- I've seen the abstract.
19:56 diakopter intense, like camping.
19:56 masak both days are packed with nice stuff.
19:56 BabsSeed PerlJam: Thanks, will look at those
19:57 diakopter intense, like camping intense.
19:57 BabsSeed I'm willing to build on top of something, not looking for a Catalyst replacement :P
19:57 masak diakopter: *groan*
19:57 diakopter groan, like a flower.
19:57 diakopter win++
19:58 BabsSeed lizmat: My vote goes for NL or BE
19:58 BabsSeed :D
19:58 diakopter prereq "A reasonable knowledge of the Perl 6 language" - but.. how can anyone meet that qualification
19:59 lizmat I'll let jnthn clarify that when he's back online  :-)
19:59 PerlJam diakopter: maybe "know enough to be dangerous" qualifies?
19:59 diakopter masak: re horrible graph, that's b/c they implemented that non-backtracking stuff
20:00 masak diakopter: I'm curious when that happened.
20:00 masak curious enough to build a lot of Perl versions and find out, if no-one knows the version offhand.
20:00 masak maybe reading release notes is faster :)
20:00 nwc10 masak: find a fast machine and use Porting/bisect.pl from blead
20:01 masak diakopter: are you saying that all existing knowledge of the Perl 6 language is less-than-reasonable? :P
20:01 diakopter nwc10: first, am I right that it got that capability?
20:01 nwc10 I don't know.
20:01 masak sure seems like it.
20:01 diakopter ok. I'm not certain. I just think I read/heard it
20:01 masak I tried with $N = 1_000 instead of $N = 29, and it's still sickeningly fast.
20:01 diakopter one could also look at the source code.
20:01 moritz OH NOEZ, it seems we lost the module loading traces :(
20:02 masak so there can't be anything exponential in there.
20:02 masak diakopter: oh, good idea ;)
20:02 diakopter oh wait, that's even more less than reasonable..
20:02 diakopter kidding... seriously, I find the p5 source just fine to read.
20:03 diakopter (but I can see why others would complain)
20:03 xenoterracide joined #perl6
20:05 lizmat BabsSeed: does that mean you're willing to participate ?
20:08 * masak .oO( participants will be punished to the fullest extent of the law )
20:09 lizmat well, I don't want too many people to attend: I want jnthn just for myself for 2 days  :-)
20:10 FROGGS *g*
20:13 PerlJam lizmat: feather.perl6.nl <--- meet near feather and Juerd  :)
20:14 lizmat Ok, that's a good idea: I hope Juerd will agree  :)
20:14 lizmat Juerd??
20:17 timotimo hmm. my parents live rather close to the .nl border ...
20:19 lizmat timotimo: would that make it easier for you to attend?
20:19 bruges_ joined #perl6
20:22 timotimo depends strongly on the date. after exams or during?
20:23 lizmat so what would be good for you?
20:25 masak ok, I think I found the release: 5.10.0 -- http://perldoc.perl.org/5.10.0/perldelta.html#Regular-expressions-optimisations
20:25 timotimo don't make it all up to me :)
20:25 masak that "Trie optimizations" thing sounds very much like it.
20:25 lizmat Q to people living in the US: would it make sense to have the workshop in Iceland ?
20:25 masak I'm not 100% sure, though.
20:26 dalek rakudo-star-daily: 585bf62 | coke++ | log/ (5 files):
20:26 dalek rakudo-star-daily: today (automated commit)
20:26 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/585bf6257a
20:27 PerlJam masak: ask demerphq on #p5p.  I think he's the guy who did it.
20:27 notjack joined #perl6
20:27 dalek perl6-roast-data: 9bb2131 | coke++ | / (3 files):
20:27 dalek perl6-roast-data: today (automated commit)
20:27 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/9bb2131d94
20:27 [Coke] huh. no changes in the daily run for either rakudo since yesterday. I thought I broke something.
20:27 PerlJam oh, yes.  It even says so on that page you mentioned.
20:28 berekuk joined #perl6
20:28 [Coke] do we have a document in rakudo anywhere that marks things experimental?
20:28 Juerd lizmat: lizmat> Ok, that's a good idea: I hope Juerd will agree  :)   <-- To what?
20:29 lizmat to have https://gist.github.com/lizmat/6177720 near feather ?
20:29 BenGoldberg joined #perl6
20:30 masak what would be the advantage of having it near feather?
20:30 lizmat warm feelings ?
20:30 lizmat :-)
20:30 BabsSeed lizmat: I'd be tempted if it was close enough yeah
20:31 BabsSeed I really want to get into perl6 in the near future
20:31 lizmat into perl6 as in contributing to its development ?
20:31 timotimo don't have time to check my calendar at the moment
20:31 lizmat or into perl6 as a user
20:31 lizmat ?
20:31 masak here's a Markdown version of the same abstract: https://gist.github.com/jnthn/696e9cbaa60fa86b8952
20:32 BabsSeed lizmat: Module author/docs contributor probably
20:32 lizmat documenting NQP / QAST would be very beneficial indeed
20:32 lizmat :-)
20:32 Juerd lizmat: Feather will soon be in a data centre... But currently it's still in Dordrecht.
20:32 Juerd lizmat: How many participants are expected?
20:32 masak this course is for more-than-module-authors, though.
20:33 lizmat max 12 people
20:33 BabsSeed Oh
20:33 masak it's for compiler hackers-to-be.
20:33 [Coke] it's for internals you say?
20:33 lizmat yes
20:34 [Coke] Definitely sounds interesting.
20:34 masak aye, see abstract.
20:34 BabsSeed Not sure I'll be able to commit to core language development, I'd be interested in working on something like Catalyst
20:34 masak https://gist.github.com/jnthn/696e9cbaa60fa86b8952
20:34 lizmat My line of thought was this:
20:34 masak BabsSeed: I'm sure you'll be able to find people here to collaborate with on something like that.
20:34 masak BabsSeed: they may or may not be awake or active right at this moment, though.
20:35 BabsSeed masak: I hope so
20:35 lizmat 1. I'm frustrated by not being able to contribute to rakudo efficiently because of lack of docs/knowledge/background in NQP / QAST, etc
20:35 Juerd lizmat: Our new office has a meeting room and some desks :). And it's really close to where feather currently is. Also, feather will probably move to our new office eventually.
20:35 lizmat 2. I want jnthn to teach me this in a 2 day workshop
20:35 Juerd lizmat: There are two hotel nearby.
20:35 Juerd s/hotel/hotels/
20:35 lizmat 3. then why keep it just for me?
20:36 slava where is this and when?
20:36 lizmat well, the when is late August / September
20:36 BabsSeed lizmat: I have OCD, documentation is what I do :P
20:36 lizmat trying to figure out a good period for maximum attendance
20:37 lizmat personally, I can be there at most any time in August /Sep
20:37 lizmat BabsSeed++
20:37 lizmat jnthn is more restricted
20:37 [Coke] I would vote for september, if I could figure out how to get there.
20:37 Juerd lizmat: A weekend? Work days?
20:37 lizmat with other $dayjob work
20:37 BabsSeed You probably want at least 21 days if its eekdays
20:37 [Coke] I assume you're trolling for attendees at the moment? ;)
20:37 lizmat Juerd: don't known yet
20:38 BabsSeed so people can get vacation :P
20:38 BabsSeed weekdays*
20:38 lizmat [Coke]: I wouldn't call it trolling
20:38 Juerd lizmat: If it's a weekend I can accommodate workspace, but during weekdays not really.
20:38 lizmat Juerd: thank you, so noted!
20:39 Juerd Also, the office building is still mostly empty so if small groups like to have a stand-up meeting in a secluded space, that's entirely possible.
20:39 lizmat I'm not sure how jnthn would feel sacrificing a weekend
20:39 lizmat *about
20:39 Juerd lizmat: Well, the space is also available during week days but then we'd need to rent tables and chairs... That's annoying.
20:39 * jnthn can work a weekend and have a couple of weekdays off :)
20:40 jnthn Also, finally made it to Stockholm
20:40 * ingy waves o/
20:40 jnthn Swedes. They really can't run railways.
20:40 BabsSeed They cant run much
20:40 BabsSeed :(
20:40 BabsSeed Except tax collection
20:40 jnthn :P
20:40 Juerd Oh, and then there's RevSpace in The Hague. It's available 24/7 (but not for sleeping) but not quite close to Feather :)
20:40 lizmat ok, so doing it in a weekend is definitely in
20:40 * geekosaur suspects they do railways better than the US does...
20:41 jnthn geekosaur: Yes, but Sweden is in *Europe*. :P
20:42 lizmat jnthn: how about Sep 14/15 ?
20:43 geekosaur jnthn: 'zactly. "can't run" is relative :p
20:44 [Coke] tickets to iceland are pricy.
20:44 jnthn Wait, we're going to run the training in Iceland?!
20:44 lizmat more expensive than say to Frankfurt or so?
20:45 jnthn Or did I get the wires crossed? :)
20:45 lizmat jnthn: it was an idea I was toying with, to get more US based people involved ?
20:45 Vlavv joined #perl6
20:45 [Coke] lizmat: ah, no. about the same. cheaper from JFK.
20:46 jnthn lizmat: It's as easy as most places in Europe for me, or probably easier than many
20:46 jnthn lizmat: I've got direct CPH - Rejkjavik flights
20:46 lizmat I figured as much :-)
20:47 jnthn mmmm...Iceland. :)
20:47 lizmat but for US people it doesn't seem to matter much, [Coke] ?
20:47 lizmat jnthn: is Iceland a + or - for you?
20:47 [Coke] it's about 100-200 cheaper (depending) when leaving from a more major airport, with no layovers.
20:48 jnthn lizmat: It's no harder travel wise and I adore the place :)
20:48 ggoebel joined #perl6
20:48 jnthn lizmat: The hardest thing will be dragging myself away after the course. :)
20:48 jnthn lizmat: So a + I guess
20:49 jnthn There's nothing I have to get to by the 16th so no conflict that side fo the dates
20:49 jnthn 12th/13th there's a currently unbooked but scheduled-if-anybody-books-it course deliv.
20:50 jnthn But an actual booked delivery will always beat a scheduled-but-unbooked one of course
20:50 jnthn So very likely the dates can work.
20:51 arnsholt Venue-wise, I could probably get space at the Uni. of Oslo over a week-end for a hackathon
20:51 lizmat ok, so let's assume the dates will be 14/15 September
20:52 arnsholt Not as awesome as Iceland though =)
20:52 lizmat arnsholt: thank you, noted
20:53 lizmat well, Iceland would be nice, but if the tickets there are too expensive for people to get there
20:53 lizmat and in Iceland I don't have any local contacts
20:53 jnthn Aye...it's only a good idea if it is a net win on participatability
20:54 [Coke] iceland shaves a few hundred off the price, but I still won't be able to make it, so don't count me in.
20:54 lizmat [Coke]: are the dates a problem?
20:55 [Coke] lizmat: nope. september looks pretty open.
20:56 masak rn: class X {}; my $y = set X.new; say $y.pick.^name
20:56 camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«Str␤»
20:56 masak sets still only take Str elements, eh?
20:56 lizmat [Coke]: so the price would be a problem?
20:56 lizmat *ticket price
21:00 [Coke] lizmat: ay.
21:11 * moritz would be interested in attending, and of course would love something not too far away from .de
21:12 * timotimo isn't really the flying type
21:12 arnsholt If we do end up in Oslo, you can take the ferry from Kiel =)
21:12 * moritz usually prefers rails too
21:12 lizmat I'm also considering Amsterdam, Frankfurt or Paris, because of their big hubs and good train connections
21:13 moritz Frankfurt!
21:13 arnsholt Yeah, those are easy to get to
21:13 timotimo frankfurt would be very good for me personally
21:13 timotimo and cheap
21:13 lizmat I see also for moritz
21:13 * jnthn can do Frankfurt by train or plane :)
21:14 lizmat I guess I should contact the people of Frankfurt.pm
21:15 jnthn .oO( Can we get a Perl 6 thing onto a schedule in Frankfurt, though? :P )
21:15 jlaire joined #perl6
21:15 leont Frankfurt is like the least interesting hub in Europe, which is either a good or a bad thing ;-)
21:15 masak jnthn: and will it be sweltering hot there? hm, probably.
21:15 lizmat last year's heat in Frankfurt was extraordinary
21:16 lizmat I wouldn't expect it to be much hotter than 25 degrees max there
21:16 jnthn Yes, I would prefer Iceland temperatures :P
21:16 moritz and it was earlier in the year too, no?
21:16 moritz August vs. September
21:17 lizmat https://weatherspark.com/averages/28638/9/Frankfurt-am-Main-Hessen-Germany
21:17 * moritz has http://de.wikipedia.org/wiki/Frankfurt_am_Main#Klima open
21:17 lizmat more like 20 around that date
21:17 * [Coke] checks with the wife, and anything in that date range is fine. whee.
21:19 lizmat ok, I guess we need a venue in Frankfurt then
21:19 moritz woah. A non-zero chance to meet [Coke]++ in person
21:19 simonl13 joined #perl6
21:20 simonl13 left #perl6
21:20 moritz but now: sleep.
21:20 lizmat gnight moritz!
21:21 masak dream of non-zero chances and around-20 temperatures!
21:23 lizmat jnthn: if getting a venue in Frankfurt for 12/13 would be easier, would that also work for you?
21:23 jnthn lizmat: That could be less easy
21:23 lizmat ok, so 14/15 weekend would be best for you
21:23 * [Coke] commutes
21:23 jnthn lizmat: I seem to have Mon-Wed that week booked, so it'd depend on getting an evening flight.
21:23 lizmat and I guess for most participants ?
21:23 jnthn lizmat: 16th/17th is open.
21:23 lizmat ah, good point
21:24 lizmat ok, so either 14/15 or 16/17
21:24 lizmat Sep
21:24 jnthn yeah
21:25 lizmat I'll post a mail on Frankfurt.pm to see if they can help us find a venue for those dates
21:25 jnthn 9th-11th is marked up as Goteborg, which I dunno if I can get an evening flight to Frankfurt from.
21:26 masak probably yes, but better check.
21:27 berekuk joined #perl6
21:32 stevan_ joined #perl6
21:32 stevan_ joined #perl6
21:34 lizmat mail sent to Frankfurt.pm
21:37 lizmat tadzik: would 14/15 work for you?
21:43 fridim__ joined #perl6
21:48 lizmat gnight #perl6!   more on RaNIW tomorrow
21:48 lizmat Rakudo and NQP Internals Workshop, 14/15 Sep 2013, Frankfurt, Germany
21:49 lizmat sleep&
22:10 dorlamm joined #perl6
22:11 franek joined #perl6
22:13 jnthn 'night, #perl6
22:27 masak 'night, #perl6
22:38 skids joined #perl6
23:14 raiph joined #perl6
23:23 Util Ulti: I just wrote the "Perl5 -> Perl6 regular expression translator" that you asked about:
23:23 Util https://raw.github.com/Util/Blue_Tiger/master/translate_regex.pl
23:24 Util It does not handle every bit of perlre yet, but I think it translates all of "the database of curated regex".
23:24 Util Just let me know if I missed anything that you have immediate need of.
23:25 Util ( Earlier conversation: http://irclog.perlgeek.de/perl6/2013-08-07#i_7420578 )
23:31 FROGGS joined #perl6
23:33 zwut00 left #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo