Camelia, the Perl 6 bug

IRC log for #perl6, 2011-08-01

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 lue rakudo: say "10.25".fmt("%x")
00:00 p6eval rakudo 922500: OUTPUT«a␤»
00:01 pmichaud rakudo:  say 10.25.base(16)
00:01 p6eval rakudo 922500: OUTPUT«Method 'base' not found for invocant of class 'Rat'␤  in main program body at line 22:/tmp/jyzgSFkeRO␤»
00:02 pmichaud rakudo:  say (10.25).Real.base(16)
00:02 p6eval rakudo 922500: OUTPUT«Method 'base' not found for invocant of class 'Rat'␤  in main program body at line 22:/tmp/ZOewWMkxdX␤»
00:02 pmichaud hmm.
00:02 pmichaud S32 defines .base but apparently it's NYI in rakudo.
00:02 lue Sure I could create my own sub to do it myself, I just think P6 should be able to go both ways [I don't recall such a function ever existing]
00:02 pmichaud S32 says .base should work on any Real
00:02 * lue looks at S32
00:03 pmichaud S32:243
00:03 benabik pmichaud: benabik  (Complicated, I know. ;-)
00:03 pmichaud benabik: I always confirm rather than assume.  :)
00:03 benabik pmichaud: Safer that way.  :-)
00:04 benabik [Coke]: pmichaud: (Sorry for slow responses, I'm away from home and trying to pack up to go back.)
00:04 pmichaud benabik: you now have commitbit to perl6 repos
00:05 benabik pmichaud: I will use it irresponsibly.
00:05 pmichaud +1
00:05 benabik s/ir//
00:05 pmichaud either way works :)
00:08 lue so &base is a method inside the Real role? I feel like implementing it [but first, other stuff to do :/]
00:08 pmichaud it could be a method in Num, and Real delegates to it.
00:08 benabik How do you throw something in nom?  die?
00:10 pmichaud yes, die works.
00:10 lue Is Num above Real, like Mu is above Any?
00:10 pmichaud Real is a role
00:10 pmichaud Num does Real
00:10 pmichaud Int does Real
00:11 benabik And it does! > die 1; CATCH { say $! } # OUTPUT«1␤»
00:12 lue I just thought of putting &base in Real, because that's where S32::Num says it goes :)
00:15 pmichaud Real is good... we can move it if we want a different factoring
00:16 dalek features: 9adc9b2 | Coke++ | template.html:
00:16 dalek features: spec? vs. code* - put spec first.
00:16 dalek features: review: https://github.com/perl6/f​eatures/commit/9adc9b2a1f
00:22 lue afk --nom-time
00:24 CrazyPotato joined #perl6
00:24 benabik left #perl6
00:34 [particle]1 is now known as [particle]
00:35 [Coke] ZOMG it's [particle]
00:47 PacoLinux left #perl6
00:48 CrazyPotato left #perl6
00:51 PacoLinux joined #perl6
00:53 whiteknight left #perl6
00:53 steampunkey what's a .pod?
00:56 meteorjay left #perl6
01:00 TimToady Plain Old Documentatoin
01:00 TimToady *tion
01:02 lichtkind good night
01:02 lichtkind o/
01:03 lichtkind left #perl6
01:03 jdhore TimToady, Did you create POD or did someone else?
01:03 crked just like a struct in C
01:04 TimToady I did the original
01:05 TimToady the new is mostly the work of @Damian
01:05 TimToady though I specced that =begin/=end had to work right
01:05 jdhore TimToady, Ah, nice. I had no idea if the original was you or if it came later.
01:11 tokuhirom left #perl6
01:11 tokuhirom joined #perl6
01:15 wolfman2000 left #perl6
01:16 tokuhirom left #perl6
01:31 fbass left #perl6
01:35 woosley joined #perl6
01:40 donri left #perl6
01:41 wolfman2000 joined #perl6
01:56 fbass joined #perl6
02:05 Reaganomicon left #perl6
02:10 crked Hi perl6, can I ask a question on perl5 ?
02:11 crked Someone else asked me and I really cannot figure out. It's about the perl -l usage with the here-doc structure
02:13 crked When I do perl -l  <<EOF      then $a = 1;  then EOF.  It seems the $a will be interpreted by bash first.
02:13 crked But when I do perl -l <<"EOF"   the result is correct
02:13 crked I really don't know the difference between  perl -l <<EOF  and perl -l <<"EOF"
02:13 crked I am using perl 5.10
02:17 lue crked: I've never used Perl 5, but I know from using the Perl 6 commandline that using single quotes should keep bash from interfering with the variables.
02:17 lue Have you tried #perl ? That's a much better place to ask Perl 5 questions if you haven't tried that already.
02:19 crked Thanks, I will try there.
02:24 djanatyn Hey, has anyone here used YAML?
02:29 PacoLinux left #perl6
02:31 [particle]1 joined #perl6
02:33 [particle] left #perl6
02:33 * djanatyn is going to write his static website generator, using YAML! :D
02:35 fbass left #perl6
02:35 fbass joined #perl6
02:40 am0c joined #perl6
02:48 djanatyn Also, *wow*. The Ratel library in the Web.pm module is really interesting.
02:48 djanatyn How exactly would I install the Web module?
02:51 fbass left #perl6
02:51 fbass joined #perl6
02:57 dalek roast: 5e16d04 | lue++ | S32-num/base.t:
02:57 dalek roast: Added three non-integer tests to S32-num/base.t
02:57 dalek roast: review: https://github.com/perl6/roast/commit/5e16d049aa
03:01 Tene djanatyn: Thanks; I don't know if it's been worked on since I wrote the first draft a few years back (I think that was me...)
03:02 djanatyn Tene: did you see my first (well, kinda first) perl 6 code?
03:02 Tene no
03:02 djanatyn one second, let me edit out this bug
03:03 crked1 joined #perl6
03:03 djanatyn there we go!
03:03 crked left #perl6
03:03 djanatyn https://gist.github.com/1117266 <-- it's...somewhat messy.
03:03 djanatyn also, forgot to implement that suggestion that masak had
03:03 steampunkey left #perl6
03:04 djanatyn But it runs, and uses a couple features from Perl 6 :)
03:04 * crked1 slaps crked1 around a bit with a large trout
03:04 Tene nice
03:05 djanatyn ...that sounds...vaguely familiar.
03:05 djanatyn Is that an irssi or mIRC plugin?
03:05 djanatyn Or is crked1 an IRC bot? ;)
03:05 fbass left #perl6
03:11 envi joined #perl6
03:20 crked1 left #perl6
03:23 Su-Shee_ joined #perl6
03:25 jimmy1980 left #perl6
03:27 Su-Shee left #perl6
03:31 jimmy1980 joined #perl6
03:44 benabik joined #perl6
03:49 molaf joined #perl6
03:50 rdesfo left #perl6
03:52 sorear djanatyn: it's an old mIRC feature
03:56 djanatyn sorear: Ah.
03:57 soh_cah_toa joined #perl6
04:00 soh_cah_toa i saw on dev.perl.org that localtime() and gmtime() should be date() and utcdate() in p6. has this not been implemented yet in rakudo? i only see time()
04:03 molaf left #perl6
04:06 daniel-s joined #perl6
04:10 birdwindupbird joined #perl6
04:11 daniel-s left #perl6
04:11 daniel-s joined #perl6
04:13 satyavvd joined #perl6
04:15 daniel-s left #perl6
04:17 daniel-s joined #perl6
04:21 [Coke] OOC, where on dev.perl.org?
04:22 [Coke] (you really want to look at http://perlcabal.org/syn/) - if you're looking at the old RFCs or apocolypses, those are out of date.
04:22 soh_cah_toa http://dev.perl.org/perl6/rfc/48.html
04:22 soh_cah_toa ok
04:23 [Coke] soh_cah_toa: try: http://perlcabal.org/syn/S32/Temporal.html
04:23 [Coke] the rfcs were the communities initial proposals, btw, a lot of that didn't survive Larry.
04:23 [Coke] "community's" *sigh*
04:24 soh_cah_toa yeah, i usually do look at perlcabal. just couldn't find anything about time functions. clearly, i didn't look hard enough :)
04:25 soh_cah_toa ah, looks like DateTime was what i need
04:25 soh_cah_toa [Coke]++
04:26 [Coke] is anyone from the channel working the dev.perl.org folks? If not, I can resurrect my old old thread with Robrt about the site and get some minor updates there. (like moving the SYN up to the top of the list.)
04:26 djanatyn Grr. :\
04:26 djanatyn Is HTTP::Daemon a Perl 6 module, or a Perl 5 module?
04:28 [Coke] it is at least the latter.
04:28 soh_cah_toa djanatyn: perl 5
04:28 djanatyn ...oh.
04:28 djanatyn So, Web.pm depends on a Perl 5 module.
04:28 djanatyn *headdesk*
04:29 [Coke] I would ping masak about that, perhaps semi-obviously.
04:30 djanatyn yep :)
04:38 dalek features: 1220ece | larry++ | features.json:
04:38 dalek features: clarify "multi-dim params" means LoL arg/params
04:38 dalek features: review: https://github.com/perl6/f​eatures/commit/1220ece39d
04:38 sorear does Web use HTTP::Daemon:from<perl5>?
04:38 djanatyn Dunno. I think so.
04:48 djanatyn Is there a way to forcibly install a module using Panda? :)
04:50 soh_cah_toa left #perl6
04:51 flatwhatson joined #perl6
04:55 flatwhatson left #perl6
04:56 Tene djanatyn: there's a Perl 6 version of HTTP::Daemon
04:56 Tene djanatyn: check out the web module on masak's github, iirc
04:59 djanatyn o_e;
04:59 djanatyn That's what I'm trying to do.
04:59 djanatyn I've downloaded the web module, I've tried to copy files over into my perl6 library directory
04:59 djanatyn ~/.perl6/lib
05:01 djanatyn the web module on github has a folder, "lib"
05:02 djanatyn Am I supposed to just copy the contents of that folder into ~/.perl6/lib/ ?
05:03 birdwindupbird left #perl6
05:04 sorear no, you're supposed to use panda or ufo or proto or neutro
05:05 djanatyn But using panda doesn't work :P
05:05 djanatyn panda complains about not havinng HTTP::Daemon, and when I try to install that, it can't find it in the ecosystem.
05:06 djanatyn the ecosystem appears to be a repo on github, apparently
05:06 djanatyn I've been looking in there, but I can't really find any HTTP::Daemons either.
05:06 benabik Huh.  CATCH seems to work in nom, but try { CATCH } doesn't.
05:08 benabik Oh, wait...
05:09 benabik nom: try { die "a" ; CATCH { say $_ } }
05:09 p6eval nom: OUTPUT«a␤»
05:09 benabik nom: try { die "a" ; CATCH { say $_.uc } }
05:09 p6eval nom: OUTPUT«(timeout)»
05:09 benabik That segfaults after a long wait here.
05:10 benabik So try { CATCH } works, but CATCH { $_.uc } doesn't.
05:11 benabik nom: CATCH { .say }; die 'a'
05:11 p6eval nom: OUTPUT«a␤»
05:11 benabik nom: CATCH { .uc.say }; die 'a'
05:11 p6eval nom: OUTPUT«(timeout)»
05:12 benabik nom: Exception.new
05:12 p6eval nom:  ( no output )
05:12 benabik Yeah, it doesn't like that.
05:13 benabik get_pmc_keyed_str() not implemented in class 'Mu'
05:14 benabik Ah!
05:14 benabik nom: die 'a'; CATCH { .bogus }
05:14 p6eval nom: OUTPUT«(timeout)»
05:14 benabik Unknown methods on Exception causes segfault instead of an error message.  LTA.
05:16 benabik Should I just use issues on github, or is there another place for rakudobugs?
05:16 benabik Ah.  No github issues...
05:18 * benabik submits rakudobug.
05:18 birdwindupbird joined #perl6
05:24 benabik nom: Exception.new
05:24 p6eval nom:  ( no output )
05:24 benabik The interactive prompt crashes from that.
05:24 benabik nom: say Exception.new
05:24 p6eval nom: OUTPUT«get_pmc_keyed_str() not implemented in class 'Mu'␤current instr.: 'Str' pc 675508 (src/gen/CORE.setting.pir:184163) (src/gen/CORE.setting:4507)␤»
05:25 benabik Probably related to that, although the fact that interactive crashes after the error is LTA.
05:28 benabik perl6: die 'a'; CATCH { say .does('uc') }
05:29 p6eval niecza v8-9-g2bbb19a: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Action method statement_control:CATCH not yet implemented at /tmp/0KbxqvQ3K9 line 1 (EOF):␤------> [32mdie 'a'; CATCH { say .does('uc') }[33m⏏[31m<EOL>[0m␤␤Unhandled exception: Unable to resolve method statement_level in c…
05:29 p6eval ..pugs: OUTPUT«*** a␤    at /tmp/Ruimp54ae2 line 1, column 1-8␤»
05:29 p6eval ..rakudo 922500: OUTPUT«0␤»
05:29 benabik Hm.  perl6: doesn't run nom yet.
05:30 TimToady er, .does('uc') makes no sense
05:30 TimToady did you mean .can('uc') ?
05:30 benabik Uh, yes?
05:30 TimToady 'uc' isn't a type name, and .does requires a type
05:30 TimToady a role, in fact
05:31 benabik Yes.  I mixed up does and can.
05:32 TimToady .does(Hamlet) but .can('stab')
05:33 benabik TimToady: Is exception supposed to be able to .can('uc')?  It's used in the Rosetta Code example for Exceptions.
05:34 TimToady nom: say Cool.can('uc')
05:34 p6eval nom: OUTPUT«uc␤»
05:34 benabik nom: say Exception.does(Cool)
05:34 p6eval nom: OUTPUT«Bool::False␤»
05:35 TimToady it can if the Exception is Cool, but that's not guaranteed
05:36 benabik I'm thinking about removing the .uc from the RC example, but don't want to if it's correct and rakudo is wrong.  :-D
05:36 TimToady which one?
05:36 benabik http://rosettacode.org/wiki/Exceptions#Perl_6
05:37 TimToady it's probably useful to be able to pattern match an exception as a string
05:40 PerlJam TimToady: can a single block have multiple ENTER phasers?
05:40 TimToady yes
05:40 PerlJam and they are executed in which order?
05:41 PerlJam (I assume LEAVE phasers are analogous but opposite to ENTER phasers)
05:42 TimToady S04:1380
05:42 PerlJam that doesn't say anything about execution order :)
05:43 TimToady no, but it was originally stated in A4, iirc
05:43 TimToady entering stuff (ENTER, BEGIN, START) happen in order declared
05:43 TimToady exiting stuff happens in opposite order
05:44 PerlJam okay, that's what I figured.
05:46 drbean left #perl6
05:48 jnthn morning, #perl6
05:49 koban joined #perl6
05:49 dalek specs: c493227 | larry++ | S04-control.pod:
05:49 dalek specs: define normal order for init vs final phasers
05:49 dalek specs: review: https://github.com/perl6/specs/commit/c493227793
05:49 koban left #perl6
05:49 PerlJam jnthn: good morning.
05:49 PerlJam jnthn: I was just puzzling out how to add ENTER and LEAVE phasers to nom.  Got any advice?
05:50 jnthn PerlJam: LEAVE is really hard.
05:50 PerlJam well, it's good I'm looking at ENTER right now then  :)
05:50 dalek features: b813c7c | larry++ | features.json:
05:50 dalek features: give lambdas and placeholders their own entries
05:50 dalek features: review: https://github.com/perl6/f​eatures/commit/b813c7ca86
05:50 dalek features: 67b5637 | larry++ | features.json:
05:50 dalek features: more codes
05:50 dalek features: review: https://github.com/perl6/f​eatures/commit/67b5637e47
05:51 PerlJam jnthn: LEAVE is hard because of stack unwinding?
05:51 jnthn ENTER is probably should an unshift onto the start of the PAST::Stmts for the block
05:51 jnthn PerlJam: Right.
05:51 TimToady it'd be a push if you execute them in order
05:51 TimToady LEAVE would unshift, methinks
05:52 TimToady oh, the standments, not the ENTER list
05:52 TimToady *state
05:52 PerlJam jnthn: the spec also says that they're available as a trait on the block.  Not sure how to do that
05:52 jnthn hm
05:53 jnthn Is that true of phasers generally?
05:53 jnthn I guess can't be for BEGIN and CHECK...
05:54 benabik rakudo: die 'a'; CATCH { say .uc }
05:54 p6eval rakudo 922500: OUTPUT«A␤»
05:56 PerlJam I guess there's no trait_mod:<will> yet either
05:57 fhelmberger left #perl6
05:57 jnthn hm
05:57 jnthn There is
05:57 fhelmberger joined #perl6
05:57 jnthn I'm just curious what happens with multiple ENTERs.
05:58 jnthn See $*ST.apply_trait for examples of trait application in Actions.pm
05:59 TimToady pugs: ENTER { say "hi" }; ENTER { say "lo" }; LEAVE { say "HI" }; LEAVE { say "LO" }
05:59 p6eval pugs: OUTPUT«LO␤»
05:59 sorear hehehe
05:59 TimToady hmm
06:00 TimToady perl6: ENTER { say "hi" }; ENTER { say "lo" }; LEAVE { say "HI" }; LEAVE { say "LO" }
06:00 PerlJam last one wins?
06:00 p6eval pugs: OUTPUT«LO␤»
06:00 p6eval ..niecza v8-9-g2bbb19a: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Action method statement_prefix:ENTER not yet implemented at /tmp/FVl_SSeIqV line 1:␤------> [32mENTER { say "hi" }[33m⏏[31m; ENTER { say "lo" }; LEAVE { say "HI" }[0m␤␤Action method statement_prefix:ENTER not yet implement…
06:00 p6eval ..rakudo 922500: OUTPUT«===SORRY!===␤ENTER phaser not yet implemented at line 22, near "; ENTER { "␤»
06:00 TimToady should say hi lo LO HI
06:00 PerlJam pugs: ENTER { say "hi" }; ENTER { say "lo" }
06:00 p6eval pugs: OUTPUT«lo␤»
06:00 PerlJam pugs: ENTER { say "hi" }; LEAVE { say "what?" }; ENTER { say "lo" }
06:00 p6eval pugs: OUTPUT«lo␤»
06:00 jnthn (Mostly because will normally takes a block...)
06:00 PerlJam yep
06:01 * sorear hasn't bothered to figure out how to implement LEAVE yet
06:01 jnthn omgz...commute time already!
06:01 jnthn &
06:01 sorear ENTER should be pretty easy though. I think niecza had ENTER pre-mm
06:05 PerlJam sorear: well, you can re-add it and update http://perl6.org/compilers/features and be ahead of rakudo in yet another area :)
06:07 benabik With control exceptions, I'd think that LEAVE would be something that catches return exceptions, calls the block, and rethrows.
06:07 PerlJam not just return exceptions though
06:07 TimToady you'd think, but that's not when LEAVE runs
06:07 benabik True.  All exceptions, I guess.
06:07 TimToady it runs at stack unwind time
06:08 TimToady which is after any exception is handled
06:08 TimToady so it's only the stack unwinder that has to care
06:09 benabik P6 is specced as using stacks?  Can't implement with CPS?
06:09 TimToady well, just do anything non-idempotent in a LEAVE :)
06:09 TimToady *don't
06:10 wtw joined #perl6
06:11 sorear benabik: cps is really a kind of stack if you squint right.  A linked list stack.
06:11 TimToady so like, only close files in GC, not in LEAVE ;)
06:12 benabik sorear: So "stack unwind time" is "call continuation time"?  LEAVE would wrap the caller continuation with a "call this block first" one?
06:12 PerlJam there's a GC phaser?!?  ;-)
06:12 TimToady yeah, called DESTROY :)
06:13 sorear benabik: stack unwind time means when an exception has committed to not being resumable
06:13 benabik But LEAVE is called at both exception and return time, yes?
06:13 benabik sorear: Well, then you're wrapping the "exception failed" continuation.  ;-D
06:14 sorear benabik: exceptions are not built on continuations
06:14 sorear unless they are
06:14 benabik If you're writing a compiler with CPS they should be.
06:15 TimToady in that case stack unwinding is also a form of GC, and you can't do it till the lower continuation is thrown away :)
06:16 TimToady basically, you shouldn't be mixing transactional commits with continuations that refuse to commit
06:17 TimToady maybe we should allow Shroedinger Files to be both open and closed at the same time :)
06:19 TimToady I note that Ruby is de-emphasizing continuations these days
06:19 TimToady continuations are problematic unless you can carry hypothetical universes along with them
06:19 benabik If I understand CPS correctly, then you should have a both a "commit" and a "abort" continuation for something that's supposed to be transaction like.
06:20 kjeldahlw joined #perl6
06:20 TimToady well, but in the case of a deep continuation, you need something more like "commit" vs "uncommit"
06:21 TimToady "Ha, ha, I didn't *really* close that file..."
06:22 drbean joined #perl6
06:22 benabik The real trick in CPS is passing around and wrapping the continuations properly.  Whether things aren't saved until "commit" is called or things are undone when "abort" is called is really an implementation choice.
06:22 TimToady CPS doesn't really mix well with mutable state, and filehandles are mutable
06:23 TimToady all the mutable state must be inherent to the continuation for CPS to work well
06:23 Su-Shee_ is now known as Su-Shee
06:23 * PerlJam needs some sleep before work (~6.5 hours from now)
06:24 PerlJam I guess my ENTER adventure with nom will have to wait until later
06:24 * PerlJam .zZZZ
06:24 TimToady much like we do with Cursors in perl6 grammars, where the mutable state is carried along with the current Cursor, and thrown away if you throw away the Cursor
06:24 TimToady night, PerlJam
06:26 benabik It's more that you need to ensure that any cleanup is called with all continuations.  But you run into the same problem in any non-linear control flow.  Early returns and exceptions do the same thing.
06:26 TimToady it almost makes you want to have an IO monad...  :)
06:26 drbean left #perl6
06:26 drbean joined #perl6
06:27 drbean_ joined #perl6
06:28 drbean_ left #perl6
06:38 noganex_ is now known as noganex
06:44 mj41 joined #perl6
07:16 pernatiy left #perl6
07:16 mathw \o/ IO monad
07:17 sorear o/ mathw
07:17 mathw o/ sorear
07:17 pernatiy joined #perl6
07:19 wamba joined #perl6
07:20 pernatiy left #perl6
07:21 pernatiy joined #perl6
07:21 kjeldahlw left #perl6
07:25 lumi_ joined #perl6
07:46 moritz lue-- # not running the tests he commits
07:47 dalek roast: f450fca | moritz++ | S (4 files):
07:47 dalek roast: rakudo unfudges
07:47 dalek roast: review: https://github.com/perl6/roast/commit/f450fca4d0
07:47 dalek roast: 9e531b5 | moritz++ | S32-num/base.t:
07:47 dalek roast: fix syntax error in base.t
07:47 dalek roast: review: https://github.com/perl6/roast/commit/9e531b5bd1
07:59 shinobicl hi
07:59 sorear TimToady: consider class A { }; say $OUR::(A).  Should this error because A !~~ Cool, or should it be treated like OUR::<$A()> ?
07:59 sorear shinobicl: hi
07:59 shinobicl if i define an operator as part of a role
07:59 araujo left #perl6
07:59 sorear no
07:59 sorear operators are subs, subs are lexically scoped
08:00 sorear only visible in one brace-group unless exported from a module
08:01 sorear ...did I anticipate the wrong question?  should have waited :(
08:01 shinobicl no, it is ok
08:01 kjeldahlw joined #perl6
08:01 shinobicl i had definen an operator inside a role. It didn't work
08:02 shinobicl i guess i can oly use a class for that, then. Is just that the operator <-> is defined for a Date.
08:03 shinobicl i would like to have a special <-> for Dates with certain role (role Workday)
08:03 sorear class versus role (should) make no difference
08:04 shinobicl role Workday { ...; method infix:<-> (Date $start, Date $target) { ... } }
08:04 shinobicl
08:04 shinobicl my $d = Date.new does Workday; my $d2 = Date.new does Workday;
08:05 benabik role Workday {}; multi infix:<->(Workday $s, Workday $t)  # Why not this?
08:05 shinobicl Workday is a role, not a class
08:06 benabik You should be able to use roles in multi signatures.
08:06 shinobicl say $d - $d2; # --- This should call my version of <->
08:06 sorear shinobicl: you don't write operators like that
08:06 sorear shinobicl: infix:<-> *must* be a sub
08:06 sorear not a method
08:06 shinobicl oh
08:06 sorear benabik models correct usage
08:11 mikehh left #perl6
08:11 kjeldahlw left #perl6
08:12 kjeldahlw joined #perl6
08:16 woosley1 joined #perl6
08:16 moritz note that operators are just subs, and subs are lexically scoped
08:17 kjeldahlw left #perl6
08:17 moritz shinobicl: so if you define an infix:<-> inside a role, it will only work inside that role by default
08:17 Coleoid_ left #perl6
08:17 kjeldahl joined #perl6
08:17 woosley left #perl6
08:19 daxim joined #perl6
08:21 espadrine` joined #perl6
08:29 shinobicl left #perl6
08:33 dalek book: 920b6b4 | moritz++ | src/basics.pod:
08:33 dalek book: avoid space in an identifer, qwebirc99822++
08:33 dalek book: review: https://github.com/perl6/book/commit/920b6b4523
08:37 woosley1 left #perl6
08:46 stepnem left #perl6
08:51 noganex_ joined #perl6
08:51 stepnem joined #perl6
08:51 espadrine` left #perl6
08:52 dalek niecza: 77bc5f0 | sorear++ | src/ (2 files):
08:52 dalek niecza: Name refactor part 4: basic names through <variable>
08:52 dalek niecza: review: https://github.com/sorear/niecza/commit/77bc5f0b1f
08:52 * sorear out
08:54 noganex left #perl6
08:58 tadzik good morning #perl6
08:59 moritz good morning tadzik
08:59 * moritz goes off to get some cake from a co-worker
09:00 tadzik o, a birthday? :)
09:07 noganex_ is now known as noganex
09:12 im2ee joined #perl6
09:20 eiro left #perl6
09:25 eiro joined #perl6
09:39 Reaganomicon joined #perl6
09:44 moritz tadzik: no, maternal leave
09:52 ab5tract joined #perl6
09:59 max joined #perl6
09:59 max is now known as Guest18070
10:00 Guest18070 left #perl6
10:08 pernatiy left #perl6
10:18 MayDaniel joined #perl6
10:22 kfo_ joined #perl6
10:23 Butterfly77 joined #perl6
10:24 Butterfly77 left #perl6
10:26 kfo left #perl6
10:30 frettled left #perl6
10:55 MayDaniel left #perl6
10:55 pernatiy joined #perl6
11:01 antonio_ joined #perl6
11:01 antonio_ is now known as odoacre
11:10 mls_ joined #perl6
11:10 mls_ hi perl6!
11:11 mls__ joined #perl6
11:12 mls__ jnthn: I made the last test in try.t work
11:14 mls__ patch: https://gist.github.com/1117955
11:15 mls_ left #perl6
11:20 araujo joined #perl6
11:22 mls__ One thing I noticed that should still be fixed is that the CATCH blocks appear *twice* in the genereated pir
11:23 mls__ same subid, same code, but different sub name
11:24 icwiener joined #perl6
11:25 mls__ afk, lunch...
11:36 jaldhar left #perl6
11:39 jaldhar joined #perl6
11:45 moritz nom: try { pir::throw__vP('foo'); CATCH { say $! } }
11:45 p6eval nom: OUTPUT«Not a throwable object␤»
11:47 moritz how do I make an object throwable?
11:49 gfldex left #perl6
11:49 gfldex joined #perl6
11:51 moritz lemme guess, one needs to actually create parrot Exception, and attach Perl 6 exception object as payload somehow
11:52 moritz nqp: try { die("foo"); CATCH { say(pir::typeof($!) } };
11:52 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
11:52 moritz std: try { die("foo"); CATCH { say(pir::typeof($!) } };
11:52 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse argument list at /tmp/LvMQeXrH4H line 1:␤------> [32mtry { die("foo"); CATCH { say[33m⏏[31m(pir::typeof($!) } };[0m␤Couldn't find final ')'; gave up at /tmp/LvMQeXrH4H line 1:␤------> [32mdie("foo"); CATCH { say(pir…
11:53 moritz nqp: try { die("foo"); CATCH { say(pir::typeof($_) } };
11:53 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
11:54 satyavvd left #perl6
11:57 moritz nqp: try { pir::die(pir::new__PS('Exception')); CATCH { say($_) } }
11:57 p6eval nqp: OUTPUT«␤»
11:57 moritz nqp: try { pir::die(pir::new__PS('Exception')); CATCH { say(pir::tyepof($_)) } }
11:57 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P1017')␤ in file '(file unknown)' line 156␤error:imcc:syntax error ... somewhere␤        in file '(file unknown)' line 170␤syntax error ... somewhere␤»
11:57 moritz nqp: try { pir::die(pir::new__PS('Exception')); CATCH { say(pir::typeof($_)) } }
11:57 p6eval nqp: OUTPUT«Exception␤»
11:57 JimmyZ joined #perl6
11:58 Alias joined #perl6
12:06 mls__ back from lunch...
12:11 gfldex perl6: sub test(Str $s){ say $s; }; my Str multi a(){ return "stringling" }; my Int multi a(){ return 9000 }; test(a());
12:11 p6eval pugs: OUTPUT«stringling␤»
12:11 p6eval ..niecza v8-10-g77bc5f0: OUTPUT«Unhandled exception: Ambiguous dispatch for &a␤  at  line 0 (&a @ 0) ␤  at /tmp/OFoV4rI2vm line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1933 (CORE C906_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1934 (CORE module…
12:11 p6eval ..rakudo 922500: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:()␤:()␤␤  in main program body at line 22:/tmp/9nNq78jk5M␤»
12:11 gfldex nom: sub test(Str $s){ say $s; }; my Str multi a(){ return "stringling" }; my Int multi a(){ return 9000 }; test(a());
12:11 p6eval nom: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:()␤:()␤␤current instr.: 'a' pc 592 ((file unknown):36813071) (/tmp/YMeagp5Hfw:1)␤»
12:12 gfldex looks like pugs wins in this case
12:12 moritz return types don't participate in MMD
12:12 moritz no, it conforms to an outdate spec
12:13 gfldex what is the reason for that spec change?
12:13 moritz yes, computability
12:13 moritz what if test() was a multi with one Int and one Str candidate?
12:14 gfldex it would be ambiguous and should trigger a nice error message
12:14 moritz multis make it impossible to determine what context a routine is called in
12:16 gfldex that makes the return type of a multi pretty much useless
12:19 flussence std: multi a(Int $) { ... }; multi a(Str $) { ... }; my $x; .?a($x); # probably doesn't work, just curious whether it did
12:19 p6eval std 516268a: OUTPUT«ok 00:01 123m␤»
12:19 flussence oh.
12:19 f00li5h left #perl6
12:20 flussence rakudo: multi a(Int $) { ... }; multi a(Str $) { ... }; sub b { 'str' }; .?a(b());
12:20 p6eval rakudo 922500:  ( no output )
12:20 flussence rakudo: multi a(Int $) { say 'int' }; multi a(Str $) { say 'str' }; sub b { 'str' }; .?a(b());
12:20 p6eval rakudo 922500:  ( no output )
12:20 flussence rakudo: multi a(Int $) { say 'int' }; multi a(Str $) { say 'str' }; sub b { 'str' }; .?a(b()); say 'alive'
12:20 p6eval rakudo 922500: OUTPUT«alive␤»
12:21 flussence rakudo: multi a(Int $) { say 'int' }; multi a(Str $) { say 'str' }; sub b { 1234 }; .*a(b());
12:21 moritz that doesn't do what you probably think it does
12:21 p6eval rakudo 922500:  ( no output )
12:21 flussence I can see that :)
12:21 flussence I'm surprised it's not a syntax error though
12:21 moritz it tries to call a method named 'a' on $_, which is Any
12:21 moritz but since you say .?a, it doesn't error out when it can't find that method
12:21 flussence oh, makes sense.
12:22 flussence would main{something-goes-here}.*a() work there?
12:22 flussence rakudo: multi a(Int $) { say 'int' }; multi a(Str $) { say 'str' }; sub b { 1234 }; main::.*a(b());
12:22 p6eval rakudo 922500: OUTPUT«Could not find sub &main␤  in main program body at line 22:/tmp/2i1emIcEC_␤»
12:23 moritz flussence: what do you try to achieve?
12:23 flussence wondering if the .? .+ .* syntax would work on normal subs
12:23 moritz well...
12:24 moritz nom: multi f(Real $x) { 'real' }; multi f(Int $x) { 'int' }; say 1.+&f
12:24 p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'f'. Available candidates are:␤:(Int $x)␤:(Real $x)␤␤current instr.: 'f' pc 476 ((file unknown):486) (/tmp/kkBgD0UTT7:1)␤»
12:24 moritz nom: multi f(Real $x) { 'real' }; multi f(Int $x) { 'int' }; say 1.&f
12:24 p6eval nom: OUTPUT«int␤»
12:24 moritz might be a bug that it doesn't work with .+
12:25 moritz rakudo: multi f(Real $x) { 'real' }; multi f(Int $x) { 'int' }; say 1.&f
12:25 p6eval rakudo 922500: OUTPUT«int␤»
12:25 moritz rakudo: multi f(Real $x) { 'real' }; multi f(Int $x) { 'int' }; say 1.+&f
12:25 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Cannot use .+ on a non-identifier method call at line 22, near ""␤»
12:25 moritz niecza: multi f(Real $x) { 'real' }; multi f(Int $x) { 'int' }; say 1.+&f
12:25 p6eval niecza v8-10-g77bc5f0: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Modified method calls can only be used with actual methods at /tmp/8LskGshEdk line 1 (EOF):␤------> [32m }; multi f(Int $x) { 'int' }; say 1.+&f[33m⏏[31m<EOL>[0m␤␤Potential difficulties:␤  $x is declared but not used at /…
12:25 flussence well, at least the error messages are descriptive...
12:27 mls__ jnthn: https://gist.github.com/1118036 different version of patch, creates one "set" opcode less but also works
12:35 wtw left #perl6
12:39 icwiener left #perl6
12:41 gfldex if i have a function as a parameter, can i specify a signature i want to have for that function?
12:41 flussence iirc, yes
12:41 moritz should be possible with nested signatures
12:42 gfldex where can i find that in the spec?
12:42 moritz S06 :-)
12:42 moritz t/spec/S06-signature/closure-parameters.t has a few examples
12:42 wooden joined #perl6
12:42 moritz my sub testit (&testcode:(Int --> Bool)) {testcode(3)}
12:43 gfldex tyvm
12:43 gfldex i even understand why there is --> now :)
12:44 flussence .oO( note to self: make sure you're not on the live DB before you issue a "TRUNCATE TABLE"... )
12:44 moritz note to flussence: don't be on the live DB.
12:44 [Coke] urk.
12:44 flussence (good thing everything at $dayjob is painfully out of date, because I got a syntax error :)
12:44 moritz :-)
12:46 jlaire I did that once to 10+ tables, but I restored it so quickly that nobody noticed :P
12:46 gfldex nom: my Str multi a(&c:(Str)){ &c("stringling") }; my Int multi a(&c:(Int)){ &c(9000) }; sub string_say(Str $s){ say $s }; sub int_say(Int $i){ say $i }; a(&string_printer); a(&int_say);
12:46 p6eval nom: OUTPUT«Method 'make_signature' not found for invocant of class 'Perl6::SymbolTable'␤current instr.: 'nqp;Perl6;Actions;fakesignature' pc 63565 (src/gen/perl6-actions.pir:22434) (src/Perl6/Actions.pm:1749)␤»
12:46 gfldex perl6: my Str multi a(&c:(Str)){ &c("stringling") }; my Int multi a(&c:(Int)){ &c(9000) }; sub string_say(Str $s){ say $s }; sub int_say(Int $i){ say $i }; a(&string_printer); a(&int_say);
12:46 p6eval rakudo 922500: OUTPUT«===SORRY!===␤traits specified as colon pairs not yet understood at line 22, near "){ &c(\"str"␤»
12:46 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "("␤    expecting space or ")"␤    at /tmp/OnvbrjPHx_ line 1, column 19␤»
12:46 p6eval ..niecza v8-10-g77bc5f0: OUTPUT«Unhandled exception: Unable to resolve method ast in class Any␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 1894 (NieczaActions NieczaActions.parameter @ 149) ␤  at /home/p6eval/niecza/src/STD.pm6 line 2919 (STD P6.parameter @ 312) ␤  at /home/p6eval…
12:47 * jlaire considered changing the terminal's background to red when it's ssh'd to a live server
12:47 moritz red, like the blood you spill if something goes wrong?
12:47 gfldex std: my Str multi a(&c:(Str)){ &c("stringling") }; my Int multi a(&c:(Int)){ &c(9000) }; sub string_say(Str $s){ say $s }; sub int_say(Int $i){ say $i }; a(&string_printer); a(&int_say);
12:47 p6eval std 516268a: OUTPUT«ok 00:01 128m␤»
12:49 gfldex now i have my return type of a multi taken into account without having a return type on that multi :)
12:50 jimmy1980 left #perl6
12:51 jimmy1980 joined #perl6
12:54 moritz jnthn: https://gist.github.com/1118066 a compilation error I don-t know how to handle
12:54 moritz if taking the route via --target=pir, it produces  perl6_decontainerize_return_value $P100,
12:55 moritz (without a second argument)
12:55 jlaire rakudo: class C { our sub f() {} }; C.new::f
12:55 p6eval rakudo 922500: OUTPUT«Null PMC access in find_method('ACCEPTS')␤  in main program body at line 22:/tmp/OCGeQSEf3e␤»
12:56 jlaire nom: class C { our sub f() { say 42 } }; C.new::f
12:56 p6eval nom: OUTPUT«Could not find symbol 'new'␤current instr.: 'die' pc 576872 (src/gen/CORE.setting.pir:135292) (src/gen/CORE.setting:290)␤»
12:56 moritz nom: class C { our sub f() { say 42 } }; C::f
12:56 p6eval nom: OUTPUT«42␤»
12:56 jlaire can I access C<f> through an instance of C<C>?
12:57 gfldex rakudo: class C { our sub f() {} }; C.new.f
12:57 p6eval rakudo 922500: OUTPUT«Method 'f' not found for invocant of class 'C'␤  in main program body at line 22:/tmp/2GpDszCcFG␤»
12:57 moritz nom: class C { our sub f() { say 42 } }; C.new.WHO<&f>.()
12:57 p6eval nom: OUTPUT«42␤»
12:57 jlaire hmm, thanks
12:57 moritz but it's not really "through the instance"
12:58 moritz because it just looks up the symbol table that belongs to the class that belongs to the instance
13:01 mls__ moritz: just put a "1;" at the end of my-die
13:02 moritz mls__: thanks
13:02 jlaire taking a step back, how do I make a static method
13:02 moritz jlaire: just make a method that doesn't use an attribute
13:03 moritz perl6: class A { method foo() { say "I'm static" } }; A.foo()
13:03 p6eval pugs, rakudo 922500, niecza v8-10-g77bc5f0: OUTPUT«I'm static␤»
13:03 frettled joined #perl6
13:04 jlaire rakudo: class A { method foo() { say "foo" } }; A.new.foo; A.foo
13:04 p6eval rakudo 922500: OUTPUT«foo␤foo␤»
13:04 jlaire moritz++ # ty
13:08 jlaire rakudo: role IntPredicate { method apply(Int $x) returns Bool { ... } }; class Even does IntPredicate { method apply(Int $x) returns Bool { $x %% 2 } }; sub f(IntPredicate $intPredicate) { grep { $intPredicate.apply($_) }, 1 .. 10 }; say f(Even.new)
13:08 p6eval rakudo 922500: OUTPUT«246810␤»
13:09 jlaire Perl 6, enterprise edition ;)
13:09 moritz jlaire: next up: method ACCEPTS($topic)
13:09 moritz so that you can write
13:09 moritz my @numbers = grep IntPredicate, 1..10
13:10 [particle]1 is now known as [particle]
13:10 moritz erm
13:10 moritz my @numbers = grep Even, 1..10
13:11 jlaire moritz: Java can't do that, so it must be evil
13:11 Holy_Cow joined #perl6
13:11 gfldex std: class Foo does Callable { multi sub postcircumfix:<( )> (Str $s) { say "string"; } mutli sub postcircumfix:<( )> (Int $i) { say "int"; } }
13:11 Holy_Cow left #perl6
13:11 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/s_xzDeYiAI line 1:␤------> [32mrcumfix:<( )> (Str $s) { say "string"; }[33m⏏[31m mutli sub postcircumfix:<( )> (Int $i) [0m␤    expecting any of:␤  brackete…
13:11 jlaire gfldex: "mutli"
13:12 gfldex thanks :)
13:12 moritz and need ; after a } (unless there's a newline after it)
13:14 gfldex nom: class Foo does Callable { multi method postcircumfix:<( )> (Str $s) { say "string"; };  multi method postcircumfix:<( )> (Int $i) { say "int"; }; my $f = Foo.new; $f("asd");
13:14 p6eval nom: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
13:15 gfldex nom: class Foo does Callable { multi method postcircumfix:<( )> (Str $s) { say "string"; };  multi method postcircumfix:<( )> (Int $i) { say "int"; }; } my $f = Foo.new; $f("asd");
13:15 p6eval nom: OUTPUT«Confused at line 1, near "class Foo "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
13:15 moritz missing another ; after }
13:15 gfldex nom: class Foo does Callable { multi method postcircumfix:<( )> (Str $s) { say "string"; };  multi method postcircumfix:<( )> (Int $i) { say "int"; }; }; my $f = Foo.new; $f("asd");
13:15 p6eval nom: OUTPUT«invoke() not implemented in class 'Foo'␤current instr.: '_block1002' pc 123 ((file unknown):39573564) (/tmp/z8z7km1t7u:1)␤»
13:16 moritz so maybe nom is missing a vtable_invoke override
13:16 moritz or it's not yet wired up correctly
13:16 gfldex rakudo: class Foo does Callable { multi method postcircumfix:<( )> (Str $s) { say "string"; };  multi method postcircumfix:<( )> (Int $i) { say "int"; }; }; my $f = Foo.new; $f("asd");
13:16 p6eval rakudo 922500: OUTPUT«No candidates found to invoke for method 'postcircumfix:<( )>' on object of type 'Foo'; available candidates have signatures:␤:(Mu : Str $s;; *%_)␤:(Mu : Int $i;; *%_)␤␤  in main program body at line 22:/tmp/9AW6V8wG7f␤»
13:16 araujo left #perl6
13:17 araujo joined #perl6
13:31 molaf joined #perl6
13:34 wtw joined #perl6
13:35 sili where is qr// in p6?
13:35 moritz rx//
13:35 sili thanks.
13:36 sili moritz: are you familiar with the rakudo source?
13:36 moritz sili: enough to add small features
13:36 PerlJam sili: we're all familiar enough with rakudo source to break things ;)
13:36 sili I was just curious to see where split was implemented. Any ideas where I might look?
13:37 moritz sili: in master, src/core/Cool-str.pm
13:37 moritz in nom, src/core/Str.pm
13:37 sili what's Cool?
13:37 moritz a common superclass of scalar-type built-in types
13:37 moritz (and users can inherit from Cool if they want their types to act like a built-in)
13:38 sili self.lc.split(/\w+/, :all).map({ .Str.ucfirst }).join(''); # that's so evil
13:38 moritz rakudo: say 312.index(1)
13:38 p6eval rakudo 922500: OUTPUT«1␤»
13:39 moritz that only works because Int ~~ Cool, and .index is a method in Cool
13:39 moritz it kinda emulates the type coercions that happen in Perl 5 land
13:40 sili fancy.
13:40 moritz sili: yep, evil and clever
13:40 PerlJam every time I see split(), I knee-jerk-think that they really want comb() these days.
13:40 sili and terribly slow
13:40 sili time to learn PIR and implement it there
13:41 moritz sili: if so, please do it in nom branch, where most development happens these days
13:42 moritz a simple Perl level loop might still be much faster than a regex
13:42 sili moritz: what editor are you using for your perl6?
13:42 moritz sili: vim
13:42 sili 7.3?
13:42 moritz whatever ships with Debian
13:42 moritz 7.2 iirc
13:43 sili anything special for p6 highlighting?
13:43 moritz https://github.com/petdance/vim-perl
13:44 moritz might be included in the newest upstream vim
13:44 flussence yep, but the github one's slightly newer
13:44 sili 7.3 does have p6 support
13:45 flussence the syntax file does have one flaw atm: it's about as fast as rakudo itself :)
13:47 moritz sili: the is_cclass and find_cclass and find_not_cclass ops might be very helpful if you want to implement .capitalize
13:47 moritz sili: also it's much faster to prototype it in a separate file, to avoid the slow core compilation
13:48 sili I'll keep that in mind
13:52 PerlJam nom doesn't grok augment yet does it?
13:52 moritz nom
13:52 moritz but there's a useful technique for prototyping... just a sec...
13:53 sili perl6 is written in perl6
13:54 tadzik yes (:
13:54 moritz PerlJam, sili: https://gist.github.com/1118159
13:54 moritz *shrug* most C compilers are written in C
13:55 tadzik nowadays they're even written in C++ :P
13:55 sili return `perl5 -e 'print uc $foo'`
13:55 jlaire GHC is written in Haskell and many common lisp compilers are written in common lisp, etc. etc.
13:56 moritz sili: have fun inheriting from SV in perl 5 :-)
13:56 sili hah. I haven't done XS in years
13:57 mls__ jnthn: This patch makes the bogus code duplication go away: https://gist.github.com/1118161
13:57 mls__ doesn't seem to break anything, but please review ;)
13:57 moritz sili: I know my paste is a very verbose way to write a call to uc(), but it is helpful for prototyping built-in methods
13:58 moritz without the need to recompile src/core/* for every change
13:58 sili Good thing I brought my quad core
13:59 moritz that part of the compilation isn't parallelized :(
13:59 drbean left #perl6
14:01 araujo left #perl6
14:03 flussence .oO( parrot really could use a ccache-equivalent )
14:03 moritz ... except that the slow part is actually rakudo compiling the setting, not parrot compiling something
14:05 flussence oh, that bit's rakudo being slow? I never realised...
14:05 moritz in master the stage1 compiler
14:05 araujo joined #perl6
14:05 moritz in nqp the perl6 executable
14:09 jlaire sorear: ooc, what did you mean when you said you learned J in 4 days? did you write anything non-trivial in tacit style?
14:11 pmichaud good morning, #perl6
14:11 tadzik good morning pmichaud
14:12 moritz good am, pm
14:12 PerlJam pmichaud: greetings
14:13 moritz rakudo's exception handling turns the excptions inside out, right?
14:13 moritz so Exception has a parrot exception, which is thrown, and try/CATCH then construct a new Exception and set the parrot exception as an attribute
14:13 moritz right?
14:14 mls__ sounds correct
14:15 moritz for my attempts to implement the X:: classes I need to modify that a bit
14:16 moritz have parrot exception whose payload attribute is the Perl 6 exception
14:16 moritz otherwise you can only have a single type of exception
14:18 sili PMCs are neat.
14:23 moritz https://gist.github.com/1118213 # exceptions with payload
14:26 mls__ It's proably easy to change the exception handler so that the object is "reused" if it's of type Exception
14:27 mls__ But note that the stack backtrace must go somewhere, so the Exception object must be either changed or cloned
14:27 sili there's an upcase() opcode
14:27 sili op.
14:27 moritz mls__: right
14:28 moritz mls__: ... unless the backtrace is created before throwing
14:28 mls__ it still must be stored in the Exception object
14:29 moritz as a bit of context, I think Exception will go away completely
14:29 moritz and replaced by various X:: classes or roles, which allow us to distinguish errors by type
14:29 moritz those need to handle backtraces somehow, yes
14:30 moritz my early prototypes with X::Base automatically created backtraces before the throw occured
14:30 mls__ Wouldn't the X:: classes have Exception as base class?
14:30 moritz X::Base is the base class currently
14:30 moritz but that's just terminology
14:32 mls__ So you propose a rename of Exception.pm to X/Base.pm? ;)
14:32 moritz not really
14:32 moritz I already have a start of X::Base in Exceptions.pm (note the 's' :-)
14:33 moritz it's more likely that I'll extend it to do all the stuff that Exception does, and eventually switch over
14:36 mls__ you probably need to store the parrot exception in $!ex, like in Exception.pm
14:36 moritz aye, for rethrowing
14:38 mls__ and change sub EXCEPTION to reuse the payload if it is ~~ X::Base
14:40 sili $PO is not a valid register name. duh.
14:43 sili moritz: my uppercase change appeared to work
14:43 sili \o/
14:43 moritz sili: \o/ I want a pull request!
14:45 sili no, nevermind. I fucked it up and have no idea what I'm doing. back to the drawing board
14:45 sili lol. time for sleep. thanks for the help
14:46 moritz good night. Hope to see you back tomorrow :-)
14:46 mls__ (Btw, about that INSTALL -> INSTALLME rename: how about README.install?)
14:46 tadzik INSTALLME is a bit like "please install this file" :)
14:48 mls__ is that an "INSTALLME should stay", or a "please change the name"?
14:48 pmichaud INSTALL.txt
14:48 mls__ wfm
14:49 tadzik or just INSTALL
14:49 pmichaud can't be just INSTALL
14:49 pmichaud conflicts with the install/ subdir
14:49 moritz tadzik: that breaks on windows
14:49 mls__ just install didn't work
14:49 tadzik oh
14:49 tadzik I didn't even know there's an install/ subdir :)
14:49 moritz that's the new name for parrot_install
14:50 tadzik oh, ok
14:52 tadzik does Q:PIR work in nom?
14:53 moritz yes
14:53 tadzik hmm, ok
14:53 moritz but you need to be careful with what you return
14:53 sili What does pir::upcase__SS mean? particularly the __SS
14:53 moritz for example don't return an $S0 register
14:54 moritz sili: it's a kind of signature
14:54 moritz returns an string (not a PMC), takes one string
14:54 tadzik moritz: what do you mean?
14:54 moritz tadzik: for example don't return native strings or ints, box them
14:55 tadzik I'm trying to restore MAIN.pm
14:55 sili moritz: oh, it's just the sig of the opcode
14:56 donri joined #perl6
14:56 moritz sili: yes
14:56 tadzik that Q:PIR there returns either lexpad:&MAIN or get_hll_global 'Any'
14:56 dalek rakudo/nom: 6e1cfd4 | moritz++ | / (3 files):
14:56 dalek rakudo/nom: rename INSTALLME to INSTALL.txt
14:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e1cfd4bb8
14:56 moritz tadzik: get_hll_global is almost certainly wrong in nom
14:56 rdesfo joined #perl6
14:56 tadzik oopsie
14:57 moritz you can find_lex 'Any'
14:57 tadzik will do that
14:57 moritz nom: say pir::find_lex__PS('Any').perl
14:57 p6eval nom: OUTPUT«Any␤»
14:58 tadzik otoh, it could also be 'box 0' in this case, I think
14:58 tadzik it's only unless'ed later
14:58 pmichaud I'm thinking the Q:PIR shouldn't be needed at all.
14:59 tadzik how do we nomify this?
14:59 moritz 'box 0' should never escape to Perl 6 land
14:59 moritz rather nqp::p6box_i(0)
14:59 moritz tadzik: which block?
14:59 tadzik mhm
15:00 tadzik moritz: the first one, for now
15:00 moritz which file? :-)
15:00 tadzik src/core/MAIN.pm, in master
15:01 moritz tadzik: a pir::find_caller_lex__Ps should work wonders :-)
15:01 moritz tadzik: see src/core/operators.pm for a usage example
15:02 tadzik niice
15:02 pmichaud note that find_caller_lex looks in a lot of places for stuff.
15:02 mls__ (but don't you need the "outmost" MAIN?)
15:02 tadzik yes, we do
15:02 moritz mls__: the call to MAIN_HELPER is (hopefully) only emitted in the "right" scope
15:03 pmichaud indeed, the way find_caller_lex is being used in operators.pm is almost certainly wrong.
15:03 dual left #perl6
15:03 tadzik are there spectests for MAIN?
15:03 moritz care to explain?
15:03 rdesfo does perl6 have a curses module or something like it that would allow some one to open a file in terminal?
15:03 moritz tadzik: of course :-)
15:03 pmichaud find_caller_lex searches the lexical scopes of all of the callers
15:03 tadzik okay :)
15:04 pmichaud not just the immediate caller.
15:04 moritz pmichaud: oops
15:04 tadzik rdesfo: Parrot has a curses library, you may be able to use that
15:04 moritz ... but the parrot curses example was broken last we looked at it
15:04 rdesfo is there any docs on how to use Parrot modules in a perl6 script?
15:05 moritz rdesfo: I fear not
15:05 pmichaud any chance we could get callframe() to work?  Then it would be   callframe(1).my<&MAIN>
15:05 pmichaud or something like that
15:05 molaf left #perl6
15:06 moritz should be a straight-forward-ish port from master
15:06 moritz but notice that that's not correct Perl 6, strictly speaking
15:06 moritz callframe.my should only expose 'is context' vars
15:07 dual joined #perl6
15:07 pmichaud true.
15:08 pmichaud actually, S06 says .my can be used to look up ordinary lexical variables
15:08 pmichaud S06:2592
15:08 moritz oh
15:09 moritz so it was CALLER:: that was limited... my bad
15:13 mkramer joined #perl6
15:18 jimmy1980 left #perl6
15:24 tadzik arg, a MAIN_HELPER { say "I'm main"; 0 } dies with Can only use get_who on a SixModelObject somewhere
15:25 jimmy1980 joined #perl6
15:26 kaare_ joined #perl6
15:28 noganex_ joined #perl6
15:28 noganex left #perl6
15:29 moritz the code in Actions.pm might need updating :/
15:30 pmichaud very likely, yes.
15:32 tadzik nom: say $MAIN.perl
15:32 p6eval nom: OUTPUT«Method 'perl' not found for invocant of class 'Integer'␤current instr.: '_block1002' pc 78 ((file unknown):12086934) (/tmp/5y33cVRpqt:1)␤»
15:33 tadzik yeah...
15:33 pmichaud $MAIN?
15:33 moritz that's what that weird code does
15:33 tadzik MAIN is set to 0 when there's no MAIN
15:33 tadzik that's what Actions.pm look like
15:33 pmichaud Ick.
15:33 moritz my $mainparam := PAST::Var.new(:name('$MAIN'), :scope('parameter'),
15:33 moritz :viviself( PAST::Val.new( :value(0) ) ) );
15:34 tadzik don't know what's that for, really
15:34 * moritz neither
15:34 moritz just don't emit the MAIN_HELPER, right?
15:34 jferrero left #perl6
15:34 tadzik looks like not only;
15:34 tadzik else {
15:34 tadzik 183             $unit.push($mainparam);
15:34 tadzik else as in "if there's no &MAIN"
15:35 pmichaud I think we can get rid of that.
15:35 tadzik there's no $MAIN is S06
15:35 pmichaud I don't see anything in master that makes use of '$MAIN'.
15:35 mls__ our sub MAIN_HELPER($retval, $MAIN?) {
15:35 pmichaud that's not the same MAIN :-)
15:35 mls__ in the old MAIN.pm
15:36 pmichaud I suspect it's a fossil.
15:36 lumi_ left #perl6
15:36 jferrero joined #perl6
15:37 mls__ I think the code in Actions.pm just wants to pass 0 to $MAIN
15:37 mls__ (to the $MAIN parameter)
15:37 moritz https://plus.google.com/10809716​8863179836693/posts/4xotL4v2nfN au++
15:37 PacoLinux joined #perl6
15:38 tadzik which is not used in MAIN_HELPER
15:38 tadzik fossil, aye
15:39 Su-Shee_ joined #perl6
15:40 mls__ pm: your commit b0cd2b8f323 added $MAIN
15:40 tadzik I suspect we may also want to make it PAST::Stmts(call-main-helper, $mainline), rather than Past::Op::Call('&MAIN_HELPER', $mainline)
15:40 jnthn evening, #perl6
15:41 mls__ Hi jnthn!
15:41 mls__ I've got two patches for you to review
15:41 tadzik hello jnt... evening? Oh gosh
15:41 jnthn Oh, nice! :) Today was one of those $dayjob days where I couldn't hover on #perl6 :)
15:42 mls__ jnthn: https://gist.github.com/1118036 and https://gist.github.com/1118161
15:43 jferrero left #perl6
15:43 Su-Shee left #perl6
15:43 TimToady sorear: ::(A) should complain in the same way that ~A should, since type objects now only stringify nicely under .gist
15:44 mikemol I noticed the compiler's features page by way of RC's analytics data.
15:44 TimToady mikemol: o/
15:44 tadzik ...maybe the setting just isn't sub-friendly? :)
15:44 mikemol I also notice there are a bunch of rows on that page which don't have relevant code links.
15:45 mikemol Is that because there aren't useful or relevant tasks on RC?
15:45 mikemol TimToady: How'd the snapshot work out?
15:45 pmichaud mls__: (b0cd2b8f323, adding $MAIN)  Huh, interesting.  I suspect I was trying to clean up the init process somehow.  Anyway, I agree it can (should) be removed.
15:45 TimToady it's mostly because we don't put RC entries up for non-working features :)
15:45 mikemol "Private methods", "Basic multi dispatch" should both be working. :)
15:45 TimToady mikemol: it seemed to be fine, though turned out I had network access
15:45 mikemol Good.
15:46 moritz pmichaud: I think back then MAIN_HELPER was emitted far too often, because it predates the check for the presence of a MAIN sub
15:46 pmichaud moritz: very likely.
15:46 moritz mikemol: note that sometimes people add lines to the feature table without checking RC, which leads to lines without code examples
15:47 moritz as happened for private methods and submethods
15:47 mikemol k.
15:48 TimToady it's a little hard to grep RC for a particular language's entries
15:48 moritz TimToady: there's a page for that...
15:48 mikemol In any case, if there aren't suitable tasks for demonstrating language features, feel free to create them.
15:48 mikemol TimToady: Yeah, it's a real pain. I wish we had the semantic page generation stuff working.
15:48 pmichaud there's also nothing that says that the "code" links are restricted to RC pages :)
15:49 pmichaud could use some links to the perl6advent pages, I suspect.
15:49 moritz http://rosettacode.org/wiki/Category:Perl_6 has all the tasks that are implemented inp6
15:49 mikemol Though, if you can get a page's contents into a DOM, you should be able to look for an <a> with an id of 'Perl 6'
15:50 TimToady moritz: but that doesn't show you the *code*
15:50 moritz TimToady: right
15:50 TimToady I've just been clicking through all those entries by hand
15:50 birdwindupbird left #perl6
15:50 moritz ... instead of writing a script. Shame on you :-)
15:50 mjreed joined #perl6
15:51 mikemol Any Perl 6 code should be inside a div with the CSS classes 'perl6' and 'highlighted_source', if that helps.
15:51 pmichaud looks like it's in a <pre>
15:51 mikemol Whups. Yup, it's 'pre'
15:51 TimToady the highlighted code is not very readable...
15:52 TimToady (in HTML)
15:53 mikemol Hm. That's true.
15:54 mikemol I can make a modification to the highlight extension to allow GeSHi processing to be disabled, given a GET parameter like "?highlight=none".
15:54 mikemol Not right now, though. >.>
15:55 mikemol Anyway, always looking for ways to make RC more attractive. :)
15:55 [Coke] o/ pmichaud++
15:55 TimToady mikemol++
15:55 mikemol I just wish more language communities got as involved as you guys tend to. :)
15:57 TimToady well, one of the things RC is exemplifying is which communities actually care :)
15:57 PerlJam or perhaps just which ones thing RC is just cool.
15:58 PerlJam s/thing/think/
15:59 Su-Shee_ is now known as Su-Shee
16:00 TimToady or the communities that think they'll come off better in a comparison
16:00 TimToady or maybe the communities that just don't have real work to do :)
16:01 * TimToady suspects you have to be a bit neotenous to like certainly kinds of language play
16:04 moritz TimToady: http://moritz.faui2k3.org/tmp/rc-scrape.txt make sure to cache the result, since it's pretty heavy on the server :-)
16:04 moritz it seems to strip some of the newlines... maybe _sri++ could do something about that :-)
16:06 TimToady thanks
16:06 thou joined #perl6
16:07 jnthn mls__: Sorry, had phone call...
16:07 tokuhir__ joined #perl6
16:07 jnthn mls__: What are these two patches aimed at doing? :)
16:07 mkramer left #perl6
16:08 jnthn ($*ST.cur_lexpad())[0].pop; # looks a little fragile...
16:08 moritz jnthn: see http://irclog.perlgeek.de/​perl6/2011-08-01#i_4201703
16:08 moritz it fixes the double-emitting of CATCH blocks, it seems
16:11 mls__ The first one fixes the crash in the last test of try.t
16:11 Guest18398 left #perl6
16:11 phenny left #perl6
16:11 sbp left #perl6
16:12 mls__ jnthn: that's why I wanted you to review ;)
16:12 jnthn mls__: First one being the one that adds $/ decl? OK, that seems reasonable.
16:12 sbp joined #perl6
16:12 phenny joined #perl6
16:13 mls__ finishpad isn't called for the handler, so $/ is lost
16:13 mls__ (I guess)
16:14 nsh joined #perl6
16:14 jnthn ah, those aren't meant to be per block any more anyways, but I fix that separately.
16:14 moritz I thought that's fixed already?
16:14 jnthn moritz: oh, hm
16:14 mls__ Maybe you also want a $handler.symbol('$/', :scope('lexical_6model'))
16:14 moritz nom: do { 'a' ~~ /./ }; say $/
16:14 p6eval nom: OUTPUT«a␤»
16:15 moritz that doesn't look too much like 'per block'
16:15 jnthn oh hm.
16:15 mls__ (but it seems to work without it. It just needs the .lex "$/")
16:15 PacoLinux left #perl6
16:15 moritz but maybe there's something else going on here
16:15 * moritz -> afk
16:15 jdv79 left #perl6
16:16 mls__ Without the .lex, $/ ends up as NULLPMC later on -> segfault in binder
16:17 jnthn eek
16:17 jnthn OK :)
16:17 mls__ (A more robust binder would be nice ;) )
16:18 mls__ (It segfaults in Rakudo_cont_decontainerize, called from Rakudo_binding_bind_one_param)
16:18 jnthn I'm aware
16:18 jnthn It's very likely to get fixed in the next day or so, as a side-effect of another fix I need to do.
16:19 jnthn On the other patch, any idea why we get the double CATCH block emission in the first place?
16:20 jnthn It feels like the patch compensates for another bug rather than solving the root issue.
16:20 mls__ It seems to be because the block is pushed to ($*ST.cur_lexpad())[0]
16:21 mls__ probably for the caputer_lex at the start of the block
16:21 mls__ capture_lex
16:22 mls__ I think it gets pushed in make_simple_code_object
16:23 sorear good * #perl6
16:23 mls__ If I comment out the "push_block_hander" line and the handle_types_except line in statement_control:sym<CATCH>, the pir will still contain the blocks, with just the capture_lex reference
16:23 pernatiy left #perl6
16:24 dalek features: 89ea658 | pmichaud++ | features.json:
16:24 dalek features: Add some links to perl6advent entries.
16:24 dalek features: review: https://github.com/perl6/f​eatures/commit/89ea6582f3
16:25 jimmy1980 left #perl6
16:26 sorear jlaire: tacit is easy, it's just like Whatever currying.  [+6*] means * + 6 * *
16:26 sorear it probably would have taken me longer if I hadn't made that connection
16:27 jlaire sorear: ok
16:27 dalek roast: b71e28f | jonathan++ | S04-statements/try.t:
16:27 dalek roast: Unskip a test in try.t (mls++).
16:27 dalek roast: review: https://github.com/perl6/roast/commit/b71e28f818
16:28 MayDaniel joined #perl6
16:28 dalek rakudo/nom: 9d067ac | jonathan++ | src/Perl6/SymbolTable.pm:
16:28 dalek rakudo/nom: Fix a nasty bug where symbol lookup could eat the name of the symbol being looked up, making future lookups fail.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d067ac960
16:28 dalek rakudo/nom: 3554996 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
16:28 dalek rakudo/nom: Tentatively make metamodel classes available in userspace.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/35549966e9
16:28 dalek rakudo/nom: eb3e306 | jonathan++ | src/Perl6/Grammar.pm:
16:28 dalek rakudo/nom: Decontainerize custom meta-objects as be import them.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eb3e3067ad
16:28 dalek rakudo/nom: ba16941 | jonathan++ | src/binder/types.c:
16:28 dalek rakudo/nom: Marshall NULL PMC to Mu when perl6izing.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba16941571
16:28 dalek rakudo/nom: 9f9a704 | jonathan++ | src/Perl6/Actions.pm:
16:28 dalek rakudo/nom: Fix mentions of $/ in a CATCH of CONTROL block. Patch courtesy of mls++. Unbusts a test in try.t.
16:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9f9a70412f
16:28 dalek features: 9b7b4cd | pmichaud++ | features.json:
16:28 dalek features: Remove extraneous colon.
16:28 dalek features: review: https://github.com/perl6/f​eatures/commit/9b7b4cdce8
16:31 JimmyZ left #perl6
16:31 shinobicl joined #perl6
16:31 jnthn mls__: Digging. :)
16:31 masak joined #perl6
16:31 masak \o/ #perl6
16:31 jnthn lolitsmasak!
16:32 ab5tract left #perl6
16:33 Tene ohaimasak
16:33 jnthn mls__: Trying a different patch. Guess it'll either work or explode :)
16:34 jimmy1980 joined #perl6
16:34 shinobicl hi again :) How do you create a multiline string in perl6? like perl5's "q" and "qq"?
16:34 tadzik jnthn: could you take a look at https://gist.github.com/1118463 in some spare time?
16:35 pmichaud shinobicl: q and qq
16:35 tadzik shinobicl: both are fine I suppose
16:35 tadzik "" is fine too
16:35 pmichaud nom:  say q{hello world};
16:35 p6eval nom: OUTPUT«hello world␤»
16:35 jlaire perl6: my $x = 'ohai'; $x++ for 1 .. 5*26**3; say $x
16:35 pmichaud nom:  my $hello = 'hello';   say qq{$hello world};
16:35 p6eval rakudo 922500: OUTPUT«(timeout)»
16:35 p6eval ..pugs, niecza v8-10-g77bc5f0: OUTPUT«thai␤»
16:35 p6eval nom: OUTPUT«hello world␤»
16:36 shinobicl rakudo: say q( hello world #comment);
16:36 p6eval rakudo 922500: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
16:36 pmichaud shinobicl: parens always make a function call in Perl 6.
16:36 shinobicl rakudo: say q{ hello world #comment };
16:36 p6eval rakudo 922500: OUTPUT« hello world #comment ␤»
16:37 shinobicl oh... that was my error.. i was using ( for opening and closing q
16:38 sorear o/ masak
16:38 tadzik oh hai masak :)
16:40 sidnima joined #perl6
16:40 jnthn mls__: Seems I have a working patch that just makes us never emit the dupe in the first place. Giving it a good spectest before I push. :)
16:40 sidnima hi
16:41 jnthn hi sidnima
16:41 [Coke] jnthn++
16:42 sidnima hi jnthn can u  tell if perl6 integrate spidermonkey or not
16:42 TimToady std: say q( hello world #comment);
16:42 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse argument list at /tmp/CXoiGcq9kk line 1:␤------> [32msay q[33m⏏[31m( hello world #comment);[0m␤Couldn't find final ')'; gave up at /tmp/CXoiGcq9kk line 1 (EOF):␤------> [32msay q( hello world #comment);[33m⏏[31m<E…
16:42 hakank joined #perl6
16:43 [Coke] sidnima: if it /has/ integrated it or if it /can/ integrate it?
16:43 [Coke] also: what are you trying to do?
16:43 masak sidnima: hi!
16:43 moritz std: say q()
16:43 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:01 119m␤»
16:43 sidnima if it /can/ integrate it?
16:45 sidnima because i have many problem to integrate it in perl 5.10
16:46 jnthn sidnima: Not sure what it involves. But I suspect - at least for Rakudo - that our NCI support isn't up to that yet.
16:47 sidnima thx a lot for ur help
16:47 moritz perl6: say ~(-2.5, 2.5)>>.truncate
16:47 p6eval niecza v8-10-g77bc5f0: OUTPUT«Unhandled exception: Unable to resolve method truncate in class Rat␤  at /tmp/02rvySV4qK line 1 (MAIN C1_ANON @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1561 (CORE hyperunary @ 56) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1552 (CORE hyperun…
16:47 p6eval ..pugs, rakudo 922500: OUTPUT«-2 2␤»
16:48 hakank left #perl6
16:48 thou left #perl6
16:48 moritz ls
16:48 moritz sorry :-)
16:48 TimToady .
16:48 TimToady ..
16:48 TimToady foo
16:48 moritz it's actually foo.pl
16:49 masak how predictable.
16:50 tadzik hey, I have it too!
16:51 * masak considers starting a "Hackers against naming stuff 'foo'" faction :)
16:51 jlaire TimToady must have a really narrow terminal, or he's using that weird System V (?) convention
16:51 tadzik I use 'dupa' quite often too
16:51 TimToady obviously you're not a Friend Of O'Reilly
16:52 masak phenny: pl en "dupa"?
16:52 phenny masak: "ass" (pl to en, translate.google.com)
16:52 TimToady jlaire: no, I'm just narrow-minded
16:52 masak not the animal, I presume.
16:52 jlaire TimToady: hehe
16:52 tadzik masak: how predictable was that? :)
16:52 sidnima left #perl6
16:53 mj41 left #perl6
16:53 masak tadzik: I wouldn't allow it in my codebase. :)
16:53 tadzik Would you allow foo?
16:53 masak guess so.
16:54 TimToady chromatic might not though :)
16:54 sorear TimToady: what does ~(class A {}) mean now?
16:54 masak unless it was a really important method or class :P
16:54 jnthn tadzik++ # now I know two Polish words, piwo and dupa :)
16:54 jnthn "They're all you really need."
16:54 masak jnthn: sure you you know wino and wodka also? :P
16:54 masak surely*
16:55 TimToady sorear: it means you're trying to stringify a typed undef
16:55 tadzik masak: just before I submit my university projects, I always scan them with ack for words like 'dupa' and some worse ones too
16:55 sorear do you really count phonetic loans?
16:55 jnthn masak: huh, it's as if you can take Slovak and s/v/w/ :P
16:55 sorear heh
16:55 tadzik jnthn: it's actually wódka
16:55 jnthn nom: say ~(class A {})
16:55 p6eval nom: OUTPUT«Rebuild in progress␤»
16:55 tadzik so you also have to add a comma, but above ;)
16:56 jnthn It's a cute comma. :)
16:56 tadzik a little tail, as we say
16:56 tadzik phenny: "ogonek"?
16:56 phenny tadzik: "tail" (pl to en, translate.google.com)
16:56 tadzik that'd be "ogon"
16:56 jnthn :)
16:57 tadzik see? 5 words ;)
16:57 sorear tadzik: have you seen http://www.jwz.org/doc/censorzilla.html ?
16:57 TimToady oddly, to an English speaker, it's strange to have something with a tail on the top
16:58 tadzik it's usually on the bottom
16:58 TimToady we can say that Q has a tail on the bottom
16:58 tadzik as in ą, ę etc
16:59 cognominal_ left #perl6
16:59 _sri moritz: yes, we trim newlines automatically
16:59 tadzik sorear: now I did :)
17:00 jaldhar left #perl6
17:00 tadzik Linux kernel would lose some value if you'd censor it
17:00 jaldhar joined #perl6
17:00 _sri moritz: i've been thinking about alternative methods for text extraction with and without trimming… feel free to poke me on #mojo if you have an idea for names :)
17:01 cognominal joined #perl6
17:03 jnthn mls__: yay, patch worked :)
17:03 impious joined #perl6
17:03 mjreed left #perl6
17:04 daxim left #perl6
17:06 mls__ \o/
17:07 dalek rakudo/nom: b7570f2 | jonathan++ | src/Perl6/Actions.pm:
17:07 dalek rakudo/nom: Fix duplicate emission of CATCH block PAST; mls++ for noticing and research.
17:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7570f25f5
17:11 jaldhar left #perl6
17:13 lefthandman left #perl6
17:14 mls__ gotta go, bye for now
17:14 tadzik jnthn: any news on the traits segfault?
17:14 mls__ left #perl6
17:16 wtw left #perl6
17:16 jnthn tadzik: No, didn't track that one down yet.
17:16 Tene jnthn: A friend mentioned to me that he tried using nom and noticed that it relied on having CWD set to the source directory.
17:17 jnthn Tene: Right, we didn't get make install fixed yet.
17:17 jnthn (Which is required for it to work outside of the build directory.)
17:17 Tene ah, 'k
17:17 jnthn tadzik: Not immediately sure on https://gist.github.com/1118463
17:18 jnthn tadzik: oh
17:18 jnthn tadzik: What's that "our" doing there?
17:18 jnthn tadzik: Nothing should be our-scoped in the setting.
17:18 tadzik jnthn: stolen from master
17:18 jnthn it's probably that.
17:18 tadzik oh
17:18 tadzik gah
17:18 jnthn I think I made it fatal to our-scope something in the setting the other day as a bit of circularity sawing...
17:19 jnthn Though I ain't convinced it worked before either
17:19 tadzik nom: $*OUT.say('foo
17:19 p6eval nom: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3863 (src/Regex/Cursor.pir:244)␤»
17:19 tadzik nom: $*OUT.say('foo')
17:19 p6eval nom: OUTPUT«foo␤»
17:20 tadzik nom: $*ERR.say('foo')
17:20 p6eval nom: OUTPUT«foo␤»
17:23 avar left #perl6
17:24 avar joined #perl6
17:24 avar left #perl6
17:24 avar joined #perl6
17:25 simcop2387 left #perl6
17:25 wooden left #perl6
17:26 shachaf left #perl6
17:26 spetrea left #perl6
17:26 tadzik okay, it works
17:27 spetrea joined #perl6
17:27 wooden joined #perl6
17:27 wooden left #perl6
17:27 wooden joined #perl6
17:27 jnthn tadzik: yay
17:27 moritz sure it does. I IMPLEMENTED IT!!!
17:27 jnthn :D
17:27 * jnthn -> store
17:27 tadzik (:
17:27 moritz (assuming you're still talking about $*ERR.say :-)
17:28 tadzik moritz: no no, the sub MAIN_HELPER { say 'main' }
17:28 moritz oh. :-)
17:28 tadzik but yes, $*ERR is good to be here too :)
17:28 masak rakudo: $*OUT := class {}; say 42
17:28 p6eval rakudo 922500: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in 'Mu::say' at line 1335:src/gen/core.pm␤  in 'say' at line 5897:src/gen/core.pm␤  in main program body at line 22:/tmp/sXqy7YbZW2␤»
17:29 moritz undefined behavior is... undefined.
17:29 masak rakudo: $*OUT := class { method say(*@_) {} }; say 42
17:29 p6eval rakudo 922500:  ( no output )
17:29 shinobicl left #perl6
17:29 masak \o/
17:29 tadzik nom: $*OUT = class { method say($a) { say $a.uc } }; say 42
17:29 p6eval nom: OUTPUT«Method 'print' not found for invocant of class '<anon>'␤current instr.: 'say' pc 599763 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:3903)␤»
17:29 masak :P
17:29 tadzik eek
17:29 masak watch out for infinite regress when adding a method .print ...
17:30 moritz doctor, it hurts...
17:31 masak I have a really good use case for this.
17:31 masak one that doesn't involve the infinite regress. :)
17:31 masak (so I'm happy it works in Rakudo master)
17:31 moritz "works"
17:31 masak what? it does exactly what I expected it to. :)
17:32 moritz the nom examples also do what I expect them to do :-)
17:32 moritz say() redispatches to $*OUT.say, $*OUT.say redispatches to $*OUT.print
17:32 masak yes.
17:32 simcop2387 joined #perl6
17:33 moritz nom: say (-2.5).Int
17:33 p6eval nom: OUTPUT«-2␤»
17:36 moritz nom: say 2.5e0.log(10)
17:36 p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'log'. Available candidates are:␤:(Num, Mu %_)␤:(Num, Num $base, Mu %_)␤␤current instr.: 'log' pc 633751 (src/gen/CORE.setting.pir:165046) (src/gen/CORE.setting:1816)␤»
17:37 moritz nom: say (-2.5).Int
17:37 p6eval nom: OUTPUT«-2␤»
17:37 moritz nom: say (-2).base(10)
17:37 p6eval nom: OUTPUT«-2␤»
17:38 shachaf joined #perl6
17:39 tadzik oh, I may fix the one '-
17:39 tadzik ' switches while I'm at MAIN
17:39 tadzik (my ' is too close to the Enter key, it seems)
17:39 jferrero joined #perl6
17:40 sorear perl6: say (class :: is Str { }).^isa(Str)
17:40 p6eval rakudo 922500: OUTPUT«1␤»
17:40 p6eval ..niecza v8-10-g77bc5f0: OUTPUT«Unhandled exception: Unable to resolve method ast in class Any␤  at /home/p6eval/niecza/src/NieczaActions.pm6 line 160 (NieczaActions NieczaActions.morename @ 3) ␤  at /home/p6eval/niecza/src/STD.pm6 line 342 (STD STD.morename @ 24) ␤  at /home/p6eval/niecz…
17:40 p6eval ..pugs: OUTPUT«*** ␤    Unexpected " is"␤    expecting "(", twigil or word character␤    at /tmp/t7KfhE4k21 line 1, column 14␤»
17:40 cognominal left #perl6
17:40 cognominal joined #perl6
17:43 cognominal left #perl6
17:43 cognominal joined #perl6
17:43 dalek rakudo/nom: 67f49aa | Coke++ | t/spectest.data:
17:43 dalek rakudo/nom: track failure mode.
17:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/67f49aa1dd
17:46 tadzik jnthn: how much effort is fixing hypers?
17:46 tadzik They currently die with Could not find sub !dispatch_method_parallel
17:47 mj41 joined #perl6
17:49 dalek rakudo/nom: e4ec10f | moritz++ | src/core/Real.pm:
17:49 dalek rakudo/nom: implement Real.base
17:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e4ec10ff26
17:51 sorear std: $Foo::
17:51 p6eval std 516268a: OUTPUT«ok 00:01 118m␤»
17:51 eiro left #perl6
17:51 sorear TimToady: what is the denotational semantics of this term?
17:53 flussence looks like an anonymous scalar in the Foo namespace to me, but I'm no expert...
17:54 tadzik rakudo: "foobar".substr(1, -1).say
17:54 p6eval rakudo 922500: OUTPUT«ooba␤»
17:54 jnthn tadzik: effort.
17:54 tadzik okay
17:54 tadzik niecza: "foobar".substr(1, -1).say
17:54 impious left #perl6
17:54 p6eval niecza v8-10-g77bc5f0: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤  at CORE.C215_Str_2Esay (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤  at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unknown>:0 …
17:54 jnthn tadzik: pmichaud++ has it on his task list, and I've no desire to task-steal that item :)
17:54 tadzik I see :)
17:55 tadzik MAIN_HELPER uses it in few places
17:55 TimToady I think it's nonsensical
17:55 tadzik it also makes Perl::Tidy cry in a few places :)
17:55 TimToady unless we treat postfix:<::> as an operator, and assume $Foo contains a type name
17:57 TimToady in which case it would be short for $Foo.stash or some such
17:57 PerlJam yuck.
17:57 PerlJam (that's my initial reaction)
17:58 sorear niecza: "foobar".substr(1, *-1).say # tadzik
17:58 eiro joined #perl6
17:58 p6eval niecza v8-10-g77bc5f0: OUTPUT«ooba␤»
17:58 masak what PerlJam said.
17:58 sorear TimToady: suggested error message?
17:58 jnthn TimToady: $Foo.WHO most likely.
17:59 sorear std: class A is Str:: { }
17:59 jnthn (If we make it mean anything at all, which I'm not really suggesting we do. :) )
17:59 p6eval std 516268a: OUTPUT«ok 00:01 118m␤»
17:59 sorear TimToady: also, is that sensisble?
17:59 TimToady well, it's just following P5 syntax there
17:59 PerlJam that's perhaps why my first reaction is "yuck"  :)
17:59 TimToady ::{$symbol} is just a symbol table lookup
18:00 sorear is $Foo:: the SV from the same GV as %Foo:: ?
18:00 TimToady the purpose of the :: being to distinguish type objects, which are undefined, from symbol table hashes, which are defined
18:01 TimToady I don't recall exactly how it works in P5 :)
18:02 sorear TimToady: what error message do you suggest if someone writes $Foo:: ?
18:02 eiro left #perl6
18:03 TimToady you're assuming I've decided it's non-sensical :)
18:03 sorear You *think* it's non-sensical :)
18:03 sorear guess that's not enogh
18:03 PerlJam TimToady: he's just trying to push you in a good direction.
18:03 TimToady followed by "unless"
18:04 tadzik sorear: thanks, that's what I expected
18:05 PerlJam pretending it's non-sensical is a nice conservative choice.
18:05 PerlJam it gives you time to come up with a good use for that syntax.
18:05 birdwindupbird joined #perl6
18:09 TimToady well, the question is, if Foo::<$bar> means Foo.WHO{'$bar'}, why my $foo = Foo; $foo::<$bar> shouldn't mean the same thing
18:09 TimToady we might have to tell longname not to parse a trailing ::, and turn it into a postfix, is all
18:11 TimToady but I'm okay with forcing people to call .WHO for now, and special-casing FOO::<$bar>
18:11 TimToady as you say, it's a bit more conservative
18:11 masak +1
18:11 TimToady but perhaps a bit harder to optimize
18:11 moritz rakudo currently misparses $foo::(bar) as ($foo::).(bar)
18:12 TimToady but then the error message would "We didn't have enough courage to make this work orthogonally"  :P
18:13 moritz anyway, I'm all for overloading :: less than it's now
18:13 PerlJam or just get rid of the special case and then .WHO is "more natural"  :)
18:13 TimToady it's a little too ugly for how often you want it
18:14 PerlJam How about a nice unicode marker then?
18:14 TimToady CALLER::<$/> is nicer than CALLER.WHO<$/>
18:14 tadzik jnthn: is prefix:<|> close?
18:15 tadzik rakudo: my $a = 5; (|$a).WHAT
18:15 p6eval rakudo 922500:  ( no output )
18:15 tadzik rakudo: my $a = 5; (|$a).WHAT.say
18:15 p6eval rakudo 922500: OUTPUT«Capture()␤»
18:15 tadzik rakudo: my $a = 5; Capture.new($a).perl.say
18:16 p6eval rakudo 922500: OUTPUT«\(5)␤»
18:16 tadzik rakudo: my $a = 5; (|$a).perl.say
18:16 p6eval rakudo 922500: OUTPUT«\(5)␤»
18:16 jnthn tadzik: In what context?
18:16 tadzik my %possible = |$possible;
18:16 jnthn ...what does that do?
18:16 tadzik (whatever that means :/)
18:16 jnthn I don't consider that meaningful.
18:16 tadzik #Returns a hash with the short name as key and long name as value
18:17 tadzik bla bla bla, return %possible;
18:17 tadzik eek
18:17 tadzik I think I'll refactor it a bit after I make it work
18:18 eiro joined #perl6
18:19 PerlJam TimToady: I guess the best argument I can come up with is "I don't like it", so have that courage you were talking about earlier  :)
18:19 mj41 left #perl6
18:21 pmichaud today's high temperature: 41.7degC
18:21 tadzik rakudo: my %a = a => 1; say {%a}.perl
18:21 p6eval rakudo 922500: OUTPUT«{"a" => 1}␤»
18:21 pmichaud tomorrow's high: 41.7degC
18:21 pmichaud Wednesday's high: 41.7degC
18:22 pmichaud :-(
18:22 diakopter degF?
18:22 pmichaud 107
18:22 moritz whoa there
18:22 pmichaud we get a break on Thursday.  Only 41.1degC
18:22 masak oh that's a relief.
18:23 nbrown left #perl6
18:24 nbrown joined #perl6
18:24 pmichaud today represents the 31st consecutive day of 100degF+ temperatures where I live.  :(
18:24 colomon and that is one good reason I don't live in Texas.  Ugh.
18:24 TimToady y'know, there's Unicode for ℃ and ℉ so you don't have to use the, er, Texas versions
18:25 pmichaud y'know, those codepoints appear as boxes in my font.  :-)
18:25 tadzik nom: ('a', 'b').hash.perl.say
18:25 TimToady must be a Texas font then
18:25 p6eval nom: OUTPUT«("a" => "b").hash␤»
18:25 pmichaud .u ℃
18:25 phenny U+2103 DEGREE CELSIUS (℃)
18:25 * colomon must remember not to gripe about his local heatwave, which has not gone about 100degF
18:25 PerlJam pmichaud: that's what you get for moving away from the coast!  :-)
18:26 TimToady they have Texas fonts at the coast too
18:26 diakopter fronts too
18:27 pmichaud so far we have no fronts
18:27 pmichaud a front would be welcome.  :-)
18:27 huf so that's where our summer heat went
18:27 huf it's been rainig/overcast/cool for 3 weeks over here :)
18:27 tadzik nom: my $a, $b; say $b.perl
18:27 p6eval nom: OUTPUT«Symbol '$b' not predeclared in <anonymous> (/tmp/tSDINxroK7:1)␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 154 (compilers/pct/src/PCT/HLLCompiler.pir:111)␤»
18:27 tadzik . o O ( how on earth did this work )
18:27 tadzik oh, $b was declared earlier
18:28 diakopter pmichaud: has there been a night where it stayed above 100 all night
18:28 pmichaud diakopter: no, we tend to get down into the 80s at least
18:28 pmichaud but it does stay in the 90s until well after midnight
18:29 masak I know it's been up for discussion before... but every time I use Moose's BUILD, I find myself wanting that Perl 6's would work the same way.
18:29 icwiener joined #perl6
18:29 * diakopter is visiting Houston this weekend
18:29 pmichaud diakopter: ouch
18:29 masak in Moose, BUILD runs *after* the attribute initializations, not *instead of* them.
18:29 tadzik aye
18:30 tadzik I don't like calling callsame; at the beginning of every BUILD I write
18:30 diakopter it will be quite different from the balminess here in CA
18:30 pmichaud ...why would someone write callsame at the beginning of BUILD?  /me confused.
18:30 PerlJam diakopter: I hope you can deal with heat and humidity because you'll have lots of both in Houston
18:30 moritz BUILDALL calls alls BUILD submethods
18:30 diakopter I grew up there
18:31 pmichaud diakopter: okay, so you know what you're getting into.  :)
18:31 masak I've never written a BUILD in Perl 6 where I *wanted* the initializations I wrote higher up in the class declaration to be invalidated.
18:31 TimToady that's not the point
18:31 masak and it keeps surprising people who haven't used Perl 6 OO before. they keep expecting it to work the other way.
18:32 masak there are bug reports in RT about it.
18:32 masak several.
18:32 PerlJam masak: do you mean people who've used Moose but not P6 before, or just random people who haven't used Moose before get confused?
18:33 diakopter those poor randoms
18:33 moritz it certainly surprises me occasionally
18:33 masak PerlJam: don't exactly know. I hadn't used Moose enough to be influenced by it when I found the Perl 6 behavior wrong the first time.
18:33 masak as for others, no idea.
18:34 PerlJam okay ... just wondering if it was just a cultural bias from Moose.
18:34 tadzik I thought it was broken when I moved Moose -> Perl 6
18:34 tadzik someone even assured me that yes, it's broken :)
18:35 moritz one more thing: can I somehow rerun initialization of dependent attributes?
18:35 moritz has $.x = 3; has $.a = $.x * 2;
18:35 moritz hm, maybe I shoudl really use methods instead...
18:36 moritz but then they aren't so easily overridable
18:36 PerlJam um ... doesn't that use a method?
18:36 masak yes.
18:36 moritz just for the lookup of $.x
18:37 masak inside a thunk, so that it's run at obj instantiation.
18:37 pmichaud I don't quite understand "rerun initialization of dependent attributes".
18:38 moritz well, the computation in  has $.a = $.x * 2  has to run at some piont
18:38 tadzik rakudo: my $a = 5; if 1 { my $b, $a; say $a }
18:38 p6eval rakudo 922500: OUTPUT«5␤»
18:39 PerlJam tadzik: precedence.
18:39 pmichaud right.  It runs at the end of the BUILD submethod for the class, if $!a hasn't already been initialized.
18:39 tadzik PerlJam: what do you mean?
18:39 moritz and at some point if $!x has joined, I might want to rerun the computation
18:39 tadzik PerlJam: no, that's precisely what I wanted to check :)
18:39 PerlJam tadzik: oh.  ok. :)
18:39 pmichaud moritz: you mean after object construction?
18:39 tadzik PerlJam: in master's MAIN.pm there was a my $a, $b :)
18:39 moritz pmichaud: yes
18:39 pmichaud moritz: ah.
18:40 pmichaud maybe a closure on the attribute or something.
18:41 soh_cah_toa joined #perl6
18:42 masak oh!
18:42 masak that reminds me.
18:43 masak hakank++ and I had an interesting discussion about Excel-like dependent variables the other day.
18:43 envi left #perl6
18:43 masak one declares a variable, along with the variables it depends on.
18:44 masak whenever one of the dependencies change, the variable is recalculated according to its latest assignment.
18:44 masak we figure that can be done by switching out Scalar for something else :)
18:44 tadzik to a closure maybe :)
18:45 TimToady there's just something terribly wrong with the view that BUILD is for patching up the defaults when they screw up; just because Moose stole the word BUILD for that doesn't make it right
18:45 masak closures: the solution to everything.
18:46 TimToady so what we've got is two very different concepts of when the user wants control, and P6 should give both options
18:46 daniel-s left #perl6
18:46 masak TimToady: there's just something terribly wrong with declaring a BUILD and having all the attribute initializations at the top of the class ignored. :/
18:46 TimToady but BUILD is never going to be the one Moose provides, I expect
18:46 TimToady what part of "default" do you not understand?
18:47 * masak sighs
18:47 pmichaud ...they aren't ignored.
18:47 masak this happened last time we talked about this feature, too...
18:47 TimToady we need a way of saying "now set the defaults, and then let me override them because I wrote them as initializers
18:48 masak rakudo: class A { has $.x = 42; submethod BUILD {} }; say A.new.x
18:48 TimToady but with the initializer viewpoint you can never say = die "phooey"
18:48 p6eval rakudo 922500: OUTPUT«Any()␤»
18:48 masak pmichaud: ignored.
18:48 pmichaud masak: that looks like a rakudobug to me.
18:48 masak TimToady: see!?
18:49 colomon nom: class A { has $.x = 42; submethod BUILD {} }; say A.new.x
18:49 p6eval nom: OUTPUT«42␤»
18:49 masak \o/
18:49 PerlJam nom groks submethods?
18:49 TimToady I see a bug
18:49 pmichaud as I said.  Rakudobug.
18:49 tadzik goodie :)
18:49 masak ok, that makes things a ton better :)
18:49 * PerlJam looks a the feature matrix again.
18:49 sorear colomon: for once in my life I think San Diego's weather is good
18:49 tadzik so we can actually port IO::Socket::INET without fixing callsame :P
18:49 pmichaud S13 is pretty explicit here... uninitialized attributes use the defaulters
18:50 tadzik TiMBuS: heard that? :)
18:50 masak TimToady: sorry for being so obtuse. all this time, I've been thinking you've been defending that rakudobug as a design feature... :/
18:50 pmichaud *S12
18:50 masak so BUILD doesn't override all attribute initializers, only those it mentions. good.
18:50 pmichaud correct.
18:51 masak that's fine, I think.
18:51 moritz it mentions, or it assigns to?
18:51 pmichaud initializes.
18:51 masak did we ever iron out what "initialized" means? :)
18:52 * masak is just full of Pandora box openers today :)
18:52 pmichaud S12:735, for those who are interested.
18:52 colomon sorear: San Diego seemed like it had nice weather (though definitely too hot for me) the one time I visited.
18:53 icwiener left #perl6
18:53 sorear since TimToady hasn't suggested an error message for '$Foo::' yet, I'll go with 'Illegal use of terminal double colon on sigilled name'
18:54 moritz s/terminal/trailing/
18:54 sorear also, what do we do about class Foo is Str:: { } # jnthn ?
18:54 moritz and maybe  add ". To access the symbol table, use .WHO
18:55 TimToady sigiled is probably more correct, since it's an unemphasized syllable
18:56 sorear heh, I betray my pronunciation like that?
18:56 * sorear always says si-GILL
18:56 masak mais oui!
18:56 pmichaud std:  class A { has $.x = 42; submethod BUILD {} };
18:56 p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
18:56 sorear or si-JILL
18:57 pmichaud std:  class A { has $.x = 42; method BUILDX {} };
18:57 p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
18:57 pmichaud at one point we had discussed requiring method declarations to have an explicit signature.. did that get dropped?
18:57 tadzik I gotta find some short-session hobby waiting for Rakudo to compile
18:57 MayDaniel left #perl6
18:58 PerlJam tadzik: origami
18:58 tadzik hmm
18:59 PerlJam so ... features.json seems inaccurate regarding submethods, but should it be rn+- or rn+ ?
18:59 tadzik I sewed myself a Kindle sleeve while waiting for the spectest run yesterday :)
18:59 masak pmichaud: yes. it got dropped.
18:59 masak pmichaud: nowadays, 'method greet' means 'method greet()'
18:59 pmichaud PerlJam: I suspect rn+ is fine.
19:00 pmichaud if someone wants to point to a submethod feature that 2011.07 implements that nom doesn't, we can do rn+-
19:00 tadzik setting compilation now takes a Gigabyte of RAM on my machine
19:00 tadzik that's... less than awesome
19:00 masak pmichaud: couldn't the tests answer that question?
19:01 pmichaud masak: sure, they could.
19:01 tadzik sorry, 1 GB and counting. Is that normal?
19:01 masak pmichaud: just checking :)
19:03 Mowah joined #perl6
19:03 sorear tadzik: it fluctuates wildly
19:04 jnthn (submethods) not aware of any lackings we have there.
19:04 jnthn So rn+ is fine, afaik.
19:05 dalek features: a3a8349 | duff++ | features.json:
19:05 dalek features: nom appears to grok submethods
19:05 dalek features: review: https://github.com/perl6/f​eatures/commit/a3a8349287
19:05 sorear Who is duff?
19:05 PerlJam me
19:05 sorear ah
19:06 masak IT'S YOU!
19:06 * masak points
19:06 PerlJam actually ... where does it get "duff" from ?
19:06 PerlJam I'm perlpilot on github
19:06 tadzik jnthn: what is the Parameter.named in nom? Not implemented or something new?
19:07 tadzik . o O ( maybe I should stop extending nom's setting or I won't be able to compile it anymore )
19:08 dalek niecza: 6f99914 | sorear++ | src/niecza:
19:08 dalek niecza: Improve processing of trailing double colons, class :: is Str now works
19:08 dalek niecza: review: https://github.com/sorear/niecza/commit/6f99914b40
19:08 jnthn masak: Yes, attr init and BUILD got fixed in nom
19:08 jnthn masak: re what does initialzied mean - whatever the REPR says.
19:09 masak jnthn: ok. so you can ask a REPR whether the storage location was initialized?
19:09 tadzik jnthn: is method named() {nqp::p6bool($!flags +& $SIG_ELEM_SLURPY_NAMED)} ok?
19:09 jnthn tadzik: See S06 for the interface Parameter is expected to expose
19:09 jnthn Or master :)
19:10 tadzik saw master, but it's cheating a lot :)
19:10 jnthn masak: Well, the guts can :)
19:10 jnthn tadzik: It cheats to do what it does, but I think it gets the right semantics on the outside.
19:10 tadzik jnthn: there is a SLURPY_NAMED flag, but no NAMED flag :)
19:10 jnthn tadzik: Correct.
19:11 tadzik so, is my implementation of named() (above) correct?
19:11 jnthn tadzik: ah, now I look at it...now
19:11 jnthn *no
19:11 tadzik what does it miss?
19:11 jnthn It doesn't check for a parameter being named :P
19:11 tadzik asd
19:11 jnthn tadzik: That's checkable by "is $!named_names null" :)
19:12 tadzik okay
19:12 tadzik hmm
19:13 shinobicl_ joined #perl6
19:13 tadzik sorear: have you tried to compile nom on your machine? Maybe Parrot's GC is just overestimating mine
19:14 sorear tadzik: yes
19:15 sorear not recently though
19:15 sorear there could have been a regression
19:19 shinobicl_ hi, i still having a little trouble with roles. I have a operator - that should work when two Dates have certain role (Workday). So, i defined the operator like this: multi infix:<-> (Workday $start, Workday $target). (the operator is not defined inside the role, by the way).
19:20 kjeldahl_ joined #perl6
19:20 kjeldahl_ left #perl6
19:22 tadzik hmm, the second most often query that sends google users to my blog is "is perl 6 ready"
19:24 TimToady does 1.2G here on a 64-bit machine
19:24 TimToady about the same as my firefox-bin :)
19:24 masak tadzik: well, is it? is it? huh? huh? :P
19:24 tadzik masak: I suspect it's due to the "ready enough for me" post :)
19:25 jnthn "Yes, but are YOU ready for Perl 6?"
19:25 shinobicl_ i would answer that as "no"
19:25 TimToady the ready is unevenly distributed
19:25 PerlJam shinobicl_: so, what's the trouble?
19:26 tadzik oh, I has a nice theme
19:26 masak shinobicl_: what PerlJam said. what feature are you waiting for? :)
19:26 sorear I would guess shinobicl_ is using Rakudo
19:26 tadzik and probably means "Is Rakudo ready"
19:26 sorear which has a bug that requires multi infixes to be declared "our" or else they don't work
19:26 * masak almost made a "running in the rain" metaphor blog post yesterday
19:26 shinobicl_ many gotchas here and there... i'm still learning... example: i used my $string = q(message #comment); but ( are now for subs... things like that
19:26 sorear q[] and q () both still work
19:26 shinobicl_ i would answer "no" to "are you ready for Perl6?"
19:27 PerlJam sorear: well, roles /are/ only partially implemented in niecza  ;)
19:27 sorear it's only q() that is a sub call
19:27 sorear PerlJam: that's one of the reasons I think shinobicl_ is using rakudo
19:27 sorear PerlJam: also nobody's heard of niecza.
19:28 PerlJam the name is much harder to pronounce than rakudo
19:28 tadzik for you, americans :P
19:28 PerlJam (at least at first blush)
19:28 TimToady what's hard about knee-ey-cha?
19:29 PerlJam it's missing a zed
19:29 TimToady the z is just like an h
19:30 masak TimToady: I say it more like "nye-cha".
19:30 * masak feels dirty for using English phonemes to explain pronunciation
19:30 tadzik Method 'named_names' not found for invocant of class 'Parameter'
19:30 tadzik jnthn: ?
19:30 TimToady well, sure, but nye is misleading
19:30 Su-Shee nee eh cha would be my version ;)
19:31 huf you mean it's not nee-eh-tza?
19:31 huf dammit ;)
19:31 PerlJam Su-Shee: emphasis on the "eh"?
19:31 jnthn tadzik: Did I say method?
19:31 masak nyEHcha.
19:31 TimToady ñaycha
19:31 tadzik jnthn: I used $!
19:31 tadzik nqp::p6bool(nqp::isnull($!named_names))
19:31 tadzik nyecha
19:31 jnthn tadzik: er, huh
19:31 Su-Shee PerlJam: I'd pronounce it similar to the italian "pieta"
19:31 jnthn That's certainly an attribute access. wtf. :/
19:31 tadzik pietscha :)
19:31 huf what language is it in anyway?
19:32 huf polish?
19:32 PerlJam sorearish
19:32 TimToady it's mock eastern european :)
19:32 huf ah
19:32 tadzik not really polish
19:32 huf i was just randomguessing
19:32 tadzik but it's derived from "nie czas" I think
19:32 tadzik phenny: "nie czas"?
19:32 phenny tadzik: "no time" (pl to en, translate.google.com)
19:32 huf oh!
19:32 jnthn .oO( неча )
19:32 huf well that's droll
19:32 tadzik "Not the right time", I'd say
19:33 saaki left #perl6
19:33 tadzik eek, it seems to appear only sometimes, or something
19:33 tadzik > Parameter.new().named
19:33 tadzik Bool::True
19:34 PerlJam sorear: looking at the feature matrix (assuming it's accurate), there doesn't appear to be much that niecza lacks that I would carp about coming from rakudo  (and, in fact, you appear to have more stuff implemented).  So ... you need better marketing  :)
19:36 tadzik jnthn: any ideas?
19:38 jnthn tadzik: Doing anything with what you get from Parameter.new is likely bogus.
19:39 sorear I like 'nqp::p6bool(nqp::isnull($!named_names))'.  best pronunciation suggestion I've heard all day. :)
19:39 tadzik jnthn: I think it's a grep's fault
19:39 tadzik called from Sub '_block13151' pc 639402 (src/gen/CORE.setting.pir:163703) (src/gen/CORE.setting:629)
19:39 tadzik :629 is grep
19:41 shinobicl_ rakudo: role Workday { method greet{say "I'm a Workday!"}}; multi infix:<-> (Workday $wd1, Workday $wd2) { return 0 }; my $nd1 = Date.new('2011-01-01'); my $nd2 = Date.new('2011-01-02'); my $wd1 = Date.new('2011-01-01') does Workday; my $wd2 = Date.new('2011-01-02') does Workday; $wd2.greet; say $nd1 - $nd2; say $wd1 - $wd2;
19:41 tadzik or, it may be me who broke MAIN.pm while visual-refactoring it
19:41 p6eval rakudo 922500: OUTPUT«I'm a Workday!␤-1␤Ambiguous dispatch to multi 'infix:<->'. Ambiguous candidates had signatures:␤:(Workday $wd1, Workday $wd2)␤:(Date $a, Date $b)␤␤  in main program body at line 22:/tmp/VM3PkZV7Es␤»
19:41 shinobicl_ rakudo: role Workday { method greet{say "I'm a Workday!"}}; multi infix:<-> (Date $wd1 does Workday, Date $wd2 does Workday) { return 0 }; my $nd1 = Date.new('2011-01-01'); my $nd2 = Date.new('2011-01-02'); my $wd1 = Date.new('2011-01-01') does Workday; my $wd2 = Date.new('2011-01-02') does Workday; $wd2.greet; say $nd1 - $nd2; say $wd1 - $wd2;
19:41 p6eval rakudo 922500: OUTPUT«I'm a Workday!␤Ambiguous dispatch to multi 'infix:<->'. Ambiguous candidates had signatures:␤:(Date $wd1, Date $wd2)␤:(Date $a, Date $b)␤␤  in main program body at line 22:/tmp/NINX5miOt7␤»
19:42 jnthn shinobicl_: That's correct. Workday and Date are tired.
19:42 jnthn grr
19:42 jnthn *tied
19:42 shinobicl_ is the only way to avoid this to declare "Workday" as a class?
19:42 jnthn I doubt that'll help
19:42 jnthn It's that Workday and Date aren't in any kind of subtyping relationship.
19:43 pernatiy joined #perl6
19:43 masak ah! the old Circle - Ellipse problem :)
19:43 TimToady sorear: maybe you should name it 煮え茶 instead to make the pronunciation clearer :)
19:43 moritz multi infix:<-> (Date $wd1 does Workday, Date $wd2 does Workday)
19:43 masak or the Square - Rectangle problem, depending on which OOD school you went to...
19:43 moritz I didn't even know that this syntax exists
19:44 masak me either.
19:44 moritz btw tools/test_summary.pl says 8682 passing tests, 943 skips, 383 todo
19:44 masak std: role Workday {}; multi infix:<-> (Date $wd1 does Workday, Date $wd2 does Workday) {}
19:44 p6eval std 516268a: OUTPUT«Potential difficulties:␤  $wd1 is declared but not used at /tmp/58PAPVE5Wh line 1:␤------> [32mrole Workday {}; multi infix:<-> (Date [33m⏏[31m$wd1 does Workday, Date $wd2 does Workda[0m␤  $wd2 is declared but not used at /tmp/58PAPVE5Wh line 1:␤------> [32minfi…
19:44 shinobicl_ rakudo: class Workday is Date { method greet{say "I'm a Workday!"}}; multi infix:<-> (Workday $wd1, Workday $wd2) { return 0 }; my $nd1 = Date.new('2011-01-01'); my $nd2 = Date.new('2011-01-02'); my $wd1 = Workday.new('2011-01-01'); my $wd2 = Workday.new('2011-01-02'); $wd2.greet; say $nd1 - $nd2; say $wd1 - $wd2;
19:44 p6eval rakudo 922500: OUTPUT«I'm a Workday!␤-1␤0␤»
19:44 masak std: role Workday {}; multi infix:<-> (Date $wd1 does Workday, Date $wd2 does Workday) { $wd1, $wd2 }
19:44 p6eval std 516268a: OUTPUT«ok 00:01 125m␤»
19:45 TimToady params are declarations too
19:45 TimToady so they can take traits
19:46 jnthn Yes, but that doesn't mean params have any clue what to do with said trait.
19:46 jnthn nom: sub foo($x does Positional) { }
19:46 p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<does>'. Available candidates are:␤:(Mu $doee, Mu $role)␤␤current instr.: 'trait_mod:<does>' pc 576037 (src/gen/CORE.setting.pir:134501) (src/gen/CORE.setting:66)␤»
19:46 jnthn Right.
19:46 TimToady at minimum could morph into where Worday
19:46 TimToady *day
19:46 shinobicl_ i'm thinking that is not of much use to declare operators for certain roles...
19:46 cognominal left #perl6
19:46 shinobicl_ but it makes sense declaring them for classes
19:47 cognominal joined #perl6
19:47 TimToady classes are allowed to export
19:47 tadzik how about ($a where Workday) or so?
19:47 TimToady since classes are also modules
19:47 jnthn tadzik: What'd work.
19:47 jnthn But Date would win.
19:48 jnthn Date $a where Workday # would win.
19:48 jnthn s/What'd/That'd/
19:48 tadzik jnthn: found it, it actually's complaining about the actual .named_names elsewhere :)
19:48 shinobicl_ rakudo: role Workday  { method greet{say "I'm a Workday!"}}; multi infix:<-> (Date $wd1 where Workday, Date $wd2 where Workday) { return 0 }; my $nd1 = Date.new('2011-01-01'); my $nd2 = Date.new('2011-01-02'); my $wd1 = Date.new('2011-01-01') does Workday; my $wd2 = Date.new('2011-01-02') does Workday; $wd2.greet; say $nd1 - $nd2; say $wd1 - $wd2;
19:49 p6eval rakudo 922500: OUTPUT«I'm a Workday!␤-1␤0␤»
19:49 shinobicl_ it works with "where" :)
19:49 tadzik :)
19:49 shinobicl_ cool
19:49 tadzik shinobicl_: do you know how that works?
19:50 tadzik where does smartmatching, so there happens something like $a where { $a ~~ Workday }
19:50 shinobicl_ because $wd1 - $wd2 is meant to return 0, when $wd1 and $wd2 has the Workday role
19:50 tadzik which becomes { $a.does(Workday) } I think
19:52 * PerlJam is still puzzling over the "does" variants from before.
19:52 tadzik oh cool, I can now measure how far I'm in setting compilation by looking at the memory usage :)
19:52 tadzik 43%, so about 10 more to go
19:53 PerlJam do they mean that anything that gets stuck in that parameter on dispatch will also do the role?
19:54 masak std: sub foo($x but Int) { say $x }
19:54 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature at /tmp/QLcH9iZG7O line 1:␤------> [32msub foo[33m⏏[31m($x but Int) { say $x }[0m␤Couldn't find final ')'; gave up at /tmp/QLcH9iZG7O line 1:␤------> [32msub foo($x [33m⏏[31mbut Int) { say $x }[0m␤    e…
19:54 masak ;)
19:55 jnthn PerlJam: .does is for checking
19:55 PerlJam std: sub foo($debbie does Dallas) { }  # parameters with benefits?
19:55 p6eval std 516268a: OUTPUT«Potential difficulties:␤  $debbie is declared but not used at /tmp/J8ULzBCQhe line 1:␤------> [32msub foo([33m⏏[31m$debbie does Dallas) { }  # parameters w[0m␤ok 00:01 120m␤»
19:55 jnthn *lol*
19:56 Trashlord left #perl6
19:56 tadzik jnthn: what type is $!named_names?
19:56 tadzik I get Null PMC access in find_method('elems')
19:56 tadzik on that
19:56 jnthn tadzik: Parrot RPA
19:56 tadzik aw, snap
19:56 tadzik should it be?
19:56 jnthn yes.
19:56 tadzik okay
19:57 jnthn tadzik: The innards of Parameter are optimized for the binder, not for the person writing the Parameter introspection methods. :)
19:57 tadzik I'll just +($_.named_names) then
19:57 masak std: sub oscar_wilde($genius) {}
19:57 p6eval std 516268a: OUTPUT«Potential difficulties:␤  $genius is declared but not used at /tmp/XY4lxZFXeW line 1:␤------> [32msub oscar_wilde([33m⏏[31m$genius) {}[0m␤ok 00:01 120m␤»
19:57 jnthn tadzik: nqp::elements($!named_names)
19:57 tadzik alright, so what should the public method named_names return, still RPA?
19:57 jnthn tadzik: no, should turn the RPA into a Parcel or so
19:58 tadzik with infix<,>, si?
19:58 jnthn use pir::perl6ize_type__PP($!named_names)
19:58 tadzik jnthn++
19:58 sorear Perl 6 code should never see any object that !~~ Mu
19:58 Trashlord joined #perl6
19:58 sorear user-level
19:58 tadzik yeah, I think so
19:59 jnthn Indeed.
19:59 mj41 joined #perl6
19:59 moritz have I already lamented about how I hate the "everything is an object" meme?
19:59 birdwindupbird left #perl6
19:59 sorear moritz: No.  At least not with me around.
19:59 moritz everything? really? is a method call an object?
19:59 tadzik especially when C++ers or Javaers say that :P
20:00 masak moritz: everytime you object, that's an object too :P
20:00 PerlJam moritz: blame smalltalk
20:00 * sorear likes to think about Perl 6 through the lens of denotational semantics
20:00 tadzik at some stage, a method call is a Match object, yes :P
20:00 masak 'sides, a method call could totally be an object.
20:01 tadzik or a PAST::Op
20:01 sorear there is a universe O of things that can be stored in my Mu $x.  I call these things objects.
20:01 moritz so, is a GC run an object?
20:01 sorear no, a GC run cannot be stored in a variable.
20:01 tadzik if think you're taking "everything" a bit too literally, although it may sound a bit too general, yes
20:01 moritz sorear: what does "denotational" mean? my dictionary doesn't know it...
20:02 PerlJam How about "all nouny things are objects" ?
20:02 PerlJam so, if you noun a verb, it could be an object.
20:02 sorear moritz: I don't think it means anything.  I understand [denotational semantics] as an atomic noun
20:03 moritz PerlJam: "program exit" sounds like a noun-y thing to me, and isn't an object either
20:04 moritz if people say "everything you can store in a variable is an object", that's fine by me
20:04 Mowah left #perl6
20:04 tadzik nom: Parameter.new.name.WHAT
20:04 p6eval nom:  ( no output )
20:04 tadzik nom: Parameter.new.name.WHAT.say
20:04 p6eval nom: OUTPUT«Str()␤»
20:05 PerlJam moritz: "all non-temporal nouny things"?   ;)
20:05 tadzik rakudo: say Mu.elems
20:05 p6eval rakudo 922500: OUTPUT«Method 'elems' not found for invocant of class ''␤  in main program body at line 22:/tmp/cA4UcSN5Hj␤»
20:06 sorear every expression, in a concrete runtime context, has a meaning which consists of a set of modifications to global state, and either an Object O, a Container C, an Unwinding_Exception E, or NonTermination
20:06 tadzik is Parameter object specc'd?
20:07 * PerlJam feels like he's just entered a Theory of Computation class.
20:07 jnthn tadzik: S06
20:07 tadzik List. So it can't be Mu
20:07 tadzik nom: say ().WHAT
20:07 p6eval nom: OUTPUT«Parcel()␤»
20:07 sorear "everything is an object" is not the meme itself, but the soundbite form of the meme
20:08 tadzik nom: say () ~~ List
20:08 p6eval nom: OUTPUT«Bool::False␤»
20:08 tadzik ekhm
20:08 tadzik nom: say List.new.perl
20:08 p6eval nom: OUTPUT«().list␤»
20:08 tadzik oh
20:08 TimToady nom: say Nil ~~ Mu
20:08 moritz it's a Parcel
20:08 p6eval nom: OUTPUT«Bool::True␤»
20:08 TimToady nom: say Mu ~~ Nil
20:08 p6eval nom: OUTPUT«Bool::False␤»
20:08 tadzik nom: say ().list.elems
20:08 p6eval nom: OUTPUT«0␤»
20:08 sorear expressions in Java (to pick a well-known example) have a semantic result with a semantic object universe O, but elements of O do not have much of a common interface
20:09 sorear you can't make a call to .GetClass() for an arbitrary semantic object
20:09 TimToady .WHAT!?!
20:09 tadzik also, not everything is an object
20:09 sorear until recently, you couldn't put any semantic object into containers
20:09 tadzik they have primitive types
20:10 TimToady .oO(Occam's circular saw)
20:10 tadzik this could be useful to shave your neck
20:10 masak shave *off* your neck, you mean!
20:10 tadzik oh, saw. Then maybe to shave your neck off
20:11 sorear in more modern languages, like C# and Ruby and Perl6, all semantic objects are instances of an 'Object' class and the load on programmers is lighter
20:12 sorear however, this is a mouthful.  Who coined the 'Everyhting is an object' soundbite?  Was it the Ruby community?
20:12 tadzik wasn't it Smalltalkers?
20:12 TimToady you just have to define "thing" right :)
20:14 TimToady maybe we should've named Mu Every, so we could have Every thing to go with Any thing
20:14 sorear tadzik: Smalltalk, IIUC, had the universal base class nature, but when you're just introuducing OO to the world 'Everything is an object' isn't a terribly good slogan
20:15 TimToady it's a good first approximation
20:15 masak if we ever get an .each junction, will it just translate to a map around the whole expression?
20:15 TimToady you have to believe temporary lies to learn most anything
20:15 tadzik nom: Array.can('unshift')
20:15 p6eval nom:  ( no output )
20:15 sorear the C89 spec uses 'object' to mean 'a region of memory with semantic importance'.  in 1989, C had more "object"s than Smalltalk, an int on the stack has 3 objects...
20:15 tadzik nom: say so  Array.can('unshift')
20:15 p6eval nom: OUTPUT«Bool::True␤»
20:15 tadzik Method 'unshift' not found for invocant of class 'Array'. Huh
20:16 sorear nom: say so Array.can('pie')
20:16 p6eval nom: OUTPUT«Bool::True␤»
20:16 sorear nom: say Array.can('pie').WHAT
20:16 p6eval nom: OUTPUT«Parcel()␤»
20:16 sorear nom: say Array.can('pie').perl
20:16 p6eval nom: OUTPUT«()␤»
20:16 tadzik ASD
20:16 sorear ASD?
20:16 tadzik nom: Array.can('unshift').perl.say
20:16 p6eval nom: OUTPUT«()␤»
20:17 tadzik sorear: just a placeholder, I sometimes use it to express astonishment
20:17 tadzik nom: [1, 2, 3].unshift.say
20:17 p6eval nom: OUTPUT«Method 'unshift' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 111 ((file unknown):80064907) (/tmp/2eMWhOcEDN:1)␤»
20:17 tadzik rakudo: [1, 2, 3].unshift.say
20:17 p6eval rakudo 922500: OUTPUT«1 2 3␤»
20:17 tadzik how come nom has unshift NYI? Gosh
20:18 TimToady nom is too shifty
20:18 masak fruits. they're hanging so low.
20:18 TimToady or maybe too pushy
20:19 tadzik I'm picking that one, stay off!
20:19 * masak makes to do it faster than tadzik :P
20:20 sorear std: $foo.^?pi
20:20 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $foo is not predeclared at /tmp/ohzcx1sDrD line 1:␤------> [32m$foo[33m⏏[31m.^?pi[0m␤Confused at /tmp/ohzcx1sDrD line 1:␤------> [32m$foo.^[33m⏏[31m?pi[0m␤    expecting dotty method or postfix␤Parse failed␤FAILED 00:01 …
20:20 sorear std: 1.^?pi
20:20 p6eval std 516268a: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/sdrHDuXSLr line 1:␤------> [32m1.^[33m⏏[31m?pi[0m␤    expecting dotty method or postfix␤Parse failed␤FAILED 00:01 119m␤»
20:20 sorear I am suprised this does not parse as 1.HOW.?pi(1)
20:20 tadzik rakudo: ().unshift
20:20 p6eval rakudo 922500: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤  in main program body at line 22:/tmp/Q_d2xLD_fq␤»
20:21 tadzik masak: ...first!
20:21 tadzik and 6 minutes to compile the beast, yes :)
20:22 sorear hmm
20:22 * PerlJam wonders how hard it would be to write an "autovivification" pragma like Perl 5 has.
20:22 sorear I am now dealing with a combinarial explosion (again)
20:23 sorear $foo.^Bar::($bar)()
20:23 sorear or better yet $foo.?Bar::($bar)()
20:23 sorear I already have special code for various modified method calls.  Now I need to add matching indirect-name cases?
20:24 masak tadzik: :)
20:24 masak tadzik++
20:25 sorear PerlJam: theory of computation is fun!
20:27 sorear rakudo: "x" ~~ / <Cursor::alpha> /; say $/.keys
20:27 p6eval rakudo 922500: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 22, near "::alpha> /"␤»
20:27 sorear rakudo: "x" ~~ / <.Cursor::alpha> /; say $/.keys
20:27 p6eval rakudo 922500: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 22, near "::alpha> /"␤»
20:27 sorear huh?
20:27 sorear nom: "x" ~~ / <Cursor::alpha> /; say $/.keys
20:27 p6eval nom: OUTPUT«regex assertion not terminated by angle bracket at line 1, near "::alpha> /"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
20:35 [Coke] TimToady: (Mu as Every) I'd rather call Mu No, then.
20:37 saaki joined #perl6
20:37 moritz now that we mostly use Any when we mean "undef", can we s:g/Mu/Object/ again? :-)
20:37 tadzik hihi :)
20:39 masak moritz: +1
20:40 moritz does t/spec/S32-num/base.t run glacially slow for anybody else?
20:40 jnthn moritz: I noticed that too but didn't get to investigate.
20:41 moritz even under load it's a bit harsh to take 27s for 10 tests
20:41 jnthn Ok, it wasn't *that* glacial
20:42 jnthn but still, wtf is going on there...
20:43 moritz I don't really see what could be wrong
20:43 soh_cah_toa left #perl6
20:43 moritz the code is pretty straight forward
20:44 * masak tries to think up an autopun about the parsing speed being normal in a different number base
20:45 masak nope. drawing a complete blank.
20:46 moritz maybe it's drawing too many blanks all the time?
20:46 masak :P
20:46 masak rakudo: .say for <blank blank blank>.roll(50)
20:46 jnthn Beat me
20:46 jnthn *Beats
20:46 p6eval rakudo 922500: OUTPUT«blank␤blank␤blank␤blank␤blank␤blank␤bla​nk␤blank␤blank␤blank␤blank␤blank␤blank␤blank␤b​lank␤blank␤blank␤blank␤blank␤blank␤blank␤blank​␤blank␤blank␤blank␤blank␤blank␤blank␤blank␤bla​nk␤blank␤blank␤blank␤blank␤blank␤blank␤blank␤b​lank␤blank␤blank␤blank␤blank␤blank␤blank␤b…
20:46 * masak slaps jnthn with a trout
20:47 * moritz hopes it's a random trout
20:47 mj41 left #perl6
20:48 masak rakudo: class Trout { method question { say <Yes No>.roll } }; Trout.new.question("Are you random?")
20:48 p6eval rakudo 922500: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in 'Trout::question' at line 22:/tmp/iqYwQ_a3wn␤  in main program body at line 22:/tmp/iqYwQ_a3wn␤»
20:48 masak rakudo: class Trout { method question($q) { say <Yes No>.roll } }; Trout.new.question("Are you random?")
20:48 p6eval rakudo 922500: OUTPUT«Yes␤»
20:48 masak moritz: it's a random trout.
20:49 tadzik https://gist.github.com/1118969 does this appear to be wrong to not only me?
20:50 sorear tadzik: yes, wrong
20:50 masak tadzik: looks weirds, for sure.
20:51 jnthn moritz: golfed
20:51 sorear argument to unshift is a slurpy
20:51 masak 'night, #perl6
20:51 masak left #perl6
20:51 sorear rakudo: say 42.base(16)
20:51 p6eval rakudo 922500: OUTPUT«2A␤»
20:51 moritz jnthn: golfed?
20:52 sorear moritz: is nom or ng slow on base.t?
20:52 moritz sorear: nom
20:52 jnthn sorear: nom
20:52 jnthn We have a nasty performance bug
20:52 jnthn for 1..10 { my @conversion = 'A' .. 'Z';
20:52 jnthn }
20:52 jnthn moritz: Try the above.
20:52 moritz ouch
20:52 dalek rakudo/nom: 4d988e8 | moritz++ | LHF.markdown:
20:52 dalek rakudo/nom: remove item from LHF.markdown
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d988e8c55
20:52 dalek rakudo/nom: 57a0e27 | moritz++ | src/Perl6/Actions.pm:
20:52 dalek rakudo/nom: remove trailing ws from Actions.pm -- no functional changes
20:52 jnthn pmichaud: ping, if you're about.
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/57a0e271d8
20:52 dalek rakudo/nom: 20a62b2 | moritz++ | src/Perl6/Actions.pm:
20:52 dalek rakudo/nom: handle and check adverbs on rx//
20:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/20a62b2eab
20:52 localhost joined #perl6
20:52 localhost left #perl6
20:53 sorear nom: for 1..10 { say ['A' .. 'Z'] }
20:53 p6eval nom: OUTPUT«Rebuild in progress␤»
20:54 jnthn moritz: String ranges seem to be insanely slow for some reason, anyway.
20:54 shinobicl_ i have a class and i want to be able to compare 2 objects of that class for "equivalence"
20:55 shinobicl_ the equivalence is if 2 member arrays of the object are the same
20:55 shinobicl_ what operator should i use: eq, == or ~~ ?
20:55 shinobicl_ i dont know which one to overload
20:57 shinobicl_ i know that ~~ is true if the 2 objects are exactly the same... so this might be a bad candidate.... and == should be left for numbers only. I'm using 'eq' and 'ne' for the moment.
20:57 shinobicl_ but that's my opinion...
20:57 tadzik nqp: my @a := []; nqp::unshift(@a, [1, 2, 3]); say(+@a) # bug?
20:57 p6eval nqp: OUTPUT«1␤»
20:57 thou joined #perl6
20:57 tadzik oh, nope
20:57 tadzik slurpy
20:58 tadzik nqp: my @a := []; nqp::unshift(@a, 1, 2, 3); say(+@a)
20:58 p6eval nqp: OUTPUT«error:imcc:The opcode 'unshift_p_p_p_p' (unshift<4>) was not found. Check the type and number of the arguments␤     in file '(file unknown)' line 49␤»
20:58 tadzik nqp: my @a := []; nqp::unshift(@a, (1, 2, 3)); say(+@a)
20:58 p6eval nqp: OUTPUT«1␤»
20:58 tadzik hmm
20:58 tadzik jnthn: is that okay?
20:58 thou left #perl6
20:59 localhost joined #perl6
21:00 tadzik possibly nqp::unshift is one-argumental
21:04 shinobicl_ left #perl6
21:04 dalek features: 410b05d | larry++ | features.json:
21:04 dalek features: add basic specs
21:04 dalek features: review: https://github.com/perl6/f​eatures/commit/410b05dfdf
21:08 soh_cah_toa joined #perl6
21:09 moritz rakudo: my @a = 0 .. 9, 'A' .. 'Z'; say @a.perl
21:09 p6eval rakudo 922500: OUTPUT«[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]␤»
21:10 TimToady nom: my @a = 0 .. 9, 'A' .. 'Z'; say @a.perl
21:10 p6eval nom: OUTPUT«Array.new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR…
21:10 TimToady nom: my @a = lol 0 .. 9, 'A' .. 'Z'; say @a.perl
21:10 p6eval nom: OUTPUT«Could not find sub &lol␤current instr.: '_block1002' pc 119 ((file unknown):86) (/tmp/zPI05I2ohf:1)␤»
21:10 moritz oh, it doesn't stop at Z ?
21:11 moritz it goes right up to YZ
21:11 TimToady nom: my @a = (0 .. 9, 'A' .. 'Z').lol; say @a.perl
21:11 p6eval nom: OUTPUT«Array.new(0..9, "A".."Z")␤»
21:11 TimToady that's not right
21:12 TimToady nom: my @a = (0 .. 9, 'A' .. 'Z').lol; say @a[0].perl
21:12 p6eval nom: OUTPUT«0..9␤»
21:12 tadzik .lol :)
21:12 tadzik oh, that's correct
21:12 TimToady nom: Array.new(0..9, "A".."Z")[0].perl.say
21:12 p6eval nom: OUTPUT«0␤»
21:12 TimToady it's the .perl repr that is incorrect
21:13 TimToady pmichaud: ^^
21:13 jnthn tadzik: NQP doesn't differentiate between (...) and [...]
21:13 jnthn tadzik: At least, not in that sense.
21:14 moritz nom: say ('A' .. 'Z').list.elems
21:14 p6eval nom: OUTPUT«676␤»
21:14 moritz nom: say 26 ** 2
21:14 p6eval nom: OUTPUT«676␤»
21:14 jnthn ouch.
21:14 sorear after YZ is ZA
21:14 sorear "ZA" gt "Z"
21:14 tadzik jnthn: but nqp::unshift is one-argumental, right?
21:15 tadzik pushes one thing upfront
21:15 jnthn tadzik: correct
21:17 moritz src/core/Range.pm line 93 -- don't we have an opcode for assignment these days?
21:17 tadzik nom: sub foo(*@a) { while @a.pop { say $_ } }; foo(1, 2, 3)
21:17 p6eval nom: OUTPUT«Any()␤Any()␤Any()␤»
21:17 tadzik correct or not, I don't like it :)
21:17 moritz nom: sub foo(*@a) { while @a.pop -> $_ { say $_ } }; foo(1, 2, 3)
21:17 p6eval nom: OUTPUT«3␤2␤1␤»
21:17 tadzik yeah, I know
21:17 tadzik still, what I said :)
21:18 tadzik but I can understand that
21:18 tadzik probably it wouldn't work in Perl 5 to
21:19 y3llow left #perl6
21:19 y3llow_ joined #perl6
21:19 pothos_ joined #perl6
21:20 y3llow_ is now known as y3llow
21:21 pothos left #perl6
21:21 pothos_ is now known as pothos
21:21 jnthn moritz: (opcode) yes
21:27 dalek rakudo/nom: 2af47cb | moritz++ | src/core/Int.pm:
21:27 dalek rakudo/nom: unpessimize Int.base
21:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2af47cb45a
21:27 dalek rakudo/nom: b727910 | moritz++ | src/core/Real.pm:
21:27 dalek rakudo/nom: fix Real.base
21:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7279101f4
21:29 kaare_ left #perl6
21:30 tadzik rakudo: my $a; unshift($a, 5); say $a.perl
21:30 p6eval rakudo 922500: OUTPUT«Method 'unshift' not found for invocant of class ''␤  in 'unshift' at line 3209:src/gen/core.pm␤  in main program body at line 22:/tmp/TXM1RcxHBR␤»
21:33 TimToady phenny, tell shinobicl value equivalence is tested with eqv; eq would force string equivalence, while == would force numeric equivalence
21:33 phenny TimToady: I'll pass that on when shinobicl is around.
21:33 tadzik rakudo: my @a; @a.WHAT.say
21:33 p6eval rakudo 922500: OUTPUT«Array()␤»
21:33 tadzik nom: my @a; @a.WHAT.say
21:33 p6eval nom: OUTPUT«Array()␤»
21:33 tadzik erm
21:34 tadzik that needs a spectest, my @a; @a.unshift(foo)
21:34 TimToady you did it with $a the first time
21:34 tadzik yes, but the last example dies with... let me show
21:35 tadzik > my @a; @a.unshift(5)
21:35 tadzik unshift_pmc() not implemented in class 'Mu'
21:35 tadzik and spectests didn't catch that
21:35 TimToady nodnod
21:35 shinobicl_ joined #perl6
21:36 tadzik nom: my @a; @a.push(5)
21:36 p6eval nom:  ( no output )
21:36 shinobicl_ is there a way to 'restrict' a role so it can be applied only to a certain type?
21:36 tadzik that doesn't use nqp::push though
21:36 jnthn tadzik: nqp::push is for working with VM-level arrays only
21:37 tadzik yes, that's what nqp::push is doing
21:37 tadzik erm, nqp::unshift
21:37 PerlJam shinobicl_: if there were a composition-time hook, you could do it then.  But I don't think such a thing has been specced
21:37 jnthn shinobicl_: Not so far as I know. Why would you want to do that anyway?
21:37 tadzik oh wait, so what are $!items in Array?
21:37 jnthn tadzik: Not sure. It may be an RPA.
21:37 tadzik that's Mu
21:37 tadzik but yes, RPA
21:37 jnthn tadzik: It may be Mu if never touched yet.
21:37 tadzik yes
21:38 jnthn tadzik: I don't know the array/list guts well at all.
21:38 tadzik so should it be $!items // $!items = [] or so?
21:38 shinobicl_ i'm just trying stuff :)
21:38 tadzik (at the beginning of method unshift)
21:38 jnthn tadzik: Very unlikely.
21:38 jnthn Since [] would be a Perl 6 array.
21:38 MayDaniel joined #perl6
21:38 Trashlord left #perl6
21:38 tadzik well, but this kind of mechanism?
21:39 drbean_ joined #perl6
21:39 tadzik May it be better to just make List.$!items initialized as an empty array, always?
21:39 jnthn I suspect the check must be done elsewhere.
21:39 jnthn Not really.
21:39 jnthn Plus we don't have a good way to do that for various reasons.
21:39 tadzik deep thing, leave for now?
21:39 jnthn tadzik: Or ask pmichaud++
21:40 jnthn tadzik: I'm just the wrong person to ask about lists and arrays.
21:40 tadzik pmichaud: ping
21:42 tadzik niecza: my @a; @a.unshift(5)
21:42 p6eval niecza v8-11-g6f99914:  ( no output )
21:42 jnthn nom: my @a; @a.unshift(5)
21:42 p6eval nom: OUTPUT«Method 'unshift' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 86 ((file unknown):63522625) (/tmp/6BTsVJsDq5:1)␤»
21:42 tadzik not pushed yet
21:42 tadzik > my @a; @a.unshift(5)
21:42 tadzik unshift_pmc() not implemented in class 'Mu'
21:43 jnthn nom: my @a = 1,2; @a.unshift(5)
21:43 p6eval nom: OUTPUT«Method 'unshift' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 109 ((file unknown):149) (/tmp/xez4_jeHU7:1)␤»
21:43 tadzik my @a = () works fine though
21:43 sorear niecza: my @a = 5, 6; @a.unshift(1, (2, 3), 4); say @a.perl
21:43 jnthn nom: my @a = (); @a.unshift(5)
21:43 p6eval niecza v8-11-g6f99914: OUTPUT«[1, 2, 3, 4, 5, 6].list␤»
21:43 p6eval nom: OUTPUT«Method 'unshift' not found for invocant of class 'Array'␤current instr.: '_block1002' pc 99 ((file unknown):147) (/tmp/UFRt2j9xH8:1)␤»
21:43 tadzik jnthn: ...not pushed yet :)
21:43 jnthn tadzik: oh
21:43 tadzik ok, pushing for you
21:43 jnthn I thought there was a bug, not a NYI :)
21:43 localhost left #perl6
21:43 tadzik there are both :P
21:43 jnthn tadzik: I think unshift is non-trivial because if you unshift something lazy you gotta do the right thing...
21:43 jnthn And I've not much feel for what the right thing is.
21:44 dalek niecza: c1ce34b | sorear++ | / (2 files):
21:44 dalek niecza: Name refactor part 5: remaining cases: method calls and term:name
21:44 dalek niecza: review: https://github.com/sorear/niecza/commit/c1ce34b515
21:44 jnthn But sticking it in $!items is almost certainly wrong, afaik, because that's the reified part.
21:44 tadzik oops
21:44 sorear hmm
21:44 jnthn I may be wrong though.
21:44 tadzik well, I made it pass the spectests
21:44 jnthn but I *thought* that's what $!items is :)
21:44 tadzik 69 tests more :)
21:44 sorear niecza: my @a = <a b c>; @a.unshift(1..*);  say @a[^5].perl
21:44 jnthn Maybe I'm remembering a previous design :)
21:45 p6eval niecza v8-11-g6f99914: OUTPUT«(timeout)»
21:45 tadzik so maybe the spectests need lazy lists too
21:45 sorear looks like niecza's unshift is semi-eager
21:45 dalek rakudo/nom: ee1fe6b | tadzik++ | / (2 files):
21:45 dalek rakudo/nom: Implement unshift
21:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ee1fe6bb72
21:45 tadzik master unshifts the eagered arguments I think
21:45 sorear niecza: my @a = 1..*; @a.unshift(<a b c>);  say @a[^5].perl
21:45 p6eval niecza v8-11-g6f99914: OUTPUT«(timeout)»
21:45 jnthn tadzik: OK. Well, we'll see what pmichaud++ says about the patch. :)
21:46 sorear niecza: my @a := @(1..*); @a.unshift(<a b c>);  say @a[^5].perl
21:46 tadzik and uses splice, I though I'd use an opcode since we have an opcode for that
21:46 p6eval niecza v8-11-g6f99914: OUTPUT«("a", "b", "c", 1, 2)␤»
21:47 Patterner left #perl6
21:49 TimToady I think if you unshift something with unreified bits, it'll have to unreify the reified bits of the destination array
21:49 Psyche^ joined #perl6
21:49 Psyche^ is now known as Patterner
21:51 jnthn TimToady: sounds sane
21:51 TimToady or surreify them :)
21:56 MayDaniel left #perl6
21:56 jnthn Tssk. Seems just about all my day got nommed by $dayjob
21:56 jnthn And I'm still "behind".
21:57 diakopter expectations too eager
21:58 jnthn Well, more than I ignored it more than I shoulda in recent weeks to hack on nom. :)
21:59 jnthn e src\binder\bind.c
21:59 jnthn GAH!
21:59 jnthn too tired to type in the right window :)
22:04 dalek niecza: e28a93b | sorear++ | src/ (2 files):
22:04 dalek niecza: mergeback
22:04 dalek niecza: review: https://github.com/sorear/niecza/commit/e28a93bac2
22:06 diakopter sorear: that's a lot of red
22:07 soh_cah_toa left #perl6
22:10 sorear diakopter: the workflow I use tends to make a bunch of very green commits then one very red commit
22:11 Moukeddar joined #perl6
22:11 shinobicl_ left #perl6
22:11 diakopter interesting
22:12 wamba left #perl6
22:14 Moukeddar Hello people :)
22:14 sorear Hello, Moukeddar.
22:14 Moukeddar what's cooking?
22:14 diakopter texas
22:15 Moukeddar and how are you doing?
22:15 sorear haha, diakopter
22:16 Moukeddar texas is cooking?
22:16 sorear Moukeddar: USA weather is anomalously warm
22:16 Moukeddar you should try me region :)
22:19 * diakopter wonders whether masak has written a sudoku solver in Perl 6
22:20 diakopter or generator
22:20 diakopter or anyone, for that matter
22:21 diakopter phenny: ask masak do you know of anyone writing sudoku-related code in Perl 6
22:21 phenny diakopter: I'll pass that on when masak is around.
22:21 sorear how is the climate in you area, Moukeddar?
22:21 tadzik diakopter: moritz did, methinks
22:21 Moukeddar right now i'm in cold City
22:21 Moukeddar but in my old one
22:21 Moukeddar we reached 54�C
22:22 diakopter ?!
22:23 diakopter that's, like, 131F
22:23 diakopter er, 129
22:24 sorear Moukeddar: does it make a difference how close to the coast you are?
22:24 Moukeddar 22 Km
22:24 Moukeddar and it doesn't make a difference
22:27 tadzik jnthn: how do I detect if something is a Multi?
22:28 soh_cah_toa joined #perl6
22:28 dalek specs: 598535f | larry++ | S12-objects.pod:
22:28 dalek specs: more headings, add Foo:A
22:28 dalek specs: review: https://github.com/perl6/specs/commit/598535f2c9
22:29 jnthn tadzik: .multi
22:29 jnthn tadzik: oh...I didn't put that back yet
22:30 jnthn tadzik: Can do it in just a moment.
22:30 tadzik I suppose relying on .candidates is not reliable?
22:31 jnthn tadzik: No
22:31 tadzik good to know
22:31 jnthn tadzik: As you can't tell if it's a multi itself or a proto with one candidate.
22:32 Moukeddar left #perl6
22:32 jnthn nom: (multi foo() { }).dispatcher.WHAT.say
22:32 p6eval nom: OUTPUT«Sub()␤»
22:32 jnthn nom: (sub foo() { }).dispatcher.WHAT.say
22:32 p6eval nom: OUTPUT«Mu()␤»
22:32 dalek rakudo/nom: 82481f1 | jonathan++ | src/binder/bind.c:
22:32 dalek rakudo/nom: When we get passed a non-6model argument, try to marshall it. If that fails, complain. This helps with calls in from the outside world, but also avoids a bunch of segfaults.
22:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/82481f1342
22:32 jnthn That's one way.
22:32 am0c left #perl6
22:32 jnthn (.dispatcher gets the proto)
22:33 jnthn nom: (sub foo() { }).dispatcher.defined.say
22:33 p6eval nom: OUTPUT«Bool::False␤»
22:33 jnthn nom: (multi foo() { }).dispatcher.defined.say
22:33 p6eval nom: OUTPUT«Bool::True␤»
22:34 diakopter TimToady: Multisubs and Multimethods  sorely lacks subheadings,
22:37 diakopter also Enumerations
22:40 TimToady yes, I've only just started, but will probably work on S02 next
22:41 TimToady feel free to add some yerself
22:41 diakopter does Text::Smartlinks create the linked table of contents at perlcabal.org/syn ?
22:42 diakopter sorry, the ones at the top of each Snn, I mean
22:44 shinobicl joined #perl6
22:46 shinobicl hi guys... i'm afraid i will bother you again with questions :(
22:46 phenny shinobicl: 21:33Z <TimToady> tell shinobicl value equivalence is tested with eqv; eq would force string equivalence, while == would force numeric equivalence
22:46 shinobicl eqv: noted
22:47 diakopter TimToady: ok, can I continue with S12?
22:48 TimToady sure
22:49 shinobicl timtoady: and the not eqv? "neq"? "neqv"?
22:59 TimToady !eqv
23:00 TimToady it's a metaoperator
23:00 jnthn I blug: http://6guts.wordpress.com/2011/0​8/01/a-hint-of-meta-programming/
23:06 jnthn tadzik: ping
23:07 tadzik jnthn: pong
23:07 jnthn tadzik: What did you mean by "is a multi"?
23:07 jnthn (more)
23:08 jnthn Did you mean, if I call it, then it'll do a multi-dispatch?
23:08 jnthn Or did you mean, it's a multi candidate?
23:08 tadzik jnthn: I mean an equivalent of master's $a ~~ Multi
23:08 jnthn ah
23:08 jnthn Then you don't want .multi :)
23:08 shinobicl is there any problem with this code???? I can't find any :( . But the operator is never called. http://pastebin.com/ZS17Xv5K
23:08 jnthn nom: sub foo() { }; say &foo.is_dispatcher
23:08 p6eval nom: OUTPUT«Bool::False␤»
23:08 jnthn nom: multi foo() { }; say &foo.is_dispatcher
23:08 p6eval nom: OUTPUT«Bool::True␤»
23:09 jnthn That's what you wnat.
23:09 jnthn *want
23:09 jnthn .multi means "is this a multi candidate" - that is, was it declared with "multi".
23:10 jnthn .oO( maybe it should be &foo.proto... )
23:11 rdesfo left #perl6
23:13 dalek rakudo/nom: 6d143c5 | jonathan++ | src/core/Routine.pm:
23:13 dalek rakudo/nom: Implement Routine.multi.
23:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6d143c5742
23:14 tadzik eek
23:14 tadzik method named() { nqp::p6bool(nqp::isnull($!named_names)) }
23:14 tadzik tadzik, don't swear. Don't swear. Don't swear
23:15 jnthn Oh, tabey, it's inverted.
23:16 jnthn er, tabej, and backwards...I ruined that one :)
23:16 jnthn OK, sleep
23:17 sorear have you 1. killed anyone 2. caused over 1000 EUR in property damage ?
23:17 sorear a botched commit is no big deal
23:17 tadzik no, I've wasted around an hour tracking down a bug that wasn't
23:17 jnthn sorear: yeah but wasting...right.
23:17 * jnthn lost an hour to a silly bug yesterday too :/
23:17 tadzik this is how we roll :)
23:18 jnthn Sometimes you hack the code. Sometimes the code hacks you. :)
23:18 soh_cah_toa left #perl6
23:19 jnthn Really sleep, or I'll be even more grouchy than normal tomorrow at $client... &
23:22 rdesfo joined #perl6
23:22 shinobicl should i explicitly export my overloaded operators?
23:23 diakopter TimToady: hunh. I guess I should've read S12 before now
23:24 tadzik jnthn++ # blogpost
23:25 shinobicl i define them in a .pm file, but does not seem to work when i call them from my test program ...
23:26 dalek niecza: eda0c8e | sorear++ | / (3 files):
23:26 dalek niecza: Fill in stubs for indirect name references
23:26 dalek niecza: review: https://github.com/sorear/niecza/commit/eda0c8e85a
23:27 sorear shinobicl: as I said earlier they need to be declared 'our' to work
23:27 jaldhar joined #perl6
23:28 shinobicl oh, sorry, didn't see your answer before
23:29 shinobicl thanks and sorry for making that much questions :)
23:31 soh_cah_toa joined #perl6
23:32 colorspace joined #perl6
23:33 shinobicl left #perl6
23:39 soh_cah_toa left #perl6
23:41 soh_cah_toa joined #perl6
23:49 f00li5h joined #perl6
23:56 whiteknight joined #perl6
23:58 soh_cah_toa left #perl6
23:59 im2ee left #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs