»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:08 risou joined 00:11 whiteknight joined, rgrau_ left 00:16 kst` is now known as kst 00:32 QinGW joined 00:41 ggoebel left 00:51 ggoebel joined 01:00 Khisanth left 01:02 risou left 01:04 molaf_ joined 01:06 xivix left 01:08 molaf left, xivix joined 01:10 redicaps joined
colomon \o 01:11
01:24 Khisanth joined 01:27 xivix left 01:31 meppl joined 01:40 redicaps left 01:43 ggoebel left 01:46 ggoebel joined 01:47 silug left 01:50 leprevost joined 01:55 thowe joined 01:56 ruoso left 02:02 meppl left 02:18 Khisanth left 02:25 meppl joined 02:44 whiteknight left 03:20 Khisanth joined 03:27 meppel joined, meppel left 03:30 meppl left 03:33 agentzh joined 03:40 meppl joined 03:47 Khisanth left 03:51 leprevost left 03:59 satyavvd joined, molaf_ left 04:23 pythonian4000 is now known as pythonian4000afk 04:46 [particle]1 joined 04:48 [particle] left 04:51 kaare joined 04:52 kaare is now known as Guest14588 05:03 sftp_ left 05:05 skids left 05:06 mfollett joined 05:12 [particle]1 left 05:13 [particle] joined 05:15 xinming joined 05:17 xinming_ left 05:24 envi joined 05:30 steez joined 05:37 Guest14588 is now known as kaare_ 05:41 justatheory left 05:42 ggoebel left 05:49 xinming_ joined 05:50 xinming left 05:54 ironcame1 is now known as ironcamel 05:55 rvrgs joined 06:01 nymacro joined 06:07 zby_home_ joined 06:09 uniejo joined 06:16 rvrgs left, rvrgs joined 06:17 rvrgs left, rvrgs joined, thowe left 06:19 mfollett left, takadonet left 06:28 takadonet joined 06:35 masonkramer left 06:36 masonkramer joined 06:41 rvrgs left 06:45 araujo left 06:51 qwebirc33294 joined 06:54 mavrc joined 07:02 bbkr left 07:07 baest joined
mathw jnthn: Good blog post. Sounds like the multi-dispatch spec needs some more work. 07:21
07:21 mavrc left 07:24 Mowah joined 07:34 bbkr joined
jnthn mathw: Yes, I'd certainly appreciate some answers to some of the issues I wrote about. 07:36
07:37 mavrc joined 07:46 baux joined
sorear interesting 07:47
firefox is rendering the open quotes in jnthn's blog as em quads 07:48
but they copy to the clipboard as U+201C LEFT DOUBLE QUOTATION MARK
mathw Firefox bug, or font bug... 07:49
07:49 am0c joined
sorear fwiw, multiple dispatch of this sort is very confusing to me too 07:49
which is why I modified v6/STD.pm6 to not use it
mathw I don't find it so confusing, or at least I didn't 07:50
I wasn't actually aware there was a spec change around it so that confused me
sorear in other "spec change without asking" news, I find the new spec for Nil much less strangely consistent than the old one 07:51
07:51 baux left 07:52 baux joined 07:53 mavrc left 07:54 Khisanth joined 07:55 mavrc joined, baux left
mathw Hmm we still have Nil? 07:55
Oh it was undef we got rid of
08:02 baux joined 08:13 rvrgs joined, rvrgs left 08:21 shabble left 08:30 qwebirc33294 left, molecules left 08:50 Trashlord joined 08:54 masak joined
masak good morning, #perl6! 08:54
08:55 szabgab left
masak sorear: re Nil: I hear ya. however, I think that the most recent Nil changes were an improvement. 08:58
and I don't think that the one suggestion you have made so far -- to make Nil undefined -- would fly.
09:00 xabbu42 joined
sorear masak: no 09:02
masak: Nil being undefined is one of the parts of the CURRENT SPEC that I am complaining about
09:04 daxim joined
masak oh, sorry. I meant '[...] suggestion to make () undefined' 09:05
flussence Are type objects without a value considered undefined? 09:09
masak type objects are undefined, period. at least to a first approximation. 09:12
flussence I can sorta see Nil-as-undef making sense there, as being a type object that can never have a value. 09:13
(assuming it works that way) 09:14
sorear Nil isn't a type object
it's a super magic parcel that has a CANDO and is not defined, but is a perfectly valid zero-item parcel
unlike Parcel, whcih is not defined and NOT a valid zero item parcel
also, () and {}.() used to both return Nil because they were exactly the same 09:15
now, the strange consistency of ( ... ) being a normal statement list is broken!
flussence this all sounds a lot more complicated than it needs to be 09:16
sorear That's what I said.
09:18 Schwern left
masak here's one thing that we would like to be true: when we use .+ and .* and .?, the results come back in a Parcel. when the Parcel is empty, it's also undefined. that way, we can use infix:<//> to supply another value on failure. 09:19
09:24 cognominal left
masak here's another thing that we would like to be true: when we do a map or a grep of a for loop, the results come back in a Parcel. when the Parcel is empty, (etc) 09:25
sorear what bothers me *most* is the part where assigning Nil to a variable causes it to assume its declared default value or to become empty and undefined
while assigning () causes it to remain defined
so LISTSTORE needs to differentiate between Nil and (), also every % and @ variable needs extra slots to store .defined and default value 09:26
this drives me up the wall as an optimization studier
sorear out 09:27
masak I agree that this whole area is full of corner cases. the waterbed is bulging more than usual. 09:28
Tene jnthn: very good blog post. I have some vague ideas about answers, but I need more thought. 09:29
09:31 QinGW left 09:32 QinGW joined
masak jnthn: "A candidate list is a list of things that we can work out way through calling." -- I don't understand this sentence. 6guts.wordpress.com/2010/10/17/wres...-dispatch/ 09:34
jnthn typo
s/out/our/
masak ah. 09:35
I read it as "work out way instain mother" :)
jnthn You need to frigth back against the lolinstinct now and then. :P 09:38
masak I am truely sorry. :P 09:40
frettled masak: look, a kitten! 09:41
masak and it's being chased by big angry brown things! 09:42
mathw DO NOT WANT
frettled Domoku? 09:44
not to be confused with pedobear
n
masak "domokun" sounds familiar, yes. 09:45
frettled upload.wikimedia.org/wikipedia/en/1...kitten.jpg 09:46
Actually, it's just "Domo", but with the diminutive -kun added. 09:47
masak knew he could count on frettled++ to sort out the details 09:48
frettled \§/ 09:49
09:57 QinGW left 09:58 QinGW joined 10:10 ggoebel joined 10:12 QinGW left
dalek albot: 66aacfe | moritz++ | / (10 files):
move build scripts to a separate directory
10:26
10:27 ggoebel left
Infinoid diakopter: ping 10:29
dalek albot: 671fe6e | moritz++ | build-scripts/rebuild- (3 files):
[build-scripts] be more robust about startup directory
10:37
albot: dd14296 | moritz++ | build.pl:
add generic build script
albot: 801ef54 | moritz++ | build (2 files):
[build.pl] thinko
albot: 928e895 | moritz++ | build.pl:
mode changes
albot: 85abe2a | moritz++ | build.pl:
[build] fix paths
albot: bdbef9e | moritz++ | build-scripts/rebuild-rakudo.pl:
missing shebang line
albot: edbd64a | moritz++ | build-scripts/rebuild-rakudo.pl:
don't die in absence of revision file
10:42
szbalint moritz_: good morning, I take it? :) 10:44
moritz_ good localtime() szbalint :-)
vacations here
masak \o/ 10:45
moritz_ \o/ indeed 10:47
masak jnthn: "These are the good consequences, and I don’t disagree with they are improvements." s/with/that/ 10:51
jnthn: post is very good so far.
jnthn :P
Apart from the typos...and grammaros...
It'd be so much easier if I could blog without having to use words. 10:52
Oh, wait...
masak an entire blog post consisting only of smilies and lolcats.
jnthn It's call icanhascheezburger.com :P
...called! 10:53
masak :)
dalek albot: eacb7e6 | moritz++ | run.sh:
add run script
jnthn I had this hope that writing the post would make the problem a bunch more clear to me. 10:54
moritz_ did it?
jnthn I don't feel like it helped find a solution, but having to articulate the issues helped me understand them a bit better. 10:55
masak I feel the same reading it.
jnthn++
jnthn I figured it was better to spend the time writing a coherentish post on them than trying to discuss it from scratch on IRC though.
moritz_ found it quite impressive
jnthn The issues are, I fear, quite deep.
10:55 whiteknight joined
jnthn Either that or I'm missing something obvious. 10:56
10:56 timbunce joined
masak I'm now convinced that things need to change, one way or another. also modulo me missing something obvious. 10:56
jnthn I'd kinda prefer it to be that I'm missing something, but I fear that we actually do just have some design issues to work through. 10:57
masak it'll be really nice to get to those, though.
jnthn Yes, and I think we really need to.
masak lunch & 10:58
jnthn I also wonder how far the exception dispatcher thing goes.
10:58 steez left
jnthn Can you nextsame to the next exception handler for example. 10:58
Not in current spec, but maybe there's an interesting unification to consider here. 10:59
11:11 steez joined 11:15 ggoebel joined
moritz_ moritz.faui2k3.org/tmp/visitors.svg # non-search engine referral breakdown for perlgeek.de 11:16
generated with Perl 6, of course
colomon of course
11:16 ggoebel left
moritz_ :-) 11:16
11:18 Mowah left 11:23 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
moritz_ perl6: say 'now on new host, diakopter++' 11:24
p6eval pugs, rakudo d35769: OUTPUT«now on new host, diakopter++␤»
dalek albot: 2710cd8 | moritz++ | lib/EvalbotExecuter.pm:
fix a path
colomon jnthn: What's the status of R* MSI on Windows? 11:26
(it looks like I've got R* from July on my Windows box, wondering if there is a more recent release available.) 11:28
moritz_ ftp://x3n.info/pub/apps/win32/x86/rakudo-star/ 11:29
colomon moritz_++ 11:30
sweet! 11:32
jnthn Aye, somebody++ != me did a more up to date one. 11:34
colomon I'm slowly getting ready to swap a new harddrive into my MBP, and making sure I can do my current $work project on my Windows box is an important paranoid step. :)
hmmm, guess I need ufo, too. :) 11:36
errr, does ufo work on Windows yet?
moritz_ would be surprised 11:41
11:42 Mowah joined 11:43 ggoebel joined
colomon well, it generated a very nice makefile 11:43
which doesn't work
11:44 icwiener joined
jnthn If it's anything like the ones pls makes, it'll be a pile of fail on Windows. 11:45
11:45 ggoebel left
colomon suppose I can probably get things working on my Linux box.... :\ 11:46
colomon rebuilding Rakudo there... 11:53
11:53 satyavvd left 11:59 Italian_Plumber joined
colomon oh, neutro++ 12:03
masak tadzik++
12:05 Kodi joined
Kodi rakudo: sub f (:$a) { say "hai" }; f "a" => 1; # Known? 12:06
p6eval rakudo d35769: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'f' at line 1:/tmp/L0Ace0iz4a␤ in main program body at line 22:/tmp/L0Ace0iz4a␤»
colomon rakudo: sub f (:$a) { say "hai" }; f("a" => 1); # Known? 12:07
p6eval rakudo d35769: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'f' at line 1:/tmp/EdMrIcaFcT␤ in main program body at line 22:/tmp/EdMrIcaFcT␤»
Kodi rakudo: sub f (*%h) { say "hai" }; f now => 1; # Trickier.
p6eval rakudo d35769: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'f' at line 1:/tmp/xSZ3HiYL6B␤ in main program body at line 22:/tmp/xSZ3HiYL6B␤»
jnthn colomon: Correct 12:08
colomon: I'ts only a named arg if the LHS is unquoted iirc.
colomon !
Kodi rakudo: sub f (:$a) { say "hai" }; f(|("a" => 1)); 12:09
p6eval rakudo d35769: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'f' at line 1:/tmp/VOEZjn4aET␤ in main program body at line 22:/tmp/VOEZjn4aET␤»
Kodi Should that work?
colomon rakudo: sub f (:$a) { say "hai" }; f(a => 1); # Known?
jnthn rakudo: sub f (:$a) { say "hai" }; f(|{"a" => 1});
p6eval rakudo d35769: OUTPUT«hai␤»
jnthn Needs to be a hash I guess
moritz_ aye
jnthn Maybe pair after | could be made to work
moritz_ a list will interpolate as positional pairs
12:10 nymacro left 12:11 Woody4286 is now known as Woody2143 12:18 lamstyle left 12:19 nymacro joined 12:20 lamstyle joined, MayDaniel joined 12:27 Grimnir_ left, [particle]1 joined 12:28 [particle] left 12:29 cognominal joined, ggoebel joined 12:37 MayDaniel left 12:39 Italian_Plumber left
masak jnthn: if you got to decide, how would the multi/proto model look? as it did before the last big spec change? 12:42
12:42 shabble joined, shabble left, shabble joined 12:45 Italian_Plumber joined
jnthn masak: As mentioned, there were genuine problems with that model too. 12:48
So I'm not sure going back to it is really progress. 12:49
The real user-visible problem with the current design is the need to write a proto. 12:51
The more minor one is we need to sort out or dispatcher vs code object story.
The other issues are much more about implementability.
masak I think I could stand writing a proto in a lexical scope, but I'd hate it in a class. 12:52
implementability is important for the user too. at least for the power user, who relies on a sound mental model of what's happening under the hood.
jnthn Yes, true. 12:53
12:53 am0c left, bluescreen joined
jnthn As somebody who has given a lot of Perl 6 talks, I do get nervous when I feel we're heading for an implementation that's too comlex to explain. 12:53
masak TheDamian once said about multi dispatch that it needs to be really really simple. much thanks to that sentiment, we ended up with the current rules for tightness. 12:54
(for a while we had manhattan distances and stuff)
jnthn Well, this is actually sort of orthogonla.
The problem isn't about the candidate sorting here. 12:55
But yes, simple++.
masak I know it's a completely different problem. 13:00
but I'm taking candidate sorting as an example because I consider that to be an area where we Got It Right(tm).
jnthn *nod*
masak right now it seems to be that we're in a bad situation: (1) old model was bad in some ways, (2) new model better in some ways, worse in some, and appears unimplementable, (3) no sane model in sight. 13:01
jnthn I'm still trying to understand where the problem really is, tbh. 13:02
I think part of it is that we've tried too hard to conflate dispatchers and code objects.
13:04 kaare_ left
moritz_ eats a slize of self-made hazelnut cake with a topping of white chocolate and nougat 13:04
jnthn Sharing the description without sharing the cake is cruel. :P 13:05
That sounds SO nice!
moritz_ and it is.. just visit me if you want a slice :-) 13:06
just a random thought... would it help to make the dispatcher-curried-with-candidate-list more explicit? 13:07
currently the spec tries to hide it under the hood, which might not work out too well 13:08
jnthn moritz_: That's somewhat what I'm thinking may help. 13:10
moritz_: It still doesn't answer everything though.
Particularly the "how do we associate the {*} in the proto with the correct candidate list"
13:10 rgrau_ joined
jnthn Which is the really big headache here. 13:10
moritz_ another thought (mostly unrelated): maybe &foo.wrap having an in-place, mutating effect is the real problem? 13:11
jnthn Not quite
13:11 Schwern joined
jnthn What is the real problem is that we expect &foo to refer to the proto 13:11
13:11 tom_tsuruhara joined
jnthn But also to imply something about the candidate list 13:11
Which differs in different scopes
And you can't just say something like "oh, it's the calling scope" 13:13
Because referencing &foo in a given scope needs to capture that scope's idea of the candidate list
Wherever we end up doing the invocation from.
BTW, pondering submitting a Perl 6 talk to www.scandevconf.se/2011/call-for-papers/ 13:14
masak: It's in Sweden, dunno if you're interested in submitting to ^ too. 13:15
masak will check it out. thanks. 13:16
jnthn (Was thinking for the Emerging Technologies track)
masak ooh, it's in Göteborg. 13:18
13:19 Patterner left
jnthn aye 13:19
De talar funny. ;-)
masak my favourite Swedish dialect. :) 13:20
13:25 [particle]1 is now known as [particle]
jnthn Huh? I thought Skanska was everyone's favourite. :P 13:26
daxim ♪ vinna kinky roligt ♪ 13:28
masak whoa :)
13:30 uniejo left
jnthn ...win kinky really? 13:30
daxim the hat is yours, jnthn 13:31
jnthn
.oO( Sounds like it's a wizard hat...now, where's my coat... )
masak jnthn: www.youtube.com/watch?v=MT9ZNJ2YS64
13:31 Psyche^ joined, Psyche^ is now known as Patterner
slavik1 jnthn: robe 13:33
not coat
masak slavik1: damn I gotta write down your names or something 13:35
slavik1 ?
it should be slavik ... but auto auth doesn't work sometimes
masak thought you'd catch the reference. slightly obscure in-joke, perhaps.
slavik1 I didn't catch it all :( 13:36
jnthn Oh noes, epic lolknowledge fails.
masak there are three canonical bloodninja dialogues.
the above quote is from the third and shortest one.
13:37 ruoso joined
jnthn remembers it now :-) 13:37
slavik1 oh yeah
HA!
slavik1 read it again
masak :) 13:38
daxim I collected internet memes before they went mainstream
my next birthday party will be meme-themed
13:38 Schwern left
jnthn I can already guess what the food is going to be. :-) 13:39
13:40 _kaare joined 13:41 skids joined 13:43 mavrc left 13:44 mavrc joined
dalek ok: 3e7c09b | moritz++ | src/multi-dispatch.pod:
[multi] remove a now obsolete comment
13:45
13:46 standz left 13:47 agentzh left, standz joined 13:51 PacoLinux joined, plainhao joined 13:54 sECuRE left
dalek ok: a0e9bcb | moritz++ | src/multi-dispatch.pod:
[multi] re-work introductory section based on feedback from jkeenan++ in github.com/perl6/book/issues/#issue/26
13:56
jnthn moritz_: I did a commit to subs-n-sigs.pod not so long back that may have helped with some of jkeenan++'s issues.
Feel free to see if you think the patch closes any.
13:59 Kodi left
BooK I need to ignore dalek 14:00
moritz_ feel free :-) 14:01
slavik1 dalek is not to be ignored! 14:11
masak BooK: your complaint is essentially that we commit too much around here? :) 14:17
14:19 MayDaniel joined 14:20 bbkr left, Schwern joined, bbkr joined
BooK masak: if I had a complaint, it would be about you guys having a project named after me ;-) 14:22
14:24 _twitch joined
masak BooK: that was my idea; sorry :/ 14:24
14:25 pothos joined 14:27 whiteknight left 14:29 _twitch left
moritz_ rakudo: say 'book' eq 'Book' 14:29
p6eval rakudo d35769: OUTPUT«Bool::False␤»
moritz_ doesn't know what BooK means
masak rakudo: say 'book' eq 'Book' eq 'BooK' 14:30
p6eval rakudo d35769: OUTPUT«Bool::False␤»
14:30 timbunce left 14:36 perlygatekeeper joined
moritz_ rakudo: say (a => 3).key.WHAT 14:39
p6eval rakudo d35769: OUTPUT«Str()␤»
moritz_ rakudo: say (a => 3).key.PARROT
p6eval rakudo d35769: OUTPUT«String␤»
moritz_ this is not good[tm]
rakudo: say (a => 3).key.trans(['a'] => ['b']) 14:40
p6eval rakudo d35769: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in main program body at line 22:/tmp/dyqTwRjc8F␤»
14:40 silug joined
masak we have that problems in more places than that. 14:41
moritz_ that's one that kills the to-json multi in the book :(
masak :(
14:42 steez left 14:43 _twitch joined 14:47 bitofbuntu joined 14:50 justatheory joined 14:52 bbkr left 14:58 cls_bsd left, Grimnir_ joined 15:00 timbunce joined 15:07 MayDaniel left
colomon rakudo: class A { method aaa() { say "aaa"; }; }; $b.aaa; 15:08
p6eval rakudo d35769: OUTPUT«===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
colomon LTA
masak colomon: my $b
known bug.
rt.perl.org/rt3/Ticket/Display.html?id=78252 15:09
colomon I see your response was much the same as mine. ;)
15:10 bitofbuntu left
colomon is anyone working on it? 15:11
masak not aware of anyone working on any RT ticket at the moment. 15:12
15:12 bitofbuntu joined
colomon masak++ for knowing what is up 15:12
masak "I'm not aware" is not the same as "knowing what is up" :P
colomon wish this wasn't a distraction from $work at the moment.
masak I feel like that most every day. 15:13
15:16 timbunce_ joined
colomon "knowing what is up" means finding the RT ticket in seconds, BTW. 15:16
masak ah :) that's more a special sort of benign brain damage, if you ask me :P 15:17
szbalint masak has a neural interface to any issue trackers related to P6, or so it seems... :) 15:18
15:18 timbunce left, timbunce_ is now known as timbunce 15:19 mavrc left
masak it's quite convenient. except for the nightmares. *shudder* 15:19
15:20 mavrc joined 15:22 mblackmer joined 15:23 mblackmer left 15:26 araujo joined 15:27 spq1 joined
masak rakudo: sub f { print "OH HAI" }; &f.wrap: { print "-> "; callsame; print " <-" } for ^3; f 15:27
p6eval rakudo d35769: OUTPUT«-> -> -> OH HAI <- <- <-»
masak \o/
colomon wacky 15:28
(in a good way)
masak rakudo: sub f { "OH HAI" }; &f.wrap: { "-> {callsame} <-" } for ^3; say f # even shorter 15:29
p6eval rakudo d35769: OUTPUT«-> -> -> OH HAI <- <- <-␤»
slavik1 callsame is a keyword?
or what is it's meaning?
masak it's a subroutine.
slavik1 of what object? 15:30
colomon rakudo: sub f { "OH HAI" }; &f.wrap: { "-> {callsame} ||| {callsame} <-" } for ^3; say f
p6eval rakudo d35769: OUTPUT«-> -> -> OH HAI ||| OH HAI <- ||| -> OH HAI ||| OH HAI <- <- ||| -> -> OH HAI ||| OH HAI <- ||| -> OH HAI ||| OH HAI <- <- <-␤»
slavik1 how does it translate to the string "OH HAI"
masak slavik1: it's a subroutine, hence not of any object.
slavik1 ahh
right
a special/global subroutine?
masak slavik1: "callsame" in the context of wrapping means "call the thing being wrapped".
yes, it's global and a bit special. 15:31
slavik1 gotcha
masak it talks to the dispatcher.
slavik1 perl6 is not so simple :(
unless I am trying to understand it more than I understand perl5
masak you probably are :)
Perl 6 has a simple centre, with paths leading away to more specialized areas, which are consequently more... involved. 15:32
15:36 timbunce_ joined 15:38 timbunce left, timbunce_ is now known as timbunce
moritz_ just commented on RT #78252 15:39
colomon moritz_++ 15:40
15:43 sftp joined
Juerd Hm, I would have expected something like inner instead of callsame. 15:43
15:46 timbunce_ joined
masak Juerd: multi dispatch and wrapping are unified in Perl 6, so both use [call|next][with|same]. 15:46
15:47 timbunce_ left 15:49 timbunce left, bitofbuntu left, Schwern left 15:50 Schwern joined
Juerd masak: Ah, that makes it a little clearer: "same" should be read as "same arguments"? 15:52
masak it should indeed.
Juerd I was reading it as "same subroutine" 15:53
Which to me, would be the wrapper itself, and thus infinite recursion :) 15:54
15:54 risou joined
masak reading A12, 'nextsame' used to be spelled 'next METHOD'. 15:56
16:00 Ross joined, Ross left, Ross joined 16:01 rvrgs joined
masak rakudo: sub rot13 { $^input.trans([$_] => [.rotate(13)]) given "A".."Z" }; say "BU UNV".&rot13 16:07
p6eval rakudo d35769: OUTPUT«OH HAI␤»
16:09 MayDaniel joined
jnthn back from $dayjob 16:21
masak: (next METHOD) interesting, I guess then it was just for method dispatch, not generalized...
masak not sure where wrappers fit into that scheme. or if they did.
16:22 cdarroch joined, cdarroch left, cdarroch joined, kcwu left, isBEKaml joined
jnthn masak: Don't know they did. Certainly I only became aware that they should share a mechanism recently-ish. 16:23
masak: I think it was at Go Open in Oslo, I'd been asking about this, and the answer was in TimToady's keynote. :-)
masak :)
swim & 16:24
16:24 masak left, meppl left 16:27 Ross left, Ross joined, Ross left, Ross joined
isBEKaml rakudo: sub foo { "HAI!" }; &f.wrap: { " # -> {nextsame} +++ {nextsame} <-- #" } for ^3; f.say; 16:32
p6eval rakudo d35769: OUTPUT«Could not find sub &f␤ in <anon> at line 22:/tmp/ucQ5dWZOLP␤ in main program body at line 1␤»
isBEKaml rakudo: sub foo { "HAI!" }; &f.wrap: { " :: -> {nextsame} +++ {nextsame} <- ::" } for ^3; f.say; 16:33
p6eval rakudo d35769: OUTPUT«Could not find sub &f␤ in <anon> at line 22:/tmp/_s4jClr2jK␤ in main program body at line 1␤»
isBEKaml rakudo: sub foo { "HAI!" }; &foo.wrap: { " :: -> {nextsame} +++ {nextsame} <- ::" } for ^3; foo.say; # OH, right! :/
p6eval rakudo d35769: ( no output )
isBEKaml taking upon colomon++/masak++'s work - callsame isn't same as nextsame? 16:34
I thought they were
jnthn They both pass on the original arguemnt set 16:35
But callsame returns
And nextsame doesn't
isBEKaml I guess that's why nextsame is used within wrappers in roles...
rakudo: sub foo { "HAI!" }; &foo.wrap: { " :: -> {callsame} +++ {callsame} <- ::" } for ^3; foo.say; 16:36
p6eval rakudo d35769: OUTPUT« :: -> :: -> :: -> HAI! +++ HAI! <- :: +++ :: -> HAI! +++ HAI! <- :: <- :: +++ :: -> :: -> HAI! +++ HAI! <- :: +++ :: -> HAI! +++ HAI! <- :: <- :: <- ::␤»
isBEKaml nice. jnthn, can you tell me what .wrap does here? It takes any block and constructs something out of it? 16:37
not necessarily a sub, right?
16:38 baux left
jnthn isBEKaml: It replaces the thing that the sub executes when called with what you pass with a dispatcher, which then works through a candidate list made up of the wrappers, in the order they were added, down to the original sub. 16:39
isBEKaml: callsame is just saying "I want to call the next thing down the list"
isBEKaml jnthn: ah, ha! So you can go on adding more wrappers and then .wrap would successively peel them away down to the original sub implementation.... /time_to_test_that/ :) 16:41
rakudo: sub foo { "HAI" }; &foo.wrap { "Hej" } for ^3 ; foo.say; 16:42
p6eval rakudo d35769: OUTPUT«===SORRY!===␤Confused at line 22, near "&foo.wrap "␤»
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej" } for ^3 ; foo.say;
p6eval rakudo d35769: OUTPUT«Hej␤»
isBEKaml uhh, that's replaced entirely. 16:43
rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej"; &foo.wrap: { "Ahoj" }; } for ^3 ; foo.say; #nesting, anyone?
p6eval rakudo d35769: OUTPUT«5␤»
isBEKaml heh
jnthn isBEKaml: Something like that, yes 16:44
No, it didn't replace it entirely. You just chose not to defer to the next thing in the list.
YOu have to do it explicitly.
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej";{ &foo.wrap: { "Ahoj" }; }; } for ^3 ; foo.say; 16:45
p6eval rakudo d35769: OUTPUT«5␤»
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej"; callsame; { &foo.wrap: { "Ahoj"; callsame; };}; } for ^3 ; foo.say;
p6eval rakudo d35769: OUTPUT«7␤»
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej"; callsame; }; &foo.wrap: { "Ahoj"; callsame; }; foo.say; 16:46
p6eval rakudo d35769: OUTPUT«HAI␤»
isBEKaml jnthn: the numbers don't make sense. :( 16:47
skids Should be last statement evaluated, so if you wanted to concat or say you'd have to say so. 16:48
jnthn isBEKaml: It's working as expected - what skids said.
isBEKaml no, I meant the numbers - 5 and 7 above.
colomon rakudo: sub foo { "HAI" }; say &foo.wrap: { ">" ~ callsame ~ "<" }; say foo
p6eval rakudo d35769: OUTPUT«2␤>HAI␤»
skids return value of wrap.
jnthn Oh
Yeah, wrap just returns integer wrap handles at the moment 16:49
There's an RT whining about that.
colomon rakudo: sub foo { "HAI" }; say &foo.wrap: { ">" ~ callsame() ~ "<" }; say foo
p6eval rakudo d35769: OUTPUT«2␤>HAI<␤»
colomon interesting.
isBEKaml Oh, I see...
jnthn Quite what a wrap handle would stringify to though, who knows. :-) 16:50
isBEKaml rakudo: sub foo { "HAI" }; say &foo.wrap: { "Hej";{ say &foo.wrap: { "Ahoj" }; }; } for ^3 ; foo.say; 16:51
p6eval rakudo d35769: OUTPUT«2␤3␤4␤5␤Bool::True␤»
isBEKaml interesting....
16:52 sECuRE joined
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej{" ~ callsame ~ "}";{ &foo.wrap: { "Ahoj::" ~ callsame ~ "::" }; }; } for ^3 ; foo.say; 16:53
p6eval rakudo d35769: OUTPUT«5␤»
isBEKaml rakudo: sub foo { "HAI" }; &foo.wrap: { "Hej{" ~ callsame ~ "}";{ &foo.wrap: { "Ahoj::" ~ callsame ~ "::" }; }; }; foo.say; 16:54
p6eval rakudo d35769: OUTPUT«3␤»
isBEKaml rakudo: sub foo { "HAI" }; sub b { &foo.wrap: { "Hej{" ~ callsame ~ "}"; }; }; &b.wrap: { "Ahoj::" ~ callsame ~ "::" }; b.say; 16:56
p6eval rakudo d35769: OUTPUT«Ahoj::2␤»
jnthn Guess I should figger out some noms. bbl. 16:57
isBEKaml Guess I should just go figgering the wraps of wraps... 16:58
17:05 rvrgs left 17:06 Schwern left, mberends joined 17:09 mfollett joined
jnthn o/ mberends 17:29
17:29 envi left, Schwern joined
mberends oh hai jnthn! I'm about to commit a slightly less broken 6model/java update 17:30
jnthn Ooh! :-)
mberends the now-fixed problem was that LexPad was a struct, not a class, and Java has no structs :( 17:31
jnthn ouchyouchouch 17:32
It's a struct to save an allocation per context.
mberends the dotnet Context contained a LexPad that was never created, it just "was".
jnthn But anyway, make it work first. :-)
Right.
'cus structs need not be.
You may wnat to hand-inline it at some point though. 17:33
If that isn't the fix you've already done.
mberends I just jammed in a "new" at the appropriate spot ;) 17:35
17:36 mfollett left
diakopter rakudo: 'faster now?'.say 17:37
p6eval rakudo d35769: OUTPUT«faster now?␤»
jnthn mberends: Well, that's the easy fix. :-) 17:38
17:39 _twitch left 17:40 Entonian joined 17:42 pyrimidine joined, _twitch joined 17:50 whiteknight joined 17:54 Mowah left 17:57 kcwu joined
PerlJam Anyone got any good names for this month's Rakudo release? 17:58
17:58 mfollett joined
colomon woah, is it that time of the month again? 17:59
PerlJam yep
diakopter aunt flo
scnr
PerlJam There's only one suggestion in the release guide: BristolBath.pm 18:00
dalek odel: c025d33 | mberends++ | / (8 files):
[java:bugfix] make a Lexpad object to resemble the struct Lexpad in dotnet
PerlJam oh, I'm suppoed to invite people to update the ROADMAP/ChangeLog/etc. so ... have at it! :) 18:01
18:02 MayDaniel left 18:03 orafu left 18:04 orafu joined 18:11 daxim left
mberends PerlJam: the Paris osdc.fr conference last weekend was very Perl6-friendly :) 18:12
er, weekend before last 18:13
jnthn Ooh, yes. That could work as a name. 18:15
PerlJam "Paris"? or "osdc.fr"? 18:16
I guess in keeping with the monger tradition it would have to be "Paris" 18:17
jnthn Aye
PerlJam so be it. 18:18
18:32 am0c joined, ggoebel left 18:35 eternaleye left, masonkramer left 18:36 eternaleye joined, masonkramer joined 18:39 MayDaniel joined 18:51 masak joined
masak ahojte! 18:51
takadonet masak: hey 18:52
mberends ahoy masak!
masak takadonet, mberends: hejsan :)
18:53 nymacro left 18:57 _twitch left
mberends masak: the first Lego Mindstorms project just reached the walking and talking stage :) 18:57
masak clearly there's some potential in wrapping subs and producing fractals, as evidenced by isBEKaml's experiments in the log :)
mberends: wow, cool!
18:59 _twitch joined
masak mberends: so the gift was appreciated by both father and son, I take it? :) 18:59
18:59 risou left
mberends masak: exactly :) 18:59
masak that's the best form of gift, if you ask me. :) 19:00
19:02 timbunce joined 19:07 mavrc left, kjeldahl joined 19:10 MayDaniel left 19:11 mavrc joined 19:12 rvrgs joined, _twitch left 19:13 wamba joined 19:20 Schwern left 19:21 ggoebel joined 19:22 wamba left 19:24 ggoebel left 19:29 plainhao left
moritz_ oh hai 19:30
"All in all the release team hopes to have these blockers sorted out by
the end of October, which would allow a release before Christmas."
19:30 masak` joined
moritz_ from debian-devel-announce 19:30
19:30 timbunce left 19:31 masak` left 19:32 masak left 19:40 Entonian left 19:41 ggoebel joined
moritz_ further results for RT #78252: bisecting in rakudo was non-conclusive, ie identified the last revision... so it could be a parrot change :( 19:58
19:59 Italian_Plumber left 20:02 araujo left 20:05 eternaleye left, eternaleye joined 20:08 EdwardIII joined 20:10 araujo joined 20:11 bluescreen left 20:15 justatheory left 20:16 mfollett left 20:18 meppl joined, justatheory joined 20:19 rvrgs left 20:20 ggoebel left 20:26 bluescreen joined, s_mosher joined
s_mosher hi folks 20:26
I noticed higher-arity reduce() is unimplemented 20:28
after poking around, it seems like the obvious change works
but it was already in, just commented out, plus there was a test guard against $arity>2... which makes me ask: what did I just break? 20:30
jnthn s_mosher: Did you try make spectest to see if there was any fallout there? 20:31
Other than that, I'm not sure why it's commented out - I guess there's no explanatory comment?
s_mosher good idea
no, I hadn't
no, aside from the test guard, it just had "$res = $expression.(|@args);" commented out, replaced with "...(@args[0],@args[1])" 20:32
my best guess is maybe it has something to do with trailing terms causing unexpected behaviour 20:33
I'll wait to see if there's any explosions from spectests 20:34
20:35 Entonian joined 20:37 justatheory left 20:39 justatheory joined
dalek kudo: 7c90370 | moritz++ | src/core/Temporal.pm:
[Temporal] stylistic cleanup; no functional changes
20:43
s_mosher jnthn, not failing any new tests in reduce 20:47
some are failing because of conflicting expectations in the comparison tests, but they dwim the same 20:49
21:01 Schwern joined 21:09 ggoebel joined 21:10 nadim_ joined, rgrau__ joined 21:11 skids left, Raynes_ joined, MOAR-f00li5h joined 21:12 sjn__ joined, pnu_ joined, Raynes left, Raynes_ is now known as Raynes, Raynes left, Raynes joined
dalek odel: 30e4673 | jnthn++ | dotnet/runtime/Runtime/Ops.cs:
[dotnet] Add a couple of missing coercion ops to the runtime.
21:13
odel: 1b9b061 | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
Turn down constant optimization a notch, to un-regress a test.
odel: 579b172 | jnthn++ | dotnet/runtime/Runtime/Ops.cs:
[dotnet] euqal_refs op (for giving =:= functionality).
odel: cf07e79 | jnthn++ | common/NQP/NQPSetting.pm:
[common] Some initial cuts of prefix + and ~, Stringy and Numeric in the NQPSetting.
odel: 98e707b | jnthn++ | common/NQP/NQPSetting.pm:
[common] =:=
jnthn s_mosher: OK. It'd be interesting to know why the original thing was commented out. But feel free to send a patch in - that'll hopefully get someone to comment. 21:14
s_mosher sure, I'm going to investigate a bit more here first
I might add a guard test to ensure that arity agrees with the list length 21:15
21:15 Ross left, spq1 left
s_mosher jnthn, what's the best place to send a patch? 21:15
21:16 cdarroch left, rgrau_ left, takadonet left, f00li5h left, LionMadeOfLions left, BinGOs left, sjn left, nadim left, IllvilJa left, HarryS left, pnu left
jnthn s_mosher: [email@hidden.address] 21:17
s_mosher kthx
jnthn (it's for patches as well as bugs :-))
21:18 pythonian4000afk is now known as pythonian4000 21:19 zostay left 21:21 zostay joined 21:23 pythonian4000 is now known as pythonian4000afk, pythonian4000afk is now known as pythonian4000 21:24 IllvilJa joined, LionMadeOfLions joined 21:25 cdarroch joined, cdarroch left, cdarroch joined 21:26 takadonet joined 21:28 pythonian4000 is now known as pythonian4000afk 21:29 kjeldahl left 21:30 BinGOs joined 21:31 _kaare left, zby_home_ left
dalek kudo: 6f065b0 | KodiB++ | src/Perl6/Grammar.pm:
[Grammar] Permit "time" or the like on the LHS of a fatarrow.
21:31
21:32 bluescreen left
dalek ast: 26c1e24 | KodiB++ | S02-literals/pairs.t:
Added tests for "time" and the like on the LHS of a fatarrrow.
21:34
21:36 timbunce joined 21:37 ruoso left
dalek odel: 7e36dac | jnthn++ | common/NQP/NQPSetting.pm:
Give NQPList a .new method.
21:45
odel: 832586c | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
Implement PAST::Op with pasttype list.
21:47 MOAR-f00li5h is now known as f00li5h 21:49 silug left, silug joined
dalek odel: ca4842a | jnthn++ | dotnet/compiler/Actions.pm:
[dotnet] Fix sub vivitype up a little. my @a won't crash and burn during the compile now (though certainly arrays don't really work yet either).
21:51
odel: 1e105a5 | jnthn++ | t/nqp/10-cmp.t:
We now pass 10-cmp.t.
22:00 mavrc left 22:01 sjn__ is now known as sjn
dalek odel: 8325634 | jnthn++ | dotnet/compiler/DNST2CSharp.pm:
Fix up string escaping - or at least, this should be enough for now.
22:02
22:05 timbunce left 22:19 ggoebel left
dalek odel: 2de860c | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Support literals showing up in the PAST tree, as is allowed.
22:28
odel: c05a516 | jnthn++ | dotnet/compiler/Actions.pm:
[dotnet] Override quote_delimited from HLL::Actions in JnthnNQP; it relies on :pirop<concat>, which of course won't fly on .Net. (One for pmichaud++ to ponder how to genericise, I guess. :-))
odel: ea3a9cb | jnthn++ | common/NQP/NQPSetting.pm:
[common] Lists and arrays numify to number of elements.
sorear wonders how JnthnNQP's PAST will collide with PIRATE's POST when the two are merged 22:30
22:31 slavik1 left
jnthn sorear: I've not got any extra PAST nodes, I just compile various bits of NQP to different PAST in a few places. However, in nqp-rx's nom branch a bunch of those differences are already transfered. 22:32
(Far from all, mind.)
Anyway, yes, there'll be some effort to unify things, but I expect it can be done in lots of little steps.
22:35 Schwern left
jnthn phenny: tell pmichaud I'm very uncomfortable with ++ and -- ops in NQP. They're very assigny, in an otherwise purely bindy language. The hack way to do them without assignment will corrupt my constants table ('cus, I haz one ;-)). Having them in Parrot's nqp-rx will only prevent us from doing that optimization. Vote to deprecate. 22:36
phenny jnthn: I'll pass that on when pmichaud is around.
dalek odel: cfdd2fc | jnthn++ | dotnet/compiler/Actions.pm:
[dotnet] Another de-Parrotification in JnthnNQP. Now interpolation of embedded closures works.
22:39
odel: 70dfa83 | jnthn++ | t/nqp/38-quotes.t:
We now pass 38-quotes.t.
sorear you don't want to interpret $x++ as $x := $x + 1 ? 22:44
jnthn Well, works for pre-increment, but not post-increment. 22:45
I guess you could find a way to make it work...
But it feels kinda...odd. 22:46
It's a better option than what happens now, though, if we want to keep it.
sorear I take it NQP currently implements FORTRAN-66 style constants? :) 22:47
jnthn NQP on Parrot doesn't have constants. :/ 22:48
NQP on .Net actually does build a constant table for all the PAST::Val nodes.
Because, well, it's just not that hard to do, so I did it. :-)
22:49 ggoebel joined
jnthn I wouold say I'm not old enough to remember FORTRAN-66, but you're younger than me, so it's no excuse. :P 22:50
22:52 Schwern joined 22:59 Schwern left 23:03 tom_tsuruhara left 23:06 xinming_ left 23:11 icwiener left 23:13 risou joined
dalek odel: abac6f9 | jnthn++ | t/nqp/53-knowhow.t:
We pass 53-knowhow.t for ages, but forgot to add it here. :-)
23:22
odel: 7054cd8 | jnthn++ | dotnet/runtime/Init.cs:
[dotnet] Enable the hack say/print to take many args.
odel: cbdd49b | jnthn++ | / (2 files):
[dotnet] Out with one bad hack, in with a slightly less bad one for undefined scalars.
odel: eaa51af | jnthn++ | t/nqp/23-named-args.t:
We now pass 23-named-args.t.
odel: 0d31eba | jnthn++ | t/nqp/06-args-pos.t:
Also passing 06-args-pos.t already.
23:22 cdarroch left
jnthn A few more baby steps towards NQP on .Net. :-) It's nice to have the energy to be writing code again. :-) 23:24
jnthn -> sleep, gotta make $dayjob at something resembling morning tomorrow :-) 23:27
23:29 Schwern joined 23:33 rvrgs joined 23:41 stkowski joined 23:50 pythonian4000afk is now known as pythonian4000, Schwern left 23:55 rvrgs left 23:56 rgrau__ left 23:57 ggoebel left