»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 supernovus joined 00:09 supernovus left 00:10 uasi joined 00:12 thou left 00:13 uasi left, uasi joined 00:14 colomon left 00:19 uasi left 00:20 risou_awy is now known as risou 00:28 uasi joined
pmichaud For those looking for the link to today's #parrotsketch discussion: irclog.perlgeek.de/parrot/2011-09-06 00:31
(which may be "yesterday" for many of you by now :) 00:32
also see the thread: lists.parrot.org/pipermail/parrot-d...06179.html (which predated the discussion)
00:33 thou joined
pmichaud afk, #soccer 00:33
00:37 thou left, uasi left, uasi joined 00:43 espadrine left, risou is now known as risou_awy
pmichaud oops 00:43
irclog.perlgeek.de/parrotsketch/2011-09-06 00:44
00:50 envi_laptop joined 00:58 uasi left 01:11 REPLeffect left 01:24 REPLeffect joined 01:29 woosley joined 01:32 ponbiki joined 01:39 donri left 01:41 cognominal_ joined 01:42 uasi joined 01:43 whiteknight left, donri joined 01:45 cognominal left 01:56 araujo left, lue left, y3llow left, ruoso left, frettled left, dukeleto left, awwaiid left, aloha left, eternaleye left 01:58 araujo joined, lue joined, y3llow joined, ruoso joined, frettled joined, dukeleto joined, awwaiid joined, aloha joined, eternaleye joined, y3llow left 01:59 y3llow joined 02:03 wolfman2000 joined 02:07 japhb left 02:15 masonkramer joined, masonkramer left 02:19 benabik left 02:21 benabik joined 02:27 benabik left
Tene jnthn: will you be available to work with me on cardinal-6model sometime in the next week or so? 02:42
02:46 HarryS left 02:48 HarryS joined 02:57 benabik joined
sorear good * #perl6 03:09
03:23 Su-Shee_ joined 03:27 Su-Shee left 04:03 colomon joined, envi_laptop left 04:15 satyavvd joined 04:18 wolfman2000 left 04:22 birdwindupbird joined 04:23 mberends left 04:24 thou joined 04:45 daniel-s joined 04:54 REPLeffect left 05:01 abercrombie left 05:11 molaf_ left 05:33 tyatpi_ left 05:48 wtw joined
moritz good morning 06:00
sorear hi moritz
moritz has read another new HPMoR chapter
06:00 donri left
Tene also 06:00
sorear not 06:01
moritz sorear: do you generally follow hpmor?
sorear moritz: no 06:02
moritz sorear: then it's not really surprising that you didn't read it :-)
06:02 Su-Shee_ is now known as Su-Shee 06:05 orafu left, orafu joined 06:13 koban` joined 06:14 koban` left 06:16 jevin left 06:17 baest_ is now known as baest 06:20 jevin joined
lue stopped reading ~Ch. 22, should get back to it someday 06:24
cotto pmichaud, are you still up? 06:25
or jnthn or moritz 06:30
moritz is up again
sorear wonders if ey counts. 06:31
cotto That's an open question. atm, you probably count if you say something. ;)
In this instance, I'm trying to make sure that the whiteknight/kill_threads branch of parrot doesn't have any surprises in store for Rakudo 06:32
moritz well, 'make spectests' passes with rakudo on top of that branch. That's a very good sign. 06:33
cotto yeah
I'll keep discussion on this topic in this channel.
(for the time being) 06:34
parrot's allhlltest shows some nqp failures, but those have been around for a while and look identical between the branch and master 06:36
Admittedly, it's more of an exercise in figuring out how this kind of communication should work than notification of a change that's likely to be disruptive. 06:37
06:37 sayu joined
sorear well then probably not, I don't follow rakudo/parrot interface issues 06:43
and on that note *out*
cotto 'night 06:44
I'm about there too
06:46 JimmyZ joined 07:01 wamba joined, mj41 joined 07:09 masak joined
masak good morning, #perl6 07:10
JimmyZ good morning, #perl6 07:12
masak there's been a slight breakthrough in the field of autopun research. just thought I'd let you know. 07:13
it turns out that an autopun, while straddling the use/mention distinction, isn't actually self-referent. 07:15
it just points strongly in that direction, like Gödel numbering does.
so "this proposition evaluates to Bool::False" is a self-referent statement, but not really an autopun. 07:16
"Wikipedia has been known to contain unsourced claims.[citation needed]" is an autopun.
07:24 woosley left 07:26 woosley joined 07:32 thou left
jnthn mornin' 07:45
moritz o/
jnthn $dayjobin' today
But vaguely aboutish. 07:46
masak \o 07:48
07:48 mort joined
masak is also vague and aboutish 07:49
JimmyZ \o/\o/\o/\o/
masak apparently JimmyZ compensates by being four people :P
JimmyZ :) 07:50
jnthn masak: That wasn't quite what I said :P :P 07:51
masak jnthn: are you suggesting that I changed the message while repeating it? :P
jnthn: I'm doing CWDD here, and no-one can stop me! 07:52
masak confuzzles everyone by using an un-Googleable acronym known only to jnthn who made it up ;)
jnthn And the other 400 people who saw the talk where I used it :P 07:53
moritz $something-driven development 07:54
masak correct! 07:55
frettled Confusio-Wikipedic Driven Development
masak ooh 07:56
jnthn No, but that woulda been a good one.
masak Confusius says "it's on Wikipedia, silly"
07:56 wamba left
masak "use the English version, not the two Norwegian ones" 07:56
07:56 Trashlord left
masak :P 07:56
jnthn They have two? 07:57
frettled :)
jnthn: yes, and one sucks more than the other.
jnthn Ah, is that the "two versions of the language" thingy?
Tene prods jnthn.
jnthn Norwegian 5 and Norwegian 6 or whatever they're called...
Tene: Ouch! Do it gently :P 07:58
Tene: May I help?
Tene: Or should I have backlogged? :)
(didn't yet...)
oh, there's...not much to backlog...
Tene jnthn: think you'll be available for me to harass about cardinal-6model sometime in the next week or so?
jnthn Tene: Yes, 6model questions are good. They'll likely give me a push to continue working on docs. 07:59
frettled So, what does "CW" stand for? Chemical Warfare? Child Welfare? Conventional Wisdom? Cumbria-Wales?
moritz Continuous Wave? 08:00
masak frettled: Chinese Whispers.
frettled I never heard that one coming.
Tene jnthn: great 08:01
frettled …could've been Cat Whiskers.
masak frettled: client saying one thing, architect-ly person in the middle saying a second thing, developer implementing a third thing.
frettled masak: yeah, brilliant description :)
masak: we call it «hviskeleken» here (the whispering game)
masak frettled: they may all be well-intentioned, but if the vocabularies are different along the way, you already have a problem.
frettled: in Sweden, too.
jnthn Yeah, I had the Swedish word for it on my slide too :) 08:02
frettled :D
masak except we don't spell it funny :P
masak dials down the "troll" setting a bit... 08:03
Norwegian spelling is fine. both of them. 08:04
frettled heh
tiskeleiken! 08:05
masak also known as "The Telephone Game" to anglophones.
frettled or «kviskreleiken»
masak: ah, I didn't know that one.
jnthn masak: Broken Telephone, I think 08:06
jnthn recalls the Lady Gaga "Telephone" video and immediately wishes he hadn't
masak :D
it can't be un-seen. 08:07
08:07 woosley1 joined
masak phenny: pl en "Głuchy telefon"? 08:07
phenny masak: "Deaf Phone" (pl to en, translate.google.com)
masak phenny: ru en "Испорченный телефон"?
phenny masak: "Spoiled phone" (ru to en, translate.google.com)
08:07 woosley left
frettled arabic telephone, heh 08:07
08:08 mort left
masak the Chinese and Arabic peoples get some flak from the Western society for having evolved such incomprehensible spoken languages. 08:11
what's ironic about that is that it's probably a bunch easier to algorithmically parse spoken Mandarin than spoken English. 08:12
moritz I've often read that Mandarin is easy to misunderstand (or disambiguate wrongly). Is that true? 08:14
and wouldn't that hurt automatic recognition, if it's true?
masak possibly.
there's a lot of homonyms, for sure. but there's usually one with overwhelming probability in any given sentence. 08:15
I haven't seen much of "time flies like an arrow" in Chinese.
frettled IIRC, Mandarin does not have the same concepts of time that we have in Indo-European languages. 08:16
masak there's no notion of tempus in the language, if that's what you mean. 08:17
frettled That is, in Indo-European languages, you usually have a way of saying that something happened at a specific time in the past, or at a non-specific time or within a non-specific time period in the past, and that this is not so in Mandarin.
masak I think that's wrong.
there just aren't any verb tenses. 08:18
moritz isn't it more that Indo-European languages force you more to think about the time than Chinese?
masak moritz: after all, the reason something like en.wikipedia.org/wiki/Lion-Eating_P..._Stone_Den can work at all is probably that words can be pretty accurately disambiguated.
08:18 mberends joined
masak Mandarin has "yesterday", "today", and "tomorrow". you don't change the verb when you use it in these different contexts. 08:20
frettled moritz: IIRC, Mandarin uses context.
08:21 JimmyZ_ joined
masak however, when you say "I did something at [a specific time in the past]", you have to put the 了 modality on the whole sentence. otherwise it sounds strange. 08:21
so, again with the waterbed. there has to be some way to indicate aspect. :)
also, at any time you make a statement about the nature of things, and it's something that changed, you also use 了. 08:22
like, "I'm hungry 了" or "it's raining 了"
either of these can be said without 了 but then it means that things have been so for quite some time. 08:23
08:23 JimmyZ left, JimmyZ_ is now known as JimmyZ
masak JimmyZ: am I getting this right? :) 08:23
JimmyZ 了 is modal particle 08:25
frettled Now write the equivalent of Lingua::Romana::Perligata for this. ;) 08:26
moritz modal [particle]? :-)
masak JimmyZ: right, but it has a number of uses. it can be put directly on verbs, or on statements. sometimes both. 08:27
frettled ze puns, ze puns!
masak sometimes the verb comes at the end of the statement, and you don't know what 了 has been put on! (possibly both, according to the rules.)
08:27 Grrrr left 08:28 Grrrr joined
JimmyZ masak: it's optional, but sometimes it is necessary to make your tone smooth 08:29
just like . and ! 08:30
masak JimmyZ: it's not optional in 太好了!
08:30 jfried left, f00li5h left, jnthn left, Gothmog_ left
JimmyZ but it's not necessary in 很好 08:31
08:31 Vlavv left, broquaint left
masak nodnod 08:31
08:31 renormalist left, \patch left
JimmyZ No, it's not needed at all 08:31
08:31 Gothmog_ joined, jnthn joined 08:32 broquaint joined, \patch joined, renormalist joined
moritz masak: btw I've had a very nice TDD experience the other day 08:32
08:32 f00li5h joined
masak moritz: ooh! do tell. 08:32
08:32 jfried joined
JimmyZ Nobody say 很好了 08:32
masak JimmyZ: no, that sounds odd! :)
moritz masak: I think I've told you that I'm writing a blog engine backend in p5...
masak yes.
moritz masak: and for that I created a JSON based storage system, mostly for testing out API ideas... 08:33
masak ooh
focus on the verbs! :)
moritz masak: and when I was "done", I simply copied the tests over to a new file, changed the intialization, and used these tests to create an SQL based storage
JimmyZ masak: because tone is odd
moritz so I basically got the tests for free, and just did whatever I needed to get the tests passing 08:34
JimmyZ masak: or human behaviour is odd :)
masak JimmyZ: that's a strange explanation to me. I thought it was because 太..了 is a fixed expression, but 很..了 isn't.
moritz that was real fun, and the storage module was done within less than an hour
masak moritz: sounds wonderful. 08:35
JimmyZ masak: 很好了, is wrongish, but, 很多了,is right and is optional
masak o.O
JimmyZ masak: but ,这个已经很好了, is right 08:36
moritz masak: later on I factored the duplicated tests into a separate module
JimmyZ masak , 这个已经很好, is wrongish
moritz (after I knew which of the tests are truly duplicate, and which are backend specific) 08:37
masak JimmyZ: something to do with rythm? pairs of characters?
JimmyZ masak: not because grammar, because different tone :)
masak: or context
tadzik dzień dobry #perl6
masak tadzik: 早晨好! 08:38
JimmyZ masak: context determine grammer :)
jnthn Oh dear. Somebody at $dayjob wrote an expression evaluator...but didn't know much about how to write such things. It makes multiple passes over a list for each precedence level and tries to twiddle with operands and stuff. I can't actually tell if it's correct because my brain wants it to be a tree...
tadzik: dobry den :)
moritz jnthn: oh dear indeed. 08:39
masak jnthn: sounds like it'd be reinventing trees, badly.
08:40 sayu left
jnthn masak: So, which of us gives the talk on "compiler crap business developers should know!" talk at $next_event? :) 08:40
08:41 arthur-_ joined 08:43 ab5tract joined, Vlavv joined
masak jnthn: either of us, but I want to help write the slides :P 08:44
tadzik oh, new hpatmor 08:45
masak we're so spoiled nowadays.
moritz the next one is going to take a week :( 08:46
masak I've decided I like the current arc, though.
moritz it came out better than expected, yes 08:47
masak it's interesting how school bullying is taken as a mini-universe mirroring the evil in the world at large.
and as usual, Harry's hard-line policies are easy to sympathise with, but also easy to question. 08:48
I'm wondering how much of himself LessWrong puts into Harry.
moritz and the same (easy to sympathise, easy to question) also applies to Dumbledore's stance 08:49
masak arthur-_! \o/ 08:51
arthur-_ masak: \o/ 08:52
masak moritz: yes. and nobody knows whose side the Defense Professor is on. :)
arthur-_ masak: any progress with web.pm ? ( sorry I let you down, I'm into open hardware now, but still following perl6 very much )
moritz masak: it seems pretty obvious (but of course that doesn't mean it's correct) that he's on his own side
08:53 daxim joined
moritz masak: did you notice Quirrel's two statements about his parents? 08:53
tadzik I'll now go and read this, before you guys spoil everything :)
08:54 espadrine joined
masak arthur-_: very much no progress at all. :/ 08:54
moritz: no! which chapter?
arthur-_: I'm looking (though not very actively, it seems) for some way to finish the grant.
moritz masak: I don't remember exactly, but one was in Quirrel's speech after one of the Battles
masak: something like "Voldemort killed my parents" 08:55
masak: and the other was in private conversation with Harry, saying something like "the matter of parents was resolved to my satisfaction" or so
masak oh, he keeps referring to Voldemort, yes.
he did that when talking about the martial arts school too. 08:56
very nicely done.
moritz it's just that the combination of these statements add up to a quite an interesting overal statement :-)
masak do you thing... wait... no...?
s/thing/think/ 08:57
:)
moritz well, I do wonder some things. 08:58
masak clearly there is something more interesting going on here than just Voldemort being grown on the back of Quirrel's head, like in the book.
moritz right. 09:00
09:01 daniel-s left
masak overall, I'm just happy he's pushing out episodes again :) 09:02
moritz agreed 09:03
09:03 daniel-s joined
tadzik wow, that was a short one 09:09
masak yes. the arc is winding down.
09:24 daniel-s left
moritz lesswrong.com/r/discussion/lw/364/h...ality/3fnw made me smile 09:33
09:36 fhelmberger left 09:37 fhelmberger joined
masak :) 09:41
09:44 daniel-s joined 09:46 woosley1 left 09:52 wamba joined 10:04 vamshi joined
vamshi vidya 10:05
perl
10:05 vamshi left
masak in Sanskrit, "vidya" means knowledge or learning. 10:14
arnsholt Or something you find =) 10:16
moritz vamshi did find #perl6 :-)
arnsholt Indeed
Apparently vidyā (the feminine) is knowledge, scholarship 10:17
But they're both derived from the vid- root
Which can mean both to find and to know, depending on how it's conjugated funnily enough 10:18
10:22 uasi left, uasi joined 10:28 uasi left 10:49 wamba left 10:58 envi_laptop joined
bbkr_ is there any Test.pm command that will check only type and ignore value? I'm looking for sometjing like: is_deeply [1, "foo"], [Int, Str] 10:59
10:59 f00li5h left 11:00 f00li5h joined
masak rakudo: say \(1, "OH HAI") ~~ :(Int, Str) 11:00
p6eval rakudo fe590e: OUTPUT«===SORRY!===␤Method 'make_signature' not found for invocant of class 'Perl6::SymbolTable'␤»
masak b: say \(1, "OH HAI") ~~ :(Int, Str)
p6eval b 1b7dd1: OUTPUT«Bool::True␤»
masak b: say \(1, 4.5) ~~ :(Int, Str)
p6eval b 1b7dd1: OUTPUT«Bool::False␤»
masak bbkr_: that work for you?
bbkr_ sure, thanks!
11:01 tyatpi_ joined
tadzik how about isa_ok()? 11:01
nom: use Test; plan 1; my $a = 5; isa_ok $a, Int;
rakudo: use Test; plan 1; my $a = 5; isa_ok $a, Int; 11:02
p6eval rakudo fe590e: OUTPUT«1..1␤ok 1 - The object is-a 'Int'␤»
tadzik bbkr_: ^
masak sure, depends if you want the _deeply or not.
tadzik right
11:03 pernatiy left
bbkr_ i need deeply. or at least array check without writing separate test for every element. 11:03
masak signature matching sounds nice for this kind of thing.
tadzik hmm
masak b: say [1, "OH HAI"] ~~ :(Int, Str) 11:04
p6eval b 1b7dd1: OUTPUT«Bool::True␤»
tadzik could you produce something like subset MyTuple of Signature where :(Int, Str)?
and then [foo] ~~ MyTuple
masak ooh, nice!
but just keeping :(Int, Str) in a named constant is probably easier.
tadzik rakudo: subset TwoStrings of Signature where :(Str, Str); say \('a', 'b') ~~ TwoStrings; say \(1, 3) ~~ TwoStrings 11:05
p6eval rakudo fe590e: OUTPUT«===SORRY!===␤Method 'make_signature' not found for invocant of class 'Perl6::SymbolTable'␤»
tadzik tee hee
masak: true
11:05 perlhack joined
bbkr_ that was helpful (as always), thanks again 11:06
perlhack 哥们们 i came again 11:10
masak perlhack! \o/ 11:12
perlhack: you should say "I'm back", not "I came again" :) 11:13
the latter is un-idiomatic and, it can be argued, fraught with innuendo.
perlhack thank you
haha
11:14 wamba joined
masak perlhack: so, how's life? are you hacking any Perl? 11:18
11:22 benabik left 11:24 im2ee joined
im2ee o/ 11:25
masak \o 11:26
aha, 哥们们 means "buddies". cute. 11:27
JimmyZ wakes up 11:28
im2ee :)
11:30 Alias joined 11:38 Patterner left 11:39 Psyche^ joined, Psyche^ is now known as Patterner 11:40 awwaiid left, awwaiid joined 11:44 ab5tract left
perlhack masak 哥们们 means "buddies" 11:45
haha
masak smiles 11:46
11:46 wamba left 11:48 benabik joined
pmichaud good morning, #perl6 11:50
moritz good am, pm 11:51
11:52 benabik_ joined
mberends hello pmichaud 11:58
masak good morning, pm 11:59
pmichaud masak: read your posts about -n and -p
I'm pretty sure the ast munge is not the way we're supposed to do it :) 12:00
moritz (unrelated topic) did you know that perl 5 has removed 94 modules from core so far?
pmichaud at least, not the way we munge the ast in rakudo today
masak pmichaud: right. there's a third post in the works. 12:02
pmichaud okay
jnthn o/ pmichaud
masak after I wrote the second one, both sorear++ and TimToady++ spoke up and gave me enough clues to understand the big picture.
pmichaud okay, good.
before I read what they wrote, let me write my understanding then 12:03
SETTING is just a lexical scope
by default, SETTING =:= CORE, but that can be changed by --setting flags
flussence huh, some of these old revisions are hanging on t/spec/S04-declarations/my.rakudo, I don't remember that happening...
pmichaud when you load a setting, it takes the place of {YOU_ARE_HERE} in the CORE setting, and "user code" then goes into any {YOU_ARE_HERE} of the setting you loaded. 12:04
and SETTING becomes bound to the lexical scope of the setting unit that you specified with --setting
sound about right?
pmichaud goes go look at the backlog now to see what TimToady++ and sorear++ had to say. 12:05
masak pmichaud: sounds about right.
pmichaud: it's a stack of settings, each one being a setting for the next. 12:06
jnthn Basically, a stack of outers.
pmichaud yes, nested lexical scopes :-)
jnthn right.
pmichaud each setting determines the dsl for the thing it encapsulates
jnthn I'm pretty sure nested settings already work in nom, fwiw 12:07
12:07 molaf joined, colomon left, pernatiy joined 12:08 benabik left, benabik_ is now known as benabik
pmichaud okay, but -n and -p aren't quite spec 12:09
well, unless we expect --setting=Perl6-autoloop-print to be "baked in" to the compiler.
but it seems to me we'd want to have a Perl6-autoloop-print.pm somewhere.
jnthn We couold just install that, like we install Test.pm 12:10
12:10 bluescreen10 joined
jnthn Well, and CORE.setting.pbc ;) 12:10
pmichaud otoh, S19 says that -n is really ++PARSER --setting=Perl6-autoloop-print ++/PARSER, so perhaps it's baked in to the parser
12:10 benabik left
pmichaud I'm less certain about that one. 12:10
12:11 benabik joined
jnthn wonders hwo much to trust S19 :) 12:11
moritz it hasn't been implemented before.
masak S19 is sludgy. 12:12
and, in my view, too ambitious.
moritz agreed
masak ISTR ruoso didn't agree and actually found nested levels of cmdline arguments useful.
or maybe pmurias. 12:13
12:13 benabik_ joined
frettled I can see how they are useful, but wouldn't it be more useful if you at a program level can see which option symbol was used, which option and which value, allowing you to easily reconstruct it? 12:18
The reconstruction could then be handled by a module, which could be bundled in the setting. 12:19
12:19 benabik left, benabik_ is now known as benabik
frettled The way nesting is specified in S19 gives me a mild headache. 12:19
I'd normally expect to have to quote nested options using the external shell's quoting rules, though.
12:24 satyavvd left 12:27 molaf left
masak here's my take on it. 12:38
Unix cmdline args *are not broken*.
at least not to a great extent. they're a bit inconsistent sometimes, but not in a way that hurts too much.
S19 proposes a grand new scheme, different from everybody else's, solving problems that don't exist and introducing more complexity in a niche which for all intents and purposes is already stable. 12:39
I think there are good points in S19, but I would be much less hesitant about them if they didn't go reinventing cmdline args syntax. 12:40
the command line is one of our interfaces with the world. even non-p6ers will have to interact with it sometimes.
we don't go reinventing the file system, or the way time works, or TCP/IP. 12:41
similarly, we shouldn't reinvent Unix cmdline args syntax. 12:42
mux tell that to the GNU people who came with non-standard long options :-P 12:44
things used to be simple and much more consistent
masak long options are pretty mild compared to the craziness in S19. 12:47
12:47 perlhack left
mux yeah, just a humorous side remark; I have no idea what you guys were actually talking about and don't want to interfere :-) 12:47
12:48 daniel-s left
masak I give you ++foo and ++/foo and +++foo and +++/foo 12:48
fear our craziness.
PerlJam masak: you can keep it, thanks.
:)
mux o_O 12:49
well I guess we should add getopt_perl() to some compat library; it'll make getopt_long() feel less lonely 12:50
12:51 daniel-s joined
masak mux: MAIN covers most of our getopt needs. 12:52
but S19 is from before we realized that.
12:58 JimmyZ left
tadzik did you see the settings profiling data? :) 13:01
PerlJam is looking at it now
tadzik it's pretty awesome
13:03 cosimo left
masak awesome++ 13:05
13:06 uasi joined
tadzik seems that lineof is still lying abit 13:06
PerlJam I think you have to look at ticks rather than ops
(to counter-act the lying)
tadzik oh, ok 13:07
oh nice, you can look at the source code 13:09
13:12 JimmyZ joined 13:16 daniel-s left 13:21 daniel-s joined, mtk left 13:30 mtk joined 14:00 masak left
[Coke] masak++ #S19 14:04
14:06 lumi_ left 14:11 thou joined
mls hi! 14:12
moritz oh hai mls 14:13
mls the nqp annotations seem to be a bit off
e.g. src/gen/perl6-metamodel.pir contains annotations for line 2860, but src/gen/Metamodel.pm only has 2801 lines... 14:14
tadzik I think that's related to 'use' stuff 14:15
or at least that frequently happens to me in Perl 6 code
file has 30 lines, bug in line 63 14:16
14:16 lumi_ joined 14:21 guidj0s joined
mberends I have felt the same about S19 as masak++ for a long time, but kept quiet for fear of offending the author. I think S19 was written with the "early Perl 6" mindset that survives today mainly in p6l. 14:24
PerlJam I don't think there was any need for anyone to speak up about it because no one was *doing* anything with S19 14:27
14:27 jaldhar left 14:28 jaldhar joined
moritz aye; there's not much point in redesigning an S19 that nobody implemented when nobody implements the new thing either 14:29
mberends yeah, implementation rulez 14:30
14:33 jaldhar left
mls lineof() can't count... 14:35
tadzik (: 14:36
JimmyZ :( 14:38
arnsholt In re S19, a first idea might be to try to gut the ++OPT ++/OPT bits from the spec. Looks like it's fairly standard fare apart from that
PerlJam arnsholt: please do 14:39
mls Oh, it's because src/Perl6/Metamodel/ParrotInterop.pm has DOS line endings
moritz oh. 14:40
mls (Assuming \r instead of \n is DOS)
arnsholt PerlJam: Yeah, pondering it already =)
mls: I think \r instead of \n is old-style Mac actually 14:41
I think DOS is \r\n
mls yes, I think you're right
running 'git blame'... ;)
moritz no need for that :-) 14:42
arnsholt But some editors (vim expecting Unix newlines for example) will show DOS-style newlines as a ^R and then a new line
mls anyway, lineof() counts ^M as new line, that's why the annotations are off 14:43
arnsholt Yeah, that'll explain it 14:44
moritz it uses 7d 0d as line sep
mberends pmichaud: following your discussion in #parrotsketch, I think roast is suboptimal for Parrot developers to use for Rakudo compatibility testing, because of size and not covering for example NCI and then MiniDBI. Unfortunately optimal is probably a dedicated test suite but it might be worth the effort. 14:45
mls moritz: actually just 0d. many lines end with }, though. 14:46
moritz oh.
14:46 stepnem joined
mls anyway, jnthn++ broke it, he has to fix it ;) 14:46
moritz can collect a bit of karma 14:47
dalek kudo/nom: fc57d1c | moritz++ | src/Perl6/Metamodel/ParrotInterop.pm:
fix line endings in ParrotInterop.pm; no functional changes
14:48 abercrombie joined
mberends pmichaud: testing MiniDBI has very complex dependencies, I'm thinking about writing a mock MySQL driver for portable testing on systems without MySQL software. 14:48
PerlJam mberends: SQLite? 14:50
moritz sqlite needs structs, no? 14:51
mberends yes, that's the blocker
PerlJam oh. nevermind then
mberends++
jnthn oops, sorry about the line ending fail 14:53
mberends: What does it need in the structs? 14:54
mberends: To a first approximation, P6opaque already computes struct-ish layout... ;)
mberends jnthn: need to check, it was not simple
14:55 pmurias joined
pmurias sorear: ping 14:55
jnthn mberends: If there's a .h file, just point me a tit somketime 14:56
grr
at, it, sometime :)
jnthn hates $dayjob keyboard 14:57
mberends jnthn: your typos are very Freudian
tadzik I think one day, when I'll get a job, I'll be mad about switching to Colemak years ago :)
moritz www.sqlite.org/c_interface.html
hm, doesn't seem to be very detailed on that part 14:58
14:59 Reaganomicon left
jnthn mberends: heh, I hadn't realized until you pointeed it out :P 15:00
arg...
...it's like somebody poured coke over some of the keys...
ok, home time :-) bbs
mberends moritz: the detail is hidden behind definitions such as "typedef struct sqlite3_stmt", so the .h files will probably contain the answers 15:01
tadzik what a timing :)\
15:03 masak joined
masak mberends: no disrespect whatsoever to [particle]. I just don't consider S19 *finished*, in the sense that we only got to the over-ambitious version of it. :) 15:04
we're Perl 6, we over-reach. that's fine.
mux be careful though, duke nukem 3d has been released already 15:05
tadzik forever, you mean?
masak but we also get our wits together and arrive at a nice, less ambitious but more consistent design on things. S19 hasn't taken that step yet.
tadzik istr it was a bit of a disappointment
mux oh damn, I totally ruined my own joke, which wasn't very fun to begin with 15:06
masak .oO( forever, I am disappoint )
mberends masak: :-) and Rakudo Star has also been released
15:06 Holy_Cow joined
masak I would like for the Perl 6 community to start competing with the Perl 5 community on being *pragmatic*. 15:07
pmurias masak: personally i found ++SUBSYSTEM helpfull in mildew when dealing with multpile backends taking a whole bunch of different options each
tadzik I like that
moritz as long as you don't expect that from p6l...
masak pmurias: oh, it was you. it's a useful datapoint.
moritz: in order to be part of the community, a necessary criterion is to listen. :P 15:08
tadzik fyi, I'm now testing nom spectest on kill_threads
PerlJam pmurias: sounds like something that should be in a config file rather than on the command line.
arnsholt The functionality of the delimited options sounds nice. But the currently proposed interface looks a bit strange to me
pmurias hmm
PerlJam: what do you mean?
15:09 aloha left
masak PerlJam: I had the same thought. 15:10
PerlJam pmurias: I guess that's the dividing line for me. At the point where I think I'd need something like ++foo, I figure it's "too complex" for the command line.
masak PerlJam: the notion of levels of option sounds too compl... yes, that.
flussence
.oO( most other software uses "--" for that... )
15:11
PerlJam flussence: that's different
pmurias thinks like ++BACKEND --valgrind ++/BACKEND seem usefull to have at the command line
tadzik how would that work?
masak I won't consider S19 to have an authoritative voice until it at least acknowledges MAIN.
pmurias tadzik: i'm not sure if that was the excact options but it caused the executable (that the p6 program compiled to) to be run under valgrind 15:13
PerlJam pmurias: --backend="--valgrind -a -t --other-stuff" ?
tadzik I have a feeling somebody invented this without trying it in field
benabik gcc uses things like -Wa,option and -Wp,option to pass option to assembler/preprocessor
moritz that seems more concise 15:14
pmurias ghc uses something like S16 but with an uglier syntax
15:14 aloha joined
pmurias --backend-valgrind seems to be an alternative 15:14
masak S16!?
pmurias S19
masak exhales
moritz S91!
tadzik /o\
masak or, if you rotate it, 61S. 15:15
PerlJam anyway, I haven't seen a compelling argument for ++foo ... ++/foo yet, so it just seems like a big wart to me.
sorear good * #perl6
pmurias sorear: hi
masak PerlJam: that's because it is one.
hi sorear
tadzik hello sorear
pmurias +RTS ... -RTS is the syntax ghc uses
benabik pmurias: It seems to use something vaguely like gcc… -optP option, -optc option
tadzik why not <BACKEND> --valgrind </BACKEND> even? :P
moritz that looks a bit like meta syntax :-) 15:16
pmurias that looks like xml
sorear masak: mberends: I share your feelings about S19. (That's why I designed Niecza's command parser to be a misfeature-compatible version of getopt_long)
benabik tadzik: horribly unfriendly to shells with <> redirects?
sorear pmurias: ponng
benabik pmurias: Forgot that… That seems to be undocumented in GHC's manpage.
mberends sorear++
tadzik benabik: I feel like it's equally insane
masak sorear: a weekend hackathon sometime would take care of S19, I think. 15:17
benabik pmurias: So they do it both ways for maximum headaches.
tadzik find for example likes to terminate the -exec argument with +
iisrc
masak sorear: I'm less concerned about S19 than about concurrency/threading and stuff.
pmurias tadzik: why is ++BACKEND ... ++/BACKEND insane?
benabik tadzik: find . -exec echo \{} \; 15:18
tadzik pmurias: I have a feeling that it's a bit too verbose, to _unusual_ solution for a problem, for which a simple solution already exists
benabik: that's the other way, yes
mux is this S19 stuff for parsing options to the interpreter rather than to the perl script itself?
pmurias tadzik: and what's the simple solution?
mux I don't get why you'd want to go with that ++FOO ... ++/FOO ugliness 15:19
benabik tadzik: Oh. Never saw the + method. Interesting. Learn something new every day.
tadzik pmurias: if I understand correcly what it's suppose to do, I'd go for the mentioned --backend="--valgrind"
sorear it's not just ++foo ++/foo. Perl 6 command parsing deals with optional arguments in a way that differs from getopt_long for no good reason
PerlJam We need less grousing and more editing the spec :)
masak clearly. 15:20
tadzik ++PARSER --setting=Perl6-autoloop-no-print ++/PARSER becomes %*OPTS<PARSER>and contains --setting=Perl6-autoloop-no-print
masak PerlJam: but the one making the first commit will be cursed^Wblessed with responsibility! o.O
tadzik I'd much rather see something like -OPARSER="--setting=Perl6-autoloop-no-print" or so
it feels more normal
TimToady I find the less readable
*that
mux at least this doesn't suffer from NIH syndrome 15:21
tadzik masak: I still find the "suprise shutdown" trick quite tempting in some cases :>
mberends let's put all options in a one-line YAML doc, then we get proper hierarchies. (only half kidding)
TimToady NIH has nothing to do with it
tadzik oh, MongoDB driver
bbkr_ MongoDB driver has landed - github.com/perl6/ecosystem/pull/6 . Now you can store, find and manage (almost) any Perl6 data structure in the easiest way ever. No more SQL queries. 15:22
15:22 perlhack joined
pmurias plus we need to define our own quoting rules inside the ... in -OPARSER="..." 15:22
masak tadzik: it's a fun idea, but I don't think it's needed.
flussence or since that ++ syntax is already borderline XML, why not just `perl6 -O options.xml`? :)
moritz bbkr_: don't you have commit access to the ecosystem already?
masak tadzik: if you look menacing enough, people won't stand in the way of reform. 15:23
tadzik bbkr_: cute, merging
TimToady obviously we just need to use heredocs for options :P
moritz
.oO( inline comments! )
bbkr_ moritz: I have, but I wasn't sure if there is any human review or approval before module is accepted into ecosystem.
dalek osystem: e069522 | (Pawel Pabian)++ | META.list:
Added MongoDB driver
15:24
osystem: 7861581 | tadzik++ | META.list:
Merge git://github.com/bbkr/ecosystem

