»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:01
woosley joined
|
|||
Tene | tadzik: I still care about language interop on parrot. | 00:28 | |
00:29
ponbiki left
00:31
dark_x joined
00:37
skangas left
00:40
beppu left
00:41
beppu joined
00:42
raiph joined,
skangas joined
00:45
raiph left
01:00
dual joined
01:07
dark_x left
01:09
REPLeffect left
01:14
Chillance left
01:24
REPLeffect joined
|
|||
colomon | sorear: errr, what sqrt function did you change? | 01:24 | |
ah, may not have properly gotten my niecza updated | 01:25 | ||
01:27
whiteknight left,
Tedd1 left
01:28
Tedd1 joined
|
|||
colomon | sorear: ah, nothing like removing a line of code to get closer to the spec. :) | 01:37 | |
01:39
woosley left
|
|||
colomon | niecza: say 0.sqrt | 02:00 | |
p6eval | niecza v9-8-gd3b0031: OUTPUT«0+0i» | ||
colomon | yeah, that's just silly. :) | ||
as is: is sqrt(-0/1), -0/1 | 02:03 | ||
dalek | ast: 8d1cec6 | (Solomon Foster)++ | S32-num/sqrt.t: Result of a sqrt should never be a Rat. |
02:10 | |
02:17
isBEKaml left
|
|||
colomon | nom: say -0/1 | 02:31 | |
rakudo: say -0/1 | 02:32 | ||
p6eval | rakudo 5aac38: OUTPUT«0» | ||
colomon | so is sqrt(-0/1), -0/1 was extra silly, because we don't actually support -0/1 as a Rat distinct from 0/1 | 02:33 | |
of course, that probably means I just broke sqrt.t on rakudo. | |||
dalek | ast: a25a620 | (Solomon Foster)++ | S32-num/sqrt.t: sqrt(-0/1) was a silly test in the first place, because -0/1 == 0/1. Therefore, this test never tested what its author thought it was testing, and I'm deleting it. |
02:37 | |
02:40
envi joined
|
|||
colomon | BTW, niecza runs sin.t in 3.2 sec on my MBP, including fudging and niecza start up time | 02:46 | |
02:46
diegoviola left
02:51
plobsing left
03:05
abercrombie joined
03:06
colomon_ joined,
colomon left,
colomon_ is now known as colomon
03:08
JimmyZ joined
03:09
colomon left,
colomon joined
03:10
woosley joined
03:13
colomon left
03:24
agentzh joined
03:27
Su-Shee left
03:29
Su-Shee joined
03:42
plobsing joined
03:47
agentzh left
04:03
JimmyZ left
04:05
jaldhar left,
agentzh joined
04:10
Limbic_Region left
04:19
abercrombie left
|
|||
TimToady | perl6: say sqrt(16/9).perl | 04:22 | |
p6eval | pugs: OUTPUT«1.3333333333333333» | ||
..rakudo 5aac38, niecza v9-8-gd3b0031: OUTPUT«1.33333333333333» | |||
04:22
jaldhar joined
|
|||
TimToady | 4/3 would be more exact :) | 04:23 | |
sorear | TimToady: the rule we're using is that sqrt always returns a Num, except when it returns a Complex | 04:27 | |
we're collectively operating under the assumption that identifying perfect squares is not worth it | 04:28 | ||
TimToady | well, it's practical, but I'm just pointing out there's arguments for Rat too | ||
04:28
cognominal left
04:29
cognominal joined,
JimmyZ joined
04:36
isBEKaml joined
|
|||
isBEKaml | b: say 0.sqrt | 04:41 | |
p6eval | b 1b7dd1: OUTPUT«0» | ||
isBEKaml | perl6: say 0.sqrt | ||
p6eval | niecza v9-8-gd3b0031: OUTPUT«0+0i» | ||
..pugs, rakudo 5aac38: OUTPUT«0» | |||
isBEKaml | niecza seems to be extra careful about correctness. niecza++ | 04:42 | |
niecza: say (-1).sqrt | |||
p6eval | niecza v9-8-gd3b0031: OUTPUT«0+1i» | ||
TimToady | except sqrt isn't supposed to promote Num to Complex | ||
isBEKaml | Well, I was just saying that sqrt of 0 is meaningless and falls under Complex domains. | 04:43 | |
TimToady: btw, what's the base type for all numbers? Isn't that Num? | 04:45 | ||
sorear | it seems to me that that case is a bug | ||
0.sqrt is 0 | |||
TimToady | isBEKaml: define "base" and "type" first :) | 04:46 | |
but it certainly isn't Num | |||
isBEKaml | TimToady: all numbers are X, Int and Real are subclasses of X. | ||
TimToady | Numeric | ||
so's Complex | |||
but Numeric isn't a class, of course | 04:47 | ||
sorear | isBEKaml: strictly speaking, Real is a role, not a class | ||
isBEKaml: it has no superclassers | |||
Numeric is the "tag" role for all numeric types | |||
however, Numeric has no semantics of its own; all numeric logic is handled by multisubs in CORE | 04:48 | ||
isBEKaml | ah. I see... So Numeric's just a place holder of sorts? | ||
TimToady | it's a role, and if there's any API that's common to all numbers, it'd be defined there | ||
isBEKaml | that is, without any semantics, enforcing bounds is done by respective types. ? | 04:49 | |
sorear | Numeric exists so you can use it as a type constraint | ||
especially in a MMD context | |||
TimToady | bounds? | ||
isBEKaml | range bouns. | ||
*bounds | |||
TimToady | Complex is not ordered | ||
sorear | multi foo (Numeric $x) { }; multi foo (Str $x) { } | ||
isBEKaml: types are not involved in the range-checking process | 04:50 | ||
isBEKaml: &infix:<+> looks at the result and then decides what kind of object to make | |||
isBEKaml | sorear: oh, I see... I guess I was just confused when I saw Num and Numeric. Sorry, I'm so off base here.. :/ | 04:55 | |
sorear | Num is the class for inexact real numbers | ||
it's expected that on most current systems Num will box a 64-bit IEEE.754 value | 04:56 | ||
isBEKaml | sorear: I see Num.pir defined in builtins and later augmented in src/core using role Real. HOw does Niecza do it? | 04:58 | |
sorear | num is defined as a class in CORE.setting | 04:59 | |
Num I mean | |||
but Num is not what you are after | |||
isBEKaml | sorear: btw, I had long wanted to ask this question about Niecza -- do you have primitive types or are types boxed in there too? | ||
04:59
mattp_ left
|
|||
sorear | in Perl 6, the numeric classes are very passive | 05:00 | |
05:00
mattp_ joined,
sivoais left
|
|||
sorear | isBEKaml: bad question. "boxing" is simply the procedure that allows you to store 1.5 in a variable of type Any; *every* Perl 6 implementation has to do it | 05:01 | |
05:01
sivoais joined
|
|||
sorear | isBEKaml: Niecza does not support primitive types. Yet. | 05:01 | |
however, Rakudo does | |||
rakudo: my int $x; say $x | |||
p6eval | rakudo 5aac38: OUTPUT«57840944» | ||
isBEKaml | niecza: my int $x = 42; my Int $y = 42; | ||
p6eval | niecza v9-8-gd3b0031: OUTPUT«===SORRY!===Malformed my at /tmp/TGQ8IeNevx line 1:------> my ⏏int $x = 42; my Int $y = 42;Parse failed» | ||
sorear | Rakudo's answer is instructive | ||
isBEKaml | sorear: No, I was thinking about how some p6 implementation of numbers on the JVM would look like. It had to have numbers "boxed" into their respective classes than primitives on the jvm.(Integer, not int. Double, not double) That's what I'm referring to. | 05:04 | |
s/numbers/numeric types/ | 05:05 | ||
sorear | isBEKaml: ah. in that case the answer is probably "yes". $x = 2 + 2; allocates a single long-lived object as far as the CLR GC is concerned | 05:06 | |
it allocates an object of type Niecza.BoxObject<int> with layout struct { MonoObject header; STable* sTable; MonoArray* extend; int value; } | 05:07 | ||
isBEKaml | sorear: sTable and extend are pointers? I didn't know C# had pointers! | 05:08 | |
sorear: never mind. first link in google. :) | 05:10 | ||
05:10
masonkramer left
|
|||
sorear | isBEKaml: the layout sample was C | 05:11 | |
isBEKaml: in C#, it looks like: class BoxObject<T> { STable mo; object[] extend; T value; } | |||
isBEKaml | sorear: msdn.microsoft.com/en-us/library/y3...80%29.aspx | ||
sorear | isBEKaml: MonoObject and MonoArray are types defined in Mono :p | ||
05:11
natureboy left
|
|||
sorear | isBEKaml: so? | 05:12 | |
I know C# has pointers. I just wasn't using C# there. | |||
isBEKaml | sorear: I knew it had to be generic enough. :P | 05:13 | |
sorear | ... you must have touched a button. Sorry, that responce was uncalled for. | ||
isBEKaml | sorry, I didn't mean to be offensive. | 05:20 | |
05:27
Sarten-X left,
isBEKaml left
05:34
woosley left
|
|||
sorear | oops, I scared them off | 05:35 | |
05:37
Sarten-X joined
05:40
wooden left
05:44
isBEKaml joined,
sivoais left
05:49
xinming joined
05:50
sivoais joined,
TiMBuS left
05:51
TiMBuS joined
05:52
xinming_ left
05:56
sivoais left
06:02
sivoais joined
|
|||
mberends | fwiw, fastest current nom test execution times: 9 microseconds on a 2.67GHz i7 for S02-builtin_data_types/num.rakudo test 58, S02-literals/radix.rakudo tests 7 and 24 (on Debian 64 bit) | 06:05 | |
many more at 10 and 11 microseconds, it's down to noise at that level | 06:06 | ||
sorear: are you interested in measuring Niecza per-test execution times? It involves some instrumentation in Test.pm and a harness such as rakudo/tools/test_summary.pl. | 06:09 | ||
sorear | mberends: the evidence I have so far supports a theory that Niecza's per-test execution times are dominated by Niecza per se's load time | 06:12 | |
mberends | sorear: yes, I think so too | ||
sorear | mberends: how are you measuring microsecond timing? I guess you're not measuring the entire process time | ||
ah. Test.pm instrumentation | 06:13 | ||
mberends | it's hires wall clock time before and after the test | ||
sorear | I'd be very suprised if Rakudo can parse "use Test;" in less than 100 microseconds | ||
mberends | 'use Test;' is not being measured. The timestamps are taken by ok(), is() etc | 06:14 | |
I mean per-test times, not per-script times | 06:15 | ||
sorear | Oh | 06:16 | |
mberends | I suspect that Niecza executes some tests in nanoseconds, less than 1 microsecond | ||
sorear | doubtful | 06:17 | |
Niecza takes a significant fraction of a microsecond to call a function with 0 arguments | |||
06:18
wamba joined
|
|||
sorear | and ok() is 3 calls currently | 06:18 | |
mberends | I see | ||
sorear | make that 8 or so, I'd forgotten how much work my ok() does | ||
mberends | hmm | 06:19 | |
sorear | there's plenty of room to optimize Niecza's Test.pm | ||
mberends | I plan to measure an empty test as well, to establish a base time that could be subtracted from other test times. | 06:20 | |
sorear | but, uh, when the parser takes around 10000µs per line, there's not much point | ||
actually more like 7500 now, and it'll be even lower for you, but still »1 | 06:21 | ||
mberends | startup time dominates some perl applications, execution time others | ||
sorear | or is that >>1 | ||
(I arrive at that figure by dividing 45 seconds by 6000 lines for STD.pm6) | |||
mberends | back to my question, are you interested, considering that it would affect Test.pm? | 06:25 | |
sorear | Not really | 06:26 | |
mberends | ok, then I'll not pursue it | ||
06:40
isBEKaml left
06:43
wamba left
06:48
jamtech joined
06:51
wamba joined
07:04
phenny left,
jfried left
07:05
jfried joined
|
|||
dalek | ecza: d637b5c | sorear++ | lib/ (2 files): First draft of new MMD kernel |
07:42 | |
tadzik | Tene: (language interop) sorry, I seemed to recall you stopped working on it because no one else cared | 07:48 | |
07:48
wamba left
|
|||
sorear | tadzik: ey cares but does not currently work | 07:49 | |
tadzik | understood | 07:50 | |
07:51
wamba joined
|
|||
sorear | I wish I had looked in the C++ spec *first*. not only does it use the same core overloading algorithm as C#, but it gives a linear time no-precalculation algorithm in a footnote | 07:53 | |
sorear out | 07:54 | ||
08:11
jamtech left
08:13
wamba left,
wamba joined
|
|||
Tene | tadzik: that's approximately correct | 08:15 | |
08:24
wamba left
08:27
wamba joined
08:32
agentzh left
08:38
wamba left,
wamba joined
08:53
mj41 joined
08:54
pmurias joined
09:05
molaf joined
09:09
REPLeffect left
09:10
woosley joined,
orafu left
09:11
orafu joined
09:14
masak joined
|
|||
masak | top o' the morning to you, #perl6. | 09:14 | |
tadzik | oh hai masak | 09:15 | |
masak has been out for a morning run and feels all... fresh and healthy :) | 09:16 | ||
tadzik ate a proper breakfast and feels healthy as well | 09:17 | ||
masak is happy to hear tadzik is eating properly | 09:18 | ||
tadzik | I weighted 69 kgs last time I weighted myself | ||
achievement (almost) unlocked :) | |||
masak | excellent. we'd be loath to see you wither away. ;) | 09:19 | |
tadzik | wow, according to BMI I'm no longer underweight already! | 09:20 | |
masak | \o/ | ||
tadzik | (: | 09:21 | |
bacon++ | |||
09:23
im2ee joined,
REPLeffect joined
|
|||
JimmyZ | \o | 09:24 | |
tadzik | o/ | ||
im2ee | Hello! :) | 09:26 | |
09:28
kaare_ joined
|
|||
daniel-s | hey guys | 09:29 | |
are there really smart people around? | |||
daniel-s needs advice | |||
tadzik | everyone is too humble to answer, you better just ask away | 09:32 | |
masak | there are really smart people in here. | 09:34 | |
09:38
wamba left
09:40
MayDaniel joined
09:43
MayDaniel left
09:53
xinming left
|
|||
masak | rakudo: enum Empty <>; say "alive" | 09:57 | |
p6eval | rakudo 5aac38: OUTPUT«===SORRY!===Unsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty list at line 1, near "<>; say \"a"» | ||
masak | rakudo: enum Empty (); say "alive" | 09:58 | |
p6eval | rakudo 5aac38: OUTPUT«alive» | ||
10:19
sayu joined
10:24
phenny joined
10:25
xinming joined
10:51
Grimnir_ left
10:55
colomon joined,
Grimnir_ joined
|
|||
masak | jnthn++ # parrot-dev message | 10:57 | |
11:05
pmurias left
11:07
pmurias joined
11:23
im2ee left
11:24
im2ee joined
|
|||
TiMBuS | daniel-s, always ask. never ask to ask | 11:34 | |
masak | ...mostly because it wastes time, not because we'll like you less (we won't) ;) | 11:35 | |
tadzik | I had a physics teacher who used to say "the one who asks is stupid, but the one who doesn't remains stupid" | 11:36 | |
masak | reminds me of the South Park teacher who says "there aren't any stupid questions, only stupid pupils". :P | ||
TiMBuS | i thought of that too | 11:37 | |
hah | |||
im2ee | How to get index of some value in an array? :) | 11:38 | |
E.g. i have ('a', 'b', 'c') array, and i want to get index of 'c'. :) | |||
masak | tadzik: Swedish students are very timid when it comes to asking questions. there's something about "standing out" that doesn't resonate well with them. I don't like that mentality, so I often ask lots of little questions. :) | ||
im2ee | Does exist any function in p6 to do this? :) | 11:39 | |
masak | im2ee: I asked that a while back, and got lots of good answers. | ||
im2ee: hold on, I'll get you the backlog linky. | |||
im2ee | masak, ok. :) | ||
tadzik | rakudo: <a b c>.indexof('b').say | ||
p6eval | rakudo 5aac38: OUTPUT«Method 'indexof' not found for invocant of class 'Parcel' in <anon> at /tmp/YbfOT1V_nd:1 in <anon> at /tmp/YbfOT1V_nd:1» | ||
tadzik | maybe I remember wrongly :0 | ||
:) | |||
doesn't our List::Utils have first()? | 11:40 | ||
11:40
agentzh joined
|
|||
tadzik | doesn't seem so | 11:40 | |
masak | rakudo: my @array = <a b c>; my $value = 'c'; say @array.keys.first({ @array[$_] eq $value }) | 11:41 | |
p6eval | rakudo 5aac38: OUTPUT«2» | ||
masak | github.com/masak/crypt/blob/master...pt.pl#L126 | ||
tadzik | oh, nice | ||
im2ee | great :) | 11:42 | |
masak | that's the solution I ended up with, courtesy of moritz++ | ||
im2ee | thanks masak :) | ||
tadzik | rakudo: my @array = <a b c>; my $value = 'c'; say @array.first($value) | ||
p6eval | rakudo 5aac38: OUTPUT«c» | ||
tadzik | ach | ||
masak | :) | ||
mberends | masak: do you have a URL for jnthn's parrot-dev message please? | ||
masak | perhaps .first :key could be made to work... | ||
mberends: sure, sec. | |||
tadzik | mberends: lists.parrot.org/pipermail/parrot-d...06173.html | ||
mberends | ty | 11:43 | |
masak | groups.google.com/group/parrot-dev/...93392e3634 | ||
tadzik | masak: how does crypt like nom? | 11:44 | |
masak | tadzik: don't remember if I tried it. | ||
bet there's still a few pieces missing, though. | |||
masak tries it | |||
jnthn | afternoon, #perl6 | 11:52 | |
masak | jnthn! \o/ | ||
11:53
molaf left
|
|||
tadzik | afterdinner, jnthn | 11:53 | |
11:56
cognominal left,
cognominal joined
|
|||
JimmyZ | is there a method/sub to exchange keys and values? array/hash | 11:58 | |
yath | reverse | 11:59 | |
oh | |||
sorry, thought i was in #perl :) | |||
tadzik | invert I think | ||
rakuod: { a => 1, b => 2}.invert.perl.say | |||
rakudo: { a => 1, b => 2}.invert.perl.say | 12:00 | ||
p6eval | rakudo 5aac38: OUTPUT«(1 => "a", 2 => "b").list» | ||
tadzik | rakudo: <a b c d>.invert.perl.say | ||
p6eval | rakudo 5aac38: OUTPUT«Method 'invert' not found for invocant of class 'Parcel' in <anon> at /tmp/mKvKEqkYjM:1 in <anon> at /tmp/mKvKEqkYjM:1» | ||
tadzik | b: <a b c d>.invert.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«Method 'invert' not found for invocant of class 'Parcel' in main program body at line 22:/tmp/_U_kvH8kVr» | ||
tadzik | b: <a b c d>.hash.invert.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«("b" => "a", "d" => "c")» | ||
tadzik | b: <a b c d>.kv.invert.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«Method 'invert' not found for invocant of class 'List' in main program body at line 22:/tmp/18VAYm0Kcf» | ||
tadzik | then .kv.hash will work :) | 12:01 | |
im2ee | Hmm, what is better for perl6? vim or emacs? :) | ||
Or something else ? | |||
jnthn | Notepad++! | ||
;) | |||
im2ee | jnthn, on windows? :) | 12:02 | |
jnthn | Yes :) | ||
mberends | gedit in Perl 5 mode ;) | ||
im2ee | I'm using gentoo linux. :) | ||
hmm, mistake. I use gentoo linux. :) | |||
mberends | im2ee: both statements were completely correct :) | 12:04 | |
im2ee | ok :) | 12:05 | |
JimmyZ | b: (<a b c d>.kv.hash.invert)['c'].say | ||
p6eval | b 1b7dd1: OUTPUT«a 0» | ||
12:05
whiteknight joined
|
|||
tadzik | im2ee: I use vim | 12:06 | |
don't know about perl6 hilighting for emacs but the one for vim is a bit less than awesome | |||
JimmyZ | rakudo: (<a b c d>.kv.hash.invert.hash)<c>.say | ||
p6eval | rakudo 5aac38: OUTPUT«2» | ||
tadzik | <a b c d>.kv.hash.invert<c>.value.say | 12:07 | |
rakudo: <a b c d>.kv.hash.invert<c>.value.say | |||
p6eval | rakudo 5aac38: OUTPUT«Method 'at_key' not found for invocant of class 'List' in method postcircumfix:<{ }> at src/gen/CORE.setting:927 in <anon> at /tmp/JBayFnUe4Y:1 in <anon> at /tmp/JBayFnUe4Y:1» | ||
tadzik | pff | ||
woosley | rakudo: {a => 1, b => 1}.invert.perl.say | ||
p6eval | rakudo 5aac38: OUTPUT«(1 => "a", 1 => "b").list» | ||
im2ee | tadzik, i use vim too. And i have some problems with syntax highlighting. There are problems with highlighting when i use a function with more than 2 arguments. :) | 12:08 | |
tadzik | im2ee: do you 'setf perl6'? | ||
woosley | {a => 1, b => 1}.invert.keys.perl.say | ||
JimmyZ | b: my @array = <a b c>; my $value = 'c'; @array.invert.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«Method 'invert' not found for invocant of class 'Array' in main program body at line 22:/tmp/KdvB3e1BUO» | ||
tadzik | I went full hardcore and have au BufRead,BufNewFile *.pl,*.pm,*.nqp,*.t set filetype=perl6 in my .vimrc :) | ||
woosley | b: {a => 1, b => 1}.invert.keys.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«(0, 1)» | ||
im2ee | tadzik, yes i do. | ||
tadzik | that's strange | 12:09 | |
JimmyZ | perl6 doesn't have a invert method for array? | ||
woosley | rakudo: {a => 1, b => 1}.invert.keys.perl.say | ||
p6eval | rakudo 5aac38: OUTPUT«(0, 1).list» | ||
tadzik | b: <a b c d>.flip.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«"d c b a"» | ||
woosley | b: {1 => a, 1 => c}.keys.perl.say | 12:10 | |
p6eval | b 1b7dd1: OUTPUT«Could not find sub &a in main program body at line 22:/tmp/Sf_LTIAMNI» | ||
tadzik | b: <a b c b>.kv.hash.invert.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«("a" => "0", "b" => "1", "c" => "2", "b" => "3")» | ||
tadzik | close enough | ||
woosley | b: {1 => 'a', 1 =>'c'}.keys.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«("1")» | ||
JimmyZ | b: (<a b c b>.kv.hash.invert)<c>.say | ||
p6eval | b 1b7dd1: ( no output ) | 12:11 | |
woosley | interesting | ||
JimmyZ | b: (<a b c b>.kv.hash.invert.hash)<c>.say | ||
p6eval | b 1b7dd1: OUTPUT«2» | ||
woosley | b: {a => 1, b => 1}.invert.keys.perl.say | ||
p6eval | b 1b7dd1: OUTPUT«(0, 1)» | ||
im2ee | When i have an array in hash. { "key" => <a b c> }, to push a value to "key" array should i write %hash{"key"}.push(...) or @hash{.... | 12:16 | |
? :) | |||
I know how to do this in p5, but how in p6? :) | |||
masak | im2ee: % | 12:18 | |
12:18
woosley left
|
|||
masak | im2ee: as a rule, the sigil doesn't change in Perl 6 when you want to access an array or hash in different ways. | 12:18 | |
mberends | invert for a search looks terribly inefficient | 12:19 | |
im2ee | masak, ok, but when i use % i get: | ||
masak | rakudo: my %hash = "key" => <a b c>; %hash{"key"}.push("d"); say %hash.perl | 12:20 | |
p6eval | rakudo 5aac38: OUTPUT«Method 'push' not found for invocant of class 'Parcel' in <anon> at /tmp/3T2S0WU1Ad:1 in <anon> at /tmp/3T2S0WU1Ad:1» | ||
masak | rakudo: my %hash = "key" => [<a b c>]; %hash{"key"}.push("d"); say %hash.perl | ||
p6eval | rakudo 5aac38: OUTPUT«("key" => ["a", "b", "c", "d"]).hash» | ||
masak | \o/ | ||
rakudo: my %hash = "key" => [<a b c>]; %hash<key>.push("d"); say %hash.perl | |||
p6eval | rakudo 5aac38: OUTPUT«("key" => ["a", "b", "c", "d"]).hash» | ||
im2ee | Method 'push' not found for invocant of class '' | ||
masak | im2ee: see above :) | ||
12:21
daniel-s left
|
|||
im2ee | so it have to be reference to an array? :) | 12:22 | |
JimmyZ | invert for a search is always simple and useful when it's a small array | ||
JimmyZ would like to see a invert method array too, not only in hash :) | 12:23 | ||
s/array/in array/ | 12:24 | ||
mberends | by the time invert has done its work, first will always have returned the answer. They both iterate, but first is allowed to stop early. | ||
masak | im2ee: <a b c> isn't an array, it's more like a list. lists can't be pushed to. | 12:25 | |
im2ee: [<a b c>] puts the list into an array. | |||
JimmyZ | mberends: hash iterate too? | 12:26 | |
mberends | JimmyZ: yes, iiuc | 12:28 | |
JimmyZ thought %foo<bar> doesn't iterate | 12:29 | ||
mberends | JimmyZ: it doesn't. | 12:30 | |
JimmyZ | mberends: (<a b c b>.invert)<c> only iterate once | 12:31 | |
mberends | JimmyZ: I thought you meant something processing the entire hash, when you wrote 'hash iterate' | ||
JimmyZ want @array.invert method because it's very useful for WEB development ;) | 12:32 | ||
JimmyZ always use that | |||
mberends | JimmyZ: I agree with you there, it's more elegant source code, but costs more CPU cycles and GC pressure to execute. | 12:33 | |
JimmyZ | mberends: only use for some small array, most are less than 30 elements | ||
mberends: it's not issues in WEB because most performance issues are in database :) | 12:36 | ||
mberends | JimmyZ: +1 :) | 12:37 | |
JimmyZ: +2 if you store the inverted array in a hash and re-use it as a cache ;) | 12:38 | ||
JimmyZ | mberends: yeah, cache is important | 12:40 | |
im2ee | masak, so [] is empty array? | 12:49 | |
masak | im2ee: yes. | 12:50 | |
im2ee | Hm, one more question. :) delete() (on array) expected an index or value? | 12:51 | |
masak | an index. | ||
just like hashes. | |||
rakudo: my @a = <a b c>; @a.delete(1); say @a.perl | 12:52 | ||
p6eval | rakudo 5aac38: OUTPUT«Method 'delete' not found for invocant of class 'Array' in <anon> at /tmp/ShJfDidpRg:1 in <anon> at /tmp/ShJfDidpRg:1» | ||
masak | provided Array has .delete. I'm not so sure. | ||
b: my @a = <a b c>; @a.delete(1); say @a.perl | |||
p6eval | b 1b7dd1: OUTPUT«["a", Any, "c"]» | ||
masak | ah. seems it does. | ||
im2ee | Any? So it still is, but without type? | 12:53 | |
b: my @a = <a b c>; @a.delete(1); say $_ for @a; | |||
p6eval | b 1b7dd1: OUTPUT«aAny()c» | ||
im2ee | rakudo: my @a = <a b c>; @a.delete(1); say $_ for @a; | 12:54 | |
p6eval | rakudo 5aac38: OUTPUT«Method 'delete' not found for invocant of class 'Array' in <anon> at /tmp/AHANjcYRq1:1 in <anon> at /tmp/AHANjcYRq1:1» | ||
im2ee | hm, i use rakudo on my machine/ | ||
masak | im2ee: Any here means something like "undef". | ||
im2ee | :) | ||
masak | im2ee: you probably have what's now known as 'b' on your machine. | 12:55 | |
im2ee: bring this odd naming up with pmichaud :P | |||
im2ee: what goes under the name 'rakudo: ' here on the channel is the branch 'nom'. | 12:56 | ||
there's no master branch any more. | |||
12:56
molaf joined
13:01
agentzh left,
agentzh joined
|
|||
im2ee | masak, ok. :) | 13:05 | |
13:06
agentzh left
13:08
im2ee left
13:11
im2ee joined
13:12
im2ee left
13:13
im2ee joined,
LoRe_ left,
LoRe_ joined,
Helios left
13:14
Helios joined
|
|||
tadzik | ooh, wherefore-gc-bug seems not to fail anymore | 13:14 | |
13:19
wamba joined
13:22
agentzh joined
|
|||
im2ee | b: my $s = 'abc def'; say $s.split(/\s/); | 13:30 | |
p6eval | b 1b7dd1: OUTPUT«abcdef» | ||
im2ee | b: my $s = 'abc def'; say $s.split(/\s/).perl; | ||
p6eval | b 1b7dd1: OUTPUT«("abc", "def")» | ||
13:36
pmurias left
13:38
pmurias joined,
donri joined,
daniel-s joined
13:47
pmurias left
13:49
pmurias joined
13:50
whiteknight left
13:51
whiteknight joined
|
|||
tadzik | Method 'WHY' not found for invocant of class 'Perl6::Grammar' | 13:51 | |
okay, the gc bug is not gone at all :P | |||
dalek | Heuristic branch merge: pushed 43 commits to rakudo/nom-buf by tadzik | 13:53 | |
Heuristic branch merge: pushed 215 commits to rakudo/wherefore-gc-bug by tadzik | |||
13:56
wamba left
14:04
whiteknight left
14:29
MayDaniel joined
|
|||
dalek | p: 41e1fd8 | jonathan++ | src/HLL/SerializationContextBuilder.pm: Make check for if we're in precompilation mode cheaper. Saves walking a load of call frames if we're quite deep in the parse, though probably only a small saving overall. |
14:32 | |
p: f8a2d0a | jonathan++ | src/6model/knowhow_bootstrapper.c: Have KnowHOW publish a method cache, which should avoid a bunch of method cache misses and the resulting .^find_method call. |
|||
p: 903eaae | jonathan++ | src/6model/sixmodelobject.c: Avoid a use of Parrot_ext_call, so if we do have to go to .^find_method to locate a method then at least we don't have to do the whole signature string parsing thing. |
|||
14:36
SHODAN joined
|
|||
jnthn | tadzik: Few more tweaks, probably only make a small improvement though. | 14:39 | |
tadzik | will check | 14:40 | |
14:47
pmurias left
14:48
pmurias joined
14:52
abercrombie joined
14:53
kaare_ left,
birdwindupbird joined
15:00
whiteknight joined
15:01
djanatyn left
|
|||
tadzik | jnthn: settings compilation is 3 minutes now | 15:10 | |
make 425.54s user 5.14s system 113% cpu 6:19.45 total | 15:12 | ||
jnthn | tadzik: Whoa, what, that shaved 30 seconds off?! | 15:13 | |
tadzik | 1600* @tadzik | make 456.76s user 6.35s system 110% cpu 6:59.09 total | 15:14 | |
yeah, 31 | |||
jnthn | That's the build overall, not just the setting, I guess? | ||
tadzik | yes | ||
setting itself was 3:20 or 3:30, is about 3:00 | |||
15:15
pmurias left
|
|||
jnthn | OK, so we're now down to about a third of the time we used to spend compiling the setting? :) | 15:15 | |
tadzik | 0.3 to be certain | ||
jnthn | Well, that's nice. :) | 15:16 | |
tadzik | that's pretty awesome :) | ||
jnthn: are the measures actually helping you technically, besides being a morale boost? | |||
jnthn | tadzik: Yes. | ||
tadzik: Well, actually they mostly make me more curious. | |||
tadzik: I'm interested which of the patches contributed most of that. | |||
tadzik | right, yesterday the separation you are working on now added 5 seconds to the build time | ||
15:17
pmurias joined
|
|||
felher | reading masak++ blogpost about -n -p switch i wonder: what is PAST? AST is an abstract syntax tree i guess, whats the 'P' for? | 15:17 | |
jnthn | tadzik: If you have time, maybe try it at 41e1fd8166. | ||
tadzik | jnthn: I'm running the spectest now | 15:18 | |
felher: Parrot I guess | |||
jnthn | tadzik: So we know if the it was the precomp mode check improvement that did it, or the other one. | ||
tadzik | jnthn: I'll try that when I finish the spectest | ||
so in like 20 minutes or more | |||
or I can try it now, if you prefer | 15:19 | ||
felher | tadzik: hm, yeah. that'd make sense, thnx. | ||
jnthn | tadzik: No, in 20 is fine :) | ||
tadzik | ok cool | ||
jnthn | Nice to know spectest time change too, if any. | ||
tadzik | ohbtw | ||
Pod:: nodes are but simple objects, if we added them to the bootstrap, would we be able to document the setting? | |||
I know, I'm going to lenghten the setting compilation just after you shortened it, but... ;) | 15:20 | ||
jnthn | tadzik: Hm, maybe. Lemme think on that one a little. | ||
felher | another question: What execatly is that 'setting' you're benchmarking quite a few times now? Is it 'src/gen/CORE.setting' ? | 15:21 | |
tadzik | felher: yes | ||
felher: it's a Standard Library, in some sense | 15:22 | ||
felher | tadzik: ah, i see. Thnx again. :) | ||
tadzik | you're welcome :)( | ||
15:23
agentzh left,
dual left
|
|||
tadzik | heh, I bought 4 new shiny DVDs to backup my pictures, and apparently I need 5 :/ | 15:24 | |
mberends | the off-by-one error strikes again! ;) | ||
15:25
mj41 left
15:31
pmurias left
15:33
pmurias joined
15:36
benabik_ joined,
benabik left,
benabik_ is now known as benabik
|
|||
felher | Yeah. There are only two hard problems in computer science. Naming, caching and off-by-one errors. | 15:37 | |
jnthn wonders if he'll understand knowhow_bootstrapper.c one day... | |||
15:38
colomon_ joined,
colomon left,
colomon_ is now known as colomon
|
|||
tadzik | make spectest 1465.13s user 72.10s system 98% cpu 25:52.77 total | 15:40 | |
was 1831 yesterday | |||
b: say (1831 - 1465) / 1831 | |||
p6eval | b 1b7dd1: OUTPUT«0.199890770070999» | ||
tadzik | not bad | ||
flussence | bah, I have this really neat script to pull TAP archives off smolder.parrot.org, and the server's down :( | ||
jnthn | tadzik: Before any of the improvements? | ||
tadzik: Or at the end of yesterday? | 15:41 | ||
tadzik | well, wait | ||
15:41
pmurias left
|
|||
tadzik | 2351* tadzik | jnthn: make spectest 1742.80s | 15:41 | |
the oldest measure I have | |||
b: (1742 - 1465) / 1742 | |||
p6eval | b 1b7dd1: ( no output ) | ||
tadzik | b: say (1742 - 1465) / 1742 | ||
p6eval | b 1b7dd1: OUTPUT«0.159012629161883» | ||
jnthn | OK, so we spectest 15% or so faster. | 15:42 | |
tadzik | jnthn: 41e1fd8166 in which repo? | ||
jnthn | nqp | ||
tadzik: I pushed 3 commits to NQP. The were kinda in two "sets" | 15:43 | ||
15:43
pmurias joined
|
|||
jnthn | tadzik: The first one did one thing | 15:43 | |
tadzik: The next two were related. | |||
tadzik | okay | ||
jnthn | tadzik: I'm curious if the first one (the caching of comp mode) or the second one (reducing method cache misses) made the bigger difference. | 15:44 | |
tadzik | checking | ||
jnthn | OK. I'm just about to land some further (hopeful) improvements also. | ||
dalek | p: a29c8a7 | jonathan++ | src/ (3 files): Add a way to mark the method cache as being authoritative. Can't use this in Rakudo's meta-objects yet, but we can in NQP ones. |
15:45 | |
p: c66f98e | jonathan++ | src/how/NQPClassHOW.pm: Mark NQP classes as having an authoritative method cache. |
|||
p: cf40a26 | jonathan++ | src/stage0/ (6 files): Update bootstrap files. |
|||
p: fbcf303 | jonathan++ | src/6model/knowhow_bootstrapper.c: Mark method cache put out by KnowHOW and authoritative, and give the bootstrapped KnowHOW itself a method cache. We now get no method cache misses during the entire NQP build of itself. |
|||
tadzik | wow | 15:46 | |
moritz | that sounds both great and scary | ||
scary because if there are no cache misses, it mean there's a codepath that isn't exercised anymore :-) | 15:47 | ||
jnthn | moritz: Don't worry, Rakudo misses :) | ||
moritz | jnthn: :-) | ||
jnthn | We miss a bunch when compiling the setting. | ||
But all because we call methods on types we didn't define yet | |||
er, didn't compose yet | 15:48 | ||
There was one especially painful case in NQP before those patches | |||
When we parse and reduce a rule, we always call an action method | |||
If there is one...which we determine with can | 15:49 | ||
The rule ws has no action method. | |||
So every time we parsed whitespace, we got the cache miss, then did a nested runloop to make sure the meta-object didn't know better than the cache. | |||
We...parse quite a lot of whitespace when compiling the setting, I guess. ;) | 15:50 | ||
So above set of patches should help a little. | |||
mberends | wow, that must have been very time consuming | ||
jnthn | I rebootstrapped nqp so it builds itself faster thanks to this also :) | 15:52 | |
moritz | how fast or slow is another runloop? | 15:53 | |
jnthn | moritz: It's not something you want to be doing often. | ||
moritz: It's not *that* bad, but it certainly isn't cheap. | |||
It's fine if you're going to do quite a lot of work in it. | |||
tadzik | jnthn: make 455.77s user 5.37s system 111% cpu 6:54.60 total | 15:54 | |
jnthn | tadzik: For...? | ||
tadzik | that's on 41e1fd8 | ||
jnthn | OK, and it was 6:59 before that patch? | ||
tadzik | hmm, don't remember :P | 15:55 | |
will backlog | |||
mberends | another data point, compiling the setting now uses 607MB RAM instead of 787MB a week ago (both on 32 bit Linux) | 15:56 | |
tadzik | 2321 tadzik | make 617.03s user 4.91s system 111% cpu 9:19.77 total | 15:57 | |
I think that was the "before" | |||
jnthn | oh, so that was quite dramatic then. | ||
JimmyZ | is that with whiteknight++'s branch? | 15:58 | |
tadzik | yes | ||
oh, yes, I'm still on whiteknight's branch | |||
jnthn | tadzik: Yeah, me too | ||
That should hopefully get merged soonish :) | |||
mberends: Thanks, that's also great to know. | |||
mberends: It's movement in the right direction, even if it's still high. | 15:59 | ||
mberends | jnthn: :) | ||
jnthn | tadzik: Tests of my latest patches to nqp (still on the whiteknight branch) would be nice to have. | ||
tadzik: Both for make, setting and spectest time ;) | |||
tadzik | jnthn: make goes now | 16:00 | |
jnthn | \o/ | ||
tadzik++ | |||
moritz | jnthn: compiling nom's setting with the new nqp now | ||
whiteknight | it gets merged sooner, the more tests we get on it | ||
whiteknight hints dubtly | |||
subtly* | |||
jnthn | :) | ||
whiteknight: The only downvote I've heard is that it breaks the g++ build. | |||
whiteknight | I haven't had a chance to review that yet | 16:01 | |
whatever it is, I'm sure it's a trivial fix involving a void* cast | |||
jnthn | mls++'s fix for the leak also just went into Parrot | 16:02 | |
16:03
envi left
16:04
mj41 joined
|
|||
tadzik | make 404.89s user 5.60s system 108% cpu 6:18.96 total | 16:05 | |
result not found :( | |||
another 20 seconds it seems | |||
16:05
buubot_backup left
16:07
pmurias left
|
|||
jnthn | tadzik: It's 20 seconds faster with latest nqp? | 16:07 | |
tadzik | jnthn: it seems, yes | ||
jnthn | Nice | ||
What's setting time now? | |||
16:08
pmurias joined
|
|||
tadzik | like 2:50 or so | 16:09 | |
jnthn | Woo, below 3 mins :) | ||
benabik | tadzik must have a faster machine than me. | 16:10 | |
tadzik | benabik: it's some cheap c2d | 16:11 | |
with 2GBs of ram | |||
benabik | tadzik: I have an expensive c2d. :-D | ||
tadzik | :P | ||
jnthn | benabik: Note that we're getting these with whiteknight's is_pmc_ptr branch of Parrot | ||
benabik | jnthn: Ah. Significant difference? | 16:12 | |
tadzik | 167.66s user 1.87s system 99% cpu 2:50.32 total | ||
benabik: yeah, like 25% | |||
the memory usage was just below 60% | |||
(of 2GBs) | |||
JimmyZ | what? 404 down to 167? | 16:13 | |
tadzik | JimmyZ: no, that's just SEttings.pir | 16:14 | |
masak | jnthn++ tadzik++ # optimization exploration | 16:16 | |
JimmyZ | compile setting takes 4:34 here with parrot master | ||
16:17
pmurias left,
kboga joined
16:19
pmurias joined,
buubot_backup joined,
MayDaniel left
|
|||
jnthn should blog about the weekend's improvements :) | 16:20 | ||
felher | jnthn: yeah, that'd be nice | 16:21 | |
JimmyZ | maybe after the branch merge :) | ||
16:21
buubot_backup left
16:22
buubot_backup joined,
MayDaniel joined
|
|||
jnthn | JimmyZ: Yeah, I plan to do dinner and stuff soon. So it won't be for another little bit yet. | 16:23 | |
JimmyZ plans to sleep, it's 0:23am here | |||
good night | 16:24 | ||
jnthn | night o/ | ||
16:24
JimmyZ left
16:25
daniel-s left
|
|||
dalek | kudo/nom: 3654b00 | jonathan++ | tools/build/NQP_REVISION: Bump NQP_REVISION to get various performance improvements. |
16:26 | |
sorear | good * #perl6 | 16:29 | |
masak | top o' the *, sorear | 16:30 | |
16:31
wamba joined
16:33
pmurias left
16:34
pmurias joined
16:35
MayDaniel left
16:37
wamba left
|
|||
sorear | On closer examination, the C++ algorithm hides large constant factors and the algorithm I already have is probably better in realistic cases. | 16:39 | |
mberends | good * sorear | ||
masak | sorear: this change you've made, does it implement the MMD improvement you talked about yesterday? | ||
sorear | masak: no. | ||
masak | oh, ok. | 16:40 | |
sorear | it is a step in that direction | ||
but it is also a step towards CLR interop | |||
masak | sounds good. | 16:44 | |
16:44
pmurias left
|
|||
pmichaud | good morning, #perl6 | 16:45 | |
jnthn | hi, pmichaud | ||
16:46
pmurias joined
|
|||
pmichaud | nice work on the performance improvements :) | 16:46 | |
haven't tried them out here yet, but will be looking very much forward to it. | |||
pmichaud tries them out now. | |||
masak | hi, pmichaud | ||
mberends | good morning pmichaud | ||
jnthn | pmichaud: Note, build Parrot with appropriate branch to see full effect :) | 16:47 | |
pmichaud | is that the whiteknight/... one? | 16:48 | |
moritz | whiteknight/pmc_is_ptr or so | 16:49 | |
jnthn | that one | ||
moritz | jnthn: fwiw nom spectest on top of latest nqp (but parrot master) is PASS here | 16:50 | |
jnthn | moritz: nice to know - thanks | 16:51 | |
16:52
pmurias left,
DarthGandalf left,
DarthGandalf joined
16:53
pmurias joined
|
|||
sorear | hello pmichaud, jnthn | 16:54 | |
16:55
im2ee left
|
|||
jnthn | o/ sorear | 16:55 | |
16:55
thou joined
|
|||
jnthn | shopping & | 16:55 | |
tadzik | hello pmichaud | ||
16:56
im2ee joined
16:58
pmurias left
|
|||
pmichaud | CORE.setting on my system goes from 164s to 118s after the nqp and other improvements (still on parrot master) | 16:59 | |
haven't tried the pmc_is_ptr branch yet... trying that now. | |||
16:59
pmurias joined
|
|||
benabik | Merft. Setting still takes 9:02 for me. Although I think that's several minutes faster than before. | 17:03 | |
pmichaud | yes, I think we need to figure out a way to reduce the size of the PAST tree. | 17:04 | |
sorear | I still think the fact that it's built of hashes is to blame | ||
pmichaud | I don't disagree, but in what ways do you see that as a problem? | 17:05 | |
sorear | hashes have a high memory overhead | ||
if PCT::Nodes were 6model objects, the PAST tree would take up much less space | 17:06 | ||
pmichaud | well, except we'd still need hashes on some of them | ||
17:06
pmurias left
|
|||
pmichaud | but yes, converting PAST to 6model is on our to-do list. | 17:06 | |
sorear | Only some of them, I think/hope | 17:07 | |
pmichaud | correct, only some of them. | ||
latest nom built on pmc_is_ptr branch is 94sec | |||
sorear | nice | ||
moritz | latest nom spectest on whiteknight/pmc_is_ptr merged into master (locally) is PASS | 17:08 | |
sorear wonders how much overhead PCT is taking from PMCProxy, since PCT::Node inherits from parrot;Capture | |||
17:09
pmurias joined
|
|||
pmichaud | so the pmc_is_ptr branch gives a 20% speedup (on top of the 28% speedup given by the other nqp improvements) | 17:09 | |
benabik | Would it be too hard to add an RPA and a hash to PCT::Node to compare with Capture? | ||
benabik would try it himself, but classes start tomorrow... | |||
sorear | pmichaud: I am somewhat suprised that the PAST is bigger than the POST | ||
pmichaud | ...PAST is bigger than POST? | ||
how do you mean? | 17:10 | ||
masak | more sizable. bulkier. inherent of more granditude. | ||
:P | |||
pmichaud | benabik: I think that adding an RPA + hash to PCT::Node means that we end up with inferior runloops instead of PMCProxies. | ||
benabik | pmichaud: … LTA | 17:11 | |
pmichaud | i.e., we end up having to do vtable overrides for hash accesses | ||
and array accesses | |||
pmurias | sorear: how will the mapping between C# and Perl 6 types be specified? | 17:12 | |
sorear: or will the Perl 6 code be exposed to things such as an ArrayList? | |||
sorear | pmurias: currently I expect the latter | ||
C# code doesn't expose Perlish APIs anyway; I expect Perl6-side wrappers for most stuff | 17:13 | ||
in the specific case of ArrayList, because it's mutable, Perl 6 code has to be exposed to it | 17:14 | ||
17:14
REPLeffect left
|
|||
sorear | converting an ArrayList (which is actually just spelled List in C#) to a Perl6 Array would lose aliasing | 17:14 | |
17:18
pmurias left
|
|||
jnthn | nom: say 164 - 94 | 17:18 | |
rakudo: say 164 - 94 | |||
p6eval | rakudo 3654b0: OUTPUT«70» | ||
17:18
pmurias joined
|
|||
jnthn | rakudo: say (164 - 94) / 164 | 17:19 | |
p6eval | rakudo 3654b0: OUTPUT«0.426829268292683» | ||
jnthn | pmichaud: Glad it's a win on your box too. :) | ||
pmurias | sorear: we could wrap ArrayList in a Array like interface which passes on the methods | ||
jnthn | pmichaud: Got stage timings? | ||
pmichaud | Stage parse: 50.694 | ||
Stage past: 0.000 | |||
Stage post: 33.058 | |||
Stage pir: 10.033 | |||
jnthn | pmichaud: That's more pleasing. | 17:20 | |
We're back to parse dominating | |||
pmichaud | yes, but the 'post' number is still a little high | ||
jnthn | Yeah, agree. | ||
pmichaud | anyway, parse should come way down soonish | ||
I actually have some better profiling tools and stuff at my disposal now. | 17:21 | ||
although I guess the pmc_is_ptr branch likely doesn't have the sub-profiler branch stuff in it | |||
jnthn | Yeah, if we can understand where we spend time during the post stage, that'd be a huge help. | ||
pmichaud: No, but I have high hopes for that merging soon. | 17:22 | ||
pmichaud | well, the post stage is likely almost entirely a function of the number of past nodes | ||
but I can find out the number of past nodes now | |||
jnthn | pmichaud: Yeah but that doesn't mean that all past nodes are equal in compilation cost. | ||
17:22
donri left
17:24
pmurias_ joined,
plobsing left,
pmurias left
|
|||
pmurias_ | if i'm having irc problems only the stuff that gets logged on irclog.perlgeek.de actually gets sent to the channel? | 17:25 | |
17:25
pmurias_ is now known as pmurias
|
|||
pmurias | sorear: is there something like CPAN for C#/.NET so i can look at how the common APIs look like? | 17:25 | |
17:27
REPLeffect joined
|
|||
jnthn | pmichaud: Note also that a bunch of those PAST nodes are tied up with the deserialization code, which goes away when we get the serializer. Which I plan to start work on this month. | 17:27 | |
pmichaud | jnthn: yeah, I suspect that'll be a big win. | ||
anyway, sub-100sec CORE.setting compilation time I can live with. | 17:28 | ||
jnthn | pmichaud: I'm not sure how much of the tree that is, but it wouldn't surprise me if it still amounts to between a third and a half o fit. | ||
pmichaud | it's still quite a bit longer than what we had with ng, but parsing updates should get us back in the same ballpark | ||
17:28
plobsing joined
|
|||
pmichaud | I wonder how much faster ng compilation will be with the pmc_is_ptr branch. | 17:29 | |
jnthn | Probably a bit. | ||
17:29
pmurias left
|
|||
jnthn | tadzik++ measured us as having won 15% on spectest time too. | 17:30 | |
pmichaud | that seems likely | ||
I fail S32-trig/pi.t on my box; I'm guessing that's expected though. | 17:31 | ||
17:31
pmurias joined
|
|||
pmichaud | afk, lunch | 17:33 | |
17:36
pmurias left
17:38
pmurias joined
17:40
abercrombie left,
im2ee left
17:41
im2ee joined
17:42
MayDaniel joined
17:45
kboga left
17:47
wamba joined
|
|||
moritz | pmichaud, jnthn: if rakudo is supposed to pass spectest without gmp installed, maybe --gen-parrot should pass along --without-gmp to parrot's Configure.pl? | 17:47 | |
17:48
plobsing left
|
|||
pmichaud | we're not using gmp for anything, right? | 17:51 | |
...but we also need to be passing spectests when it is installed. | |||
moritz | well, I think gmp is the reason that pi.t passes on my system, but fails on yours | 17:52 | |
17:52
MayDaniel left
|
|||
pmichaud | very well could be, yes. | 17:52 | |
but I'm not sure that turning off gmp is the answer. | |||
at least, not as a "we always test against parrot without gmp" sort of thing | 17:53 | ||
afk again | 17:54 | ||
18:01
donri joined
18:03
mj41 left
18:13
kaare_ joined
18:14
avi_ joined
18:15
avi_ left,
pmurias left
18:16
_avi joined
18:17
pmurias joined
18:23
risou is now known as risou_awy
18:24
risou_awy is now known as risou
18:26
sayu left
|
|||
dalek | ast: 177516f | moritz++ | S0 (5 files): rakudo unfudges |
18:33 | |
18:35
Youdaman joined,
Youdaman left
18:41
risou is now known as risou_awy
18:44
mj41 joined,
pmurias left
18:45
cognominal left
18:46
pmurias joined
|
|||
im2ee | Hmm, do you use perl to making websites etc.? | 18:46 | |
moritz | well, in first approximation websites are just text | 18:47 | |
and text is easy to do in perl :-) | |||
for example www.strangelyconsistent.org/ is generated with Perl 6, but I forgot what software exactly masak++ uses | 18:48 | ||
im2ee | moritz, i mean making engines, blogs. generaly web-developing : | 18:49 | |
:) | |||
18:49
Grimnir_ left
|
|||
im2ee | Does it have sense? Or better is make e.g. blog on WordPress? :) | 18:50 | |
moritz | im2ee: rakudo isn't fast enough yet to generate dynamic pages on the fly | 18:51 | |
im2ee | I used to use Django for web programming. But ... it is "heavy" ... | ||
moritz | im2ee: that's why there's not much dynamic web stuff for Perl 6 yet | 18:52 | |
felher | I'm sure i only ask that question because i don't know enought but i wonder: with all that speed-improvements on nom and such, how come that a small perl6 programm like '.say for ^10000;' takes ~8secs on master and ~32secs on nom? (both are latest master and latest nom) | ||
moritz | felher: seems we've also have had lots of performance regressions :( | 18:53 | |
18:53
wamba left
|
|||
mberends | felher: 'say' in particular was re-specced to add lots of user-friendly extra formatting. Try 'print' instead. | 18:53 | |
felher | moritz: yeah, seems so. | 18:54 | |
mberends: hm, k, checking that out. | |||
moritz | mberends: but it's not *that* much more | ||
mberends: I mean it just calls .gist, and for an Int that's the same as .Str | 18:55 | ||
masak | moritz, im2ee: I'm using a program called psyde. github.com/masak/psyde | ||
moritz | mberends: so about another method call per say() | ||
im2ee | so, how do You think - what is better, making own websites or using free software? :) | ||
masak, thanks. :) | |||
masak, can You answer this question too? :) | 18:56 | ||
felher | hm, k. using print results in 6.3 vs 19.7. Thats at least better. :) | ||
moritz | less worse | ||
felher | yeah ^^ :) | ||
im2ee | It's channel about p6, but we can talking about other topics? :) | ||
masak | im2ee: yes. | 18:57 | |
im2ee: with moderation and good judgment. | |||
mberends | thanks moritz. I thought .gist was quite expensive, but it probably isn't | ||
moritz | im2ee: fwiw I'm writing a backend for a blog engine in p5 these days | 18:59 | |
ouch | |||
$ time ./perl6 -e '1 for ^10_000' | |||
real 0m1.428s | |||
$ time ./perl6 -e '1 for ^100_000' | |||
real 0m36.667s | |||
rakudo: 36.6/1.4 | |||
p6eval | rakudo 3654b0: ( no output ) | ||
moritz | rakudo: print 36.6/1.4 | 19:00 | |
p6eval | rakudo 3654b0: OUTPUT«26.1428571428571» | ||
jnthn | moritz: A good chunk of that 1.428 will be startup time | ||
moritz | iterating over 10x the elements take 26x the time | ||
if startup time was dominatring, the factor would be <10 | |||
*dominating | 19:01 | ||
masak | jnthn: that makes the time even less proportional. | ||
jnthn | masak: right | ||
moritz | masak: maybe you should link to psyde on www.strangelyconsistent.org/about | ||
masak | ooh, good idea. | 19:02 | |
masak does so | |||
jnthn | It's also slowly leaking, which won't be helping. | ||
19:02
Grimnir_ joined,
pmurias left
|
|||
moritz | for 50k items it's still linear | 19:02 | |
19:03
kst` joined
|
|||
im2ee | $ time perl6 -e '1 for ^100_000'; | 19:03 | |
real2m13.565s | |||
huh, my computer sucks | |||
:D | |||
moritz | (that was nom, fwiw) | 19:04 | |
(with the nesest patches on the newest most awesome parrot branch) | |||
19:04
pmurias joined
19:05
kst left
|
|||
tadzik | im2ee: I do :) | 19:07 | |
as long as you mean Perl 5 :P | |||
19:08
_avi left
|
|||
im2ee | So, perl5 is now better for webdev? :)) | 19:08 | |
tadzik | I have a feeling it's more suitable. We don't have a good web framework for Perl 6 yet | ||
masak | moritz: linked to psyde from strangelyconsistent.org/about - moritz++ | 19:09 | |
im2ee: Perl 5 will certainly make life easier for you at this point. | |||
pmichaud | anyone object to me doing the branch rename (master->ng) now? | 19:10 | |
masak | im2ee: those of us who choose to doing web development with Perl 6 will invariably face a number of tradeoffs. | ||
at this juncture. | |||
19:11
pmurias left
|
|||
im2ee | so maybe just wordpress? :) | 19:11 | |
19:11
jrockway left
|
|||
im2ee | but.. perl is better than php :) | 19:12 | |
mberends | im2ee: that's ok, or blogs.perl.org | ||
jnthn uses wordpress, fwiw. And happy so far. | |||
19:13
pmurias joined
|
|||
im2ee | thanks. :) | 19:13 | |
masak | im2ee: I also think Perl is better than PHP. but that doesn't stop Wordpress and MediaWiki from being fine pieces of usable software. | 19:15 | |
im2ee | right :) | 19:16 | |
19:16
whiteknight left
19:17
pmurias left
19:19
pmurias joined
|
|||
masak | I'm very happy with psyde for my blog, even though I should've implemented comments ages ago. :) | 19:20 | |
19:21
jrockway joined,
Reaganomicon joined
|
|||
lue | hello world o/ | 19:23 | |
sorear | pmurias: I recommend looking at msdn.microsoft.com/en-us/library/gg145045.aspx | ||
masak | hellue! | 19:26 | |
19:28
wooden joined,
wooden left,
wooden joined
|
|||
lue can't decide which fun P6 project to work on today | 19:30 | ||
masak | have you written a Little Animal Farm AI yet? :) | 19:31 | |
sooner or later, you will -- you know you will :) | |||
19:31
birdwindupbird left
19:34
cognominal joined
|
|||
lue | I actually have a couple ideas for that, a paranoid AI (named Marvin naturally) being the main one. | 19:34 | |
masak | looking forward to that. | ||
eiro: how'd your IA go? | 19:36 | ||
19:37
am0c left
|
|||
lue | Hm. Do 3 rabbits mean 1 pair and 1 "left over", which would yield a total of 1 rabbit? [Or does the game do nothing with "left overs"?] | 19:38 | |
19:39
pmurias left
|
|||
sorear | masak: ia? | 19:39 | |
sorear wants to parse "eiro" as rōmaji | |||
masak | sorear: in French, all acronyms are reversed. | ||
sorear | I have a PDF here that says CLI / ICL | 19:40 | |
masak | lue: 3 rabbits yield one rabbit, yes. the game ignores odd rabbits when mating them. :) | ||
sorear | infrastructure commune de langage | ||
not quite reversed... | |||
masak | sometimes they don't get reversed all the way, no. | ||
19:41
pmurias joined
|
|||
masak | AIDS becomes SIDA, for example. | 19:41 | |
"permuted" is perhaps more accurate. | |||
lue | well, word order is reversed (which *usually* results in reversed acronyms from an english POV) | ||
masak | but it mostly stems from adjectives wanting to come before nouns in French. | ||
oh, and genitives being reversed, of course. | 19:42 | ||
19:42
molaf left
|
|||
sorear | not all combinations of words reverse in the same way | 19:42 | |
lue can't wait to start French 3 in a few days | |||
sorear | I like Japanese, it's very consistant about this | 19:43 | |
all phrase-modifiers are prefixes | |||
masak | lue: "French 3" is great. not as good as the book, though. | ||
sorear | pmurias: I recommend looking at msdn.microsoft.com/en-us/library/gg145045.aspx | ||
lue | I get the feeling my idea of "French 3" is different from your's... [or there's a parsefail in my head] | 19:44 | |
masak | lue: I'm just joking with you. | ||
lue | So it *was* a parsefail! | 19:45 | |
19:46
wolfman2000 left
|
|||
sorear | btw, learning French is on my todolist | 19:53 | |
masak | or, as the French say, "ma liste de choses à faire" :) | 19:54 | |
sorear | well my mom speaks it so. | 19:55 | |
masak | oh right. Canada. | ||
sorear | Canada? | ||
masak | no wait, you're from the US. | ||
mis-association. | |||
all you people from the Americas. hard to keep you straight! :P | 19:56 | ||
sorear | I live as far from Québec as is possible while still living in an English-speaking North American country | ||
masak | ah. | ||
sorear | my county borders the Pacific Ocean on the west and Mexico on the south. | ||
19:57
pmurias left
|
|||
masak | Texas? | 19:57 | |
no wait. :) | |||
California! | |||
sorear | secure.wikimedia.org/wikipedia/en/...ego_County | 19:58 | |
masak | I used to listen to ads from the San Diego area. | ||
when I was listening to the Dr Demento Show on Sunday evenings. | |||
of course, over here it was five in the morning on Mondays... :) | 19:59 | ||
(but so worth it!) | |||
19:59
pmurias joined
|
|||
sorear | <3 Dr Demento | 19:59 | |
pmurias: I recommend looking at msdn.microsoft.com/en-us/library/gg145045.aspx | |||
phenny: tell pmurias I recommend looking at msdn.microsoft.com/en-us/library/gg145045.aspx | |||
phenny | sorear: I'll pass that on when pmurias is around. | ||
19:59
im2ee left
20:00
im2ee joined
20:02
jevin left
20:03
jevin joined
20:04
kaare_ left
|
|||
im2ee | good night! :) | 20:04 | |
masak | night, im2ee | 20:05 | |
im2ee | or day . | ||
bye o/ :) | |||
jnthn | dobru noc, im2ee | ||
oh wait, .pl, not .cz :) | |||
jnthn must keep the tlds straight :) | |||
im2ee | dobranoc - in pl. :) | ||
jnthn | nice :) | ||
masak | dobranoc, im2ee. | ||
im2ee | dobranoc! | 20:06 | |
:) | |||
20:06
im2ee left
|
|||
tadzik | branoc | 20:06 | |
masak | that looks almost like Swedish :) | 20:07 | |
jnthn | heh :) | 20:08 | |
sorear | aren't Polish and Czech very closely related? | 20:12 | |
jnthn | sorear: Pretty closely, but not as closely as Czech and Slovak. | ||
sorear: All three are in the western slavic group though. | 20:13 | ||
sorear wonders how hard Slavic was for jnthn | 20:14 | ||
sorear tried to learn Russian once but declension was too much for eir poor brain | |||
masak | typographically, Polish believes more in 'z's, and the other languages in that group believe more in hats. :) but that's mostly a surface difference. | ||
sorear | Polish has some odd typographical features like in Soŝnierz | 20:15 | |
tadzik | Sośnierz, actually :) | ||
masak was just going to point that out :) | |||
tadzik | .u | ||
phenny | tadzik: You gave me zero length input. | ||
tadzik | .u ŝ | ||
phenny | U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX (ŝ) | ||
tadzik | .u ś | ||
phenny | U+015B LATIN SMALL LETTER S WITH ACUTE (ś) | ||
tadzik | CUTE! | ||
sorear | ś is so odd it's not even in my default terminal fon | ||
masak | ŝ is in the Esperanto alphabet. it's more like 'sz' than like 'ś' in its pronunciation, though. | 20:16 | |
jnthn | sorear: It was, and remains, kinda hard, though the declension becomes "automatic" after a while. I had the benefit of living in that part of the world for a couple of years, and thus daily practice. :-) Now I don't have that, and it's kinda slipping away a bit. :-S | 20:17 | |
masak .oO( declension's on the decline ) | |||
jnthn | I'd date a Russian girl, but they all decline me. :P | 20:18 | |
tadzik | masak: by 'z's, do you mean "ogonki"? | ||
jnthn | .oO( that'd make an amusing linguistic cartoon... ) |
||
sorear remembers jnthn(?)s bit about Slovak hamburgers and the Headache["very bad"] role mixin | |||
masak | tadzik: no, I meant the letter Z. | ||
tadzik | I see | 20:19 | |
I wonder if we actually have more tails than hats | |||
sorear | .u ż | ||
phenny | U+017C LATIN SMALL LETTER Z WITH DOT ABOVE (ż) | ||
masak | I don't know of any hats in Polish. | ||
tadzik | yeah, dots | ||
we have no hats | |||
masak | dots don't count :P | ||
they're hardly there! | 20:20 | ||
tadzik | with dots instead of hats we're a bit like Teletubbies | ||
masak | *and* you can write them as cross-bars on the 'z'! how weird is that! | ||
tadzik | like in ł | ||
but ł cannot have the hat on top | |||
sorear | .u ǫ | ||
phenny | U+01EB LATIN SMALL LETTER O WITH OGONEK (ǫ) | ||
masak | dot, you mean. | ||
jnthn | .u ł | ||
phenny | U+0142 LATIN SMALL LETTER L WITH STROKE (ł) | ||
sorear | is ogonki the plural of ogonek, tadzik? | 20:21 | |
jnthn | ah, stroke | ||
tadzik | sorear: yes | ||
sorear: it means "little tails" | |||
masak | little tails of misery and woe :) | ||
tadzik | oooh, they're actually OGONEK in Unicode itself | ||
although ǫ is not a Polish letter | 20:22 | ||
jnthn | tadzik: I guess "ogon" is a (non-little) tail? | ||
tadzik | jnthn: si | ||
jnthn | Cute :) | ||
masak | tadzik: it's not!? | ||
tadzik: it's just an adorned 'o'? | |||
sorear | what do you call multiple ogon? | ||
tadzik | ogony | ||
masak | oh the ogony... | ||
tadzik | masak: I sometimes wonder where did ǫ go. Ę is "eu", but Ą is "ou", not "au" | 20:23 | |
masak | oh right! | ||
now I see what you mean. | |||
tadzik | I seem to recall where did "au" go over the ages | ||
masak | yes, Ą should clearly have been ǫ instead. | 20:24 | |
tadzik | eww, parsefail | ||
I seem to recall there was "au" once, but it's gone now | |||
sorear | .u č | ||
phenny | U+010D LATIN SMALL LETTER C WITH CARON (č) | ||
masak | ĉapelo. | ||
tadzik | .u ć | ||
phenny | U+0107 LATIN SMALL LETTER C WITH ACUTE (ć) | ||
tadzik | Polish is ACUTE | 20:25 | |
masak | but never grave. | ||
sorear | .u ő | ||
phenny | U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE (ő) | ||
tadzik | ooh | ||
masak | now we're in Hungary all of a sudden. | ||
tadzik | that's like "uuuu" | ||
masak | bőőőőring | ||
tadzik | there's no such letter like that in Polish alphabet though | 20:26 | |
masak: that's like "buuuuring" | |||
ó is just u, fancy written | |||
sorear | the Slavs have so many beautiful diacritics and accents. | ||
tadzik | funny things is that ogonki and ACUTEs never indicate accent in Polish | ||
masak | tadzik: it's more like the Russian ы, IIRC. | ||
no, wait. it isn't. | 20:27 | ||
it's just a very dark ö. | |||
20:31
natureboy joined
20:35
kst` is now known as kst
20:37
pmurias left
|
|||
sorear | masak: what is darkness? | 20:37 | |
masak | an imprecise description of vowel quality... :/ | 20:38 | |
20:39
pmurias joined
|
|||
masak | Wikipedia says ő is pronouneced /ø/ in Hungarian. | 20:41 | |
tadzik | not pronounced? | 20:42 | |
masak | no, that's a vowel sound. | ||
doesn't mean "empty set" or anything funny like that :) | |||
tadzik | ...empty sound? :P | 20:43 | |
masak | of one hand clapping, naturally. | ||
by the way, has anyone ever replied to the question "what is the sound of one hand clapping?" by clapping with one hand? | 20:44 | ||
I mean, to a Zen master. | |||
20:47
uvtc joined
|
|||
uvtc | I notice that, in Perl 6, most methods on lists return a new list. Such that you can do things like: @a.sort.uniq.reverse (in contrast, you can't do that in Python because sort() sorts the array in place and doesn't return it). | 20:51 | |
Python's reverse also reverses in-place. | 20:52 | ||
In Perl 6, is there any convention about methods that mutate vs. methods that return a new object? | |||
sorear | no | ||
you could write @a.=sort if you wanted | 20:53 | ||
uvtc | What is ".="? | ||
sorear | like +=, *= | ||
uvtc | Oh, "@a = @a.sort". | ||
masak | uvtc: there's a slight cultureal encouragement to make your method non-mutating, and then use the .= form to mutate things. | 20:54 | |
20:55
soh_cah_toa joined
|
|||
uvtc | Ok, that sounds good. Not only because it's easy enough to use ".=", but also because it allows you to do things like @a.sort.frobnicate.fossilize.etc | 20:55 | |
I noticed that someone the other day asked something like "is Perl 6 ready?". It seems to come up every once in a while. | 20:58 | ||
It's interesting, because I don't hear that question asked often about other languages. | |||
20:58
tlocalhos joined
|
|||
uvtc | I think, when people ask it, what they're really asking is 3 related questions: | 20:58 | |
1. Is the design of the language fairly stable now (will not be changing under my feet -- for my basic needs)? | |||
2. For a given "main" implementation: | 20:59 | ||
* Are the basic usual features most people most commonly need implemented? | |||
* Does it have few enough bugs so as to not make my life *too* terribly difficult? | |||
20:59
localhost left
|
|||
uvtc | * Is its performance at least in the same ballpark as Perl 5 | Python? (slower is fine and expected -- just not more than, say, a factor of 5) | 20:59 | |
and | |||
3. Is there some user reference documentation for Perl 6 available? That is, some at-least-fledgling perldoc manpages for Perl 6. | |||
masak | yes, yes, yes, no, fragmented and too little. | 21:02 | |
uvtc | masak, the feature comparison matrix indicates that nom does not yet handle "DateTime, Date". | 21:05 | |
masak | sounds like a rife lowish-hanging fruit to pick. | 21:07 | |
jnthn | rife or ripe? :) | ||
masak | er, just s/rife // | 21:08 | |
:) | |||
didn't meant what I thought it meant... | |||
uvtc | rife with low-hanging fruit, ripe for the picking | ||
jnthn | right :) | ||
masak | right. | ||
tadzik | wrong :) | 21:15 | |
everyone who tried will tell you it's not low-hanging | |||
masak | oh! | 21:16 | |
'night, #perl6 | |||
21:17
masak left
|
|||
pmurias | sorear: how high would the overhead of calling perl5 code from C#? | 21:19 | |
phenny | pmurias: 19:59Z <sorear> tell pmurias I recommend looking at msdn.microsoft.com/en-us/library/gg145045.aspx | ||
pmurias | sorear: how much sensible would niecza/perl5 interop be? | ||
s/much// | 21:20 | ||
21:21
jamtech joined
|
|||
sorear | pmurias: supporting perl5 VM-VM interop is insane. I did it once for Parrot and I have no intention of doing it again for the CLI | 21:22 | |
21:22
SHODAN left
|
|||
sorear | pmurias: otoh, I do have plans to build a Perl5 language-compatibility mode into the Niecza parser | 21:22 | |
uvtc: yes, yes, yes, yes, yes iff you count the Synopses | 21:23 | ||
soh_cah_toa | i really wouldn't consider the synopses user documentation though | 21:27 | |
21:27
pmurias left,
pmurias joined
|
|||
pmurias | i might attempt perl5 VM-VM, i did it for SMOP and everything seemed to fit together nicely | 21:28 | |
uvtc | sorear, I'm not sure I'd count the Synopses as user docs. Will have to look at them again & more. | 21:32 | |
21:33
pmurias left
|
|||
soh_cah_toa | agreed, they're really only meant for implementers and are be greek to non-compiler developers | 21:34 | |
i'm trying to help reduce p6's lack of user docs through the "using perl 6" book though | |||
uvtc | soh_cah_toa, I'd like to chat about this more, but need to get offline (family). Will look for you later. | 21:37 | |
21:37
uvtc left
21:38
mj41 left
|
|||
lue | Are there any (dis)advantages to using runtime importation vs. compile-time? I'd like to split my project into multiple files w/o cluttering the module namespace, and it seems only require would let me do that. | 21:41 | |
22:21
PacoLinux left,
PacoLinux_ is now known as PacoLinux
|
|||
soh_cah_toa | perl6: my $foo = 'foobar'; my $rx = '<alpha>*ob<alpha>*'; say 'FOOBAR!' if $foo ~~ rx/$rx/ | 22:25 | |
p6eval | rakudo 3654b0: OUTPUT«===SORRY!===Method 'rxtype' not found for invocant of class 'PAST;Regex'» | ||
..niecza v9-9-gd637b5c: ( no output ) | |||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** '<HANDLE>' trapped b… | |||
22:27
jamtech left
|
|||
soh_cah_toa | how do i get that working? i want to interpolate a variable containing literal metacharacters into a regex and match it against something | 22:28 | |
tadzik | soh_cah_toa: use b: for now | 22:29 | |
soh_cah_toa: nom cannot interpolate variables in regexes yet | 22:30 | ||
soh_cah_toa | tadzik: where? b:/$rx/ | ||
tadzik | soh_cah_toa: no, no :) | ||
b: say 'foo' | |||
this b: | |||
p6eval | b 1b7dd1: OUTPUT«foo» | ||
tadzik | b is the old master branch | ||
soh_cah_toa | darn | 22:31 | |
i thought the rx// operator to create a Regex object was how that's done since variables are interpolated literally | |||
22:31
jamtech joined
|
|||
soh_cah_toa | i'm working w/ rakudo btw. not nom | 22:31 | |
tadzik | hmm | ||
jnthn | soh_cah_toa: "literal metacharacters"? | 22:33 | |
Do you mean, you want the thing you're interpolating to be treated as a regex? | |||
soh_cah_toa | jnthn: yes | 22:34 | |
jnthn | ah | ||
<$foo> | |||
/$foo/ # matches exact contents of $foo | |||
soh_cah_toa | right | ||
jnthn | /<$foo>/ compiles $foo as a regex | ||
soh_cah_toa | i thought rx// did that? | ||
jnthn | (and then tires to match it) | ||
No | |||
22:37
jamtech left
|
|||
tadzik | 'night #perl6 | 22:37 | |
jnthn | 'night tadzik | ||
soh_cah_toa | jnthn: see S05 at 'Variable (non-)interpolation' | 22:40 | |
"However, if $var contains a Regex object, instead of attempting to convert it to a string, it is called as a subrule, as if you said <$var>. (See assertions below.) This form does not capture, and it fails if $var is tainted." | |||
/ $var / is like a Perl 5: / \Q$var\E / | 22:41 | ||
jnthn | ah | ||
soh_cah_toa | and rx// creates a Regex object | ||
jnthn | hm, interesting. I ddin't know that bit :) | ||
pmichaud: ^^ is worth noting when putting regex interpolation stuff back into nom | 22:42 | ||
soh_cah_toa | speaking of nom, whatever happened to the august release? | 22:43 | |
jnthn | soh_cah_toa: rakudo.org/2011/08/19/rakudo-2011-0...se-status/ | 22:44 | |
soh_cah_toa | yeah, i read that | ||
specifically the "We definitely will have some August 2011 releases" part ;) | |||
i'm guessing those issues just haven't been resolved yet? | 22:45 | ||
jnthn | ah, hm :) | 22:46 | |
I'm guessing not | |||
Well, I and @other have been working on resolving a bunch of the issues this weekend :) | |||
Though there's some more to go. | |||
soh_cah_toa | great | 22:48 | |
last i heard the release was delayed b/c of issues that weren't really detailed and then pmichaud disappeared and i haven't heard anymore ;) | |||
wasn't sure what was going on | |||
22:52
orafu left
22:53
skangas left,
orafu joined
|
|||
jnthn | sleep & | 22:57 | |
23:21
skangas joined
23:27
risou_awy is now known as risou
23:38
Patterner left
23:40
Psyche^ joined,
Psyche^ is now known as Patterner
23:45
Reaganomicon left
|