Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-04-13

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:03 lestrrat joined #perl6
00:19 wolfman2000 joined #perl6
00:36 thou joined #perl6
00:58 sorear good * #perl6
01:02 scott__ joined #perl6
01:06 benabik joined #perl6
01:35 liuchong joined #perl6
01:39 japhb sorear, Does niecza interpret an AST or an internal bytecode or does it generate CLR bytecode and then run that?
01:43 _jaldhar joined #perl6
01:43 * japhb wonders if he has asked that question before ... feels like yes
01:44 sorear japhb: it creates CLR bytecode.
01:47 japhb sorear, OK, thank you.
01:57 colomon o/
02:03 sorear o/ colomon
02:13 oiig_ joined #perl6
02:14 orafu joined #perl6
02:25 jferrero joined #perl6
02:27 xinming_ joined #perl6
03:00 kaleem joined #perl6
04:01 cognominal_ joined #perl6
04:21 mucker joined #perl6
04:21 fgomez joined #perl6
04:25 mucker joined #perl6
04:30 mucker joined #perl6
04:44 kaleem joined #perl6
05:03 snarkyboojum joined #perl6
05:34 zeus2012 joined #perl6
05:36 zeus2012 hello
05:36 sorear hello, zeus2012, and welcome
05:36 moritz \o
05:37 zeus2012 thanks
05:39 birdwindupbird joined #perl6
05:40 Sorian what its means perl6?
05:40 sorear perl6 is a proper noun
05:40 sorear it means itself
05:41 sorear it is a name for an abstract thing
05:41 Sorian :>
05:41 sorear it means http://perlcabal.org/syn/
05:42 Sorian ok
05:43 sorear if there is another language you would rather use, ask around
06:27 cognominal joined #perl6
06:35 NamelessTee joined #perl6
06:39 cognominal joined #perl6
06:39 Sorian left #perl6
06:41 tarch joined #perl6
06:46 cognominal joined #perl6
06:48 scottp joined #perl6
07:03 brrt joined #perl6
07:04 fhelmberger joined #perl6
07:13 fgomez joined #perl6
07:26 fglock_ joined #perl6
07:45 masak morning, y'all.
07:46 tadzik morning masak-san
07:47 sorear o/ masak
07:53 mathw o/
07:58 masak std: my $a = 42 but method foo { say "OH HAI" }
07:58 p6eval std 1ad3292: OUTPUT«Potential difficulties:â�¤  'method' declaration outside of class at /tmp/0kilp_avOj line 1:â�¤------> [32mmy $a = 42 but method foo [33mâ��[31m{ say "OH HAI" }[0mâ�¤ok 00:00 43mâ�¤Â»
07:58 masak aww :)
07:58 masak but makes sense, I guess.
07:58 masak some syntactic sugar isn't worth it.
08:11 mathw probably not
08:11 mathw you can always do that with a role
08:11 mathw but it would have a certain appeal... although probably limited use in the real world
08:12 mathw although where you did want it, yo uwould miss it
08:13 * masak finds it very cute that jaffa4 thinks ([**] 1,2,3,4) should give "some other value" than 1 :)
08:14 masak std: my $a = 42 but my method foo { say "OH HAI" }
08:14 p6eval std 1ad3292: OUTPUT«ok 00:00 43m␤»
08:14 tadzik multiply! twice! :)
08:14 masak <jaffa4> is it not power?
08:14 masak "damn, I keep exponentiating and nothing happens!"
08:16 masak moritz: also, I think you're tilting at windmills trying to send jaffa4 to Sxx. or, let's just say the prior for it working at all is rather low at this point.
08:20 mathw last I checked, 1 to the power of anything was 1
08:21 mathw that is still, true, right?
08:21 masak yes, that is still true.
08:22 mathw good
08:22 tadzik whew, I though somebody lied to me again. It has happened twice already
08:22 mathw I haven't forgotten *all* my maths :)
08:22 tadzik "you can't take a square root of a negative number" and "you can't divide by zero"
08:22 tadzik r: say sqrt(-2); say 1/0
08:22 p6eval rakudo 3bd91f: OUTPUT«NaN␤Inf␤»
08:22 tadzik oh well
08:22 tadzik r: say i * i
08:22 p6eval rakudo 3bd91f: OUTPUT«-1+0i␤»
08:22 masak tadzik: I used to be a big fan of 1/0 == Inf. not so much anymore. :)
08:23 mathw I always thought it was logical, but it also isn't
08:23 mathw it is if you only look at division
08:23 tadzik It always sounded fishy to me
08:23 mathw but it breaks the relationship with multiplication
08:23 mathw because 0 * Inf == 0
08:23 masak the real answer is that you can't divide by 0 :)
08:23 masak mathw: nope.
08:23 masak p6: say 0 * Inf
08:23 p6eval pugs, rakudo 3bd91f, niecza v15-6-gefda208: OUTPUT«NaN␤»
08:23 * mathw blinks
08:23 mathw but 0 is the zero of multiplication!
08:23 mathw argh
08:23 masak mathw: they "tie" and you can't really say anything about the result.
08:23 mathw infinity makes my head hurt
08:24 sorear Just remember that it has nothing to do with math and you'll be all right.
08:24 mathw the mathematicians who study it might disagree
08:24 masak mathw: did you ever look into א_0 and א_1? it's great stuff.
08:24 mathw but at the moment I'm more inclined to worry about SQL
08:25 sorear Infinity was created by Kahan et al at Intel as a practical convenience to programming and making out-of-range computations DWIM
08:26 sorear mathw: Mathematical infinities?  I know of three common ways to define that, and two more uncommon ones, and none of them are the one IEEE uses
08:27 sorear when mathematicians adjoin a limited number of infinities to a continuous number system, they usually just add one - this allows all four arithmetic operations to be continuous everywhere
08:28 sorear in, say, complex analysis, it's very convenient to just say: "f is rational, so it must be continuous everywhere"
08:29 kaleem joined #perl6
08:30 masak sorear: the real projective line has but one infinity, but surely the ordinary real number line has +∞ and -∞ distinct?
08:30 sorear The ordinary real number line does not have any infinities.
08:31 masak fair enuf.
08:31 sorear The sequence 1, 2, 3, 4, ... does not have a limit
08:31 masak right.
08:31 masak "infinity is not a number"
08:31 bonsaikitten amusingly 2,4,6,8 ... has the same amount of items as 1,2,3,4...
08:32 moritz any countable, infinite sequence has the same number of items as 1, 2, 3, 4 ...
08:33 mathw whereas it's impossible to even write the first two elements of an uncountably infinite sequence
08:33 bonsaikitten yup :) people intuitively dislike that
08:34 * bonsaikitten likes aleph_0 sized infinities
08:34 masak mathw: how then is it a sequence?
08:34 moritz mathw: that's not true
08:34 sorear 0, 1
08:34 sorear I just wrote the first two elements of Ord
08:34 moritz mathw: you can define the sequence 1, 2, 3, {all real numbers > 3)
08:34 sorear which is so big, it's *not even a set*
08:34 sorear larger than every definable cardinal, etc
08:35 mathw moritz: cheat :P
08:35 moritz mathw: "cheating is technique" # http://hpmor.com/chapter/78
08:36 masak cheating would imply breaking the rules, not using them creatively.
08:37 moritz well, s/cheating/hacking/ then :-)
08:37 sorear in mathematics, unlike law, what you see is what you get
08:38 * sorear thinks the Loewenheim-Skolem paradox is relevant here
08:39 mathw This channel's so smart, when you're all bored with Perl 6 how about you design a database system that doesn't suck/
08:39 sorear I have this weird sense of self-conciousness trying to prevent me from using ordinals in public
08:40 * moritz is rather happy with postgres
08:40 sorear like I'd be showing off in a bad way or something
08:40 * sorear knows happy postgres users
08:40 moritz sorear: it's ok to use ordinals in public, if you're in the presence of the right kind of people
08:41 arnsholt I'm reasonably happy with Pg
08:41 bonsaikitten mathw: that's subjective, what would be needed to make you happy?
08:41 arnsholt But SQL is generally a bad fit for general object storage though, which is a bit of a shame
08:42 moritz (maybe we can expose nqp's/rakudo's bounded serialization to the userspace?)
08:43 arnsholt moritz: That'd be cool. Would hopefully make things like Storable relatively simple
08:44 mathw SQL really annoys me
08:44 frettled masak: Your latest blog entry appears to be made tomorrow :)
08:44 tadzik :>
08:44 sorear I am highly dubious about the possibility of using bounded serialization effectively for storing user data
08:44 mathw It's powerful, but it's also really dumb
08:44 moritz frettled: and it was made a month ago :-)
08:44 sorear frettled: it has for a few months
08:44 arnsholt mathw: SQL syntax really annoys me. I don't particularly mind the semantics though
08:45 sorear SQL syntax is just stupid
08:45 mathw I do think some of what I'm doing at the moment is a bad fit for an SQL database though
08:45 sorear especially the quoting rules
08:45 frettled moritz: It looks as if you will be staying at my place during the hackathon, and I look forward to seeing you in a week :)  Are there any allergies or special needs I need to be aware of?
08:45 moritz sorear: why? (re bounded serialization)
08:45 mathw it fits in what we understand to be relational theory, but that's not the same thing as what SQL Server does
08:45 frettled sorear: ah, I haven't looked at Planet Perl Six in a long time, haha :O)
08:46 sorear moritz: too fragile, binds the data too closely to the program
08:46 sorear moritz: IME one of the killer features of Storable is that you can modify the classes and load the same data
08:46 sorear and load the same data in different but related programs
08:47 sorear it seems very tricky to make that work in an environment where the default behavior is to serialize HOW
08:47 sorear (yes, boundedness ameliorates this partially.  I still am nervous.)
08:49 moritz well, how do other languages solve that problem? languages where objects aren't just glorified hashes, that is
08:50 masak oh, this is cute: http://en.wikipedia.org/wiki/Division_by_zero#Early_attempts -- it's a bit like liquid spec, where a logical blunder like 0/0 == 0 can creep in because things are untested. :)
08:50 masak frettled: oh thank Bog it's tomorrow. then I won't have to be ashamed anymore.
08:51 sorear moritz: every language I know of that has a general-purpose serialization facility saves object types using something like a name
08:52 sorear I know that "50 million Frenchmen cannot be wrong" is not a sound argument, but still
08:52 mathw serialisation always worries me
08:52 frettled masak: hee-hee
08:53 mathw I can see that it has a use where things like Windows Communication Foundation use it (although that does make it rather harder for hte other end to not be written in .NET) but for long-term storage... it's easy, but some of the implicationsa re not
08:53 moritz sorear: maybe we can introduce by-name lookup mode for some boundaries for user-space serialization
08:55 masak wow, a divide-by-zero once knocked out the propulsion system of a Ticonderoga-class cruiser: http://en.wikipedia.org/wiki/USS_Yorktown_(CG-48)#Smart_ship_testbed
08:56 sorear masak: Didn't we lose the Arianne 5 to an exception-throwing division?
08:56 moritz masak: since 1/0 is infinite, it can nock out arbitrary large ships :-)
08:56 moritz sorear: the problem with Arianne 5 was an overflow
08:57 sorear I don't think the USS_Yorktown *EXPLODED* after dividing by zero
08:57 masak moritz: :P
08:57 masak sorear: no, it was just dead in the water.
08:57 tadzik that would've been so holywood-y
08:57 masak exploding due to a divide-by-zero sounds... what tadzik said :)
08:57 moritz sorear: they reused the software of the Arianne 4, but v5 had more power, accelerated faster, and thus produced an overflow in some accumulator
08:57 tadzik imagine this. The Division, by Steven Spielberg
08:58 moritz sorear: the overflow was detected, error messages emitted. The receiver module wasn't programmed to receive error messages, interpreted them as flight data
08:58 tadzik Starring Georg Cantor
08:59 moritz wrongly detected a huge deviation from the should-be course, initiated counter measures
08:59 tadzik "When you have only yourself to count on"
08:59 masak tadzik: "The empty set gets in everywhere. Be very afraid."
08:59 sorear hey, I'm headed towards the ground, self destruct now before I annihilate some innocent city
08:59 bbkr Bruce Willis in "Divide hard"
08:59 moritz which were so sever that they threatened to break the rocket. A consistency checker noticed, and activated self-destruction
09:00 masak lovely.
09:00 moritz (at least that's the story a professor told us in our class on software verification)
09:00 sorear although iirc the self-destruct produced enough infrared radiation to melt car windows in one of the observation lots
09:00 moritz that would greatly surprise me
09:01 moritz sounds more like a nuclear explosion would be required for that, considering that it was already quite a bit up in the air
09:02 sorear https://en.wikipedia.org/wiki/Ariane_5_Flight_501
09:03 sorear moritz: yeah, it greatly suprised me - someday I should factcheck that
09:03 masak the value that overflowed was "horizontal bias".
09:04 estrabd joined #perl6
09:04 * fglock_ finds more funny perl5 variable syntax: ' $ {!} ', ' @ {+} ', ' $#{+} ', ' @{ x ->[10] } ', ' ${v {int} -> {t}} '
09:04 sorear anyways. tadzik. hollywood explosion caused by software bugs
09:05 sorear as opposed to the Therac-25 incidents, which were worse but less photogenic.  Also not related to the concept of infinity.
09:05 moritz fglock: yes, the fun of allowing space after sigil
09:07 fglock_ except when it is not allowed: ' $# {+} ', ' $ #{+} ', ' @ { + } ' are syntax errors
09:08 moritz how... intuitive.
09:09 masak sorear: skimming the Wikipedia article, I get the impression that it wasn't so much a single error that caused it, but just bad software design.
09:11 estrabd joined #perl6
09:11 tadzik sorear: indeed. Now we only need to add a nuclear warhead onboard, a spacraft flying towards Washington and Bruce Willis on a jetpack trying to fix the onboard computer and we've got a movie
09:11 moritz tadzik: you forgot the love story
09:11 tadzik oh, right
09:12 sorear a movie about a rocket that explodes without warning wouldn't work, I think
09:12 tadzik yeah
09:12 sorear you need to have a long drawn-out crisis
09:12 tadzik you've got to have this long flight and the disturbing ticking noise on the radar
09:13 sorear unless it's a scathing documentary on avionics software QC practices
09:13 sorear I might watch that
09:15 mathw it has to be linked somehow to someone's attempts to make another person look bad because they were promoted over them
09:15 mathw and there also has to be a coverup for a journalist to get killed trying to expose
09:15 mathw which means there absolutely has to be nuclear material on the rocket
09:15 tadzik and a cold war reference
09:15 spider-mario joined #perl6
09:15 tadzik because it never gets old
09:16 bonsaikitten masak: it was good design, just that someone took a shortcut and thus made all the assumptions and checks invalid
09:16 tadzik . o O ( it never gets cold )
09:16 moritz and the person that they try make look bad is the woman that Bruce Willis falls in love with
09:16 bonsaikitten sorear: it's not the avionics software I fear, it's the hardware ... the stories I've heard make me wonder why there are so few failures in airplanes
09:18 moritz considering that there are rumors that you can remotly log in with telnet (!) on the flight control system and tune the engines, I'm worried about the software too.
09:18 bonsaikitten moritz: as long as some components have failure modes that are best described at "rapid loss of structural integrity" ... eh, no worries ;)
09:19 moritz bonsaikitten: as long as the auto destruction is triggered in a timely matter, no worries :-)
09:20 bonsaikitten I kinda like having both wings attached to the plane
09:20 bonsaikitten I'm conservative ;)
09:21 daxim joined #perl6
09:21 moritz "self-destructing safety vests are under your seat"
09:23 jnthn morning
09:23 tadzik hello
09:24 moritz \o jnthn
09:25 masak jnthn! \o/
09:33 frettled jnthn: o/
09:33 fglock_ heh - I've hacked -MO=Deparse in perlito5:
09:33 fglock_ $ node perlito5.js -Isrc5/lib -MO=Deparse -e ' say "works!" while 1 '
09:33 masak nice. fglock_++
09:33 fglock_ it emits perl5 from the AST
09:34 masak &say wouldn't work with -e in vanilla perl :)
09:34 masak but I guess you're free from such back-compat constraints.
09:34 kresike joined #perl6
09:34 fglock_ sure - it compiles to: Perlito5::Runtime::say('works!')
09:35 masak heh.
09:38 fglock_ http://pastebin.com/542jzNbh
09:42 kaleem joined #perl6
09:42 tadzik nice
09:44 spider-mario joined #perl6
09:47 masak r: say <a b c d e>.kv.invert.perl
09:47 p6eval rakudo 3bd91f: OUTPUT«Method 'invert' not found for invocant of class 'List'␤  in block <anon> at /tmp/QqHmWorf4f:1␤␤»
09:47 masak r: say <a b c d e>.kv.hash.invert.perl
09:47 p6eval rakudo 3bd91f: OUTPUT«("a" => "0", "b" => "1", "c" => "2", "d" => "3", "e" => "4").list␤»
09:47 masak r: say <a b c d e>.kv.hash.perl
09:47 p6eval rakudo 3bd91f: OUTPUT«("0" => "a", "1" => "b", "2" => "c", "3" => "d", "4" => "e").hash␤»
09:50 cj joined #perl6
10:23 tarch joined #perl6
10:30 masak r: say (my %).push(<a 1 a 2 a 3 b 4 b 5 c 6 c 7>).perl
10:30 p6eval rakudo 3bd91f: OUTPUT«("a" => ["1", "2", "3"], "b" => ["4", "5"], "c" => ["6", "7"]).hash␤»
10:30 masak \o/
10:32 Psyche^ joined #perl6
10:34 lestrrat joined #perl6
10:36 NamelessTee joined #perl6
10:43 thelazydeveloper joined #perl6
11:01 brrt left #perl6
11:15 flussence this seems like a very PHPish thing to do: http://lwn.net/Articles/491788/
11:20 lichtkind joined #perl6
11:23 lichtkind moritz:  ?
11:24 masak flussence: isn't this the same security issue that Perl fixed 10 years ago?
11:24 masak lichtkind:  ¿
11:25 flussence masak: yes, and here the security fix is "off by default for compatibility reasons"...
11:25 masak the only one who gets away with restricting his communication to a single question mark is Victor Hugo. :)
11:26 masak flussence: I found that odd too.
11:26 jnthn huh, the compatibility reason seems to be "people relied on hash iteration ordering"...
11:26 jnthn (disclaimer: only skimmed it...)
11:28 masak wtf
11:28 jnthn Makes me want to ensure we deliberately "break" such code every Rakduo release. :)
11:28 masak how can you *rely* on hash iteration ordering?
11:29 jnthn "Historically, dict iteration order has not changed very often across"
11:29 jnthn releases and has always remained consistent between successive executions of
11:29 jnthn Python. Thus, some existing applications may be relying on dict or set ordering.
11:30 flussence speaking of which, maybe rakudo should be randomising its hash iteration...
11:30 flussence r: .gist.say for {a=>1,b=>2,c=>3};
11:30 p6eval rakudo 3bd91f: OUTPUT«("a" => 1, "b" => 2, "c" => 3).hash␤»
11:30 flussence r: .gist.say for {a=>1,b=>2,c=>3}.kv;
11:30 p6eval rakudo 3bd91f: OUTPUT«a␤1␤b␤2␤c␤3␤»
11:31 flussence r: .gist.say for {a=>1,b=>2,c=>3}.hash;
11:31 p6eval rakudo 3bd91f: OUTPUT«"a" => 1␤"b" => 2␤"c" => 3␤»
11:31 jnthn It should be, I think...
11:31 jnthn Though may need a bigger hash.
11:32 flussence r: .gist.say for {'a'..z' X 1..*}.hash;
11:32 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
11:32 flussence r: .gist.say for ( 'a'..z' X 1..* ).hash;
11:32 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2␤»
11:32 flussence oh, oops
11:32 jnthn missing '
11:32 flussence r: .gist.say for ( 'a'..'z' X=> 1..* ).hash;
11:32 p6eval rakudo 3bd91f: OUTPUT«(timeout)»
11:32 flussence /facepalm
11:32 flussence r: .gist.say for ( 'a'..'z' Z=> 1..* ).hash;
11:32 p6eval rakudo 3bd91f: OUTPUT«"a" => 1␤"b" => 2␤"c" => 3␤"d" => 4␤"e" => 5␤"f" => 6␤"g" => 7␤"h" => 8␤"i" => 9␤"j" => 10␤"k" => 11␤"l" => 12␤"m" => 13␤"n" => 14␤"o" => 15␤"p" => 16␤"q" => 17␤"r" => 18␤"s" => 19␤"t" => 20␤"u" => 21␤"v" => 22␤"w" => 23␤"x" => 24␤"y" => 25␤"z" => 26␤»…
11:34 flussence n: .gist.say for ( 'a'..'z' Z=> 1..* ).hash;
11:34 p6eval niecza v15-6-gefda208: OUTPUT«"z" => 26␤"y" => 25␤"x" => 24␤"w" => 23␤"v" => 22␤"u" => 21␤"t" => 20␤"s" => 19␤"r" => 18␤"a" => 1␤"b" => 2␤"c" => 3␤"d" => 4␤"e" => 5␤"f" => 6␤"g" => 7␤"h" => 8␤"i" => 9␤"j" => 10␤"k" => 11␤"l" => 12␤"m" => 13␤"n" => 14␤"o" => 15␤"p" => 16␤"q" => 17␤»…
11:34 flussence ?!
11:36 moritz lichtkind: !
11:36 moritz n: say ( 'a'..'z' Z=> 1..* ).hash;
11:36 p6eval niecza v15-6-gefda208: OUTPUT«{"a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5, "f" => 6, "g" => 7, "h" => 8, "i" => 9, "j" => 10, "k" => 11, "l" => 12, "m" => 13, "n" => 14, "o" => 15, "p" => 16, "q" => 17, "r" => 18, "s" => 19, "t" => 20, "u" => 21, "v" => 22, "w" => 23, "x" => 24, "…
11:37 moritz n: say ( 'a'..'z' Z=> 1..* ).hash.list;
11:37 p6eval niecza v15-6-gefda208: OUTPUT«"z" => 26 "y" => 25 "x" => 24 "w" => 23 "v" => 22 "u" => 21 "t" => 20 "s" => 19 "r" => 18 "a" => 1 "b" => 2 "c" => 3 "d" => 4 "e" => 5 "f" => 6 "g" => 7 "h" => 8 "i" => 9 "j" => 10 "k" => 11 "l" => 12 "m" => 13 "n" => 14 "o" => 15 "p" => 16 "q" => 17␤»
11:37 lichtkind moritz: could you install an gitit wiki instance?
11:37 lichtkind so we can test it if it really works as interface between git and wiki world
11:39 moritz lichtkind: if it's for testing the software, can't you do it on your own machine?
11:39 lichtkind true
11:40 moritz lichtkind: I'm happy to install it when you actually want to use it, but I don't want to install more than necessary on that box
11:56 lichtkind moritz: it sounds like "the right thing to go"(tm) but i think i should test it first
11:57 lichtkind i think i start by torturing the official gitit wiki to look how to break the syntax limits
12:05 _jaldhar joined #perl6
12:15 bluescreen10 joined #perl6
12:39 stepnem joined #perl6
12:41 pernatiy joined #perl6
12:47 masak p6: my int $x; say $x
12:47 p6eval pugs: OUTPUT«int␤»
12:47 p6eval ..niecza v15-6-gefda208: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed my at /tmp/AB_LNFxJ8R line 1:�------> [32mmy[33m�[31m int $x; say $x[0m��Parse failed��»
12:47 p6eval ..rakudo 3bd91f: OUTPUT«0␤»
12:47 masak lol Pugs u so rong
12:47 jnthn Pugs cna't possibly be right
12:48 mikec nice
12:48 jnthn Why an int type object exists, you can't store it in something of type "int"
12:48 tokuhirom joined #perl6
12:48 masak right.
12:48 masak a natively typed container can't encompass the corresponding type object.
12:49 moritz jnthn: which branch of zavolaj should we use these days? master or v2?
12:49 arnsholt moritz++ # I'd completely forgotten about that
12:51 jnthn v2 became master, iirc
12:51 jnthn Well, was merged into
12:51 jnthn v2 was "make it work on nom"
12:52 moritz oh indeed
12:52 moritz there just isn't any merge commit, seems to have been a fast-forward merge
12:52 jnthn yeah, it was merged, it was...right.
12:52 moritz should I delete v2 to avoid confusion?
12:52 jnthn So, feel free to remove v2 branch to...yes ;)
12:53 moritz done
12:54 PacoAir joined #perl6
12:54 masak moritz++
12:56 moritz jnthn: oh, and have you tested the osx-fix branch on windows?
12:56 moritz seems to work fine on OS X and linux
12:57 birdwind1pbird joined #perl6
12:57 bluescreen10 joined #perl6
12:58 jnthn moritz: I seem to recall testing something recently
12:58 Psyche^ joined #perl6
12:59 jnthn Maybe search irclog for me and osx-fix :)
12:59 jnthn Can't run a test rihgt now, at $client
13:00 moritz broken irclog search is broken :/
13:00 moritz ah well
13:00 moritz no hurry
13:01 mucker left #perl6
13:02 jnthn Wait, it looks like the osx-fix branch is merged already
13:02 jnthn Well, was a fastforward...
13:02 GlitchMr joined #perl6
13:02 moritz eeks
13:02 * moritz hates that
13:03 moritz ok, killing that branch too
13:03 jnthn yeah, it's coming back to me now...I think I tested it and merged it.
13:06 moritz ok, there's just one branch remaining besides master, and that's out_params. Which isn't merged.
13:07 bbkr there are still some warnings when running test suite for NativeCall on newest XCode, I'll post them in issues after finishing $dayjob
13:08 moritz some of the new clang warnings are quite "funny"
13:09 moritz for example clang warns about assignment in an if-condition. Nothing wrong with that, but the way to disable the warning is to double the parens, if ((x = something() )) { ... }
13:09 moritz now they warn whenver one doubles the parens around something that is not an assignment. Which is... not very helpful
13:12 timotimo haha
13:12 timotimo that's amusing
13:14 moritz it's a meta warning: "doing this might limit our ability to warn"
13:14 moritz timotimo: it's only amusing as long as you're not on the receiving end of the bug reports complaining about build warnings :-)
13:14 timotimo can you disable *that* warning? ;)
13:17 moritz probably. But that requires clang-specific code then :/
13:21 lichtkind joined #perl6
13:30 leprevost joined #perl6
13:42 skids joined #perl6
13:59 JimmyZ joined #perl6
14:16 cognominal joined #perl6
14:20 JimmyZ aloha
14:21 moritz o/
14:22 LylePerl joined #perl6
14:25 masak JimmyZ: 你好
14:26 JimmyZ 麦高下午好
14:30 masak 你记得我的名字。爽。
14:30 JimmyZ 呵呵
14:30 masak :)
14:30 daxim 嘿,哥们儿
14:31 JimmyZ 大家好
14:31 masak 好的。
14:32 JimmyZ daxim 在澳大利亚?
14:33 daxim 奥地利
14:33 tadzik zażółć gęślą jaźń!
14:33 JimmyZ daxim:  中国人  ?
14:34 * masak was just gonna suggest 奥地利 based on whois info
14:34 daxim 不是
14:34 masak JimmyZ: 如果他是不是中国人,他怎么能使用中国文字! :P
14:37 masak s/是//
14:38 daxim http://www.flickr.com/photos/shijialee/3939723417/in/datetaken/
14:39 JimmyZ daxim: 那个穿 perlchina 衣服的是你?
14:41 birdwindupbird joined #perl6
14:42 masak oh, I had forgotten how elegant and beautiful 中文 is.
14:43 masak "[that one wearing perlchina clothes]-NP is you?"
14:43 daxim 他是 perlchina.org/bjpw 的 Qiang - 我是那个欧洲人
14:43 JimmyZ oh
14:43 masak hehe
14:43 daxim 啊 哦
14:45 JimmyZ daxim: 你的中文不错哦,我还以为你是中国人呢,呵呵
14:46 daxim 哪里,哪里…… :)
14:46 masak :D
14:46 * masak would like to be able to pull that off at some point :)
14:48 masak 我的中文错得不得了 ^^
14:48 JimmyZ masak: http://perlchina.org/
14:48 JimmyZ masak: which likes perl.org
14:49 masak indeed.
14:49 masak woot.
14:51 masak tadzik: that be the "yellow the goose's self-awareness" one? :)
14:51 tadzik aye :)
14:52 masak it's a hoot to pronounce. takes me like 7 seconds, far too long.
14:53 tadzik hehe
14:53 * masak gets a frightening vision of Lingua::Polishgata
14:53 snearch joined #perl6
14:53 tadzik huh, I have no idea how to write the pronounciation using english letters
14:55 masak why would you want to?
14:55 masak Polish lettering is optimized for Polish sounds.
14:56 tadzik Oh Geez, we _have_ to have that!
14:56 tadzik https://gist.github.com/2377441
14:56 tadzik that's from #maemo
14:57 tadzik I mean, it's not particulary useful if you know Perl, but it's awesome nonetheless :)
14:58 masak we could try it out. it has to be very non-noisy.
14:58 tadzik aye
14:58 masak massive kudos if it manages to work out repeated s/// :)
14:58 daxim every infobot does this out-of-the-box
14:58 TimToady and missing/extra whitespace
14:59 flussence maybe p6eval's command line should be the last $n irc lines...
15:00 TimToady extra credit for figgering out *the style corrections
15:00 * TimToady sincerely doubts it can easily figure out TimToady's sub-word style of corrections; those approach a Turing test
15:01 * tadzik decomutees, or however you write that
15:01 TimToady *tes
15:01 TimToady *mm
15:01 masak :P
15:02 masak QED.
15:02 fsergot joined #perl6
15:02 fsergot Hello #perl6 o/
15:02 masak a "decomutee" is a t-shirt coming out of a coma.
15:02 mikec haha
15:02 masak fsergocie, cz!
15:02 TimToady in Turkish, to get vowel harmony
15:03 TimToady er, vowul harmonu
15:03 masak get thee to an autopunnery.
15:06 moritz tadzik: fwiw in #perlde we have such a bot
15:06 moritz tadzik: biggest problem is that people in here mix p5 and p6 regexes a lot
15:11 JimmyZ_ joined #perl6
15:19 * TimToady wonders how Bruce Willis got the North Korean rocket to divide by 0...
15:20 TimToady you don't suppose he reprogrammed the rocket in Perl 6?
15:21 TimToady oh wait, the thing is that Bruce Willis can do anything because *he* is programmed in Perl 6 :)
15:21 moritz he just divides the rocket by Chuck Norris :-)
15:21 TimToady he's part of the Singularity that is unevenly distributed...
15:22 * TimToady wonders if there was a Therac-style error with the US "tracking laser"  :)
15:26 gfldex i'm quite confident that the great ppl of north korea can explode their missiles without the help of imperialistic kapitalisic exploitation regimes
15:27 gfldex it's proly a plot after all
15:27 gfldex "give us more money for oil and food or we build a rocket that actually works"
15:27 * TimToady wonders whether they can also explode their nukes without help
15:28 gfldex they managed to explode 2 nukes IIRC
15:28 TimToady well, 1.5
15:29 gfldex you mean one of them went "pffffft"?
15:29 TimToady it was a very big pffffft, but a pffffft nonetheless
15:29 TimToady (we think)
15:30 gfldex if i would spend that much money on a pfffft i would insist on it being a big one
15:30 TimToady still something you wouldn't want to be close to...
15:32 NamelessTee joined #perl6
15:33 TimToady "Comrade, it is your great honor to go into that cave and throw this nuclear hand grenade as far as you can..."
15:40 * TimToady wanders off to the shower wondering whether it would be any better to toss a nuclear horseshoe...
15:44 gfldex TimToady: you got that a little wrong. It's the communists that are getting the nukes thrown _at_ as can be seen here: http://www.youtube.com/watch?feature=player_detailpage&amp;v=ly8_wwGuU2Q#t=405s
15:44 tokuhirom joined #perl6
15:47 Psyche^ joined #perl6
15:54 zipf joined #perl6
15:59 Shozan joined #perl6
16:12 JimmyZ joined #perl6
16:21 answer_42 joined #perl6
16:33 sftp joined #perl6
17:06 spaceships joined #perl6
17:15 * lichtkind removed .pretty from index A
17:21 pernatiy joined #perl6
17:25 HarryS joined #perl6
17:26 felher moritz: ping :)
17:29 sudokode joined #perl6
17:30 PacoAir joined #perl6
17:31 Chillance joined #perl6
17:31 bluescreen10 joined #perl6
17:36 fgomez joined #perl6
17:50 moritz felher: pong
17:55 sjohnson heh
17:56 felher moritz: I just removed 'method Bool() { False  }' from Exception.pm and did 'make spectest': https://gist.github.com/2378269 . Most of the spectest-errors are of the kind 'nok(try { eval(...) }, ...)'. They fail now because try seems to return the exception upon die'ing and this exception is now True.
17:56 felher moritz: Maybe they can be changed to eval_dies_ok?
17:57 moritz felher: one must be careful with eval_dies_ok
17:57 felher moritz: there are some other, though, like : "my $success = try { eval...".
17:57 moritz felher: my $x = 3; eval_dies_ok '$x';  # dies, because it can't see the outer $x
17:57 moritz felher: so generally dies_ok { eval(...) } is safer
17:58 moritz felher: feel free to change those tests you feel confident about, and leave the rest to me
17:58 moritz (fwiw t/spec/S32-exceptions/misc.rakudo is unrelated. I really need to fix that)
17:59 felher moritz: yeah, i wanted to mention that too. :) Since i could not see the relation i compiled rakudo again without the little patch and it was still there :)
18:01 moritz felher: I'm not sure how I managed to lose the patch that made that test pass. I was 100% sure I had pushed it to nom
18:01 moritz maybe I was in a wrong branch or so
18:02 felher yeah, may well be. :)
18:02 bluescreen10 joined #perl6
18:03 felher moritz: well, i don't have much time now but i will make a patch for exception.pm and one for the spectests tonight :)
18:04 moritz felher: \o/
18:06 dalek rakudo/nom: d056801 | moritz++ | src/Perl6/Grammar.pm:
18:06 dalek rakudo/nom: typed exception for unknown syntactical category
18:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d0568017e2
18:21 jnthn EVENIN'
18:21 jnthn oops
18:22 lichtkind jnthn: o/
18:22 jnthn hi
18:23 masak EVENIN' #PERL6!
18:23 jnthn .oO( "What's up?" "Evidently, not your caps lock key." )
18:24 jnthn On the upside, I have tuits. On the downside, I'm really tired.
18:24 jnthn The tuits will last the whole weekend though, whereas the tiredness is hopefully more temporary :)
18:31 masak jnthn: http://bash.org/?835030 ;)
18:33 jnthn :P
18:36 dalek Heuristic branch merge: pushed 108 commits to rakudo/name-cleanup by jnthn
18:43 uvtc joined #perl6
18:49 preflex joined #perl6
18:53 masak wow, 108 commits!
18:53 jnthn ...have happened since I last worked on that branch :)
18:54 masak oh :)
18:54 masak right, merging is what people do who already pushed their branch into the limelight :P
18:54 birdwindupbird joined #perl6
18:55 uvtc masak, in my RSS reader, your "t3: addition chains" post keeps staying right at the top of the planet Perl 6 listing.
18:56 masak uvtc: yeah. sorry. should be resolved by itself tomorrow.
18:57 masak lesson learned: provide your blogging software with a check to prevent you from posting in the future.
18:57 uvtc masak, No complaints. Just curious how long it'll stay there ... Maybe it will take up permanent residence.
18:57 uvtc :)
18:57 TimToady masak: well, have you done it yet?
18:57 uvtc masak, Ah, that's what it was. Heh.
18:58 * TimToady notes the time lagging while masak hacks his software so he can say "yes"
18:58 masak TimToady: I'll do it right away.
18:58 TimToady "lesson learned" hah!
18:59 masak well, real soon :)
18:59 uvtc Right after this next blog post ...
18:59 TimToady why is there no unicode for a round tuit?
18:59 jnthn masak: Easiest way to sync it between the various machines I hack on :P
19:01 diakopter .u CIRCLED DIGIT TWO
19:01 phenny U+2461 CIRCLED DIGIT TWO (②)
19:01 TimToady close
19:01 sjohnson anyone here like hockey?
19:02 TimToady we really need a 'tuit' char that we can use ENCLOSING CIRCLE with
19:03 thou joined #perl6
19:04 jnthn Just make one up and ask the Unicode folks to add it. Given some of what's in Unicode 6, the bar seems pretty low. ;-)
19:06 machine2 joined #perl6
19:06 diakopter .u A4A8
19:06 phenny U+A4A8 YI RADICAL TU (꒨)
19:06 diakopter .u A000
19:06 phenny U+A000 YI SYLLABLE IT (ꀀ)
19:07 uvtc .u 233e
19:07 phenny U+233E APL FUNCTIONAL SYMBOL CIRCLE JOT (⌾)
19:08 s1n joined #perl6
19:09 uvtc .u 2780
19:09 phenny U+2780 DINGBAT CIRCLED SANS-SERIF DIGIT ONE (➀)
19:09 padrino joined #perl6
19:09 padrino ciao
19:09 padrino !list
19:09 padrino left #perl6
19:13 wolfman2000 joined #perl6
19:13 alvis`` joined #perl6
19:14 TimToady best I can give masak is a ㉘
19:14 uvtc .u 24c9
19:14 phenny U+24C9 CIRCLED LATIN CAPITAL LETTER T (Ⓣ)
19:17 masak worksforme.
19:17 masak actually, I have tuis. I'm just, just as jnthn, rilly rilly tajerd.
19:18 uvtc Ok, last one.
19:18 uvtc .u 235f
19:18 phenny U+235F APL FUNCTIONAL SYMBOL CIRCLE STAR (⍟)
19:19 TimToady .u ㊟
19:19 phenny U+329F CIRCLED IDEOGRAPH ATTENTION (㊟)
19:20 masak TimToady, uvtc, sorear, jnthn, tadzik, moritz: https://github.com/masak/psyde/commit/10a3d906aae76bef6223cd94927b299f8f333080
19:20 uvtc The little circle with the star in it seems like something you'd get at an amusement park. :) (hm. U+329f not displaying for me)
19:22 moritz masak++
19:24 uvtc Neat. Is `after` an operator that works only between `Date` objects?
19:24 jnthn when * after Date.today
19:24 jnthn :D
19:25 moritz uvtc: no
19:25 moritz r: say 4 after 3
19:25 p6eval rakudo 3bd91f: OUTPUT«True␤»
19:25 moritz r: say 4 after 4
19:25 p6eval rakudo 3bd91f: OUTPUT«False␤»
19:25 jnthn r: say 4 after 4
19:25 p6eval rakudo 3bd91f: OUTPUT«False␤»
19:25 uvtc r: 'c' after 'a'
19:25 p6eval rakudo 3bd91f:  ( no output )
19:25 * TimToady hates webpages that waste whitepsace and then give me a horizontal scrollbar...
19:26 masak I like to use `before` and `after` with dates and times. it reads well. http://strangelyconsistent.org/blog/november-5-2010-aim-for-the-eye
19:26 TimToady *him
19:26 masak :)
19:26 uvtc r: say 'c' after 'a'
19:26 p6eval rakudo 3bd91f: OUTPUT«True␤»
19:26 masak r: say pi after 3.14
19:26 p6eval rakudo 3bd91f: OUTPUT«True␤»
19:26 uvtc Neat. Thanks, moritz.
19:26 masak r: say pi after 3.15
19:26 p6eval rakudo 3bd91f: OUTPUT«False␤»
19:26 TimToady we need afterish and beforeish for the maybe-eqv case
19:27 moritz TimToady: !before and !after exist
19:27 masak what moritz said :)
19:27 TimToady don't always read well in the presence of not-raising
19:27 moritz speaking of which
19:28 masak `afterish` and `beforeish` don't read that well either.
19:28 TimToady suggestions welcome :)
19:28 masak `aftereqv`, `beforeqv` :)
19:28 uvtc r: 3 same-ballpark pi
19:28 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Confused␤at /tmp/i9oE2cz8wi:1␤»
19:28 TimToady before-or-same
19:28 moritz we should have a trait that allows you declare an infix:<cmp> and derive 'before' and 'after' from them
19:28 FACEFOX joined #perl6
19:28 moritz likewise leg => eq, ne, lt, gt, le, ge
19:28 masak ooh
19:28 masak +1
19:29 moritz and <=>  => ==, !=, <, <=, >, <=
19:29 moritz erm, >=
19:29 masak I see a great need.
19:29 masak people will thank us when they're writing custom types.
19:30 sjohnson u
19:30 sjohnson oops
19:33 TimToady .u ䷿䷾
19:33 phenny U+4DFF HEXAGRAM FOR BEFORE COMPLETION (䷿)
19:33 phenny U+4DFE HEXAGRAM FOR AFTER COMPLETION (䷾)
19:34 s1n joined #perl6
19:38 masak I wonder if anyone else on the channel 'sides me and au++ studied I Ching in any depth.
19:39 sjohnson .u  ( `ー´)
19:39 phenny sjohnson: U+0020 U+FF08 U+3000 U+FF40 U+30FC U+00B4 U+FF09
19:40 masak .u
19:40 phenny masak: Sorry, your input is too long!
19:40 masak :)
19:40 masak .u
19:41 phenny masak: U+2002 U+2003 U+2004 U+2005 U+2006 U+2007 U+2008 U+2009 U+200A
19:41 moritz ok, I've started writing a module that derivees such operators for you...
19:41 moritz and it's more complicated than I thought, initially
19:41 moritz the first problem is that I don't know how to create the nominal type constraints for the signatures of the derived ops
19:42 moritz std: anon multi foo() { }
19:42 p6eval std 1ad3292: OUTPUT«ok 00:00 41m␤»
19:42 moritz r: anon multi foo() { }
19:42 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Cannot use 'anon' with individual multi candidates. Please declare an anon-scoped proto instead␤at /tmp/vUI_S41Wv4:1␤»
19:42 moritz and that's the second problem. I'd need to generate invdividual, anon multis
19:43 masak that does not make immediate sense to me.
19:44 moritz which one?
19:44 moritz rakudo's error?
19:45 TimToady lessee, <=> means, <, =, or >, and leg means lt, eq, or gt, so bsa should mean before, same, or after, and cmp should mean, er...c<mumble>, m<mumble>, or p<mumble>, where those ops work across types consistently-ish in the way default sort wants to work
19:47 TimToady lunch &
19:47 masak if you solve the "default sort across types" problem, I'll even let you name them c<mumble>, m<mumble>, and p<mumble> :)
19:48 moritz c'mon mister perl?
19:48 moritz r: multi () { }
19:48 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Confused␤at /tmp/PSIToKEp8g:1␤»
19:48 moritz r: multi sub () { }
19:48 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Cannot put multi on anonymous routine␤at /tmp/POzlDI6ear:1␤»
19:48 masak cinnamon mustard pepper.
19:57 jnthn Why do you need to put "multi" on it?
19:57 jnthn "multi" means "locate the controlling proto and add this to its candidate list"
19:58 masak can't multi protolessly ;)
19:58 jnthn Right
19:59 jnthn But multi candidates are just normal routines.
19:59 masak carl masak pwn'd! hah!
19:59 masak oh wait
19:59 jnthn "multi" doesn't make them different, it just changes how they're installed. :)
19:59 moritz jnthn: well, I want to export them. And when they are imported, they should behave as normal multi candidates
19:59 jnthn So if you're doing that yourself by hand... :)
20:00 jnthn moritz: Sure, but the normal case of doing exports just has a proto with the candidates installed in EXPORT somewhere.
20:01 moritz jnthn: so I need an anon proto, and .add_candidate a single candidate to it?
20:02 jnthn Should cut it
20:02 jnthn nom: anon proto (|$) { }
20:02 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Confused␤at /tmp/01EK3gzILL:1␤»
20:02 jnthn nom: anon proto sub (|$) { }
20:02 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Cannot put proto on anonymous routine␤at /tmp/sXOyCGinJZ:1␤»
20:02 jnthn Ah
20:02 jnthn That one feels like an unrequired restriction.
20:02 moritz aye
20:03 uvtc I was asking here yesterday about how nested lists work.
20:03 Tene moritz: can't you just define a type that implements those operators in terms of the first, and then derive that type in your custom type?
20:04 uvtc I see that square brackets don't flatten (thanks spider-mario++).
20:04 uvtc r: my @b = ('i', ['x', 'y', 'z'], 'j'); say @b[1][2];  # prints 'z'
20:04 p6eval rakudo 3bd91f: OUTPUT«z␤»
20:04 uvtc And that if the inner array already exists, I can do this:
20:04 uvtc r: my @a = <x y z>; my @b = ('i', [@a], 'j'); say @b[1][2];  # prints 'z'
20:04 p6eval rakudo 3bd91f: OUTPUT«z␤»
20:04 uvtc I also saw that you can assign a list to a scalar to avoid list flattening:
20:04 uvtc r: my @a = <x y z>; my $c = ('i', @a, 'j'); say $c.perl
20:04 p6eval rakudo 3bd91f: OUTPUT«$("i", Array.new("x", "y", "z"), "j")␤»
20:04 jnthn moritz: elsif $*MULTINESS { in routine_def would just change to checking it's 'multi'
20:05 uvtc but that looks odd to me (why assign a list to a scalar?), and also, indexing into it doesn't work:
20:05 uvtc r: my @a = <x y z>; my $c = ('i', @a, 'j'); say $c[1][2]; # doesn't print 'z'
20:05 p6eval rakudo 3bd91f: OUTPUT«Index out of range. Is: 2, should be in 0..0␤  in method gist at src/gen/CORE.setting:8224␤  in sub say at src/gen/CORE.setting:6258␤  in block <anon> at /tmp/lb9wP1PJJF:1␤␤»
20:05 uvtc (Shoot, sorry to trod over Tene/jnthn convo there.)
20:06 jnthn uvtc: my $c = ('i', @a, 'j') # this does not prevent flattening
20:06 jnthn uvtc: It's that flattening is lazy.
20:07 birdwindupbird joined #perl6
20:07 * PerlJam wonders what's with all the extra parens
20:07 PerlJam ;)
20:07 jnthn uvtc: Array.new(...) does not imply non-flattening. It'd look like [...] if it was not going to flatten.
20:07 jnthn uvtc: The .perl output is simply revealing this laziness.
20:08 jnthn masak: To multi-macros actually work? :)
20:08 jnthn *Do
20:08 uvtc jnthn, I'm happy to just stick with Baby Perl 6 for now --- is there any good reason I'd need to assign a list to a scalar?
20:10 jnthn uvtc: Yes, when you want that list to act as an item
20:10 uvtc PerlJam, old habit. :)
20:10 jnthn (But that doesn't sany anythin gabout the thing inside of it.)
20:10 jnthn s/sany/say/
20:10 moritz https://gist.github.com/2379772 # this is what I have now. Somehow the name of the generated operator always comes out as 'infix:<>'. Any idea why?
20:11 uvtc jnthn, I must say, this seems rather complicated to me.
20:11 uvtc jnthn, Thanks for the help.
20:12 Tene uvtc: the summary is, @ represents a flattening of many items, $ represents a single item.
20:12 masak jnthn: I don't see why not. well, barring that the spec might still change around in how macro parameters are handled.
20:12 Tene If you want it to act as a single item, use $.  If you want it to act as many items, use @.
20:12 masak jnthn: but assuming you can introspect ASTs with where clauses, multi macros make a lot of sense.
20:12 jnthn masak: Or just arity
20:12 masak or maybe even introspect them with subsignatures.
20:12 masak or just arity, sure.
20:13 jnthn moritz: Yeah, something to do with anonymous roles and lexical scoping.
20:13 uvtc Tene, thanks. Perhaps I can find an example at some point in the Perl 6 Book.
20:13 jnthn moritz: Just declare a my role named { has $.name }; and then $c does named(...);
20:14 uvtc left #perl6
20:14 masak the other day I had a really clear thought about macro signatures and compile-mode/run-mode and jiggery-pokery between them, with a conclusion of some kind. but I'm too tired to remember what it was now :/
20:14 PerlJam masak: next time, write it down then  :)
20:15 moritz \o/
20:16 moritz and suddenly it "works"
20:16 sorear masak++
20:17 jnthn nom: multi macro foo($a) { quasi { say 1 } }; multi macro foo($a, $b) { quasi { say 2 } }; foo(42); foo(24, 42)
20:17 p6eval rakudo 3bd91f: OUTPUT«===SORRY!===␤Illegal redeclaration of macro 'foo' at line 1, near "; foo(42);"␤»
20:17 jnthn aww
20:18 moritz jnthn++ # https://gist.github.com/2379772 looks much better now
20:18 moritz hey, I have another evil idea
20:19 moritz can't I just generate a named proto + multi, and then rename them bother later on?
20:20 masak "later on"? lexpads are immutable at runtime. :)
20:20 moritz masak: I know I know I know. But for the export trait it's not important what the name in the lexpad is, but rather what name the routine itself reports
20:21 moritz masak: that's why do I this fun thing of mixing in a role that changes the name
20:21 masak moritz: nice gist. should probably have a &die to check that the hash key exists.
20:21 moritz yes, it should
20:21 moritz and if it ever makes it into a proper module, it will
20:22 masak moritz: also 'is autogen' is too generic. maybe 'is comparison' or something?
20:22 moritz 'is comparison' doesn't capture the idea either
20:22 masak 'is deriving_lots_of_other_ops' :)
20:22 moritz comparison-autogen
20:22 jnthn Well, it's totally not spec'd API, but .'!set_name'(...) works too for changing the name, I think.
20:23 jnthn autocomparators
20:23 masak sounds like something out of Transformers.
20:24 moritz well, it is a transformer :-)
20:25 moritz ===SORRY!===
20:25 moritz get_pointer() not implemented in class 'Perl6::Metamodel::ClassHOW'
20:25 moritz that's a new one, isn't it? :-)
20:25 jnthn Wow.
20:25 jnthn How'd you get that?
20:25 moritz with evil magic :-)
20:25 moritz and, it's triggered from inside the optimizer
20:26 jnthn bah
20:26 moritz some blocks inside visit_op
20:26 moritz I just changed all the anon subs to
20:26 moritz do { proto a(|$) { }; mutli a ($a, $b) { # same body as before }; &a }
20:28 NamelessTee joined #perl6
20:29 moritz and then called
20:29 moritz ./perl6 -e 'use A; say "a" before "b"'
20:31 moritz meta programming is fun.
20:31 jnthn Oddness. Feel free to ticket it.
20:32 moritz I'll see if I can boil it down to something managable
20:33 moritz jnthn: can I fudge in type constraints into a signature somehow?
20:33 jnthn nom: say ?eval('module MY; 1')
20:33 p6eval rakudo 3bd91f: OUTPUT«False␤»
20:33 jnthn nom: say ?eval('module foo; 1')
20:33 p6eval rakudo 3bd91f: OUTPUT«False␤»
20:33 jnthn nom: say ?eval('module foo; 0')
20:33 p6eval rakudo 3bd91f: OUTPUT«False␤»
20:33 jnthn nom: say ?eval('module foo { 0 }')
20:33 p6eval rakudo 3bd91f: OUTPUT«False␤»
20:33 jnthn nom: say ?eval('module foo { 1 }')
20:33 p6eval rakudo 3bd91f: OUTPUT«False␤»
20:33 jnthn Oh
20:33 moritz nom: say eval('module foo; 1 ')
20:33 p6eval rakudo 3bd91f: OUTPUT«foo()␤»
20:33 jnthn It evaluates to the type object...
20:34 moritz nom: say eval('module foo { }; 1 ')
20:34 p6eval rakudo 3bd91f: OUTPUT«1␤»
20:34 jnthn S02-names-vars\variables-and-packages.rakudo has a bunch of tests like
20:34 moritz which is what people expect from classes
20:34 jnthn ok !eval('module MY; 1'), 'MY is an out of scope name';
20:34 moritz oh
20:34 moritz that's from the days where eval didn't throw exceptions
20:34 jnthn I think what it's aiming at is testing that you're not allowed to declare pseudopackages.
20:35 jnthn Right, and we're been passing them bogusly
20:35 moritz it should really be eval_dies_ok 'module MY;'
20:35 jnthn Now in my names-cleanup branch
20:35 jnthn ===SORRY!===
20:35 jnthn Cannot use pseudo-package MY in a package name
20:35 jnthn also...
20:35 moritz much better
20:35 jnthn ok !eval('module SUPER; 1'), 'SUPER is an out of scope name';
20:35 jnthn Is SUPER really spec?
20:35 moritz no
20:35 moritz I think I removed that recently
20:35 jnthn ok, then I kill that test
20:36 moritz (it was mentioned but not really specced)
20:36 masak SUPER is ex-spec.
20:36 masak it has ceased to be.
20:37 jnthn I ex-spected that was the case.
20:39 jnthn eval_dies_ok 'module CONTEXT;', 'CONTEXT is an out of scope name';
20:39 jnthn That one became DYNAMIC, I guess?
20:39 moritz yes, I think so
20:39 moritz \o/
20:39 moritz I've managed to fudge in the type constraints
20:40 moritz it's getting more evil by the minute :-)
20:40 moritz nqp::bindattr ftw
20:40 jnthn OK, then that's one of the test files my names-cleanup branch has made unhappy fixed/improved. :)
20:45 moritz https://gist.github.com/2379772 # now with type checks
20:45 jnthn Wow. And since you are generating them at compile time int he trait, then the compilation unit using the module gets the compile-time type checking. :)
20:46 moritz it needs to be compile time for them to be installable into a lexical scope
20:46 jnthn Aye
20:47 jnthn Mostly just being happy that you can be really dynamic in a module, then present a static, analysable view to the outside world.
20:49 masak 'night, #perl6
20:50 knewt_ joined #perl6
20:50 cognominal joined #perl6
20:50 masak dream really dynamically, then present a static, analysable view to the waking world :)
20:50 knewt_ joined #perl6
20:50 jnthn 'night, masak
20:51 NamelessTee joined #perl6
20:54 moritz enough meta brain damage for tonight
20:54 * moritz also goes to bed
20:54 jnthn 'night moritz
20:55 FACEFOX joined #perl6
20:57 FACEFOX joined #perl6
20:59 FACEFOX joined #perl6
21:00 FACEFOX joined #perl6
21:03 FACEFOX joined #perl6
21:03 FACEFOX joined #perl6
21:06 FACEFOX joined #perl6
21:08 FACEFOX joined #perl6
21:35 tadzik masak: \o/
21:35 tadzik oh, evrybody's sleeping
21:35 jnthn o/ tadzik  :)
21:36 tadzik \o/
21:36 * tadzik 's back from geocaching
21:37 spider-mario \o
21:41 Moukeddar joined #perl6
21:42 sjohnson ( `ー´)
21:42 tadzik (´ー` )
21:43 sjohnson hehe
21:44 tadzik ( ° ー°)<( Are you laughing at me? )
21:44 tadzik :P
21:44 tadzik all fat faces in action!
21:46 * sjohnson needs more fat face emoticons
21:51 fgomez joined #perl6
21:55 dalek rakudo/name-cleanup: 4de6f1d | jnthn++ | src/Perl6/ (2 files):
21:55 dalek rakudo/name-cleanup: Fix handling of the anonymous name :: and avoid some duplicate work in package_def.
21:55 dalek rakudo/name-cleanup: review: https://github.com/rakudo/rakudo/commit/4de6f1d16b
21:55 dalek rakudo/name-cleanup: f262bbb | jnthn++ | src/Perl6/World.pm:
21:55 dalek rakudo/name-cleanup: Add PARENT to the list of recognized pseudo-packages (though it is NYI).
21:55 dalek rakudo/name-cleanup: review: https://github.com/rakudo/rakudo/commit/f262bbb921
21:55 dalek rakudo/name-cleanup: 6a30cd3 | jnthn++ | src/Perl6/World.pm:
21:55 dalek rakudo/name-cleanup: Fix thinko in hanlding pseudo-packages in type names.
21:55 dalek rakudo/name-cleanup: review: https://github.com/rakudo/rakudo/commit/6a30cd3947
21:55 dalek rakudo/name-cleanup: c78bab9 | jnthn++ | src/Perl6/World.pm:
21:55 dalek rakudo/name-cleanup: Re-disallow declaring GLOBAL.
21:55 dalek rakudo/name-cleanup: review: https://github.com/rakudo/rakudo/commit/c78bab93ec
21:56 fgomez joined #perl6
22:01 jnthn tadzik: Were you working on keyhash/keyweight? Did you block on something with them?
22:02 tadzik jnthn: I think they were mostly working
22:02 tadzik oh, I may have some refactors lying around, hold on
22:02 tadzik roles stuff iirc, yes
22:02 tadzik I was tackling that on GPW
22:02 tadzik I'll try to rebuild it
22:08 tadzik jnthn: oh, ISTR we didn't come to the conclusion regarding roles and BUILD or so
22:10 felher Hm: 'class X::Syntax::Variable::Match does X::Syntax' and 'class X::Syntax::Variable::Numeric does X::Syntax '. This means that you can not catch those exceptions with 'when X::Syntax::Variable', doesn't it? OOC, is this just NYI, not yet specced/decided, or will there never be a complete hierarchy?
22:13 jnthn Package names and role compositoin or inheritance aren't related at all in the language.
22:13 jnthn tadzik: Oh...hm.
22:17 tadzik now I get maximum recursion depth exceeded in Stringy, ~, Stringy, ~...
22:17 felher jnthn: yeah. That part was just a recap to assure i didn't get something completely wrong, or it it's some kind of boostraping issue with something hardwired somewhere in rakudo. Do you have an answer to the second part, also? :)
22:18 jnthn felher: moritz++ is the best person to answer that, since he's designing the hierarchy in question. It seems reasonable to have an X::Syntax::Variable though, at first blush.
22:18 tadzik jnthn: http://wklej.org/id/731188/ is the patch. It may be a little off, I got some merge conflicts when I tried to apply it
22:18 jnthn tadzik: That often winds up being an error reporting failure.
22:18 tadzik I'm now trying to recall what was on my mind
22:19 tadzik I think what I ended up with is keeping and initializing %!storage in a Settish role and then using the accessor method in the classes
22:22 felher jnthn++: Thanks for your answer, as ever :) I want to talk to moritz on the morrow anyway :)
22:25 localhost joined #perl6
22:32 dalek rakudo/name-cleanup: 921de87 | jnthn++ | src/Perl6/ (2 files):
22:32 dalek rakudo/name-cleanup: Implement :: on the end of a name meaning .WHO, so now Foo::<&bar>() style things work.
22:32 dalek rakudo/name-cleanup: review: https://github.com/rakudo/rakudo/commit/921de87cea
22:37 mucker joined #perl6
22:41 IngisKahn joined #perl6
22:42 _jaldhar joined #perl6
22:46 jnthn Time for some rest &
23:01 pernatiy_ joined #perl6
23:02 y3llow_ joined #perl6
23:03 FACEFOX joined #perl6
23:03 * [Coke] wants an IRC client that uses irssi when I'm here, but the weblogs when I return.
23:05 ashleyde1 joined #perl6
23:06 masak_ joined #perl6
23:06 y3llow_ joined #perl6
23:07 baest_ joined #perl6
23:08 huf_ joined #perl6
23:08 [Coke] ... are the names in the weblog color coded? TimToady keeps showing up bold-green.
23:09 y3llow_ joined #perl6
23:09 preflex_ joined #perl6
23:09 clkao_ joined #perl6
23:10 BooK__ joined #perl6
23:12 wooden_ joined #perl6
23:13 wooden_ joined #perl6
23:13 y3llow_ joined #perl6
23:14 zamolxes_ joined #perl6
23:15 pochi_ joined #perl6
23:15 bluescreen10 joined #perl6
23:16 y3llow_ joined #perl6
23:18 phenny joined #perl6
23:20 felher joined #perl6
23:20 y3llow joined #perl6
23:20 machine2 joined #perl6
23:22 y3llow joined #perl6
23:24 FACEFOX joined #perl6
23:25 y3llow joined #perl6
23:27 y3llow joined #perl6
23:29 oiig_ joined #perl6
23:30 y3llow joined #perl6
23:32 y3llow joined #perl6
23:35 y3llow joined #perl6
23:37 y3llow joined #perl6
23:39 y3llow joined #perl6
23:42 y3llow joined #perl6
23:44 y3llow joined #perl6
23:47 y3llow joined #perl6
23:49 y3llow joined #perl6
23:52 y3llow joined #perl6
23:54 y3llow joined #perl6
23:57 y3llow joined #perl6
23:57 flussence [Coke]: I guess some of them are hardcoded - p6eval is too
23:58 flussence (it seems to use a stable hashing algorithm as well :)
23:59 y3llow joined #perl6

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

Perl 6 | Reference Documentation | Rakudo