»ö« 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.
jnthn timotimo: To go backwards. 00:01
timotimo oh, that's so blatantly obvious
00:06 sjohnson left, sjohnson joined
pmurias jnthn: I'm too sleepy to fix that today 00:09
jnthn pmurias: There's a new day tomorrow ;) 00:10
diakopter maybe! 00:11
pmurias hopefully ;) 00:15
if there wasn't I'm not sure fixing java code is what I would be doing right now ;) 00:16
g'night 00:18
00:18 pmurias left
timotimo i hope i'm learning by osmosis here or something 00:23
00:31 kst` joined 00:32 bapa left, bapa joined 00:36 kst left 00:42 lichtkind left 00:43 alec__ left
jnthn blug: 6guts.wordpress.com/2013/01/18/a-qu...nd-update/ 00:44
And now, sleep...hopefully & 00:45
diakopter o/
00:48 benabik joined
timotimo okay, time for a bit of sleeping things over, i think 00:52
my walk_block thing doesn't seem to work excellently yet. it only finds very few things: Baggy, &bag, &infix:<(.)>, &infix:<(+)> and Version. maybe i need to find_symbol(["QAST", "Block"]) instead of just QAST::Block. 00:54
nope, that did not help. 01:00
01:05 For-Odin joined 01:06 hypolin joined
timotimo hm, do i have to iterate through Stmts, too? or do i have to go through GLOBALish first, too? 01:07
01:10 anuby joined 01:22 stevan__ left 01:39 wk left 01:46 stevan_ joined 01:58 anuby_ joined, anuby left 02:01 stevan_ left 02:03 FROGGS_ joined
swarley So, I'm still trying to get a hold on the P6 regular expressions, excuse me for my lack of knowledge on the subject I was just wondering if this is the correct usage of the :Nx directive 02:03
token TkHexEscape { '\\x' [ :2x <TkHexDigit> <TkHexDigit> ] }
err
Only one occurance of <TkHexDigit> was intentional
02:06 FROGGS left
PerlJam swarley: no. 02:20
swarley: if you want to match something 2 times, then you'd use ** 2 like so: token TkHexEscape { '\\x' <TkHexDigit> ** 2 } 02:21
swarley oh, okay
That makes more sense syntax wise
02:23 fgomez left
swarley Also, I noticed that the {,} pair is no longer in the regex, how would you simulate its functionality? 02:27
02:28 fgomez joined
sorear use a Range 02:30
<TkHexDigit> ** 2..4
swarley Oh, that's actually really neat
And how would you express "at least 2, and infinitely more possible" 02:31
PerlJam swarley: 2..*
swarley oh, lol. Now I remember why I was so intrigued by p6 02:32
sorear this mirrors the syntax for open-ended ranges
although I should note that the parsing is not actually unified in this case 02:33
you can't just stick arbitrary perl 6 expression syntax into a regex unannounced
there is, however, an escape mechanism to switch to expression syntax 02:34
<TkHexDigit> ** {2**16} # match a lot of hex digits
PerlJam yeah, but that block has to return a range or a number otherwise Perl freaks out :) 02:35
swarley hm. Well, fortunately in this case I don't believe I have anything that requires something like that
PerlJam swarley: the regex syntax that still makes me a little giggly inside is % / [ \d+ ]+ % ',' / 02:38
swarley o-O 02:39
PerlJam try that on strings like "57" and "23,423,52,2"
swarley what does the modulus do in that case? 02:40
sorear [\d,?]*\d
swarley: it's not a modulus operator; % declares the separator
swarley oh 02:41
sorear it can be used after any quantifier
geekosaur doesn't mind it but then it looks a lot like the syntax he uses privately for such things (which uses phi)
sorear x+ % y matches x, xyx, xyxyx, ...
swarley So it's an arbitrary spacer?
sorear you could even do <foo> ** 3..5 % <bar> 02:42
yes
swarley Oh that's nice. Much easier than a bunch of (?:)/[]
02:53 Targen left 02:56 baijingjao joined 02:58 baijingjao left 02:59 dayangkun left 03:08 xenoterracide_ joined 03:11 stevan_ joined 03:16 stevan_ left 03:23 xenoterracide_ left 03:24 xenoterracide joined 03:38 alec__ joined 03:39 SunilJoshi joined 03:41 orafu left, orafu joined 03:54 For-Odin left 03:56 For-Odin joined 04:05 cibs joined 04:07 anuby joined 04:11 anuby_ left 04:21 kaleem joined 04:25 preflex left, preflex_ joined 04:26 preflex_ is now known as preflex 04:30 fgomez left, Targen joined 04:35 For-Odin left, fgomez joined 05:17 telex left 05:24 telex joined 05:36 telex left, simcop2387 left 05:38 SamuraiJack joined 05:39 telex joined, simcop2387 joined, telex left 05:40 telex joined 05:42 For-Odin joined 05:55 SunilJoshi left
tewk window 1 05:56
05:56 SunilJoshi joined
sorear you can shorten that to just "/w 1", or alt-1 05:57
shachaf /w is /who by default in my irssi 05:58
Maybe I should rebind it.
06:18 preflex left 06:19 SunilJoshi left 06:20 preflex joined 06:24 sevin joined 06:25 SunilJoshi joined 06:31 PacoAir joined 06:32 PacoAir left, kaleem left 06:44 thou joined 06:47 SunilJoshi left, SunilJoshi1 joined 06:50 quester joined 07:12 thou left 07:13 FROGGS_ left 07:14 sevin left
diakopter hm. allocating 4294967295 * sizeof(bigStruct) probably wasn't going to work 07:20
sorear is that -1? 07:23
diakopter mm hm 07:24
07:26 cibs left 07:28 cibs joined 07:35 FROGGS joined 07:39 kaleem joined 07:42 kv_ joined 07:48 sqirrel joined 08:06 dayangkun joined 08:07 dayangkun left 08:08 dayangkun joined 08:09 dayangkun left 08:10 dayangkun joined, dayangkun left 08:11 dayangkun joined
kv_ Hi, ppl! 08:12
08:12 dayangkun left
FROGGS hi kv_ 08:13
08:14 dayangkun joined 08:15 quester left
kv_ can you help with perl6 max operator? 08:16
FROGGS well, I can try
kv_ my $max=[max] -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say;
FROGGS r: my $max=[max] -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say;
p6eval rakudo 3a8d48: OUTPUT«61␤»
FROGGS r: say +'101' 08:17
p6eval rakudo 3a8d48: OUTPUT«101␤»
kv_ how can I change type of sort from cmp to <=>?
FROGGS hold on 08:19
kv_ yes, in this case I can use + or just remove '', but in common case I can't 08:20
FROGGS you can do the same like sort{$a <=> $b} in perl 6, but I cant remember the syntax right now 08:21
r: my $max=sort { $^a <=> $^b } -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say; 08:23
p6eval rakudo 3a8d48: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:844␤ in sub infix:<-> at src/gen/CORE.setting:2818␤ in block at /tmp/3v1E4IIVsB:1␤␤»
08:23 dayangkun left
FROGGS r: my $max=sort { +$^a <=> +$^b } -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say; 08:23
p6eval rakudo 3a8d48: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:844␤ in sub infix:<-> at src/gen/CORE.setting:2818␤ in block at /tmp/RtuxVe3cjy:1␤␤»
FROGGS r: my $max=sort { +$^a <=> +$^b } (-101, 28, 9, 35, 61, 19, '101', 59, 3); $max.say;
p6eval rakudo 3a8d48: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/y9pqgRToCV:1␤------> my $max=sort { +$^a <=> +$^b } ⏏(-101, 28, 9, 35, 61, 19, '101', 59, 3);␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ …
FROGGS r: my $max = (-101, 28, 9, 35, 61, 19, '101', 59, 3).sort { $^a <=> $^b }; $max.say; 08:24
p6eval rakudo 3a8d48: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/3OBCIUTaLG:1␤------> , 28, 9, 35, 61, 19, '101', 59, 3).sort ⏏{ $^a <=> $^b }; $max.say;␤ expecting any of:␤ method arguments␤ postfix␤ infix or meta-infix␤ …
FROGGS damn it
r: my $max=sort { +$^a <=> +$^b }, (-101, 28, 9, 35, 61, 19, '101', 59, 3); $max.say;
p6eval rakudo 3a8d48: OUTPUT«-101 3 9 19 28 35 59 61 101␤»
FROGGS there you go
r: my $max = sort { +$^b <=> +$^a }, (-101, 28, 9, 35, 61, 19, '101', 59, 3); say $max[0]; 08:25
p6eval rakudo 3a8d48: OUTPUT«101␤»
kv_ my $max=max { $^a <=> $^b }, -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say;
FROGGS put "r: " before that 08:26
kv_ r: my $max=max { $^a <=> $^b }, -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say;
p6eval rakudo 3a8d48: OUTPUT«61␤»
FROGGS r: my $max=max { $^a.Num <=> $^b.Num }, (-101, 28, 9, 35, 61, 19, '101', 59, 3); $max.say;
p6eval rakudo 3a8d48: OUTPUT«61␤»
FROGGS I'm not sure why it does that
moritz r: say '101'.Num 08:28
kv_ in docs I read that I should use adverb to change sorting method from cmp to smth other
p6eval rakudo 3a8d48: OUTPUT«101␤»
08:29 kst` left
moritz r: say max :by( { $^a <=> $^b } }, -101, 28, 9, 35, 61, 19, '101' 08:29
p6eval rakudo 3a8d48: OUTPUT«===SORRY!===␤Unable to parse expression in parenthesized expression; couldn't find final ')'␤at /tmp/LNtDalScR1:1␤------> say max :by( { $^a <=> $^b } ⏏}, -101, 28, 9, 35, 61, 19, '101'␤ expecting any of:␤ postfix␤ …
moritz r: say max :by( { $^a <=> $^b } ), -101, 28, 9, 35, 61, 19, '101'
p6eval rakudo 3a8d48: OUTPUT«101␤»
moritz ah yes, that seems to work
withou the :by, it simply compared the block and the string as strings
kv_ r: my $max=[max :by{ $^a <=> $^b } ] -101, 28, 9, 35, 61, 19, 101, 59, 3; $max.say; 08:31
p6eval rakudo 3a8d48: OUTPUT«-100␤»
kv_ %)
r: my $max=max :by{ $^a <=> $^b }, -101, 28, 9, 35, 61, 19, '101', 59, 3; $max.say; 08:35
p6eval rakudo 3a8d48: OUTPUT«101␤»
FROGGS ":by" isnt that intuitive though
moritz: morning, btw ;o)
kv_ amzng
thanks, guys!
moritz r: say ( -101, 28, 9, 35, 61, 19, '101', 59, 3).max: { $^a <=> $^b } 08:36
p6eval rakudo 3a8d48: OUTPUT«101␤»
moritz if you don't like adverbs, you can always use the method form :-)
yes, :by is inconsistent with sort
08:37 dayangkun joined
Su-Shee good morning everyone! 08:41
moritz \o 08:44
FROGGS gmorning Su-Shee 08:50
08:51 fhelmberger joined
sorear o/ Su-Shee 08:58
09:03 dayangkun left 09:05 hoelzro|away is now known as hoelzro 09:12 Pleiades` left 09:17 dayangkun joined 09:18 dayangkun left, dayangkun joined, Pleiades` joined 09:19 kv__ joined 09:20 kv__ left
kv_ netrino 09:23
09:24 kv_ is now known as netrino 09:25 skids left 09:29 am0c joined 09:42 Psyche^ joined 09:44 Patterner left, Psyche^ is now known as Patterner 09:45 SunilJoshi1 left 09:46 SunilJoshi joined 09:51 For-Odin left 09:54 dakkar joined 10:04 hypolin left 10:07 dayangkun left 10:08 kresike joined
kresike hello all you happy perl6 people 10:08
FROGGS hi kresike
kresike FROGGS, o/
10:10 ServerSage left 10:13 anuby left 10:14 xinming_ joined 10:17 xinming left
jnthn o/ 10:23
nwc10 \o 10:24
FROGGS o| 10:26
sorear |o 10:28
tadzik ó 10:29
FROGGS
.oO( united colors of #perl6 )
hehe
sorear ō
tadzik United Kingdom Colours of Perl
nwc10 Orange!
sorear orange?
FROGGS acme?
nwc10 For this purpose I'm just his minion. 10:31
Or maybe I'm just spoofing his meme.
10:35 kaleem left 10:45 Pleiades` left 10:50 Pleiades` joined 10:54 wk joined
nwc10 has parrot actually made its release yet? 11:00
11:04 grondilu joined 11:05 Su-Shee_ joined 11:06 Su-Shee left, Su-Shee_ is now known as Su-Shee 11:27 Targen left
masak nwc10: not according to parrot-dev, at least. 11:40
nwc10 Oh. :-( Get well soon, DukeLeto 11:44
masak FROGGS: I'm not head-over-heels in love with :by. it feels to me like its presence on various methods indicates that there's an abstraction there that could be factored out, not repeated everywhere we discover it makes sense. 11:46
FROGGS: more exactly, often you want to do an operation "under a transform", like the Swartzian transform. that's what :by is about, in all its incarnations. 11:47
sometimes you want to restore the initial values, doing the moral equivalent of an inverse transform. sometomes you want to keep the new values. sometimes you want to keep both old and new around.
FROGGS in case of max(), is there a usecase where you compare blocks? 11:48
but I see the need for :by BLOCK in various cases, but maybe not for min() and max() ;o) 11:49
masak r: say max( -> $a? { say "one"! }, -> $a?, $b?, $c? { say "three!" }, -> $a?, $b? { say "two!" }, :by(*.count) )() 11:50
p6eval rakudo 3a8d48: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/PJcCn162Zz:1␤------> say max( -> $a? { say "one"!⏏ }, -> $a?, $b?, $c? { say "three!" }, -␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤»
masak oops
r: say max( -> $a? { say "one!" }, -> $a?, $b?, $c? { say "three!" }, -> $a?, $b? { say "two!" }, :by(*.count) )()
p6eval rakudo 3a8d48: OUTPUT«three!␤True␤»
masak r: max( -> $a? { say "one!" }, -> $a?, $b?, $c? { say "three!" }, -> $a?, $b? { say "two!" }, :by(*.count) )()
p6eval rakudo 3a8d48: OUTPUT«three!␤»
masak FROGGS: like that? max on blocks.
FROGGS what the
masak .oO( "you think that's air you're breathing?" ) :P 11:51
FROGGS *g*
masak srsly tho, blocks are just objects. they have methods. calling a block is just a weird kind of method. 11:52
FROGGS well, I guess I get used to it, treating the first block special by automagic isnt a good thing in case you meant something else 11:53
I was just thinking that sort and max are working the same somehow 11:54
masak we're still treating the first block as special!? 11:56
gee, I sure hope not.
jnthn For sort? I think so...
masak oh, for sort, yes.
hm.
that's not likely to want to change, either.
FROGGS I never said that
I wouldnt change these kind of things at this point too 11:57
masak it's not even an "at this point" thing in this case. 11:58
the sort($BLOCK, *@LIST) thing goes way back. 11:59
Perl 6 is all about breaking tradition, but some things stay the way they are because they are inherently Perl.
11:59 dayangkun joined
masak TimToady tried to reverse the parameters of split once, I think. it got into the spec and into Rakudo, but it had to be reverted once we tried it out in the ecosystem. :) 12:00
the change was just too weird.
even though it got more consistent with other methods or something. 12:01
dalek p-jvm-prep: ba7a5bf | jnthn++ | lib/QAST/JASTCompiler.nqp:
Start to port code-gen for SCs.
p-jvm-prep: 248a860 | jnthn++ | src/org/perl6/nqp/runtime/ (2 files):
Add SC data structure and SC tables.
p-jvm-prep: 54f66d9 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Implement wval (SC object lookup) op.

Of course, no deserialization yet, so it won't find anything.
p-jvm-prep: d380c6b | jnthn++ | src/org/perl6/nqp/ (3 files):
Oops, already had a SerializationContext stub.
p-jvm-prep: 555cc21 | jnthn++ | src/org/perl6/nqp/sixmodel/ (3 files):
Add an SCRef REPR.

This allows an SC to be referenced in an objecty way.
12:07 wk left
grondilu I'm quite amazed that Perl6 may target JVM soon. Has someone written something about the implications of that? 12:17
tadzik MOAR SPEED 12:18
plus we can interoperate with JVM ecosystem
which may soon mean Perl5-on-JVM
aka moe
grondilu so it's potentially as huge as I thought? 12:19
(tough this make me wonder why JVM was not chosen as the target in the first place) 12:20
diakopter MOAR SPEED plz
masak one of these days, people, I will reveal the sublime secret of how to spell "more". 12:22
masak .oO( sheesh! ) 12:23
:P
jnthn MOAR SPELLING LESSONS, plz
colomon grondilu: back when the p6 project started, there was no .NET and none of the cool new languages targeted JVM. It was widely believed it would be terrible for a dynamic language. 12:25
12:25 mtk joined
moritz www.c2lang.org/docs/c2lang_design.pdf 12:26
first example
package hello_world;
use stdio;
func int main(int argc, char*[] argv) {
\o/
[X] stealing 'package' from perl 12:27
colomon some people still believe that, I guess, but it sure seems like there have been a lot of compilers written in the last ten years which seem to suggest JVM and .NET are suitable to host p6.
moritz [X] stealing 'use' from perl
[X] using a keyword for function defitions
12:27 wk joined
masak moritz: wow! 12:29
Juerd [X] Sufficiently complicated syntax for what could have been simple arrays
masak without looking at that page, the immediate impression I get is C:c2lang::JavaScrip:CoffeeScript.
diakopter I'll Scrip your Java 12:31
masak t 12:32
diakopter t 12:33
12:37 jlaire left 12:44 netrino is now known as zoomby
Ulti also C2 looks an awful lot like Go.... 12:45
tadzik which should be a good thing. Go's awesome 12:46
Ulti yup
13:13 SunilJoshi left 13:18 SunilJoshi joined 13:19 SunilJoshi left 13:21 jlaire joined
dalek p-jvm-prep: 06284c1 | jnthn++ | / (6 files):
Implement a bunch of SC-related ops.
13:25
p-jvm-prep: 7edcd6f | jnthn++ | lib/QAST/JASTCompiler.nqp:
Implement list_b.
p-jvm-prep: 9a95f10 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
These ops should take a tc.
p-jvm-prep: e06e1f2 | jnthn++ | / (2 files):
Fix things so we make it to the deserialize op.

This means the string heap and code ref lists are being assembled successfully. Commented out post-deserialization tasks for now; these will need some abstraction work later on. This means that things are in place to start the real work of implementing deserialization.
arnsholt Oooh, serialization! 13:28
jnthn++
13:29 SunilJoshi joined
jnthn arnsholt: uh, no, this is just the preparation for doing the hard stuff. 13:30
FROGGS is a bit miffy because he thinks jvm gets moar love 13:31
13:32 SunilJoshi left
jnthn FROGGS: moar love than what? :) 13:32
FROGGS than me *g* 13:33
jnthn :P
13:33 SunilJoshi joined 13:34 SunilJoshi left
moritz huggs FROGGS 13:34
hugme: hug everyone
hugme hugs everyone
FROGGS awww, thats nice
13:35 SunilJoshi joined
masak hugs FROGGS, too 13:36
tadzik do you know the "sandwich!" game? 13:38
phenny: "kanapka!"?
phenny tadzik: "sandwich !" (pl to en, translate.google.com)
masak tadzik: no. do tell. 13:41
tadzik so it goes like this: I point my finger at FROGGS and shout "kanapka!"
then we all form a stack of hugs and hug FROGGS until he begs to stop
it's called "sandwich" because it looks like one, if formed properly 13:42
masak hehe. 13:43
I've been at the bottom of a hugpile of (I think) four or five once.
we didn't call it "kanapka", though. just hug pile.
tadzik I guess it's known everywhere, just named differently
masak I couldn't breathe, and my phone which I had forgotten to take out of my pocket lost the ability to take pictures forever. 13:44
that said, it was an interesting experience.
like being massage-pushed on all parts of the body at once. 13:45
in retrospect though, shouting a safe-word isn't realistic when you're under four other people and can't inhale. :P
dalek p: 5c25b77 | (Tobias Leich)++ | .gitignore:
rule 'nqp' matched 't/nqp/*', which is wrong
13:46
p: 8ac18c6 | (Tobias Leich)++ | / (2 files):
allow identifiers to begin with "next"

If one declared a sub that began with "next", "redo" or "last", it was treated like statement "next" directly followed by an identifier, which crashed.
13:46 fhelmberger left
masak FROGGS++ 13:46
FROGGS I always tell my kids they should whistle if they want me to stop ;o) 13:48
arnsholt jnthn: Well, preparation is work as well =)
FROGGS (a three and a almost two year old)
13:48 colomon left 13:49 SamuraiJack left
masak FROGGS: that's cruel :P 13:50
FROGGS just makes 'em stronger
masak (though perhaps the fastest way to teach them to whistle)
FROGGS I dont see any progress there *g*
13:59 hash_table joined 14:00 PacoAir joined
sqirrel we never really explained how to whisle, did we? 14:01
<- froggs wife
masak :) 14:02
FROGGS our secret weapon! 14:06
diakopter women?
[Coke] FROGGS: are you in Bulgaria?
if so, Здравейте! 14:07
FROGGS [Coke]: well, "Guten Tag" is what I say usually ;o) 14:08
[Coke] (though looking at my freenode server, I'm guessing your round robin dns was just ... rounder)
nwc10 is a bit surprised that [Coke] didn't stalk the IP address that he's connected from 14:09
14:09 hash_table left
[Coke] nwc10: Laaaazy 14:09
diakopter nwc10: what tz ar eyou 14:10
nwc10 :-) maybe I've looked at too many IP addresses. Some reverse DNS is looking familiar
CET these days
[Coke] looks up FROGGS IP address. 14:11
Yup, definitely guten tag makes more sense. I worked with a team in sofia at some point, so I always perk up when I see Bulgaria. 14:12
FROGGS [Coke]: you are in NL if I remember right? 14:13
[Coke] nope. Just use a machine there to connect to irc. :)
I'm in NY, US.
FROGGS ohh, okay 14:14
sorry 'bout that ;o) 14:15
[Coke] nwc10: were you in .au for a while or am I misremembering? 14:16
14:16 PacoAir left, PacoAir joined
FROGGS we need a #perl6 world map 14:17
hoelzro FROGGS: like the ones the XKCD guy makes?
FROGGS .oO( world.pam: { #perl6 } .... # <--- new sigil) 14:18
hoelzro: never seen it I think
s/pam/map/
-.-
hoelzro FROGGS: xkcd.com/802/
masak FROGGS, sqirrel: I wonder if you're the only married couple on #perl6. :) 14:19
moritz has to bring her wife here too
FROGGS hoelzro: no, I mean a map where you see the pins of the homes of the folks 14:20
hoelzro oh, ok =)
FROGGS masak: no idea, looks like we are the only couple that is active at least
moritz: _her_ wife?
THAT's new to me ;o) 14:21
[Coke] we had a parrot map at one point..
masak yes, interesting thinko :P
[Coke] but we can easily make one with the google geo api.
nwc10 [Coke]: no. You're either misremembering, or confused. There are no kangaroos here. 14:22
FROGGS I someone would provide an url, I'd place my POI
nwc10 g 14:23
oops, wrong window :-)
FROGGS *cough* [Coke] *cough*
moritz FROGGS: grammatical gender is overrated :-) 14:24
masak moritz++ # :) 14:25
[Coke] nwc10: it's happening a lot today! ;)
14:28 bluescreen10 joined
masak last day for sending in p6cc solutions, people. 14:38
timotimo hello people
nwc10 hurry up. Because tomorrow if you're bored, your only option is going to be help jnthn on the JVM port :-)
masak :P 14:39
[Coke] masak: do I have until end of day my time? :( 14:40
tadzik bah 14:41
masak I'm usually lenient in that way, yes.
tadzik examstorm killing p6cc for me again
masak doing "by end of Friday in all possible time zones".
I'm pretty confident there'll be a p6cc2013, if that helps.
tadzik :)
sounds good
maybe I'll make a summer edition 14:42
masak ooh
timotimo nqp: my @a := List.new; nqp::push(@a, "1");
p6eval nqp: OUTPUT«push_pmc() not implemented in class 'NQPMu'␤current instr.: '' pc 95 ((file unknown):163248328) (/tmp/En3f0hnw12:1)␤»
timotimo nqp: my @a := []; nqp::push(@a, "1");
p6eval nqp: ( no output )
timotimo oh, that's how that works
tadzik masak: do want? :) 14:43
masak timotimo: List != Array
tadzik I think it's doable
moritz masak: NQP doesn't have lists
masak tadzik: yes, I like the idea.
timotimo i thought list was the one you could easily push into and array was static-sized. apparently it's the other way around?
jnthn nqp: my @a := nqp::list(); nqp::push(@a, "1");
p6eval nqp: ( no output )
jnthn ;)
masak moritz: oh! but my point still stands. NQPMu != Array. :P
jnthn nqp::list() is what [] desugars too ;) 14:44
masak tadzik: I'd be grateful if you marketed the thing a bit differently, so that the events are distinct. but mostly to make people confuse them less.
tadzik masak: I'll consider that
masak tadzik: calling yours "p6cc" might be a less-than-perfect idea, for example ;) 14:45
tadzik I'll probably ask you for organizational tips when the time is right :)
masak oh, certainly.
timotimo STBCC: Summer Time Buterfly Coding Competition
moritz SOCC, Sumer Of Coding Contest :-) 14:46
tadzik :D
FROGGS .oO( "SPEW" - Society for the Promotion of Elfish Welfare ) 14:47
masak TDD - tadzik's developer derby
jnthn
.oO( Why did FROGGS have to bring that up... )
14:47 SunilJoshi left
moritz FROGGS: isn't that "Warfare"? :-) 14:48
FROGGS bah
tadzik moritz: moreover, isn't that Elvish?
FROGGS .phenny "Banausen"?
phenny: "Banausen"? 14:49
phenny FROGGS: "Clods" (de to en, translate.google.com)
FROGGS ahh
tadzik or maybe Elven
FROGGS ;o)
tadzik Insensitive Bananen
FROGGS hehe
Sh*t is bananas <- somebody has to explain that to me
tadzik "x is bananas" like "x is crazy" 14:50
14:50 SunilJoshi joined
tadzik same for "x goes bananas" 14:50
FROGGS (Gwen Stefani)-- # for that
stupid text anyway
tadzik maybe she meant it the other way around
not everyone likes banans ;_;
FROGGS perfectly true 14:51
[Coke] masak: excellent. I have some fixes to submit, even if I don't any more coding done. but I have $dayjob and $pokergame today. 14:52
14:54 stopbit joined
[Coke] masak++ for hosting the contest. 14:56
timotimo i'm still doing something wrong with my push, it seems. push_pmc() not implemented in class 'Array', but i initialise that parameter with []. what could be going wrong?
masak timotimo: nopaste some code? 14:57
jnthn timotimo: Confusing NQP types and Perl 6 types, perhaps?
moritz agress with jnthn
timotimo ah, that might be the case.
moritz push_pmc should be called on an RPA (or QRPA)
timotimo my complete diff is here: sprunge.us/CIGI 14:58
find the push in apply_trait in the evaluator sub
it's initialised down in the implementation of "is" with *%fail
14:59 TimToady left, cedrvint joined, doy joined, TimToady joined
FROGGS cool 15:00
timotimo++ # thats an awesome idea
timotimo the things you do when you get bored ;))
moritz timotimo: $payload.suggestions.push(...) might work
$payload.suggestions semss to be a Perl 6 type 15:01
oh, and mit need to be
FROGGS s/mit/might/
timotimo oh, yeah, that implementation of is is in perl6 space!
in hindsight it's pretty obvious 15:02
moritz $payload.suggestions.push(nqp::box_s($name, self.find_symbol(['Str']))
)
to make sure it's a Perl 6 string
best look up the Str type object outside of the sub
15:03 SunilJoshi left
moritz speaking of which, in Perl6::World, all references of $*W can likely be replaced with 'self' 15:03
15:03 SunilJoshi joined 15:04 SunilJoshi left 15:05 SunilJoshi joined
timotimo closing in on the first properly working version of this code! :D 15:06
moritz \o/ 15:07
FROGGS moritz: how easily can p6eval be told to compile all rakudo branches and make them available here?
timotimo pugs: say "my name" 15:08
p6eval pugs: OUTPUT«my name␤»
timotimo also, how can pugs output its version, too?
kresike bye folks 15:09
15:09 kresike left
timotimo wasted a compile cycle to writing "sel" instead of "self" :| 15:11
FROGGS ohh, three minutes lost ó.ò
but I dont really like these things too
moritz FROGGS: not easily 15:12
timotimo: it needs a file where its version is written down
timotimo it's in .git/HEAD :P 15:14
15:14 SunilJoshi left
moritz erm, what? 15:14
jnthn
.oO( Only if your HEAD is detached... )
15:15
moritz the version of the pugs binary built on p6eval is in .git/HEAD?
timotimo oh, that's true
benabik .git/HEAD will usually contain something like 'ref: refs/heads/master'
timotimo ===SORRY!=== 15:16
Foo cannot inherit from VersionW because it is unknown.\nDid you mean Version
jnthn wow :)
FROGGS cool
jnthn Mebbe we should do this for undeclared variables too
sjn o_O 15:17
whoa
timotimo jnthn: you said i only had to care about things where nqp::isconcrete gives 0, but when i walk all my blocks, i get all kinds of things that seem like they should be non-concrete, like Rat or Grammar or Hash
FROGGS we should, since there is no slowdown when all goes well in someones code...
jnthn timotimo: It's about type objects
timotimo: So yes, Rat, Grammar and Hash are type objects
timotimo maybe it's because those come from the symbol tables of QAST::Block objects and they are nqp-level or something?
jnthn timotimo: Youv'e walked into the setting. 15:18
Lemme check the code...
+ if nqp::istype($_.value, QAST::Block) { 15:19
That will never be true
ah, yeah, this is fairly wrong...
timotimo heh, ok :)
jnthn %symtable maps each registered name to a hash 15:20
If that hash has a key value, then the actual symbol is in there
That's what you need to look at
timotimo oh! i see 15:21
that hash will only ever have one key?
or none?
jnthn for %symtable { if nqp::existskey($_.value, 'value') { $code($_.key, $_.value<value>) } } # or so 15:22
timotimo: The hash will potentially have a load of keys
timotimo: If the value is known at compile time (which it always is for types) then it will certainly have a value key
For things like variables, there ain't one.
15:23 MayDaniel joined 15:24 jaldhar left 15:28 hash_table joined
timotimo No type check cache and no type_check method in meta-object - whaaa, how did i get this error :o 15:31
masak is this the first month that Rakudo has released *before* Parrot? 15:33
jnthn timotimo: urgh
timotimo jnthn: it seems to happen from the $_.value<value> line (although it was checked with existskey first) 15:34
jnthn timotimo: I'm not sure off hand. Can you show me the code and the output of --ll-exception?
timotimo sure thing
first the code: sprunge.us/OObV
and this is the ll-exception output: sprunge.us/SXOf
lines around 1400 refer to the evaluator block, 1800+ refer to walk_blocks 15:35
tadzik jnthn: nqp-jvm-prep tests fail, right?
[Coke] tadzik: running them now to check 15:38
where are you seeing failures, OOC? 15:39
tadzik JASTCompiler doesn't compile 15:40
[Coke] all tests successful here.
tadzik Error while compiling block : Error while compiling block : Error while compiling block deserialization_code: Error while compiling op bind: Error while compiling op serialize: No registered operation handler for 'serialize'
[Coke] tadzik: you need a newer nqp
tadzik oh
[Coke] I am using 2012.12-49-g4084b68
tadzik yeah, I'm no -39
thanks 15:41
timotimo i'm considering considering a case-error in levenshtein as only 0.5 instead of 1 distance. seems good? 15:42
masak I wouldn't be able to answer "yes" without actually using the result a bit. 15:43
are you doing this with tests backing you up?
timotimo only the one >_<
i will of course write tests before i push this upstream 15:44
arnsholt A priori, I'd agree with making casing less wrong than wrong character
tadzik std: my %a = foo-bar => 5 15:45
p6eval std 7deb9d7: OUTPUT«ok 00:00 42m␤»
jnthn r: say nqp::istype(CORE::<!CORE_MARKER>, Mu) 15:46
p6eval rakudo 3a8d48: OUTPUT«No type check cache and no type_check method in meta-object␤ in block at /tmp/4Tm6txbCew:1␤␤»
masak ywa, I agree a priori, too.
15:46 benabik left
jnthn timotimo: Seems that symbol is to blame... 15:46
timotimo jnthn: easy, just hard-code a check for that! ... ... >_<
jnthn timotimo: uh, for now, but I wanna fix it.
timotimo i'll put an XXX there or a FIXME 15:47
do you think checking $_.key against "!CORE_MARKER" is good enough for now?
jnthn timotimo: That'll do for now yes
timotimo i'm still thinking about what the best way to do the cut-off for levenshtein is. i think a solid number like "4" is dumb. maybe half the length of the thing plus one? or maybe calculate all distances and enumerate up to 5 of the shortest-distance-words? 15:49
moritz if you always take the 5 best, you'll usually include some very bad crap 15:51
timotimo hm. got an example? 15:52
ah, you mean if the best one has a score of 100?
okay, so a cut-off should definitely be there. like "changing every letter of the original word is not helpful"
moritz right
timotimo but this is all fine-tuning for when it actually works properly in the first place :)
masak my expectations as a user is to only include one really good guess. maybe I would have the patience to read two or three.
but then they'd all have to be really good guesses. 15:53
moritz aye
timotimo hm, yes, good point.
good guess > no guess > bad guess
moritz $ git dif
git: 'dif' is not a git command. See 'git --help'.
Did you mean one of these? diff dch
I don't think I meant 'dch' :-)
timotimo i don't even have dch! 15:54
is that an alias you made?
moritz git-dch - Generate the Debian changelog from git commit messages
timotimo ah, ok
moritz part of the git-buildpackage debian package
timotimo there's another symbol in the tables that gives the same error as !CORE_MARKER. i'll hunt it down, though. 15:55
[Coke] I like "no more than 3 but they better be really good."
masak right. if you have one good solution and two crap ones, show me the good one. 15:58
[Coke] timotimo++ btw.
timotimo can i sort with a swartian transform in nqp?
∑:3
jnthn timotimo: Testing a patch for the !CORE_MARKER thing here 15:59
timotimo do the same thing for NQPCursorRole, too please
16:00 fgomez left
jnthn um, that wouldn't explode with that error. 16:01
*shouldn't
timotimo i added a say $_.key before the $_.value<value> dereferenciation and that was the last thing that came up
jnthn r: say CORE::<NQPCursorRole> 16:02
p6eval rakudo 3a8d48: OUTPUT«No method cache and no find_method method in meta-object␤ in sub say at src/gen/CORE.setting:7559␤ in block at /tmp/zvW1DmxHtP:1␤␤»
jnthn r: say nqp::istype(CORE::<NQPCursorRole>, Mu)
p6eval rakudo 3a8d48: OUTPUT«No type check cache and no type_check method in meta-object␤ in block at /tmp/C1EnyBxFj2:1␤␤»
jnthn hm
That needs fixing in a different place, however. 16:03
dalek p: 56d2292 | jnthn++ | src/how/NQPClassHOW.pm:
Remove outdated comment.
p: 5826673 | jnthn++ | src/QAST/Operations.nqp:
Provide nqp:: ops for low-level iterator usage.

NQP will continue to support the $_.key/$_.value approach for hash iteration in normal code. However, off Parrot this will be provided through the NQPCORE.setting, and thus is not available to the MOP. Essentially, these ops are to saw a circularity that we got away with up until now, but isn't really sensible to burden other backends with.
p: 1bcaac4 | jnthn++ | src/QAST/Operations.nqp:
Add ops for get/set of a coderef's name.
p: 3b7e5a3 | jnthn++ | src/stage0/ (9 files):
Update bootstrap.
p: ce967e9 | jnthn++ | src/how/ (5 files):
A variety of circularity-sawing MOP updates.
p: e29532a | jnthn++ | src/ (15 files):
Merge branch 'mop-cleanup'
timotimo should i rebase off those commits? 16:04
jnthn timotimo: oh, that wasn't it
timotimo: I was just merging a branch there.
(Unrelated to the fix I'm testing for you :))
timotimo OK 16:05
now it gets through all objects, but i think i made a mistake in my levenshtein or something
VersionTwo is 13 away from our goal - since the goal is VersionW, that should definitely not be 13 16:06
unless i'm running into a case where the V from VersionTwo would not eq the V from VersionW, or something 16:07
due to boxedness/unboxedness
is that a possibility?
jnthn I'm pretty sure eq works correctly ;) 16:08
masak .oO( but what *is* equality, from a philosophical standpoint? ) :P
16:10 dakkar left
dalek kudo/nom: ebb415d | jnthn++ | src/Perl6/Grammar.pm:
Add some missing compose calls.

Prevents some weird errors when trying to look through CORE.
16:11
16:14 kaare_ joined
timotimo jnthn: does that fix NQPCursorRole, too? 16:14
bbiab 16:16
jnthn no 16:18
16:18 fgomez joined
dalek p: 769044f | jnthn++ | src/how/NQP (2 files):
Fix missing type check and method caches.
16:26
kudo/nom: 98a4a8a | jnthn++ | tools/build/NQP_REVISION:
Get NQPCursorRole non-explodey fix.
16:31
jnthn timotimo: OK, that should do it :)
r: .say for CORE::.keys 16:32
p6eval rakudo 3a8d48: OUTPUT«Baggy␤&bag␤&infix:<(.)>␤&infix:<(+)>␤Version␤&infix:<=>␤&infix:<does>␤&infix:<but>␤&SEQUENCE␤&WHAT␤&infix:<...>␤&infix:<...^>␤&undefine␤&prefix:<temp>␤&prefix:<let>␤&INDIRECT_NAME_LOOKUP␤&REQUIRE_IMPORT␤&infix:<andthen>␤&METAOP_ASSIGN␤&METAOP_TEST_ASSIGN:<//>␤&META…
16:34 grondilu left 16:38 spider-mario joined
timotimo "Can not get attribute '$!ex' declared in class 'Exception' with this object" - what might i be doing wrong here? 16:44
moritz timotimo: you might be missing a p6decont() 16:45
erm, nqp::p6decont
timotimo when i use --ll-exception i can see my own exception: "Foo cannot inherit from VersionW because it is unknown." (although the @.suggestions doesn't seem to work)
moritz ie you're calling the getattr on the container, not the actual object 16:46
I guess I'd need to see the actual diff; but have to decommute now
timotimo oh, i may be rethrowing a containered exception
16:54 johnjohn101 left
timotimo or maybe i have to wrap the list that i created with [] before passing it to X::Inheritance::UnknownParent.new. 16:54
16:54 johnjohn101 joined 16:56 johnjohn101 left 16:57 johnjohn101 joined 17:00 thou joined 17:03 Chillance joined, FROGGS left 17:21 skids joined 17:31 hoelzro is now known as hoelzro|away 17:34 kaleem joined
[Coke] hurls twitter.com/pdcawley/status/292317748401410049 for masak. 17:44
17:46 SamuraiJack joined 17:48 stevan_ joined 17:52 colomon joined 17:53 atrodo_ joined 17:55 atrodo left
masak ^ autopun :) 17:55
17:55 atrodo_ is now known as atrodo
masak (I'm tagging them because then I can find them easily in the backlog) 17:55
17:57 stevan_ left, Myk267 joined
johnjohn101 is perl 6 official yet? 18:03
TimToady Who's officiating? 18:04
[Coke] Yes, have some.
johnjohn101 was going to experiment with some rakudo on ubuntu 18:05
TimToady Perl 6 is much more complete than Perl 1 was when it came out... :)
Su-Shee TimToady: you're not wearing your officiating sash.
johnjohn101: go ahead, works.
18:06 stevan_ joined
TimToady niecza tends to run a bit faster, if you need more speed, but has complementary warts to rakudo :) 18:07
[Coke] if you like haskell, there's another option, but you have to really like haskell.
johnjohn101 will niecza work with mono?
TimToady yes
I've been using that combo regularly for about two years now for production-ish code 18:08
what's there has been very solid
johnjohn101 what would be the advantage over perl 5, in your opinion?
can you use c# class objects (or whatever it's called).
Su-Shee johnjohn101: there is no perl5 written in c#.. 18:09
johnjohn101 i understand that. but perl 5 seems to work fine with linux.
TimToady The advantage of Perl 6 is that it fixes most of the problems pointed out in the 361 RFCs from 12.5 years ago, and Perl 5 hasn't fixed most of 'em eyt
*yet
Perl 5 is still a fine language, it's just that Perl 6 is finer, but for the speed 18:10
well, and CPAN
Su-Shee johnjohn101: well, what's your goal exactly? curiosity? then go ahead and try it. like fancy features? try it, too. need to hack together some production thing fast with 10 modules? then don't try it. 18:11
[Coke] johnjohn101: if you already have a large corpus of perl5 code, no one is expecting you to convert to 6.
johnjohn101 so perl 5 is still faster but perl 6 is better language?
[Coke] johnjohn101: basically.
geekosaur perl6 is still being optimized; get it right first, then speed it up
TimToady if you compare examples on rosettacode.org, you'll see that the p6 code tends to be cleaner and more elegant
johnjohn101 gotcha 18:12
my big thing for not doing perl six is no odbc yet. I do a lot of db work 18:14
diakopter Su-Shee: actually Microsoft had an internal project to do so while prototyping .NET before it was released, with the goal of providing enough "unsafe" features to the unsafe portion of C# that a Perl implementation could be written in C#... it was never released publicly, I'm sure because it just wasn't worth productizing it, if even to demo the potential for the language 18:15
johnjohn101 ironperl!! 18:16
diakopter no, many years before the DLR 18:17
18:17 quester joined
masak ooh, going through all of the 361 RFCs, seeing where Perl 5 is today (and where Perl 6 is today) wrt to them, would make a great blog post. or thirty or so. 18:17
would probably need some planning, in fact :) 18:18
johnjohn101 i'd love to see all that spelled out
diakopter I thought Damian did that in that 2001 paper
oh wait; that was 2001
masak ;)
johnjohn101: do you know about the Apocalypses or the Synopses?
johnjohn101 not a clue 18:19
masak johnjohn101: basically, the Apocalypses lay out the direction for the Perl 6 design, and the RFC'd promises it lives up to.
it's still a great read if you want to know what Perl 6 *is*.
johnjohn101 i'll look for it
what got me back looking at perl 6 was a very recent blog on how to fix perl
masak but they're 8 to 12 years old, so they're a bit inaccurate at this point. 18:20
the Synopses are up-to-date, but they're talking about the *current* design of Perl 6. everything we know about the language in one place.
johnjohn101: oh, chromatic's post.
TimToady or stevan's? 18:21
masak johnjohn101: anyway, have a look at perlcabal.org/syn/ for the Apocalypses and the Synopses.
johnjohn101: or perl6.org/ in general for all kinds of leads and docs.
johnjohn101 the one that wanted to move it to scala or something like that
masak could still be both :)
but yeah, stevan++ is working on that.
TimToady we're bypassing Scala and going straight to the JVM soon 18:22
johnjohn101 is perl.org really going to lose funding as he mentions?
seriously moving to jvm?
TimToady adding it as a backend, yes
jnthn Not so much moving as additionally supporting.
TimToady jnthn++ is currently working on it
[Coke] where do you see "perl.org losing funding" ? 18:23
TPF seems to have had a pretty good year, according to their annual statement.
masak maybe referring to the "only booking.com actually use Perl" snipe stevan_ made in his talk. 18:24
johnjohn101 yeah. Hey, I've paid my dues trying to implement a modern VM and modern Perl implementation. The real question is whether an alternate implementation of Perl 5 can demonstrate its value for real programs before Booking.com's money runs out keeping Perl 5 on life support.
that's the quote. i was in shock when i read that
masak he's... exaggerating.
johnjohn101 figured it was a lot of FUD but didn't know enough to make a real judgement 18:25
masak but at this point, maybe scaring people into action is a good thing.
dalek rl6-roast-data: e44a55a | coke++ | / (4 files):
today (automated commit)
masak while it's not the truth, it's sorta kinda shaped the same way as the truth.
[Coke] yay, pugs is failing the least # of tests. ;)
TimToady truthinessiness
masak [Coke]: speaking of truthiness :P 18:26
TimToady wouldn't mind if pugs tried a little harder :)
TimToady wonders in johnjohn101's general direction how hard it would be to add an odbc driver to DBIish... 18:27
[Coke] TimToady: I just need someone who speaks haskell. 18:28
I have a ton of small tasks that could improve pugs, I just can't do them myself. :)
geekosaur notes that he has not relly beein in a position to do useful things
TimToady [Coke]: you need someone whose native tongue is haskell
18:29 wk left
johnjohn101 what would haskell be used for? with perl 6 that is. 18:30
arnsholt Pugs, the very first Perl 6 compiler is implemented in Haskell
TimToady pugs: say 'hi'
p6eval pugs: OUTPUT«hi␤»
johnjohn101 gotcha, I see 18:31
[Coke] counting by spectests, it does about 1/3 of what rakudo and niecza do.
drove a lot of initial design back and forth, and gave us the spec test suite.
timotimo so i set up my desktop at home so that i can ssh to it, except it seems to drop connections from outside the local area network >_< 18:32
[Coke] If we could get "bless" to work in classes, that'd give us a few hundred more passes from the trig stuff. 18:33
masak I've always pictured myself as helping a lot with getting Pugs back on its feet. 18:36
but the tuits never seem to materialize. :/
[Coke] I can find you a small task if you like. 18:37
masak we could try that :)
18:38 kst joined
[Coke] pugs: my $str = "foobar"; say substr($str, *-1); 18:42
p6eval pugs: OUTPUT«foobar␤»
[Coke] pugs: my $str = "foobar"; say substr($str, -1);
p6eval pugs: OUTPUT«r␤»
masak ooh.
[Coke] Pugs has a few cases like that where the whatevercode isn't respected (and the old perl5 style still is)
t/spec/S32-str/substr.t 18:43
masak p: (* + *)(5)
p6eval pugs: OUTPUT«*** Cannot cast from VNum Infinity to VCode (VCode)␤ at /tmp/6G9kaNbRCP line 1, column 1 - line 2, column 1␤»
TimToady while you're in there, you could add a MOP as well :)
masak TimToady: sure, as long as it fits within the "small task" category :P
jnthn masak: I can give you some ideas on a design :P 18:44
dalek p-jvm-prep: 3c67db0 | jnthn++ | src/org/perl6/nqp/ (4 files):
Get serialized blob from Base64; stub reader.
p-jvm-prep: d5fa57f | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationReader.java:
Port serialization blob header read/disection.
[Coke] masak: added github.com/perl6/Pugs.hs/issues/26 for you.
diakopter jnthn: I'll get you and your dissection someday
TimToady ...and your little dog, too! 18:45
jnthn :P
Seems I've reached the point where I gotta think rather than just port stuff. Guess that means it's dinner time... :)
timotimo github.com/timo/rakudo/tree/levenshtein - having trouble getting the exception actually thrown. currently building to figure out what the error du jour is 18:46
[Coke] noooo
diakopter wait, you mean there's some harder kind of programming than porting?
jnthn diakopter: stouting.
diakopter s/harder/other/
[Coke] LHF: roast has 'thrid' in several spots. 18:47
18:47 FROGGS joined
TimToady doesn't think stout is harder than port 18:47
18:47 am0c left
FROGGS local or remote port? 18:48
g'evening btw
TimToady all of it is local to begin with
diakopter sterr is definitely harder than port
jnthn TimToady: Clearly we haven't encountered the same stouts ;) 18:49
mikemol Can't niecza use .net's ODBC bindings?
jnthn wonders off to the shop to find some food
uh, wanders
&
[Coke] p: say Inf.Int 18:50
p6eval pugs: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862982399472…
[Coke] p: say ~Inf.Int
p6eval pugs: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862982399472…
[Coke] masak: that should be "Inf"
timotimo Method 'ast' not found for invocant of class 'String' <- :|
18:51 ravi joined, ravi is now known as Guest11927
TimToady p: say Inf.WHAT 18:51
p6eval pugs: OUTPUT«Num()␤»
TimToady huh
Guest11927 #help
TimToady No help available. 18:52
[Coke] TimToady: weird, since we know there's a VInfinity type.
p: say rand * Inf 18:53
p6eval pugs: OUTPUT«*** ␤ Unexpected "Inf"␤ expecting operator, ":" or ","␤ at /tmp/cbyaTvpZ8o line 1, column 12␤»
TimToady p: say NaN.WHAT
p6eval pugs: OUTPUT«Num()␤»
TimToady p: say NaN
p6eval pugs: OUTPUT«NaN␤»
TimToady p: say NaN.Int
p6eval pugs: OUTPUT«-269653970229347386159395778618353710042696546841345985910145121736599013708251444699062715983611304031680170819807090036488184653221624933739271145959211186566651840137298227914453329401869141179179624428127508653257226023513694322210869665811240855745025766026879447359920…
TimToady I guess the … makes it not a number... 18:54
I dunno, might be easier just to port NQP to run on Haskell...
[Coke] I was JUST thinking that. 18:55
creepy.
TimToady maybe we need an nqp-porters mailing list... 18:56
timotimo nqp on pypy? :] 18:57
[Coke] Looking forward to the giant refudge that will be necessary once we have a jakudo. 18:58
18:58 Guest11927 left
johnjohn101 is there help to get niecza installed and up and running? may mess with that. 18:58
arnsholt NQP and Rakudo on PyPy would be kind of hilarious, actually =D 18:59
PerlJam johnjohn101: if you ask here, I'm sure someone will help you :)
TimToady :P
18:59 atrodo left
timotimo arnsholt: at least it'd have a pretty nice JIT 18:59
PerlJam johnjohn101: I got it going on ubuntu with minimal problems (had to install some .debs)
18:59 atrodo joined
TimToady johnjohn101: probably a link on perl6.org 18:59
timotimo Method 'ast' not found for invocant of class 'String' - how did i get this error to happen? :\ it seems like it comes from trying to have the %seen here: github.com/timo/rakudo/blob/levens...d.pm#L1467 19:03
indeed, removing those next if nqp::existskey(%seen, $name-str); and %seen{$name-str} := 1; makes it work again (but i get a different error) 19:05
19:05 donaldh joined 19:06 kaleem left
FROGGS timotimo: can you try to pass the key to existskey as an unboxed one? 19:06
timotimo sure. with nqp::payload?
FROGGS since this isnt: github.com/timo/rakudo/blob/levens...d.pm#L1951 19:07
timotimo er, getpayload is the name
FROGGS dont know about payload ;o)
TimToady FROGGS: the problem with your acronym is that a native English speaker would always say "Try it and see." 19:08
johnjohn101 perl6 on .net. who'd have thunk it. 19:09
FROGGS TimToady: what acronym?
TimToady irclog.perlgeek.de/perl6/2013-01-12#i_6325304
FROGGS ahh, k ;o) 19:10
TimToady you'd only ever get 'to see' if you followed it up something: "try it to see if it works", and even then, you'd likely get 'and' instead of 'to' 19:11
FROGGS TimToady: since you are somewhere in the logs, can you have a look at this question please? irclog.perlgeek.de/perl6/2013-01-10#i_6316425
skids NNTYTI "Never know..." 19:12
TimToady FROGGS: in theory that kind of stuff should already show up in the .syml file
FROGGS TimToady: still like to scream TITS! here now and then
skids oh nktyti
TimToady FROGGS: yes, well, we do want to keep this a butterfly friendly place from time to time 19:13
FROGGS that's what I thought too, since it is a bit dangerous to rely on that bit of magic, so the auth has supply this information in the metadata
TimToady but I understand that we all carry a bit of our junior high days around with us :)
timotimo FROGGS: using $name instead of $name-str didn't help (unless i broke it again by using $name in %seen{$name}. 19:14
FROGGS timotimo: I can try to hunt that bug down later, so in an hour when kids are sleeping (and not singing anymore, loudly) 19:15
masak FROGGS: in this acronym, does the German expression use the word corresponding to "to"? 19:16
timotimo cool, thank you :)
masak "versuchen, es zu sehen" or some such?
Su-Shee masak: "um ... zu" is the basic construct. 19:20
timotimo still no idea how to get "Can not get attribute '$!ex' declared in class 'Exception' with this object" gone again :| 19:21
and, even more confusing, i get messages that there were things pushed to the @.suggestions, but the message method of the exception returns "Foo cannot inherit from VersionW because it is unknown." anyway (without the suggestions) 19:22
jnthn timotimo: Latest patch? 19:26
jnthn can glance while his nom cooks :) 19:27
timotimo yes, it's up on my github in the levenshtein branch 19:28
do i really have to rebuild CORE.setting every time i change even something in src/Perl6? 19:29
hm, probably :|
jnthn yeah
PerlJam timotimo: there's a reason we tend to prototype things that would go in CORE outside of CORE :)
timotimo yeah, i can totally see that 19:30
[Coke] wonders if that'll be faster to rebuild on jakudo.
timotimo that'd be fine
[Coke] will keep using that until someone comes up with something better. :)
jnthn timotimo: hm, I don't see it?
timotimo: Or is your github ID not your irc name? :)
PerlJam [Coke]: and the haskell backen will beget hakudo ? 19:31
er, s/backen/backend/
timotimo oh, the github id is just timo
jnthn oh
:)
timotimo i got in pretty early :)
SixModelObject does not implement get_pmc_keyed_str when i throw what i get from nqp::getpayload($_) in the rethrow, so at least i know that the error does come from that rethrow 19:32
19:32 wk joined
jnthn my $dist := levenshtein($payload.parent, $name); 19:33
You probably want to do my $dist := levenshtein(nqp::unbox_s($payload.parent), $name); 19:34
19:34 johnjohn101 left, johnjohn101 joined
masak Su-Shee: thank you. 19:35
[Coke] pugs: "\c[LATIN CAPITAL LETTER A WITH DOT ABOVE, COMBINING DOT BELOW]".chars.say 19:36
p6eval pugs: OUTPUT«62␤»
jnthn timotimo: And self.rethrow($/, $ex); may just want to be nqp::rethrow($ex) 19:37
19:37 SamuraiJack left
timotimo "not a throwable object" 19:43
oh, oops, made a silly mistake again
19:43 fgomez left
timotimo those compile times are driving me insane, very slowly. 19:45
nqp::rethrow gives me "Can not get attribute '$!ex' declared in class 'Exception' with this object" again :( 19:48
arnsholt timotimo: Yeah, it's a bit crazy
For my dyncall work I discovered I could work around it by just recompiling a single so file 19:49
19:50 fgomez joined
arnsholt Which is a LOT quicker than recompiling all of NQP and then all of Rakudo 19:51
timotimo now i don't know any more how to proceed :( 20:03
moritz timotimo: show me the patch? 20:04
20:07 MikeFair_ joined, MikeFair left
timotimo moritz: github.com/timo/rakudo - it's here in the levenshtein branch 20:08
moritz timotimo: it'll take a while for me to build it 20:13
timotimo yeah, i know that feel :( 20:14
20:14 stevan_ left
moritz builds it on the faster machine 20:15
jnthn back from food 20:16
colomon is just starting food 20:17
timotimo is craving food
jnthn builds timotimo's branch also 20:19
moritz ok, built 20:20
timotimo i'll try to get some food 20:22
moritz timotimo: I'm doing a nqp::say(pir::typeof__SP($!)) right before the line that dies 20:23
h, the type is X::AdHoc 20:26
FROGGS not very informative though 20:27
FROGGS build also
builds*
moritz ah, since it's a perl object, you can call .perl on it, and print it 20:28
jnthn Here's a patch: gist.github.com/a113bd54654a940a51df 20:31
timotimo: ^^
20:32 bluescreen10 left 20:35 bluescreen10 joined 20:36 vividsnow joined 20:41 benabik joined
moritz EXCEPTION X::AdHoc.new(payload => "elements() not implemented in class 'Array'") 20:41
jnthn moritz: yeah, it's 'cus nqp::join got used on a Perl 6 Array. 20:43
20:47 johnjohn101 left
moritz yes, one needs to be very careful about which types are Perl 6 and which ones are parrot 20:49
[Coke] seems odd that a function called "nqp::join" only works on parrot. 20:50
(not when I think about it, but at first glance) 20:51
jnthn Well, it works on the things you have in NQP :)
20:51 alec__ left
timotimo thank you, jnthn, i'll build that right away 20:53
20:54 fgomez left
timotimo after this works (and the suggestions are nice enough), i think i'll do a pull request and the next thing is misspelt variables and functions, does that soundg ood? 20:57
moritz +1 20:58
masak +1 21:00
"all is fair if you're already showing an error" :)
FROGGS +2
21:04 alec__ joined 21:07 raiph left
timotimo github.com/timo/rakudo/blob/d270cb...d.pm#L1475 - still got no clue why this fails :( "Method 'ast' not found for invocant of class 'String'" 21:08
21:09 colomon left
jnthn timotimo: Where is the "next" going? 21:10
jnthn doesn't see a loop
timotimo oh, i see it doesn't make sense :)
timotimo writes return 1 instead
jnthn that'll be better :) 21:11
21:13 fgomez joined 21:15 hoelzro|away is now known as hoelzro
timotimo i have *no* idea why that gave me *that* error! 21:15
jnthn Me either!
timotimo oh, wait, that was after i changed {$name} to <<$name>> 21:16
that caused "ast not found" to "it works, but it doesn't seem to change anything
21:17 Myk267 left 21:18 sqirrel left 21:19 hash_table left 21:21 MayDaniel left, nyuszika7h joined
timotimo it seems to work now! 21:22
excellent.
jnthn \o.
timotimo++
[Coke] timotimo++
tadzik aww yeah
21:22 kaare_ left
tadzik timotimo++ 21:22
[Coke] so, where do we test this. 21:23
21:23 rindolf joined
rindolf Hi all. 21:23
FROGGS timotimo: you know what that means, right? we got better error messages than STD.pm!! \o/ 21:26
masak hiya, rindolf.
timotimo++ 21:27
rindolf masak: what's up? 21:28
FROGGS: hi, sup?
masak rindolf: not much. Perl 6 is getting better all the time. we're just hoping it gets to "good enough" before the world stops caring. 21:29
rindolf masak: good luck. :-)
masak rindolf: jnthn is doing awesome stuffs with the JVM, and keeps playing it down :) 21:30
er, I mean jnthn++
rindolf masak: heh, OK.
jnthn++ Indeed.
skids
.oO(We are the knights who say NYI)
21:30 colomon joined
timotimo FROGGS: \m/ 21:30
masak skids: :P 21:31
21:31 donaldh left
skids
.oO(We well tell you where to find Perl6. But first... you must implement usss... a shrubbery!)
21:31
The rest writes itself. So it's NYI.
21:31 benabik left
masak skids: I won't go as far as saying your thought process makes sense. but I like it ;) 21:33
21:35 benabik joined 21:38 stevan_ joined 21:39 stevan__ joined 21:43 stevan_ left 21:44 donaldh joined 22:01 bruges_ joined 22:03 bruges left 22:05 atrodo left, skids left 22:12 hash_table joined
timotimo so, nqp doesn't have use Test? 22:14
22:15 snearch joined
jnthn timotimo: No, put it has plan and ok built in. 22:15
Well, in its setting.
22:17 hash_table left
timotimo ooooh nice 22:17
nqp: my %ex := (Foo=>"bar", Barf=>"barfoo"); for %ex { say($_) } 22:19
p6eval nqp: OUTPUT«bar␤barfoo␤»
timotimo nqp: my %ex := (Foo=>"bar", Barf=>"barfoo"); for %ex { say($_.key) }
p6eval nqp: OUTPUT«Method 'key' not found for invocant of class 'String'␤current instr.: '' pc 108 ((file unknown):72) (/tmp/cDZ2ZahENP:1)␤»
timotimo i'm confused. why don't i get the key-value-object here?
nqp: my %ex := (Foo=>"bar", Barf=>"barfoo").hash; for %ex { say($_.key) }
p6eval nqp: OUTPUT«Method 'hash' not found for invocant of class 'ResizablePMCArray'␤current instr.: '' pc 72 ((file unknown):48) (/tmp/ou4NofgAAF:1)␤»
jnthn nqp: my %ex := hash(Foo=>"bar", Barf=>"barfoo"); for %ex { say($_.key) } 22:20
p6eval nqp: OUTPUT«Foo␤Barf␤»
timotimo ah, that would be it. thanks!
now i'm prototyping some changes to the levenshtein. a sort of pseudotypocoustics.
benabik Looking for typos instead of soundalikes? 22:23
Typex instead of Soundex? 22:24
jnthn git st
...oops
benabik fatal: Not a git repository (or any of the parent directories): .git
timotimo cd #.git 22:27
now Junction and Juntcion are only 1 distance apart. that ought to make suggestions better if there are typos. 22:30
22:32 hoelzro is now known as hoelzro|away 22:33 vividsnow left, benabik left
timotimo i should totally add a thesaurus for common computing terms 22:35
22:35 japhb_ joined
timotimo "substitute" -> "replace" would be a cost of 1 then :P 22:35
japhb_ That's a cool idea -- go beyond merely typos to thinkos. 22:36
Mind you, I think it's going a bit *too* far, but still a cool idea. :-) 22:37
22:37 stevan__ left
timotimo i was only half serious 22:37
japhb_ re: irclog.perlgeek.de/perl6/2013-01-18#i_6348742 , you can use `git describe --always --dirty` or if you always want a commit sha1 prefix, `git rev-parse --short HEAD` 22:42
timotimo, I guessed as much. :-)
22:49 donaldh left 22:53 donaldh joined, donaldh left
Ulti timotimo use sentiment analysis to stop people using negative sounding comments too 22:54
23:00 bluescreen10 left
timotimo that's actually a cute idea :) 23:02
23:06 zoomby left, zoomby joined
timotimo makes adding/removing - and _ cheaper 23:07
23:09 Pleiades` left 23:10 rindolf left
japhb_ timotimo++ # Not just edit distance, *thoughtfully weighted* edit distance 23:14
japhb_ hates brute-force edit distance "suggestions" that end up laughingly ridiculous 23:15
s/laughingly/laughably/
23:16 Pleiades` joined
timotimo trying my best. still struggling getting a sensible threshold calculation 23:16
probably will go with a histogram of the distances to all known things and some heuristic on that 23:17
23:18 sizz_ joined 23:21 stopbit left 23:24 zoomby left, zoomby joined 23:26 Chillance left 23:31 donaldh joined 23:32 donaldh left 23:34 skids joined
timotimo does nqp have sorting at all? 23:41
oh, it apparently does, neat.
it sorts very strange, though 23:42
Ulti jnthn in zavolaj if I want to pass in a null for an OpaquePointer what should I do? 23:45
timotimo my @l := [[1, "foo"], [2, "bar"], [9, "quux"], [1, "yoink"]]; @l := @l.sort({ $_[0] }); for @l { say(nqp::join(",", $_)) }
nqp: my @l := [[1, "foo"], [2, "bar"], [9, "quux"], [1, "yoink"]]; @l := @l.sort({ $_[0] }); for @l { say(nqp::join(",", $_)) }
p6eval nqp: OUTPUT«Null PMC access in get_pmc_keyed_int()␤current instr.: '' pc 188 ((file unknown):96) (/tmp/TfKJp1nhun:1)␤»
jnthn Ulti: Pass a type object.
(e.g. just pass OpaquePointer) 23:46
Ulti okedoke
yeah once I get this to work I will make nice types for everything ;)
timotimo in what sorting method is the order "17, 17, 18, 17, 15, 34" a sorted order? :/ 23:47
23:47 stevan_ joined 23:52 stevan_ left 23:54 zoomby left
dalek p-jvm-prep: 3f98780 | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationReader.java:
Resolve dependent SCs table.
23:57
p-jvm-prep: 3094a4b | jnthn++ | src/org/perl6/nqp/sixmodel/KnowHOWBootstrapper.java:
Set up the __6MODEL_CORE__ SC.
p-jvm-prep: 9516dc1 | jnthn++ | src/org/perl6/nqp/sixmodel/ (13 files):
Stub STables and objects at deserialization start.
p-jvm-prep: e664ef5 | jnthn++ | src/org/perl6/nqp/sixmodel/ (13 files):
Fill out STable and object deserialization logic.

This also adds the REPR deserialize functions for some representations but others (especially the rather more complex P6opaque) are to come. This gets a knowhow with a method in to deserialize well enough to be able to call the method, at least.
timotimo nqp: say(0.1 < 0 <= 0.2)
p6eval nqp: OUTPUT«1␤»
p-jvm-prep: 1bcb2aa | jnthn++ | lib/QAST/JASTCompiler.nqp:
Twiddle deserialization code-gen a little.
timotimo ah, no chaining 23:58
dalek p-jvm-prep: 689f958 | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/KnowHOWAttribute.java:
Handle deserialization of KnowHOWAttribute.

Turns out that with this, we can now deserialize nqp-mo.pm's blob successfully!
23:59
p-jvm-prep: b8395aa | jnthn++ | / (2 files):
Enable emitting deserialize code by default.