»ö« 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:10
supernovus left,
MayDaniel left
00:14
replore_ joined
00:25
tokuhiro_ joined
00:45
daniel-s joined
00:47
kid51 joined
00:51
benabik joined
|
|||
awwaiid | I've noticed more perl6 code snippets using dash-separated-naming. Is that becoming a norm? One step closer to LISP? | 01:01 | |
01:03
tokuhir__ joined,
tokuhiro_ left
01:11
tokuhir__ left
|
|||
flussence | maybe; I just see it as one less shift key to press :) | 01:15 | |
01:32
natureboy joined
01:34
y3llow left,
pothos left,
y3llow_ joined,
pothos_ joined,
pothos_ is now known as pothos
01:35
y3llow_ is now known as y3llow
01:44
whiteknight left
01:53
Trashlord left
01:54
arx left
02:23
wolfman2000 joined
02:29
soh_cah_toa left
02:40
daniel_ joined
02:54
mkramer joined
03:00
provoc joined
03:02
mkramer left
03:24
am0c joined
03:25
abercrombie left
03:33
natureboy left
|
|||
sorear | good * #perl6 | 03:35 | |
shachaf | sorear: Good $TIME | 03:36 | |
japhb | o/ | 03:37 | |
03:37
daniel_ left
|
|||
sorear | o/ shachaf | 03:38 | |
04:03
wolfman2000 left
04:05
envi_ joined
04:07
envi_ left
04:10
envi_ joined
04:28
thou left
|
|||
dalek | kudo/nom: d264275 | (Geoffrey Broadwell)++ | src/core/Main.pm: Don't treat an option prefix followed immediately by a digit or period as an option (it's probably a negative or radix-notation number) |
04:35 | |
Heuristic branch merge: pushed 16 commits to niecza by sorear | 04:43 | ||
sorear | evalbot rebuild niecza | 04:44 | |
p6eval | OK (started asynchronously) | ||
japhb | In github.com/rakudo/rakudo/blob/nom/...Numeric.pm , why are some subs defined with all args backslashed (e.g. sin, cos, etc.) while others don't have backslashes (e.g. log, log10, exp)? | 04:56 | |
sorear | blegh. niecza rebuild failed on host04 | 04:57 | |
japhb: little reason not to backslash all of them imo | |||
japhb | What advantage does it give in this situation? | 04:58 | |
sorear: ^^ | 04:59 | ||
sorear | japhb: improves inlinability | ||
... yuck | 05:00 | ||
rerunning the build with debug flags and it SUCCEEDED | |||
moritz | it's supposed to be a bit faster | ||
sorear | now I can't debug it! :( | ||
niecza: say "Hello from serialize" | |||
p6eval | niecza v10-213-gf5dc966: OUTPUT«Hello from serialize» | ||
05:00
pmichaud joined
|
|||
japhb | sorear, ah, that was my first guess. But the question is *why* it improves the inlineability? | 05:00 | |
sorear | japhb: because \$x is the simplest case of a parameter, and jnthn is Lazy | 05:01 | |
japhb | *chuckle* | ||
05:02
SHODAN joined
|
|||
sorear | o/ pmichaud | 05:02 | |
moritz | it was probably me who forgot the backslashes on some of the subs | 05:03 | |
sorear | masak: colomon: I've merged serialize | ||
japhb | sorear++ | ||
sorear | phenny: tell mberends /serialize is merged | ||
phenny | sorear: I'll pass that on when mberends is around. | ||
sorear | japhb: note that a '$x' parameter in general requires marking $x as readonly somehow | 05:04 | |
japhb | sorear, explain, please ... | 05:05 | |
moritz | perl6: sub f($x) { $x = 3 }; f my $y | ||
p6eval | niecza v10-213-gf5dc966: OUTPUT«Potential difficulties: $y is declared but not used at /tmp/zElwk09XA6 line 1:------> sub f($x) { $x = 3 }; f my ⏏$yUnhandled Exception: assigning to readonly value at /tmp/zElwk09XA6 line 0 (f @ 0)  at /tmp/zElwk09XA6 line 1 … | ||
..pugs b927740: OUTPUT«*** Can't modify constant item: VRef <Scalar:0x7fe2ec3e8ce9> at /tmp/J7rgkyf_mt line 1, column 13-20» | |||
..rakudo d26427: OUTPUT«Cannot assign to a readonly variable or a value in sub f at /tmp/Zs5rS8Tzjv:1 in block <anon> at /tmp/Zs5rS8Tzjv:1 in <anon> at /tmp/Zs5rS8Tzjv:1» | |||
moritz | japhb: in order to make that an error, $x needs to be told that it's ro | 05:06 | |
japhb | moritz, yes, got that. I meant I was wondering why sorear brought that up. But I'm realizing that he may be meaning '"\$x' doesn't need that readonly marking" | ||
s/'"/"'/ | 05:07 | ||
moritz | that's true too | ||
japhb | You know, it occurs to me that my understanding of \$x may be close to, but not precisely, the real Perl 6 meaning. So what is the intended exact meaning of that construction? | 05:09 | |
sorear | \$x is very raw | ||
it binds '$x' to mean the argument, with no changes of any kind | 05:10 | ||
in particular | |||
moritz | "bind what the caller gave us, and don't do anything else to it" | ||
sorear | niecza: my @foo = 1,2, 3; sub bar(\$x) { say [$x].elems }; bar @foo | ||
p6eval | niecza v10-213-gf5dc966: OUTPUT«3» | ||
sorear | you might expect [$x].elems to always be 1; with \$x you don't always have that | ||
a $x parameter is never assignable, a $x is rw parameter always is - a \$x parameter might or might not be | 05:11 | ||
05:12
cotto left
|
|||
moritz | niecza: sub f($y is rw) { }; f 3 | 05:12 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«Potential difficulties: $y is declared but not used at /tmp/24Y5jedGDK line 1:------> sub f(⏏$y is rw) { }; f 3Unhandled Exception: Binding $y is rw in f, cannot bind read-only value to is rw parameter at /tmp/24Y5jedGDK line 0 … | ||
05:12
cotto joined
|
|||
moritz | cool | 05:12 | |
05:12
orafu left
|
|||
moritz | rakudo: sub f($y is rw) { }; f 3 | 05:12 | |
p6eval | rakudo d26427: ( no output ) | ||
05:12
orafu joined
|
|||
moritz | rakudo current aliases 'is rw' and \ it seems | 05:13 | |
japhb | It turns out my ghetto thinking was effectively "close enough" to reality to match the above cases, but not technically correct. | ||
moritz | *ly | ||
05:17
TiMBuS left
|
|||
japhb | Does '$x--' in sink context get optimized to '--$x' in Rakudo yet? | 05:28 | |
And if so, where does this occur? | 05:29 | ||
05:29
envi_ left
05:34
provoc left
|
|||
moritz | no, we don't recognize sink context yet | 05:35 | |
japhb | In RANGEPOS() in src/core/Str.pm (starts here: github.com/rakudo/rakudo/blob/nom/...Str.pm#L59 ), why is unboxing done repeatedly, instead of using native typed variables and unboxing just once at the top of the routine? Is unboxing an insanely cheap op? | 05:49 | |
moritz | japhb: it was simply written before rakudo supported natively typed lexicals | 05:52 | |
japhb: want to change that, or should I? | 05:53 | ||
japhb | Ah, so the native str on line 63 was a late change, not there from the beginning. That's what led me to wonder | ||
s/$/./ | |||
moritz | correct | ||
also $pos can be typed int | 05:54 | ||
japhb | moritz, hmmm, lemme work up a patch for practice. | ||
While I'm there, is there any reason not to change the postdecrements to predecrements? | 05:55 | ||
moritz | japhb: they need to become $i = $i - 1 anyway if you use native int | ||
05:55
TiMBuS joined
|
|||
moritz | because we don't have 'is rw' for natively typed params yet | 05:55 | |
japhb | Ah. So is 'my Int $pos = 2; $pos--;' or 'my int $pos = 2; $pos = $pos - 1;' faster? | 05:57 | |
moritz | probably the latter | ||
because it never boxes, and the chances that it inlines the operator are higher too | 05:58 | ||
japhb | OK, worth a try then. | ||
dalek | kudo/nom: 642e789 | (Geoffrey Broadwell)++ | src/core/Str.pm: Delete trailing whitespace |
05:59 | |
japhb | BTW, for commits like the above, is there a convention to be used to mark them as non-functional changes, like '[CAGE]' or somesuch? | 06:00 | |
moritz | not really | 06:01 | |
sorear | japhb: I am curious about your usage of "ghetto thinking" | ||
moritz | japhb: I soemtimes add "no functional changes", but that's obvious when you're only deleting trailing ws :-) | ||
japhb | sorear, in what sense? | ||
sorear | 22:13 < japhb> It turns out my ghetto thinking was effectively "close enough" | 06:03 | |
I have not heard this construction before | |||
japhb | Ah. I'm not sure where I heard that. Basically means building a mental model in a broken way roughly equivalent to cargo cult coding. | 06:04 | |
moritz has passing TODOs when niecza runs t/spec/S03-operators/subscript-adverbs.t | |||
japhb | I was saying that while I had built a mental model purely from looking at usage and results, rather than understanding the core, it happened that my mental model was fairly effective at predicting effects. | 06:05 | |
Stylistic question: How do you prefer to name a variable that is purely caching an unboxed copy of another variable, say $foo ? | 06:07 | ||
I was thinking perhaps $_foo | |||
$foo_ub seemed to heavy weight, and $f too terse | |||
moritz | I don't think it's worth caching it | ||
what's your application? | |||
japhb | ... the repeated unboxes in RANGEPOS, of course. ;-) | 06:08 | |
moritz | sorry, I read 'boxed', not 'unboxed' | ||
japhb | ah | ||
moritz | japhb: just keep only the native one around | ||
japhb: declare $str as str in the signature | |||
japhb | Oh, DUH. | 06:09 | |
japhb slaps forehead | |||
Typed args: not just for multi dispatch .., | 06:10 | ||
s/,/./ | |||
06:13
kid51 left
|
|||
sorear | moritz: what do I make of a passing TODO? | 06:14 | |
moritz | sorear: you unfudge it? or report that it doesn't pass for you? | ||
sorear | ah | ||
06:16
drbean left
|
|||
dalek | ast: 891aa14 | sorear++ | S03-operators/subscript-adverbs.t: [S03-operators/subscript-adverbs] remove a couple fudges for moritz |
06:21 | |
06:22
drbean joined
|
|||
japhb | Is there any advantage to using nqp::iseq_s() and nqp::isge_i() rather than plain old 'eq' and '>=' operators? | 06:22 | |
Or is that also historical baggage? | 06:23 | ||
sorear | either speed or historical speed | ||
play with --target=pir to find out | |||
japhb | sorear, hmmm, will try that. | ||
sorear | how is nom memory usage these days? | 06:24 | |
moritz | compilation: 1.5G | 06:25 | |
sorear | ow | 06:26 | |
japhb | Yup, --target=pir confirms that the nqp:: form is way less overhed | 06:28 | |
*overhead | |||
japhb takes a break | 06:29 | ||
snarkyboojum | #perl6, o/ | 06:44 | |
sorear | o/ snarkyboojum | 06:46 | |
just merged /serialize... now what I need to do before Mon is to rebuild the bootstrap system | 06:47 | ||
snarkyboojum | pretty awesome milestone :D | 06:48 | |
06:49
packetknife joined
06:50
hypolin joined
06:56
dual joined
07:01
koban joined
07:08
drbean left
07:13
drbean joined
07:14
kfo joined
07:17
kfo_ left
07:42
fhelmberger_ joined
07:45
fhelmberger left
07:50
fsergot left
|
|||
masak | good morning, #perl6 | 07:59 | |
sorear | good morning masak | 08:00 | |
japhb | gist.github.com/1321836 | ||
masak | sorear++ # merge | ||
japhb | o/ masak | ||
masak | I have good news about my macros grant application. I think you can guess what it is... :) | 08:01 | |
sorear | "it was accepted"? | 08:02 | |
snarkyboojum | masak: w00t - congrats :) | ||
masak | \o/ | ||
japhb | yay! | ||
sorear | did They say anythng interesting about it? | ||
masak | Karen asked whether pmichaud is still fine being a grant manager. | 08:03 | |
I replied "I think so, but I'll check". | |||
japhb: "As with all applied mathematics, there is nothing intrinsically magical about the definitions. They are simply chosen because they are useful." -- duramecho.com/Misc/WhyMinusOneInSd.html | 08:10 | ||
japhb: there's an interesting symmetry between that statement and what we talked about yesterday, about language constructs being vehicles for taking you places. | 08:11 | ||
08:18
mishin joined
|
|||
japhb | masak, quite so | 08:20 | |
masak | mishin: привет! | ||
japhb is headed for sleep, but if anyone has comments on, or improvements for, the second and third variants in my gist above, I'll happily backlog in the morning. :-) | 08:21 | ||
masak | I will look at it when time permits. | ||
japhb is taking this and a few other similar functions as "small enough to understand but large enough to learn from" on the way to being able to make larger contributions to Rakudo. | 08:22 | ||
sleep & | 08:23 | ||
masak | 'night, japhb. dream of small functions and large contributions. | 08:26 | |
08:31
am0c left
|
|||
masak | I just replied to an email from someone who wanted to contribute to this year's Perl 6 Advent Calendar. :) | 08:34 | |
(wrote "yes, I think there'll be one. yes, you're very welcome to contribute. please come to #perl6 on IRC.") | 08:35 | ||
08:37
rhapsody joined
|
|||
tadzik | good morning #perl6 | 08:38 | |
masak | tadzik! \o/ | ||
tadzik | masak: congrats for the grant! | ||
masak | thanks \o/ | 08:39 | |
November will be... interesting. good thing I've decided not to blog every day, too. :P | 08:40 | ||
mishin | 2masak:hi thank you | 08:42 | |
08:44
rhapsody left
|
|||
masak | perl6: $_ = "mishin"; s/m/м/; s:g/i/и/; s/sh/ш/; s/n/н/; .say | 08:46 | |
p6eval | pugs b927740: OUTPUT«decodeUTF8': bad data: '\1084'decodeUTF8': bad data: '\1080'decodeUTF8': bad data: '\1096'decodeUTF8': bad data: '\1085'Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs… | ||
..rakudo 642e78, niecza v10-213-gf5dc966: OUTPUT«мишин» | |||
masak | ;) | ||
mishin | ;)) | 08:49 | |
cool | |||
perl6: $_ = "mishin"; s/m/м/; s:g/i/и/; s/sh/ш/; s/n/н/; .say | 08:50 | ||
p6eval | pugs b927740: OUTPUT«decodeUTF8': bad data: '\1084'decodeUTF8': bad data: '\1080'decodeUTF8': bad data: '\1096'decodeUTF8': bad data: '\1085'Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs… | ||
..rakudo 642e78, niecza v10-213-gf5dc966: OUTPUT«мишин» | |||
mishin | i can eval perl6 code in irc? | ||
beautiful | |||
masak | rakudo: say "Yes We Can!" | 08:51 | |
p6eval | rakudo 642e78: OUTPUT«Yes We Can!» | ||
mishin | construction s:g/i/и/ similar to vi ;) | ||
08:51
odoacre left
|
|||
masak | also, Perl 5. | 08:52 | |
Perl 5 does it as s/i/и/g, but in Perl 6 we like to put regex-changing parameters up front, so the parser knows what to expect. | 08:53 | ||
otherwise, there are "interesting" consequences like using "/" in a comment in an /x regex, and the parser gets all confused. | 08:54 | ||
08:56
Trashlord joined
|
|||
mishin | perl5:my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); say %months | 08:58 | |
perl5:say 'Good morning' | 08:59 | ||
perl5:print 'Ok' | |||
perl6:say 'Test' | 09:00 | ||
perl6: "test".say | |||
p6eval | pugs b927740, rakudo 642e78, niecza v10-213-gf5dc966: OUTPUT«test» | ||
mishin | perl5 don't work i think | ||
masak | correct. | 09:01 | |
eval say "OH HAI" | |||
buubot_backup | masak: ERROR: syntax error at (eval 20) line 1, near "say "OH HAI"" | ||
masak | eval print "OH HAI\n" | ||
buubot_backup | masak: OH HAI 1 | ||
masak | eval "OH HAI" | 09:02 | |
buubot_backup | masak: OH HAI | ||
mishin | eval say "Test\n" | 09:09 | |
buubot_backup | mishin: ERROR: syntax error at (eval 20) line 1, near "say "Test\n"" | ||
09:09
mj41 joined
|
|||
mishin | eval print "Test\n" | 09:10 | |
buubot_backup | mishin: Test 1 | ||
mishin | eval my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); print "%months" | ||
buubot_backup | mishin: %months1 | ||
mishin | eval my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); print %months | ||
buubot_backup | mishin: Sep08May04Jul06Jun05Jan00Nov10Aug07Feb01Mar02Dec11Apr03Oct091 | ||
masak | eval $] | ||
buubot_backup | masak: 5.014002 | ||
mishin | Wow ..it's worked;) | 09:11 | |
masak | eval use 5.14; say "OH HAI" | ||
buubot_backup | masak: ERROR: Perl v5.140.0 required (did you mean v5.14.0?)--this is only v5.14.2, stopped at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1. | ||
masak | er, oops. | ||
eval use 5.014; say "OH HAI" | |||
buubot_backup | masak: OH HAI 1 | ||
masak | \o/ | ||
mishin | eval my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); say %months | ||
buubot_backup | mishin: ERROR: Illegal modulus zero at (eval 20) line 1. | ||
masak | mishin: if you use 'say', you have to predeclare it with 'use 5.010' or similar. | 09:12 | |
mishin | eval use 5.014;my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); say %months | ||
buubot_backup | mishin: Sep08May04Jul06Jun05Jan00Nov10Aug07Feb01Mar02Dec11Apr03Oct09 1 | ||
masak | also, let's stop here because people start complaining that we're using up too much backlog ;) | ||
s/because/before/ | |||
mishin | eval use 5.014;use use Data::Dumper; my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); say print Dumper(%months) | 09:13 | |
buubot_backup | mishin: ERROR: Bareword "Data::Dumper" not allowed while "strict subs" in use at (eval 20) line 1. | ||
mishin | eval use 5.014;use Data::Dumper; my %months;@months{qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )} = ( '00' .. '11' ); say print Dumper(%months) | ||
buubot_backup | mishin: $VAR1 = 'Sep'; $VAR2 = '08'; $VAR3 = 'May'; $VAR4 = '04'; $VAR5 = 'Jul'; $VAR6 = '06'; $VAR7 = 'Jun'; $VAR8 = '05'; $VAR9 = 'Jan'; $VAR10 = '00'; $VAR11 = 'Nov'; $VAR12 = '10'; $VAR13 = 'Aug'; $VAR14 = '07'; $VAR15 = 'Feb'; $VAR16 = '01'; $VAR17 = 'Mar'; $VAR18 = '02'; $VAR19 = 'Dec'; $VAR20 = '11'; $VAR21 = 'Apr'; $VAR22 = '03'; $VAR23 = 'Oct'; $VAR24 = '09'; 1 1 | ||
mishin | exuse me ..cool opportunities;)) | 09:14 | |
2masak, well well it's just toys | 09:15 | ||
masak | we do use it for serious purposes much of the time, though. | ||
kranius | is Perl better than a randomly generated language ? :> bit.ly/vOAYl9 | ||
moritz | nom: my %h = <Jan Feb Mar> Z 0...2; say %h.perl | 09:16 | |
p6eval | nom 642e78: OUTPUT«("Jan" => 0, "Feb" => 1, "Mar" => 2).hash» | ||
09:16
ggoebel left
|
|||
moritz | kranius: this thing has been going round the net, even though they used very bad perl examples, had a small sample size, and no statistical significance | 09:16 | |
in other words, it's FUD | 09:17 | ||
mishin | 2moritz..thanks much better | ||
eiro | kewl, | ||
oops :) | |||
hello guys | |||
flussence | kranius: if you want a valid experiment, don't port average PHP code to perl then claim perl is hard to read :) | ||
moritz | hei eiro | ||
kranius | it's for early morning trolling purposes | 09:18 | |
masak | kranius: the only real conclusion if quite un-revolutionary: people who don't know better can easily make a mess in permissive languages. | 09:19 | |
tadzik | kranius: I've just replied to that on slashdot. I find it odd how otherwise intelligent people believe everything they read on some random site | 09:20 | |
moritz | though if you read thedailywtf.com, you'll see that people can easily make a mess of non-permissive languages too :-) | 09:21 | |
09:21
ggoebel joined
|
|||
masak | sure, it just takes a bit more effort. | 09:22 | |
but yeah; in general being very unknowledgeable about something works wonders for creating a mess. | |||
kranius | indeed, WWII was won with a hoaw :) | 09:23 | |
hoax* | 09:24 | ||
09:27
replore_ left
09:32
ggoebel left
09:37
ggoebel joined
09:38
Alias left
09:42
daxim joined
|
|||
geekosaur | "you can write FORTRAN in any language" | 09:48 | |
moritz finds FORTRAN to be particularly well-suited to write FORTRAN code :-) | 09:49 | ||
masak | in one assignment at uni, the skeleton Java code we were given had methods with one parameter being an array and the next being the length of the array. turns out guy who wrote the code was a FORTRAN programmer. | 09:52 | |
moritz | "old habits die hard", as the saying goes | 09:54 | |
09:56
pnu left
09:57
pnu joined
10:02
hypolin left
|
|||
moritz | nom: sub f() { my int $i = 2; return ($i, $i) }; my int ($x,$y) = f; say $x; say $y | 10:06 | |
p6eval | nom 642e78: OUTPUT«Lexical '$x' is of wrong register type in lexical lookup in block <anon> at /tmp/yzIJ6wokc9:1 in <anon> at /tmp/yzIJ6wokc9:1» | ||
moritz | nom: my int ($x, $y); say $x | ||
p6eval | nom 642e78: OUTPUT«Lexical '$x' is of wrong register type in lexical lookup in block <anon> at /tmp/Oz04wwVBcv:1 in <anon> at /tmp/Oz04wwVBcv:1» | 10:07 | |
moritz submits rakudobug | |||
nom: my int ($x, $y); | |||
p6eval | nom 642e78: OUTPUT«Lexical '$x' is of wrong register type in lexical lookup in block <anon> at /tmp/FX3ocH8HsO:1 in <anon> at /tmp/FX3ocH8HsO:1» | ||
moritz | nom: my int $x; my int $y; ($x, $y) = (5, 6); say $x | 10:09 | |
p6eval | nom 642e78: OUTPUT«Cannot assign to a non-container in method STORE at src/gen/CORE.setting:3734 in block <anon> at /tmp/15k6zUC4yA:1 in <anon> at /tmp/15k6zUC4yA:1» | ||
moritz submits another rakudobug | |||
jnthn | oh no, not list assignment with natives :( | 10:10 | |
I don't really know how to make that work. | |||
Don't expect a fix in the very near future. | |||
moritz | ok :-) | ||
jnthn | It's the same problem as "rw" for natives | 10:11 | |
but...worse. | |||
moritz | thought so (and wrote as much in the ticket) | ||
it's what hinders us to go all-native in Str.{succ,pred} and RANGEPOS | |||
jnthn | oh, and that one ties into native return too | 10:13 | |
moritz | nom: sub f() { my int $i = 2; return ($i, $i) }; my ($x,$y) = f; say $x; say $y | 10:14 | |
p6eval | nom 642e78: OUTPUT«22» | ||
moritz | it probably just boxes while putting the natives into the Parcel | ||
nom: sub f() returns (int, int) { my int $i = 2; return ($i, $i) }; my ($x,$y) = f; say $x; say $y | 10:17 | ||
p6eval | nom 642e78: OUTPUT«===SORRY!===Malformed block at line 1, near "returns (i"» | ||
moritz | hm, perl 6 still isn't Haskell :-) | ||
10:21
am0c joined
|
|||
moritz | nom: say (46 - 38) / 46 | 10:23 | |
p6eval | nom 642e78: OUTPUT«0.173913043478261» | ||
moritz | 18% speedup on a $str++ heavy benchmark | 10:26 | |
just by using mostly natives, and avoiding some calls | 10:27 | ||
jnthn | nice :) | 10:31 | |
lunch & | 10:32 | ||
10:32
smash left,
smash joined
|
|||
moritz | I'll see if japhb comes up with a similar or nicer patch, and if not I'll push mine | 10:33 | |
10:40
MayDaniel joined
11:03
drbean left
11:07
uniejo joined
11:08
drbean joined
11:38
Psyche^ joined
11:42
Patterner left,
Psyche^ is now known as Patterner
11:46
koban left
|
|||
moritz | arg, my patch broke the spectests | 11:46 | |
"it's easy to come up with the wrong answer in O(1)" | |||
11:56
replore_ joined
11:58
replore_ left
12:03
GlitchMr joined
12:08
donri joined
|
|||
colomon | niecza: say 5 lcm 24323 | 12:23 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«Unhandled Exception: System.Exception: Unable to find lexical &infix:<lcm> in mainline at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0  at Niecza.CL… | ||
colomon | niecza: say 5gcd 24323 | 12:24 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«===SORRY!===Whitespace is required between alphanumeric tokens at /tmp/RWZvwtUdCt line 1:------> say 5⏏gcd 24323Unhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die… | ||
colomon | niecza: say 5 gcd 24323 | ||
p6eval | niecza v10-213-gf5dc966: OUTPUT«Unhandled Exception: System.Exception: Unable to find lexical &infix:<gcd> in mainline at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0  at Niecza.CL… | ||
12:25
donri left
12:26
donri joined
|
|||
colomon | rakudo: say 5.0 gcd 24323 | 12:26 | |
p6eval | rakudo 642e78: OUTPUT«1» | 12:27 | |
colomon | rakudo: say 5.4 gcd 24323 | ||
p6eval | rakudo 642e78: OUTPUT«1» | ||
colomon | niecza: say (5.4).Int | 12:30 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«5» | ||
[Coke] | nom: say 78/13.Int | 12:40 | |
p6eval | nom 642e78: OUTPUT«6» | ||
[Coke] | masak++ # congrats. | 12:42 | |
pmichaud++ # I'm reminded to ping you on grant status. ;) | |||
colomon | masak's grant came through? | ||
12:43
bluescreen10 joined
|
|||
moritz | I think that was about pmichaud's List grant | 12:43 | |
colomon | "masak++ # congrats" was about pmichaud's grant? | ||
moritz | oh, no | 12:44 | |
moritz confused | |||
masak | my grant came through, yes. | ||
[Coke] | colomon, yes, saw it in backscroll just now | ||
colomon | \o/ | ||
moritz | masak++ indeed | ||
colomon | masak++ | ||
[Coke] has to rethink his irssi don't scroll on new messages policy. ;) | |||
masak | let's do this. let's implement macros :) | ||
colomon | niecza: say 20 div 5 | 12:47 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«4» | ||
12:48
bluescreen10 left
|
|||
jnthn | masak++ # yay | 12:50 | |
masak | actually, it's more like TPF++ ;) | ||
jnthn | :) | ||
moritz | (Ian Hague)++ | 12:51 | |
masak | grants++ | 12:53 | |
jnthn | macros++ ;) | 12:54 | |
moritz | everybody should have one! | ||
erm, that applies both to grants and macros :-) | |||
colomon | moritz++ | ||
12:55
am0c left
12:57
pernatiy joined
|
|||
masak | I think I could do a "macros are X" blog post with three or four different Xs. | 12:58 | |
macros are parser callbacks. | |||
moritz | macros are abstractions | ||
masak | macros are a kind of late binding. | 12:59 | |
colomon | wait. you're not installing Macross into Perl 6? en.wikipedia.org/wiki/Macross | ||
moritz | macros are a PITA to implement, unless your syntax is as regular/non-existing as lisps | 13:00 | |
masak | oh, space-folding for FTL! brilliant! why didn't I think of that? | ||
13:00
bluescreen10 joined
|
|||
masak | moritz: "you can have either a syntax or simple macros, but not both" | 13:01 | |
donri | macros are templates for code | 13:02 | |
moritz wonders if the answer to extracting stuff from ASTs is pattern matching like in signatures, and not an introspection API | |||
donri | haskell has a non-trivial syntax and powerful macros via template haskell | 13:03 | |
colomon admits he's only ever actually seen Macross Plus | |||
moritz | donri: well... haskell's syntax isn't trivial, but afaict its syntax trees are rather simple | 13:05 | |
donri | ah, that might be true | 13:06 | |
moritz | for example the fancyness of $ and of `prefix_as_infix` and the other way round disappears on the AST level | ||
donri | ($) isn't fancy at all, that's what's fancy about it | 13:09 | |
jnthn | A lot of Perl 6 syntax desugars to method calls and sub calls too, mind. | ||
donri | all infix ops have fixity and associativity though, which i suppose is pointless in the AST | 13:10 | |
because it's merely a matter of precendence | |||
moritz | jnthn: yes, but a lot of stuff is much more fancy than that | ||
13:12
packetknife left,
MayDaniel left
|
|||
mux | I'd say haskell's syntax is more different than it is complicated | 13:13 | |
moritz | aye | 13:14 | |
dalek | ecza: 5ec4d8d | (Solomon Foster)++ | lib/ (2 files): Add fully working but not terribly optimized versions of infix:<gcd> and infix:<lcm>. |
||
ecza: ec2d94f | (Solomon Foster)++ | t/spectest.data: Turn on gcd.t and lcm.t. |
|||
masak | colomon++ | 13:15 | |
13:16
im2ee joined
|
|||
colomon | masak: bonus: they work on big ints in niecza. :) | 13:16 | |
mux | mmm, how is this supposed to be used ? "x <gcd> y" ? | ||
jnthn | They will in Rakudo soonish too :) | ||
colomon | mux: $x gcd $y | 13:17 | |
mux | colomon: oh ok. thanks | ||
colomon | jnthn: good, then you'll soon be able to unfudge the new tests I'm adding. ;) | ||
jnthn | \o/ | ||
moritz | nom: say 15 gcd 20 | 13:18 | |
p6eval | nom 642e78: OUTPUT«5» | ||
[Coke] | nom:say 321092340234234 gcd 2134832742342342 | ||
masak | gcd/lcm are a bit like min/max -- they're nicer in their derived forms than in the "basic" infix form. :) | 13:19 | |
[Coke] | nom: say 321092340234234 gcd 2134832742342342 #evil whitespace postcolon! | ||
p6eval | nom 642e78: OUTPUT«2» | ||
mux | I assumed the bot was running the code referred to by the commit logs and wouldn't be able to handle it :) | ||
moritz | nom: 1 while 1; | ||
p6eval | nom 642e78: OUTPUT«(timeout)» | ||
colomon | nom: say 4312432542432423432523434252 gcd 2454353421234435325435435366241 | ||
p6eval | nom 642e78: OUTPUT«-9223372036854775808» | ||
[Coke] | there you go. ;) | 13:20 | |
moritz | the reason for the required whitespace was that talking about nqp::foo opcodes at the start of a line would trigger syntax errors from p6eval's 'nqp:' target | ||
masak | anyone else who *lurves* the foo( :$argument ) syntax for named arguments? :) | 13:24 | |
flussence | +1 | ||
moritz | it's one of the things I often wish p5 had :-) | ||
masak | I find it takes the pressure of naming variables in the caller scope! :D | 13:25 | |
off* | |||
moritz | nom: my int $x = 3; $x = 'foo'.index('o') // $x; say $x | 13:27 | |
p6eval | nom 642e78: OUTPUT«1» | ||
moritz | nom: my int $x = 3; $x = 'foo'.index('x') // $x; say $x | ||
p6eval | nom 642e78: OUTPUT«3» | ||
13:27
fsergot joined
|
|||
mux | nom: 'foo'.index('a') | 13:27 | |
p6eval | nom 642e78: ( no output ) | ||
mux | nom: say 'foo'.index('a') | ||
p6eval | nom 642e78: OUTPUT«Str()» | ||
moritz | that's a fossil | ||
flussence | masak: I usually find myself reusing names in that way anyway, it's more obvious then :) | ||
mux | HELLO I HAVE NO IDEA WHAT IM DOING | ||
mux chuckles | |||
moritz | should probably fail('substring not found') | ||
colomon | niecza: say 123123123123123123123123123 * 2 | 13:28 | |
p6eval | niecza v10-213-gf5dc966: OUTPUT«Rebuild in progress» | ||
mux | moritz: I expected either that or -1 or undef | ||
donri | mux: i was thinking mostly of the "layout" style which is based on columnal alignment rather than just indentation | ||
moritz | mux: well, it was undef | ||
donri | but yea, that all is gone in the AST level | ||
moritz | mux: Str is the undefined string | ||
mux: aka "type object" | |||
mux | donri: I think you meant to say that to someone else | ||
moritz: ooooh. ok | |||
moritz | mux: there's not one "undef" in Perl 6, but one for every type | ||
mux | dude | 13:29 | |
one wasn't enough?! | |||
donri | muxI'd say haskell's syntax is more different than it is complicated | ||
mux | donri: oh, sorry :-) | ||
donri | :) | ||
moritz | mux: that's like all (non-native) types being Maybe by default | ||
mux points at Tony Hoare's "billion dollas mistake" | |||
moritz | mux: maybeList = Just List | Nothing | ||
mux | dollar* | 13:30 | |
colomon | niecza: say 123123123123123123123123123 * 2 | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«246246246246246246246246246» | ||
colomon | niecza: say 123123123123123123123123123 * 7 | 13:31 | |
p6eval | niecza v10-215-gec2d94f: OUTPUT«861861861861861861861861861» | ||
13:31
frettled left
|
|||
mux | I suppose that in the context of dynamic typing, it's less problematic to have null references | 13:31 | |
13:32
frettled joined
|
|||
colomon | niecza: say 123123123123123123123123123 gcd 3454756432984634718571837489371489729 | 13:32 | |
p6eval | niecza v10-215-gec2d94f: OUTPUT«3» | ||
mux | does Perl have non-nullable types? | 13:33 | |
colomon | niecza: say 123123123123123123123123123 gcd 3454756432984634718571837489371489728 | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«1» | ||
moritz | mux: yes, native types | ||
masak | mux: there's Str:D | ||
moritz | that too | ||
mux | I, er... | ||
mux 's brain explodes all over the topic | |||
masak | you did ask ;) | ||
mux | I did :) | ||
colomon | niecza: say 123123123123123123123123123123 div 123 * 123123123123123123123123123 | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«123246369492615738861985108107984861738615492369246123» | ||
dalek | ast: 19c97a0 | (Solomon Foster)++ | S03-operators/ (2 files): More tests for gcd and lcm. |
13:35 | |
moritz | mux: I think a big problem is people think "it's statically typed, so I don't need to be careful", and forget Null pointers | ||
colomon | Could someone out there please make sure I didn't just break those test files for Rakudo? I don't have anything like a recent build of nom handy to test on. | 13:36 | |
mux | moritz: which is why I like it when there are _no_ null pointers/references :-) | ||
(Haskell's undefined really doesn't count here, honestly) | 13:37 | ||
if I return a Maybe Something in Haskell, there is no way in hell you can treat it as a Something, it won't compile | |||
if I say I return a Something, there's no way for me to lie about it and return a Null-like thingie (again, forgetting about undefined but it's legitimate here) | 13:38 | ||
masak | this concludes today's Haskell advertisement. (use GHC 7.2.1, released earlier this year!) | 13:44 | |
flussence | .oO( grr... gentoo never has up-to-date language runtimes for *anything* lately... ) |
13:46 | |
13:46
thou joined
13:47
masak left
|
|||
geekosaur | (if they ever fix the bloody haskell98 breakage in all the dependencies...) | 13:47 | |
13:47
masak joined
|
|||
mux | masak: hahaha | 13:48 | |
masak | :) | 13:49 | |
13:49
MayDaniel joined
13:52
SHODAN left
13:53
grondilu joined
|
|||
grondilu | «wrong register type in lexical lookup»: pastebin.com/VVnPcBZ0 | 13:53 | |
^ while trying a simple 'my int $n = 0' | 13:54 | ||
13:54
MayDaniel_ joined
|
|||
masak | native types. they're a raw experience. | 13:54 | |
grondilu | funny thing is that it works fine when I run from command line: perl6 -e 'my int $n = 0;' | ||
jnthn | Yes, that was RT'd yesterday | 13:55 | |
slavik1 | masak: can you suggest a haskell book? | ||
jnthn | Don't use native types in the repl : | ||
*:) | |||
13:55
MayDaniel left
|
|||
Woodi think that {{{ }}} was disaster :) | 13:57 | ||
jnthn | ...quasi quoting? | 13:58 | |
Woodi | so how to type []o ? :) | ||
masak | Woodi: please make more sense. | ||
I'm interested in understanding what you really mean. | |||
Woodi | jnthn: no idea what but disaster... | 13:59 | |
masak | doom! unspecified doom, I tell you! | ||
jnthn | Woodi: So, you have bugger all idea what something is. But you think it's a disaster. Wow. You're so worth listening too. | ||
Woodi | masak: syntax like: {{{ $var }}} is good for template system me thinks | ||
masak hugs jnthn :) | |||
jnthn | Woodi: macros *are* a template system! :) | 14:00 | |
...kinda :) | |||
masak | Woodi: well, quasi quotes are... what jnthn said. | ||
Woodi | templating system which you cen find in _separate_ file :) | ||
14:01
daniel-s left
|
|||
jnthn | macro foo($a) is export { ... } # can do | 14:01 | |
14:01
GlitchMr42 joined,
GlitchMr left
|
|||
masak | Woodi: here's the problem we're trying to solve: we're trying to mix "ordinary code" and "placeholders". that's very similar to what a templating system tries to do. | 14:01 | |
14:01
GlitchMr42 is now known as GlitchMr
|
|||
masak | Woodi: your "separate file" argument doesn't really float because it's not code and HTML (or equiv) here, but code and code. | 14:02 | |
Woodi | masak: good, can i help ? | ||
masak | oh yes. | ||
learn how macros work in Perl 6, and then come talk to me ;) | |||
the more brains are in on this, the better. | 14:03 | ||
Woodi | hmm | ||
jnthn | decommute & | ||
Woodi | S06 have one paragraph for macro and next one for quasi. is somewhere something more ? | 14:05 | |
moritz | there was a post on masak's blog... | 14:07 | |
masak | latest one, actually. | ||
Woodi looks | |||
moritz | strangelyconsistent.org/ | ||
masak | also, there are a few gists, but some of that information needs revising. | ||
Woodi: you might be interested in reading gist.github.com/1148915 and gist.github.com/1149126 and gist.github.com/1156662 and gist.github.com/1293853 | 14:09 | ||
just keep in mind that it's musings, not spec ;) | |||
14:09
grondilu left
14:12
TiMBuS left
|
|||
Woodi | noted | 14:12 | |
14:13
TiMBuS joined
|
|||
moritz | macro metafor(Int $levels, &block) { | 14:14 | |
return quasi { {{{&block}}}() } if eval($levels) < 1; | |||
14:14
cognominal_ joined
|
|||
moritz | that doesn't make much sense | 14:15 | |
either $levels is an Int, then it doesn't need the eval() | |||
or it's an AST, then the type constraint blows up | |||
14:16
SHODAN joined
|
|||
moritz | (that's from the first gist) | 14:16 | |
14:17
cognominal left
14:19
risou_awy is now known as risou
|
|||
TimToady | awwaiid: using hyphens might be one step closer to Lisp, but in my mind it's one step closer to English | 14:20 | |
and that's why we also have apostrophes now | |||
slavik1 | wha? | ||
TimToady: will there be a Programming Perl 6 book or are you taking yourself out of that process? | |||
masak | nom: say my $we'have'apostrophes'now = 42 | ||
p6eval | nom 642e78: OUTPUT«42» | ||
moritz | masak: in gist.github.com/1149126, are $lhs-bound and $lhs-saved the ame thing? | ||
slavik1 | so, they are treated as \w ? | 14:21 | |
moritz | (oh, and $lhs-bound should be typed Mu | ||
) | |||
masak | moritz: yes; typo. fixing. | ||
moritz | slavik1: no | ||
TimToady | slavik1: TheDamian and I are planning to write a Perl 6 version of the camel, though it may well not have a camel on it | ||
flussence | std: sub f'' { ... } | ||
moritz | slavik1: they are only allowed between <alpha> characters | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Malformed block at /tmp/GjsmzI_pek line 1:------> sub f⏏'' { ... } expecting any of: new name to be defined routine_def traitParse failedFAILED 00:01 118m» | ||
slavik1 | moritz: ahh, ok | 14:22 | |
TimToady: cool. can't wait for it to be avail :) | |||
flussence | std: sub f′ { ... } | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Malformed block at /tmp/88mSxXQzXe line 1:------> sub f⏏′ { ... } expecting any of: new name to be defined routine_def traitParse failedFAILED 00:01 118m» | ||
slavik1 | rakudo: sub f'f {say "hello";} f'f(); | 14:23 | |
p6eval | rakudo 642e78: OUTPUT«===SORRY!===Confused at line 1, near "sub f'f {s"» | ||
slavik1 | std: sub f'f {say "hello";} f'f(); | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/Dp35YiZO7E line 1:------> sub f'f {say "hello";}⏏ f'f(); expecting any of: bracketed infix infix or meta-infix statement modifier | ||
..lo… | |||
slavik1 | rakudo: sub f'f {say "hello";}; f'f(); | ||
p6eval | rakudo 642e78: OUTPUT«hello» | ||
slavik1 | :D | ||
14:23
jaldhar left
|
|||
slavik1 | isn't that technically a bug? or is that working as intended? | 14:23 | |
TimToady | masak: macros are kind of like space folds; things that are temporarily in two places at once | 14:24 | |
moritz | slavik1: what do you think is wrong with it? | ||
slavik1 | moritz: I did not expect to have to put a semicolon after block | ||
moritz | slavik1: then you should re-read S02 :-) | ||
slavik1 | moritz: ok | 14:25 | |
TimToady | a block is a kind of term in Perl 6, so there must be either semicolon or newline between it and the next term | 14:26 | |
well, something that's not a term between, anyway | |||
slavik1 | ahh, I see | ||
thanks | |||
14:26
thou left
|
|||
slavik1 | TimToady: is the spec fairly stable at this point when it comes to basic perl6? | 14:27 | |
TimToady | yes | ||
masak | TimToady: now I *have* to write that blog post :) | ||
macros are copy-paste done right. :) | 14:28 | ||
slavik1 | cool, thanks, will download and read :D | ||
moritz | functions are copy&paste done right too :-) | 14:29 | |
masak | yes... I keep finding things that macros have in common with functions... | ||
it makes functions seem all the more scary :P | |||
TimToady | about the only place P6 cheats on the two-terms-in-a-row is in detecting a block or lambda following the expression of a control statement | 14:30 | |
14:31
mkramer joined,
mkramer left
|
|||
TimToady | well, not even a block, just a lambda | 14:31 | |
std: for 1,2,3, {.say} | |||
p6eval | std be1f10e: OUTPUT«===SORRY!===Expression needs parens to avoid gobbling block at /tmp/L2Ph09mXxF line 1:------> for ⏏1,2,3, {.say}Missing block (apparently gobbled by expression) at /tmp/L2Ph09mXxF line 1:------> for 1,2,3, {.say}⏏[3… | ||
mux | someone said lambda? | 14:32 | |
TimToady | std: for 1,2,3, -> $_ {.say} | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Expression needs parens to avoid gobbling block at /tmp/CUasSs6LYw line 1:------> for ⏏1,2,3, -> $_ {.say}Missing block (apparently gobbled by expression) at /tmp/CUasSs6LYw line 1:------> for 1,2,3, -> $_ {.s… | ||
TimToady | std: for 1,2,3 -> $_ {.say} | ||
p6eval | std be1f10e: OUTPUT«ok 00:01 124m» | ||
TimToady | mux: yes, -> is a lambda in disguise | ||
mux | nice! | 14:33 | |
moritz | but you just need to tilt your head a bit to see through the disguise... or not :-) | ||
TimToady | but it starts a term, and 3 is a term, so 3 -> is technically TTIAR | ||
14:33
sayu joined
|
|||
TimToady | we get around it by treating -> as a terminator for those constructs | 14:33 | |
mux | I now understand the given($foo) -> { ... } example I was given some time ago | ||
TimToady | yes, that's why we reversed it from what P5 does: for my $x (1,2,3) {...} | 14:34 | |
masak | :) | ||
it makes a lot of sense. | |||
the $x in -> $x {} belongs to the block, not to the 'for' keyword. | |||
TimToady | and, in fact, the -> belongs to it too, but it *looks* like an infix :) | ||
masak | nom: my @a = 1, 2, 3; for @a <-> $x { $x = 42 }; say @a.perl | 14:36 | |
p6eval | nom 642e78: OUTPUT«===SORRY!===Missing block at line 1, near "; say @a.p"» | ||
masak | b: my @a = 1, 2, 3; for @a <-> $x { $x = 42 }; say @a.perl | ||
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Missing block at line 22, near "; say @a.p"» | ||
masak | alpha: my @a = 1, 2, 3; for @a <-> $x { $x = 42 }; say @a.perl | ||
p6eval | alpha : OUTPUT«[42, 42, 42]» | ||
masak | <-> has been regressed for a long time now :/ | ||
niecza: my @a = 1, 2, 3; for @a <-> $x { $x = 42 }; say @a.perl | |||
p6eval | niecza v10-215-gec2d94f: OUTPUT«[42, 42, 42].list» | ||
masak | \o/ | 14:37 | |
TimToady | it's because juerd++ had a concussion | ||
that's his feature :) | |||
masak | yep. :) | ||
mux scratches head some more | |||
lambda ref ? | |||
TimToady | <-> is just a two-way lambda :) | ||
<-> $x means -> $x is rw | 14:38 | ||
moritz | lambda with rw parameter | ||
TimToady | which, of course, is a funny thing to call a lambda, considering | 14:39 | |
maybe we should call it a wolfda | |||
masak | we could make >-> mean "lambda with copy parameter" :P | ||
colomon | niecza: my @a = 1, 2, 3; for @a <-> $x { $x = 42 }; say @a.perl | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«[42, 42, 42].list» | ||
mux | ok | 14:40 | |
moritz | masak: and ->> "parallel iteration" | ||
TimToady | Haskell it ain't :) | ||
Juerd | TimToady: Unless I'm remembering it wrong, that feature idea was years older than the concussion :) | 14:41 | |
masak | moritz: <<->> "parallel with rw", >>->> "parallel with copy"... :P | ||
mux | hahaha | ||
TimToady | Juerd: we were speaking about why it regressed :) | ||
Juerd | Oh, I see :) | ||
mux | wouldn't that conflict with hyper-operators? :-P | ||
[Coke] | Juerd: hey! can you increase the default virtual memory available on feather so I can build rakudo there? | ||
masak | mux: ssshhh! | ||
:P | |||
mux | heh | 14:42 | |
nom: 1,2,3 <<+>> 4,5,6 | |||
p6eval | nom 642e78: ( no output ) | ||
moritz | mux: don't spoil our ideas by exposing them to reality | ||
mux | oh darn. | ||
nom: say(1,2,3 <<+>> 4,5,6) | |||
p6eval | nom 642e78: OUTPUT«12756» | ||
mux just had a concussion too | |||
Juerd | [Coke]: How much swap do you need then? | ||
TimToady | std: hyper for @x -> {...} | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Variable @x is not predeclared at /tmp/SHSMG7VYGv line 1:------> hyper for ⏏@x -> {...}Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/SHSMG7VYGv line 1:---… | ||
moritz | mux: I might add that previous versions of p6eval did print out return values if the program didn't produce any output. It confused the heck out of people. | 14:43 | |
TimToady | std: hyper for @*ARGS {...} | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/U2BeBIxtWA line 1:------> hyper for @*ARGS ⏏{...} expecting infix or meta-infixParse failedFAILED 00:01 … | ||
TimToady | innersting | ||
mux | moritz: oh it did? I guess functional people intuitvely think the bot will handle expressions and return their evaluated values, and imperative people think statements :-) | ||
TimToady | hyper can't be parsed as a function | 14:44 | |
moritz | std: my $x = for () { } | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Word 'for' interpreted as a listop; please use 'do for' to introduce the statement control word at /tmp/2rzqZgGCLG line 1:------> my $x = ⏏for () { }Unexpected block in infix position (two terms in a row) at /tmp/2r… | ||
TimToady | hyper needs to parse as statement prefix | ||
flussence | .oO( the use of minus greater-than for an assignment operator in that single case is starting to give me an OCD itch... ) |
||
TimToady | hmm, that won't work either.. | ||
std: hyper do for @*ARGS {...} | 14:45 | ||
p6eval | std be1f10e: OUTPUT«ok 00:01 122m» | ||
TimToady | there's your parallel loop | ||
moritz | how very intuitive :-/ | 14:46 | |
masak | moritz: I'd say the big problem was that the code that checked for output interfered too much with debugging and analysis. | ||
TimToady: special-case 'hyper for' to mean 'hyper do for', perhaps? | 14:47 | ||
masak pictures a 'hyper while' and gets dizzy | 14:48 | ||
TimToady | that's why hyper is something that you put on a list, not on a loop | ||
masak | yeah. | 14:49 | |
but 'hyper for' feels like it should be syntactical... | |||
TimToady | that's why I said it'd have to be a statement_prefix to work that way | ||
masak | nod. | ||
probably it's because 'eager map' works just fine. | |||
there's an expectation of <adjective> <language construct> working. | 14:50 | ||
TimToady | and hyper map is how we thought of it | ||
for is just a funny way to write a map | |||
well, in that spot, more like an adverb: hyperly do this... | 14:51 | ||
eagerly map, lazily map | 14:52 | ||
[Coke] | Juerd: good question. Probably a Gig. | 14:53 | |
14:53
SHODAN left
|
|||
TimToady | but that's starting to give me Occam's Razor burn | 14:53 | |
masak | indeed. | 14:54 | |
maybe just leave it as it is until the need arises. | |||
TimToady | is what I was planning anyway :) | 14:55 | |
Juerd | [Coke]: I'll install "swapspace", which manages it in userspace by claiming disk space. | ||
[Coke]: Can you please monitor how much is used during compilation? Then I can add that amount more permanently with real swap. | |||
moritz | about 1.5G on my machine | 14:56 | |
Juerd | [Coke]: It's installed now. You should have many GBs available now :) | ||
[Coke] | moritz: there we go. ;) | ||
Juerd | swapspace++ | ||
[Coke] | me tries to build rakudo. | ||
14:58
tokuhiro_ joined
|
|||
[Coke] | Failed allocation of 4096 bytes | 14:59 | |
Parrot VM: PANIC: Out of mem! | |||
masak | huh, attribute grammars were easier to understand than I feared. they look a whole lot like what we do when we synthesise .ast values up the parse tree in action methods. | 15:00 | |
[Coke] | ... ah, probably need to not do this inside a screen that is stuck at the old ulimit. | ||
Woodi | quasi spec is crazy thing (on first reading) :) | ||
masak | Woodi: it's a quote construct for code. :) | ||
[Coke] | Juerd: if I ssh in with a fresh shell, ulimit -v still says 524288 | 15:01 | |
Juerd | Ulimits aren't global so you must have set that yourself. | 15:03 | |
Also, the swap space manager adds more as it's needed, so even the amount you see in top and free won't be reliable :) | 15:04 | ||
15:08
thou joined
|
|||
TimToady | it really bugs me to see sub bar(\$x) { say [$x].elems }; | 15:09 | |
in my mind $ should never flatten | 15:10 | ||
Juerd | It has the flatten operator in it, | ;) | ||
masak | TimToady: where do you see that? | ||
TimToady | makes me want sub bar (\x) { say [x].elems } intead | ||
Juerd | So the S is a cushion to prevent that from happening? :) | ||
TimToady | *stead | ||
irclog.perlgeek.de/perl6/2011-10-28#i_4626925 | 15:11 | ||
or a parcel sigil | |||
Juerd | Is there any ascii left? | ||
15:11
drbean left
|
|||
TimToady | we use extended ascii these days :) | 15:11 | |
masak | yeah, that feels weird. | ||
[Coke] | Juerd: the only ulimit I see in my startup files in ulimit -c 0 | ||
[Coke] digs. | 15:12 | ||
TimToady | but since a function can return a parcel, I don't have a problem seeing [x] | ||
Juerd | [Coke]: I get "unlimited" from ulimit -v | ||
[Coke]: I still get that if I do sudo su - coke | |||
[Coke] | Juerd: so, where could it be coming from? | 15:13 | |
flussence | PAM? | ||
Juerd | I guess the easiest way to find that out is to start a new, clean, ssh session without screen and such, and run ulimit -v between each pair of steps to build rakudo | ||
15:14
dual left
|
|||
[Coke] | Juerd: as I said, I get when I do I a fresh ssh login | 15:14 | |
Juerd | Oh, I missed that. That's strange. | 15:15 | |
[Coke] | (run putty locally, ssh to feather.perl6.nl, type "ulimit -v", see the limit.) | ||
jnthn home | |||
masak | jnthn! \o/ | 15:16 | |
TimToady | sorear: I would like to change sub bar(\$x) { say [$x].elems } to instead read sub bar(\x) { say [x].elems } | ||
[Coke] | this is feather.perl6.nl, btw, in case there are multiple feathers. | ||
Juerd | [Coke]: There are limits in /etc/security/limits.conf; I don't recall having set those up but I'll remove it. | ||
TimToady | so we don't imply item semantics | ||
Juerd | There are multiple but generally "feather" refers to "feather1" :) | ||
Try again | 15:17 | ||
jnthn | TimToady: ...what? :) | ||
15:18
drbean joined
|
|||
jnthn guesses he needs to backlog something that happened while commuting.. | 15:18 | ||
TimToady | jnthn: I hate seeing $x interpolate a list | ||
[Coke] | Juerd: \o/ | ||
I'll do the build later. teeth scraping beckons. | |||
:( | 15:19 | ||
jnthn | TimToady: Where are you seeing it? | ||
masak .oO( Teeth::Scraper ) | |||
jnthn | TimToady: oh, when we do parcel binding? | ||
Hm | |||
TimToady | yeah | ||
jnthn | Yeah, the thingy is kinda contextless | ||
TimToady | and $x looks really bad in a list | 15:20 | |
jnthn | Isn't it rare enough that we can kinda just sweep it under the carpet? :) | ||
TimToady | not if we can fix it by allowing \x parameters | ||
just a bare alias | |||
jnthn | Which install...what exactly? | ||
ah | |||
OK | |||
erm | |||
sub foo(\x) { my x $y } # seems we stand a high risk of this parsing if we do so :) | 15:21 | ||
TimToady | only after a \ | ||
jnthn | right, otherwise it'd be ambiguous. | ||
with sub foo(SomeType) { } | |||
TimToady | so possibly it's really a sigil it's wanting | 15:22 | |
jnthn | I'm nervous about it being sigilless | ||
As if it's without a sigil then it becomes a name | |||
and thus parsable as a type. | |||
With all the fun consequences that entails... | |||
Oh | |||
Actually we'd explode in Rakudo if somebody tried to do that though.:) | |||
Because we don't know the value at compile time. | |||
So it can't be used as a declarative thingy | 15:23 | ||
So maybe sigilless isn't so scary after all. | |||
TimToady | if sigilless, it needs to parse as term, not listop, fershure | ||
we haven't quite invented SSA "constants" yet, but it's a gleam in my eye | 15:24 | ||
so maybe my \foo ::= expr does that | |||
jnthn | hm | 15:25 | |
TimToady | or we hack the pseudo assignment so my \foo = expr does it | ||
jnthn | So many assignments are pseudo anyway... | ||
If the suggested change to parsing declarators come through, it gets less messy to handle them also. | |||
TimToady | only on declarators, and we already said we'd like to handle that in the declarator parse | ||
jnthn | Right. | 15:26 | |
TimToady | the denerate cultural case in the SSA mindset is probably just: my foo = expr | ||
where we recognize that foo doesn't exist | |||
jnthn | Hm | ||
TimToady | or a different declarator, but it's really the same as our signature problem | ||
jnthn | It'd be a little unfortunate that it's not symmetric with in signatures though. | 15:27 | |
15:27
am0c joined
|
|||
TimToady | and it's good that it's on a parameter, not a whole sig | 15:28 | |
masak | that 'my \foo = expr' syntax actually isn't half-bad. | 15:29 | |
TimToady | it's almost pointing out that we have | and \ backwards in sigs, since |foo is kinda the opposite | ||
jnthn | Well, but the symmetry is really nice with calling and taking | ||
sub foo(|$c) { bar(|$c) } | |||
masak | ooh | 15:31 | |
"declaration mirrors use" | |||
TimToady | thing is, that's really doing two things | ||
first, it's saying bind the next parameter to the outer capture, and also don't do anything to it | 15:32 | ||
which argues that we should separate those concerns | 15:33 | ||
jnthn | It's not bind the next parameter to the outer capture though. | ||
It used to be that and then we changed it. :) | |||
Now it's "snapshot everything we haven't yet bound" | |||
TimToady | that's what I mean, but it's still a level violation | ||
and \ indicates level violation to me, not | | 15:34 | ||
jnthn | What do you mean by "don't do anything to it"? | ||
TimToady | don't itemize | ||
jnthn | Well, but a Capture kinda is an item... :) | ||
TimToady | but $x shouldn't flatten :) | ||
jnthn | And that's what you end up with in $c | ||
It won't in the |$c case. | |||
It's only the \ one that has issues there. | |||
(which may be what you're saying...just making sure we're on the same page) | 15:35 | ||
Really |$c binds just as $c would. Apart from the thing we bind is a Capture | |||
TimToady | perl6: sub foo(|$c) { say [$c].elems }; foo 1,2,3 | 15:38 | |
p6eval | pugs b927740, rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«1» | ||
15:38
cognominal_ left,
cognominal_ joined
|
|||
TimToady | perl6: sub foo(\$p) { say [$p].elems }; foo (1,2,3) | 15:38 | |
p6eval | pugs b927740: OUTPUT«***  Unexpected "\\$" expecting formal parameter or ")" at /tmp/e3LlaimaOM line 1, column 9» | ||
..rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«3» | |||
TimToady | I think 3 is a wrongish answer there | ||
because of the $ | 15:39 | ||
jnthn | Aye, we introduced \ as a "context suppressor" | ||
TimToady | and the most contextless rvalue we have is bare x | ||
jnthn | Which it's going...but that can turn out surprising in cases like ths. | ||
*doing | |||
TimToady | which leads me to believe we should shoot the $ in this use case | 15:40 | |
and possibly think about a different sigil | |||
but bare seems okayish | |||
given that \x in the sig is relatively unambiguous | |||
jnthn | std: sub foo(\x) { x } | 15:41 | |
p6eval | std be1f10e: OUTPUT«===SORRY!===Malformed parameter at /tmp/oPBLEHqe7s line 1:------> sub foo(⏏\x) { x } expecting any of: name new name to be defined parameter routine_def signatureParse failedFAILED 00:01 120m» | ||
jnthn | Guessed so. | ||
nom: sub foo(\x) { x } # hopefully thinks the same ;) | |||
p6eval | nom 642e78: OUTPUT«===SORRY!===Malformed parameter at line 1, near "\\x) { x } "» | ||
jnthn | woo :) | ||
TimToady | and then my \x = expr becomes the "sigilless" style for people who want it | ||
jnthn | std: my \x = 1 | 15:42 | |
p6eval | std be1f10e: OUTPUT«===SORRY!===Malformed my at /tmp/jAP1XnxaVi line 1:------> my ⏏\x = 1 expecting any of: scoped declarator statement end statement listParse failedFAILED 00:01 118m» | ||
jnthn | *nod* | ||
15:42
pernatiy left
|
|||
TimToady | the syntax is available :) | 15:42 | |
jnthn | Yeah. | ||
Figured it was. | |||
15:42
djanatyn is now known as djanlovesdonri
|
|||
TimToady | the need is there for clarity, and it enables SSA/sigilless programming | 15:43 | |
jnthn | Will we outlaw \$x etc? | ||
TimToady | what could possibly go wrong? | ||
probably | |||
jnthn | OK, good. | ||
I don't have any immediate bad feeling about these. | |||
TimToady | we'll need to get a bounce off of sorear++ | ||
jnthn | We may get some surprises at some point :) | 15:44 | |
TimToady | well, that's never happened before.... :P | ||
jnthn | :P | ||
TimToady | interestingly, the constant declarator is currently special casing the bareword, and we might switch to constant \pi = ... | 15:45 | |
then it's not a special case, but an explicit no-sigil-wanted here marker | 15:46 | ||
introduce-a-term marker | |||
"Unrecognized bare word found in declaration, please use \ if you meant to declare a term" | 15:47 | ||
and \x very nearly is just sugar for term:<x> | |||
15:48
tokuhiro_ left
|
|||
TimToady | in fact, \ is to the actual object what :: is its type, so my ::T \x = stuff; makes sense, and x.WHAT === T after the binding | 15:53 | |
masak | cute. | 15:55 | |
TimToady | I guess my only remaining question is whether \ is the best syntax for that | ||
I don't see a better alternative, offhand | 15:57 | ||
moritz | it might cause some confusion if we continue to use prefix \ for captures | ||
masak decommutes | 15:58 | ||
moritz | or independently I'd propose to ban \@a | ||
TimToady | and introduce $@a instead? | ||
moritz | yes | ||
or item @a | |||
or @a.item | |||
but people seem to be rather surprised that \@a doesn't do what it does in p5 | 15:59 | ||
(though I'm not really sure what it is supposed to do in p6 :-) | |||
huf | doesnt it turn @a into a non list-interpolating array-ish thingie? | 16:01 | |
or am i confused or was that ages ago :D | |||
TimToady | yes, but that's a handwavy way to say it | ||
huf | oh :( | 16:02 | |
TimToady | if it simply itemizes, then $@a is clear, or @a.item | ||
huf | and the reverse is @$a or $a.list ? | ||
TimToady | .oO(funny that itemizes in English means almost exactly the *wrong* thing) |
||
itemize ~~ iterate in English | 16:03 | ||
huf | hmm, that's only an obstacle if you speak english well enough to know :D | ||
(i didnt, before just now) | |||
tadzik | hello #perl6 | 16:04 | |
sjohnson | ( `ー´) | 16:05 | |
16:05
sayu left
|
|||
TimToady | when you itemize your deductions, you split them out into separate entries | 16:06 | |
jnthn | o/ tadzik | ||
TimToady | it means more like "items-ize", make a bunch of items | ||
huf | ennumerate? | ||
that sort of thing? | |||
TimToady | yes, that's what itemize means in English, or at least is ≅ | ||
moritz | nom: for \(1, 2, 3) { .say } | 16:07 | |
p6eval | nom 642e78: OUTPUT«1 2 3» | ||
moritz | that does seem to itemize successfully | ||
but yes, $ would be clearer for that purpose | |||
TimToady | not in the English sense :) | ||
moritz | but in the p6 sense :-) | ||
huf | would that mean \ is just unspace then? | ||
moritz | no | 16:08 | |
TimToady | nom: for $(1,2,3) { .say } | ||
p6eval | nom 642e78: OUTPUT«1 2 3» | ||
TimToady | nom: say $(1,2,3) === \(1,2,3) | ||
p6eval | nom 642e78: OUTPUT«Bool::False» | ||
TimToady | ooh | ||
perl6: say $(1,2,3) === \(1,2,3) | 16:09 | ||
moritz | are captures supposed to be value types? | ||
p6eval | rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Bool::False» | ||
..pugs b927740: OUTPUT«» | |||
moritz | perl6: say (1, 2, 3) == (1, 2, 3) | ||
p6eval | rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Bool::True» | ||
..pugs b927740: OUTPUT«1» | |||
moritz | perl6: say (1, 2, 3) === (1, 2, 3) | ||
p6eval | pugs b927740: OUTPUT«1» | ||
..rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Bool::False» | |||
moritz | perl6: say $(1, 2, 3) === $(1, 2, 3) | ||
p6eval | rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Bool::False» | ||
..pugs b927740: OUTPUT«» | |||
TimToady | er | ||
right | |||
perl6: say $(1,2,3) eqv \(1,2,3) | |||
p6eval | niecza v10-215-gec2d94f: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/lib/CORE.setting line 758 (warn @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 165 (Mu.Str @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting… | ||
..rakudo 642e78: OUTPUT«Bool::False» | |||
..pugs b927740: OUTPUT«» | |||
moritz | nom: say (\(1, 2, 3)).WHAT | 16:10 | |
p6eval | nom 642e78: OUTPUT«Capture()» | ||
TimToady | perl6: say $(1,2,3).WHAT, \(1,2,3).WHAT | ||
p6eval | pugs b927740: OUTPUT«Array::ConstCaptSub {c_feeds = fromList [MkFeed {f_positionals = fromList [IFinite 1,IFinite 2,IFinite 3], f_nameds = []}]}» | ||
..rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Parcel()Capture()» | |||
16:10
Sarten-X left
|
|||
TimToady | perl6: my @x = 1,2,3; say (\@x).WHAT | 16:12 | |
p6eval | rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Capture()» | ||
..pugs b927740: OUTPUT«Array» | |||
moritz | perl6: say $(1, 2) eqv (1, 2) | ||
p6eval | rakudo 642e78, niecza v10-215-gec2d94f: OUTPUT«Bool::True» | ||
..pugs b927740: OUTPUT«1» | |||
TimToady | biab & | 16:14 | |
16:17
simcop2387 left,
Sarten-X joined,
simcop2387 joined
16:25
daniel__ joined
16:44
daniel__ left
|
|||
[Coke] | Juerd++ | 16:46 | |
Woodi | µ 𝄞 xF0x9Dx85xA0 ❤ ✓ ✘ ✈ ✉ ✄ ∞ † π looks usefull :) | 16:47 | |
sjohnson | Juerd == perl master | 16:49 | |
16:50
GlitchMr left
|
|||
Juerd | Nonsense :) | 16:50 | |
[Coke] | skip() was passed a non-numeric number of tests. Did you get the arguments backwards? | 16:57 | |
(seeing this on some tests that are currently skipped for rakudo) | 16:58 | ||
17:01
cognominal_ left,
cognominal_ joined,
kaare_ joined
17:03
Chillance joined
|
|||
awwaiid | nome: $joe's = 'fish supply' ; say $joe's | 17:03 | |
nom: $joe's = 'fish supply' ; say $joe's | 17:04 | ||
p6eval | nom 642e78: OUTPUT«===SORRY!===Symbol '$joe's' not predeclared in <anonymous> (/tmp/Y1wE7juBFq:1)» | ||
awwaiid | nom: my $joe's = 'fish supply' ; say $joe's | ||
p6eval | nom 642e78: OUTPUT«fish supply» | ||
17:04
Sarten-X left
|
|||
awwaiid | I do use ' as "prime" in ocaml a lot, like x', x'' | 17:04 | |
TimToady | .u ʹ | 17:05 | |
phenny | U+02B9 MODIFIER LETTER PRIME (ʹ) | ||
TimToady | you can use that one | ||
awwaiid | hm! | 17:06 | |
TimToady | because it parses as a letter | ||
awwaiid adds a ʹ to his keyboard | |||
[Coke] | any recent changes to skip handling in fudge? | 17:07 | |
(I don't see anything obvious in the commit history) | |||
moritz | [Coke]: not that I know of | 17:09 | |
when my fudges don't work, I've usually misspelled 'rakudo' or 'niecza', or added a semicolon after the fudge message | 17:10 | ||
[Coke] | moritz: try to run S05-mass/rx.t (fudgeD) | ||
#?rakudo skip ':: NYI' | |||
(that's the line that's causing the argument reversal) | |||
(comes out as skip (1,':: NYI'); # <original test> | 17:11 | ||
and then rakudo's lib/Test.pm squawks. | |||
moritz | it doesn't here | ||
stale copy of roast? | 17:12 | ||
[Coke] | I swear I updated recently. Checking... | ||
urk? t/spec/ says I've a remote rakudo/rakudo | 17:13 | ||
moritz | woah. | ||
[Coke]: ah did you run a 'make release' in the rakudo dir? | |||
[Coke] | moritz: maybe a gazillion years ago. | ||
moritz | [Coke]: that removes t/spec/, and replaces it with a copy | 17:14 | |
[Coke] | This might be the checkout I cut the one release I did from. | ||
moritz | then 'git remote' will look into .. | ||
and then in ../.. | |||
just check if t/spec/ has a .git dir | |||
[Coke] | there we go. much better. | ||
ignore all that skip stuff for now. ;) | |||
moritz hates that behavior of 'make release' | 17:15 | ||
17:15
am0c left
17:16
MayDaniel_ left
|
|||
[Coke] | nom: say 4&9&20 | 17:16 | |
p6eval | nom 642e78: OUTPUT«all(4, 9, 20)» | ||
[Coke] | (oh right) | 17:17 | |
moritz | nom: say 4 +& 9 +& 20 | ||
p6eval | nom 642e78: OUTPUT«0» | ||
17:17
SHODAN joined
17:22
Sarten-X joined
|
|||
sorear | good * #perl6 | 17:24 | |
moritz | \o sorear | 17:26 | |
shachaf | Wait, wasn't it * 14 hours ago? | ||
sorear | TimToady: I do not have an immediate complaint with sub (\x) or my \x | ||
moritz | shachaf: * is polymorphic | ||
17:27
zby_home joined
17:35
daxim left,
xlq joined
17:36
diegoviola joined
|
|||
diegoviola | hi | 17:36 | |
can perl6 be used to develop apps already? i understand the language is still on developmenvt? | 17:37 | ||
[Coke] | Yes, and yes. | ||
diegoviola | development* | ||
ok | |||
sjn | sure, you can start developing :) | ||
[Coke] | early adopters welcome. even now, after a decade. | ||
[Coke] finds 5 more tests in spectest.data that are runnable. | 17:39 | ||
diegoviola | thanks | ||
masak | diegoviola: I run my blog with Perl 6. | 17:42 | |
(and have been for over a year now) | |||
diegoviola | nice | ||
masak | diegoviola: besides that, I've helped write a wiki engine, a grammar engine, a compiler, and a sudoku-ish problem solver in Perl 6. | 17:43 | |
diegoviola | cool | ||
masak | diegoviola: I'm toying with the idea of writing an editor. several people here are writing games. | ||
diegoviola | nice | 17:46 | |
i've been working with databases and web apps, i currently know ruby but i want to learn other languages, i looked into perl5+moose and i like it, but perl6 seems to have better OO support, which interests me more | |||
jnthn | Perl 6 OO is pretty nice. And there's a flexible meta-model beneath it all too, so you can make it even nicer :) | 17:47 | |
diegoviola | interesting | 17:48 | |
[Coke] | jnthn: I had to re-open 2 RTs just now due to nom regressions. | ||
at least one of them was roles related. | |||
masak | diegoviola: Moose is very nice. but I believe that Perl 6, in the long run, is nicer. | ||
diegoviola: there are also other worthy improvements 'sides OO compared to Perl 5. | 17:49 | ||
jnthn | [Coke]: RT #s appreciated, if you have them to hand. | ||
[Coke] | 72856 and 69254 | 17:50 | |
diegoviola | masak: nice | ||
[Coke] | "regressed" may not entirely be accurate, but they are failing now. ;) | ||
jnthn | Thanks. I'll try and look this weekend. I kinda want to work on bigint and compact struct and other stuff this evening. | ||
[Coke] | no worries. | 17:51 | |
diegoviola | i tried to look at python as well but their philosophy seems to clash with what i like (TMTOWTDI) | 17:54 | |
sjohnson | i like its batteries included thing. | 17:56 | |
diakopter | jnthn: compact struct or compact arrays | 17:57 | |
jnthn | diakopter: The first, but it's groundwork for the latter. | ||
sorear | diegoviola: the main thing you need to realize is that current implementations of Perl 6 are, compared to Perl 5, slower to run, much slower to parse, and use considerably more memory | ||
cognominal_ | diegovidla: with Perl6, if there is still no prebuilt way to do it you can probably invent one :) | 17:58 | |
diakopter | it can be somewhat strongly argued that a full p6 impl will always have those characteristics except on the most optimizable programs | 17:59 | |
diegoviola | sorear: interesting | ||
cognominal_: ok | |||
cognominal_ | and in an Unixish way, there is a snytactically cheap (in term of typing code) default for most things. | 18:01 | |
sorear | diakopter: imo, a large part of the point of Perl 6 is providing things like static typing so that you can make your hot spots optimizable | ||
diakopter: and I think there's large room for improvement in parsing speed, fwiw | |||
[Coke] | arg. I wish "make spectest" would use the same git prefix as I used for rakudo. or ask me, or let me config it, so I don't have to change the remotes after the fact. | 18:02 | |
diakopter | sorear: oh.. | ||
flussence | [Coke]: check out a specific commit in t/spec and the automatic git-pull won't work, but it'll keep going | ||
18:02
GlitchMr joined
|
|||
sorear | o/ GlitchMr | 18:03 | |
GlitchMr | Hi | ||
masak | diegoviola: what sorear says is important. Perl 5 is more of a problem-solver right now. sometimes Perl 6 implementations themselves get in the way of solving your problem. some of us think it's still worth it because the language is kinda awesome. :) | ||
GlitchMr: ho | |||
diegoviola | masak: i see, thanks for your advice | ||
sorear: thanks for your advice too | |||
flussence still hasn't got Text::Wrap working in any current impl. | 18:04 | ||
[Coke] | flussence: ? That doesn't help my situation, I don't think. | ||
moritz | [Coke]: what's your problem? | ||
sorear | what I said in a nutshell: if you're debating whether to use Perl or C, Perl 6 isn't for you | ||
flussence | [Coke]: am I understanding right? | ||
moritz doesn#t know what "git prefix" means | |||
sorear | (yet) | ||
flussence | .oO(probably not...) |
||
diegoviola | i read a lot that python is more suited to large application development such as financial applications, would perl+moose be just as good or better for that scenario? | 18:05 | |
moritz | I don't think python has any inherent advantage for large applications over perl 5 | ||
dalek | ast: c52f22b | coke++ | S14-roles/composition.t: rakudo fudging |
||
moritz | [Coke]: fwiw my niecza/t/spec/ is a symlink to rakudo/t/spec/, that way the two copies never go out of sync | 18:06 | |
dalek | kudo: b2cd763 | coke++ | t/spectest.data: track failures, run (fudged) tests |
||
[Coke] | moritz: I am a committer. I type "make spectest". I get a readonly clone of roast. | 18:07 | |
I then have to perform git surgery to push. | |||
sorear | diegoviola: the first real p5 Application I worked on was a 30,000 line perl+moose app, and it worked out pretty well. Does that count? | ||
flussence | oh, *that* problem... yeah, I dunno either :( | ||
[Coke] | it comes up just frequently enough to annoy me and just infrequently enough for me to just complain instead of fixing it. ;) | 18:08 | |
18:08
wolfman2000 joined
|
|||
[Coke] hasn't run spectest in a while. lot of failures. | 18:09 | ||
moritz thinks he knows how to fix it | |||
flussence | I usually just have a good copy separate from t/spec and copy any local changes to that one... | ||
diegoviola | sorear: sure :) | 18:10 | |
moritz | I usually add the line | ||
pushurl = [email@hidden.address] | |||
diegoviola | thanks | ||
moritz | to the [remote "origin"] section of .git/config | ||
flussence | ooh, clever | ||
moritz | now I just need to automate 'make spectest' to do that when it fetches a new copy | ||
18:11
Trashlord left
|
|||
moritz | now how do I do that with git config? | 18:11 | |
git config remote=origin.pushurl doesn't fetch it | |||
[Coke] | moritz++ | ||
flussence | git config remote.origin.pushurl=xyz? | 18:12 | |
might be a space instead of =, can't remember | |||
moritz | flussence: that seems to work, thanks | ||
yes, space for supplying the value | |||
flussence | git-config is similar enough and different enough from sysctl that I get it wrong every time, for both :) | 18:13 | |
[Coke] | anyone run a rakudo spectest recently? | 18:14 | |
moritz tests a patch | |||
[Coke]: yes, a few hours ago. All PASS | |||
[Coke] | odd. I'm getting failures all over the place. | 18:17 | |
(on feather) | |||
18:18
benabik left
|
|||
moritz | is icu installed? | 18:18 | |
18:19
colomon left
|
|||
diegoviola | what is rakudo? | 18:21 | |
moritz | diegoviola: a Perl 6 compiler | ||
diegoviola | rakudo runs on parrot? | ||
moritz | japhb: are you still working on speeding up RANGEPOS? | 18:22 | |
diegoviola: yes | |||
diegoviola | nice | ||
does rakudo or parrot have a JIT? | |||
moritz | no | ||
parrot is planning a huge refactor that should allow an efficient JIT | 18:23 | ||
but its result is nowhere near in sight | |||
diegoviola | i see | ||
flussence | perl6: my $a = now; 1..1_000_000; say now - $a; | 18:24 | |
p6eval | rakudo 642e78: OUTPUT«0.0153431133006891» | ||
..pugs b927740: OUTPUT«*** No such subroutine: "&now" at /tmp/DKj4XOjD82 line 1, column 4-12» | |||
..niecza v10-215-gec2d94f: OUTPUT«Unhandled Exception: Cannot use value like Instant as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 187 (Any.Numeric @ 4)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/deSyTw18rY line 1 (mainline @… | |||
diegoviola | i see lots of modern VM these days want to have a JIT and they want to implement their own VM in their own native language, like pypy or rubinius, etc | ||
Woodi wonders how to write code that will survive decades.... | 18:25 | ||
tadzik | write good code | ||
moritz | we'd be happy if parrot provided us a good JIT, and we wouldn't need to write our own JIT | ||
flussence | just don't assume $year.chars == 4 and you'll be fine :) | ||
Woodi | I wonder about infrastructure problem rather :) | 18:26 | |
moritz | Woodi: write good code, so that people will maintain it | ||
diegoviola | is parrot and rakudo written in perl or C? | ||
18:27
risou is now known as risou_awy
|
|||
moritz | diegoviola: parrot is written in C and custom DSLs | 18:27 | |
diegoviola: rakudo is mostly written in Perl 6 | |||
diegoviola | nice | ||
cool :D | |||
flussence | sorear: "now - $instant" should've worked above, according to S02:1383 | ||
moritz | (it also has some C parts for speed) | ||
Woodi | diegoviola: why you want to learn another language ? | 18:28 | |
flussence heads for the New Issue button... | 18:29 | ||
diegoviola | Woodi: i find languages interesting, i was programming in php a few years ago, then i decided to learn Ruby and it teach me some things (like object-oriented programming, etc), I realized that Perl inspired Ruby in some ways so now I would like to learn perl :) | 18:30 | |
Woodi: other than curiosity I don't have other reasons... | 18:31 | ||
flussence | wait, how does modulus work on Instants? | ||
diegoviola | Woodi: I remember when I was working with some projects and I had the ruby interpreter crash on me a few times... I'm looking to learn a good language with a stable interpreter as well | ||
moritz | diegoviola: curiosity is a very fine reason | 18:32 | |
ashleydev | how would you output SSA constants in an interpolated "" string? | ||
18:32
Trashlord joined
|
|||
Woodi | diegoviola: then advice gor you: stay and listen on this channel :) you will be immediatly exposed to object languages, functional languages, historical languages, languages development, language release, compiler building and more :) | 18:32 | |
cognominal_ | diegovicla: stability is not the forte of Perl 6 implementations at this point | ||
flussence | hm, niecza doesn't have Durations, that'd explain why Instant arithmetic doesn't work... | ||
diegoviola | Woodi: great, thank you | 18:33 | |
moritz: :) | |||
moritz | seen japhb | 18:34 | |
aloha | japhb was last seen in #perl6 10 hours 11 mins ago saying "sleep &". | ||
18:35
pnu left
|
|||
Woodi | g* #perl6 | 18:35 | |
18:36
pnu joined
|
|||
dalek | kudo/nom: 087a68e | moritz++ | tools/build/Makefile.in: [build] when cloning roast, set it up for committing too [Coke]++ for complaining; I too found the old behavior inconvenient, but never enough to take action. |
18:37 | |
cognominal_ | jnthn, what the deal with the fetch_method? Currently it is always set to null in set_container_spec(). | 18:38 | |
sorear | diegoviola: Parrot used to have a JIT but it turned out it was actually making Parrot _slower_ so they removed it | 18:40 | |
moritz | well, there were certain conditions where it did make parrot faster | 18:41 | |
but it was limited to i386, and a nightmare to maintain | |||
diegoviola | sorear: i see | ||
[Coke] | moritz++ | 18:44 | |
diegoviola | perl6 looks very interesting, i like how the vm is separate from the interpreter | ||
18:44
mishin left
|
|||
jnthn | cognominal_: Support for (not yet available) custom scalar container types. | 18:45 | |
diegoviola | parrot and rakudo | ||
and how they work together | |||
sorear | diegoviola: your use of "the" is incorrect | 18:46 | |
rakudo is jnthn/pmichaud's Perl 6 interpreter; it's far from the only one | |||
cognominal_ | jnthn, what kind of custom scalar container type? | ||
diegoviola | sorear: oh, there are many perl6 compilers? | 18:47 | |
[Coke] | moritz: if it's ICU related, i still shouldn't get any failures, ne? it should be skipping things that rely on ICU. | ||
diegoviola: check out perl6.org/compilers | 18:48 | ||
jnthn | cognominal_: Basically, the Perl 6 way to do the kind of things tie does in Perl 5. | ||
diegoviola | wow nice | ||
is there a perl6 compiler that runs on the JVM? | 18:49 | ||
i see there is one for CLR | |||
cognominal_ | jnthn, thx | ||
diegoviola | sorear: thanks for correcting me :) | 18:50 | |
sorear | well I kindof have an interest | ||
I'm the guy behind t he #2 compiler :) | |||
masak | perl6: my @a = [5, 1], [4, 4]; say @a.map({ .[0] ** 3 + .[1] ** 3}).perl; say @a.min(:by({ .[0] ** 3 + .[1] ** 3})).perl; say @a.sort(:by({ .[0] ** 3 + .[1] ** 3})).perl | 18:51 | |
p6eval | niecza v10-215-gec2d94f: OUTPUT«(126, 128).listUnhandled Exception: Unable to resolve method min in class Array at /tmp/UI2UU0EJwb line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 2208 (module-CORE @ 60)  at /home/p6eval/niecza/lib/CORE.setting line 2209 (main… | ||
..rakudo 642e78: OUTPUT«(126, 128).list[4, 4]([4, 4], [5, 1])» | |||
..pugs b927740: OUTPUT«(126/1, 128/1)pugs: Named argument found where no matched parameter expected: (by,Ann (Pos (MkPos "/tmp/O9OMZjejhi" 1 83 1 107)) (Syn "sub" [Val (VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subOuterPads = [PRuntime {pr_pad = MkPad (padTo… | |||
dalek | href="https://perl6.org:">perl6.org: a7a7c0d | diakopter++ | source/compilers/index.html: mark sprixel as old |
||
cognominal_ | jnthn, I suppose this means to be able to transparently handle foreign vtable | ||
masak | niecza: my @a = [5, 1], [4, 4]; say @a.map({ .[0] ** 3 + .[1] ** 3}).perl; say @a.sort(:by({ .[0] ** 3 + .[1] ** 3})).perl | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«(126, 128).listUnhandled Exception: Excess arguments to List.sort, unused named by at /home/p6eval/niecza/lib/CORE.setting line 0 (List.sort @ 0)  at /tmp/Pjcbbb8PX8 line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 2208 (module-… | ||
masak | meh. | ||
sorear | drop the :by | ||
cognominal_ | *vtables | ||
masak | right, but then it doesn't mean the same... | 18:52 | |
sorear | $by is a positional argument in the method form | ||
diegoviola | sorear: cool, you made a compiler that runs in Mono/CLR? | ||
masak | oh! | ||
sorear++ | |||
sorear | it's only a named argument for the listop iirc | ||
diegoviola: yes | |||
masak | sorear: even so, a named argument should bind to a positional parameter... | ||
diegoviola | sorear: interesting | ||
japhb | moritz, [re: RANGEPOS] I had to put it down for the night last night, and have $day_job today (and thus have not backlogged, just noticed you highlighting me). I can work on it later tonight, or you can commit whatever you've come up with. Mostly I was using it as a learning experience, so no worries. | ||
sorear | masak: I thought we got rid of that | ||
diegoviola | sorear: is it faster than running it on parrot? | ||
sorear | masak: didn't you write a manifesto or something? :) | ||
diegoviola: yes, but the margin is a lot smaller than it used to be | 18:53 | ||
jnthn | sorear: In Niecza, does Int always use BigInteger underneath, or does it "auto-upgrade" from a normal int? | ||
sorear | jnthn: it auto-upgrades, but tries to hide it from the user | ||
jnthn | sorear: It's still of type Int, though? | 18:54 | |
e.g. it's just different on the inside? | |||
diegoviola | sorear: nice | ||
jnthn | niecza: say 1111111111111111111111111111111111111111111111111111111111111111111111111111.WHAT | 18:55 | |
sorear | jnthn: yes | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«Int()» | 18:56 | |
jnthn | ok | ||
...er, p6eval? :) | |||
oh, grr, some weird lag going on. | |||
[Coke] | niecza: say 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 | 18:57 | |
p6eval | niecza v10-215-gec2d94f: OUTPUT«111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111… | ||
[Coke] | O_o | ||
flussence | niecza: my $n = ('1' x 300).eval; say $n.WHAT; say $n.chars; | ||
jnthn | It's BIG. ;) | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«Unhandled Exception: Unable to resolve method eval in class Str at /tmp/NyR1H9OJZA line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2208 (module-CORE @ 60)  at /home/p6eval/niecza/lib/CORE.setting line 2209 (mainline @ 1)  at <… | ||
masak | sorear: :) | ||
flussence | nuts. | ||
niecza: my $n = eval('1' x 300); say $n.WHAT; say $n.chars; | |||
sorear | jnthn: internally I have an overloaded method Variable MakeInt(long value) { ... }; Variable MakeInt(int value) { ... }; Variable MakeInt(BigInteger value) { ... } which handles {up,down}grading in all cases | ||
p6eval | niecza v10-215-gec2d94f: OUTPUT«Int()300» | ||
jnthn | sorear: OK. | 18:58 | |
sorear: I'm wondering what performance hit I get from Int always being BigInteger, especially since I now have reasonable "int" support for the other thing. | |||
...and that I can do so without any extra GC overhead. | |||
Guess the only way is to try it. :) | 18:59 | ||
sorear | in particular arithmetic on 'int' is performed in 64-bit precision, not BigInteger (should be especially not-slow on amd64 :D ) | ||
jnthn | *nod* | ||
dalek | kudo/nom: 1be6534 | moritz++ | src/core/Str.pm: Speed up Str.succ and .pred ... by using natively typed variables, and avoiding calls in favor of nqp:: opcodes |
19:05 | |
jnthn is happy to see the natives being put to good use :) | 19:10 | ||
diakopter | that's what the invaders said | 19:11 | |
jnthn | :P | ||
cognominal_ | diakopter++ | 19:14 | |
19:15
nvteighen joined
19:20
nvteighen left
19:27
soh_cah_toa joined
|
|||
sorear looks into the " bug | 19:30 | ||
o/ soh_cah_toa | |||
soh_cah_toa | sorear: howdy | ||
sorear | hrm, seems I had it quite wrong | 19:32 | |
it wasn't actually an ltm issue, it's a bug in niecza's nibbler | 19:33 | ||
19:36
zby_home left
19:37
zby_home__ joined
|
|||
sorear | I should have fixed this weeks ago, it's much easier than I thought and not at all a bootstrap problem | 19:39 | |
diakopter was doing stupid things with nested eval | 19:40 | ||
20:03
MayDaniel joined
|
|||
dalek | ecza: e42a15a | sorear++ | src/niecza: Fix crash with end-of-input while parsing a string |
20:03 | |
ecza: 82c7878 | sorear++ | lib/Kernel.cs: Add NIECZA_KEEP_IL for bootstrap project |
|||
moritz -> sleep | 20:05 | ||
masak | 'night, moritz. dream of sleep :) | ||
20:08
GlitchMr left
20:10
dual joined,
wolfman2_ joined
20:13
wolfman2000 left
20:16
bluescreen10 left
20:20
On42 joined
20:24
SHODAN left
20:25
SHODAN joined
20:31
bluescreen10 joined
20:33
wolfman2_ left
20:46
colomon joined
20:53
donri left
20:57
sirmacik left
20:58
sirmacik joined
21:01
benabik joined
|
|||
On42 | /whois UTF-8 | 21:04 | |
sjohnson | On42: our friend | ||
On42 | :) | ||
21:05
zby_home__ left
21:09
djanlovesdonri is now known as djanatyn
|
|||
sorear | On42: are you new here? | 21:14 | |
21:16
fsergot left
|
|||
On42 is ancient as Perl | 21:18 | ||
sorear | heh. | ||
actually, I'm three years younger than Perl... | |||
On42 | lol | ||
sorear | you're welcome to #perl6 anyway. | 21:19 | |
im2ee | Good night! o/ | ||
21:19
im2ee left
|
|||
sorear | phenny: "wychodzi"? | 21:19 | |
phenny | sorear: "leaves" (pl to en, translate.google.com) | ||
masak almost mis-tabs imarcusthis again | |||
On42 | Been on irc since its first server, cannot recall when it was. Then was on another #perl before this channel was created on this server. dalnet or efnet cannot recall | ||
thanks | |||
sorear wonders if On42 knows TimToady | 21:20 | ||
masak | On42: what do you think of Perl, of Perl 5, and of Perl 6? just curious. | ||
slavik1 | you mean splitnet? | ||
On42 | Anyone here using Perl Translate V.2? I have some short and fast function for it - its missing on CPAN | ||
slavik: were they all splittnets? ;-) | 21:21 | ||
I think it was dreamnet the first server- we were only few hundreds users, then eunet and efnet came later. | |||
slavik1 | On42: I know that back in my youngin year (I am 26 now) dalnet was known for splitting a lot | ||
On42 | Google Translate v2, sorry for the mistake | 21:22 | |
Slavik: splitting was fun :) I was in my twentees back then, it was used for irc wars LOL nick collides kills etc | |||
slavik1 | oh man | 21:23 | |
On42 | ops wars... when the splits were joined | ||
slavik1 | sounds like a dangerous place :) | ||
On42 | it was fun :) | ||
slavik1 | On42: what year was this? gotta ask :) | 21:24 | |
On42 | over 12 years ago... | ||
15 years ago at least :) | |||
sorear | phenny: "liście" | 21:25 | |
phenny: "liście"? | |||
phenny | sorear: "list" (pl to en, translate.google.com) | ||
On42 | I used phoenix back then as irc client, mirc and bitchx came later | ||
sorear | phenny: "liści"? | ||
phenny | sorear: The pl to en translation failed, sorry! | ||
sorear | phenny: "liść"? | ||
phenny | sorear: The pl to en translation failed, sorry! | 21:26 | |
On42 | <phenny> you need help with Google Translate API? | ||
sorear | On42: ? | ||
On42 | my $json = decode_json($res->decoded_content); will code you utf-8 | 21:27 | |
sorear | On42: <nick> Text is freenode's convention for quoting someone, and it's bad form here to use it in any other way | ||
On42 | Ah.... | ||
Thought you were struggelig with the v2 - there is still no API examples for Perl there - very tragic that Google forgot us :( | 21:28 | ||
21:33
xlq left
|
|||
sorear | On42: I didn't write phenny | 21:36 | |
On42: I think it's written in Python anyway | |||
colomon just tried to start a C++ function definition with "my $"... doh! | 21:41 | ||
benabik | colomon: How'd that work out for you? | ||
sorear | o/ colomon | ||
colomon | \o | ||
benabik: well, I didn't hit myself in the head hard enough to hurt me | 21:42 | ||
sorear | why would anyone start a function definition with $ anyway? :) | ||
21:44
benabik left
21:45
japhb_ joined
|
|||
colomon | sorear: what benefits is the (now-merged! \o/) serialization stuff supposed to bring? (btw, my Gtk stuff appears to work fine with the latest Niecza.) | 21:47 | |
sorear | colomon: actually working BEGIN | 21:48 | |
colomon | ooooo | ||
colomon just got a double-yolked egg while cooking dinner | 21:52 | ||
21:54
SHODAN left
|
|||
masak | 'night, #perl6 | 21:56 | |
japhb_ | night | ||
sorear | bye | ||
21:56
mj41 left
21:59
bluescreen100 joined
|
|||
dalek | p/bigint: d548c21 | jnthn++ | / (126 files): Bring in libtommath bigint library. Build it and link it all into an nqp_bigint.ops file (which is just a stub at the moment). |
22:03 | |
p/bigint: bcf7a04 | jnthn++ | src/6model/sixmodelobject.h: Extend the REPR API a little in preparation for supporting inlining of more complex types in objects. Most immediately this is for bigint support, but it's also the basis for compact structs, and later compact arrays and nested structs in NCI. |
|||
p/bigint: 65f926d | jnthn++ | src/6model/reprs/P6int.c: Fix copy-pasto in an error. |
|||
p/bigint: 22f49c1 | jnthn++ | src/6model/ (2 files): A little infrastructure for dynamically registering 6model representations outside of the 6model core. |
|||
p/bigint: fcd90db | jnthn++ | / (4 files): First cut of a P6bigint REPR, plus bigint library initialization code. With this, we can declare a type with repr('bigint') and have it box/unbox native ints; it's allocating the libtommath big integer under the hood. |
|||
p/bigint: 9491f38 | jnthn++ | tools/build/Makefile.in: Make sure bigint ops file is copied to dynext dir. |
|||
p/bigint: 2dcba38 | jnthn++ | src/ops/nqp_bigint.ops: Add a few ops to check out some basic arithmetic functions; seems to work. |
|||
colomon | oh my! | 22:04 | |
22:05
swarles joined
|
|||
jnthn | Some way to go yet, but good to have got it started. :) | 22:06 | |
Plus this'll make me deal with the missing bits in 6model to deal with compact struct stuff. | |||
[Coke] | there's a v2 translate API? last I heard they were going to sunset the xlate API | 22:07 | |
jnthn++ #unstoppable. | 22:08 | ||
22:08
jdv79 left
|
|||
jnthn | [Coke]: Don't tempt fate :P | 22:08 | |
22:08
jdv79 joined
22:09
kaare_ left
22:13
packetknife joined
|
|||
japhb_ | nom: sub foo() { say "CALLED"; return (42,) }; sub bar($q) { $q }; say bar(|foo()); | 22:18 | |
p6eval | nom 1be653: OUTPUT«CALLEDCALLED42» | ||
22:18
bluescreen100 left,
bluescreen10 left
|
|||
japhb_ | Why is foo() being called twice? | 22:19 | |
jnthn | mmm | 22:21 | |
...braino by person who implemented |? | 22:22 | ||
22:22
SHODAN joined
|
|||
dukeleto | jnthn: are you planning on using parrot-gmp for bigints in nqp? | 22:22 | |
jnthn: github.com/bubaflub/parrot-gmp | 22:23 | ||
diakopter | jnthn: what license was libtommath | 22:24 | |
22:25
packetknife left
|
|||
japhb_ | diakopter, dual: public domain and DWTFYWT | 22:26 | |
jnthn, heh | |||
sorear | nom: sub foo() { return rand > 0.5 ?? \(1, :a(2)) !! \(3, :a(4)) }; sub bar(|$x) { say $x.perl }; bar(|foo); | ||
p6eval | nom 1be653: OUTPUT«Capture.new()» | ||
sorear | nom: sub foo() { return rand > 0.5 ?? \(1, :a(2)) !! \(3, :a(4)) }; sub bar($x, :$a) { say $x; say $a }; bar(|foo); | ||
p6eval | nom 1be653: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in sub bar at /tmp/wrGXtReXgm:1 in block <anon> at /tmp/wrGXtReXgm:1 in <anon> at /tmp/wrGXtReXgm:1» | ||
sorear | nom: sub quux(|$a) {$a}; sub foo() { return rand > 0.5 ?? quux(1, :a(2)) !! quux(3, :a(4)) }; sub bar($x, :$a) { say $x; say $a }; bar(|foo); | 22:27 | |
p6eval | nom 1be653: OUTPUT«34» | ||
sorear | nom: sub quux(|$a) {$a}; sub foo() { return rand > 0.5 ?? quux(1, :a(2)) !! quux(3, :a(4)) }; sub bar($x, :$a) { say $x; say $a }; bar(|foo); | ||
p6eval | nom 1be653: OUTPUT«34» | ||
sorear | nom: sub quux(|$a) {$a}; sub foo() { return rand > 0.5 ?? quux(1, :a(2)) !! quux(3, :a(4)) }; sub bar($x, :$a) { say $x; say $a }; bar(|foo); | ||
p6eval | nom 1be653: OUTPUT«12» | ||
sorear | nom: sub quux(|$a) {$a}; sub foo() { return rand > 0.5 ?? quux(1, :a(2)) !! quux(3, :a(4)) }; sub bar($x, :$a) { say $x; say $a }; bar(|foo); | ||
p6eval | nom 1be653: OUTPUT«32» | ||
sorear | as I thought | ||
jnthn | japhb_: got patch for it locally | 22:28 | |
japhb_ | jnthn, excellent, thanks! | ||
jnthn | japhb_: Just gonna spectest then will push it. | 22:29 | |
diakopter | niecza: " | ||
japhb_ wonders if anything will get measurably faster with the fix in place. :-) | |||
p6eval | niecza v10-217-g82c7878: OUTPUT«===SORRY!===Bogus statement at /tmp/aUUFWx_iiW line 1:------> <BOL>⏏"Parse failed» | ||
jnthn | diakopter: What japhb_ said. Basically, we're free to bundle it. | ||
dukeleto: No | |||
dukeleto: I wanted something that didn't require people to deal with dependencies, and I wanted fairly deep 6model integration. | 22:30 | ||
dukeleto: Also, I'm wondering if I can get away without having to do the upgrade-on-demand thing. | 22:31 | ||
dukeleto: And the overhead of going through NCI would have almost certainly made the answer "no" | 22:32 | ||
22:36
bluescreen100 joined,
bluescreen10 joined
|
|||
dalek | kudo/nom: 9c6aedb | jnthn++ | src/Perl6/Actions.pm: Fix double-evaluation bug in | found by japhb++. |
22:37 | |
On42 | phenny: "fantastisk"? | 22:38 | |
phenny | On42: "fantastic" (da to en, translate.google.com) | ||
On42 | phenny: "hvorfor bruker jeg ikke Perl"? | 22:39 | |
phenny | On42: "why I do not use Perl" (no to en, translate.google.com) | ||
sorear | what, C# won't let me goto into a block? :( | ||
jnthn | sorear: iirc, that stems from a CLR restriction on forward jumps, so they can single-pass JIT | 22:40 | |
(though I may be misremembering...) | |||
tadzik | sorear: "liście" can be either "(on the) list", or "leafs" | 22:41 | |
jnthn | japhb_: Hope the above fix helps. Thanks for finding the bug :) | ||
One of those "omg, I did what" ones :) | |||
On42 | phenny: Perl: use CGI; use Encode; use JSON::XS; use LWP::UserAgent; my $url = "www.googleapis.com/language/transl...et=$to";my $ua = LWP::UserAgent->new();my $res = $ua->get($url);my $json = decode_json($res->decoded_content);return "$json->{data}->{translations}[0]->{translatedText}"; | ||
sorear | tadzik: in English, the plural of leaf is (irregular) "leaves" | 22:42 | |
tadzik | sorear: ah, I was considering "leaves", but then backspaced and went "leafs" :) | ||
sorear | tadzik: GlitchMr's quit message was wychodzi or something like that | ||
On42: what do you think you are doing? | |||
tadzik | yeah, that's literally "leaves" in terms of "leave" | ||
On42 | <sorear> trying to convince the bot to use Perl instead? ;-) | 22:43 | |
sorear | I did not say that | ||
On42 | Useless its a Python irc bot... | 22:44 | |
sorear | On42: if you want to pick a fight with sbp++, do it outside. | 22:45 | |
On42 | Who is sbp? | ||
sorear | On42: we don't do language bashing here | ||
phenny is sbp's bot | 22:46 | ||
On42 | phyton is a great language. Just that Google Translate v.2 is lacking a Perl example. First time Google does not provide a Perl example in its apis! | ||
sorear | I'm guessing you're here because you got banned from #perl. | 22:47 | |
swarles | lol | ||
On42 | There is a need to delete/update the actuall CPAN modules... none of them works since august when it comes to fetching googel translations with Perl. | ||
sorear: Actually.. I got a new record, been in #perl 1 hour without being banned! LOL | 22:48 | ||
sorear | On42: talk to the module maintainers | ||
On42 | sorebear: I am not complaining I wrote my little module already (see above :). | 22:49 | |
I am just alerting- Google is dumping Perl - I do not like that! | |||
sorear | #perl6 is not responsible for the contents of search.cpan.org/CPAN/authors/id/E/EJ/EJS/ | ||
On42: YOU ARE ALERTING THE WRONG PEOPLE> | |||
swarles | lol | ||
tadzik | heh | 22:50 | |
On42 | cool... he is from UiB - I also studied there! :) | ||
tadzik | how is google "dumping Perl"? Like, not using it? Did they ever use it? | ||
sorear | I don't think they ever did | ||
does it really require that much intelligence to translate a Python sample to Perl? | |||
tadzik | I don't think so | 22:51 | |
it's the Dark Side that's supposed to be easier, so moving _to_ Perl shouldn't be hard | |||
sorear | google has been a {Python,C,C++,Java} house since forever | ||
On42 | tadzik: by only providing api examples to developers in other languages see here: code.google.com/apis/language/trans...aries.html | 22:52 | |
jnthn computes factorial 1000 just for fun | |||
dalek | ecza: ead51d9 | sorear++ | lib/ (3 files): Skeleton of -gen-app; use named methods for builtin methods to reduce fragility |
||
tadzik | oh well | 22:53 | |
On42 | Maybe I should ask them to add my code from above? I just dont have time to go through all the documentaion of how to suggest them code examples.. too old and lazy | ||
sorear | On42: if you want to talk to Google, talk to Google | ||
22:53
ggoebel left
|
|||
dalek | osystem: fc00e23 | (Timothy Totten)++ | META.list: Added Esquel to ecosystem. |
22:53 | |
sorear | On42: if you want to talk to [email@hidden.address] talk to [email@hidden.address] | ||
On42 | #google is dead | ||
tadzik | maybe just publish it on CPAN, who cares about what google publishes if we have a CPAN module | 22:54 | |
On42 | :) | ||
sorear | I did not say #google. Are you even paying attention? | ||
On42 | tadzik: true, but its a way to get more users to use Perl | ||
sorear: google is also dead :p | |||
sorear | Someone else take over, I can't do this anymore. | 22:55 | |
On42 | Just having fun with you-dont take it eprsonal sorear :) | ||
tadzik | sorear: just care less | 22:56 | |
On42 | Maybe we should have a comptetion and see who gets banned first in #perl with some rules: no swearing, no flooding etc, only relevant code discussion? :) | ||
diakopter | On42: that's very much not on topic here | ||
On42 | nm | 22:57 | |
japhb_ | On42: Two things: 1) This channel is about Perl 6, NOT Perl 5. 2) This channel prides itself on tolerant and kind behavior. Please take negative behavior and trolling elsewhere; it's not who we are. | ||
tadzik | esquel is quite cool | 22:58 | |
dalek | p/bigint: f75ce8f | jnthn++ | src/ops/nqp_bigint.ops: String to bigint, bigint to string. |
||
22:58
ggoebel joined
|
|||
tadzik sleeps, o/ | 22:58 | ||
22:59
dual left
|
|||
jnthn | gist.github.com/1323796 # the current fun you go through with bigint :) | 22:59 | |
On42 | japhn: i would be happy to help you taking trolling and negative behavior elsewhere, but i am afraid that you are talking to the wrong person. Frustartion can also be a product of pure misunderstanding as well as other socio-psychological factors. | ||
flussence | ok, I'm sick of this guy now. | ||
colomon | hugme: hug flussence | 23:00 | |
flussence | ty | ||
diakopter | On42: your reply makes no sense; please don't take this as a request to explain it, however. | ||
colomon | oh noez, hugme is down! | ||
tadzik hugs flussence | |||
someone needs to pick up duties | 23:01 | ||
On42 | diakopter: i was not replying to you - please do not take this as an offense. | ||
colomon | tadzik++ | ||
diakopter | On42: why would you think I thought you were replying to me? | ||
23:01
ChanServ sets mode: +o diakopter
|
|||
tadzik ducks | 23:01 | ||
On42 | diakopter: why would you suggest that I was thinking of you? | ||
diakopter | I didn't | 23:02 | |
On42 | neither did i :) | ||
23:02
packetknife joined
|
|||
diakopter | On42: please go elsewhere | 23:02 | |
On42 | no, i like this channel. | 23:03 | |
diakopter | or talk about Perl 6-related matters | ||
flussence | actual on-topic; I want a cheap way to dump all of a function's args, (:@_, :%_).perl won't do what I want if they're all pre-declared in the signature, will it? | ||
sorear | niecza: sub foo($x,$y,$z) { say callframe.args.perl }; foo(3,4,5) | ||
p6eval | niecza v10-217-g82c7878: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/ZAZPH06CNG line 1:------> sub foo(⏏$x,$y,$z) { say callframe.args.perl }; f $y is declared but not used at /tmp/ZAZPH06CNG line 1:------> sub foo($x,⏏$y,$z… | ||
sorear | niecza: sub foo($x,$y,$z) { say callframe.args.perl }; foo(3,4,5) #OK | ||
p6eval | niecza v10-217-g82c7878: OUTPUT«\(3, 4, 5)» | ||
sorear | niecza: sub foo($x,$y,$z,:$pie) { say callframe.args.perl }; foo(3,4,5,:!pie) #OK | ||
p6eval | niecza v10-217-g82c7878: OUTPUT«\(3, 4, 5, |{"pie" => Bool::False})» | 23:04 | |
flussence | sorear++ | ||
jnthn | Note you can also use |$c at any point in a sig and it collects all the as-yet unbound argument,s but doesn't prevent them from being bound to parameters afterwards. | ||
colomon | rakudo: sub foo { say @_.perl; say %_.perl; }; foo(1, 2, 3); | 23:05 | |
p6eval | rakudo 9c6aed: OUTPUT«Array.new(1, 2, 3)().hash» | ||
colomon | rakudo: sub foo { say @_.perl; say %_.perl; }; foo(1, 2, 3, :sam(25)); | ||
p6eval | rakudo 9c6aed: OUTPUT«Array.new(1, 2, 3)("sam" => 25).hash» | ||
jnthn | nom: sub foo(|$c, $a, $b) { say $a; say $b; say $c.list }; foo(1,2) | ||
p6eval | nom 9c6aed: OUTPUT«===SORRY!===Cannot put required parameter after variadic parameters at line 1, near ", $b) { sa"» | ||
23:05
swarles left
|
|||
On42 | I will leave - just a note to TimToady in case you are here: Get rid of these ego wankers if you want to get anywhere with Perl. Their ego issues is just as long as php namespace... ciao | 23:05 | |
jnthn | oh heh | ||
tadzik | wat | ||
flussence | and he reveals his true nature :) | ||
shoo. | |||
On42 | diakopter> shoot | ||
flussence | pretty weak as far as trolls go, watch him get annoyed now when he has to leave of his own volition :) | 23:07 | |
tadzik | g'night | ||
flussence | o/ | ||
jnthn | night, tadzik | ||
colomon | \o | ||
On42 | I did Perl long before you even sucked on you mother breast, flussence. Who are you to call me a troll? | 23:08 | |
flussence | heh, so cute :) | ||
On42 | i am sure it was. | ||
23:08
diakopter sets mode: +b *!*On42@*.bb.online.no,
On42 was kicked by diakopter (On42))
|
|||
jnthn | diakopter++ | 23:08 | |
cognominal_ | jnthn++ | 23:09 | |
jnthn | OK, will hack on bigint some more tomorrow :) | ||
colomon | jnthn++ | 23:10 | |
and yeah, diakopter++ | |||
japhb_ | jnthn++ # And thanks for fixing the double-call bug (which is still building, sigh ...) | 23:11 | |
23:11
molaf__ joined
23:13
molaf_ left
|
|||
flussence | hm, now I know exactly what args my function was called with when it dies, and I still haven't a clue where in its 50 or so lines it goes wrong... | 23:14 | |
std: if my $a = $str.match(rx/foo/) { $a } | 23:15 | ||
p6eval | std be1f10e: OUTPUT«===SORRY!===Variable $str is not predeclared at /tmp/mZt2C2R44Q line 1:------> if my $a = ⏏$str.match(rx/foo/) { $a }Check failedFAILED 00:01 124m» | ||
flussence | std: my $str; if my $a = $str.match(rx/foo/) { $a } | ||
p6eval | std be1f10e: OUTPUT«ok 00:01 124m» | ||
jnthn | ok, I'm gone for the night...hopefully I manage more than 2 hours sleep this time :) o/ | 23:23 | |
diakopter | o/ | ||
23:35
jaldhar joined
23:36
packetknife left
23:39
whiteknight joined
|
|||
sorear | well that was interesting | 23:49 | |
o/ whiteknight | |||
23:49
MayDaniel left
|
|||
sorear | diakopter: you can take your hat off now. | 23:49 | |
diakopter | :) | ||
23:49
diakopter sets mode: -o diakopter
|
|||
whiteknight | hello sorear | 23:49 | |
23:57
tokuhiro_ joined
|