Conflicts: META.list
moritz bbkr_: there isn't, except github permissions of course
pmurias sorear: what would you need to consider VM-VM interop with perl5 in niecza?
PerlJam pmurias: that's just crazy talk! :) 15:25
TimToady well, I did something similar with the Java once upon a time, so not that crazy... :)
pmurias PerlJam: i wrote one for smop and sorear wrote one for rakudo, so i think it's reasonable there should be one for niecza 15:27
TimToady the main problem is really the same one that parrot is facing with HLL interop; getting the objects to work across the boundary
masak that's what interop means, no? :) 15:28
tadzik no, you need a way to use Filter::Simple in Perl 6 as well :P
15:29 uasi left
pmurias tadzik: shouldn't be to difficult ;) 15:30
15:30 uasi joined
pmurias s/to/too 15:30
tadzik does t/spec/S32-str/lines.t fail for anyone? 15:32
moritz tadzik: did you git pull? I implemented lines(Str) only yesterday 15:33
tadzik oh, maybe I didn't. Fine then
pmurias TimToady: i used AUTOLOAD on the p5 side and Coro to make the runloops work together when adding it to smop
15:33 perlhack left, wamba joined 15:34 wamba left, wamba joined, uasi left
pmurias sorear: would having a .net binding of the p5 embedding api be enough? (i could write that) 15:36
TimToady someone has already done that somewhere, I'm sure 15:37
jnthn home
15:39 wtw left
sorear pmurias: I'll have to look more closely at whatever you did with coro. Pity mildew doesn't work with gcc 4 15:41
15:43 wamba left 15:45 mj41 left 15:48 wamba joined
mberends jnthn: the main 'struct sqlite3' is complicated, containing a nested struct, arrays and unions: www.sqlite.org/cgi/src/artifact/c7e...efa4d2db14 15:48
I like the notice at the beginning of every SQLite source file 15:50
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
jnthn mberends: Well, nested struct is OKish
function pointers are trickier. :/
mberends aye, but for a subset of the functionality we can ignore fields we don't use 15:51
TimToady well, just don't bother with them...oh wait...
jnthn :P 15:54
mberends jnthn: istr an array of int was the blocker when I tried to create Mini DBD::SQLite 15:57
jnthn mberends: OK. So we need compact arrays. 15:58
moritz agreed :-)
jnthn Patches welcome! :P
I mean, er, I'll try and get to it in the near future. :)
TimToady
.oO(blobs)
jnthn (Yes, such things are on my radar anyway.) 15:59
16:00 risou_awy is now known as risou
TimToady o/ 理想 16:01
Tedd1 o/
mberends jnthn: this would be a new feature. imo it's more urgent to hack out the bitrot that came in March when the NCI 't' return type disappeared. irclog.perlgeek.de/parrotsketch/201...#i_4382513 16:03
16:04 birdwindupbird left
jnthn mberends: Are we still suffering from that? 16:05
mberends jnthn: yes, I think it stops MiniDBI from working with MySQL
jnthn *sigh* 16:06
I may just ignore Parrot NCI and do something at NQP level.
mberends jnthn: I think we need to plan time to troubleshoot Zavolaj. I've written some more diagnostic tests. 16:07
jnthn At least that way it'll be done in a way I like. And not get "improved".
mberends +1 to that
jnthn: is there sense in copying bits of Zavolaj into Rakudo or NQP then? 16:08
jnthn mberends: I more meant the lower-level bits that Zavolaj provides a wrapper around.
mberends jnthn: ok, I get that. 16:09
jnthn Though it maybe could make Zavolaj's life easier.
sorear mberends: are you supposed to look inside struct sqlite3 at al?
mberends sorear: in some structs, yes, and in others, no 16:10
TimToady there's really a 4th great problem in CS, whether metadata should be transmitted in-band or out-of-band :) 16:14
abercrombie 理想? 16:15
TimToady that's risou, who had just showed up 16:16
just guessing at the spelling, I am
/risou/ == "ideal" 16:17
masak TimToady: metadata in-band or out-of-band, that's a no-brainer! of course it should always be transmitted... hold on, which is which again? :)
abercrombie I see
TimToady When metadata is in-band, it's always obvious it should be out-of-band, and vice versa. 16:18
16:18 MayDaniel joined
TimToady see also "interesting values of undef" and the semipredicate problem 16:19
masak aye.
TimToady but the notion of examining some structs and not others says to me there's some additional out-of-band metadata to tell you when the metadata is in-band and when it isn't. :) 16:20
and it struck me as an inconstency
that is, it sounds like they've solved the 4th problem by saying "and" rather than "or" 16:21
*inconsistency
'course, P6 is similarly inconsistent, I'm sure :) 16:22
and interesting values of undef are an attempt to have it both ways
we've hijacked undefinedness to let a data value claim "I'm really out-of-band!" 16:23
but sending putatively out-of-band data as defective in-band data prevents the usual race conditions inherent in out-of-band communications 16:26
daxim solution with "classify"? perlmonks.org/index.pl?node_id=924618
16:27 Trashlord joined 16:29 MayDaniel left
daxim annoying, there are 3 modules for gather in perl5, but none for classify 16:29
masak write one! 16:34
16:36 envi_laptop left 16:38 espadrine left, wamba left 16:42 kaare_ joined 16:48 risou is now known as risou_awy 16:54 Chillance joined 16:57 samlh left, senobmeht left 16:58 senobmeht joined 17:01 samlh joined, donri joined 17:04 Reaganomicon joined 17:06 JimmyZ left, Trashlord left 17:25 daxim left 17:26 Bucciarati left, jerome_ left, slavik2 left 17:27 jerome_ joined 17:28 Bucciarati joined
pmurias sorear: Coro adds coroutines to perl5 which allows us to save the whole p5 interpreter state 17:29
sorear: so that the runloops can interoperate properly
17:30 slavik1 joined 17:33 Bucciarati left 17:34 Bucciarati joined 17:35 pernatiy left
pmurias sorear: why is the the Microsoft Public License in the niecza repo? 17:43
17:46 Bucciarati left 17:47 Bucciarati joined 17:48 [particle] left 17:58 Trashlord joined 18:01 Bucciarati left 18:02 donri left, donri joined, molaf joined 18:03 aloha left 18:06 Bucciarati joined 18:14 Trashlord left
pmichaud jnthn and others: There's a working document at gist.github.com/1201282 that identifies Parrot and Rakudo priorities; comments welcomed. 18:25
18:25 aloha joined
jnthn pmichaud: Was just reading your comments on it :) 18:26
18:27 samlh left
pmichaud jnthn: if you have any adjustments/additional rakudo-based notes to make, let me know 18:27
(rakudo includes nqp here) 18:28
I just did an update; whiteknight++ says that the impact of redoing PIR ops for calling conventions on Rakudo will be nil.
PerlJam you guys are too fast. I was just about to ask about that one 18:29
jnthn Thing is that anything related to e.g. multis or namespaces is kinda not so important to us. I don't really think Parrot should be laying down how HLLs do those; multis are covered by the invoke v-table interface, and how a HLL does namespaces should be its business really, and symbol loading dealt with by implicit import/export.
masak whiteknight++ pmichaud++ 18:30
jnthn So, the packfile loading stuff seems low...as you already have it :)
On 6model stuff: "Benefit to Rakudo: Rakudo would again be able to better use non-Rakudo and non-NQP libraries." 18:31
Not so fast! There's still a bunch of other issues (like, external objects !~~ Mu) that'd need looking at.
pmichaud from whiteknight on #parrot:
18:29 <whiteknight> pmichaud_: It's funny that you say sandboxing has zero priority. I got started thinking about it because I was specifically asked to by rakudo devs
do we have a strong need for sandboxing at the parrot level?
jnthn pmichaud: p6eval could maybe use it but... :)
It's not a priority in my eyes. 18:32
pmichaud mine either
jnthn "Far better interoperability between 6model and Class/Object for systems that want to use both." - urgh...the idea was to kill Class/Object.
PerlJam pmichaud: I like the way you hedge your bets with those conditional priorities :) 18:33
jnthn hmm, lemme mention that on #parrot
pmichaud I'll add that to the gist, also.
Su-Shee uhm how do I get a line number for some lengthy error message? 18:34
masak Su-Shee: CallFrame has a .line method 18:36
pmichaud PerlJam: (conditional priorities) well, that was the best way to describe them.
PerlJam: we've had lots of updates in the past that have promised substantial performance benefits; the updates occur but the benefits have often been absent. 18:37
flussence sandboxing...? 18:38
rakudo: dir.say
p6eval rakudo fc57d1: OUTPUT«.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 e…
flussence there you go, a reason!
pmichaud flussence: yes, that seems to be the #1 cited reason. I'm wondering about how important it is to rakudo development.
masak Su-Shee: uhm. I meant Backtrace::Fram, of course. see S32/Exception
flussence I guess it'd be nice to have for web dev too, there you generally do all your IO through a few sockets and don't want user input to go off and start calling shell()... 18:39
Su-Shee I threw it out. How do I do the equivalent of a simple use SomeClass; so I try something out without inheriting?
pmichaud flussence: yes, but there the sandboxing needs a high degree of hll integration, I suspect. 18:40
masak Su-Shee: I don't understand the question :/
Su-Shee masak: I have a class Foobar which does some basic method do_stuff. How can I hack a script without inherting Foobar to try out do_stuff? 18:41
jnthn use Foobar; Foobar.do_stuff 18:42
use doesn't imply inheritance. Just import.
Or we're using inherit to mean different things... :)
Su-Shee aaaah why didn't I just try that instead of just using it as illustration...
no,that's exactly what I meant.
pmichaud I need to grab some lunch -- bbiaw
jnthn oh, yeah, food 18:43
masak Su-Shee: even in Perl 5, useage doesn't imply inheritance.
Su-Shee err.. yes, that's why I tried to say "I need use Foobar;" without knowing that it actually _is_ just "use Foobar;" 18:46
masak Su-Shee: Perl 6 is supposed to be an improvement over Perl 5. why would we suddenly tie "use" to inheritance? :P 18:47
Su-Shee I wasn't asking for that, I didn't know "use" did still exist. 18:48
masak oh, ok. 18:49
it still exists. it works in much the same way. except that import is now to lexical scoped instead of to package scopes.
Su-Shee it really was just "how do I do use Foobar;" "with use Foobar;" ;) 18:50
masak if only all programming questions were so easy to answer ;)
Su-Shee yeah, I don't really care for scoping, I've never made a mistake with that set aside some forgotten var outside of some block, personally I don't understand why poeple fuzz around with scoping so much.. 18:51
or maybe not.. what does "Typename Foobar must be pre-declared to use it with does at line 3..." (where I wrote class Blabla does Foobar;...) 18:53
18:53 samlh joined
masak you must 'use Foobar' before doing 'does Foobar'. 18:53
it's a rule.
Su-Shee *sigh* still? ok.
masak not going to change. 18:54
PerlJam Su-Shee: perl isn't *that* magical.
Su-Shee PerlJam: so it seems. 18:55
PerlJam Su-Shee: the way things are now, you could have your role definition in a file called Blah.pm, but the role is actually called FooBar. How is Perl to know what to load? 18:56
18:57 abercrombie left
benabik Su-Shee: There's no guarantee that Foobar is made in… what PerlJam said. 18:57
Su-Shee PerlJam: It wouldn't, I don't do that and I would be very confused if someone else does it...
geekosaur it's not that uncommon; conventionally it's more like Blah::Foobar 18:58
PerlJam Su-Shee: ergo, you've got to "use" the things that have your defs before you actually use the things defined.
Su-Shee yes thank you I got it. 18:59
PerlJam Su-Shee: or ... all's fair if you pre-declare :)
geekosaur where a module defines multiple small helper / wrapper classes
18:59 alester joined, daniel-s left
Su-Shee geekosaur: I have yet to see that in one file. why on earth would someone do that? to save inodes? 19:00
masak I've done that, for what I consider were good reasons.
19:00 daniel-s joined
masak Su-Shee: first off, do you follow this principle with all types, or just with classes? 19:01
Su-Shee yeah well, you're the makers of the language.. if I need to use, I need to use.
masak is it OK to define roles in the same file? what about enums? constants?
19:01 alester left
masak I guess we don't need to discuss nested classes, since they can't even be nested if they're not in the same file. 19:02
19:02 Trashlord joined
masak well, unless you use MONKEY_TYPING, I guess. 19:02
Su-Shee masak: I take it back. I haven't said anything. I will use use.
and I don't use nested classes, so I'm happy with an idiot's level of perl6 anyways. Use will be fine. 19:03
masak :) 19:04
Su-Shee: I'm not implying that you're any such thing as an idiot. also, I didn't mean to intimidate you with those questions.
nested classes can be very useful, at least the 'my' kind. 19:05
Su-Shee I really meant it. I don't understand the use, idea and need for nested classes, so I don't use them. I'm fine with the average run-of-the-mill unfancy standard class. ;)
masak Su-Shee: do you sometimes define 'my' subs inside subs (or methods)? I do lately, and it's really nice. 19:06
Su-Shee: in Lisp, those would be "helper" functions. 19:07
19:08 im2ee left 19:09 espadrine joined, im2ee joined
Su-Shee no, I usally use only an average subset of any language unless I really really need something else and really really can't do it with something common/simple. 19:10
19:10 bbkr joined
masak rakudo: sub bubble-sort(@l is copy) { sub swap($i1, $i2) { @l[$i1, $i2] = @l[$i2, $i1] }; until [<=] @l { for 0..@l-2 Z 1..@l-1 -> $a, $b { swap $a, $b if @l[$a] > @l[$b] } }; @l }; say bubble-sort [5, 2, 8, 3, 7, 1] 19:12
p6eval rakudo fc57d1: OUTPUT«1 2 3 5 7 8␤»
masak see also the nested subs in strangelyconsistent.org/blog/june-2...-connect-4
19:15 pmurias left 19:17 mkramer joined 19:18 mkramer left
Su-Shee I think I've never used any sub in Perl 6, I've done everything in methods/classes/roles... 19:19
19:19 molaf left
masak really? procedural programming can be very powerful. 19:24
only one of six games in the June blogging series was object-oriented.
Su-Shee yes maybe. but I'm wasn't really waiting a decade for using Perl 6 to get more powerful procedural programming but to get a nicer OO actually.. :) 19:25
masak I don't buy the premise of that. 19:26
it's not a strict evolution from procedural to OO, and then you ditch procedural.
OO is just a tool that you can employ when the scope of the problem welcomes that much structure.
Su-Shee I haven't even hinted that. I just said that more powerful procedural never was what I wanted perl 6 for..
masak I wanted Perl 6 for a lot of reasons. 19:27
more powerful procedural programming was one of them.
have you seen how nice multi-sub dispatch is in Perl 6? it's *really* nice. :)
rakudo: multi foo(Int) { say "outer foo called" }; { multi foo(42) { say "inner foo called" }; foo 42 }; foo 42 19:29
p6eval rakudo fc57d1: OUTPUT«inner foo called␤outer foo called␤»
masak rakudo: multi foo(Int) { say "outer foo called" }; { multi foo(Real) { say "inner foo called" }; foo 42 }; foo 42
p6eval rakudo fc57d1: OUTPUT«outer foo called␤outer foo called␤»
Su-Shee I really just wanted nicer OO. honestly. Moose didn't exist when I started wanting and I still hate that I have to use 2/3 in procedural and still have to juggle OO and procedural... 19:31
PerlJam Su-Shee: but moose exists now :)
Su-Shee PerlJam: yes. and I still hate that I have to use 2/3 in procedural and so on... 19:32
PerlJam: calling methods with -> on one hand but then doing push @array, $foo instead of @array.push($foo) is what I don't like. hence Perl 6... 19:33
@array->push I mean in 5. 19:34
benabik @array->push is nonsensical in p5, @array isn't an object. 19:35
19:35 tlocalhos left
Su-Shee benabik: yes. that's what I just said. 19:35
masak Su-Shee: that's interesting. the more I use Perl 6's method syntax for .push, the less I care about the difference. 19:36
it's just syntax...
Su-Shee in the end, it's not. it becomes architecture very fast and you simply treat something that really is an object differently of course. 19:37
masak you have a point.
19:38 tlocalhos joined
masak Su-Shee: did you know Perl 6 started out by saying "methods and subs are the same thing", and then it sort of changed into "oh wait, no they're not"? :) 19:38
Su-Shee and I like syntax reflecting that consistently. otherwise, you also wouldn't really need two keywords to distinguish sub and method...
masak though if you look deeply enough, they're really the same.
Su-Shee masak: yes, I did.
masak Su-Shee: lots of fivers are slightly annoyed the first time they discover that both 'sub' and 'method' work inside a class declaration, and they mean very different things... 19:39
19:40 donri left
Su-Shee well I'm not. ;) I remember some old docs basically saying "in a class, it's method, if you still want to hack down a script we give you sub" and that was it for me. ;) 19:40
lue hello planet o/ [he says to a screen full of text; backlogging] 19:41
TimToady planet o/ greets you in return 19:42
masak Su-Shee: you seem to have embraced OO much more fully than have I.
Su-Shee and as long as there's not really a book which at least at some basic level sets the tone of what's Perl6's essence, I treat it as "the perl with the nicer OO and some functional goodies"
19:42 bluescreen10 left
TimToady
.oO(nicer functions and some OO goodies)
19:43
flussence I keep forgetting what the difference between method and sub is (is there one?)
TimToady on what level are you asking?
PerlJam Su-Shee: github.com/perl6/book ;-)
flussence perl6 level
TimToady there are multiple levels on the perl6 level 19:44
do you mean in definition or in use?
or in dispatchers, which is in the middle?
flussence use, I guess
masak flussence: when you go 'sub', something registers in the lexpad. 19:45
TimToady well on that level a method is a function that you call using the '.' dispatcher to pick the right funciton
masak flussence: when you go 'method', something registers in the metaclass.
TimToady that's on the def level, not the use level
masak right. 19:46
TimToady in the invocation level, there's no difference whatsoever, because they're all functions down under
the def level, besides putting it by default into the metaobject instead of the lexpad, also allows you to omit the invocant from the sig 19:47
but as far as the underlying function is concerned, it's always there
there's also a basic philosophical difference
methods are defined by classes with delayed dispatch, therefore cannot change your current language 19:48
masak ooh, interesting.
TimToady subs are declared in a lexical scope, and pretty much always change your current language
if only by adding another name to it 19:49
masak a class changes your current language, though.
TimToady if it adds a name to your lexical scope, yes
but a class ain't a method
masak unless it's the Method class :P 19:50
bbkr is submethod DESTROY implemented in rakudo? doesn't throw compile error, but also is not called when object is destroyed.
jnthn Then it's still not a method.
lue To me, "sub"s are outside classes, "method"s inside [and "submethod"s are those things that I have no clue about]
moritz bbkr: it's not
jnthn :P
moritz but it would be an interesting problem to tackle
jnthn has fixed a couple of bugs where he treated the type object of a thingy as the thing itself,and the results ended badly.
moritz there's already a vtable destroy handler in 6model
Su-Shee lue: that sums it up what I know ;) 19:51
jnthn moritz: It doesn't call anything, though...
moritz: And there's always the possibility of resurrection
moritz: So it needs handling quite carefully. :)
moritz: Also there's no ordered destruction, so you may find that your attributes already got collected and freed. :(
I'd love it if somebody found a good way to make destory work, but it's not so easy. 19:52
Su-Shee masak: do you really see Perl 6 as the better procedural language?
masak yes, and I never felt that was an odd thing. :)
[Coke] wonders what tripped his hilight filter in here. 19:53
masak Su-Shee: I don't see OO as strictly an improvement over procedural.
Su-Shee: I don't always go for OO when procedural is enough.
19:54 samlh left, samlh_ joined, bluescreen10 joined
lue has never used P5, and so is naturally biased towards 6 19:54
masak right, but that doesn't equal being biased towards OO, IMO. 19:55
Perl 6 just happens to have nice OO. :)
Su-Shee masak: oh, me too. but I don't need Perl 6 for that, then Perl 5 with CPAN is just perfect.
TimToady if anything, it's slightly biased towards good FP 19:56
lue I actually dislike class-happy WTDI and try to avoid it as much as possible. 19:57
19:57 thou left
Su-Shee WTDI? 19:58
(OO is mostly role happy these days anyways.. ;)
lue Ways To Do It 19:59
PerlJam TimToady: you need to include a section in "Programming Perl 6" about excessive laziness. :-)
lue [once in a blue moon I tend to use parts of TIMTOWTDI for abbreviations] 20:00
20:01 thou joined, donri joined
masak rakudo: role Moon[$color] { method spot { say "look, a $color moon!" } }; given Moon["blue"].new -> $moon { $moon.spot } 20:03
p6eval rakudo fc57d1: OUTPUT«===SORRY!===␤Parametric roles not yet implemented at line 1, near ".new -> $m"␤»
masak b: role Moon[$color] { method spot { say "look, a $color moon!" } }; given Moon["blue"].new -> $moon { $moon.spot }
p6eval b 1b7dd1: OUTPUT«look, a blue moon!␤»
pmichaud jnthn: ping 20:04
masak parametric roles in nom, I am disappoint.
20:05 colomon joined
flussence now, can someone explain to a dumb user what *those* are good for? :) 20:05
Su-Shee lue: honestly, if you still think, OO means class happy, you have missed a decade of OO. ;) (and some languages who doesn't even _have_ classes :)
remove some of my german commas. ;)
lue More like ignored a decade [I've only been programming for, what, 6 yrs] 20:06
20:06 donri left
lue I should clarify. I don't like creating large chains of inheritance with classes. [S26 suggests this, with e.g. Pod::Block::Named::Image] 20:07
moritz lue: that's just a bulky namespace, not a deep inheritance hierarchy
masak flussence: I can try. 20:08
lue The name implies [for me at least, I'm getting the feeling I'm missing a fundamental of programming now :)] there's a lot of subclassing
moritz lue: the name is totally decoupled from inheritance 20:09
flussence masak: that'd be good for a blog post :)
20:09 pernatiy joined
masak flussence: I say "a list", you say "a list *of WHAT*?". I say "a function", you say "a function returning *WHAT*?". 20:09
Su-Shee lue: well OO also isn't really about the inheritance stuff, that just what too many tutorials suggest by starting with examples *hrr* of the inner Linneus. (yeah, I just had to use it! :)
masak flussence: the "of WHAT" and "returning WHAT" is the thing you want parametric roles for :)
lue Yeah. Maybe I'm not the kind of person who would name something with a bunch of :: if it didn't describe where it is in an inheritance chain
masak flussence: and it's not just containers and functions, it's a lot of things.
Su-Shee lue: read "object thinking". it's a great book. 20:10
moritz
.oO( "object to thinking" )
masak lue: :: and inheritance are completely unrelated. 20:11
lue: I'd go so far as to say you shouldn't think of them as being similar.
(because it'll limit what you can do with ::) 20:12
benabik P6's A::B::C is Java's A.B.C is Linux's a/b/c
lue feels he's be messed up by standard module naming and a fundamental misunderstanding there
masak benabik: except that in Java, you have to nest classes to get A.B.C :) 20:13
lue
.oO(for some reason, I want to s/fundamental/fundal/)
benabik masak: Well, yes, but that's a limitation of Java.
tadzik good evening zebras
benabik masak: Python's A.B.C?
lue good day tadzik o/
Today I learned I have completely misunderstood the meaning of :: in names :) 20:14
tadzik (:
it's like "'", right? :P
flussence masak: so role params are sort of like saying role.new($stuff), but let you pass things to the role without cluttering up the class that makes use of them... does this sound vaguely right? 20:15
lue
.oO(This is one of those days where I feel like I can't get to studying CS at a college fast enough)
20:16
masak flussence: sounds about right. you pass arguments to the parametric role, just like you do to a routine. 20:19
flussence: the role then gets concrete with the help of those parameters.
20:19 donri joined
flussence where do those parameters end up? attributes? 20:19
masak role Foo[::T] { method bar(::T $x) { ... } } 20:20
the method .bar gets different types depending on what type parameter you pass in.
flussence I mean, I'm trying to figure out how $color in your example up there ends up being inside the method call... 20:21
(is it just a normal, scoped variable?)
oh, it's the same thing as a function signature! I think I get it now. 20:22
20:23 samlh_ left
masak it is. it's quite a nice unification. 20:28
and the parameters get used inside the role as, usually, type variables.
20:47 bluescreen10 left
TimToady roles are really a kind of hygienic type macro, if you squint 20:50
masak .oO( parametric roles *in* macros... ) 20:52
ha ha, some poor sod is going to have to implement those! 20:53
oh wait.
tadzik :D 20:59
masak I'm going to need a spare brain. 21:00
21:02 bluescreen10 joined
dalek ecs: 3cb17ce | moritz++ | S02-bits.pod:
[S02] remove unexplained usage of "idfirst"

  rir++ asked at www.perlmonks.org/?node_id=924669 what "idfirst"
means, and I guess the answer is that simple.
21:02
21:03 kaare_ left, M_o_C joined, guidj0s left 21:05 wallberg joined 21:08 natureboy left
diakopter . 21:12
lol spare brain 21:13
diakopter read that as bare sprain 21:14
ETOOMUCHCOFFEE
moritz sparse brain? :-) 21:15
21:18 prammer left 21:20 prammer joined
masak diakopter: I meant "I need a bear, Spain." 21:21
diakopter that one I definitely read as beer 21:22
sorry for my bad reading
lue 's in blog mode 21:23
21:24 wallberg left
masak diakopter: maybe I'm not typing decisively enough... 21:25
21:26 M_o_C left
diakopter haha strongly typing 21:27
masak 哈哈
diakopter working with perl and hdfs lately 21:29
turns out the stat operation is twice as fast using the HadoopThriftServer via HadoopFS::FileSystem and Thrift::Socket as using the hdfs filesystem mounted via FUSE 21:31
stat operations are obscenely slow on both though.
masak rakudo: sub bubble-sort(@l is copy) { loop { my $swaps = 0; sub swap($i1, $i2) { @l[$i1, $i2] = @l[$i2, $i1]; $swaps++ }; for 0..@l-2 Z 1..@l-1 -> $a, $b { swap $a, $b if @l[$a] > @l[$b] }; last unless $swaps }; @l }; say bubble-sort [5, 2, 8, 3, 7, 1] 21:32
p6eval rakudo fc57d1: OUTPUT«1 2 3 5 7 8␤»
masak \o/
diakopter does that work in niecza also 21:34
masak niecza: sub bubble-sort(@l is copy) { loop { my $swaps = 0; sub swap($i1, $i2) { @l[$i1, $i2] = @l[$i2, $i1]; $swaps++ }; for 0..@l-2 Z 1..@l-1 -> $a, $b { swap $a, $b if @l[$a] > @l[$b] }; last unless $swaps }; @l }; say bubble-sort [5, 2, 8, 3, 7, 1] 21:35
p6eval niecza v9-10-g678102e: OUTPUT«1 2 3 5 7 8␤»
masak yes :)
21:38 samlh joined
lue blog post! rdstar.wordpress.com/2011/09/07/p6-isnt-pv6/ 21:39
21:40 abercrombie joined, daniel-s left
diakopter finally gets that Camelia contains "Camel" 21:42
masak :) 21:43
21:43 daniel-s joined
benabik It does? … It does! 21:43
flussence goes and uses that file as pod2html test input
yay, not-completely-unreadable output! 21:44
im2ee So. It's time for me. Good night! :)
lue \o/ 21:45
good night, im2ee o/
tadzik im2ee: o/
lue: I feel the need to read this once I'm sober again :) 21:46
21:46 im2ee left
masak lue: the feminine form of "frood" is "frood". 21:46
21:47 bluescreen10 left
lue Thought so, I just had an idea it should be "fraad" or some such :) 21:47
benabik lue: That looks too much like fraud 21:48
masak lue: Perl 6 is a new/different language, marketed as the sixth major version of Perl.
lue (or "froodette")
masak it's definitely not "froodette".
diakopter froodress
masak aaaugh 21:49
benabik … string xor?
masak benabik: well, buffer xor, really.
jnthn
.oO( froodka? )
benabik masak: That makes more sense.
lue masak: I'm aware of that, I just have the perception that Perl6 is more like C++ than a new version of C
tadzik froodka makes more sense? Certainly
masak lue: Perl 5 was a big jump ahead from scripty old Perl 4. it introduced objects, and modules, and CPAN, and tie, and... 21:50
lue: it was also a re-implementation of the engine from the ground up.
some people complained that it would be too slow compared to Perl 4. 21:51
21:52 mberends left
flussence similar thing happened with PHP 5... except a lot of people decided to stick with 4 there until it was EOL'ed 21:53
lue nodnod. From wp, Perl 4 -> Perl 5 seemed to take only a couple of years though. 21:54
I feel this time 'round (5->6), Perl 6 is taking *much* longer to have a passing implementation (and therefore be "Perl 6") 21:55
flussence checks that graph thing again... 21:56
we're about two-thirds of the way there, going by these numbers... 21:57
21:57 mberends joined
tadzik well, beijing passes almost all of those, and it doesn't make it complete 21:57
lue [That's another thing: Perl 6 changed the *way* an implementation comes (clear spec and no one, official implementation)] 21:58
flussence (I wonder what a spectest graph for niecza would look like...)
abercrombie flussence: Can you point me to the graph? 21:59
flussence github.com/flussence/specgraphs/bl...-tests.png - hasn't been updated in a few days... 22:00
masak 'night, #perl6 knights
tadzik g'night Carl
masak dream of peaceful relations between all VMs and language implemenations.
22:01 masak left 22:03 Holy_Cow left
abercrombie Does it mean that nom has implemented 3/5 of the full feature? 22:04
tadzik 3/5 of what master does
benabik s/master/beijing/ ? 22:05
:-D
abercrombie Oh. And the optimization things will not get displayed in the graph, right?
tadzik yeah, whatever :)
abercrombie: what do you mean by that? Performance?
flussence no optimisation things here, this is just a pass/fail graph, no time data
abercrombie Like parallel processing 22:06
flussence (OTOH, the spectest archives *do* have start/end timestamps in them...)
TimToady diakopter: it also contains "Amelia", the name of the Perl 5 camel, named after Amelia Peabody, the famous egyptologist 22:09
22:24 benabik left
diakopter oh 22:39
22:47 envi_laptop joined 23:34 Chillance left 23:36 envi_laptop left 23:37 plobsing_ left 23:38 plobsing joined 23:41 whiteknight joined
pmichaud I'm drafting a reply to dukeleto's parrot-dev message; anyone want to review/comment before I send it? 23:45
flussence perl6: sub foo { state $a = 0; say $a++ }; foo; foo 23:50
p6eval pugs, rakudo fc57d1: OUTPUT«0␤0␤»
..niecza v9-10-g678102e: OUTPUT«0␤1␤»
flussence b: sub foo { state $a = 0; say $a++ }; foo; foo
p6eval b 1b7dd1: OUTPUT«===SORRY!===␤"state" not yet implemented at line 22, near "= 0; say $"␤»
TimToady niecza has it correct 23:51
pmichaud actually, I guess I'll just send and then let people comment there.
TimToady pmichaud: I can look at it
flussence I think current rakudo should at least be giving that error, not misimplementing it :/
pmichaud ...but state *is* supposedly implemented in rakudo.
TimToady well, the difficulty is likely the lack of START semantics on the = 23:52
pmichaud TimToady: gist.github.com/1202206
TimToady looking
jnthn TimToady: Yes, that's a problem still.
23:53 wolfman2000 joined
TimToady did you mean s/moritz/jnthn/? 23:54
pmichaud no, moritz++ is the other relationship manager for Rakudo<->Parrot
TimToady well, but if you're discussing history before there was a relationship manager... 23:55
pmichaud I'll just change it to "come from me" then. +1
TimToady depends on how you take 'are coming from'
pmichaud right.
reworking. 23:56
TimToady and the prev paragraph sets up a lit-crit interpretation of timeless
other than that, seems clear 23:58
the exchange also makes me wonder whether rakudo should start thinking about targetting JS directly :) 23:59
pmichaud gist.github.com/1202214 # updated based on TimToady++ remarks