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