Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-11-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 eternaleye Wolfman2000: Okay, sounds good
00:03 Wolfman2000 ...okay...I have to wonder what is being processed on my Form. I'm not even doing any validation: this is merely a check to see that POST requests go through without a hitch. It's lagging!
00:03 Wolfman2000 ...or it was stopped due to C-z
00:04 meteorjay joined #perl6
00:16 carlin Tene++: Any updates on the IO work?
00:19 pugs_svn r29028 | pmurias++ | [mildew-js] fix Scalar.new
00:21 s1n joined #perl6
00:33 orafu joined #perl6
00:36 xenoterracide joined #perl6
00:45 ihrd joined #perl6
00:46 ihrd left #perl6
00:56 reid05 joined #perl6
01:20 Wolfman2000 ...now the Catalyst people are confusing me. Bah. Who else is an expert on this?
01:32 nihiliad joined #perl6
01:41 Juerd Why are the parameter names for IO::Socket and IO::Socket::INET in camelcase?
01:41 Juerd ::Unix too
01:43 Wolfman2000 Juerd: *shrugs* I don't name them
01:44 jnthn Juerd: Are you looking at spec or Rakudo, out of interest?
01:45 Juerd jnthn: spec
01:46 jnthn Hmm.
01:46 jnthn Seems inconsistent.
01:46 carlin .oO( Because S32/IO lists what *NOT* to do with IO ... )
01:47 jnthn lol
01:47 jnthn I think IO wins the award for the most bikesheded part of Perl 6.
01:48 Juerd I'm not trying to participate in any bikeshedding!
01:48 * Juerd is just curious :)
01:49 Juerd I think the most bikeshedded part of Perl 6 is the syntax for "self". :)
01:49 diakopter I think the most bikeshedded part of Perl 6 is the syntax
01:49 jnthn Juerd: Oh, I wasn't criticising your comment. :-)
01:49 jnthn Juerd: I agree with you.
01:49 diakopter :P ;)
01:49 Juerd jnthn: I'm not sure I have an opinion even. What are you agreeing with :)
01:50 jnthn Juerd: In the Perl world camel case doesn't seem to be the Done Thing.
01:50 Juerd Except in namespaces
01:50 jnthn I dunno why. I prefer it personally. But I'm one of those "I don't care much what the standard is, I do care about consistently applying one" people
01:51 Juerd I've been looking for a standard for identifiers but couldn't find one for Perl 6
01:52 jnthn The "we can use hypens now" only adds to the confusion.
01:52 Wolfman2000 where's that dictionary bot someone said he was going to program? I'm not familiar with bikeshedding myself.
01:52 Juerd Hyphens are great but over-used.
01:52 carlin Wolfman2000: arguning abut the colour of the bikeshed while the house is still being built
01:52 jnthn no-no-no-no-no-YES
01:52 Juerd Wolfman2000: http://en.wiktionary.org/wiki/bikeshedding
01:53 carlin s/arguning/arguing/
01:53 jnthn .oO( probably nobody else got the Vicar of Dibly reference. eh well )
01:53 oZ] joined #perl6
01:53 Wolfman2000 Juerd: While you're here, one of the cpan modules I tried to install but failed to was File::ChangeNotify. It's one of the few modules that still hard codes installing the man files to /usr/man or whatever the common place is, and thus cpan won't install it for me.
01:54 Juerd I see
01:54 Juerd While I install it, please tell me why you need to know when files change. I'm curious :)
01:55 Wolfman2000 Juerd: One of the options for running Catalyst's development server is to have it automatically reload itself upon changing a core file.
01:55 oZ] (which is awesome.)
01:55 Wolfman2000 It beats having to kill and restart it at least.
01:55 Wolfman2000 When Web.pm becomes more popular, File::ChangeNotify can come in handy, along with Module::Refresh
01:56 Juerd Wolfman2000: Wouldn't just sending SIGHUP be a much easier way to accomplish that, not to mention leaner?
01:56 Wolfman2000 Juerd: not familiar with that operation.
01:56 Juerd Wolfman2000: Installed
01:57 Wolfman2000 Juerd++: danke
01:57 Juerd Wolfman2000: In Unix, processes are controlled using signals. For example, if you send a KILL signal to a process, it dies.
01:57 Wolfman2000 kill -9...I'm familiar with that one
01:57 Juerd Wolfman2000: When a child process has finished, the parent gets the CHLD signal so it can clean up after the child.
01:58 nbrown joined #perl6
01:58 oZ] Juerd: I would imagine that Catalyst server's restarting of the process is a lot cleaner and safer than attempting a full unload of modules and then reloading them.
01:58 Juerd Wolfman2000: The HUP signal, hangup, is commonly used to signal that reloading or resynchronisation is required.
01:58 Juerd Wolfman2000: For example, after I change a DNS zone file, I do killall -HUP named and named reloads its zone files.
01:58 Wolfman2000 Juerd: oZ] is my unofficial coach when the main catalyst room is either dead or dumbfounded by my questions.
01:59 Wolfman2000 Juerd: Hmm...it does sound like it has some advantages.
02:00 Juerd I don't know about Perl 6, but implementing signals in Perl 5 goes by just assigning to %SIG, like so: $SIG{HUP} = sub { ... };
02:02 Juerd Ah, it is described in S17
02:03 Juerd CONTROL { when Error::Signal::HUP { ... } } apparently
02:03 jnthn Sleep for me...night all
02:03 oZ] G'night.
02:04 Juerd jnthn: Good idea. Good night
02:04 * Juerd too &
02:05 payload joined #perl6
02:06 Wolfman2000 ...I'm an idiot. Most form input style tags require an ID AND a name.
02:09 Wolfman2000 eternaleye: I require your assistance again.
02:11 eternaleye Wolfman2000: ?
02:12 Wolfman2000 I need a reminder on what we agreed upon when it comes to user registration. Should we allow users to effectively register themselves if they give a username unclaimed and a password that's valid?
02:15 eternaleye Wolfman2000: I think it should require actively registering, rather than autovivifying a login.
02:15 eternaleye But we didn't actually discuss it.
02:16 Wolfman2000 eternaleye: I didn't recall if we discussed that point. I thank you for thinking that one should actively register. A part of me thinks getting their email address should be part of the process.
02:16 eternaleye Wolfman2000: That makes entirely too much sense ;D
02:17 Wolfman2000 eternaleye: what's wrong with that?
02:17 eternaleye Wolfman2000: It's a snarky way of saying 'Why didn't I think of that'
02:18 Wolfman2000 Noted.
02:19 Wolfman2000 While you're here...I think I know of something else that will help, but I need some confirmation. Do you have any particular favorite XML parsing module?
02:19 eternaleye Wolfman2000: Not really, I don't deal with XML much.
02:35 payload left #perl6
02:39 Wolfman2000 eternaleye: forget that I asked about XML. I'm trying to make this pastebin too complicated.
02:40 * Wolfman2000 will have to learn AJAX some other time.
02:46 Wolfman2000 Homework time: If I'm lucky, I should knock out everything I need to within an hour.
03:10 Thyssen joined #perl6
03:19 scottt_ joined #perl6
03:22 carlin Hmm, parrot/rakudo built with SunStudio leaks memory slower than if it was built with gcc
03:23 Thyssen then use Clang/LLVM
03:25 carlin Oh. Probably because it runs slower :/
03:26 diakopter does parrot build with Clang/LLVM?
03:28 Thyssen well now's never a better time to find out
03:29 diakopter I suspect you mean now's never a worse time to find out
03:30 diakopter rakudo: rogate
03:30 p6eval rakudo 97ced1: Could not find non-existent sub rogate␤in Main (file src/gen_setting.pm, line 324)␤
03:50 carlin rakudo: marine
03:50 p6eval rakudo 97ced1: Could not find non-existent sub marine␤in Main (file src/gen_setting.pm, line 324)␤
03:57 am0c joined #perl6
04:04 Wolfman2000 ...I never thought I would struggle this much on this part of a cryptography paper
04:09 c9s joined #perl6
04:10 meppel joined #perl6
04:30 envi^office joined #perl6
04:38 frew joined #perl6
04:48 yves joined #perl6
05:04 Thyssen rakudo: abstract syntax tree
05:04 p6eval rakudo 97ced1: Could not find non-existent sub tree␤in Main (file src/gen_setting.pm, line 324)␤
05:16 Wolfman2000 ...I'm going to need bed soon. I can't guarantee much work on the website for the next day or two due to college. Those on feather: if you know what you are doing, feel free to try to improve what I've got.
05:22 diakopter Wolfman2000: 'nite
06:04 * s1n reading back
06:05 s1n Juerd: to be perfectly clear, _any_ signal without a handler results in undefined behavior, which the default happens to be to die
06:18 carlin rakudo: say %*ENV<_>
06:18 p6eval rakudo 97ced1: ../p/bin/perl6␤
06:23 colomon joined #perl6
06:33 [particle] joined #perl6
06:43 icwiener joined #perl6
06:54 simcop2387 joined #perl6
07:01 hsb joined #perl6
07:02 xp_prg joined #perl6
07:04 sunnavy joined #perl6
07:04 base_16 joined #perl6
07:04 nsh joined #perl6
07:05 Infinoid joined #perl6
07:11 kaare joined #perl6
07:21 simcop2387 joined #perl6
07:38 moritz_ good morning
07:39 diakopter noim
07:42 snarkyboojum joined #perl6
07:49 envi^office joined #perl6
08:07 leedo joined #perl6
08:17 gfx joined #perl6
08:18 iblechbot joined #perl6
08:20 snarkyboojum joined #perl6
08:27 baest joined #perl6
08:32 Leland joined #perl6
08:32 Leland morning
08:35 Su-Shee joined #perl6
08:41 barney joined #perl6
08:47 mariuz joined #perl6
09:12 am0c joined #perl6
09:24 moritz_ diakopter: btw last time I tried rakudo and parrot did build with clang/llvm...
09:24 moritz_ diakopter: but I needed the --without-gmp option to parrot's Configure.pl
09:26 explorer joined #perl6
09:29 diakopter interesting
09:30 * diakopter still awake, it seems
09:31 diakopter rakudo-ng: say 'hi'
09:32 pdcawley joined #perl6
09:32 masak joined #perl6
09:32 masak good morning, #perl6.
09:33 diakopter phenny: yeah, yeah
09:33 diakopter o wait
09:34 moritz_ oh hai masak
09:34 * diakopter to bed
09:36 moritz_ diakopter: good night
09:38 moritz_ masak: I liked your auld way of blogging (less posts, but more substance to each of them) better than what you're doing this month
09:42 masak frettled++ # you're a nice guy too!
09:44 masak frettled: you missed hugme! :/
09:44 masak hugme: hug frettled
09:44 * hugme hugs frettled
09:45 masak how did that happen?
09:46 frettled /o\
09:46 frettled hugme: hug masak
09:46 * hugme hugs masak
09:46 moritz_ masak: yesterday night we also planned to move that blog post to a new page on perl6.org to make it easier to update for anybody
09:46 masak that's likely a good idea.
09:49 frettled masak: fixified
09:53 masak frettled++
09:56 moritz_ nqp: say('hopefully fast')
09:56 p6eval nqp: hopefully fast␤
10:01 masak phenny: tell colomon that I think Str.Str returning self is perfectly alright. (1) Liskov doesn't say it needs to be exactly a Str, just at least a Str. (2) derived classes can always override, as usual.
10:01 phenny masak: I'll pass that on when colomon is around.
10:01 frettled moritz_: Aha, so we can use it for testing nqp as well now!  *fixes blog*
10:02 moritz_ frettled: pugs, rakudo, nqp, elf, mildew, std, mildew-js, sprixel (iirc)
10:03 moritz_ kp6: say('hi')
10:04 frettled whoa
10:07 moritz_ I did try to make every Perl 6 compiler available through p6eval :-)
10:07 moritz_ btw the nqp: target uses nqp-rx, not the old nqp
10:07 frettled okay, fixed :)
10:08 flip214 joined #perl6
10:08 flip214 Hello everybody!
10:09 frettled hello!
10:10 masak rakudo: say '412pilf elloH'.flip.say
10:10 p6eval rakudo 97ced1: Holle flip214␤1␤
10:10 masak er.
10:10 masak rakudo: '!412pilf elloH'.flip.say
10:10 p6eval rakudo 97ced1: Holle flip214!␤
10:10 masak *sigh*
10:10 masak rakudo: '!412pilf olleH'.flip.say
10:10 p6eval rakudo 97ced1: Hello flip214!␤
10:10 masak I should have used a mirror or something from the start.
10:10 flip214 thank you
10:11 flip214 Sorry if I'm being dense again, but I tried some small things in p6 ... but I've got problems again.
10:11 * moritz_ wonders if p6eval not showing trailing spaces will become an issue some day
10:11 flip214 I tried to use opendir/readdir, but get "could not find non-existent sub opendir"
10:11 flip214 Now in parrot there's a DirHandle
10:11 flip214 but I'm wondering ...
10:11 masak moritz_: where did the OUTPUT«» go?
10:12 flip214 what's the general plan?
10:12 moritz_ masak: somebody patched it into oblivion
10:12 flip214 can perl6 import definitions written in parrot? constants, types, functions?
10:12 masak moritz_: yes, but why?
10:12 flip214 or do such declarations have to be duplicated?
10:13 masak moritz_: feels dangerous. in the worst case, p6eval could now trigger other bots.
10:13 flip214 I tried "use DirHandle" but that's not found ... I'll have to look why, isn't that in the parrot_install path?
10:13 moritz_ masak: probably because it's less clutter, and there's not RESULT«...» anyway
10:13 moritz_ flip214: it would be use DireHandle:from<parrot>;
10:13 flip214 masak: as demonstrated two weeks ago, that can happen anyway, because p6 may do tcp sockets ...
10:14 flip214 moritz: I'll try that.
10:14 moritz_ flip214: but the master plan is to have some parrot independent directory reading facility
10:14 moritz_ flip214: I'll try to restrict that with selinux in the near future
10:14 flip214 well, I'm a bit confused ...
10:14 moritz_ rakudo: use DirHandle:from<parrot>; say 'alive';
10:14 p6eval rakudo 97ced1: "load_bytecode" couldn't find file 'DirHandle.pir'␤in Main (file <unknown>, line <unknown>)␤
10:15 snarkyboojum joined #perl6
10:15 flip214 I hoped that with parrot *all* languages implemented above could use each others functions
10:15 flip214 but how should that work, exactly?
10:15 moritz_ use OtherModule :from<language>;
10:15 flip214 If perl6 should call C functions, it needs the structures, constants, etc somehow
10:15 flip214 I'd think that they'd be supplied with classes
10:16 meppl joined #perl6
10:16 flip214 but a perl6 class definition won't help a php part, or a javascript part, or a lisp part and so on
10:16 flip214 so is there some way to share lower-level declarations (from parrot)?
10:16 flip214 or do they have do be duplicated in *all* languages used above?
10:17 flip214 and the ":from<parrot>" doesn't work for me locally, too.
10:17 flip214 To be a bit more clear ...
10:17 flip214 I'm rewriting a C program.
10:17 jnthn oh hai
10:17 flip214 I'd like to do most things in P6, but the performance-sensitive parts may need parrot or C
10:18 moritz_ flip214: there are two different problems and solutions ...
10:18 moritz_ flip214: for one you can ask "how can any Perl 6 program call a C functioon?"
10:18 flip214 so, until p6 can be compiled to C and re-compiled to native code, I'll need some link
10:18 moritz_ that needs a Perl 6 solution that's independent of parrot
10:18 flip214 moritz: to that I already got the answer "there the native call interface"
10:18 moritz_ and if PHP wants a solution to that problem, it also needs a native PHP solution
10:18 moritz_ etc.
10:19 flip214 that's bad
10:19 moritz_ there's not much we can do about it
10:19 moritz_ the second question is that of interaction of parrot-based languages
10:19 flip214 I think all languages done on parrot need some kind of "precompiler"-loading, so that such declarations can be easily shared
10:19 moritz_ that one is partially solved
10:19 flip214 without having to transform them a hundred times with swig or something like that
10:20 moritz_ aye
10:20 flip214 moritz: yes? the "interaction of parrot-based languages"? what's the plan?
10:21 moritz_ flip214: the plan is to just share the parrot objects, and call methods on them
10:21 moritz_ which partially works
10:21 moritz_ if you've got rakudo and cardinal installed, use RubyModule :from<cardinal>; works
10:21 moritz_ but if you just want to call some PIR functions, you can also use inline PIR
10:22 flip214 so enums/constants have to be passed by name here, and are changed to ints or whatever in parrot, right?
10:22 moritz_ anyway, I'm not a cross-HLL expert; Tene or jnthn are more competent here
10:22 flip214 will make a few problems for syntax highlightning, spelling and so on, I think
10:22 flip214 they'd have to know parrot at least
10:24 flip214 So, the canonical way will be to use the DirHandle module from parrot, instead of opendir/readdir.
10:24 moritz_ masak: re dangerous, triggering other bots: as long as the prefix (rakudo $sha:) is fixed by the bot, tehre's not much danger
10:24 moritz_ flip214: Perl 6 will offer a parrot-independent interface for reading directories
10:24 flip214 Is that just a short-lived problem (":from<parrot>" not working), or is that just not implemented yet?
10:25 moritz_ :from<parrot> works in principle, but there might just not be a DirHandle.pir lying around in the install dir
10:25 rgrau joined #perl6
10:25 moritz_ so needs more investigation
10:25 moritz_ lunch &
10:28 Leland left #perl6
10:28 flip214 is there some easy way to get c header files parsed to get parrot NCI output and/or class definitions (for structures)
10:28 masak moritz_: sure, as long as all implementations have an $sha -- which I don't think is the case.
10:29 masak moritz_: otherwise, all you need is a bot called nqp or something, and... BAM.
10:31 carlin pugs: say 'do evil things'
10:31 p6eval pugs: do evil things␤
10:34 masak pugs: 'no output'
10:34 p6eval pugs:  ( no output )
10:54 payload joined #perl6
10:58 carlin http://gist.github.com/229871 # because lolsql just wasn't enough
11:03 masak :)
11:06 jnthn OMGWTFAWESOME!
11:06 jnthn I can haz replaicement for my failshell now!
11:07 IllvilJa joined #perl6
11:10 masak IllvilJa: greetings, malice.
11:13 jnthn .oO( I learn all the best Swedish words )
11:14 masak jnthn: this one is very easy. ill-vilja. ill will.
11:14 jnthn Yeah
11:14 jnthn Clear related root.
11:14 moritz_ carlin: awesome, please blog about it
11:15 masak lunch &
11:15 moritz_ carlin: two minor comments 1) there's a prompt() builtin
11:15 jnthn Almost as if Nordic languages at some point in history had an influence on English. ;-)
11:15 moritz_ carlin: 2) sub translate would benefit from a hash :-)
11:20 pdcawley_ joined #perl6
11:28 envi^home joined #perl6
11:31 eternaleye 3.) Maybe returning $input as the default, so that non-LOL commands can be executed
11:36 SmokeMachine joined #perl6
11:46 moritz_ eternaleye: but... that wouldn't be funny at all :-)
11:47 moritz_ masak: the solution is not to have a bot called 'pugs' :-)
11:49 moritz_ the universally accepted solution is to make all bots reply by cpct (or whatever that thing is called) and not by normal message
11:49 moritz_ but I kinda don't like that
11:51 _eMaX_1 joined #perl6
12:01 xabbu42 joined #perl6
12:02 IllvilJa Hello folks!
12:04 colomon joined #perl6
12:04 moritz_ hello folk!
12:04 moritz_ erm... :-)
12:06 colomon hello!
12:06 phenny colomon: 10:01Z <masak> tell colomon that I think Str.Str returning self is perfectly alright. (1) Liskov doesn't say it needs to be exactly a Str, just at least a Str. (2) derived classes can always override, as usual.
12:07 colomon glad he agrees!  :)
12:07 carlin moritz_: Ohh, I didn't know about prompt(), cool
12:07 carlin and yes, a hash would be better there
12:09 reid05 joined #perl6
12:11 gfx joined #perl6
12:17 masak moritz_: I'm just trying to think ahead, so that we don't accidentally design bots to trigger each other. that's why I liked OUTPUT«»
12:19 moritz_ masak: maybe a compromise would be in order, for example just «…» without the OUTPUT prefix
12:20 masak worksforme.
12:20 moritz_ less visual clutter, but more botinteractionsafety
12:20 masak nod.
12:21 * jnthn starts working on his awesome new IRC bot, "OUTPUT"
12:21 masak *lol*
12:30 KatrinaTheLamia joined #perl6
12:32 frettled joined #perl6
12:46 dalek rakudo: 929998c | (Solomon Foster)++ | src/setting/Str.pm:
12:46 dalek rakudo: Remove cautious comment now that #perl6 has confirmed what I did.
12:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​29998c9c6f2a98b14005005c9a2d1ed99ca8a76
13:06 takadonet joined #perl6
13:06 takadonet morning all
13:06 colomon \o
13:09 colomon Is there a perl 5 equivalent for slurp?
13:10 moritz_ File::Slurp
13:10 colomon danke
13:10 moritz_ or   do { open my $Handle, '<', $filename or die $!; local $/; <$Handle> }
13:10 pmichaud good morning, #perl6
13:11 moritz_ good morning pmichaud
13:11 colomon o/
13:11 masak morning, pmichaud.
13:12 jnthn hi pmichaud
13:16 hugme joined #perl6
13:16 * pmichaud is looking forward to a full day of productive hacking.
13:17 jnthn \o/
13:17 jnthn pmichaud: Will join the ng hacking in ~ 1 hour.
13:17 jnthn pmichaud: Just getting my @other-task for the day out of the way first, then the rest of the day is clear for Rakudo. :-)
13:17 pmichaud it'll probably be close to an hour before I'm fully into it also
13:17 jnthn Ah, good timing.
13:17 pmichaud have to get kids to school and house ready for housekeeping
13:18 moritz_ hugme: twit rakudoperl rakudo committers can now twitter over the rakudoperl account via IRC!
13:18 * hugme hugs moritz_; tweet delivered
13:19 pmichaud can the command be "tweet" instead of "twit"?
13:19 moritz_ sure
13:20 jnthn lol
13:21 hugme joined #perl6
13:21 moritz_ hugme: help
13:21 hugme moritz_: (add $who to $project | list projects | show $project | hug $nickname | twit $twittername $message )
13:21 moritz_ ouch
13:21 fax joined #perl6
13:21 hugme joined #perl6
13:21 moritz_ hugme: help
13:21 hugme moritz_: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message )
13:22 moritz_ better
13:22 masak how does the last command work? what does it do, more exactly?
13:23 moritz_ masak: it relays the message to twitter
13:23 masak yes, but how? to what account?
13:23 moritz_ http://twitter.com/rakudoperl/status/5558208699
13:23 moritz_ with Net::Twitter::Lite, do the account you give as second parameter
13:24 moritz_ currently hugme knows about hugme_test and rakudoper
13:24 moritz_ *rakudoperl
13:24 masak ah. so hugme must know about the account. now I see how it works.
13:24 * jnthn wonders if "twit" is slong in American English too :-)
13:24 jnthn *slang
13:24 pmichaud it is slang, yes
13:24 jnthn :-)
13:24 jnthn In BE too. :-)
13:24 moritz_ masak: just like with the github repos: it needs to learn about them before it can manipulate them
13:25 masak jnthn: that's probably why the verb isn't 'twit', but 'tweet' :)
13:25 masak moritz_: yes, that makes sense.
13:25 jnthn masak: It'd be far funnier if it was twit though. :-)
13:26 pnate joined #perl6
13:37 payload joined #perl6
13:38 masak jnthn: indubitably. :)
13:39 jnthn masak: gah, I had to go look in the dictionary to check that was a real word. :-P
13:41 masak jnthn: "a weak or thin place in yarn caused by uneven spinning" :P
13:42 Thyssen joined #perl6
13:42 payload joined #perl6
13:45 dalek book: bf74ba8 | moritz++ | src/basics.pod:
13:45 dalek book: grammar improvement by snarkyboojum++
13:45 dalek book: review: http://github.com/perl6/book/commit/bf​74ba8ecdc30eb3302cf2c861a5eb59b68bc666
13:45 dalek book: a8c0d89 | masak++ | src/basics.pod:
13:45 dalek book: [basics] minor changes in the first paragraph
13:46 dalek book: review: http://github.com/perl6/book/commit/a8​c0d89563673b82a6bb6a4d6ea582e6c7b872a4
13:46 dalek book: 5c8417a | moritz++ | src/basics.pod:
13:46 dalek book: [basics] hopefully clarify a sentence for snarkyboojum++
13:46 dalek book: review: http://github.com/perl6/book/commit/5c​8417abdfa0dd3835ba0b4595c7b800c4a221cc
13:47 Wolfman2000 *yawn* morning
13:48 takadonet Wolfman2000: morning
13:53 pmurias joined #perl6
13:56 alexba joined #perl6
13:57 masak Wolfman2000: \o
13:57 alexba left #perl6
13:58 jaffa8 joined #perl6
14:01 Wolfman2000 Leaving for college in a few hours...unsure how much I can do today.
14:02 pdcawley_ joined #perl6
14:03 masak there's always things to do!
14:04 Wolfman2000 masak: I mean in terms of how much time I can do stuff.
14:04 Wolfman2000 My main project for now is working on the pastebin
14:04 masak you could triage RT tickets, or write a test, or review someone's module...
14:04 Wolfman2000 However, my classes last until evening tonight.
14:05 Wolfman2000 Hopefully that makes more sense to you
14:05 dalek book: d6be394 | snarkyboojum++ | src/basics.pod:
14:05 dalek book: Minor grammatical changes
14:05 dalek book: review: http://github.com/perl6/book/commit/d6​be394c0b5933322f7f182e0f9340479749e2ce
14:15 pnate joined #perl6
14:15 NorwayGeek joined #perl6
14:25 payload joined #perl6
14:26 NorwayGeek joined #perl6
14:27 pnate2 joined #perl6
14:34 hirschnase joined #perl6
14:52 zaslon joined #perl6
14:52 mdxi joined #perl6
14:53 alester joined #perl6
14:55 zaslon lolcarlinhazblogged! carlin++ 'i maeked u a shell': http://theintersect.org/2009/i-maeked-u-a-shell/
14:58 jnthn ...but I eated it?
14:59 masak :)
14:59 PacoLinux joined #perl6
15:00 moritz_ carlin++ indeed
15:00 pmurias_ joined #perl6
15:02 jnthn pmichaud: huh? <DECL=variable_declarator=variable_declarator>
15:02 jnthn wtf?
15:03 jnthn Why not just <DECL=variable_declarator>
15:03 moritz_ do you use the variable_declarator capture anywhere?
15:04 jnthn method scoped($/) { make $<DECL>.ast;
15:04 masak jnthn: because one wants a variable variable_declarator somewhere?
15:04 jnthn }
15:04 masak wow, the json.org front page truly is pretty. http://www.json.org/
15:04 masak in terms of clarifying the standard, I mean.
15:04 moritz_ jnthn: maybe something accesssess a subcapture of $<scoped>?
15:05 jnthn maybe
15:05 jnthn just looks...odd.
15:05 nihiliad joined #perl6
15:08 pmichaud jnthn: in order to keep the parse tree consistent with what STD.pm produces, I want to capture to $<variable_declarator>
15:08 jnthn pmichaud: Hmm...ok.
15:08 jnthn We diverged from STD by adding the <DECL=...> but anyways...
15:09 jnthn Guess it doesn't matter so much.
15:09 pmichaud well, the alternative is something like
15:09 jnthn Just looks kinda ugly repeating it, that's all.
15:09 pmichaud <variable_declarator> { $<DECL> := $<variable_declarator> }
15:09 pmichaud which is effectively the same thing
15:09 jnthn I look at it and think "plz say there's a cleaner way"
15:09 pmichaud not yet there isn't
15:10 jnthn OK. The repetition just looks like a wart in a sea of beauty. :-)
15:10 [particle] do warts float?
15:10 pmichaud well, if you'd prefer that we do the many checks inside the method for now, we can do that
15:10 pugs_svn r29029 | pmurias++ | [mildew-js] grep,map,:(int,int) variants for -,+,<,==
15:10 pmichaud I figured that just processing $<DECL> was easier
15:10 jnthn pmichaud: No, I'm not that bothered, and I agree with making the action method more concise.
15:10 pugs_svn r29030 | pmurias++ | [re-mildew] remove leftover code
15:10 pugs_svn r29031 | pmurias++ | [mildew-js] fix typos in TESTS-js, attributes in knowhows
15:10 pugs_svn r29032 | pmurias++ | [mildew-js] add passing tests to TESTS-js
15:10 pmurias @seen ruoso
15:10 lambdabot Unknown command, try @list
15:10 pmurias @list
15:10 lambdabot http://code.haskell.org/lambdabot/COMMANDS
15:10 masak [particle]: depends how bit they are. :)
15:10 masak s/bit/big/
15:10 pmurias seen ruso
15:11 pmurias seen ruoso
15:11 pmichaud maybe S05 will come up with a cleaner syntax
15:11 jnthn pmichaud: It just feels like we're missing a way of saying "alias the thing as this" without repeating the original name again.
15:11 masak lambdabot: somehow, you grow less useful every day.
15:11 jnthn Yeah.
15:11 masak lambdabot: it's as if you _want_ us to reinvent you in Perl 6.
15:11 jnthn I'm hacking on augment at the moment.
15:11 pmichaud okay, excellent.  I'm working on getting 'use' semantics correct.
15:12 jnthn You breaking it up into the...whatever the bits are called these days? :-)
15:12 pmichaud partially that, but also just getting the load semantics correct
15:12 jnthn *nod*
15:12 jnthn Lexical importation?
15:12 pmichaud since we have to deal with   run from interpreter / run from command line / accessed via load_bytecode
15:12 masak jnthn: let me see if I get this straight. you say <a> and you get $<a>. you say <b=a> and you get $<b>, but not $<a>. so you have to say <b=a=a> to get both $<a> and $<b>. correct?
15:12 jnthn Yeah, that's a bit of "fun".
15:13 jnthn masak: Right.
15:13 masak jnthn: I'm not sure I'm so bothered by that.
15:13 masak jnthn: it's very explicit.
15:13 moritz_ if the name is just a, it doesn't bother me :-)
15:13 pmichaud masak: it just looks ugly when a is "variable_declarator"
15:13 jnthn moritz_: Yeah, I was thinking that. :-)
15:13 masak pmichaud: I guess. :)
15:13 pmurias @girl19
15:13 lambdabot I'm in Moscow, Russia
15:13 pmichaud <DECL=variable_declarator=variable_declarator>
15:14 masak pmurias: :)
15:14 jnthn @girl42
15:14 lambdabot I have been into not actually hacking, but social engineering
15:14 moritz_ @girl23
15:14 lambdabot I've always found myself unequal to the intellectual pressure of programming
15:14 jnthn @girl69
15:14 lambdabot am I supposed to be frantic with terror and anxiety?
15:14 jnthn YES.
15:14 jnthn ...these are creepy.
15:14 jnthn @girl100
15:14 lambdabot I have stolen about 50 msn and yahoo accounts
15:15 jnthn ...ok, she's cute.
15:15 masak lambdabot: I'm not sure if you funny or just politically incorrect.
15:15 xinming_ joined #perl6
15:15 jnthn lambdabot: srsly, what? :-)
15:15 masak s/you/you're/
15:15 moritz_ @boy50
15:15 lambdabot Unknown command, try @list
15:15 * masak goes to read source
15:16 KyleHa joined #perl6
15:19 masak far as I can tell, those quotes are from an actual "Girl 19, Apr 11, 2006". that actually makes it funny again. :)
15:19 jnthn :-)
15:20 masak @protontorpedo
15:20 lambdabot is haskella lisp?
15:20 masak (another IRC user apparently full of quotes)
15:20 moritz_ @haskella
15:20 lambdabot Unknown command, try @list
15:20 jnthn @protontorpedo
15:20 lambdabot why haskell over say clsip or smalltalk?
15:21 jnthn Because it's harder for people to understand your code, so there's less change of it being illegally appropriated.
15:21 jnthn Wow, you could have a quiz with this thing. :-)
15:21 masak "Haskell is easy. I've learned it several times!"
15:21 masak -- @TimToady
15:22 masak jnthn: imagine a channel full of protontorpedoes. that's what yesterday on #perl on magnet felt like. :)
15:23 jnthn masak: Well, it just so happens that we've a bot that can recreate it here, if you'd like... ;-)
15:23 masak they are wonderful people, but they can't think straight, or argue fairly.
15:23 masak jnthn: that'd be... cathartic.
15:24 Psyche^ joined #perl6
15:24 masak it could say things like "*yawn* wake me up when you release a production-ready Perl 6 1.0"
15:24 masak or "Perl 6 is dead!"
15:24 masak or "Do you have DBI?"
15:25 IllvilJa Just for kicks, I checked if the gentoo distribution did have 'parrot' available and yes it did.
15:25 masak \o/
15:25 masak baby steps.
15:26 IllvilJa Unfortunately, neither rakudo, perl6 or pugs seemed to show up when doing a 'emerge --search'...
15:26 Wolfman2000 @list
15:26 lambdabot http://code.haskell.org/lambdabot/COMMANDS
15:26 Wolfman2000 @help
15:26 lambdabot help <command>. Ask for help for <command>. Try 'list' for all commands
15:26 IllvilJa So I'm patiently awaiting when rakudo reaches a stage when gentoo maintainers start to create packages for it...
15:26 moritz_ http://packages.debian.org/experimental/rakudo
15:27 Wolfman2000 Perhaps the help stuff should be /noticed to us?
15:27 IllvilJa moritz_: thanks
15:27 Wolfman2000 @help more
15:27 lambdabot @more. Return more output from the bot buffer.
15:27 Wolfman2000 I'll mess with it later. I need to get ready to head out to college.
15:27 moritz_ note the platforms it compiles on. Whoa.
15:28 Juerd Warning: This package is from the experimental distribution. That means it is likely unstable or buggy, and it may even cause data loss.
15:28 Juerd Yay!
15:28 * Juerd deletes all feather backups and removes the cronjob
15:28 IllvilJa Hm... s390, isn't that some IBM mainframe OS?  Cool to have Rakudo on that :-).
15:38 jnthn http://gist.github.com/230037 # yay, we can haz augment!
15:38 pnate2 joined #perl6
15:39 masak jnthn++
15:39 KyleHa rakudo: sub 0 { say 'zero' }; 0();
15:39 p6eval rakudo 929998: Malformed routine definition at line 2, near "0 { say 'z"␤in Main (file <unknown>, line <unknown>)␤
15:39 jnthn pmichaud: augment pushed.
15:39 pmichaud jnthn++  thanks, that'll be a big help for us in ng
15:40 pmichaud oh, and in fixing the 'use' semantics, I think I'm also going to get a working REPL   :)
15:40 jnthn \o/
15:40 jnthn Great work!
15:40 masak I meant to write '\o/', but I find that too week for the occasion.
15:40 jnthn OK, now I need to take on lexical multis I guess.
15:40 masak \O/
15:40 pmichaud might take a day or two for all the pieces to land, but it'll be another critical task off our list
15:41 jnthn For use, or for the repl?
15:41 pmichaud the repl
15:41 pmichaud use I'm hoping to do today -- needed for spectests
15:41 jnthn Yes, thus why I was asking. :-)
15:41 pmichaud s/hoping/expecting
15:41 pmichaud I think the only big pieces left are 'use' and 'try'
15:41 pmichaud and 'try' isn't all that big
15:42 jnthn OK
15:42 moritz_ jnthn++
15:42 jnthn I'm going to take on package scoped subs and multis now.
15:43 jnthn And probably try and do multi-methods into it all.
15:43 jnthn After that, is export should get trivial.
15:45 pmichaud that will help a bunch also
15:45 * moritz_ wonders if for-loops will run, now that lists are lazy...
15:45 pmichaud we haven't implemented for yet
15:46 pmichaud but really I just expect 'for' to call 'map'
15:46 moritz_ currently map is implemented in terms of for :-)
15:46 pmichaud we will probably have to switch that, then :)
15:48 moritz_ well, one of them will have to use the iterator API under the hood
15:48 pmichaud sure, no problem
15:48 pmichaud it can easily go either way for now
15:49 pmichaud PCT's 'for' construct is always eager at the moment
15:49 payload joined #perl6
15:49 pmichaud so even if the list is lazy, the for loop will run to exhaustion (or until 'last')
15:49 moritz_ the question is: if you do   'for $variable { ... }', and $variable overrides the .map method, does that change the semantics of the 'for' loop?
15:49 pmichaud no
15:49 pmichaud because the translation is
15:50 pmichaud list($variable).map( { ... } )
15:50 pmichaud $variable's .map method (if any) doesn't enter the picture at all
15:50 moritz_ ok
15:50 moritz_ good to know
15:50 pnate joined #perl6
15:51 KyleHa rakudo: class M { multi d( Any $x ) { say 'any' }; }; M.new.d(1.2);
15:51 p6eval rakudo 929998:  ( no output )
15:52 KyleHa rakudo: class M { multi d( Any $x ) { say 'any' }; }; M.new.d(1.2); say 'done';
15:52 p6eval rakudo 929998:  ( no output )
15:52 moritz_ who removed the TIME_OUT output?
15:52 moritz_ that was useful.
15:52 moritz_ rakudo: sleep 20;
15:52 p6eval rakudo 929998:  ( no output )
15:52 moritz_ rakudo: sleep 20; say 3
15:53 p6eval rakudo 929998:  ( no output )
15:53 KyleHa Method 'd' not found for invocant of class 'M'.  What am I doing wrong?
15:53 moritz_ KyleHa: 'multi' is a sub, not a method
15:54 KyleHa Oh.  I have to say 'multi method' ?
15:54 moritz_ yes
15:54 KyleHa I am thus enlightened.  Thank you!
15:54 * moritz_ wonders if a 'multi' without a 'method' or 'sub' after it should be a warning inside a class :-)
15:56 Wolfman2000 moritz_: make it so
15:57 Wolfman2000 jnthn++: Can't say I'm familiar with augments, but nice going.
15:57 * moritz_ waits for a comment from TimToady
15:57 moritz_ I just remember that s1n was confused about that a while back
15:57 moritz_ (iirc, maybe it was somebody else, not quite sure...)
15:59 jnthn pmichaud: ping
15:59 Wolfman2000 Off to college now. Slight chance I can come back on in between classes, but...no guarantees. If I'm lucky, I'll be done with everything by 8 PM EST
15:59 pmichaud jnthn: pong
16:00 jnthn pmichaud: Is there a compile-time place to store "our" scoped things?
16:00 jnthn That is, info about them.
16:00 pmichaud I've been thinking there should be
16:00 jnthn I'm just looking at the our thing and thinking "hmm"
16:01 pmichaud and you definitely mean 'our' scoped and not unit scoped, yes?
16:01 jnthn Good question.
16:01 pmichaud I mean, an 'our' scoped thingy would seem to go in  @PACKAGES[0]
16:01 jnthn I'm meaning things that belong in packages.
16:01 jnthn Yeah, good point.
16:01 pmichaud ...except that @PACKAGES are no longer PAST::Block.
16:01 jnthn :-)
16:02 jnthn They could still be made easy enough to support .symbol
16:02 pmichaud I'd say either make P:C:Package a subclass of PAST::Block
16:02 jnthn Yeah - that could work out quite nicely.
16:02 pmichaud or switch @PACKAGES to hold Blocks and have a reference to the package object
16:03 pmichaud anyway, you catch the idea :)
16:03 jnthn I think I prefer the inheritance option.
16:03 jnthn OK, that gives me a neat solution.
16:03 pmichaud or make sure that P:C:Package has a reference to its corresponding PAST::Block
16:03 pmichaud I see lots of possibilities, so whichever feels rightish to you is fine
16:03 jnthn Well, we create it before we have a PAST::Block made.
16:04 pmichaud hmmmm
16:04 pmichaud good point
16:04 pmichaud thinking
16:04 jnthn Anyway, if it isa PAST::Block we've no problem I guess.
16:04 pmichaud reviewing STD.pm
16:04 pmichaud actually, you do have a problem
16:04 pmichaud because the <.newpad> will come along and create another
16:04 jnthn Is that a problem if we're only doing the inheritance to make use of .symbol?
16:05 pmichaud I'd prefer to keep the blocks properly nested
16:05 jnthn Perl6::Compiler::Package disappears in the final PAST tree.
16:05 pmichaud essentially the package ends up interposing an extra block
16:05 jnthn It's .finish method hands back the $<block>, with various bits done to its loadinit as appropraite.
16:05 pmichaud it still feels wrongish to me
16:05 jnthn So the Perl6::Compiler::Package does actually appear in the final tree.
16:06 pmichaud we shouldn't end up with nested blocks that way
16:06 jnthn erm
16:06 jnthn *doesn't*
16:06 jnthn Right.
16:06 jnthn We won't. :-)
16:06 lisppaste3 KyleHa pasted "is this tested somewhere?" at http://paste.lisp.org/display/90040
16:06 pmichaud I'm not sure we should have them even in the intermediate processing (more)
16:06 KyleHa moritz_: That one's for you.
16:07 pmichaud it feels like the way we were having <signature> create blocks that would then be sometimes thrown away
16:07 jnthn Well, that argues for Perl6::Compiler::Package to not be a block.
16:07 japhb I find myself needing globals in Plumage, now that I'm working on breaking a lot of code out into classes and modules -- but still want access to the VM, the user's CONF, etc.  What are my options for doing that in nqp-rx?
16:08 pmichaud japhb: I'm not entirely certain how I want to do those yet
16:08 pmichaud I'd like NQP to be able to provide $*ARGS and $*VM contextuals.... just figuring out how to do it
16:08 pmichaud also can't decide if those should be native to NQP or if they should come from loading an external library
16:09 japhb Is the problem that nqp-rx doesn't support contextuals yet, or that you don't know how you want to go about initializing them?
16:09 pmichaud nqp supports contextuals.
16:09 pmichaud I don't know how I want to initialize them.
16:09 pmichaud or what should be doing the initialization
16:09 japhb Because I'm happy to do the initializing work ... remember, I've got this big mash of PIR code called Glue.pir.  ;-)
16:10 japhb How do I instantiate one from PIR?
16:10 payload1 joined #perl6
16:10 pmichaud my @*ARGS := ...code to get args...
16:10 pmichaud my %*VM;  %*VM<config> := ...code to get config...
16:11 japhb contextuals are my, not our?  Hmmm, I'm out of touch, I guess.
16:11 pmichaud generally "my", yes.
16:12 japhb I was hoping to just create them all directly in Glue.pir's :init, so that the calling code just had the variables *there*, and didn't have to write both NQP-side and PIR-side code to accomplish that.
16:13 pmichaud well, doing contextuals in Glue.pir isn't likely to work out
16:13 pmichaud oh, I take that back
16:13 pmichaud one could do
16:13 pmichaud my @*ARGS;  my %*VM;
16:13 pmichaud and then Glue.pir can fill those in
16:13 frettled pointme: mubot
16:13 pointme carlins's mubot is at http://github.com/carlins/mubot/
16:13 diakopter moritz_: sorry; I removed it (TIMEOUT) but neglected to put it back.. I can if you like
16:14 pmichaud something has to create the @*ARGS and %*VM variables, though.
16:14 japhb pmichaud, that's essentially what I'm doing now, with the old code carried over from NQP.  'our %VM;', and then Glue.pir does the rest.
16:14 pmichaud japhb: sure, but "our" is a package scoped variable
16:14 pmichaud the advantage of a contextual is that it only has to be declared once on the outside
16:15 pmichaud while "our" requires declaration in every module that uses it
16:15 japhb pmichaud, I'd like to click on that.  What exactly do you mean by 'create ... the variables'?  Am I, as with old NQP, essentially telling the compiler how to find the variable that I created in PIR space?
16:15 japhb pmichaud, 'on the outside'?
16:16 pmichaud in nqp, contextuals are just dynamically-scoped lexicals
16:16 PerlJam japhb: in the outter most scope in which you need to use it
16:16 pmichaud so something has to declare a lexical that allows the called functions to see it
16:16 japhb PerlJam, OK ... so I don't need to create a 'setting' and arrange to run it, I can just declare them in my main program, and then all modules called by the main program will be able to see them?
16:17 pmichaud you can declare them in your main program, and then one of your called functions can take care of initializing them
16:17 pmichaud (because a called function can see them)
16:17 japhb pmichaud, right, perfect.
16:18 diakopter moritz_: b/c sometimes things were timing out on p6eval that don't from a shell, so I was starting to diagnose
16:18 japhb In PIR, how do I refer to (get and set) a contextual?
16:18 pmichaud $P0 = find_dynamic_lex '@*ARGS'
16:18 pmichaud set_dynamic_lex '@*ARGS', $P1
16:18 pmichaud oops
16:18 pmichaud store, not set
16:18 pmichaud store_dynamic_lex '@*ARGS', $P1
16:18 japhb pmichaud, OK, excellent, thank you!
16:18 japhb pmichaud++ PerlJam++
16:19 japhb pmichaud, and thank you for adding closure interpolation, too.
16:20 pmichaud jnthn: I don't have a clear answer for the package stuff yet
16:20 pmichaud inheriting from PAST::Block just to get the .symbol method seems wrong
16:20 japhb I think I also saw that pointy blocks went in.  So if I write a 'module Hash { method kv () {...} }', I can haz 'for %blah.kv -> $k, $v { ... }' now?
16:21 pmichaud japhb: I _think_ so... I'm not sure that I finished pointy blocks.  If I updated the wiki to say they're done then I'm done with them for now.
16:21 [particle]1 joined #perl6
16:21 pmichaud (and yes, what you wrote should then work)
16:22 jnthn pmichaud: Yeah. I odn't have a better answer for now (other that implementing .symbol in package)
16:22 jnthn If only there was a mechanism whereby you could share functionality between classes.
16:22 pmichaud jnthn: what do you need to store in the package?
16:22 jnthn Oh, wait... :-)
16:22 japhb pmichaud, OK, I'll give them a try in a bit.
16:22 jnthn pmichaud: The main utility is being able to make multi stuff a bit easier to handle, e.g. if we have a sequence of them, or if we have a proto.
16:23 jnthn pmichaud: If we have .sybmol on the package too, then it's trivial to make this all just fall out neatly.
16:23 jnthn (I've just written most of what I think will work.)
16:23 jnthn (And it was hardly any additions at all.)
16:23 pmichaud For a variety of reasons, I'd really like to find a way for us to tie the PAST::Block for the package to it's P::C::Package object.
16:23 pmichaud either by merging them together somehow, or otherwise establishing a reference between the two.
16:24 pmichaud if that gets done, then it's pretty easy to use the .symbol of the PAST::Block
16:24 jnthn The easy way is for .newpad to check if @PACKAGE[0] doesn't have a block set.
16:25 jnthn And if so, just associate the one it creates with that.
16:25 pmichaud that would work well for me.
16:25 jnthn Would that work?
16:25 jnthn OK.
16:25 pmichaud I think I'd like that a lot.
16:25 jnthn As an attribute with accessor, I guess, rather than a $node<block> :-)
16:25 pmichaud ultimately, though....
16:25 TimToady masak: you misspelled "bloodbath" as "bloodbatch"
16:25 pmichaud we really probably want to get rid of @BLOCK altogether anyway, and create a chain
16:26 pmichaud same with @PACKAGES
16:26 pmichaud ...masakpost?
16:27 TimToady http://use.perl.org/~masak/journal/39864?from=rss
16:27 jnthn pmichaud: Perhaps, yeah.
16:27 masak TimToady: thanks. fixing.
16:27 pmichaud jnthn: anyway, go with the <.newpad> fix for now
16:27 pmichaud the rest is easy to fix
16:27 pmichaud (if we decide to change)
16:28 masak fixed. TimToady++
16:28 jnthn pmichaud: OK, going for it. :-)
16:28 masak I was dead tired yesterday, after playing with sleep a bit.
16:28 fax me too -_-
16:33 KyleHa I thought "bloodbatch" was some kind of medical supplies event I hadn't heard of.
16:34 TimToady masak: and on the positive side, thanks for the P6INP meme blog...  "Cheezburgrz 4 teh kittehs dat sez shhhhh!, Ceiling Cat is liek "u mai kittehs."
16:34 Wolfman2000 joined #perl6
16:34 masak TimToady: :)
16:34 Wolfman2000 ...huh. Guess the @ was temporary. That's fine.
16:39 masak TimToady: aye. peacemakers. I believe that's the way too.
16:39 hudnix joined #perl6
16:39 masak frankly, I wasn't entirely prepared for the general lack of friendliness on the part of #perl. it's like we slighted them in some way.
16:40 pmichaud tbh, I find the python community more accepting than #perl  :-)
16:40 pmurias masak: #perl on irc.perl.org?
16:40 masak on the bright side, I think a bunch will come around come April.
16:40 TimToady they're hard on the noobs too
16:41 PerlJam #perl has almost never been a friendly place.
16:41 masak pmurias: well, here's the funny thing: that's where emma asked her question, but the heated discussions yesterday took place on freenode.
16:41 KyleHa If $x ~~ Array, then $x[0] is the first element of it, right?  I'm surprised that 'say $x[0].WHAT' says nothing.
16:41 Wolfman2000 PerlJam: Which #perl room?
16:41 masak pmurias: oh, sorry. the other way around.
16:42 PerlJam Wolfman2000: *all* of them.  freenode #perl is as close as any have come to being friendly.
16:42 Wolfman2000 ...hard for me to argue that one.
16:42 japhb nqp: class Foo { method say_foo () { say($*FOO); } }; class Bar { my $*FOO := "foo"; method do_it () { my $foo := Foo.new; $foo.say_foo; } }; my $bar := Bar.new; $bar.do_it;
16:42 p6eval nqp: Contextual $*FOO not found␤current instr.: 'parrot;Foo;say_foo' pc 119 (EVAL_1:47)␤
16:43 japhb pmichaud, what is wrong with that?
16:43 pmichaud there's no $*FOO in context when you call do_it
16:43 pmichaud note that contextuals only search the caller chain
16:43 pmichaud class Bar { ... }  is not a caller of method do_it
16:44 japhb So they don't do a full lexical search from each caller, just check *directly* in the caller's lexical pad at each caller?
16:44 pmichaud correct
16:44 pdcawley_ joined #perl6
16:44 japhb pmichaud, OK, thank you.
16:46 TimToady one can't always be a peacemaker, alas, when you run into an entrenched priesthood
16:46 pmurias_ joined #perl6
16:46 TimToady "woe 2 u, teachers ov teh law an fariseez, u hypocritez!  U shut teh door ov teh kingdom ov heaven in peeps facez. U yourselvez do not entr, nor will u let dose entr hoo r tryin 2.
16:47 PerlJam especially when the priests carry swords and rapiers and other such implements
16:47 TimToady ...u blind guidez! U strain out gnat but swallow camel.   :)
16:47 arnsholt PerlJam: "Noone likes armed missionaries." - Robespierre =)
16:48 yahooooo joined #perl6
16:48 frettled camel?
16:48 Patterner "that's why it is important to shoot missionaries on sight" - Pratchett
16:48 pmichaud I'm disappearing for a bit to focus on 'use'... bbl
16:48 PerlJam arnsholt: yeah, except it's kind of backwards.  There are no armed perl missionaries. But when you go to their temple, watch out how you pray!
16:58 justatheory joined #perl6
17:01 KyleHa Or perhaps, when you go to their temple, say your prayers.
17:03 TopoMorto joined #perl6
17:04 pmurias perl6: say (say 3).perl
17:04 p6eval pugs, rakudo 929998: 3␤Bool::True␤
17:04 p6eval ..elf 29032: 3␤1␤
17:05 TopoMorto joined #perl6
17:05 pmurias rakudo: say (say 3)
17:05 p6eval rakudo 929998: 3␤1␤
17:05 pmurias rakudo,pugs: say (say 3)
17:05 Wolfman2000 pmurias: don't think you can select two at once like that
17:06 pugs_svn r29033 | pmurias++ | [mildew-js] say returns True
17:07 pmurias Wolfman2000: wasn't expecting it to work but it would be nice if it did
17:09 Wolfman2000 Hmm...slightly off topic, but anyone know of a good online obfuscator for Perl? I think I have found a good use for one.
17:10 cdarroch joined #perl6
17:11 KyleHa An automated obfuscator?  No.  For a one off snippet here or there, I might ask perlmonks.org to obfuscate it.  Or just ask, "how can I make this shorter?"
17:11 Wolfman2000 KyleHa: Don't necessarily need it to be shorter.
17:11 Wolfman2000 But...I guess I can use an offline one, provided I can find one that doesn't just print \x4b all the time.
17:13 KyleHa What's your real goal?  Why obfuscate?
17:14 Wolfman2000 KyleHa: I want to have an error message page...with one of the messages being something written in obfuscated perl.
17:16 KyleHa If it were me, I'd study the encoding in this node and use it:  http://perlmonks.org/?node_id=683469
17:16 zaslon lolmasakhazblogged! masak++ 'November 9 2009 -- stuff comes tumbling down, yay!': http://use.perl.org/~masak/journal/39866?from=rss
17:18 KyleHa Or maybe this is closer to what you want:  http://search.cpan.org/~asavige/Acme​-EyeDrops-1.55/lib/Acme/EyeDrops.pm
17:18 xabbu42 joined #perl6
17:19 Wolfman2000 KyleHa: I don't need...that much.
17:19 Wolfman2000 This is meant to go on a web page. I can't have that much room for art.
17:23 japhb pmichaud, I think I've tripped over a gotcha with the contextuals ... As far as I can figure it, load_bytecode does qualify as a call, so :init subs within the bytecode being loaded cannot see the contextuals defined in the code doing the loading.
17:23 japhb er, does *not*
17:23 masak swimming &
17:23 eiro pointme, mubot
17:23 eiro hello all :)
17:24 eiro pointme: mubot
17:24 pointme carlins's mubot is at http://github.com/carlins/mubot/
17:27 jnthn Arrgh!!
17:27 pmurias which bot can handle seen?
17:27 * jnthn sighs a Parrot
17:27 moritz_ lambdabot used to
17:27 jnthn *at
17:28 Thyssen joined #perl6
17:29 moritz_ pmurias: http://irclog.perlgeek.de/search.pl?​channel=perl6&amp;nick=ruoso&amp;q=
17:30 pugs_svn r29034 | kyle++ | [t/spec] Some testing based on r27045
17:36 pugs_svn r29035 | lwall++ | [STD] make module A {} disable module B; for pmichaud++
17:37 japhb Do proper Perl 6 contextuals work analogously to the way pmichaud described them working in NQP-rx above?
17:37 japhb i.e., they must be declared as lexicals in the outermost dynamic scope?
17:38 japhb IIUC, this means that modules can't declare new contextuals.  They can *initialize* them, but not *declare* them.
17:38 moritz_ I think any outer dynamic scope is fine
17:38 TimToady if $*foo is not defined somewhere in an outer dynamic scope, it's undefined as an rvalue
17:39 TimToady but yes, any scope as outermost is fine
17:39 TimToady note that a module can export to a lexical scope too
17:39 jnthn japhb: I guess a module wanting to declare a contextual may be able to export it.
17:39 japhb And they can't even initialize them without an explicit init() call, since the act of loading another module does not "call" it, at least in NQP ... I dunno about Perl 6.
17:39 japhb TimToady, ah!  That's the bit I'm missing
17:40 jaffa8 joined #perl6
17:45 japhb OK, so hmm, how would this work ...?  I guess a module wanting to make new contextuals available in the code that loaded it *without* forcing the loader to do any extra boilerpolate would have to 1) declare the contextuals as lexicals at the module's outermost scope.  2) either initialize them in the outermost scope, or call an initialization routine from the module's mainline code, 3) export the contextuals into the loader's lexical pad.
17:45 japhb Am I more or less on trac here?
17:45 japhb er track
17:47 KyleHa My eyes glaze over trying to understand multiple dispatch.
17:48 moritz_ KyleHa: have you read the multi dispatch chapter in the new book?
17:48 KyleHa No, but that's not a bad idea.
17:49 moritz_ http://github.com/perl6/book/blo​b/master/src/multi-dispatch.pod
17:49 KyleHa I'm looking at r27045 and the paragraph in S12 that says "multi-method tiebreaking only happens within a given class" and wondering how to test that.
17:49 moritz_ through inheritance
17:50 moritz_ or multiple inheritance
17:50 KyleHa Ah.  I thought it was talking about multi methods vs. multi subs.
17:50 KyleHa Inherited methods is another ball of goo.
17:51 japhb OK, *assuming* I'm on track about the contextuals, how do I actually go about exporting the contextuals? (Answers in all(< perl6 nqp-rx pir >) much appreciated -- I'll end up at various times doing it in all three.  :-)
17:51 moritz_ class A { method a(Int $x) { 'A' } }; class B { method a(Int $x) { 'B' } }; class C is A is B { }; C.new.a(3) # boom!
17:52 SmokeMachine joined #perl6
17:53 KyleHa That calls the 'A' method.
17:53 moritz_ why?
17:53 KyleHa Don't know.  8-)
17:54 * moritz_ doesn't see why it should
17:54 moritz_ rakudo: class A { method a(Int $x) { 'A' } }; class B { method a(Int $x) { 'B' } }; class C is A is B { }; say C.new.a(3) # boom!
17:54 moritz_ uhm, defining new classes will surely lead to a timeout again
17:54 p6eval rakudo 929998:  ( no output )
17:55 meppl joined #perl6
17:55 KyleHa That's what I'd expect in Perl 5, sorta.  'A' is before 'B' in the list of parents.
17:55 KyleHa And indeed, if I swap 'em, it calls 'B'.
17:55 moritz_ which contradicts what you cited earlier, "multi-method tiebreaking only happens within a given class"
17:56 stephenlb joined #perl6
17:56 KyleHa I'm not sure it does.
17:56 KyleHa A::a and B::a are tied, but they're in separate classes.
17:56 KyleHa If tiebreaking only happens within a given class, they never have to be compared.
17:56 pnate joined #perl6
17:57 pmichaud http://gist.github.com/230137   # yay, we can haz CHECK, INIT, END
17:57 moritz_ KyleHa: another idea on testing...
17:57 jnthn KyleHa: A::a and B::a can never be tied in a method dispatch.
17:58 moritz_ class X { }; class Y is X { };
17:58 KyleHa jnthn: That sounds close to what I meant.
17:58 moritz_ class A { method thing(Y) { } }; class B is A { method thing(X) { } }; B.new.thing(Y.new)
17:59 moritz_ if I understand multi method dispatch correctly, that should be a tie
17:59 moritz_ right?
17:59 jnthn Wrong
17:59 KyleHa I think they're only tied if A is a role.
17:59 jnthn We consider the set of multis by inheritance level.
17:59 moritz_ so the invocant is kinda special?
17:59 jnthn If we find soemthing matching in a subclass, we never get to looking at the parent class.
17:59 jnthn No
18:00 jnthn The fact that you do a method dispatch is special.
18:00 jnthn Note that $x.foo and foo($x) are different.
18:00 pmichaud (well, the invocant is a little special, in that  we have   thing(A,Y)   and thing(B,X) above
18:01 jnthn Well, yes. :-)
18:01 pmichaud (that's not what avoids the tie in this instance, but the two methods do differ on the type of the invocant)
18:01 jnthn Yes, that's correct.
18:01 moritz_ ok, back to the multi intheritance example above
18:02 moritz_ would that be a tie if A and B were roles, and composed into C?
18:02 moritz_ instead of inheritance
18:02 jnthn Basically the algo is like for @mro -> $class { my @found = $class.find_multis_that_match; next unless @found; }
18:02 jnthn well, and then a call on the end of that loop, sorry
18:02 jnthn moritz_: Yes.
18:02 jnthn Because methods in a role that gets composed are defined as being "as if they were written in the class itself" or something along those lines.
18:03 jnthn The composition of roles is totally flattening.
18:03 jnthn The dispatcher doesn't go looking in the method tables of the roles.
18:03 KyleHa class T { multi m($x) { 1 }; multi m($y) { 2 }; }; T.new.m(); # tied methods explode here, right?
18:03 pugs_svn r29036 | lwall++ | [src/perl6/Makefile] invoke perl from path instead of relying on gimme5's #!, eternaleye++
18:03 jnthn But rather, the compositon inserts the methods from the role into the method table of the class.
18:03 jnthn KyleHa: Correct.
18:04 jnthn pmichaud: Good news. our routines and multi routines work. And now as a result inheritance also works again. :-)
18:04 payload joined #perl6
18:04 pmichaud jnthn: awesome
18:04 KyleHa class P { multi m($x) { 1 }; }; class T is P { multi m($y) { 2 }; }; T.new.m();   # P::m is never considered here, correct?
18:05 pmichaud KyleHa: I assume you mean "multi method"
18:05 jnthn pmichaud++ # call to fire_phasers
18:05 KyleHa pmichaud: Yes, thanks.
18:05 pmichaud if yes, then yes, P::m gets considered (and rejected)
18:05 jnthn KyleHa: oh yeah, I didn't notice that in your example above...kinda assumed it.
18:05 jnthn KyleHa: But yes, what pm says
18:05 pmichaud because there are no targets in T that match   .m()
18:06 jnthn KyleHa: That dispatch fails because you didn't do T.new.m(42) or so
18:06 jnthn KyleHa: If you did *that* then P::m would never be considered.
18:06 KyleHa Oh, OK.  Yes, my example is sloppy.
18:06 pmichaud if you had done  T.new.m(42..... what jnthn++ said.
18:06 jnthn Because T::m matches.
18:06 jnthn :-)
18:07 icwiener joined #perl6
18:07 jnthn .oO( there's a joke about not considering Pm somewhere in here ;-) )
18:07 pmichaud P's multimethods get considered only if all of T's multimethods fail
18:07 KyleHa jnthn++, pmichaud++  # answering the question I meant to ask as well as the one I did.
18:07 jnthn pmichaud: OK, I guess next I should do sub trait stuff.
18:07 pmichaud jnthn: that would be awesome, yes.
18:07 pmichaud I'm about to do   need + use
18:07 jnthn pmichaud: Excellent.
18:07 pmichaud and probably important
18:07 japhb pmichaud, before you disappear ...
18:08 pmichaud er, import
18:08 KyleHa I think I'm a little more enlightened now.  Hopefully what I've learned will be retained while I nom.
18:08 japhb ... got a second to help me understand exporting contextuals?
18:08 pmichaud ...exporting?
18:08 KyleHa s/KyleHa/consumer/
18:10 japhb pmichaud, supposedly I won't have to declare 'my %*VM;' in my mainline if I load a module that exports %*VM to my lexpad.  correct?
18:10 pmichaud japhb: no.  It's not possible to dynamically modify lexpad entries
18:10 pmichaud if your mainline is going to have a %*VM contextual, it has to declare it.
18:10 japhb OK, now I'm confused.  What were TimToady and jnthn talking about then?
18:11 moritz_ can't it be exported at compile time?
18:11 pmichaud I don't know, I was afc at the time
18:11 jnthn pmichaud: You can export symbols at compile time.
18:11 pmichaud jnthn: in NQP?
18:11 jnthn pmichaud: In Perl 6. :-)
18:11 pmichaud sure, I know it can be done in perl 6.  japhb is using NQP.
18:12 japhb OK, so this is one of those places where NQP can't replicate Perl 6, got it.
18:12 pmichaud (can't replicate Perl 6 *yet*)
18:12 elmex joined #perl6
18:12 jnthn pmichaud: OK, I wasn't sure quite what the plans were on that.
18:12 japhb pmichaud, I wanted to know how in all(< perl6 nqp pir >), so it's valuable to know both.
18:12 pmichaud yes, when NQP get a 'use' statement, there is some small chance that it will be able to grab lexicals from modules.
18:12 pmichaud the problem is that a 'use' statement in NQP can't always know that the module it's grabbing is available at the time.
18:13 pmichaud (which is why NQP doesn't have 'use' yet)
18:13 pmichaud the best NQP can do at the moment is pir::load_bytecode, and I guarantee we're not able to deduce the lexical imports at compile time from that yet.
18:13 colomon joined #perl6
18:14 pmichaud the other difference is that Perl 6 contextuals default to looking in GLOBAL and PROCESS, while NQP contextuals don't do that
18:14 pmichaud (because doing so requires a runtime library, or generating a lot of code around each contextual use)
18:15 xp_prg joined #perl6
18:19 japhb bak, sorry
18:20 japhb pmichaud, OK, so in the NQP/PIR world, the current answer is 'declare them in the loading code, load_bytecode the module that will initialize them, then call an init function in that module so that the proper dynamic/lexical scoping will be set up so the module can do the initialization'.  Yes?
18:20 pmichaud yes, that's the best we can do as of today
18:21 pmichaud I expect we'll do better in the future, but don't know exactly when
18:21 japhb OK, fair enough.  Progress is better than frustration.  :-/
18:21 pmichaud I might go ahead and switch contextuals to look in the global namespace, though.
18:21 pmichaud (in addition to the caller stack)
18:22 pmichaud that feels rightish
18:22 pmichaud then your loading code could just stick things into the global namespace and it would work.
18:22 pmichaud and no declarations are needed.
18:22 japhb 'global namespace' meaning 'namespace []' in PIR?
18:22 pmichaud yes.
18:23 japhb ooh, that would be tasty
18:23 japhb please.
18:23 pmichaud yeah, I think so.
18:23 japhb :-)
18:23 pmichaud looking at code
18:23 pmichaud heh
18:23 pmichaud 'fetch' makes it easy
18:23 TimToady remember to s/\*// ?
18:24 pmichaud yeah, I'd have to consider that also
18:24 pmichaud NQP tends to not muck with names much
18:24 pmichaud there might be some value in requiring globals to have the * in order to be considered contextual
18:24 japhb TimToady, pmichaud: Well, the whole point of this was to not have to declare (and possibly initialize) the vars in every different module I write, but have them be truly "global"
18:25 japhb So having to use the * makes sense to me, because it indicates different-than-normal variable semantics.
18:25 japhb And in NQP, you're "close to the machine", so seeing that is important, I'd think.
18:25 pmichaud japhb: another possibility might be for us to introduce the GLOBAL pseudo-namespace, too
18:26 pmichaud then you could just do   @GLOBAL::ARGS
18:26 pmichaud and %GLOBAL::VM
18:26 japhb pmichaud, it's a little uglier, but I can hang.
18:26 pmichaud (which don't currently work atm)
18:26 payload joined #perl6
18:26 japhb pmichaud, yes, I discovered that at length last night.  ;-)
18:26 diakopter what does(should) %GLOBAL::VM hold
18:26 pmichaud put those on the wiki list :)
18:26 japhb pmichaud, will do
18:27 pmichaud diakopter: well, in Perl 6, it's probably %PROCESS::VM
18:27 pmichaud $*VM        Which VM I'm running under
18:27 japhb diakopter, in NQP, the main use I've found is for %VM<config>, the configuration info subhash.
18:27 diakopter o neet
18:30 pmichaud $::("*::$foo")      # global $Bar    (<----fossil in S02?)
18:30 pmichaud Do we still support $*::foo  as a shortcut for $GLOBAL::foo ?
18:31 TimToady n
18:32 TimToady my o key is getting balky...
18:32 TimToady globals got dehuffmanized that way
18:33 pmichaud that's what I thought.  So the S02 line is fossil, or has some other interpretation that makes it work?
18:34 japhb pmichaud, http://wiki.github.com/per​l6/nqp-rx/plumage-requests updated
18:35 pmichaud japhb: noted, thanks
18:35 japhb Can someone teach dalek to watch http://wiki.github.com/perl6/nqp-rx/wikis.atom ?
18:35 pmichaud japhb: I'll come up with something in the near future.
18:35 japhb pmichaud, thank you!
18:35 kidd` joined #perl6
18:36 pmichaud that atom feed might be a little to verbose ofr dalek
18:36 pmichaud *for dalek
18:36 TimToady also, this line is bogus:
18:36 TimToady $::($foo)           # package-scoped $Bar
18:36 pmichaud TimToady: when you get a chance, cleaning those up would be helpful.  :)
18:36 TimToady I don't think packages should be privileged in indirect lookup
18:36 * japhb has several in-progress Plumage branches locally, each of them stuck on something not working yet in NQP.
18:36 japhb Here's to driving NQP development!
18:36 pmichaud japhb: feel free to put a priority marker in the wiki page
18:37 japhb pmichaud, yeah, I just realized it was the whole page, not just the diffs.  :-(
18:37 japhb er, the atom feed was ...
18:37 pmichaud japhb: still, I keep a pretty good eye on the page
18:37 japhb pmichaud, OK, cool, I'll look and see what's most important to me right now.
18:39 pmichaud hmmm, global contextual doesn't look too bad.  have to decide whether to strip the twigil.
18:40 pmichaud (generated code is ugly, but ... oh well.)
18:42 japhb Does it uglify every variable reference, or just contextuals?
18:42 pmichaud just contextual references
18:42 pmichaud and it won't be so ugly when I've got 'fetch' integrated into PAST
18:42 japhb I was going to ask about that .... ;-)
18:43 japhb Actually, I'm going to add that to the wiki, because I'm doing a lot of debugging using --target=pir, and I could use all the cleanliness I can get.
18:47 TSa joined #perl6
18:50 iblechbot joined #perl6
18:50 pugs_svn r29037 | lwall++ | [S02] clean up ::() semantics to be identical to normal lookup
18:52 japhb pmichaud, does this work for you?  http://wiki.github.com/per​l6/nqp-rx/plumage-requests
18:52 tomaw_ joined #perl6
18:53 japhb Actually, a couple more edits coming ...
18:53 TimToady I still think it's better to strip the twigil, or we can't easily find $GLOBAL::foo, and "package GLOBAL; our $foo" becomes problematic
18:55 japhb pmichaud, OK, fixed now
18:56 tylerni7 joined #perl6
18:56 japhb TimToady, do you mean for the case of having contextual lookup in NQP look in 'namespace []' as well?
18:57 TimToady well, if NQP has different semantics there, it's no longer a subset
18:59 pmichaud we know there are going to be a few places where NQP doesn't quite match Perl.  But we try to keep them to a minimum, and the idea is that an NQP program should be able to generally run under a full Perl 6
18:59 japhb TimToady, sure.  I thought the NQP rules were '1. Thou shalt not have a required runtime.  2. Be as close as possible to a proper subset of Perl 6 as you can without violating Rule 1.'  Hence stuff like Q:PIR{} and pir::
19:00 jnthn pmichaud: Gah. I'm guessing you just did the GLOBAL change?
19:00 jnthn Like, it was one of the last things you committed?
19:00 pmichaud in that sense, it would seem to make more sense to strip the twigil
19:00 jnthn So everything is in GLOBAL now?
19:00 pmichaud jnthn: it was relatively recent, yes.
19:00 jnthn pmichaud: OK. It's broken trait_mods...
19:00 jnthn pmichaud: I think because you didn't also update package_def.
19:00 jnthn class Foo { ... } now goes in
19:00 pmichaud jnthn: yeah, we need a pragma or something that says "Don't compile this unit in GLOBAL"
19:00 jnthn .namespace ["Foo"]
19:01 pmichaud jnthn: GLOBAL in ng is the same as Main was in the older rakudo
19:01 jnthn Oh, so the answer is not for us to have instead
19:01 jnthn .namespace ["GLOBAL";"Foo"]
19:01 jnthn ?
19:01 TimToady STD recognizes 'my module CORE;' as special :)
19:02 pmichaud jnthn: at this point I don't want Foo to go in as ['GLOBAL';'Foo'], no.
19:02 pmichaud ultimately packages will be lexical
19:02 jnthn pmichaud: OK. Hm.
19:02 pmichaud just think of GLOBAL as being in the same niche that Main was
19:02 pmichaud (for now)
19:02 pmichaud We used to have a "no Main;"
19:02 jnthn True
19:03 TimToady 'my module' seems more natural
19:03 pmichaud feel free ot remove the GLOBAL declaration for now
19:03 pmichaud (just eliminate  :namespace('GLOBAL')  from method comp_unit )
19:03 pmichaud I agree it might be a day or two premature
19:03 jnthn OK
19:04 jnthn In other news, I just put in sub traits...and got a segfault.
19:04 jnthn *sigh*
19:04 pmichaud that should put things back the way they were, and we can figure out how we want to parse + handle  'my module CORE;'
19:04 pmichaud (and review what STD is doing)
19:04 pmichaud (I agree 'my module' feels more natural.... it just didn't exist when we added 'no Main' :-)
19:04 pmichaud (and "CORE" was called "setting")
19:05 pmichaud (having recently changed from "Prelude")
19:05 pmichaud (and ..... :-)
19:05 pmichaud japhb: even with Q:PIR{} and pir::, those *could* be Perl 6 if the appropriate modules were loaded :-)
19:06 japhb pmichaud, well, the type magic of pir:: is stretching it a bit, but sure.  :-)
19:06 pmichaud really?
19:06 pmichaud how hard would it be to write pir::*  subroutines to do the equivalent?
19:07 fridim_ joined #perl6
19:07 japhb pmichaud, didn't you say that part of the magic of pir:: is that PCT will detect consecutive ops respectively returning and taking unboxed values, and being smart enough not to box in between?
19:08 pmichaud sure, but one can get equivalent semantics with boxing
19:08 pmichaud the box/unbox is optimization more than semantic difference
19:08 pmichaud and Perl 6 also allows native types
19:08 pmichaud like int/str/num
19:08 pmichaud so..... seems pretty equivalent to me
19:09 pmichaud anyway, I'm pretty sure I can write subs in Perl 6 that accept unboxed values and return them :-)
19:09 japhb Sure, yes.
19:09 pmichaud our int sub length(str $x) { ... }
19:09 pmichaud (except I guess there's no str type.  Would need to be buf)
19:10 pmichaud anyway, it shouldn't be too hard to emulate the pir::* subs in Perl 6 :-)
19:10 pmichaud far easier than trying to parse the Q:PIR{ ... } contents.
19:11 KyleHa S12 under multimethods says if it can't resolve ties, "dispatch fails".  Does that mean a run-time 'die', or it returns a Failure object, or what?
19:11 pmichaud depends on the mode of dispatch, I suspect.  But for a generic method dispatch, throws an exception.
19:12 pmichaud afk, lunch and more work on "use/need/import"
19:12 KyleHa OK, thanks.
19:14 pmichaud jnthn: another possibility for now is to detect CORE as a module name and treat it as :namespace('')
19:14 pmichaud then we just need  "module CORE;"   at the top of the builtins.
19:14 jnthn pmichaud: Ah, true.
19:14 jnthn pmichaud: I fixed the segv for is export, so we can haz that now too. :-)
19:14 pmichaud probably worth doing that and removing GLOBAL for now.
19:14 pmichaud yay
19:14 pmichaud okay, lunch for me, then back to implement use
19:14 jnthn I might for now just drag in the PIR code we had before.
19:15 jnthn OK. :-)
19:15 pmichaud ...PIR we had before for...?
19:15 jnthn is export
19:15 pmichaud I thought is export was a trait
19:15 jnthn In the original traits.pm
19:15 pmichaud ahhhh, okay
19:15 jnthn Yes, but it's body was Q:PIR { ... }
19:15 pmichaud that's fine with me for now
19:15 pmichaud actually, though, I might want it to go in src/cheats
19:15 jnthn Yeah, I'd like to re-write it into Perl 6 at some point, but it's maybe a "nice to have"
19:15 jnthn erm
19:16 jnthn fine, if part of traisn.pm is also in src/cheats I guess. :-)
19:16 jnthn *traits
19:16 pmichaud just split traits.pm into two parts
19:16 jnthn ok
19:16 pmichaud traits.pm is pure perl 6
19:16 pmichaud src/cheats/traits-export.pm is the pir cheating part
19:16 jnthn OK
19:16 pmichaud list both of them in CORE
19:16 pmichaud (it works out identically)
19:16 jnthn ooh...it's after 8pm...I should think about dinner :-)
19:17 pmichaud oh, also, I'd like someone to put together a 99-test.t  file for 01-sanity
19:17 pmichaud it should verify that the test module functions are working properly
19:17 pmichaud doesn't have to do all of them -- just the basics
19:17 pmichaud (ok, is, skip, etc.)
19:18 pmichaud basically, the goal of 01-sanity is to test everything that's needed for 99-test.t to ultimately pass
19:18 pmichaud (and thereby begin running spectests)
19:18 pmichaud okay, lunch for me -- bbl
19:21 sjohnson morning
19:23 KyleHa My understanding of multiple dispatch:  http://gist.github.com/230192
19:27 KyleHa pmichaud: You want 99-test.t to start with 'use Test' and exercise its code to confirm it's runnable?  Or something else?
19:33 scottt_ joined #perl6
19:35 Thyssen joined #perl6
19:39 scottt_ joined #perl6
19:55 payload joined #perl6
19:57 hercynium joined #perl6
20:03 ShaneC joined #perl6
20:29 japhb nqp: my %c; %c<a> := "b"; for %c { say($_ ~ "\t" ~ %c{$_}); }
20:29 p6eval nqp: Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'␤current instr.: '_block21' pc 104 (EVAL_1:0)␤
20:29 japhb pmichaud?
20:30 japhb when I do --target=pir, I don't see any three way concat's like that.
20:31 japhb Just one for the first ~ and a separate one for the second ~
20:31 jnthn nqp: my %c; %c<a> := "b"; for %c { say(~$_ ~ "\t" ~ %c{$_}); }
20:31 p6eval nqp: a  b␤
20:31 japhb jnthn, So NQP bug or PEBCAK?
20:32 jnthn japhb: Debatable..it's annoying though.
20:32 pmichaud KyleHa: (99-test.t)  yes
20:32 jnthn japhb: I've hit it before too.
20:32 japhb ah
20:32 jnthn (thus why I so quickly knew the solution)
20:32 KyleHa pmichaud: I have a local branch for that; how do I get it to github for you?
20:32 japhb heh
20:32 pmichaud KyleHa: maybe just nopaste the file somewhere is easiest?
20:33 jnthn I think pmichaud can probably give a better opinion than me on if it's an NQP bug or something Parrot should deal with - I'm not sure off hand.
20:33 KyleHa pmichaud: It's three files plus changes to Test.pm that seemed appropriate upon review.
20:33 pmichaud KyleHa: maybe "git diff" into a patch, then?
20:33 japhb jnthn, the thing that made me assume it was NQP was that --target=pir looked sane (well, as it ever is)
20:33 pmichaud I can apply the patch.  Seems easier than trying to push to github, unless you have an easy way to do that already
20:33 japhb actually, let me try the two pass method
20:34 pmichaud japhb/jnthn:  It's because Parrot doesn't have a "concat" opcode that knows what to do with a first argument as a match object
20:34 PerlJam KyleHa: git push origin refs/heads/name-of-branch
20:34 japhb Nope, it fails from PIR as well
20:34 japhb pmichaud, a match object?
20:34 pmichaud or, put another way, it's because match objects don't have a concat vtable method
20:34 PerlJam KyleHa: or perhaps git push origin name-of-branch
20:34 pmichaud oh, wait, maybe not a match object here.
20:34 pmichaud looking.
20:34 KyleHa That rings a bell.  Thanks PerlJam++
20:35 pmichaud I was reading $_ as a match object.
20:36 * pmichaud checks the --target=pir output
20:36 japhb I'm guessing $_ in this case is some sort of key PMC?
20:36 jnthn pmichaud: I think the problem is that iterating a Hash nowadays gives you back something other than a String.
20:36 jnthn It gives back a HashKey or something.
20:36 japhb What jnthn said
20:36 pmichaud jnthn: sure, but 'for' shifts from the iterator
20:37 pmichaud oh, you mean shifting from the iterator gives something else back.  Possible/likely.
20:37 jnthn pmichaud: Right.
20:37 jnthn Sorry, wasn't clear (cooking...)
20:37 pmichaud well, whatever is coming back, it doesn't have a concatenate vtable.
20:37 pmichaud and thus you get the "no suitable candidate found..." error
20:37 diakopter optimized away!
20:37 pmichaud this is the problem with trying to tie all operations too closely to the datatype  (actually, to the lhs operand)
20:37 japhb OK, but stringify is guaranteed to work, yes?  I mean, doesn't every PMC need to support at least a stub stringification?
20:38 __ash__ joined #perl6
20:38 japhb So jnthn's workaround will always work?
20:38 pmichaud I don't know if it's guaranted to work for every PMC, but it obviously needs to work with whatever Hash iterator is returning.
20:38 japhb right
20:38 pmichaud I suppose I can make the claim in Parrot that it's a deprecation violation.
20:38 pmichaud probably worth checking.
20:38 japhb :-)
20:39 jnthn ooh, dinner is cooked, bbs
20:39 KyleHa pmichaud: There it is:  http://github.com/rakudo/ra​kudo/tree/validate-test-pm
20:40 pmichaud KyleHa: the last three commits?
20:40 KyleHa Yes.  You may want to review and cherry pick.
20:40 pmichaud I will, and thanks.
20:40 pmichaud ...there's two 99-test files?
20:40 pmichaud I tend to want only one file per number :)
20:41 KyleHa I can renumber them.  I'd probably order them basic, plan, err
20:41 pmichaud let me look a bit further
20:41 * japhb remembers when that particular fail happened ...
20:42 japhb er, *first* happened.
20:42 pmichaud KyleHa: okay, I think I'm only needing 99-test-basic.t at the moment
20:42 pmichaud we're standardizing on   plan *;,  yes?
20:43 KyleHa Yes, but there's still a lot of files that use explicit plans.
20:43 pmichaud that's okay
20:43 pmichaud this test is just to get us to say "yes, you have enough of a testing environment that you could conceivably start to run spectests"
20:43 pmichaud it's not to say "you have a complete testing environment"
20:43 pmichaud is  plan *  optional?
20:44 KyleHa I think so, yes.  If you don't declare a plan at all, it kind of assumes 'plan *'.
20:44 pmichaud or do we expect it to exist more often than not?
20:44 KyleHa It will usually exist.
20:44 pmichaud okay.  we'll want to be able to parse that then.
20:44 pmichaud I'll probably omit the eval tests for now
20:45 KyleHa I don't know of a spectest file that doesn't have 'plan' with either a number or a stare.
20:45 KyleHa s/stare/star/
20:45 pmichaud I'm going to assume that most spectest files will move to having 'plan *', so we'll test for that.
20:46 pmichaud many thanks, this works great for me.  I'll cherry pick shortly.
20:46 KyleHa You're welcome.
20:50 KyleHa Right now, 616 files have 'plan\s+\d' and 72 have 'plan\s+\*', give or take sloppy grepping.
20:51 pmichaud okay
20:51 pmichaud I'll presume that if a Test.pm can handle plan * that it can likely handle plan \d+
20:51 pmichaud at this stage we really want a low barrier to entry, not a high one.
20:51 pmichaud (i.e., we want people to be able to start running spectests asap)
20:52 KyleHa Anything else I can do to help?
20:52 pmichaud that's perfect, thanks for the very quick response
20:52 pmichaud saved me an hour or so of work :)
20:53 KyleHa Yay!
20:53 pmichaud oh, I'm going to reject some of the Test.pm changes, though.
20:53 pmichaud 0
20:53 pmichaud +multi sub todo($reason, Int $count where { $count > 0 } ) is export(:DEFAULT) {
20:54 pmichaud handling "where" clauses might be a "high barrier to entry"
20:54 pmichaud this is a case where I think I'd prefer the sub to fail if count is negative rather than not be invoked at all
20:54 pmichaud unless you expect someday there to be a todo() sub where negative counts are allowed :)
20:55 * jnthn back from nom
21:13 Su-Shee left #perl6
21:16 KyleHa I'm surprised that a sub call that doesn't match any signature doesn't blow up somehow.
21:16 jnthn ?
21:16 jnthn That'd be...odd.
21:16 jnthn rakudo: multi foo($x) { }; foo(1,2)
21:16 p6eval rakudo 929998: No applicable candidates found to dispatch to for 'foo'␤in Main (file <unknown>, line <unknown>)␤
21:16 KyleHa rakudo: sub x(Int $x where { $x > 0 }) { say 'yay' }; x(-1); say 'done';
21:17 p6eval rakudo 929998: Constraint type check failed for parameter '$x'␤in Main (file src/gen_setting.pm, line 324)␤
21:17 jnthn Looks like a blow up to me. :-)
21:17 KyleHa Something odd here, then.
21:18 hudnix joined #perl6
21:19 jnthn KyleHa: What are you seeing?
21:19 KyleHa jnthn: I have, basically, the code above in a file, and when I run it, it doesn't explode as it does here.
21:19 KyleHa I'm investigating further...
21:21 jnthn KyleHa: master or ng?
21:21 KyleHa master
21:21 jnthn Hm
21:21 jnthn Not sure then.
21:21 jnthn If it was in ng, I could happily believe there's an issue.
21:22 KyleHa Found it.
21:22 KyleHa If I have my sub definition on one line, the call on the line below it, it doesn't work (doesn't die).  If I add a semicolon to the end of the line with the sub definition, it does what we want (dies).
21:23 jnthn wtf...
21:23 pmichaud japhb: I filed the concatenation bug as a major parrot bug (TT #1253).  Turns out that much more than concatenation is affected.
21:23 jnthn Way too odd.
21:23 pmichaud I suspect an end-of-block parsing issue.
21:23 pmichaud I'd not worry about it to much -- likely to be fixed in ng.
21:23 japhb pmichaud, OUCH
21:23 jnthn pmichaud: Hope so.
21:24 pmichaud welllll,  we know it'll be fixed in ng.  :)
21:24 jaffa8 joined #perl6
21:24 pmichaud but anytime adding a semicolon fixes things, I suspect a parsing bug.
21:24 pmichaud (which we know we've had trouble with)
21:24 jnthn Yes, it sounds like it is that.
21:24 KyleHa Where would be a good place to test this?
21:24 jaffa8 ; seems to be a problem in other languages too
21:25 estrabd joined #perl6
21:25 moritz_ KyleHa: maybe t/spec/S02-whitespace_and_comments/ somewhere
21:25 KyleHa moritz_: Thanks!
21:27 japhb pmichaud, (my OUCH was in relation to TT #1253)
21:27 pmichaud japhb:  yes, that's where I applied it.  :)
21:27 japhb ah, good
21:27 japhb :-)
21:27 pmichaud I thought the same thing.  In several ways 1.4.0 was a FAIL as far as Parrot's stated deprecation policy goes.
21:28 japhb I mistook your response starting with welllll to be to me, rather than jnthn.  :-)
21:28 quietfanatic joined #perl6
21:28 * jnthn glances the TT out of curiosity
21:28 japhb The deprecation policy so far has seemed to be the worst of both worlds.
21:29 pmichaud I think I said as much last November at PDS 2008 when it was adopted.
21:29 * japhb is not surprised.
21:29 pmichaud afk, fetching kiddies.
21:30 jnthn FAIL.
21:31 simcop2387 joined #perl6
21:36 desertm4x joined #perl6
21:41 pugs_svn r29038 | kyle++ | [t/spec] Test for a parsing problem noticed on IRC
21:42 simcop2387 joined #perl6
21:43 japhb nqp: my @list := ("a", 1, 5.3); say(@list[0]);
21:43 p6eval nqp: Confused at line 1, near "my @list :"␤current instr.: 'parrot;HLL;Grammar;panic' pc 448 (src/cheats/hll-grammar.pir:197)␤
21:43 japhb nqp: my @list := ("a", 1, 5); say(@list[0]);
21:43 p6eval nqp: a␤
21:43 pmichaud nqp doesn't know floats yet.
21:43 japhb Num fail
21:43 japhb ah, OK
21:43 pmichaud need it to?
21:44 japhb Not this instant, but soon.  ==> wiki?
21:44 pmichaud please.
21:44 japhb np
21:45 japhb done
21:45 japhb BTW, do you mind if I gc that page occasionally?
21:45 japhb Or do you like having the history visible?
21:47 * japhb increases priority of flatten while he's at it
21:48 jnthn pmichaud: oh ping
21:48 pmichaud pong
21:48 pmichaud (gc)  just move the completed stuff to the bottom so we have a list :)
21:48 jnthn pmichaud: I just added in a very minimal Pair in PIR (just creates the class and has .key)
21:48 japhb pmichaud, roger that
21:48 nbrown_ joined #perl6
21:48 jnthn pmichaud: Since is export needed.
21:48 jnthn erm, needed it
21:48 jnthn pmichaud: is export now may well work
21:48 pmichaud jnthn: wfm
21:48 jnthn pmichaud: However, there's one snag.
21:49 jnthn class Foo { method wob is export { ... } } # oh noes
21:49 jnthn &wob doesn't get a namespace entry.
21:49 jnthn And the 'is export" goes off asking the sub for its namespace, and .get_namespaces is like, "I dunno".
21:50 jnthn So gives back null.
21:50 jnthn Same on lexical subs.
21:50 jnthn our subs work though! ;-)
21:50 pmichaud okay.  I can fix that, or you can.
21:50 pmichaud I'm fine with fixing it myself, it will help when I get to finishing up 'import' semantics
21:50 jnthn I'm not sure I know exactly how it's meant to work. Maybe since you're doing all of the import stuff, it's better than I punt it to you?
21:51 pmichaud as long as the export trait handler is being called, that's the bulk of what I needed
21:51 jnthn Yes, that is decidedly happening.
21:51 pmichaud excellent.  that should be good enough for this evening.
21:51 jnthn Excellent.
21:51 jnthn Is there anything else you'd especially like?
21:51 jnthn I had traits and augment on my list and I did 'em. :)
21:52 pmichaud doing things through the namespace is a bit bogus anyway, and we really shouldn't need to ask the sub for its namespace.  We can always check the namespace of export's caller.
21:52 jnthn oh
21:52 jnthn Yes, that'd help
21:52 pmichaud I think you cleared the list of things I needed for finishing Test.pm and getting started on spectests
21:53 jnthn Excellent.
21:53 japhb pmichaud, ah, wiki page much cleaner now
21:53 pmichaud my hope and plan is to finish that up tonight (even if I have to stay up a bit later to do it), then write some reports
21:53 pmichaud if I get that finished tonight, tomorrow we can start working on core setting
21:53 pmichaud likely starting with the operators
21:53 pmichaud and some of the other builtin classes
21:54 jnthn Great.
21:54 jnthn oh by the way
21:54 jnthn When I put pair back
21:54 jnthn I put it back registered as Pair
21:54 jnthn Not Perl6Pair.
21:54 pmichaud good
21:54 pmichaud I think Pair is gone from parrot anyway
21:54 pmichaud the only class where we have a bit of difficulty is Perl6Object <-> Object
21:54 pmichaud because I don't think we can have a PMC type named "Object"
21:55 KyleHa Objection!
21:55 pmichaud oops, gotta pick up other kid
21:55 pmichaud brb
21:58 KyleHa moritz_: I'm looking for tests like these and not finding them.  http://gist.github.com/230192   I'm thinking of adding them to S12-methods/multi.t unless you have another suggestion.
21:59 moritz_ KyleHa: seems like a good choice
22:03 pugs_svn r29039 | kyle++ | [t/spec] Tests for ambiguous dispatch.
22:08 jnthn pmichaud: Added a Pair.pm in the setting. Just implements .value, but hey, at least we're sure augment works properly in the setting now. :-)
22:16 pmichaud jnthn++ +1
22:16 jnthn pmichaud: Realized I'd not put "is rw" and friends back on parameters.
22:17 jnthn pmichaud: Doing that now.
22:17 pmichaud good, we'll want that too.  How about 'is ref" ?
22:17 jnthn Well, my current "is rw" impl kinda...is...is ref. :-)
22:17 pmichaud that's fine.  any chance we can have is ref and is rw both do the same thing for now?
22:18 jnthn ...
22:18 pmichaud while we're waiting for a decision from TimToady++ about is rw
22:18 jnthn We can
22:18 pmichaud ?
22:18 pmichaud +1
22:18 jnthn All "is rw" was going to do was say "oh hey, does it have the rw flag set"
22:18 jnthn And otherwise be the same as is ref.
22:18 jnthn But I can leave them both the same for now if you like.
22:18 jnthn I've gone and forgotten the decision we're waiting on now.
22:19 pmichaud me too... I just remember we're waiting on one.  I'll write it up as a Pm-## question.
22:19 pmichaud so it doesn't get lost :)
22:20 pmichaud this week should be fun playing with core setting :)
22:20 pmichaud I'm thinking of implementing Range in the setting instead of PIR
22:20 pmichaud (along with lazy RangeIterators)
22:20 jnthn Sounds good.
22:20 jnthn pmichaud: oh, when you add that question
22:20 jnthn pmichaud: Unless you know the answer...
22:20 jnthn Can you also add
22:21 jnthn "What is the difference between :(\$x) and :($x is ref) ?
22:21 pmichaud sure
22:21 pmichaud or you can go ahead and add it to pm.txt
22:21 pmichaud just use the next Pm-## in sequence
22:22 jnthn Because given my recollection of the last discussion of is ref, it matches my recollection of what the \ quantifier was meant to do...
22:22 jnthn Aww...why can't I have a jw.txt? ;-)
22:22 * jnthn decides to add to the file that's getting answers :-)
22:23 jnthn Is it in the spec directory?
22:23 jnthn aww
22:24 moritz_ no, in misc/
22:26 jnthn moritz_: thanks
22:26 pmichaud misc/pm.txt
22:26 * jnthn checks out
22:26 pmichaud you can add it as jw-1 if you want.  :)
22:27 jnthn oooh
22:27 * jnthn feels special again
22:27 jnthn sheesh...there's a lot besides pm.txt in misc!
22:28 moritz_ that's where camelia dwells!
22:29 am0c joined #perl6
22:31 pugs_svn r29040 | jnthn++ | [pm.txt] An imposter strikes with a question about the difference between :(\$x) and :($x is ref).
22:33 diakopter mailing list via source code repo.
22:34 simcop2387 joined #perl6
22:35 moritz_ avoids bikeshedding :-)
22:35 jnthn lol
22:36 jnthn Why do you think I use p6l so infrequently for questions? :-)
22:41 lichtkind joined #perl6
22:44 Chillance joined #perl6
22:46 justatheory joined #perl6
22:54 japhb Is there either A) a working perl6doc project, or B) a way to tell classic perldoc to parse using the new grammar?  Now that NQP-rx is using Perl 6-ish =begin/=end instead of =foo/=cut, classic perldoc has gotten a lot less useful for checking my POD.
22:59 pmurias diakopter: you're now writing a PAST interpreter in js?
23:07 * pmurias wonders if supporting p5 interop would be usefull in mildew-js
23:10 Juerd jnthn: I'll refrain from asking questions, so we don't have to share the jw's :)
23:10 jnthn ;-)
23:12 pugs_svn r29041 | lwall++ | [STD_P5] weed out non-P5-ops, use <O()> notation, add missing %binding precedence
23:16 pmurias TimToady: what does O() notation in STD do?
23:17 pmichaud (based on a #parrot conversation) .... what's the result of numifying a Pair ?
23:17 pmichaud rakudo:  my $a = '5'=>3;  say +$a;
23:17 p6eval rakudo 929998: Method 'Num' not found for invocant of class 'Perl6Pair'␤in Main (file src/gen_setting.pm, line 324)␤
23:17 pmurias pugs: +(a=>4)
23:17 p6eval pugs:  ( no output )
23:17 pmurias pugs: say +(a=>4)
23:17 p6eval pugs: 2␤
23:18 pmichaud pugs treats pairs as arrays of two elements
23:18 jnthn Not quite sure that's right.
23:18 arnsholt pmurias: Does using tuples in a numberic context even make sense?
23:18 arnsholt Er, s/pmurias/pmichaud/
23:18 pmurias not a lot
23:19 pmichaud arnsholt: I don't know.  I'm just curious as to what the answer would be in that case.
23:19 arnsholt Point
23:19 pmichaud because it's coming up in a conversation on #parrot as to what a parrot behavior ought to be
23:20 pmurias the current behavior might be the right one
23:20 arnsholt But I suppose the numified right side of the pair might be a viable option?
23:20 pmichaud arnsholt: it might be, yes.  That's why I was hoping for a Perl 6 answer.  :)
23:20 pmurias rakudo: my $a = '5'=>3;say $a[0];
23:20 p6eval rakudo 929998: Method 'postcircumfix:[ ]' not found for invocant of class 'Perl6Pair'␤in Main (file src/gen_setting.pm, line 324)␤
23:21 arnsholt The pugs behaviour makes sense for generic length tuples, but for pairs it's a bit redundant
23:21 pmichaud otoh, stringifying a pair doesn't produce the stringified value of its rhs, so I suspect numifying should not do that
23:21 pmichaud I'm fine if numifying the pair produces a Failure of some sort
23:22 arnsholt That's the "correct" solution if you ask me, but in a DWIM context it might not be
23:24 jnthn I'm not sure what IM though. :-)
23:25 mathw joined #perl6
23:26 arnsholt That's the part that has me struggling as well =)
23:26 bloonix joined #perl6
23:27 __ash__ joined #perl6
23:27 moritz_ rakudo-ng doesn't build Test.pm anymore
23:28 jnthn oh
23:28 jnthn that sucks
23:28 moritz_ Method 'ast' not found for invocant of class 'Undef'
23:28 moritz_ duringthe compilation step
23:28 moritz_ ...
23:28 jnthn ah crap
23:28 moritz_ called from Sub 'perl6;Perl6;Grammar;package_def' pc 34433 (src/gen/perl6-grammar.pir:5128)
23:28 jnthn yeah, I see it
23:28 quietfanatic joined #perl6
23:28 jnthn We're kinda...lacking tests...
23:28 jnthn ;-)
23:29 TimToady pmurias: <O(%preclvl)> replaces the old fake --> coercion syntax
23:29 moritz_ .oO( ... )
23:29 quietfanatic Maybe numifying a pair should create a ratio?
23:29 quietfanatic :)
23:29 jnthn moritz_: Well, normally the work flow is: I change something, run the spec tests, commit. :-)
23:29 jnthn moritz_: But there's no spec tests now, so if make test don't catch it... :-)
23:30 TimToady I suspect the conservative thing is to fail for now, until we decide we all mean the same thing by numification of Pairs
23:30 moritz_ jnthn: what's missing? use?
23:30 jnthn yeah, pmichaud++ is working on it
23:30 jnthn We'll have Test.pm back soon
23:30 jnthn oh
23:31 jnthn I think it's just that I've broken the semi form of package declarators.
23:31 jnthn yup
23:31 simcop2387 joined #perl6
23:32 jnthn || ';'
23:32 jnthn <.newpad>
23:32 jnthn <.finishpad>
23:32 jnthn huh!
23:32 pmichaud TimToady: we'll fail for now, works for me
23:33 pmichaud jnthn: TimToady just changed STD here earlier today -- I haven't had a chance to catch up
23:34 jnthn pmichaud: oh
23:34 jnthn The action.pm says statement_list and the grammar votes statementlist
23:34 jnthn So does STD.
23:34 * jnthn tweaks the actions and hpes
23:34 jnthn *hopes
23:35 pmichaud the previous version of STD.pm basically just let things fall through to the comp_unit statementlist
23:35 pmichaud which didn't really work for us
23:35 jnthn ah, ok
23:35 pmichaud anyway, feel free to tweak, but I'll definitely give it a look later
23:37 jnthn Why does Test.pm have
23:37 jnthn is export(:DEFAULT)
23:37 jnthn When
23:37 jnthn is export
23:37 jnthn Would do just fine?
23:37 jnthn Turns out $<circumfix>.ast doesn't do the right thing in the trait mod after all. :-(
23:38 moritz_ jnthn: feel free to simplify the 'is export' thing
23:38 jnthn moritz_: OK, thanks. Wanted to check there wasn't a reason first. :-)
23:38 jnthn OK, now it compiles again. \o/
23:40 jnthn moritz++ for noticing the breakage. :-)
23:41 jnthn pmichaud: I've put pretty much all the signature stuff back, apart from @x looking for Positional. I think it may be a day or two too soon for that.
23:41 jnthn (I know List ain't 'does Positional' yet, for example.)
23:42 pmichaud agree on day too soon
23:42 pmichaud tomorrow or wed may be optimal
23:42 jnthn Sure
23:42 jnthn Well
23:43 quietfanatic rakudo: say 45.HOW
23:43 p6eval rakudo 929998: Int()<0x2b2855901540>␤
23:43 jnthn Maybe List and Array will want to become parametric roles at that point as well.
23:43 quietfanatic rakudo: say 45.HOW.HOW; say "done"
23:43 p6eval rakudo 929998:  ( no output )
23:43 moritz_ $int.HOW.HOW segfaulted here last I tried
23:43 quietfanatic (segmentation fault)
23:44 jnthn quietfanatic: Doesn't in ng.
23:44 jnthn :-)
23:44 moritz_ that's already in RT
23:44 quietfanatic sweet :)
23:44 sjohnson howdy quietfanatic
23:44 quietfanatic hey sjohnson
23:44 jnthn pmichaud: OK, I've coded enough today. I think I'm at the point where quality will start to decrease, so I'll resume tomorrow. :-)
23:45 quietfanatic jnthn: oh, I was gonna ask you about the trait_mod:<is> thing but I gues that can wait.
23:46 quietfanatic *guess
23:46 jnthn quietfanatic: It won't change in master now, I doubt, and that stuff looks a bit difference in ng.
23:46 jnthn quietfanatic: So I think best is look at it once ng is far enough along to sanely be able to play with it there.
23:46 quietfanatic Fair enough
23:54 Whiteknight joined #perl6

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

Perl 6 | Reference Documentation | Rakudo