»ö« 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 ⏏$y␤␤␤Unhandled 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 3␤␤␤Unhandled 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«2␤2␤»
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 24323␤␤␤Unhandled 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␤ trait␤Parse failed␤FAILED 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␤ trait␤Parse failed␤FAILED 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-infix␤Parse failed␤FAILED 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␤ signature␤Parse failed␤FAILED 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 list␤Parse failed␤FAILED 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 µ 𝄞 􏿽xF0􏿽x9D􏿽x85􏿽xA0 ❤ ✓ ✘ ✈ ✉ ✄ ∞ † π 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).list␤␤Unhandled 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).list␤␤Unhandled 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«CALLED␤CALLED␤42␤»
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«3␤4␤»
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«3␤4␤»
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«1␤2␤»
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«3␤2␤»
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 failed␤FAILED 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