Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-01-20

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:09 thou joined #perl6
00:10 dalek niecza: b3cb68b | sorear++ | src/niecza:
00:10 dalek niecza: Remove non-enum uses of trivial_eval
00:10 dalek niecza: review: https://github.com/sorear/niecza/commit/b3cb68b693
00:14 Boonfarm joined #perl6
00:14 [Coke] sorear: yay, I also feel guilty about that a bit, but I did add a feature or two. (and copy half a dozen from rakudo.)
00:15 Boonfarm left #perl6
00:28 benabik joined #perl6
00:28 sorear rakudo: enum Foo <a b c>; say Foo.^roles
00:28 p6eval rakudo 7006f7: OUTPUT«Method 'roles' not found for invocant of class 'Perl6::Metamodel::EnumHOW'␤  in method dispatch:<.^> at src/gen/CORE.setting:788␤  in block <anon> at /tmp/E0L1e5Iq6r:1␤  in <anon> at /tmp/E0L1e5Iq6r:1␤»
00:28 sorear rakudo: enum Foo <a b c>; say Foo.^role_typecheck_list
00:28 p6eval rakudo 7006f7: OUTPUT«Method 'role_typecheck_list' not found for invocant of class 'Perl6::Metamodel::EnumHOW'␤  in method dispatch:<.^> at src/gen/CORE.setting:788␤  in block <anon> at /tmp/6v8HiUVYDG:1␤  in <anon> at /tmp/6v8HiUVYDG:1␤»
00:28 sorear rakudo: enum Foo <a b c>; say Foo.^mro
00:28 p6eval rakudo 7006f7: OUTPUT«Foo() Int() Real() Cool() Any() Mu()␤»
00:28 [particle] joined #perl6
00:29 sorear rakudo: enum Foo <a b c>; say Foo.^does_list
00:29 p6eval rakudo 7006f7: OUTPUT«1␤»
00:36 LlamaRider joined #perl6
00:47 zjmarlow joined #perl6
00:49 whiteknight joined #perl6
00:58 tokuhirom joined #perl6
01:05 dalek niecza: 98c7c82 | sorear++ | / (2 files):
01:05 dalek niecza: Change CommonEnum et al to be a role
01:05 dalek niecza: review: https://github.com/sorear/niecza/commit/98c7c825d7
01:06 replore_ joined #perl6
01:34 [Coke] should .isa take string reps of class names?
01:34 [Coke] (there are spec tests for that, but it seems wrong.
01:34 wooden joined #perl6
01:34 wooden joined #perl6
01:36 dalek niecza: 03689a4 | coke++ | t/spectest.data:
01:36 dalek niecza: run S29-any/isa.t
01:36 dalek niecza: review: https://github.com/sorear/niecza/commit/03689a4952
01:36 dalek roast: 116f2dd | coke++ | S29-any/isa.t:
01:36 dalek roast: fudge for niecza
01:36 dalek roast: review: https://github.com/perl6/roast/commit/116f2dd8ae
02:06 cognominal we will have to find another logo to denote world domination :  http://www.worldipv6launch.org/wp-content/themes/ipv6/img/logo-trans.png
02:07 cognominal ho, I forgot. we already got one. camelia, world domination thru butterfly effect.
02:31 shinobicl___ joined #perl6
02:59 colomon o/
02:59 sorear /o
03:06 colomon what's the word with nextwith?
03:35 orafu joined #perl6
03:36 wolfman2000 joined #perl6
03:39 Psyche^ joined #perl6
03:59 sorear colomon: bit of a bad spec interpretetation is all
03:59 sorear TimToady: ping
04:00 TimToady hah, just sat down at my computer...
04:00 sorear o/
04:01 sorear TimToady: S06:2804
04:01 sorear if 'nextwith' (or the handler for the exception nextwith throws) is going to add 'self' in, then I guess CallFrame.args has to strip it out
04:02 TimToady [Coke]: in general, a classname should be looked up with ::($string)
04:02 sorear presumably it would strip out the self iff .sub ~~ Method
04:03 sorear is this a reasonable interpretation?
04:03 TimToady I think that's what the user will expect
04:11 * sorear ponders the value of callframe.args(:all)
04:17 dalek niecza: b723f45 | sorear++ | / (2 files):
04:17 dalek niecza: In nextwith/CallFrame.args, hide the invocant of methods
04:17 dalek niecza:
04:17 dalek niecza: http://irclog.perlgeek.de/perl6/2012-01-20#i_5019037
04:17 dalek niecza: review: https://github.com/sorear/niecza/commit/b723f4518b
04:20 Trashlord joined #perl6
04:21 sorear colomon: try that
04:22 shinobicl___ left #perl6
04:40 thou joined #perl6
04:43 birdwindupbird joined #perl6
04:59 dalek niecza: 06b3d2a | sorear++ | / (4 files):
04:59 dalek niecza: Switch enums to using the proper evaluator; turn Order into a true enum
04:59 dalek niecza: review: https://github.com/sorear/niecza/commit/06b3d2a779
05:04 ponbiki joined #perl6
05:20 dalek niecza: e748acd | sorear++ | src/ (3 files):
05:20 dalek niecza: mergeback; kill off qpvalue and trivial_eval for real
05:20 dalek niecza: review: https://github.com/sorear/niecza/commit/e748acd885
05:29 birdwindupbird joined #perl6
06:24 PacoAir joined #perl6
06:29 am0c joined #perl6
06:30 molaf joined #perl6
06:30 JimmyZ_ joined #perl6
06:32 JimmyZ_ nom: class A { has $.a = 1; has @.a = 2,3; } ; say A.new.a;
06:32 p6eval nom 7006f7: OUTPUT«1␤»
06:32 JimmyZ_ nom: class A { has @.a = 2,3; } ; say A.new.a;
06:32 p6eval nom 7006f7: OUTPUT«2 3␤»
06:33 JimmyZ_ how can I get the second attr value?
06:33 alabala joined #perl6
06:33 JimmyZ_ nom: class A { has @.a = 2,3; has $.a = 1;  } ; say A.new.a;
06:33 p6eval nom 7006f7: OUTPUT«2 3␤»
06:44 TimToady perl6: class A { has $.a = 1; has @.a = 2,3; } ; say A.new.a;
06:44 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two definitions of method a (see line 1) at /tmp/tocHFz3Pjs line 1:â�¤------> [32mclass A { has $.a = 1; has @.a [33mâ��[31m= 2,3; } ; say A.new.a;[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CO…
06:44 p6eval ..rakudo 7006f7: OUTPUT«1␤»
06:44 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected ","␤    expecting "_", fraction, exponent, term postfix, operator or "}"␤    at /tmp/BQzFMXD4yp line 1, column 35␤»
06:44 TimToady niecza has the correct response here
06:45 JimmyZ_ :)
06:46 geekosaur that did seem pretty wrong...
06:46 kaleem joined #perl6
06:46 * JimmyZ_ wonders where it is speced
06:47 JimmyZ_ perl6: my @a = 1,2,3 ; my $a = 1;
06:48 p6eval niecza v13-313-ge748acd: OUTPUT«Potential difficulties:â�¤  @a is declared but not used at /tmp/Fzqoch7oQZ line 1:â�¤------> [32mmy [33mâ��[31m@a = 1,2,3 ; my $a = 1;[0mâ�¤  $a is declared but not used at /tmp/Fzqoch7oQZ line 1:â�¤------> [32mmy @a = 1,2,3 ; my [33mâ��[31m$a = 1;[0mâ�¤â�¤Â»â€¦
06:48 p6eval ..pugs b927740, rakudo 7006f7:  ( no output )
06:48 geekosaur indirectly, I think; it's specced as generating a getter method, by necessity only one such with a given name can exist
06:54 wtw_ joined #perl6
06:54 geekosaur and, well, I cannot imagine the silent overwriting that rakudo appears to be doing is correct; even if overwriting were correct, it should produce a warning
07:03 * moritz can imagine it
07:03 * moritz has a pretty good imagination
07:06 geekosaur oh, I can imagine *someone* doing it, but it seems inconsistent with the goals of p6
07:09 nebuchadnezzar joined #perl6
07:09 nebuchadnezzar hi
07:12 moritz hello nebuchadnezzar
07:18 koban joined #perl6
07:32 jnthn Rakudo isn't silently overriding it at all
07:32 jnthn It checks if such a method was already defined.
07:32 jnthn And if it was, then doesn't generate an accessor
07:32 jnthn Since the user may be supplied their own.
07:33 jnthn Of course, that means that the first accessor is generated, and the second is not.
07:34 jnthn perl6: class A { has $.a; method a() { } }
07:34 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two definitions of method a (see line 1) at /tmp/hoZ8P_namn line 1:â�¤------> [32mclass A { has $.a; method a[33mâ��[31m() { } }[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 919…
07:34 p6eval ..pugs b927740, rakudo 7006f7:  ( no output )
07:34 jnthn Niecza is wrong on this, given previous discussions.
07:38 moritz but if the user wants to supply his own accessor, shouldn't he use $!a instead?
07:39 moritz commute &
07:39 jnthn moritz: No, because then .has_accessor will be false in attribute introspection
07:39 jnthn And that'd in turn mean you couldn't set it in .new()
07:42 thou_ joined #perl6
08:06 geekosaur so really both are partly wrong.  seeing that one has been declared by the user, fine; but double implicits with no manual declaration should generate at least a warning and probably an error
08:10 sorear jnthn: ...so rakudo doesn't install accessors until compose time?
08:11 moritz nom: class A { has $.x; BEGIN { say A.new(x => 5).x } }
08:11 p6eval nom 7006f7: OUTPUT«===SORRY!===␤Method 'new' not found for invocant of class 'A'␤»
08:14 dalek rakudo/nom: 0291402 | moritz++ | src/core/Range.pm:
08:14 dalek rakudo/nom: Return an Int from Range.pick(1)
08:14 dalek rakudo/nom:
08:14 dalek rakudo/nom: It is not very consistent, but that is what some spectests want. Oh well.
08:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/029140243a
08:36 domidumont joined #perl6
08:40 am0c joined #perl6
08:54 daxim joined #perl6
08:59 * sorear -> sleep
09:02 jnthn sorear: I think it's even spec that they should be installed then.
09:11 moritz nom: role R { has $.x }; class A does R { }; use MONKEY_TYPING; augment class A { };
09:11 p6eval nom 029140:  ( no output )
09:11 moritz nom: use MONKEY_TYPING; augment class Date { };
09:11 p6eval nom 029140:  ( no output )
09:14 masak mornin', #perl6
09:14 moritz \o masak
09:18 masak what a beautiful day for macro hacking!
09:19 * moritz immediately has a haunting melody, "what a beautiful morning in my life"
09:27 masak maros: say "OH HAI"
09:27 masak macros: say "OH HAI"
09:28 tadzik o/
09:28 moritz p6eval: help
09:28 p6eval moritz: Usage: <(nom|pugs|nqplua|perlesque|nqprx|yapsi|alpha|highlight|partcl|nqpnet|star|mildew|nqp|niecza|std|rakudo|b)(?^::\s) $perl6_program>
09:28 masak moritz++ # thanks
09:28 masak tadzik: \o
09:28 moritz yapsi: say 1
09:28 p6eval yapsi: OUTPUT«1␤»
09:29 moritz std: \o
09:29 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'o' used at line 1�Check failed�FAILED 00:01 107m�»
09:29 moritz std: \o/
09:29 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Bogus term at /tmp/oJItbv0aBA line 1 (EOF):â�¤------> [32m\o/[33mâ��[31m<EOL>[0mâ�¤Undeclared routine:â�¤        'o' used at line 1â�¤Parse failedâ�¤FAILED 00:01 109mâ�¤Â»
09:31 masak hm, something seems to have bitrotted in the macros branch...
09:31 masak $ ./perl6 -e 'macro foo { quasi { my $a = 5; say $a } }; foo'
09:31 masak Cannot assign into a PMCNULL container
09:31 masak I can't recall having that error before.
09:31 moritz did you merge newest nom into the branch?
09:31 masak no. that's one of the things I'm planning to do today.
09:32 moritz then how come it bitrotted?
09:32 moritz did you change the nqp revision or something?
09:32 masak not really.
09:32 masak it could be that I never tried that case.
09:32 masak need tests... :)
09:33 masak ok, so plan for today: (1) rebase to latest nom. (2) write some tests. (3) start attacking the outer-fixup problem.
09:33 moritz I happen to have an auld build of the macro branch lying around, unchanged since the dawn of that branch... well, since Oct 12
09:33 moritz and it reports the very same error
09:33 masak goodie.
09:34 masak yeah, it's highly unlikely that it's something new.
09:34 masak moritz: I think this is the error you found around that time:
09:34 masak $ ./perl6 -e 'macro foo { my $a = 5; quasi { say $a } }; foo'
09:34 masak Null PMC access in find_method('gist') in sub say at src/gen/CORE.setting:4937
09:39 masak heh -- git conflict when trying to rebase macros on nom. :) that's alright -- I didn't expect less.
09:39 * masak gets to work
09:40 overrosy joined #perl6
09:43 masak conflict resolved. rebase complete. spectesting.
09:44 zhangkaizhao joined #perl6
09:45 zhangkaizhao joined #perl6
09:49 moritz that conflict didn't seem to take much work to resolve :-)
09:49 moritz masak: do you know about git-rerere?
09:49 masak rerere? no.
09:50 moritz it stands for "Reuse recorded resolution of conflicted merges"
09:50 masak moritz: most conflicts I get in git projects are of the "if git had access to the editor changes made, it could resolve this itself" kind.
09:50 moritz basically you set rerere.enabled = 1 in your ~/.gitconfig
09:50 masak hm.
09:50 moritz and then whenever you do a merge conflict, and resolve it, it remembers your resolution
09:50 moritz and if you get the same conflict again, it reuses your resolution
09:51 masak neat.
09:51 moritz very convenient -- I don't know why it's not enabled by default
09:51 * masak sets this flag
10:15 mj41 joined #perl6
10:43 donri joined #perl6
10:46 bacek joined #perl6
10:59 masak getting two failures in t/spec/S12-methods/multi.rakduo. (tests 5 and 11)
11:00 masak that's on the macros2 branch, which I'm about to push. haven't tried it on the nom branch yet -- will do that now.
11:01 moritz 11 fails on nom too
11:01 masak but not 5?
11:01 moritz not ok 5 - Call with wrong number of args should complain about args# TODO RT #66006
11:02 moritz it's TODOed
11:02 moritz how can it fail?
11:02 moritz ah, maybe your test harness doesn't like the # in the reason
11:02 masak oh!
11:02 masak no, it's just me being a bit rusty.
11:03 masak it *does* fail, because TODO tests most often do. I ran it outside of the harness.
11:03 masak even noticed the TODO comment, but ignored it...
11:03 dalek roast: f8abad9 | moritz++ | S12-methods/multi.t:
11:03 dalek roast: make fudging a bit more robust
11:03 dalek roast:
11:03 dalek roast: seems some test harnesses do not like the # character inside a TODO or SKIP notice
11:03 dalek roast: review: https://github.com/perl6/roast/commit/f8abad93b3
11:03 masak ok, so macros2 is no worse than nom, then.
11:07 dalek rakudo/macros2: 646b7d1 | masak++ | / (5 files):
11:07 dalek rakudo/macros2: implemented quasi quotes and macros
11:07 dalek rakudo/macros2:
11:07 dalek rakudo/macros2: This works:
11:07 dalek rakudo/macros2:
11:07 dalek rakudo/macros2: - Macro declarations
11:07 dalek rakudo/macros2: - Calling a macro (using `macro()` and `macro` and operators)
11:07 dalek rakudo/macros2: - Quasi quotes
11:07 dalek rakudo/macros2: review: https://github.com/rakudo/rakudo/commit/646b7d169f
11:07 dalek rakudo/macros2: 23057ef | masak++ | src/Perl6/Actions.pm:
11:07 dalek rakudo/macros2: decontainerize quasi AST before attr lookup
11:07 dalek rakudo/macros2:
11:07 dalek rakudo/macros2: Many nqp ops will decontainerize for you, but getattr is not
11:07 dalek rakudo/macros2: one of them. Occasionally the quasiquote would be hidden
11:07 dalek rakudo/macros2: inside a container layer and the getattr would fail. This is
11:07 dalek rakudo/macros2: now fixed.
11:07 dalek rakudo/macros2: review: https://github.com/rakudo/rakudo/commit/23057ef7f8
11:07 dalek rakudo/macros2: b857759 | masak++ | src/Perl6/Actions.pm:
11:07 dalek rakudo/macros2: make it possible to return from macros
11:07 dalek rakudo/macros2:
11:07 dalek rakudo/macros2: Kudos to moritz++ for discovering this use case.
11:07 dalek rakudo/macros2: review: https://github.com/rakudo/rakudo/commit/b8577595dd
11:07 masak sorry about the commit spam. I was afraid that might happen.
11:07 masak these are all old commits, but since they've been rebased, dalek reports them as new ones.
11:08 masak I see no reason to keep the 'macros' branch around on github, so I'm deleting it.
11:13 masak there's a class which I planned to call Perl6::AST (by analogy with Perl6::Compiler etc). right now in the branch it's called AST because of namespace restrictions in World at the time I wrote it.
11:13 masak those might've been fixed -- I'll see about renaming it.
11:13 masak but jnthn and I were discussing perhaps naming it Perl6::Quasi or something instead.
11:14 masak I'm a bit doubtful -- it feels like referring to a string as a "qq" or whatever. "qq" and "quasi" are things pertaining to the literal for creating the object, not the object itself.
11:15 moritz QuasiAST :-)
11:17 masak er... sounds like QQStr to me.
11:18 masak once it's a Str, the "qq" is gone. once it's an AST, the "quasi" is gone.
11:19 moritz well, if the string has interpolations, it never becomes a Str inside the compiler
11:21 masak right. its evaluation will have to be delayed till runtime.
11:22 masak but an AST never survives till runtime, I think.
11:22 masak it's purely a compile-time object.
11:23 masak oh! it might be that there *is* a distinction worth making here...
11:24 masak a Perl6::QuasiAST might be a pre-macro-evaluation AST with the "holes" still in there.
11:24 moritz well, macro compile time and macro apply time
11:24 masak exactly.
11:24 masak and a Perl6::AST is a "finished" AST with all the pieces in place.
11:24 masak since I'm not doing holes yet, all I have is Perl6::AST.
11:34 GlitchMr joined #perl6
11:38 jnthn Just don't call it QAST :P
11:38 masak :P
11:56 araujo joined #perl6
11:56 araujo joined #perl6
12:02 masak huh -- suddenly I'm getting errors about not finding $*ST -- oh! because those are runtime errors, because contextuals are dodgy :)
12:02 masak well. easy enough to fix.
12:04 jnthn dodgy? :)
12:05 jnthn It's called $*W now, though :)
12:05 masak yeah, I know.
12:05 masak I applied my old patches during the rebase, and didn't think to comb them for occurrences of $*ST.
12:05 jnthn ah :)
12:05 masak I'm on it.
12:06 masak renaming AST to Perl6::AST still doesn't work. that sucks. we need to be able to serialize things in namespaces eventually.
12:07 jnthn masak: Well, you're a Rakudo developer, you have the ower to track down and fix issues as well as say they suck :)
12:07 jnthn *power
12:07 jnthn I doubt it's anything to do with serialization per se in this case.
12:08 jnthn Perhaps that the Perl6:: namespace in Metamodel.pm is GLOBAL-merged into CORE.setting's GLOBAL
12:08 jnthn I'm pondering making all those things lexical classes to avoid that.
12:08 masak ok.
12:09 masak (dang, now I can't just complain and have others fix things for me? outrageous!)
12:09 jnthn .oO( It sucks that macros don't work in Rakudo yet! )
12:09 jnthn :P :P
12:09 masak *lol*
12:10 * masak cries "uncle" :)
12:14 kaleem joined #perl6
12:19 masak TimToady: what does a `map` on a multidimensional slice do? what does a `grep` on a multidimensional slice do? can I hyperop a multidimensional slice with something that has the same shape but isn't declared to have the same shape?
12:27 kaleem joined #perl6
12:28 bluescreen10 joined #perl6
12:31 dalek rakudo/macros2: 0890cc1 | masak++ | src/Perl6/Actions.pm:
12:31 dalek rakudo/macros2: chased SymbolStable --> World rename
12:31 dalek rakudo/macros2: review: https://github.com/rakudo/rakudo/commit/0890cc1a33
12:32 masak now there's some other problem. debugging.
12:33 moritz wha' abou' i'?
12:33 * moritz met a lady from middle england who swallows all the t's a' the end of syllables
12:34 moritz it's quite funny to listen to :-)
12:34 lichtkind_ joined #perl6
12:34 masak sounds like I imagine Cockney.
12:35 masak moritz: getting ===SORRY!===
12:35 masak too few positional arguments: 2 passed, 3 (or more) expected
12:35 moritz when you do what?
12:35 masak at parse time, without file or line.
12:35 masak when I declare a macro.
12:35 masak currently investigating.
12:35 masak probably something changed from under me.
12:36 moritz did you try --ll-exception
12:37 masak no, but now I will.
12:51 masak routine that dies is create_signature_object, called from macro_def.
12:52 masak yup, my invocation only has two args, while all the others in Actions.pm have three.
12:53 moritz does it miss $/ maybe?
12:53 bluescreen10 joined #perl6
12:54 masak yeah, something like that.
12:54 masak seems to be an addition since the 'macros' branch base.
12:54 masak fixing.
12:54 moritz yes, for better error reporting
12:55 moritz guess who complained about missing line numbers :-)
12:55 masak I can't imagine.
12:56 jaldhar joined #perl6
12:56 masak tadzik: actually, the name "Niecza" comes from some half-understood lyrics of a Czech music video on Youtube. we originally thought it meant "nie mamy czas", but it turned out they were really singing "my mamy czas" :)
12:57 masak ("we don't have time" and "we have time", respectively)
12:58 bluescreen10 joined #perl6
12:58 masak the music video in question is humorously subtitled with what it *sounds* like in Swedish. the words in the chorus sound like "min man e kass" ("my husband is worthless")
13:05 dalek rakudo/macros2: 071c4db | masak++ | src/Perl6/Actions.pm:
13:05 dalek rakudo/macros2: fixed another Red Queen
13:05 dalek rakudo/macros2:
13:05 dalek rakudo/macros2: The's now one extra parameter to create_signature_object. Adjusting
13:05 dalek rakudo/macros2: macro_def accordingly.
13:05 dalek rakudo/macros2: review: https://github.com/rakudo/rakudo/commit/071c4db81c
13:05 ggoebel left #perl6
13:06 jnthn masak: my *mame* cas :)
13:10 pat_js joined #perl6
13:10 masak ah.
13:16 donri left #perl6
13:21 donri joined #perl6
13:55 [Coke] can someone install libgd 2.0.28 or h
13:56 [Coke] igher on feather?
13:56 [Coke] not strictly perl related, but definitely open source. ;)
13:58 moritz [Coke]: I'll take a look
13:59 * [Coke] appreciates it, thanks.
14:00 dalek roast: c491713 | (Solomon Foster)++ | S (5 files):
14:00 dalek roast: Niecza refudge to deal with the Order issue.
14:00 dalek roast: review: https://github.com/perl6/roast/commit/c4917135e4
14:01 dalek niecza: 20527e1 | (Solomon Foster)++ | t/spectest.data:
14:01 dalek niecza: Turn off tests which no longer work due to Order issue.
14:01 dalek niecza: review: https://github.com/sorear/niecza/commit/20527e1772
14:01 [Coke] :(
14:02 moritz [Coke]: gd 2.0.36 installed
14:03 [Coke] moritz: \o/ !
14:03 [Coke] https://github.com/coke/famflags will be very happy now, thank you. :)
14:03 * moritz also runs a system upgrade
14:04 [Coke] So, who changed the tests to use the Order enum instead of the equivalent numbers?
14:04 [Coke] isn't that sort of raising the bar for raising the bar's sake frowned upon?
14:04 jnthn No, it's fixing the tests.
14:05 jnthn Enums stringify to the enum's name.
14:05 jnthn And the ops are spec'd as returning the enum
14:05 zhangkaizhao joined #perl6
14:05 jnthn If left as they were, a correct implementation that did this would fail the tests.;
14:06 moritz that would be very much LTA
14:06 fsergot joined #perl6
14:06 jnthn Yes, testing for correct behavior tends to be preferable. ;)
14:06 colomon The tests could have been fixed in such a way to remain compatible with, you know, every version of Perl 6 that existed before this week.
14:06 fsergot o/
14:07 colomon indeed, it would have been easier...
14:07 jnthn colomon: er. How exactly?
14:07 fsergot 'somefile'.lines still works?
14:07 colomon Numify the result of the comparisons
14:07 jnthn Great, then tests for comparison ops are also testing enum numification.
14:08 moritz fsergot: it returns all lines in the string 'somefile', which is just one
14:08 [Coke] jnthn: they're already testing enum stringification: that's better? ;)
14:08 fsergot So, i should give there filehandle?
14:08 [Coke] s/already/now/
14:09 fsergot Works now, moritz++ :)
14:09 moritz fsergot: yes. open('somefile').lines
14:10 [Coke] (actually, I'm not sure they are, based that on a previous comment here.)
14:11 [Coke] In any case, I just want us to be careful to segregate what we're testing so that implementations that do one thing aren't forced to do another unrelated thing in order to pass that test. that's all. (having fought that with no support from the test suite authors on partcl, it's no fun.)
14:12 jnthn [Coke]: imho, the tests as they stand now are the most obvious spectests to write for the ops in question
14:15 masak fsergot: or do a cast. 'somefile'.IO.lines
14:16 fsergot Oh, it's great. masak++
14:16 * moritz dislikes the cast for opening files
14:16 fsergot Why? :)
14:16 moritz for one it hides the fact that there's much more going on than a coercion
14:17 moritz if you want to grep for locations where you read files, it's much nicer if you can just grep for 'open'
14:17 [Coke] jnthn: best we can hope for, thank you. ;)
14:18 moritz it also means that we have to support IO operations on unopened IO objects that auto-open
14:18 masak moritz: the cast doesn't open the file.
14:18 moritz masak: right, the .lines does
14:18 moritz masak: which is the really weird part
14:18 moritz IO on unopened file handles?
14:18 moritz what could possibly go wrong?
14:18 masak I don't mind it.
14:18 [Coke] curses. GD.pm still isn't happy.
14:18 masak moritz: now writing is another matter.
14:19 masak moritz: but making reading easier is fine.
14:19 fsergot Interesting...
14:19 moritz masak: it means that reading from previously-exhausted file handles can automagically go back and re-open the file
14:20 moritz unless we explicitly mark such filehandles as "dead", or so
14:20 moritz hm, maybe we should.
14:22 sayu joined #perl6
14:22 koban left #perl6
14:23 moritz hm, the dist-upgrade on feather broke all perl modules
14:23 moritz "ooops"
14:23 Juerd All?
14:24 moritz ah no, aptitude offers me a small downgrade
14:24 [Coke] ah, is that why GD.pm is borked?
14:24 moritz commute, bbi30
14:24 moritz [Coke]: maybe
14:25 masak moritz: yes, I think we should.
14:26 masak easy enough to create a fresh IO object.
14:26 masak I never really liked IO objects either. the only thing worse than IO objects is the IO spec :/
14:27 masak we can't even rename "IO" to the much more sensible "File", because they're some odd mix of file, path, and STDIN-like thingy.
14:36 PacoAir joined #perl6
14:39 PacoAir_ joined #perl6
15:06 nornagest joined #perl6
15:11 flussence I'd be happy with a 1:1 copy of perl5's IO stuff
15:19 pat_js open $foo = 'filename'?
15:19 pat_js i'm glad that doesn't work in perl6 anymore
15:19 flussence well, minus stuff like 2-arg open...
15:20 pat_js that's one arg open
15:20 flussence two arg is bad enough :)
15:37 colomon sorear: last night's patches seem to help a lot.  Thank you!
15:38 moritz [Coke]: do you use the system mono on feather?
15:43 [Coke] moritz: yes.
15:44 [Coke] (/usr/bin/mono)
15:46 moritz it seems to be causing problem in an upgrade :/
15:48 jnthn yay, course done :)
15:49 * jnthn preps for decommute
15:51 [Coke] moritz: I can regroup if you have to upgrade it.
15:53 jnthn bbi 3h
15:56 thou joined #perl6
16:00 moritz [Coke]: if a bit of downtime is OK for you, I'd remove it, upgrade the rest of the system, and then try to install it again
16:00 moritz and if that fails, put a non-debian binary in /usr/local/
16:06 * moritz does it
16:07 * moritz must remember to install mono-complete afterwards
16:15 fsergot joined #perl6
16:17 MayDaniel joined #perl6
16:17 moritz short poll: does anybody use any GUI stuff on feather?
16:18 moritz it seems we have a complete X server, desktop environment etc. installed
16:18 moritz even gimp
16:18 moritz I can't imagine wanting to use a program like gimp over SSH....
16:21 [Coke] it's ok with me, yes.
16:21 [Coke] and the only thing I wanted was libGD so I could do some image manipulation once in a blue moon.
16:21 * [Coke] doesn't need any other GUI stuff.
16:21 moritz [Coke]: does GD.pm work now?
16:23 [Coke] checking.
16:24 [Coke] Nope, fail.
16:24 moritz how?
16:24 [Coke] /home/coke/.cpanm/build.log
16:24 [Coke] Might very well be a GD issue.
16:25 kaare_ joined #perl6
16:28 Juerd moritz: Every time I do a dist-upgrade on feather, I'm amazed at what people installed on it
16:29 moritz Juerd: I'll go with forgiveness > permission and remove the X environment
16:29 Juerd moritz: It's good to see that you have the same reaction, it makes me feel slightly more normal :)
16:29 moritz if somebody wants it back, they'll complain :-)
16:29 [Coke] or reinstall it.
16:29 Juerd xlibs and such are useful to get stuff like inkscape, which can also produce output on the command line.
16:29 Juerd But gimp... a desktop environment... nahhh
16:34 moritz we also have both apache and nginx
16:35 [Coke] is that needed for http://feather.perl6.nl ? (I use that.)
16:35 moritz apache2 is needed for that. nginx not, afaict
16:40 fsergot joined #perl6
16:45 ggoebel joined #perl6
16:47 az5112 joined #perl6
16:50 az5112 Hello. Label/loop/next question. Has the label syntax been agreed on already? Can I 'next' to the outer loop?
16:53 spine_ joined #perl6
16:54 moritz rakudo doesn't implement labels yet
16:54 moritz not sure about niecza
16:54 az5112 thanks moritz
16:59 moritz [Coke]: the GD thing doesn't look like an obviously misinstalled libgd or so, no idea what the problem is
17:00 moritz [Coke]: but note that the system perl comes with a hopefully working GD.pm
17:09 [Coke] moritz: ooh.
17:09 * [Coke] will try the sysperl.
17:10 [Coke] (can you install modern perl? ;)
17:11 [Coke] er, Modern::Perl, to be specific. (and it's only a nice to have.)
17:11 [Coke] hurm. http://feather.perl6.nl/~coke/ is 404ing.
17:37 alvis joined #perl6
17:40 arlinius joined #perl6
17:43 moritz [Coke]: Modern::Perl installed
17:43 kaleem joined #perl6
17:50 crashtest joined #perl6
17:53 slavik joined #perl6
17:57 Chillance joined #perl6
17:58 fsergot joined #perl6
17:59 masak my, what an elegant board game: http://www.cameronius.com/games/span/
17:59 masak I was going to suggest a Perl 6 implementation, but perhaps a JS implementation for browsers would be more apt...
18:02 [Coke] perl -MModern::Perl -e1; -> dies
18:02 [Coke] /usr/local/bin/perl ?
18:10 [Coke] moritz++
18:16 MayDaniel joined #perl6
18:17 moritz [Coke]: oh sorry, something went wrong with /usr/bin/perl
18:19 moritz [Coke]: fixed now
18:21 moritz installing mono now
18:25 [Coke] moritz++
18:26 * moritz installs debfoster and prepares himself for a loong rung
18:26 moritz *run
18:30 moritz wow, there's a g++3.3 installed on feather
18:31 moritz and a 4.0
18:32 moritz and a 4.5
18:32 * moritz keeps only the latter
18:33 moritz ... and a 4.2
18:33 moritz ... and a 4.4
18:33 slavik lol?
18:34 moritz I'm not sure if that still counts as "amusing"
18:38 * moritz removes the first patch of 155 packages, half a gig of disc space freed
18:39 moritz we also had 3 different mediawiki versions installed
18:39 benabik oy
18:39 moritz and lots and lots and lots of perl modules
18:39 moritz bank of america payment processing modules
18:39 moritz and stuff like that
18:40 moritz oh, and another webserver, lighttpd
18:44 * [Coke] imagines some people will be surprised when they return.
18:46 moritz that could happen, yes
18:47 moritz but considering that recently cron hasn't been running for a month, and nobody noticed... I wouldn't count on it
18:50 [Coke] dns just vanished.
18:53 moritz that is... unfortunate
18:53 * moritz debugs
18:53 moritz $ root@feather:~# cat /etc/resolv.conf
18:53 moritz nameserver 127.0.0.1
18:54 birdwindupbird joined #perl6
18:54 moritz ... and no DNS server running. Great.
18:54 moritz Juerd: is there a DNS server that feather can use? or should it resolve itself?
18:55 wolfman2000 joined #perl6
18:55 Juerd moritz: Hm, it should be running unbound as a local cache
18:55 Juerd moritz: Which in turn can use 193.200.132.160 as its source
18:55 Juerd (That .160 is redundant)
18:55 moritz Juerd: I might have accidentally uninstalled unbound. Will reinstall it
18:55 Juerd I see
18:56 Juerd Please configure it to use 193.200.132.160
18:56 moritz ok
18:56 benabik I used to love debfoster.  I tend to use aptitude's "mark as auto-installed" flag now.
18:59 moritz Juerd: is there a backup of /etc/unbound/ easily available from somewhere?
19:00 Juerd No, I have full system backups but it takes a few hours to restore something :)
19:00 Juerd I'd rather reconfig it myself :D
19:00 moritz Juerd: ok, then it's easier if I read up on how to do it :-)
19:00 Juerd Don't worry, I'll do it
19:01 araujo joined #perl6
19:01 * [Coke] hopes niecza is using the distracted moritz time to pull ahead. ;)
19:01 moritz Juerd: ok, thank you
19:01 moritz and sorry for breaking it in the first place :/
19:08 [Coke] dns back, yay.
19:08 [Coke] ... and gone again, whoops.
19:09 moritz if Juerd++ doesn't need to test unbound right now, I can put the IP of a public DNS server into resolv.conf
19:09 moritz until it's configured again
19:10 Juerd Fixed
19:10 [Coke] no rush. I got my stuff out in the moment it was back. ;)
19:12 [Coke] Juerd++ moritz++
19:12 moritz [Coke]: http://feather.perl6.nl/~coke/rakudo_summary.out is also back
19:14 TimToady nom: .say for Date.new("2012-01-01") .. Date.new("2012-12-31");
19:14 p6eval nom 029140: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu:U \$v, Mu %_!)␤␤  in method Numeric at src/gen/CORE.setting:649␤  in sub infix:<==> at src/gen/CORE.setting:2276␤  in method infinite at src/gen/CORE.setting:4207␤  in method r…
19:15 TimToady nom: .say for Date.new("2012-01-01") ... Date.new("2012-12-31");
19:15 moritz nom: my $x = Date.today; say ++$x;
19:15 p6eval nom 029140: OUTPUT«(timeout)»
19:15 p6eval nom 029140: OUTPUT«Date.new(2012, 1, 21)␤»
19:15 moritz nom: say Date.today.succ
19:15 p6eval nom 029140: OUTPUT«Date.new(2012, 1, 21)␤»
19:17 masak nom: class A { has @.a = 2,3; has $.a = 1 }; say "alive", A.new.a
19:17 p6eval nom 029140: OUTPUT«alive2 3␤»
19:17 masak anyone submit this rakudobug?
19:17 masak or maybe it was submitted long ago?
19:17 moritz nom: say Date.today cmp Date.today.succ
19:17 p6eval nom 029140: OUTPUT«Order::Increase␤»
19:17 * masak submits rakudobug, Justin Case
19:18 masak niecza: class A { has @.a = 2,3; has $.a = 1 }; say "alive", A.new.a
19:18 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two definitions of method a (see line 1) at /tmp/3qmxK2RJYF line 1:â�¤------> [32mclass A { has @.a = 2,3; has $.a [33mâ��[31m= 1 }; say "alive", A.new.a[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/…
19:18 TimToady you can submit the Date bugs too, unless moritz fixes it :)
19:18 moritz masak: did you see jnthn++'s  explanation in the backlog?
19:19 moritz masak: he says it's intentional, and it makes sense to me
19:19 masak no. looking.
19:19 moritz nom: say (Date.today cmp Date.today.succ) < 1
19:19 p6eval nom 029140: OUTPUT«Bool::True␤»
19:19 masak now I see it. it may make sense to you -- I think the above should be an error.
19:19 TimToady masak: speaking of backlog, excellent questions, meaning I'll have to think more about hyper/map stuff
19:19 masak because it indicates that the user is confused.
19:20 masak TimToady: :)
19:20 geekosaur see my later response to jnthn about it
19:21 * masak sees it
19:21 moritz geekosaur: if we want it that way, we have to spec it
19:21 masak I agree with geekosaur.
19:21 masak and I say error.
19:22 masak two different-sigiled public attrs, one in parent and one in child, are of course fine.
19:22 moritz should   has $!x; has @!x; also error out?
19:22 masak no.
19:22 masak hm, wait :)
19:22 moritz should has $.x; method x() { $!x } error out?
19:23 masak no.
19:23 TimToady not according to current spec, but the other way is arguable
19:23 moritz so, it's ok to not generate one accessor, but it's not ok to not generate two accessors?
19:23 masak I like the fact that $.x; method x doesn't error out.
19:23 masak moritz: yes.
19:23 moritz that is... confusing.
19:23 masak moritz: I have a rationale, too.
19:23 geekosaur no, which was jnthn's case, and my response was that that is acceptable and correct, it's specifically the case of multiple implicitly generated accessors that should somehow indicate that there is a conflict
19:24 geekosaur (also note that the case of { has $.x; has @;x; method x() } is also fine)
19:24 geekosaur er, @.x
19:24 * geekosaur kan tipe
19:25 masak hm. yes, that case should be fine, but "don't do that" :)
19:25 masak moritz: if I add another public attribute with a different sigil but the same name, I *want to know* that I did, at the earliest possible moment.
19:26 masak moritz: not thought a silent logical bug when I run the wrong accessor.
19:26 masak moritz: if I add a method that overrides an auto-generated attribute, I'm only happy if I don't have to go in and change the attribute's twigil from dot to bang, because both I and the compiler know what I just did.
19:26 moritz nom: say (1..*).perl
19:26 p6eval nom 029140: OUTPUT«1..Inf␤»
19:26 masak that's why it's two different behaviors.
19:27 masak nom: say (*..1).perl
19:27 p6eval nom 029140: OUTPUT«-Inf..1␤»
19:27 moritz nom: say 'Inf' ~~ Inf
19:27 p6eval nom 029140: OUTPUT«Bool::True␤»
19:27 masak nom: say '*' ~~ *
19:27 p6eval nom 029140: OUTPUT«Bool::True␤»
19:27 masak :D
19:28 benabik nom: 'dsfahj' ~~ *
19:28 p6eval nom 029140:  ( no output )
19:28 benabik nom: say 'dsfahj' ~~ *
19:28 geekosaur yes, that, exactly
19:28 p6eval nom 029140: OUTPUT«Bool::True␤»
19:28 * geekosaur trying to split attention over too many places, brain is not braining enough :/
19:28 TimToady whatever always matches anything
19:28 * masak appends all this to the ticket so that jnthn knows what to fix :)
19:29 moritz masak: fwiw I think that's something you could fix yourself if you wanted
19:29 moritz the attribute generation code is all Perl 6, and quite accessible
19:29 masak oh right, I'm an implementor!
19:30 masak (dang!)
19:30 [Coke] nom: say *~~*..*
19:30 p6eval nom 029140: OUTPUT«Bool::False␤»
19:30 * masak includes this in the ticket too so that jnthn can nag him
19:30 [Coke] nom: say *--*~~*..*
19:30 p6eval nom 029140: OUTPUT«WhateverCode.new()␤»
19:30 * [Coke] wonders how long we can make that. ;)
19:31 moritz nom: say (*..1)[0..4]
19:31 p6eval nom 029140: OUTPUT«-Inf -Inf -Inf -Inf -Inf␤»
19:31 moritz nom: say (*..1).list
19:31 p6eval nom 029140: OUTPUT«Failed allocation of 4096 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 105␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot.  Use parrotbug (located in parr…
19:31 moritz nom: say (1..*).list
19:31 p6eval nom 029140: OUTPUT«...␤»
19:32 moritz fwiw the Date range bug is that Range.infinite checks $.max == Inf
19:33 moritz and that calls Date.Numeric
19:33 moritz which in turn dies
19:33 TimToady huh
19:34 moritz "huh" sums it up pretty well
19:34 TimToady that's the first bug
19:34 moritz I know that ... is a different beast, yes
19:34 TimToady why does the ... form timeout?
19:34 pat_js joined #perl6
19:35 moritz because Date has no ACCEPTS method
19:35 moritz and thus it falls back to Any.ACCEPTS, which uses === semantics
19:35 TimToady which should work
19:35 TimToady if it's an immutable value type
19:35 moritz how could === possibly know that Date is immutable?
19:36 TimToady by the fact that .WHICH returns something that compares that way
19:36 moritz hm, right
19:36 TimToady === is just .WHICH eqv .WHICH really
19:38 TimToady maybe Date.Numeric should just return something arbitrary like # of days since 2000
19:38 TimToady or the Julian day, or whatever
19:39 TimToady nom: say Date.new(0)
19:39 p6eval nom 029140: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:561␤  in block <anon> at /tmp/DEuySNezl4:1␤  in <anon> at /tmp/DEuySNezl4:1␤»
19:39 TimToady LTA error there too
19:39 TimToady nom: say Date.new(0,0,0)
19:39 p6eval nom 029140: OUTPUT«month out of range. Is: 0, should be in 1..12␤  in method check-value at src/gen/CORE.setting:8071␤  in method check-date at src/gen/CORE.setting:8079␤  in method new at src/gen/CORE.setting:8387␤  in method new at src/gen/CORE.setting:8393␤  in block <anon> at /tmp/U…
19:40 TimToady nom: say Date.new(20120101)
19:40 p6eval nom 029140: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:561␤  in block <anon> at /tmp/W_QoMQ6r3m:1␤  in <anon> at /tmp/W_QoMQ6r3m:1␤»
19:40 TimToady nom: say v2012.1.1
19:41 p6eval nom 029140: OUTPUT«===SORRY!===␤Confused at line 1, near "say v2012."␤»
19:41 TimToady lunch &
19:42 dukeleto joined #perl6
19:42 dukeleto joined #perl6
19:43 dukeleto joined #perl6
19:43 dukeleto joined #perl6
19:44 dukeleto joined #perl6
19:44 dukeleto joined #perl6
19:45 dukeleto joined #perl6
19:46 dukeleto joined #perl6
19:46 wolfman2_ joined #perl6
19:47 dukeleto joined #perl6
19:48 ashleydev joined #perl6
19:55 jnthn "it's specifically the case of multiple implicitly generated accessors that should somehow indicate that there is a conflict" - I love the "somehow" in this. Please remember that custom meta-attributes and custom accessor generation will be quite a common meta-programming pattern - or afaik Moose meta-hackers do such things quite often.
19:55 jnthn I agree with the goal, just not quite sure how to factor it so the "so was this generated" magic goes in the right place.
19:55 masak noted.
19:56 masak I see the need for such caution.
19:56 masak all I'm arguing for is for the default to be helpful :)
19:56 jnthn I mean, the obvious way for me to deal with the ticket is to put some hack into Attribute.compose. But I can already see the followup pain. :)
19:57 masak let's plan ahead as much as makes sense.
19:57 masak I mean, we don't want attribute metanauts to curse us forever, either.
19:57 jnthn Maybe we should detect it at an actions/world level.
19:58 masak sounds like a composition thing, to me.
19:58 jnthn ?
19:58 moritz $ ./perl6  -e 'say (Date.new(2012,1,18)..Date.today).list'
19:58 moritz 2012-01-18 2012-01-19 2012-01-20
19:58 masak "did this group of similarly-named private attrs all want an attribute? hang them!"
19:58 moritz $ ./perl6  -e 'say (Date.new(2012,1,18)...Date.today).list'
19:58 moritz 2012-01-18 2012-01-19 2012-01-20
19:58 doy perl -Moose -E'has foo => (is => "ro"); has bar => (reader => "foo")' # You are overwriting an accessor (foo) for the foo attribute with a new accessor method for the bar attribute at ...
19:58 doy for what it's worth
19:59 moritz hm, maybe we just need a bit more introspection facility
19:59 jnthn doy: Does it complain if you wrote your own method foo already?
19:59 masak doy: yes, but Moose doesn't have subs overriding those declarations. Perl 6 does.
19:59 doy jnthn: no
19:59 wolfman2000 joined #perl6
19:59 masak right.
19:59 jnthn oh
19:59 jnthn I know
19:59 moritz not only "does this thing have an accessor", but also "was it autogenerated"
19:59 jnthn ClassHOW.compose's loop over the attribute meta-objects to compose them could easily do it and throw
19:59 doy what do you mean "subs overriding those declarations"?
19:59 jnthn Or warn.
20:00 masak it's easy: human-generated trumps (and silences) autogenerated. several autogenerateds conflict.
20:00 masak doy: just a 'sub foo {}' after your example.
20:01 masak jnthn: throw sounds excellent.
20:01 masak jnthn: but only if there's no explicit method!
20:01 jnthn masak: er
20:01 jnthn masak: OK, example time! :)
20:02 masak heh :)
20:02 jnthn class A { has $.a; method a() { } } # no throw
20:02 masak nod
20:02 jnthn class A { has $.a; has @.a;} } # throw
20:02 masak nod
20:02 jnthn (er, not 'cus of the extra } )
20:02 masak :P
20:02 masak go on.
20:02 jnthn class A { has $.a; has @.a; method a() {} } # also throw
20:02 masak nope.
20:02 jnthn No?
20:03 masak not in my twisted universe.
20:03 * jnthn irons masak's universe
20:03 masak human-generated always wins.
20:03 masak well, actually.
20:03 masak I don't mind if that one throws.
20:03 jnthn masak: OK, human generated is the "safety valve" for "I know what I'm doing"?
20:03 masak right.
20:03 jnthn masak: Well, to me it means something REALLY odd is going on.
20:03 masak because it suppresses the autogenerated ones, it removes the conflict.
20:03 jnthn I mean, for one what is A.new(a => ...) gonna do?
20:04 masak you're not allowed to do that with attributes that have no publ... oh wait :P
20:04 jnthn I'm worried about more than just the accesosr generation conflict. :)
20:04 masak but srsly. my way makes sense, and indicates there's a third thing we don't have a name for.
20:05 jnthn Hm.
20:05 masak A.new(a => ...) is suspect *every time a method has overridden the autogenerated accessor*.
20:05 [Coke] Hm is not a good name for it.
20:05 masak *lol*
20:05 jnthn [Coke]: How about "UmmmmDunno" :P
20:06 [Coke] much better.
20:06 jnthn masak: How so?
20:06 jnthn masak: We don't call the accessor to set the attribute.
20:06 masak jnthn: yeah. and that's weird.
20:06 jnthn masak: Otherwise you'd only be able to set "is rw" attrs with new.
20:06 masak hm, true.
20:06 * masak needs to slow down and think
20:07 jnthn Also please don't make object construction even slower than we already make it. :)
20:07 masak rightright.
20:07 masak but something sunky is goin' on here.
20:07 jnthn masak: I'm inclined to do the conservative thing and throw on my third case for the time being.
20:08 jnthn masak: I'm gonna do it in ClassHOw
20:08 jnthn *ClassHOW
20:08 jnthn Which is subclassable. :)
20:08 masak why do we override the autogenerated accessor with out own? because we made a refactor inside our encapsulation and we want to honor the API.
20:08 masak so we're moving from the autogenerated accessor to more of a derived-value accessor.
20:09 moritz so we need a custom .new too
20:09 masak like if we switch from $!students which only counts 'em to @!students which knows their names, too.
20:09 dalek rakudo/nom: 21107e5 | moritz++ | src/core/Range.pm:
20:09 dalek rakudo/nom: fix non-numeric, no-Str ranges
20:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/21107e5635
20:09 dalek rakudo/nom: 6f8846b | moritz++ | src/core/Temporal.pm:
20:09 dalek rakudo/nom: custom Date.WHICH
20:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f8846b28a
20:10 masak or from $.students to @!students + method students { +@!students }, rather.
20:10 masak feels like a reasonable refactor to do.
20:10 masak but the .new(students => 7) call will break expectations, and there's no automatic way to fix it.
20:11 jnthn No, in some cases you have to write code. :)
20:11 jnthn (e.g. a BUILD method :))
20:11 masak right, custom constructor.
20:11 jnthn *submethod
20:11 ashleydev joined #perl6
20:12 masak jnthn: I'm fine with $.a and @.a conflicting, even if there's a method a :)
20:12 masak I'm fine with it throwing, I mean.
20:14 jnthn masak: OK. And as I said, I'll do it in ClassHOW, so folks can write a module to do otherwise if they wish. :)
20:14 jnthn Makes me much happier than my actions/world suggestion.
20:14 masak jnthn++ # happiness-driven development
20:14 * jnthn pulls latest stuffs
20:16 not_gerd joined #perl6
20:16 not_gerd hello, #perl6
20:16 moritz jnthn: I have to admit I haven't fully spectested the last two commits
20:16 jnthn moritz: ok :)
20:16 moritz nom: say ('Ine' ... 'Inf').list
20:16 p6eval nom 029140: OUTPUT«Ine Inf␤»
20:16 not_gerd jnthn: could you test if NQP still builds with https://gist.github.com/1649338 applied?
20:17 jnthn moritz: Of your revertfest earlier, what made it back in?
20:17 masak not_gerd! \o/
20:17 moritz jnthn: everything except <prior>
20:17 not_gerd jnthn: on non-Cygwin Windows, that is
20:17 jnthn moritz: OK
20:18 jnthn not_gerd: Yeah, I don't do Cygwin Windows. :)
20:18 * moritz tests not_gerd's patches on linux
20:18 jnthn Happy you're fixing it for those who do, though. :)
20:19 jnthn not_gerd: Trying it now.
20:19 not_gerd jnthn, moritz: thanks
20:20 not_gerd btw, how did the DLLs get copied on valilla-Windows?
20:20 not_gerd win32_libparrot_copy got set, but never used...
20:21 jnthn not_gerd: No, they didn't...there's a trac ticket abotu that.
20:21 jnthn Seems the line in question got lost at some point.
20:22 jnthn OK, it builds and passes tests with that patch here.
20:22 jnthn not_gerd: Do you have a commit bit, or want me to apply?
20:22 moritz same here (though some qregex tests still fail, due to the backtrcking-into-subrules thing=
20:22 jnthn (will wait for moritz++'s result too)
20:22 jnthn moritz: Yeah, I'll get onto those tomorrow.
20:23 not_gerd feel free to apply - I probably won't do any more fixes in the near future
20:23 not_gerd (aside from a corresponding rakudo-fix, that is...)
20:25 dalek nqp: 4319fd2 | jnthn++ | / (2 files):
20:25 dalek nqp: Cygwin build fixes. Patch courtesy of not_gerd++.
20:25 dalek nqp: review: https://github.com/perl6/nqp/commit/4319fd2018
20:29 moritz $ perl Configure.pl
20:29 moritz /home/moritz/p6/rakudo/install/bin/nqp: error while loading shared libraries: libparrot.so.3.11.0: cannot open shared object file: No such file or directory
20:29 not_gerd :(
20:29 moritz that's rakudo's configure
20:29 jnthn moritz: I...thought you just said it worked? :)
20:29 moritz nqp passed all its tests
20:29 moritz and it installed
20:29 jnthn oh, *Rakudo's*
20:29 moritz but rakudo doesn't work with the installed nqp :(
20:29 jnthn hm. It did here.
20:30 not_gerd it shouldn't actually do anything on non-Windows platforms...
20:30 not_gerd could you paste the generated Makefile?
20:30 moritz sure, just a sec
20:31 moritz not_gerd: http://moritz.faui2k3.org/tmp/Makefile
20:31 moritz oh wait, that's the rakudo makefile
20:31 moritz you want the nqp Makefile, no?
20:31 not_gerd yes, please
20:31 moritz not_gerd: http://moritz.faui2k3.org/tmp/nqp-Makefile
20:32 MayDaniel joined #perl6
20:34 moritz it's the first time I've built with parrot 3.11.0
20:34 moritz maybe it's not even related to the nqp patch
20:34 ksi joined #perl6
20:34 moritz let me check a few things before you invest too much time in debugging
20:36 jnthn afk for a little bit
20:39 bluescreen10 joined #perl6
20:40 moritz not_gerd, jnthn: never mind, cannot be reproduced after a clean rebuild
20:41 crashtest left #perl6
20:42 not_gerd moritz: could you check if LIBPARROT is now set in NQP's Makefile?
20:42 not_gerd if so, then that was the error
20:43 dalek roast: 1c8bdfe | moritz++ | S03-operators/range.t:
20:43 dalek roast: unfudge a now passing test
20:43 dalek roast: review: https://github.com/perl6/roast/commit/1c8bdfe160
20:44 moritz not_gerd: not set
20:44 dnewkirk_ joined #perl6
20:45 moritz not_gerd: I think that I recompiled parrot and didn't reconfigure nqp
20:45 moritz not_gerd: which is usually fine, but not if you upgrade between parrot versions
20:45 moritz because then the paths change
20:47 not_gerd from what I can see, you somehow ended up with an empty inst_libparrot_ldflags
20:50 tarski joined #perl6
20:51 moritz is the current DateTime also immutable?
20:51 araujo joined #perl6
20:51 araujo joined #perl6
20:51 masak in the spec? yes.
20:51 tarski will perl6 like perl5 be postmodern: support topicalization, context, TIMTOWTDI, etc
20:51 moritz yes
20:52 tarski good to hear
20:52 moritz though it does try to offer one obvious way, in addition to various other ways to do stuff :-)
20:54 tarski one obvious way is fine, as long as that obvious way gets out of your way, otherwise youre now talking modernism
20:55 masak tarski: I have a little mental bell going off whenever people ask "will perl6..." as if it exists solely in the future.
20:56 moritz masak: I was also very close to writing "it already has"
20:56 masak I think it's worth pointing out that there is software, *today*, under the name "Perl 6".
20:57 masak tarski: not laying any blame, just gently pointing out. you should try Rakudo or Niecza, they're both great. :)
20:57 tarski masak: will do.
20:59 masak \o/
21:00 moritz perl6: say 'OH HAI I EXISTS'
21:00 p6eval pugs b927740, rakudo 6f8846, niecza v13-313-ge748acd: OUTPUT«OH HAI I EXISTS␤»
21:01 moritz somehow the name "taski" rings a bell, but I have trouble locating it... does that name appear in a mathematical theorem?
21:01 doy http://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox
21:01 tarski moritz: yes tarski's theory of truth, and he laid much of the framework for model theory
21:02 moritz doy: that was the one I was thinking of, yes
21:02 masak moritz: "Some people, when faced with a problem, say 'I know, I'll use the Banach-Tarski theorem!'"
21:03 masak a recent tweet by someone ;)
21:03 moritz :-)
21:03 * moritz loves meta jokes
21:05 dalek roast: 02f41d9 | moritz++ | S32-temporal/Date.t:
21:05 dalek roast: Date objects should smart-match correct
21:05 dalek roast: review: https://github.com/perl6/roast/commit/02f41d9762
21:05 moritz nom: say Date.today ~~ Date.today
21:05 p6eval nom 6f8846: OUTPUT«Bool::True␤»
21:06 moritz nom: say ~(Date.new('2012-01-14) .. Date.today)
21:06 p6eval nom 6f8846: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2␤»
21:06 moritz nom: say (Date.new('2011-01-14') .. Date.today).elems
21:06 p6eval nom 6f8846: OUTPUT«372␤»
21:06 moritz nom: say (Date.new('2011-01-14') ... Date.today).elems
21:06 p6eval nom 6f8846: OUTPUT«372␤»
21:07 moritz both Date problems fixed that TimToady++ discovered earlier
21:07 moritz (and tested)
21:08 TimToady nom: say Date.today
21:08 p6eval nom 6f8846: OUTPUT«Date.new(2012, 1, 20)␤»
21:08 TimToady that should .gist to .Str, not to .perl, I think
21:08 TimToady nom: say ~Date.today
21:08 p6eval nom 6f8846: OUTPUT«2012-01-20␤»
21:09 moritz then we don't know from the output that it's a Date
21:09 [Coke] nom: my $a="100.B".."102.B";say $a;say "$a";
21:09 p6eval nom 6f8846: OUTPUT«"100.B".."102.B"␤100.B 101.B 102.B␤»
21:09 TimToady .gist is supposed to lose information, or something like that...
21:09 TimToady it's obvious that anything that starts 2012- is a date
21:10 [Coke] moritz++
21:10 moritz TimToady: yeah, that it's a date, but not that it's a Date (SCNR) :-)
21:10 TimToady I would go so far as to say that a human will recognize 2012-01-20 much faster than Date.new(2012, 1, 20)
21:19 TimToady http://rosettacode.org/wiki/Last_Fridays_of_year#Perl_6 thanks to moritz++
21:21 not_gerd Rakudo Cygwin patch: https://gist.github.com/1649678
21:21 not_gerd should unbreak --gen-nqp --gen-parrot
21:26 [Coke] I am tempted to go through and rosettacode everything in coldfusion.
21:26 [Coke] ...
21:26 [Coke] ...
21:26 [Coke] ... ok, that passed, good.
21:26 mikemol Do it.
21:27 [Coke] I would rather continue to muck the stalls of niecza & rakudo.
21:29 [Coke] TimToady: is the [1..12] needed there?
21:30 TimToady [0] is Any()
21:30 TimToady I could do .month-1
21:30 [Coke] eh.
21:30 [Coke] this way looks nicer.
21:30 TimToady yeah, eh
21:30 [Coke] TimToady++
21:30 TimToady well, I'm going to replace $_ with .Str
21:30 TimToady though I wish .gist did that
21:32 y3llow_ joined #perl6
21:33 pothos_ joined #perl6
21:35 y3llow joined #perl6
21:35 masak perl6: say "2012-01-01".Date
21:36 p6eval pugs b927740: OUTPUT«*** No such method in class Str: "&Date"␤    at /tmp/8ZwzYudqxZ line 1, column 5 - line 2, column 1␤»
21:36 p6eval ..niecza v13-313-ge748acd: OUTPUT«Unhandled exception: Unable to resolve method Date in class Str␤  at /tmp/MQUuo_DsbY line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3107 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3108 (module-CORE @ 60) ␤  at /home/…
21:36 p6eval ..rakudo 6f8846: OUTPUT«Method 'Date' not found for invocant of class 'Str'␤  in block <anon> at /tmp/z8cowbKDql:1␤  in <anon> at /tmp/z8cowbKDql:1␤»
21:36 pothos joined #perl6
21:36 TimToady arguably Date("2012-01-01") should work
21:37 y3llow joined #perl6
21:38 masak aye, maybe that's clearer.
21:38 masak but... aside from namespace pollution, I see no harm in having a Cool.Date method.
21:39 masak it'll make someone somewhere happy :)
21:39 colomon I want a Cool.Date
21:39 colomon :)
21:39 pothos joined #perl6
21:39 masak there you go :)
21:39 [Coke] I'd settle for Any.Date
21:39 masak :P
21:39 masak blog post: "Perl 6 gets a Cool.Date"
21:39 y3llow joined #perl6
21:44 masak actually... having it sit on Cool doesn't confer any real advantage compared to having it sit on Str... but somehow, on Str it feels more clutter-y and difficult to defend.
21:45 tadzik o/
21:45 masak \o
21:47 * jnthn back, though a tad headachey
21:47 not_gerd jnthn: https://gist.github.com/1649678
21:47 not_gerd (test needed)
21:48 jnthn k
21:49 jnthn testing
21:49 dnewkirk joined #perl6
21:59 jnthn not_gerd: built fine here
22:00 not_gerd jnthn: great
22:00 not_gerd it *should* not affect non-Windows builds, but feel free to get confirmation before applying...
22:01 * not_gerd looks at moritz
22:01 jnthn OK. It's commited locally already, but will wait a moment for pushing in case somebody else has chance to test it.
22:03 masak TimToady: that last-Fridays solution is woefully imperative, and wastes resources. here's how it should be done:
22:03 masak nom: my $year = 2038; say ~.value.reverse.first: *.day-of-week == 5 for (Date.new("$year-01-01") .. Date.new("$year-12-31")).classify: *.month
22:03 masak p6eval: hey!
22:03 * jnthn chuckles
22:03 dalek joined #perl6
22:04 masak must be a year 2038 bug.
22:04 masak anyway, it works locally :)
22:04 p6eval joined #perl6
22:04 masak nom: my $year = 2038; say ~.value.reverse.first: *.day-of-week == 5 for (Date.new("$year-01-01") .. Date.new("$year-12-31")).classify: *.month
22:05 geekosaur crashing the bot was so much fun the first time that you want to do it again? :p
22:05 p6eval nom 6f8846: OUTPUT«2038-01-29␤2038-02-26␤2038-03-26␤2038-04-30␤2038-05-28␤2038-06-25␤2038-07-30␤2038-08-27␤2038-09-24␤2038-10-29␤2038-11-26␤2038-12-31␤»
22:05 masak geekosaur: I don't see why it should crash the bot.
22:05 p6eval nom 6f8846: OUTPUT«2038-01-29␤2038-02-26␤2038-03-26␤2038-04-30␤2038-05-28␤2038-06-25␤2038-07-30␤2038-08-27␤2038-09-24␤2038-10-29␤2038-11-26␤2038-12-31␤»
22:05 masak there we go!
22:05 REPLeffect joined #perl6
22:05 masak it even got the first one :)
22:06 masak my motto: use .classify more :)
22:12 TimToady fell free to add a second solution :)
22:12 TimToady feel, even
22:12 * masak does so
22:13 * not_gerd will be back in a minute
22:14 not_gerd left #perl6
22:16 not_gerd joined #perl6
22:19 masak http://rosettacode.org/wiki/Last_Fridays_of_year#Perl_6 now has the alternative solution.
22:20 masak is there a sub form of classify?
22:20 masak nom: say &foo.WHAT
22:20 p6eval nom 6f8846: OUTPUT«===SORRY!===␤Symbol '&foo' not predeclared in <anonymous> (/tmp/aPf3k2EWx5:1)␤»
22:20 masak nom: say &classify.WHAT
22:20 p6eval nom 6f8846: OUTPUT«Sub()␤»
22:21 masak oh, there is!
22:21 * masak twiddles
22:21 icwiener joined #perl6
22:22 dalek joined #perl6
22:24 d4l3k_ joined #perl6
22:26 TimToady niecza: my sub infix:<_> ($a,$b) is equiv(&infix:<==>) { $a eqv $b }; say "foo" !_ "bar"
22:26 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0m��Cannot negate _ because like infix:<==> operators are not iffy enough at /tmp/olpCGKoStx line 1:�------> [32m&infix:<==>) { $a eqv $b }; say "foo" !_[33m�[31m "bar"[0m��Parse failed��»
22:26 TimToady sorear: ^^ doesn't think _ is chaining
22:27 TimToady niecza: my Bool sub infix:<_> ($a,$b) is equiv(&infix:<==>) { $a eqv $b }; say "foo" !_ "bar"
22:29 TimToady niecza: say "hi"
22:30 TimToady nom: say "hi"
22:30 masak p6eval is a bit slow today.
22:30 TimToady hmmm
22:30 masak give her a minute.
22:30 TimToady the 'my Bool' was already 3 minutes ago
22:31 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0m��Cannot negate _ because like infix:<==> operators are not iffy enough at /tmp/AffjXr_7mq line 1:�------> [32m&infix:<==>) { $a eqv $b }; say "foo" !_[33m�[31m "bar"[0m��Parse failed��»
22:31 p6eval niecza v13-313-ge748acd: OUTPUT«hi␤»
22:31 p6eval nom 6f8846: OUTPUT«hi␤»
22:31 TimToady heh, didn't know p6eval could hold its breath that long
22:32 TimToady in any case, an infix that returns Bool should be considered iffy
22:33 TimToady bbl &
22:34 jnthn not_gerd: Pushing your patches, if any Linux-folk find they bust things I'm sure they'll yelp, but it looks unlikely.
22:34 dalek rakudo/nom: 8d9c2fe | jnthn++ | docs/ChangeLog:
22:34 dalek rakudo/nom: Update ChangeLog.
22:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d9c2fecc1
22:34 dalek rakudo/nom: 25967be | jnthn++ | / (3 files):
22:34 dalek rakudo/nom: Fix build on Cygwin; patch courtesy of not_gerd++.
22:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25967beec9
22:34 dalek rakudo/nom: f5da44b | jnthn++ | docs/ChangeLog:
22:34 dalek rakudo/nom: Mention Cygwin build fixes in ChangeLog.
22:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5da44bb04
22:34 dalek rakudo/nom: 5dbca1f | jnthn++ | src/core/Temporal.pm:
22:34 dalek rakudo/nom: Use native types in ymd-from-daycount, shaving ~7% off masak++'s example.
22:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5dbca1f5a8
22:41 not_gerd jnthn: next stop: cross-compiling native Win64 binaries from Cygwin
22:41 masak nom: my @a = <a b c>; say @a>>.uc
22:41 p6eval nom 6f8846: OUTPUT«A B C␤»
22:42 masak nom: my @a = <a b c>; say .>>uc given @a
22:42 p6eval nom 6f8846: OUTPUT«===SORRY!===␤Confused at line 1, near "say .>>uc "␤»
22:42 masak niecza: my @a = <a b c>; say .>>uc given @a
22:42 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0m��Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/jQud39_6rN line 1:�------> [32mmy @a = <a b c>; say[33m�[31m .>>uc given @a[0m��Confused at /tmp/…
22:42 masak huh.
22:42 masak std: my @a = <a b c>; say .>>uc given @a
22:42 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/IjR_hkdgsK line 1:�------> [32mmy @a = <a b c>; say[33m�[31m .>>uc given @a[0m�Confused at /tmp/IjR_hkdgsK lin…
22:42 masak oh, all right! :P
22:43 masak so I can't have .>>meth for some reason... :)
22:43 jnthn er, it's @a>>.foo, not @a.>>foo :)
22:44 masak oh!
22:44 masak nom: my @a = <a b c>; say >>.uc given @a
22:44 p6eval nom 6f8846: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead at line 1, near ">.uc given"␤»
22:44 masak niecza: my @a = <a b c>; say >>.uc given @a
22:44 p6eval niecza v13-313-ge748acd: OUTPUT«[31m===[0mSORRY![31m===[0m��Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/fIpJxj_DiM line 1:�------> [32mmy @a = <a b c>; say[33m�[31m >>.uc given @a[0m��Method call found…
22:45 masak std: my @a = <a b c>; say >>.uc given @a
22:45 p6eval std 40d10f7: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/OpXVfjFafv line 1:�------> [32mmy @a = <a b c>; say[33m�[31m >>.uc given @a[0m�Method call found where infix e…
22:45 masak I was confused, but my point still holds. :)
22:46 masak hah! this is how magical macros are:
22:46 masak $ ./perl6 -e 'my @a; push @a, 2; macro foo { push @a, 1; quasi {} }; say @a.perl; foo'
22:47 masak Array.new(1, 2)
22:47 masak (yes, that actually runs locally)
22:47 jnthn heh :)
22:47 jnthn nice ;)
22:47 masak I know!
22:48 masak something to blow people's noodles with in Erlangen :P
22:50 * jnthn prefers his noodles stir-fried rather than blown, but ok... :P
22:53 dalek rakudo/nom: e3c0af1 | jnthn++ | src/core/Hash.pm:
22:53 dalek rakudo/nom: Speed up hash indexing dramatically by avoiding a bunch of delegation. Re-use is good, but not on such a hot path. Shaves a further 11% off masak++'s date example (and probably shaves a bit off many programs).
22:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e3c0af1f14
22:53 masak huh!
22:53 masak $ ./perl6 -e 'macro foo { quasi { foo } }; say foo'
22:53 masak AST.new()
22:53 masak I... I don't think that's correct.
22:53 masak should this be just an infinite recursion?
22:54 masak I can easily see people accidentally using infix:<+> inside of their macro infix:<+>...
22:55 masak aha! now I get why it returns that. :)
22:56 masak the macro is entered twice -- once at parse time, and once at run time.
22:57 masak TimToady: when a macro is called in the &foo() form, what does it return?
22:58 masak oh, the spec actually says.
22:58 masak the AST from &foo() is supposed to be intercepted, and eval'd.
22:58 masak just like I guess the arguments have to be intercepted at the front of the run-time macro call, and ASTized.
22:59 masak jnthn: do you think it's a good idea to auto-wrap macros under the hood so they behave like this?
22:59 jnthn "auto-wrap"?
23:00 masak I mean, wrap as an automatic part of passing from compile to run.
23:00 sorear good * #perl6
23:00 masak sorear! \o/
23:00 jnthn masak: Not sure if that'll do it
23:00 jnthn masak: macro foo() { blah blah blah }; BEGIN { &foo() }
23:01 sorear looks like too much scrollback
23:01 araujo joined #perl6
23:01 araujo joined #perl6
23:02 masak oh, but it's such nice scrollback
23:02 masak jnthn: dang.
23:02 masak jnthn: guess the dispatch'll have to typecheck on Macro then.
23:02 jnthn :S
23:03 jnthn masak: Or macro arguments are implicitly coerced to AST
23:03 jnthn masak: Which is a no-op if it gets an AST
23:03 masak that works in that end, but not in the other end.
23:03 jnthn Which other end? :)
23:03 masak returning an AST.
23:04 masak 'sides, it's gonna piss off someone who wants to runtime-call macros on actual ASTs :)
23:04 jnthn Huh? What I suggested will not break that.
23:04 masak no, maybe not.
23:04 jnthn Returning bit is still le tricky though.
23:04 masak it'll just create a discontinuity that people may not expect.
23:05 molaf joined #perl6
23:05 jferrero joined #perl6
23:06 araujo joined #perl6
23:06 araujo joined #perl6
23:06 masak question is, how will we even dispatch if the macro expects a bunch of ASTs and the arguments are Int, Str etc?
23:06 masak :/
23:07 sorear colomon: What's the Order issue?  How did I break Order?
23:07 masak it's almost like the wrapping into ASTs has to be done *before* dispatch, as soon as we realize that the object is a Macro.
23:07 jnthn masak: That's why I said coercion.
23:07 jnthn as AST
23:07 jnthn Or whatever the new syntax is :)
23:07 masak well, AST(Int).
23:08 jnthn No, 'cus that'll bust it when the compiler really does pass an AST :)
23:08 jnthn AST() I guess :)
23:09 masak time to sleep here.
23:09 masak 'night, #Perl6
23:09 jnthn 'night o/
23:10 whiteknight joined #perl6
23:19 jnthn Time for a good, long sleep... &
23:24 cooper joined #perl6
23:25 colomon sorear: you didn't break Order.  But we don't really support it yet.
23:25 p4 left #perl6
23:26 colomon sorear: it's there, I see.  Just need to chance all the comparison operators to support it.
23:26 colomon sorear: I'll take a stab at it after Henry is asleep.
23:32 tokuhirom joined #perl6
23:40 Trashlord joined #perl6
23:42 sftp joined #perl6
23:49 donri left #perl6

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

Perl 6 | Reference Documentation | Rakudo