Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 supernovus joined #perl6
00:10 uasi joined #perl6
00:13 uasi joined #perl6
00:28 uasi joined #perl6
00:31 pmichaud For those looking for the link to today's #parrotsketch discussion: http://irclog.perlgeek.de/parrot/2011-09-06
00:32 pmichaud (which may be "yesterday" for many of you by now :)
00:32 pmichaud also see the thread: http://lists.parrot.org/pipermail/pa​rrot-dev/2011-September/006179.html  (which predated the discussion)
00:33 thou joined #perl6
00:33 pmichaud afk, #soccer
00:37 uasi joined #perl6
00:43 pmichaud oops
00:44 pmichaud http://irclog.perlgeek.de/parrotsketch/2011-09-06
00:50 envi_laptop joined #perl6
01:24 REPLeffect joined #perl6
01:29 woosley joined #perl6
01:32 ponbiki joined #perl6
01:41 cognominal_ joined #perl6
01:42 uasi joined #perl6
01:43 donri joined #perl6
01:58 araujo joined #perl6
01:58 lue joined #perl6
01:58 y3llow joined #perl6
01:58 ruoso joined #perl6
01:58 frettled joined #perl6
01:58 dukeleto joined #perl6
01:58 awwaiid joined #perl6
01:58 aloha joined #perl6
01:58 eternaleye joined #perl6
01:59 y3llow joined #perl6
02:03 wolfman2000 joined #perl6
02:15 masonkramer joined #perl6
02:21 benabik joined #perl6
02:42 Tene jnthn: will you be available to work with me on cardinal-6model sometime in the next week or so?
02:48 HarryS joined #perl6
02:57 benabik joined #perl6
03:09 sorear good * #perl6
03:23 Su-Shee_ joined #perl6
04:02 colomon joined #perl6
04:15 satyavvd joined #perl6
04:22 birdwindupbird joined #perl6
04:24 thou joined #perl6
04:45 daniel-s joined #perl6
05:48 wtw joined #perl6
06:00 moritz good morning
06:00 sorear hi moritz
06:00 * moritz has read another new HPMoR chapter
06:00 * Tene also
06:01 * sorear not
06:01 moritz sorear: do you generally follow hpmor?
06:02 sorear moritz: no
06:02 moritz sorear: then it's not really surprising that you didn't read it :-)
06:05 orafu joined #perl6
06:13 koban` joined #perl6
06:14 koban` left #perl6
06:20 jevin joined #perl6
06:24 * lue stopped reading ~Ch. 22, should get back to it someday
06:25 cotto pmichaud, are you still up?
06:30 cotto or jnthn or moritz
06:30 * moritz is up again
06:31 * sorear wonders if ey counts.
06:31 cotto That's an open question.  atm, you probably count if you say something. ;)
06:32 cotto 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:33 moritz well, 'make spectests' passes with rakudo on top of that branch. That's a very good sign.
06:33 cotto yeah
06:33 cotto I'll keep discussion on this topic in this channel.
06:34 cotto (for the time being)
06:35 cotto parrot's allhlltest shows some nqp failures, but those have been around for a while and look identical between the branch and master
06:37 cotto 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 sayu joined #perl6
06:43 sorear well then probably not, I don't follow rakudo/parrot interface issues
06:43 sorear and on that note *out*
06:44 cotto 'night
06:44 cotto I'm about there too
06:46 JimmyZ joined #perl6
07:01 wamba joined #perl6
07:01 mj41 joined #perl6
07:09 masak joined #perl6
07:10 masak good morning, #perl6
07:12 JimmyZ good morning, #perl6
07:13 masak there's been a slight breakthrough in the field of autopun research. just thought I'd let you know.
07:15 masak it turns out that an autopun, while straddling the use/mention distinction, isn't actually self-referent.
07:15 masak it just points strongly in that direction, like Gödel numbering does.
07:16 masak so "this proposition evaluates to Bool::False" is a self-referent statement, but not really an autopun.
07:16 masak "Wikipedia has been known to contain unsourced claims.[citation needed]" is an autopun.
07:26 woosley joined #perl6
07:45 jnthn mornin'
07:45 moritz o/
07:45 jnthn $dayjobin' today
07:45 jnthn But vaguely aboutish.
07:48 masak \o
07:48 mort joined #perl6
07:49 * masak is also vague and aboutish
07:49 JimmyZ \o/\o/\o/\o/
07:49 masak apparently JimmyZ compensates by being four people :P
07:50 JimmyZ :)
07:51 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
07:52 masak 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 ;)
07:53 jnthn And the other 400 people who saw the talk where I used it :P
07:53 moritz $something-driven development
07:55 masak correct!
07:55 frettled Confusio-Wikipedic Driven Development
07:56 masak ooh
07:56 jnthn No, but that woulda been a good one.
07:56 masak Confusius says "it's on Wikipedia, silly"
07:56 masak "use the English version, not the two Norwegian ones"
07:56 masak :P
07:57 jnthn They have two?
07:57 frettled :)
07:57 frettled jnthn: yes, and one sucks more than the other.
07:57 jnthn Ah, is that the "two versions of the language" thingy?
07:57 * Tene prods jnthn.
07:57 jnthn Norwegian 5 and Norwegian 6 or whatever they're called...
07:58 jnthn Tene: Ouch! Do it gently :P
07:58 jnthn Tene: May I help?
07:58 jnthn Tene: Or should I have backlogged? :)
07:58 jnthn (didn't yet...)
07:58 jnthn oh, there's...not much to backlog...
07:58 Tene jnthn: think you'll be available for me to harass about cardinal-6model sometime in the next week or so?
07:59 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?
08:00 moritz Continuous Wave?
08:00 masak frettled: Chinese Whispers.
08:00 frettled I never heard that one coming.
08:01 Tene jnthn: great
08:01 frettled …could've been Cat Whiskers.
08:01 masak frettled: client saying one thing, architect-ly person in the middle saying a second thing, developer implementing a third thing.
08:01 frettled masak: yeah, brilliant description :)
08:01 frettled masak: we call it «hviskeleken» here (the whispering game)
08:01 masak frettled: they may all be well-intentioned, but if the vocabularies are different along the way, you already have a problem.
08:01 masak frettled: in Sweden, too.
08:02 jnthn Yeah, I had the Swedish word for it on my slide too :)
08:02 frettled :D
08:02 masak except we don't spell it funny :P
08:03 * masak dials down the "troll" setting a bit...
08:04 masak Norwegian spelling is fine. both of them.
08:04 frettled heh
08:05 frettled tiskeleiken!
08:05 masak also known as "The Telephone Game" to anglophones.
08:05 frettled or «kviskreleiken»
08:05 frettled masak: ah, I didn't know that one.
08:06 jnthn masak: Broken Telephone, I think
08:06 * jnthn recalls the Lady Gaga "Telephone" video and immediately wishes he hadn't
08:06 masak :D
08:06 masak it can't be un-seen.
08:07 woosley1 joined #perl6
08:07 masak phenny: pl en "Głuchy telefon"?
08:07 phenny masak: "Deaf Phone" (pl to en, translate.google.com)
08:07 masak phenny: ru en "Испорченный телефон"?
08:07 phenny masak: "Spoiled phone" (ru to en, translate.google.com)
08:07 frettled arabic telephone, heh
08:11 masak the Chinese and Arabic peoples get some flak from the Western society for having evolved such incomprehensible spoken languages.
08:12 masak what's ironic about that is that it's probably a bunch easier to algorithmically parse spoken Mandarin than spoken English.
08:14 moritz I've often read that Mandarin is easy to misunderstand (or disambiguate wrongly). Is that true?
08:14 moritz and wouldn't that hurt automatic recognition, if it's true?
08:14 masak possibly.
08:15 masak there's a lot of homonyms, for sure. but there's usually one with overwhelming probability in any given sentence.
08:15 masak I haven't seen much of "time flies like an arrow" in Chinese.
08:16 frettled IIRC, Mandarin does not have the same concepts of time that we have in Indo-European languages.
08:17 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.
08:17 masak I think that's wrong.
08:18 masak 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?
08:18 masak moritz: after all, the reason something like http://en.wikipedia.org/wiki/Li​on-Eating_Poet_in_the_Stone_Den can work at all is probably that words can be pretty accurately disambiguated.
08:18 mberends joined #perl6
08:20 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 #perl6
08:21 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 masak so, again with the waterbed. there has to be some way to indicate aspect. :)
08:22 masak also, at any time you make a statement about the nature of things, and it's something that changed, you also use 了.
08:22 masak like, "I'm hungry 了" or "it's raining 了"
08:23 masak either of these can be said without 了 but then it means that things have been so for quite some time.
08:23 masak JimmyZ: am I getting this right? :)
08:25 JimmyZ 了 is modal particle
08:26 frettled Now write the equivalent of Lingua::Romana::Perligata for this.  ;)
08:26 moritz modal [particle]? :-)
08:27 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!
08:27 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 joined #perl6
08:29 JimmyZ masak: it's optional, but sometimes it is necessary to make your tone smooth
08:30 JimmyZ just like . and !
08:30 masak JimmyZ: it's not optional in 太好了!
08:31 JimmyZ but it's not necessary in  很好
08:31 masak nodnod
08:31 JimmyZ No, it's not needed at all
08:31 Gothmog_ joined #perl6
08:31 jnthn joined #perl6
08:32 broquaint joined #perl6
08:32 \patch joined #perl6
08:32 renormalist joined #perl6
08:32 moritz masak: btw I've had a very nice TDD experience the other day
08:32 f00li5h joined #perl6
08:32 masak moritz: ooh! do tell.
08:32 jfried joined #perl6
08:32 JimmyZ Nobody say 很好了
08:32 masak JimmyZ: no, that sounds odd! :)
08:32 moritz masak: I think I've told you that I'm writing a blog engine backend in p5...
08:32 masak yes.
08:33 moritz masak: and for that I created a JSON based storage system, mostly for testing out API ideas...
08:33 masak ooh
08:33 masak focus on the verbs! :)
08:33 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
08:33 JimmyZ masak: because tone is odd
08:34 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 :)
08:34 masak JimmyZ: that's a strange explanation to me. I thought it was because 太..了 is a fixed expression, but 很..了 isn't.
08:34 moritz that was real fun, and the storage module was done within less than an hour
08:35 masak moritz: sounds wonderful.
08:35 JimmyZ masak: 很好了, is wrongish, but, 很多了,is right and is optional
08:35 masak o.O
08:36 JimmyZ masak: but ,这个已经很好了, is right
08:36 moritz masak: later on I factored the duplicated tests into a separate module
08:36 JimmyZ masak , 这个已经很好, is wrongish
08:37 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?
08:37 JimmyZ masak: not because grammar, because different tone :)
08:37 JimmyZ masak: or context
08:37 tadzik dzień dobry #perl6
08:38 masak tadzik: 早晨好!
08:38 JimmyZ masak: context determine grammer :)
08:38 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...
08:38 jnthn tadzik: dobry den :)
08:39 moritz jnthn: oh dear indeed.
08:39 masak jnthn: sounds like it'd be reinventing trees, badly.
08:40 jnthn masak: So, which of us gives the talk on "compiler crap business developers should know!" talk at $next_event? :)
08:41 arthur-_ joined #perl6
08:43 ab5tract joined #perl6
08:43 Vlavv joined #perl6
08:44 masak jnthn: either of us, but I want to help write the slides :P
08:45 tadzik oh, new hpatmor
08:45 masak we're so spoiled nowadays.
08:46 moritz the next one is going to take a week :(
08:46 masak I've decided I like the current arc, though.
08:47 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.
08:48 masak and as usual, Harry's hard-line policies are easy to sympathise with, but also easy to question.
08:48 masak I'm wondering how much of himself LessWrong puts into Harry.
08:49 moritz and the same (easy to sympathise, easy to question) also applies to Dumbledore's stance
08:51 masak arthur-_! \o/
08:52 arthur-_ masak: \o/
08:52 masak moritz: yes. and nobody knows whose side the Defense Professor is on. :)
08:52 arthur-_ masak: any progress with web.pm ? ( sorry I let you down, I'm into open hardware now, but still following perl6 very much )
08:52 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 #perl6
08:53 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 #perl6
08:54 masak arthur-_: very much no progress at all. :/
08:54 masak moritz: no! which chapter?
08:54 masak arthur-_: I'm looking (though not very actively, it seems) for some way to finish the grant.
08:54 moritz masak: I don't remember exactly, but one was in Quirrel's speech after one of the Battles
08:55 moritz masak: something like "Voldemort killed my parents"
08:55 moritz masak: and the other was in private conversation with Harry, saying something like "the matter of parents was resolved to my satisfaction" or so
08:55 masak oh, he keeps referring to Voldemort, yes.
08:56 masak he did that when talking about the martial arts school too.
08:56 masak very nicely done.
08:56 moritz it's just that the combination of these statements add up to a quite an interesting overal statement :-)
08:56 masak do you thing... wait... no...?
08:56 masak s/thing/think/
08:57 masak :)
08:58 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.
09:00 moritz right.
09:02 masak overall, I'm just happy he's pushing out episodes again :)
09:03 moritz agreed
09:03 daniel-s joined #perl6
09:09 tadzik wow, that was a short one
09:09 masak yes. the arc is winding down.
09:33 moritz http://lesswrong.com/r/discussion/lw/364/harr​y_potter_and_the_methods_of_rationality/3fnw made me smile
09:37 fhelmberger joined #perl6
09:41 masak :)
09:44 daniel-s joined #perl6
09:46 woosley1 left #perl6
09:52 wamba joined #perl6
10:04 vamshi joined #perl6
10:05 vamshi vidya
10:05 vamshi perl
10:14 masak in Sanskrit, "vidya" means knowledge or learning.
10:16 arnsholt Or something you find =)
10:16 moritz vamshi did find #perl6 :-)
10:16 arnsholt Indeed
10:17 arnsholt Apparently vidyā (the feminine) is knowledge, scholarship
10:17 arnsholt But they're both derived from the vid- root
10:18 arnsholt Which can mean both to find and to know, depending on how it's conjugated funnily enough
10:22 uasi joined #perl6
10:58 envi_laptop joined #perl6
10:59 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]
11:00 f00li5h joined #perl6
11:00 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'␤»
11:00 masak b: say \(1, "OH HAI") ~~ :(Int, Str)
11:00 p6eval b 1b7dd1: OUTPUT«Bool::True␤»
11:00 masak b: say \(1, 4.5) ~~ :(Int, Str)
11:00 p6eval b 1b7dd1: OUTPUT«Bool::False␤»
11:00 masak bbkr_: that work for you?
11:00 bbkr_ sure, thanks!
11:01 tyatpi_ joined #perl6
11:01 tadzik how about isa_ok()?
11:01 tadzik nom: use Test; plan 1; my $a = 5; isa_ok $a, Int;
11:02 tadzik 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'␤»
11:02 tadzik bbkr_: ^
11:02 masak sure, depends if you want the _deeply or not.
11:02 tadzik right
11:03 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.
11:03 tadzik hmm
11:04 masak b: say [1, "OH HAI"] ~~ :(Int, Str)
11:04 p6eval b 1b7dd1: OUTPUT«Bool::True␤»
11:04 tadzik could you produce something like subset MyTuple of Signature where :(Int, Str)?
11:04 tadzik and then [foo] ~~ MyTuple
11:04 masak ooh, nice!
11:04 masak but just keeping :(Int, Str) in a named constant is probably easier.
11:05 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'␤»
11:05 tadzik tee hee
11:05 tadzik masak: true
11:05 perlhack joined #perl6
11:05 bbkr_ that was helpful (as always), thanks again
11:10 perlhack 哥们们 i came again
11:12 masak perlhack! \o/
11:13 masak perlhack: you should say "I'm back", not "I came again" :)
11:13 masak the latter is un-idiomatic and, it can be argued, fraught with innuendo.
11:13 perlhack thank you
11:13 perlhack haha
11:14 wamba joined #perl6
11:18 masak perlhack: so, how's life? are you hacking any Perl?
11:24 im2ee joined #perl6
11:25 im2ee o/
11:26 masak \o
11:27 masak aha, 哥们们 means "buddies". cute.
11:28 * JimmyZ wakes up
11:28 im2ee :)
11:30 Alias joined #perl6
11:39 Psyche^ joined #perl6
11:40 awwaiid joined #perl6
11:45 perlhack masak  哥们们 means "buddies"
11:45 perlhack haha
11:46 * masak smiles
11:48 benabik joined #perl6
11:50 pmichaud good morning, #perl6
11:51 moritz good am, pm
11:52 benabik_ joined #perl6
11:58 mberends hello pmichaud
11:59 masak good morning, pm
11:59 pmichaud masak: read your posts about -n and -p
12:00 pmichaud 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?
12:00 pmichaud at least, not the way we munge the ast in rakudo today
12:02 masak pmichaud: right. there's a third post in the works.
12:02 pmichaud okay
12:02 jnthn o/ pmichaud
12:02 masak after I wrote the second one, both sorear++ and TimToady++ spoke up and gave me enough clues to understand the big picture.
12:02 pmichaud okay, good.
12:03 pmichaud before I read what they wrote, let me write my understanding then
12:03 pmichaud SETTING is just a lexical scope
12:03 pmichaud by default, SETTING =:= CORE, but that can be changed by --setting flags
12:03 flussence huh, some of these old revisions are hanging on t/spec/S04-declarations/my.rakudo, I don't remember that happening...
12:04 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 pmichaud and SETTING becomes bound to the lexical scope of the setting unit that you specified with --setting
12:04 pmichaud sound about right?
12:05 * pmichaud goes go look at the backlog now to see what TimToady++ and sorear++ had to say.
12:05 masak pmichaud: sounds about right.
12:06 masak pmichaud: it's a stack of settings, each one being a setting for the next.
12:06 jnthn Basically, a stack of outers.
12:06 pmichaud yes, nested lexical scopes :-)
12:06 jnthn right.
12:06 pmichaud each setting determines the dsl for the thing it encapsulates
12:07 jnthn I'm pretty sure nested settings already work in nom, fwiw
12:07 molaf joined #perl6
12:07 pernatiy joined #perl6
12:09 pmichaud okay, but -n and -p aren't quite spec
12:09 pmichaud well, unless we expect --setting=Perl6-autoloop-print to be "baked in" to the compiler.
12:09 pmichaud but it seems to me we'd want to have a Perl6-autoloop-print.pm somewhere.
12:09 jnthn We couold just install that, like we install Test.pm
12:10 bluescreen10 joined #perl6
12:10 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 pmichaud I'm less certain about that one.
12:11 benabik joined #perl6
12:11 * jnthn wonders hwo much to trust S19 :)
12:11 moritz it hasn't been implemented before.
12:12 masak S19 is sludgy.
12:12 masak and, in my view, too ambitious.
12:12 moritz agreed
12:12 masak ISTR ruoso didn't agree and actually found nested levels of cmdline arguments useful.
12:13 masak or maybe pmurias.
12:13 benabik_ joined #perl6
12:18 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:19 frettled The reconstruction could then be handled by a module, which could be bundled in the setting.
12:19 frettled The way nesting is specified in S19 gives me a mild headache.
12:19 frettled I'd normally expect to have to quote nested options using the external shell's quoting rules, though.
12:38 masak here's my take on it.
12:38 masak Unix cmdline args *are not broken*.
12:38 masak at least not to a great extent. they're a bit inconsistent sometimes, but not in a way that hurts too much.
12:39 masak 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:40 masak 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 masak the command line is one of our interfaces with the world. even non-p6ers will have to interact with it sometimes.
12:41 masak we don't go reinventing the file system, or the way time works, or TCP/IP.
12:42 masak similarly, we shouldn't reinvent Unix cmdline args syntax.
12:44 mux tell that to the GNU people who came with non-standard long options :-P
12:44 mux things used to be simple and much more consistent
12:47 masak long options are pretty mild compared to the craziness in S19.
12:47 perlhack left #perl6
12:47 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:48 masak I give you ++foo and ++/foo and +++foo and +++/foo
12:48 masak fear our craziness.
12:48 PerlJam masak: you can keep it, thanks.
12:48 PerlJam :)
12:49 * mux o_O
12:50 mux well I guess we should add getopt_perl() to some compat library; it'll make getopt_long() feel less lonely
12:51 daniel-s joined #perl6
12:52 masak mux: MAIN covers most of our getopt needs.
12:52 masak but S19 is from before we realized that.
13:01 tadzik did you see the settings profiling data? :)
13:01 * PerlJam is looking at it now
13:01 tadzik it's pretty awesome
13:05 masak awesome++
13:06 uasi joined #perl6
13:06 tadzik seems that lineof is still lying abit
13:06 PerlJam I think you have to look at ticks rather than ops
13:06 PerlJam (to counter-act the lying)
13:07 tadzik oh, ok
13:09 tadzik oh nice, you can look at the source code
13:12 JimmyZ joined #perl6
13:21 daniel-s joined #perl6
13:30 mtk joined #perl6
14:03 [Coke] masak++ #S19
14:11 thou joined #perl6
14:12 mls hi!
14:13 moritz oh hai mls
14:13 mls the nqp annotations seem to be a bit off
14:14 mls e.g. src/gen/perl6-metamodel.pir contains annotations for line 2860, but src/gen/Metamodel.pm only has 2801 lines...
14:15 tadzik I think that's related to 'use' stuff
14:15 tadzik or at least that frequently happens to me in Perl 6 code
14:16 tadzik file has 30 lines, bug in line 63
14:16 lumi_ joined #perl6
14:21 guidj0s joined #perl6
14:24 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:27 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:28 jaldhar joined #perl6
14:29 moritz aye; there's not much point in redesigning an S19 that nobody implemented when nobody implements the new thing either
14:30 mberends yeah, implementation rulez
14:35 mls lineof() can't count...
14:36 tadzik (:
14:38 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
14:39 PerlJam arnsholt: please do
14:39 mls Oh, it's because src/Perl6/Metamodel/ParrotInterop.pm has DOS line endings
14:40 moritz oh.
14:40 mls (Assuming \r instead of \n is DOS)
14:40 arnsholt PerlJam: Yeah, pondering it already =)
14:41 arnsholt mls: I think \r instead of \n is old-style Mac actually
14:41 arnsholt I think DOS is \r\n
14:41 mls yes, I think you're right
14:41 mls running 'git blame'... ;)
14:42 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
14:43 mls anyway, lineof() counts ^M as new line, that's why the annotations are off
14:44 arnsholt Yeah, that'll explain it
14:44 moritz it uses 7d 0d as line sep
14:45 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:46 mls moritz: actually just 0d. many lines end with }, though.
14:46 moritz oh.
14:46 stepnem joined #perl6
14:46 mls anyway, jnthn++ broke it, he has to fix it ;)
14:47 * moritz can collect a bit of karma
14:47 dalek rakudo/nom: fc57d1c | moritz++ | src/Perl6/Metamodel/ParrotInterop.pm:
14:47 dalek rakudo/nom: fix line endings in ParrotInterop.pm; no functional changes
14:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fc57d1c4d4
14:48 abercrombie joined #perl6
14:48 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:50 PerlJam mberends: SQLite?
14:51 moritz sqlite needs structs, no?
14:51 mberends yes, that's the blocker
14:51 PerlJam oh. nevermind then
14:51 PerlJam mberends++
14:53 jnthn oops, sorry about the line ending fail
14:54 jnthn mberends: What does it need in the structs?
14:54 jnthn mberends: To a first approximation, P6opaque already computes struct-ish layout... ;)
14:54 mberends jnthn: need to check, it was not simple
14:55 pmurias joined #perl6
14:55 pmurias sorear: ping
14:56 jnthn mberends: If there's a .h file, just point me a tit somketime
14:56 jnthn grr
14:56 jnthn at, it, sometime :)
14:57 * jnthn hates $dayjob keyboard
14:57 mberends jnthn: your typos are very Freudian
14:57 tadzik I think one day, when I'll get a job, I'll be mad about switching to Colemak years ago :)
14:57 moritz http://www.sqlite.org/c_interface.html
14:58 moritz hm, doesn't seem to be very detailed on that part
15:00 jnthn mberends: heh, I hadn't realized until you pointeed it out :P
15:00 jnthn arg...
15:00 jnthn ...it's like somebody poured coke over some of the keys...
15:00 jnthn ok, home time :-) bbs
15:01 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 #perl6
15:04 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 masak we're Perl 6, we over-reach. that's fine.
15:05 mux be careful though, duke nukem 3d has been released already
15:05 tadzik forever, you mean?
15:05 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.
15:05 tadzik istr it was a bit of a disappointment
15:06 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 )
15:06 mberends masak: :-)  and Rakudo Star has also been released
15:06 Holy_Cow joined #perl6
15:07 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
15:07 tadzik I like that
15:07 moritz as long as you don't expect that from p6l...
15:07 masak pmurias: oh, it was you. it's a useful datapoint.
15:08 masak 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
15:08 PerlJam pmurias: sounds like something that should be in a config file rather than on the command line.
15:08 arnsholt The functionality of the delimited options sounds nice. But the currently proposed interface looks a bit strange to me
15:08 pmurias hmm
15:08 pmurias PerlJam: what do you mean?
15:10 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.
15:10 masak PerlJam: the notion of levels of option sounds too compl... yes, that.
15:11 flussence .oO( most other software uses "--" for that... )
15:11 PerlJam flussence: that's different
15:11 pmurias thinks like ++BACKEND --valgrind ++/BACKEND seem usefull to have at the command line
15:11 tadzik how would that work?
15:11 masak I won't consider S19 to have an authoritative voice until it at least acknowledges MAIN.
15:13 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"   ?
15:13 tadzik I have a feeling somebody invented this without trying it in field
15:13 benabik gcc uses things like -Wa,option and -Wp,option to pass option to assembler/preprocessor
15:14 moritz that seems more concise
15:14 pmurias ghc uses something like S16 but with an uglier syntax
15:14 aloha joined #perl6
15:14 pmurias --backend-valgrind seems to be an alternative
15:14 masak S16!?
15:14 pmurias S19
15:14 * masak exhales
15:14 moritz S91!
15:14 tadzik /o\
15:15 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.
15:15 sorear good * #perl6
15:15 pmurias sorear: hi
15:15 masak PerlJam: that's because it is one.
15:15 masak hi sorear
15:15 tadzik hello sorear
15:15 pmurias +RTS ... -RTS is the syntax ghc uses
15:15 benabik pmurias: It seems to use something vaguely like gcc…  -optP option, -optc option
15:15 tadzik why not <BACKEND> --valgrind </BACKEND> even? :P
15:16 moritz that looks a bit like meta syntax :-)
15:16 pmurias that looks like xml
15:16 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)
15:16 benabik tadzik: horribly unfriendly to shells with <> redirects?
15:16 sorear pmurias: ponng
15:16 benabik pmurias: Forgot that…  That seems to be undocumented in GHC's manpage.
15:16 mberends sorear++
15:16 tadzik benabik: I feel like it's equally insane
15:17 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.
15:17 tadzik find for example likes to terminate the -exec argument with +
15:17 tadzik iisrc
15:17 masak sorear: I'm less concerned about S19 than about concurrency/threading and stuff.
15:17 pmurias tadzik: why is ++BACKEND ... ++/BACKEND insane?
15:18 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
15:18 tadzik benabik: that's the other way, yes
15:18 mux is this S19 stuff for parsing options to the interpreter rather than to the perl script itself?
15:18 pmurias tadzik: and what's the simple solution?
15:19 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.
15:19 tadzik pmurias: if I understand correcly what it's suppose to do, I'd go for the mentioned --backend="--valgrind"
15:19 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
15:19 PerlJam We need less grousing and more editing the spec :)
15:20 masak clearly.
15:20 tadzik ++PARSER --setting=Perl6-autoloop-no-print ++/PARSER becomes %*OPTS<PARSER>and contains --setting=Perl6-autoloop-no-print
15:20 masak PerlJam: but the one making the first commit will be cursed^Wblessed with responsibility! o.O
15:20 tadzik I'd much rather see something like -OPARSER="--setting=Perl6-autoloop-no-print" or so
15:20 tadzik it feels more normal
15:20 TimToady I find the less readable
15:20 TimToady *that
15:21 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 :>
15:21 mberends let's put all options in a one-line YAML doc, then we get proper hierarchies. (only half kidding)
15:21 TimToady NIH has nothing to do with it
15:21 tadzik oh, MongoDB driver
15:22 bbkr_ MongoDB driver has landed - https://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 perlhack joined #perl6
15:22 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.
15:22 flussence or since that ++ syntax is already borderline XML, why not just `perl6 -O options.xml`? :)
15:22 moritz bbkr_: don't you have commit access to the ecosystem already?
15:23 masak tadzik: if you look menacing enough, people won't stand in the way of reform.
15:23 tadzik bbkr_: cute, merging
15:23 TimToady obviously we just need to use heredocs for options :P
15:23 moritz .oO( inline comments! )
15:23 bbkr_ moritz: I have, but I wasn't sure if there is any human review or approval before module is accepted into ecosystem.
15:24 dalek ecosystem: e069522 | (Pawel Pabian)++ | META.list:
15:24 dalek ecosystem: Added MongoDB driver
15:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/e0695229a5
15:24 dalek ecosystem: 7861581 | tadzik++ | META.list:
15:24 dalek ecosystem: Merge git://github.com/bbkr/ecosystem
15:24 dalek ecosystem:
15:24 dalek ecosystem: Conflicts:
15:24 dalek ecosystem: META.list
15:24 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/7861581a2d
15:24 moritz bbkr_: there isn't, except github permissions of course
15:24 pmurias sorear: what would you need to consider VM-VM interop with perl5 in niecza?
15:25 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... :)
15:27 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
15:28 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:30 pmurias tadzik: shouldn't be to difficult ;)
15:30 uasi joined #perl6
15:30 pmurias s/to/too
15:32 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
15:33 pmurias TimToady: i used AUTOLOAD on the p5 side and Coro to make the runloops work together when adding it to smop
15:33 wamba joined #perl6
15:34 wamba joined #perl6
15:36 pmurias sorear: would having a .net binding of the p5 embedding api be enough? (i could write that)
15:37 TimToady someone has already done that somewhere, I'm sure
15:37 * jnthn home
15:41 sorear pmurias: I'll have to look more closely at whatever you did with coro.  Pity mildew doesn't work with gcc 4
15:48 wamba joined #perl6
15:48 mberends jnthn: the main 'struct sqlite3' is complicated, containing a nested struct, arrays and unions: http://www.sqlite.org/cgi/src/artifact/c​7e37ee49b1a922ddcd18fa98dd750efa4d2db14
15:50 mberends I like the notice at the beginning of every SQLite source file
15:50 mberends ** The author disclaims copyright to this source code.  In place of
15:50 mberends ** a legal notice, here is a blessing:
15:50 mberends **
15:50 mberends **    May you do good and not evil.
15:50 mberends **    May you find forgiveness for yourself and forgive others.
15:50 mberends **    May you share freely, never taking more than you give.
15:50 jnthn mberends: Well, nested struct is OKish
15:50 jnthn function pointers are trickier. :/
15:51 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...
15:54 jnthn :P
15:57 mberends jnthn: istr an array of int was the blocker when I tried to create Mini DBD::SQLite
15:58 jnthn mberends: OK. So we need compact arrays.
15:58 moritz agreed :-)
15:58 jnthn Patches welcome! :P
15:58 jnthn I mean, er, I'll try and get to it in the near future. :)
15:58 TimToady .oO(blobs)
15:59 jnthn (Yes, such things are on my radar anyway.)
16:01 TimToady o/ 理想
16:01 Tedd1 o/
16:03 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. http://irclog.perlgeek.de/parr​otsketch/2011-09-06#i_4382513
16:05 jnthn mberends: Are we still suffering from that?
16:05 mberends jnthn: yes, I think it stops MiniDBI from working with MySQL
16:06 jnthn *sigh*
16:06 jnthn I may just ignore Parrot NCI and do something at NQP level.
16:07 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".
16:07 mberends +1 to that
16:08 mberends 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.
16:09 mberends jnthn: ok, I get that.
16:09 jnthn Though it maybe could make Zavolaj's life easier.
16:09 sorear mberends: are you supposed to look inside struct sqlite3 at al?
16:10 mberends sorear: in some structs, yes, and in others, no
16:14 TimToady there's really a 4th great problem in CS, whether metadata should be transmitted in-band or out-of-band  :)
16:15 abercrombie 理想?
16:16 TimToady that's risou, who had just showed up
16:16 TimToady just guessing at the spelling, I am
16:17 TimToady /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? :)
16:17 abercrombie I see
16:18 TimToady When metadata is in-band, it's always obvious it should be out-of-band, and vice versa.
16:18 MayDaniel joined #perl6
16:19 TimToady see also "interesting values of undef" and the semipredicate problem
16:19 masak aye.
16:20 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 TimToady and it struck me as an inconstency
16:21 TimToady that is, it sounds like they've solved the 4th problem by saying "and" rather than "or"
16:21 TimToady *inconsistency
16:22 TimToady 'course, P6 is similarly inconsistent, I'm sure :)
16:22 TimToady and interesting values of undef are an attempt to have it both ways
16:23 TimToady we've hijacked undefinedness to let a data value claim "I'm really out-of-band!"
16:26 TimToady 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"?  http://perlmonks.org/index.pl?node_id=924618
16:27 Trashlord joined #perl6
16:29 daxim annoying, there are 3 modules for gather in perl5, but none for classify
16:34 masak write one!
16:42 kaare_ joined #perl6
16:54 Chillance joined #perl6
16:58 senobmeht joined #perl6
17:01 samlh joined #perl6
17:01 donri joined #perl6
17:04 Reaganomicon joined #perl6
17:27 jerome_ joined #perl6
17:28 Bucciarati joined #perl6
17:29 pmurias sorear: Coro adds coroutines to perl5 which allows us to save the whole p5 interpreter state
17:29 pmurias sorear: so that the runloops can interoperate properly
17:30 slavik1 joined #perl6
17:34 Bucciarati joined #perl6
17:43 pmurias sorear: why is the the Microsoft Public License in the niecza repo?
17:47 Bucciarati joined #perl6
17:58 Trashlord joined #perl6
18:02 donri joined #perl6
18:02 molaf joined #perl6
18:06 Bucciarati joined #perl6
18:25 pmichaud jnthn and others:  There's a working document at https://gist.github.com/1201282 that identifies Parrot and Rakudo priorities; comments welcomed.
18:25 aloha joined #perl6
18:26 jnthn pmichaud: Was just reading your comments on it :)
18:27 pmichaud jnthn: if you have any adjustments/additional rakudo-based notes to make, let me know
18:28 pmichaud (rakudo includes nqp here)
18:28 pmichaud I just did an update; whiteknight++ says that the impact of redoing PIR ops for calling conventions on Rakudo will be nil.
18:29 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.
18:30 masak whiteknight++ pmichaud++
18:30 jnthn So, the packfile loading stuff seems low...as you already have it :)
18:31 jnthn On 6model stuff: "Benefit to Rakudo: Rakudo would again be able to better use non-Rakudo and non-NQP libraries."
18:31 jnthn Not so fast! There's still a bunch of other issues (like, external objects !~~ Mu) that'd need looking at.
18:31 pmichaud from whiteknight on #parrot:
18:31 pmichaud 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
18:31 pmichaud do we have a strong need for sandboxing at the parrot level?
18:31 jnthn pmichaud: p6eval could maybe use it but... :)
18:32 jnthn It's not a priority in my eyes.
18:32 pmichaud mine either
18:32 jnthn "Far better interoperability between 6model and Class/Object for systems that want to use both." - urgh...the idea was to kill Class/Object.
18:33 PerlJam pmichaud: I like the way you hedge your bets with those conditional priorities :)
18:33 jnthn hmm, lemme mention that on #parrot
18:33 pmichaud I'll add that to the gist, also.
18:34 Su-Shee uhm how do I get a line number for some lengthy error message?
18:36 masak Su-Shee: CallFrame has a .line method
18:36 pmichaud PerlJam: (conditional priorities)   well, that was the best way to describe them.
18:37 pmichaud 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:38 flussence sandboxing...?
18:38 flussence rakudo: dir.say
18:38 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…
18:38 flussence there you go, a reason!
18:38 pmichaud flussence: yes, that seems to be the #1 cited reason.  I'm wondering about how important it is to rakudo development.
18:38 masak Su-Shee: uhm. I meant Backtrace::Fram, of course. see S32/Exception
18:39 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?
18:40 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 :/
18:41 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:42 jnthn use Foobar; Foobar.do_stuff
18:42 jnthn use doesn't imply inheritance. Just import.
18:42 jnthn Or we're using inherit to mean different things... :)
18:42 Su-Shee aaaah why didn't I just try that instead of just using it as illustration...
18:42 Su-Shee no,that's exactly what I meant.
18:42 pmichaud I need to grab some lunch -- bbiaw
18:43 jnthn oh, yeah, food
18:43 masak Su-Shee: even in Perl 5, useage doesn't imply inheritance.
18:46 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:47 masak Su-Shee: Perl 6 is supposed to be an improvement over Perl 5. why would we suddenly tie "use" to inheritance? :P
18:48 Su-Shee I wasn't asking for that, I didn't know "use" did still exist.
18:49 masak oh, ok.
18:49 masak it still exists. it works in much the same way. except that import is now to lexical scoped instead of to package scopes.
18:50 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 ;)
18:51 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:53 Su-Shee 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 samlh joined #perl6
18:53 masak you must 'use Foobar' before doing 'does Foobar'.
18:53 masak it's a rule.
18:53 Su-Shee *sigh* still? ok.
18:54 masak not going to change.
18:54 PerlJam Su-Shee: perl isn't *that* magical.
18:55 Su-Shee PerlJam: so it seems.
18:56 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:57 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...
18:58 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.
18:59 Su-Shee yes thank you I got it.
18:59 PerlJam Su-Shee: or ... all's fair if you pre-declare  :)
18:59 geekosaur where a module defines multiple small helper / wrapper classes
18:59 alester joined #perl6
19:00 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 #perl6
19:01 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.
19:01 masak is it OK to define roles in the same file? what about enums? constants?
19:02 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 Trashlord joined #perl6
19:02 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.
19:03 Su-Shee and I don't use nested classes, so I'm happy with an idiot's level of perl6 anyways. Use will be fine.
19:04 masak :)
19:04 masak 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.
19:05 masak 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. ;)
19:06 masak Su-Shee: do you sometimes define 'my' subs inside subs (or methods)? I do lately, and it's really nice.
19:07 masak Su-Shee: in Lisp, those would be "helper" functions.
19:09 espadrine joined #perl6
19:09 im2ee joined #perl6
19:10 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 bbkr joined #perl6
19:12 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␤»
19:12 masak see also the nested subs in http://strangelyconsistent.or​g/blog/june-25-2011-connect-4
19:17 mkramer joined #perl6
19:18 mkramer left #perl6
19:19 Su-Shee I think I've never used any sub in Perl 6, I've done everything in methods/classes/roles...
19:24 masak really? procedural programming can be very powerful.
19:24 masak only one of six games in the June blogging series was object-oriented.
19:25 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:26 masak I don't buy the premise of that.
19:26 masak it's not a strict evolution from procedural to OO, and then you ditch procedural.
19:26 masak OO is just a tool that you can employ when the scope of the problem welcomes that much structure.
19:26 Su-Shee I haven't even hinted that. I just said that more powerful procedural never was what I wanted perl 6 for..
19:27 masak I wanted Perl 6 for a lot of reasons.
19:27 masak more powerful procedural programming was one of them.
19:27 masak have you seen how nice multi-sub dispatch is in Perl 6? it's *really* nice. :)
19:29 masak 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␤»
19:29 masak rakudo: multi foo(Int) { say "outer foo called" }; { multi foo(Real) { say "inner foo called" }; foo 42 }; foo 42
19:29 p6eval rakudo fc57d1: OUTPUT«outer foo called␤outer foo called␤»
19:31 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  :)
19:32 Su-Shee PerlJam: yes. and I still hate that I have to use 2/3 in procedural and so on...
19:32 Su-Shee 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:34 Su-Shee @array->push I mean in 5.
19:35 benabik @array->push is nonsensical in p5, @array isn't an object.
19:35 Su-Shee benabik: yes. that's what I just said.
19:36 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 masak it's just syntax...
19:37 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 #perl6
19:38 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...
19:38 masak though if you look deeply enough, they're really the same.
19:38 Su-Shee masak: yes, I did.
19:39 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:40 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:41 lue hello planet o/ [he says to a screen full of text; backlogging]
19:42 TimToady planet o/ greets you in return
19:42 masak Su-Shee: you seem to have embraced OO much more fully than have I.
19:42 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:43 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?)
19:43 TimToady on what level are you asking?
19:43 PerlJam Su-Shee: https://github.com/perl6/book  ;-)
19:43 flussence perl6 level
19:44 TimToady there are multiple levels on the perl6 level
19:44 TimToady do you mean in definition or in use?
19:44 TimToady or in dispatchers, which is in the middle?
19:44 flussence use, I guess
19:45 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
19:45 masak flussence: when you go 'method', something registers in the metaclass.
19:45 TimToady that's on the def level, not the use level
19:45 masak right.
19:46 TimToady in the invocation level, there's no difference whatsoever, because they're all functions down under
19:47 TimToady 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 TimToady but as far as the underlying function is concerned, it's always there
19:47 TimToady there's also a basic philosophical difference
19:48 TimToady methods are defined by classes with delayed dispatch, therefore cannot change your current language
19:48 masak ooh, interesting.
19:48 TimToady subs are declared in a lexical scope, and pretty much always change your current language
19:49 TimToady if only by adding another name to it
19:49 masak a class changes your current language, though.
19:49 TimToady if it adds a name to your lexical scope, yes
19:49 TimToady but a class ain't a method
19:50 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.
19:50 lue To me, "sub"s are outside classes, "method"s inside [and "submethod"s are those things that I have no clue about]
19:50 jnthn Then it's still not a method.
19:50 moritz bbkr: it's not
19:50 jnthn :P
19:50 moritz but it would be an interesting problem to tackle
19:50 * 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.
19:50 moritz there's already a vtable destroy handler in 6model
19:50 Su-Shee lue: that sums it up what I know ;)
19:51 jnthn moritz: It doesn't call anything, though...
19:51 jnthn moritz: And there's always the possibility of resurrection
19:51 jnthn moritz: So it needs handling quite carefully. :)
19:51 jnthn moritz: Also there's no ordered destruction, so you may find that your attributes already got collected and freed. :(
19:52 jnthn 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?
19:52 masak yes, and I never felt that was an odd thing. :)
19:52 * [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.
19:53 masak Su-Shee: I don't always go for OO when procedural is enough.
19:54 samlh_ joined #perl6
19:54 bluescreen10 joined #perl6
19:54 * lue has never used P5, and so is naturally biased towards 6
19:55 masak right, but that doesn't equal being biased towards OO, IMO.
19:55 masak Perl 6 just happens to have nice OO. :)
19:55 Su-Shee masak: oh, me too. but I don't need Perl 6 for that, then Perl 5 with CPAN is just perfect.
19:56 TimToady if anything, it's slightly biased towards good FP
19:57 lue I actually dislike class-happy WTDI and try to avoid it as much as possible.
19:58 Su-Shee WTDI?
19:58 Su-Shee (OO is mostly role happy these days anyways.. ;)
19:59 lue Ways To Do It
19:59 PerlJam TimToady: you need to include a section in "Programming Perl 6" about excessive laziness.  :-)
20:00 lue [once in a blue moon I tend to use parts of TIMTOWTDI for abbreviations]
20:01 thou joined #perl6
20:01 donri joined #perl6
20:03 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"␤»
20:03 masak b: role Moon[$color] { method spot { say "look, a $color moon!" } }; given Moon["blue"].new -> $moon { $moon.spot }
20:03 p6eval b 1b7dd1: OUTPUT«look, a blue moon!␤»
20:04 pmichaud jnthn: ping
20:04 masak parametric roles in nom, I am disappoint.
20:05 colomon joined #perl6
20:05 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 :)
20:05 Su-Shee remove some of my german commas. ;)
20:06 lue More like ignored a decade [I've only been programming for, what, 6 yrs]
20:07 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
20:08 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
20:09 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 #perl6
20:09 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! :)
20:09 masak flussence: the "of WHAT" and "returning WHAT" is the thing you want parametric roles for :)
20:09 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
20:09 masak flussence: and it's not just containers and functions, it's a lot of things.
20:10 Su-Shee lue: read "object thinking". it's a great book.
20:10 moritz .oO( "object to thinking" )
20:11 masak lue: :: and inheritance are completely unrelated.
20:11 masak lue: I'd go so far as to say you shouldn't think of them as being similar.
20:12 masak (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
20:12 * lue feels he's be messed up by standard module naming and a fundamental misunderstanding there
20:13 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/)
20:13 benabik masak: Well, yes, but that's a limitation of Java.
20:13 tadzik good evening zebras
20:13 benabik masak: Python's  A.B.C?
20:13 lue good day tadzik o/
20:14 lue Today I learned I have completely misunderstood the meaning of :: in names :)
20:14 tadzik (:
20:14 tadzik it's like "'", right? :P
20:15 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:16 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:19 masak flussence: sounds about right. you pass arguments to the parametric role, just like you do to a routine.
20:19 masak flussence: the role then gets concrete with the help of those parameters.
20:19 donri joined #perl6
20:19 flussence where do those parameters end up? attributes?
20:20 masak role Foo[::T] { method bar(::T $x) { ... } }
20:20 masak the method .bar gets different types depending on what type parameter you pass in.
20:21 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 flussence (is it just a normal, scoped variable?)
20:22 flussence oh, it's the same thing as a function signature! I think I get it now.
20:28 masak it is. it's quite a nice unification.
20:28 masak and the parameters get used inside the role as, usually, type variables.
20:50 TimToady roles are really a kind of hygienic type macro, if you squint
20:52 * masak .oO( parametric roles *in* macros... )
20:53 masak ha ha, some poor sod is going to have to implement those!
20:53 masak oh wait.
20:59 tadzik :D
21:00 masak I'm going to need a spare brain.
21:02 bluescreen10 joined #perl6
21:02 dalek specs: 3cb17ce | moritz++ | S02-bits.pod:
21:02 dalek specs: [S02] remove unexplained usage of "idfirst"
21:02 dalek specs:
21:02 dalek specs: rir++ asked at http://www.perlmonks.org/?node_id=924669 what "idfirst"
21:02 dalek specs: means, and I guess the answer is that simple.
21:02 dalek specs: review: https://github.com/perl6/specs/commit/3cb17ce91c
21:03 M_o_C joined #perl6
21:05 wallberg joined #perl6
21:12 diakopter .
21:13 diakopter lol spare brain
21:14 * diakopter read that as bare sprain
21:14 diakopter ETOOMUCHCOFFEE
21:15 moritz sparse brain? :-)
21:20 prammer joined #perl6
21:21 masak diakopter: I meant "I need a bear, Spain."
21:22 diakopter that one I definitely read as beer
21:22 diakopter sorry for my bad reading
21:23 * lue 's in blog mode
21:25 masak diakopter: maybe I'm not typing decisively enough...
21:27 diakopter haha strongly typing
21:27 masak 哈哈
21:29 * diakopter working with perl and hdfs lately
21:31 diakopter 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 diakopter stat operations are obscenely slow on both though.
21:32 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␤»
21:32 masak \o/
21:34 diakopter does that work in niecza also
21:35 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␤»
21:35 masak yes :)
21:38 samlh joined #perl6
21:39 lue blog post!  https://rdstar.wordpress.c​om/2011/09/07/p6-isnt-pv6/
21:40 abercrombie joined #perl6
21:42 * diakopter finally gets that Camelia contains "Camel"
21:43 masak :)
21:43 daniel-s joined #perl6
21:43 benabik It does?  …  It does!
21:43 * flussence goes and uses that file as pod2html test input
21:44 flussence yay, not-completely-unreadable output!
21:44 im2ee So. It's time for me. Good night! :)
21:45 lue \o/
21:45 lue good night, im2ee o/
21:45 tadzik im2ee: o/
21:46 tadzik lue: I feel the need to read this once I'm sober again :)
21:46 masak lue: the feminine form of "frood" is "frood".
21:47 lue Thought so, I just had an idea it should be "fraad" or some such :)
21:48 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.
21:48 lue (or "froodette")
21:48 masak it's definitely not "froodette".
21:48 diakopter froodress
21:49 masak aaaugh
21:49 benabik …  string xor?
21:49 masak benabik: well, buffer xor, really.
21:49 jnthn .oO( froodka? )
21:49 benabik masak: That makes more sense.
21:49 lue masak: I'm aware of that, I just have the perception that Perl6 is more like C++ than a new version of C
21:49 tadzik froodka makes more sense? Certainly
21:50 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 masak lue: it was also a re-implementation of the engine from the ground up.
21:51 masak some people complained that it would be too slow compared to Perl 4.
21:53 flussence similar thing happened with PHP 5... except a lot of people decided to stick with 4 there until it was EOL'ed
21:54 lue nodnod. From wp, Perl 4 -> Perl 5 seemed to take only a couple of years though.
21:55 lue I feel this time 'round (5->6), Perl 6 is taking *much* longer to have a passing implementation (and therefore be "Perl 6")
21:56 * flussence checks that graph thing again...
21:57 flussence we're about two-thirds of the way there, going by these numbers...
21:57 mberends joined #perl6
21:57 tadzik well, beijing passes almost all of those, and it doesn't make it complete
21:58 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...)
21:59 abercrombie flussence: Can you point me to the graph?
22:00 flussence https://github.com/flussence/specgraph​s/blob/master/output/rakudo-tests.png - hasn't been updated in a few days...
22:00 masak 'night, #perl6 knights
22:00 tadzik g'night Carl
22:00 masak dream of peaceful relations between all VMs and language implemenations.
22:04 abercrombie Does it mean that nom has implemented 3/5 of the full feature?
22:04 tadzik 3/5 of what master does
22:05 benabik s/master/beijing/ ?
22:05 benabik :-D
22:05 abercrombie Oh. And the optimization things will not get displayed in the graph, right?
22:05 tadzik yeah, whatever :)
22:05 tadzik abercrombie: what do you mean by that? Performance?
22:05 flussence no optimisation things here, this is just a pass/fail graph, no time data
22:06 abercrombie Like parallel processing
22:06 flussence (OTOH, the spectest archives *do* have start/end timestamps in them...)
22:09 TimToady diakopter: it also contains "Amelia", the name of the Perl 5 camel, named after Amelia Peabody, the famous egyptologist
22:39 diakopter oh
22:47 envi_laptop joined #perl6
23:38 plobsing joined #perl6
23:41 whiteknight joined #perl6
23:45 pmichaud I'm drafting a reply to dukeleto's parrot-dev message; anyone want to review/comment before I send it?
23:50 flussence perl6: sub foo { state $a = 0; say $a++ }; foo; foo
23:50 p6eval pugs, rakudo fc57d1: OUTPUT«0␤0␤»
23:50 p6eval ..niecza v9-10-g678102e: OUTPUT«0␤1␤»
23:50 flussence b: sub foo { state $a = 0; say $a++ }; foo; foo
23:50 p6eval b 1b7dd1: OUTPUT«===SORRY!===␤"state" not yet implemented at line 22, near "= 0; say $"␤»
23:51 TimToady niecza has it correct
23:51 pmichaud actually, I guess I'll just send and then let people comment there.
23:51 TimToady pmichaud: I can look at it
23:51 flussence I think current rakudo should at least be giving that error, not misimplementing it :/
23:51 pmichaud ...but state *is* supposedly implemented in rakudo.
23:52 TimToady well, the difficulty is likely the lack of START semantics on the =
23:52 pmichaud TimToady: http://gist.github.com/1202206
23:52 TimToady looking
23:52 jnthn TimToady: Yes, that's a problem still.
23:53 wolfman2000 joined #perl6
23:54 TimToady did you mean s/moritz/jnthn/?
23:54 pmichaud no, moritz++ is the other relationship manager for Rakudo<->Parrot
23:55 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
23:55 TimToady depends on how you take 'are coming from'
23:55 pmichaud right.
23:56 pmichaud reworking.
23:56 TimToady and the prev paragraph sets up a lit-crit interpretation of timeless
23:58 TimToady other than that, seems clear
23:59 TimToady the exchange also makes me wonder whether rakudo should start thinking about targetting JS directly :)
23:59 pmichaud http://gist.github.com/1202214  # updated based on TimToady++ remarks

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo