Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-07-17

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:01 fglock leon: I think people will come back on monday - see http://colabti.de/irclogger/irclogger_logs/perl6
00:01 lambdabot Title: #perl6 irc log
00:01 leon OK, tnx
00:05 svnbot6 r11576 | fglock++ | v6 - simplified 'loop' rule
00:07 clkao fglock: i wonder what to do with the type barewords like Str and Num
00:07 clkao for each class definition register such type as sub in global?
00:09 fglock clkao: that's one way to do it - I wonder what pugs does; let's ask audreyt, gaal
00:12 clkao also for Bool class that has object with value that is 1, but ref also needs to be Bool.  i'd really avoid overload :/
00:12 daxim joined perl6
00:13 clkao fglock: btw, what about [1..5] ? ;)
00:14 svnbot6 r11577 | clkao++ | Trivial ::ref
00:15 fglock clkao: it works for me - what error do you get?
00:16 clkao oh, it does? i haven't noticed ;)
00:16 merlyn fglock - does that Module::Compile bug I reported have an easy fix?
00:16 mauke_ is now known as mauke
00:16 merlyn you're probably more familar with M::C than I am
00:17 merlyn otherwise, I have to write a column on some other topic soon
00:17 fglock merlyn: not really - I'm just another user :)
00:17 merlyn Ugh.
00:17 merlyn Ok, so if the first thing I tried to do with it breaks, I deem it "not ready to talk about in public".
00:18 merlyn I guess I'll have to pick another toipic in 12 hours
00:18 merlyn Ugh
00:18 * merlyn goes to his list
00:19 fglock merlyn: M::C is used for precompiling modules at 'make' time, afaik
00:20 merlyn there are comments to the effect that if you "use" something without a .pmc, the .pmc is created and the action continues.
00:20 merlyn that's the bug.  it doesn't do that.
00:20 merlyn I was able to demonstrate that with just a simple setup
00:21 merlyn in fact, it tripped up the very first simple example I wanted to make to understand how it worked. :(
00:23 fglock did you see 'orz' in cpan? it's a minimal example of using M::C
00:24 merlyn part of the M::C distro?
00:24 fglock http://search.cpan.org/auth​or/INGY/orz-0.12/lib/orz.pm
00:24 lambdabot Title: orz - Total Failure - search.cpan.org
00:26 merlyn Yeah, that code would fail in the same way as mine, apparently
00:26 merlyn either that, or there's something magical about his code to do it right
00:27 markstos joined perl6
00:30 svnbot6 r11578 | clkao++ | Pass t/statement/loop.t
00:37 clkao fglock: where is sub expression rule?
00:37 clkao i found anonsub can't take signatures
00:43 fglock clkao: looking
00:43 fglock merlyn: I tried to modify the example in M::C and it doesn't work for me too
00:43 clkao is there a list of builtin methods for Array?
00:45 fglock clkao: see perl5/Perl6-Container - it is slow but it works
00:46 fglock clkao: 'sub' only exists in the statement list - the 'sub' in expression is parsed 'sub({block})'
00:47 fglock clkao: have you used Module::Optimize?
00:50 fglock clkao: Grammar::Operator.pm #39: 'BAREWORD exp'
00:53 clkao not yet
00:54 fglock merlyn: I found the bug
00:55 clkao where is @a.method:{warn $_} specified?
00:55 clkao and what does @b.map{sub ($x,$y) {$x+$y}) mean? takes two from the list at a time?
00:55 fglock merlyn: s/sub pmc_optimize/sub pmc_compile/ and it works
00:56 fglock ingy: ping
00:57 clkao fglock: how do we make sub into expression? grammar::expression isn't normal rules...
00:57 fglock clkao: yes, it sums each 2 elements
00:58 clkao that's a very evil map
00:58 clkao luckily we have &code.arity implemented
00:59 fglock clkao: which file is that?
00:59 clkao pugs::grammar::expression
01:00 fglock sorry - which file has [email@hidden.address] $_}'
01:00 fglock you define 'sub' in Term.pm
01:00 clkao docs/Perl6/Spec/Object.pod:    @list.grep: { $_ % 2 }.map: { $_ - 1 }.say
01:02 clkao fglock: so are we going to use perl6::container?
01:03 kanru joined perl6
01:04 clkao kanru!
01:05 fglock clkao: you can call <Perl6::sub_decl> from Term.pm - near the barewords in the end of this file
01:05 fglock clkao: Perl6::Container is too slow - we need a mix of oo and unboxed containers to get reasonable speed
01:06 clkao mmm
01:06 kanru clkao, hey!
01:07 clkao fglock: no, sub_decl is with the name
01:09 clkao i am turning that into sub_decl_body
01:09 fglock clkao: the name is optional
01:10 clkao fglock: i also don't want multi/my/ etc
01:10 fglock I think these are valid terms
01:11 clkao @b.map(my sub { $_ + 1}) ?
01:11 lambdabot Unknown command, try @list
01:12 fglock audreyt, ingy: s/sub pmc_optimize/sub pmc_compile/ in Module::Compile? it doesn't work the other way
01:12 clkao ?eval (1,2,3).map:{$_+1}
01:12 evalbot_11574 is now known as evalbot_11578
01:12 evalbot_11578 (2, 3, 4)
01:12 clkao ?eval (1,2,3).map(my sub {$_+1})
01:12 evalbot_11578 Error:  unexpected "{" expecting comment, "\\", ":", "*" or parameter name
01:13 clkao ?eval (1,2,3).map(sub {$_+1})
01:13 evalbot_11578 (1.0, 1.0, 1.0)
01:13 clkao ?eval (1,2,3).map(sub {^$x+1})
01:13 evalbot_11578 Error: Undeclared variable: "$x"
01:13 clkao ?eval (1,2,3).map(sub {$^x+1})
01:13 evalbot_11578 Error: Undeclared variable: "$^x"
01:13 clkao ?eval (1,2,3).map(sub {$_[0]+1})
01:13 evalbot_11578 (1.0, 1.0, 1.0)
01:13 clkao mmm
01:13 clkao do i have to have signature?
01:14 fglock $^x doesn't need a signature
01:18 Eidolos ?eval map {$_ + 1} (1, 2, 3)
01:18 evalbot_11578 is now known as evalbot_11579
01:18 evalbot_11579 Error:  unexpected "(" expecting comment, ",", ":", operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
01:18 svnbot6 r11579 | clkao++ | Fix emitter for array methods with args.
01:18 fglock clkao: I'll move 'sub' to Term, ok?
01:18 Eidolos ?eval map {$_ + 1} (1, 2, 3);
01:18 evalbot_11579 Error:  unexpected "(" expecting comment, ",", ":", operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
01:19 Eidolos Heh, oh well. :)
01:19 clkao fglock: sure
01:35 audreyt the comma is mandatory
01:35 audreyt the implicit-comma rule is gone
01:35 audreyt ??eval map {$_ + 1}, (1,2,3);
01:35 audreyt ?eval map {$_ + 1}, (1,2,3);
01:35 evalbot_11579 (2, 3, 4)
01:38 fglock audreyt: is it a bug in Module::Optimize that it defined pmc_optimize instead of pmc_compile?
01:38 Eidolos ahh
01:38 svnbot6 r11580 | fglock++ | v6 - 'sub' declaration is a term
01:39 audreyt fglock: I think ingy started working on it but never got anywhere
01:40 fglock audreyt: it works if you make this change
01:40 fglock merlyn was trying to use it
01:40 fglock clkao: it should work now
01:40 audreyt have you looked at the source?
01:40 audreyt http://search.cpan.org/src/INGY/Modul​e-Compile-0.17/lib/Module/Optimize.pm
01:40 audreyt ingy havn't made it do _anything_ yet
01:40 Kattana http://www.perlmonks.com/?node_id=561229  <<<"Perl is dying"
01:40 lambdabot Title: Perl is dying
01:41 Kattana =/
01:41 audreyt I like dye too
01:41 fglock audreyt: yes - there is no 'pmc_optimize' in the base module
01:41 xerox audreyt: may I show you a thing in Haskell?
01:42 audreyt fglock: I think pretend it doesn't exist for now -- or report to ingy
01:42 audreyt xerox: sure, 'cept I need to sleep real soon
01:42 xerox http://haskell.org/haskellwiki/User:PaoloMartini
01:42 lambdabot Title: User:PaoloMartini - HaskellWiki
01:42 xerox module VarArg
01:42 xerox (See the comments)
01:42 xerox (First)
01:46 clkao fglock: t/11-capture.t now fails to parse
01:46 fglock audreyt: no problem - I was just checking if I could help merlyn
01:47 fglock clkao: looking
01:47 * xerox yawnes
01:48 clkao fglock: and 12caller
01:48 clkao i implemented the evil map
01:50 lollan joined perl6
01:54 audreyt xerox: cute
01:54 xerox %)
01:57 fglock clkao: works again
02:00 svnbot6 r11581 | fglock++ | v6 - fixed 'sub' parsing
02:01 clkao fglock++
02:04 clkao fglock: i thought rx:perl5{\s} is parsed?
02:04 clkao maybe not with arbitary balanced string?
02:05 fglock clkao: only with //
02:05 fglock I think Text::Balanced can handle this
02:09 svnbot6 r11582 | clkao++ | Implement @b.map(sub ($x, $y) { $x + $y }) for v6.
02:10 theorbtwo joined perl6
02:10 clkao fglock: (:foo<bar>, :b<zz>) seems to be in two different hashref
02:12 fglock clkao: yes, it is 2 pairs - it depends on context to process it further
02:13 fglock look with V6DUMPAST=1
02:13 clkao i see. i was trying to get (foo => $bar) parsing correctly
02:17 fglock that's infix:{'=>'} - it looks ok
02:17 clkao that became foo()
02:19 fglock it's a special case - but it's better to handle it after the precedence parser
02:20 fglock or it could be moved to Operator.pm - works too
02:20 clkao not sure what to do - allowing bareword before infix:{'=>'} is something parser should know?
02:22 markstos left perl6
02:23 fglock you can check that foo doesn't have a parameter list, and consider it a bareword (at emit time)
02:24 fglock 'foo()' parses differently from 'foo'
02:24 clkao *nod*
02:24 clkao btw, "sub only_accepts_odds(Num::Odd $odd) { $odd + 1 }" causes infinite loop
02:24 fglock sleep &
02:26 fglock I think the grammar currently doesn't accept '::' in types
02:27 fglock left perl6
02:39 weinig|bbl is now known as weinig|sleep
03:09 svnbot6 r11583 | audreyt++ | * TimToady++, the punny supunman pundit, made a punctional change to
03:09 svnbot6 r11583 | audreyt++ |   the Punopses that changes $object.id to $object.valid, which puns
03:09 svnbot6 r11583 | audreyt++ |   "val id" against "valid instance" to achieve a -Opun effect.
03:09 svnbot6 r11583 | audreyt++ |   Implement this change so we can continue punning for the fnords.  Pun!
03:10 * Eidolos ponders
03:11 vsoni seen audreyt
03:11 jabbot vsoni: audreyt was seen 1 hours 17 minutes 3 seconds ago
03:20 clkao 538 tests pass as of tonight
03:42 stevan clkao: ping
03:45 clkao stevan: pong
03:48 stevan clkao: I had a thought for hooking Data::Bind and Moose type constriants together
03:49 clkao what's your insight about it
03:49 jwang joined perl6
03:49 clkao (i think i am falling asleep very soon)
03:49 stevan would it be possible for Data::Bind::sig to set a bind "hook"?
03:49 stevan clkao: I am just throwing out an idea,.. I am going to sleep soon as well :)
03:49 clkao ;)
03:50 clkao when it actually binds? or checking signature?
03:50 clkao i was to do the type checking in sub::multi
03:50 stevan when you call D::B::->bind(@_) inside the sub
03:50 clkao or something, to use moose typeutil
03:50 stevan so probably bind time?
03:50 wesle1 joined perl6
03:51 clkao and you want to use the hook to decline particular binding? or ?
03:51 * stevan is in the process of source diving Data::Bind :)
03:51 stevan yes, to do a type check on the value being bound basically
03:52 clkao *nod*
03:52 clkao stevan: start with making some todo tests in data::bind?
03:52 stevan okay
03:57 revision17_ is now known as Revision17
04:03 avar joined perl6
04:24 avarab joined perl6
04:41 avar joined perl6
04:59 avarab joined perl6
05:00 unobe_away is now known as unobe
05:11 avarab_ joined perl6
05:21 unobe is now known as unobe_away
05:22 diotalevi joined perl6
05:23 avar joined perl6
05:34 avar joined perl6
06:07 baest joined perl6
06:32 edwardk left perl6
06:40 Aankhen`` joined perl6
07:14 scook0 joined perl6
07:19 pmurias joined perl6
07:19 pmurias hi
07:21 hugues23 joined perl6
07:27 Aankh|Clone joined perl6
07:27 pmurias regex {...}'s in pX are handled as :ratchet'y it's should be mentioned in TODO as a BUG, or something...
07:30 iblechbot joined perl6
07:31 shachaf joined perl6
07:54 baest joined perl6
08:07 Jedai ?eval for (1..5) -> $foo { (('x' x $foo) ~ ';').say }
08:07 evalbot_11579 is now known as evalbot_11583
08:07 evalbot_11583 OUTPUT[x; xx; xxx; xxxx; xxxxx; ] undef
08:18 lisppaste3 joined perl6
08:19 shachaf joined perl6
08:32 penk joined perl6
08:37 mugwump_ joined perl6
08:42 froh-doh joined perl6
08:44 xinming joined perl6
08:55 drrho joined perl6
08:57 hugues23 joined perl6
08:59 Ryugi joined perl6
09:04 revision17_ joined perl6
09:10 froh-doh joined perl6
09:23 froh-doh joined perl6
09:52 broquaint ?eval sub f($x) { return sub {} if $x } f(1)
09:52 evalbot_11583 sub {...}
09:56 broquaint If you add a newline after "sub {}" the parser breaks.
09:59 broquaint In fact, it seems to any case where a braces are proceed by a newline and an if modifier that the parser breaks.
10:00 broquaint Broken down to a pathological case: "{}\n if 1" # b0rk, b0rk, b0rk
10:12 elmex joined perl6
10:36 Aankh|Clone is now known as Aankhen``
10:48 miyagawa joined perl6
11:05 chris2 joined perl6
11:10 gaal What's the purpose of the .valid pun? AFAICT identities don't have much to do with validity, and a user might ewll want to have their own .valid method...
11:14 ludan joined perl6
11:15 pmurias gaal: IMHO VALue ID
11:16 pmurias seen the commit now, stupid me
11:16 jabbot pmurias: I havn't seen the, pmurias
11:21 pmurias gaal: it's propably a typo or a joke
11:27 gaal pmurias: yes, value id indeed, but I'm wondering what use that is
11:28 xerox Where can I read about typing in perl6?
11:38 broquaint There are some bits and pieces in docs/notes/ in the pugs tree such as "model_theory", xerox.
11:41 broquaint I don't think any of that is canonical though.
12:09 bpphillips joined perl6
12:14 wesle1 joined perl6
12:14 robkinyon_ joined perl6
12:16 robkinyon_ is now known as robkinyon
12:19 nothingmuch ughghghgg
12:19 nothingmuch there isn't a single pod escaping module out there
12:20 nothingmuch too make L<$any_text|$uri> be safe
12:21 mauke there is no L<text|uri>, according to my perlpod
12:21 nothingmuch mauke: it's a generally accepted extension
12:21 nothingmuch all the converters do it
12:21 nothingmuch the problem is if you have slashes or pipes in the $text you need to escape it
12:21 nothingmuch angles too
12:21 nothingmuch and, err... other stuff
12:21 nothingmuch but it's nigh impossible to get right
12:22 nothingmuch because it's escaping
12:22 mauke there's an escape syntax?
12:22 nothingmuch E<gt> --> M
12:22 nothingmuch E<gt> --> <
12:22 mauke that's for normal text, not L<>
12:22 nothingmuch that also works inside L<>
12:23 mauke undocumented feature, nice
12:23 nothingmuch otherwise you can't make a link to a section with a slash or a pipe in it's name
12:23 nothingmuch you can use L<"foo/bar">
12:23 nothingmuch but that breaks since you need to escape "
12:23 nothingmuch and that's completely unspecced
12:23 nothingmuch not just kinda unspecced ;-)
12:25 iblechbot joined perl6
12:28 nothingmuch ugh
12:28 nothingmuch why the hell am I even dealing with pod
12:28 * nothingmuch abstracted it out already
12:28 nothingmuch audreyt: yaml loving summary tool! yay!
12:31 kanru joined perl6
12:34 kanru joined perl6
12:40 robkinyon audreyt: I had to "ln -s gcc cc" to install YAML::Syck - is this intentional? (Ubuntu 6)
12:40 audreyt robkinyon: we are at mercy of $Config{cc}
12:41 nothingmuch robkinyon: perl -V | grep cc=
12:41 nothingmuch oh, oops, audreyt is already on it
12:42 * nothingmuch goes back to $stuff
12:42 robkinyon audreyt: Ok
12:44 nothingmuch robkinyon: basically, ubuntu's perl is built wrong
12:44 nothingmuch or ubuntu's gcc is installed wrong
12:45 nothingmuch but perl's build tools assume that $Config{cc} can be used to compile code in a way that is link-compatible with perl itself
12:46 robkinyon nothingmuch: The problem was that gcc wasn't installed
12:46 robkinyon and, when it did install, it installed /usr/bin/gcc-4.0 and none of the standard symlinks (/usr/bin/gcc and /usr/bin/cc)
12:46 nothingmuch oh
12:46 nothingmuch so that's an ubuntu issue
12:46 nothingmuch ask on the irc channel or something
12:47 nothingmuch but yyou may neeed to select the default gcc
12:49 pmurias i have a g++ problem on my gentoo box with Inline::CPP (gxx_personality error)
12:50 xinming joined perl6
12:50 pmurias gcc is a real pain in the ass
12:53 kanru joined perl6
12:53 lollan joined perl6
13:12 frederico joined perl6
13:13 glasser joined perl6
13:13 glasser hmm. can somebody help me understand what the line between class::mop and moose is?
13:14 nothingmuch glasser: sure
13:14 nothingmuch there are three layers
13:14 nothingmuch Class::MOP is the lowest one
13:14 nothingmuch it provides a meta object protocol (hence MOP)
13:14 nothingmuch that lets you introspect and edit classes
13:14 glasser ok
13:14 nothingmuch like Class::MOP::Class->initialize( $class_name )->add_method( sub { ... } );
13:14 nothingmuch then there's Moose::Meta
13:15 nothingmuch it contains subclasses for the various meta objects
13:15 robkinyon glasser: Class::MOP doesn't provide the ability to manage classes from userland
13:15 robkinyon glasser: That's what Moose is for
13:15 nothingmuch (it's own Meta::Class, Meta::Attribute, etc)
13:15 nothingmuch and then Moose provides a sugar layer
13:15 nothingmuch Moose.pm that is
13:15 glasser and the conventions that class::mop uses are things that are relatively uncontroversial across the 18 million class:: foo modules, whereas moose looks to the untrained like it *is* one of those modules?
13:15 nothingmuch so that 'has foo => (....)' will call the right mop methods for you
13:16 nothingmuch and also throws in a 'use metaclass' which gives you $class->meta
13:16 nothingmuch i'm not sure what you mean
13:16 robkinyon glasser: Yes
13:16 robkinyon The idea was that Class::MOP could be used by all the Class:: modules and that Moose IS one of the Class:: modules
13:17 robkinyon Class::MOP is the fundamental infrastructure for a Class::foo module to use in order to get away from the typeglobs
13:17 glasser so the semantics that come in at the Moose::Meta level are more like type constraints etc, whereas at the Class::MOP level it's mostly symbol table munging and so on?
13:17 nothingmuch but class::mop doesn't use various Class::foo things
13:17 robkinyon and to provide some really nice infratsr4ucture
13:17 robkinyon glasser: Essentially, yes
13:17 glasser robkinyon: heh, that is a simpler way of saying what I said :)
13:17 nothingmuch it's a bit more than symbol table munging
13:17 nothingmuch it also defines instance structure, attributes, etc
13:18 glasser ok. where that means "it's gotta be a hashref" and so on?
13:18 nothingmuch yes and no ;-)
13:18 nothingmuch the protocol for that is slot allocation
13:18 nothingmuch the meta instance object is told to allocate slots
13:18 nothingmuch and to create an instance
13:18 nothingmuch and to set/get slot values (possibly inlined)
13:18 nothingmuch by default this abstracts over a hash
13:19 nothingmuch but it's there so that it doesn't matter whether you use hashes or inside outs or arrays or whatever
13:19 glasser ah, the point being that different classes can have overlapping slot names etc?
13:19 glasser oh, that. that's good too :)
13:19 nothingmuch not overlapping slot names (that's a conflict - to allocate the same slot twice)
13:19 nothingmuch private attributes, on the other hand, can add the class they are defined in into the slot name
13:19 stevan unless you namespace the slots :)
13:19 nothingmuch so that it's effectively namespaced
13:19 glasser ah, so if I wanted to have private attributes, that would be at the Moose level (or already is)
13:19 glasser er, Moose::Meta
13:20 stevan glasser: yes
13:20 glasser cool
13:21 glasser does the current implementation do a lot of dynamic dispatch for every accessor get/set, or does it install tiny methods (if you're not doing fancy things)?
13:21 glasser not that accessor speed is usually such a big deal
13:21 stevan glasser: all of the above :)
13:21 stevan Moose will inline methods
13:21 stevan Class::MOP will do lots of stuff at runtime (which is slow)
13:22 stevan but if you make your class immutable (though Class::MOP), then it will inline them for you
13:22 glasser ah, cool.
13:22 nothingmuch stevan: i want to resolve the role/has problem before 0.12
13:22 glasser (by which I assume you mean "say I'm not going to redefine this class anymore", not "no set accessors" right?)
13:22 nothingmuch even if it's a butt ugly special case right now (to iterate all attrs and see what they generate)
13:22 robkinyon glasser: All the Class::MOP stuff is, essentially, turned off when you mark it immutable
13:22 stevan glasser: yes,... you promise to not change the metaclass
13:23 robkinyon Or, rather, marked as read-only
13:23 robkinyon meaning that it can calculate a bunch of crap for you
13:23 stevan yes,.. it is still there,.. but you can only read it
13:23 Qiang joined perl6
13:23 glasser c::m and moose both live in the pugs repo, right?
13:24 stevan glasser: nope
13:24 stevan they are a seperate project
13:24 stevan glasser: we are working on getting them into a more public svn
13:27 scook0_ joined perl6
13:49 pdcawley joined perl6
13:49 ajs Someone named swaroop contacted me over the weekend, looking for pugs commit. Was he all set?
13:54 glasser left perl6
14:07 hexmode joined perl6
14:08 vel joined perl6
14:12 nothingmuch ajs: do you know his email?
14:17 Kattana audreyt: http://www.algorithm.com.au/mt/haskell​/a_history_of_haskell_commentary.html  <<<in case you have not seen it before, it mentions you
14:17 lambdabot Title: Algorithm.com.au: A History of Haskell Commentary
14:20 szbalint ajs: he registered successfully.
14:21 cjeris joined perl6
14:21 fglock joined perl6
14:23 gaal Kattana: I love that referenced paper
14:25 Jedai666 joined perl6
14:27 kanru joined perl6
14:32 Bit-Man joined perl6
14:33 drbean joined perl6
14:33 buu_ joined perl6
14:33 bcorn joined perl6
14:34 buu_ is now known as buu
14:36 szbalint_ joined perl6
14:39 xern_ joined perl6
14:40 avar joined perl6
14:42 elmex joined perl6
14:44 szbalint_ is now known as szbalint
14:44 tup joined perl6
14:52 Jedai666 is now known as Jedai
14:52 spinclad_ joined perl6
14:58 vel joined perl6
15:04 kattana_ joined perl6
15:04 vel joined perl6
15:05 rw-rw-r-1 joined perl6
15:06 avar joined perl6
15:07 Jedai On CPAN the Module::Compile documentation don't show up, it shows Module::Optimize instead (and it don't work..). :(
15:07 tup joined perl6
15:13 nothingmuch Jedai: ?!
15:13 nothingmuch ingy: ping!!!!!!
15:13 nothingmuch silly silly silly
15:13 nothingmuch he confused the pause indexer
15:14 nothingmuch http://search.cpan.org/src/INGY/Modul​e-Compile-0.17/lib/Module/Compile.pm
15:14 nothingmuch sorry =(
15:15 Jedai Yeah, I have it but it could confuse new users.
15:15 Jedai Do you remember what problem had Merlyn with Module::Compile ?
15:18 ivanfrey is now known as Dr_Pi
15:20 fglock Jedai: I found that you need to s/sub pmc_optimize/sub pmc_compile/  - I think that's the problem merlyn had
15:21 pmurias Module::Compile's pod is all wrong
15:21 pmurias fglock: hi
15:21 fglock pmurias: hi
15:21 Jedai The 0.17 got it right
15:22 Jedai hi
15:22 Jedai But the CPAN Module::Compile point to Module::Optimize pod... :/
15:22 pmurias Jedai: hi
15:22 svnbot6 r11584 | fglock++ | v6-alpha-0.010
15:24 pmurias fglock: looked at the p6 emitter, it emittes regex as Ratchety rules, is it ok?
15:25 fglock pmurias: it's not ready yet
15:25 pmurias i understand it means yes
15:25 pmurias eq. no
15:26 fglock it is "ok" for testing the parser, but it needs fixing
15:28 pmurias what I looked at recently was the possiblity of making it emit a nice AST
15:29 fglock pmurias: it would be nice - interoperation with pugs' emitters is a major milestone
15:30 pmurias it's doable, but would require quite a lot of work
15:30 fglock I know :)
15:32 MikeJS joined perl6
15:32 pmurias a nice and easy thing, would be to add regex support to emitter, and use v6 for parts of Pugs::Grammar::*
15:34 frederico joined perl6
15:36 cjeris Right or wrong? my $a = [1, 2] and my $a = (1, 2) are equivalent, because [1, 2] evaluates to an array reference to an array containing 1 then 2, and (1, 2) evaluates to an array containing 1 then 2, which in scalar context yields a reference to itself.
15:36 fglock pmurias: sure. but I'd like to change v6 grammar to use token instead of regex, before rewriting the grammar to perl6 - doing the change after the bootstrap would be more difficult
15:38 pmurias why would it be more difficult then
15:38 pmurias ?
15:38 fglock cjeris: right
15:39 fglock pmurias: because there are some bugs in PCR that need to be fixed; it is easier to work around these bugs in p5 land :(
15:40 pmurias horrid :(
15:40 fglock I'm working on the fixes in pX/fglock
15:40 cjeris fglock: ok, thanks!
15:42 fglock pmurias: it's basically fixed, but now I've got to re-bootstrap the PCR grammar
15:43 gugod_ joined perl6
15:43 fglock lunch &
15:44 pmurias the other major source of cruft is the __PACKAGE__-->add_rule(...)
15:44 pmurias fglock: till later
15:46 pmurias ?eval 1 infix:<+> 2
15:46 evalbot_11583 is now known as evalbot_11584
15:46 evalbot_11584 Error:  unexpected "i" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
15:46 Jedai ? infix:<+> 1 2
15:46 Jedai ?eval infix:<+> 1 2
15:46 evalbot_11584 Error:  unexpected "2" expecting comment, operator, ":", ",", postfix conditional, postfix loop, postfix iteration, ";" or end of input
15:46 weinig joined perl6
15:46 Jedai ?eval + 1 2
15:47 evalbot_11584 Error:  unexpected "2" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
15:47 Jedai ?eval (+) 1 2
15:47 evalbot_11584 Error:  unexpected ")" expecting term
15:47 Jedai ?eval `+` 1 2
15:47 evalbot_11584 Error:  unexpected "`" expecting program
15:47 cjeris ?eval infix:<+>(1, 2)
15:47 evalbot_11584 3
15:47 Jedai Aww... :)
15:47 cjeris just wondering whether I had the right idea :)
15:47 Jedai Too much Haskell
15:48 cjeris (+) 1 2 is ocaml isn't it?
15:48 Jedai ?eval infix:<+> 1, 2
15:48 evalbot_11584 3
15:48 Jedai Haskell too
15:49 Jedai Haskell and OCaml aren't that different (say the guy who started learning Haskell two days ago...)
15:50 Jedai ?eval (+) 1,2
15:50 evalbot_11584 Error:  unexpected ")" expecting term
15:51 Jedai ?eval infix:<+> 1 : 2
15:51 evalbot_11584 3
15:51 cjeris let n = ref 0 in while (!n < 10) do printf "%d\n", !n; n := !n + 1 done
15:51 cjeris :)
15:51 cjeris don't know how to phrase that with a monad yet
15:51 Jedai Me neither ! :D
15:52 Jedai I'm learning though
15:52 xerox printN n xs = sequence $ replicateM n (print xs)
15:52 xerox printN :: (Show a) => Int -> a -> IO ()
15:53 xerox Sorry, use sequence_, not sequence.
15:53 cjeris where is replicateM ?
15:53 xerox Control.Monad
15:53 xerox Use lambdabot for questions like this.
15:53 xerox ?index replicateM
15:53 lambdabot Control.Monad, Control.Monad.Reader, Control.Monad.Writer, Control.Monad.State, Control.Monad.RWS, Control.Monad.Identity, Control.Monad.Cont, Control.Monad.Error, Control.Monad.List
15:53 xerox ?docs Control.Monad
15:53 lambdabot http://haskell.org/ghc/docs/latest/ht​ml/libraries/base/Control-Monad.html
15:54 xerox ?fptools Control.Monad
15:54 lambdabot http://darcs.haskell.org/pac​kages/base/Control/Monad.hs
15:54 cjeris awesome! do you have time for a couple more idiot questions?
15:54 Bit-Man_ joined perl6
15:54 xerox Sure man!
15:54 Jedai Cool ! Is there a reference of the bots functions somewhere ?
15:54 cjeris 1) is there any place that tells which parts of the ghc library to worry about learning first?
15:55 xerox Jedai: /MSG lambdabot ?list
15:55 xerox 1) Read the Prelude.
15:55 cjeris 2) is $ precisely equivalent to avoiding parentheses?  (sequence $ replicateM n (print xs) ?=== sequence (replicateM n (print xs)))
15:55 xerox  1.a) Try to understand the parts of the Prelude that interest you.
15:55 xerox  1.b) Re-read the Prelude.
15:55 Jedai thanks ^^
15:55 xerox 2) Yes, it is.
15:56 cjeris 3) if I have a VList, how do I construct a fresh reference to it?  (I'm trying to modify Pugs.Prim.List to distribute hyperoperators into lists)
15:56 xerox What is a VList?
15:56 nothingmuch_ joined perl6
15:57 audreyt cjeris: direct translation
15:57 audreyt until (== 10) (\x -> show x `trace` x+1) 0
15:57 audreyt though lambdafolks is going to lynch me for this
15:57 * xerox growls
15:57 xerox O_O
15:57 xerox What are you teaching!
15:57 audreyt I'm teaching that "trace" is a refreshing desert in the oasis of referential transparency
15:58 * xerox thinks
15:58 * xerox is illuminated
15:58 audreyt :D
15:58 audreyt cjeris: a fresh reference?
15:58 audreyt cjeris: if you want a mutal reference, use newTVar
15:58 audreyt but I'm not sure which part are you modifyting
15:59 cjeris I think it _should_ be a mutable reference.  Let me paste and show what I got, just a sec.
15:59 * xerox is up for more Haskell questions, if anybody needs
15:59 justatheory joined perl6
16:00 pasteling0 "cjeris" at 140.247.124.140 pasted "hyperop distribution in Pugs.Prim.List" (25 lines, 691B) at http://sial.org/pbot/18435
16:00 ingy morning
16:01 audreyt ingy: hi
16:01 ingy hi audreyt!
16:02 pasteling0 "cjeris" at 140.247.124.140 pasted ":E results from the above" (74 lines, 1.8K) at http://sial.org/pbot/18436
16:02 cjeris The result is wrong, correct?  The second element of the resulting array should be a reference, like in the original value.
16:03 avarab joined perl6
16:03 jkanter joined perl6
16:04 audreyt indeed
16:04 audreyt because in
16:04 audreyt        | VRef x' <- x
16:04 audreyt        = doHyper =<< readRef x'
16:04 audreyt readRef already ditched the refhood
16:04 audreyt and changed it into a rvalue
16:05 audreyt ?eval -<< [1,2,3]
16:05 evalbot_11584 (-1, -2, -3)
16:05 audreyt as you can see, it forces rvalueness
16:05 audreyt instead of preserving the container
16:05 audreyt so your patch is correct
16:05 audreyt it's the two lines above it that are questionable
16:05 audreyt please commit
16:05 audreyt (and change postfix/infix while you are at it)
16:05 cjeris ok, will do!
16:06 audreyt cjeris++
16:06 Jedai ?eval -<< [1,[2,3]]
16:06 evalbot_11584 (-1, -2)
16:06 audreyt now, to redistribute over it
16:06 audreyt we need something like modifyRef
16:06 audreyt so you can say
16:07 audreyt modifyRef x' doHyper
16:07 pmurias ?docs trace
16:07 lambdabot trace not available
16:07 pmurias ?index trace
16:07 lambdabot Debug.Trace
16:07 pmurias ?docs Debug.Trace
16:07 lambdabot http://haskell.org/ghc/docs/latest/h​tml/libraries/base/Debug-Trace.html
16:08 audreyt (bbiab)
16:08 robkinyon seen alias
16:08 jabbot robkinyon: I havn't seen alias, robkinyon
16:15 penk joined perl6
16:15 spinclad_ is now known as spinclad
16:15 pmurias ?index unsafeIO
16:15 lambdabot bzzt
16:15 pmurias ?index unsafeIo
16:15 lambdabot bzzt
16:16 Jedai ??
16:18 cjeris xerox: belated thanks!
16:20 TimToady ?ev6l say "hello v6evalbot someday?"
16:21 FurnaceBoy joined perl6
16:22 TimToady course, loading in 100megs of compiler every time would be suboptimal...
16:22 gaal pmurias: looking for unsafePerformIO ?
16:22 TimToady took me 9 minutes to compile 08-test.t the first time last night...
16:23 TimToady by the way, seems like there should be a way to force recompiles based on whether the compiler changes as well as whether the original source changed.
16:24 TimToady on the other hand, in the current state of development, that would be akin to simply turning off the *c caching...
16:25 gaal heh
16:25 gaal TimToady: I was wondering about .valid... is it just cute or is there a link between identity and validity that I was missing?
16:25 gaal (I understand it's a pun on value identity; just don't see why it should be)
16:26 pmurias gaal: thanks
16:26 TimToady last night I made the mistake of installing PCP before running "make test", so the installed prelude didn't have its .pmc.  Make ./foo in my home directory always run slow...
16:26 * gaal contemplates .superego
16:28 TimToady a value type used to be defined as an object type that sets .id appropriately so that uniqueness is enforced on the contents of the object rather than its reference.
16:28 TimToady that is the sense in which it is a value id.
16:29 Daveman Hello, TimToady
16:29 TimToady to the first approximation, value types return their contents as their own id
16:29 gaal yes...
16:29 gaal pmurias: see also http://haskell.org/haskellwiki/GHC/FAQ#​When_is_it_safe_to_use_unsafePerformIO.3F
16:29 lambdabot Title: GHC/FAQ - HaskellWiki
16:30 TimToady howdy Daveman
16:30 gaal TimToady: but is it worth possible clashes with user defined slots called "valid"?
16:30 TimToady much less likely than .id, I think
16:31 TimToady and easy to avoid with .is_valid or some such.
16:31 gaal ".valid?" :P
16:31 TimToady meh, to quote nothingmuch...
16:32 gaal pmurias: actually there was another answer to that FAQ that was better. can't find it now, but it had to do with NOINLINE and stuff.
16:32 nothingmuch_ ?!
16:32 lambdabot Maybe you meant: . v
16:32 nothingmuch_ how am *I* responsible for that?
16:32 gaal lol
16:32 nothingmuch_ is now known as nothingmuch
16:32 audreyt 18:30 < audreyt> is there a CPAN module that uses overload instead of tie
16:32 audreyt 18:31 < audreyt> to implement lazily-calculated values?
16:32 audreyt 18:31 < audreyt> Data::Lazy uses tie, Contextual::Return uses lvalue sub
16:32 audreyt 18:31 < audreyt> is there an overload-based implementation?
16:33 TimToady you're not--you're irresponsible for it.
16:33 audreyt (trying to add thunks to jifty+moose)
16:33 nothingmuch audreyt: for any data? hmm....
16:33 gaal irregardlessic of nothingmuch's 'sponsibility...
16:34 vel joined perl6
16:34 audreyt nothingmuch: yeah. I see a general use for that
16:34 gaal what's wrong with just, ".id"?
16:34 * audreyt ponders Data::Thunk
16:34 nothingmuch gaal: i think that it's because not every object wants to have an .id
16:34 nothingmuch and the name sort of assumes it does
16:34 audreyt gaal: ruby people learned that in MVC, the framework wants the .id
16:34 audreyt and the language shouldn't grab that for nefarious purposes
16:35 gaal I... don't see how renaming it to .valid will change that :/
16:35 audreyt it's more common for DBs to have columnes named "id" than "valid"
16:35 gaal aha!
16:35 TimToady valid is spelled "NOT NULL" or some such.
16:36 gaal the coin drops, thanks audreyt :)
16:36 pmurias isn't .valid a pretty evil attribiute, that should have a less nice name like valueid?
16:36 TimToady yes, but so is grabbing .meta
16:36 gaal audreyt: you're giving Perl a bad name in golf by writing all those moudles in the Data:: namespace. In haskell it's one quarter the dots; "Data."
16:37 TimToady and the fact is that we are also defining it to mean "is valid"
16:37 TimToady as in "not a prototype or undef"
16:37 TimToady the only difference between it and .defined at the moment is that .valid returns an id rather than a bool.
16:38 gaal well, we can have .defined return the ID.
16:38 TimToady and an id could be rather spectacularly large.
16:38 gaal ...or not in boolean context :)
16:38 audreyt having .defined returning the id is maybe a good idea.
16:38 audreyt $obj.def
16:38 TimToady only if it can be generated lazily on demand
16:38 audreyt $obj.defun # not this
16:39 gaal keep the fun in
16:39 * gaal opens pundora's box
16:39 audreyt if .defined -> $id { ... }
16:39 gugod_ is now known as gugod
16:40 gaal what's the context of meth in    if .meth { ... }?
16:40 gaal (no ->)
16:40 gaal (no arg)
16:41 TimToady syntax error, two adjacent terms
16:41 TimToady or would be, if if weren't if
16:41 gaal okay, what's the context in if .meth -> { ... }
16:41 TimToady same thing
16:42 TimToady both {...} and ->{...} know when a statment wants 'em
16:42 TimToady so "if .meth { ... }" works only if "if" is at statement expectation.
16:43 TimToady it would be a syntax error where a statement modifier is expected.
16:44 gaal to disambiguate there what would be needed? .meth() ? (.meth) ?
16:44 rlb3 joined perl6
16:45 TimToady disambiguate to mean what?
16:45 TimToady as statement works already
16:46 TimToady as modifier would still be two terms in a row.
16:47 audreyt gaal: TimToady is talking about postfix if
16:47 svnbot6 r11585 | cjeris++ | Make hyperops distribute into lists, sort of: they propagate down into lists now, but references
16:47 svnbot6 r11585 | cjeris++ | are forcibly dereferenced, which is wrong.
16:47 gaal er. okay.  I'm just wondering if context in audreyt's .defined example above is determined by the presence of an explicit arg to the block
16:48 gaal does $_ get bound implicitly in if? (I'm hoping it isn't, vaguely recall a discussion)
16:48 audreyt it's not
16:48 gaal okay
16:49 TimToady no, it's explicitly bound to .meth because you it was where a term was expected and there's no object to the left of the .
16:49 TimToady s/you//
16:50 TimToady $x = .meth;  means $x = $_.meth always.
16:51 gaal thanks, got it.
16:51 broquaint How do I modify an array in place with grep?
16:52 broquaint It used to be @foo=.grep:{/test/};
16:52 TimToady audreyt: I was wondering if evalbot should translate newlines to ␤ instead of space.
16:52 broquaint s/=./.=/
16:54 SamB TimToady: how did you *do* that?
16:54 svnbot6 r11586 | fglock++ | added pX/fglock/Pugs-Compiler-Rule-Bootstrap
16:54 SamB I thought ␤ was a control character?
16:54 TimToady I said "uni newline" to find the character using my uni program.
16:54 SamB oh, I see...
16:54 TimToady then I cut and pasted it.
16:55 SamB U+2424 SYMBOL FOR NEWLINE
16:55 TimToady that's the one.
16:55 SamB it looked just like the glyph for newline in one font I've seen...
16:55 TimToady In my font it's a high N and a low L
16:56 TimToady that's what it's supposed to look like, methinks.
16:56 SamB something like that
16:56 fglock joined perl6
17:02 shachaf joined perl6
17:03 broquaint ?eval my @a = <foo bar baz>; @a = @a.grep:{ /b/ }; @a.perl
17:03 evalbot_11584 is now known as evalbot_11588
17:03 evalbot_11588 "[\"foo\", \"bar\", \"baz\"]"
17:04 buetow joined perl6
17:04 broquaint ?eval my @a = <foo 123 bar 456 baz>; @a = @a.grep{/\w/}; @a
17:04 evalbot_11588 Error: Cannot cast from VList [] to Pugs.AST.Internals.VCode (VCode)
17:04 broquaint ?eval my @a = <foo 123 bar 456 baz>; @a = @a.grep:{/\w/}; @a
17:04 evalbot_11588 ["foo", "123", "bar", "456", "baz"]
17:04 broquaint Hrm.
17:06 broquaint ?eval my @a = <foo 123 bar 456 baz>; @a=.grep:{/\w/}
17:06 evalbot_11588 ["perl6",]
17:06 broquaint ?eval my @a = <foo 123 bar 456 baz>; @a.=grep:{/\w/}
17:06 evalbot_11588 Error:  unexpected "=" expecting ".", subroutine name, array subscript, hash subscript or code subscript
17:06 shachaf joined perl6
17:08 TimToady ?eval $_
17:08 evalbot_11588 \"perl6"
17:09 TimToady ?eval .grep(/./)
17:09 evalbot_11588 Error: Cannot cast from VList [VRule (MkRulePGE {rxRule = ".", rxGlobal = False, rxStringify = False, rxAdverbs = VUndef})] to Pugs.AST.Internals.VCode (VCode)
17:09 broquaint I got this which was more amusing: *** Undeclared variable: "$module" etc
17:09 TimToady ?eval .grep({/./})
17:09 evalbot_11588 ("perl6",)
17:10 * broquaint goes to find what .= has changed to ...
17:11 TimToady do you mean string concat or mutating method?
17:12 TimToady .= should currently be a mutating method, and I say your error is a bug.
17:12 broquaint Mutating, and that earlier code was definitely buggy (just wanted to see if I could get the same error).
17:13 broquaint But shouldn't this work (as it used to):
17:13 broquaint ?eval my @a = <foo 123 bar 456 baz>; @a.=grep:{/\w/}; @a
17:13 evalbot_11588 Error:  unexpected "=" expecting ".", subroutine name, array subscript, hash subscript or code subscript
17:13 TimToady ?eval my @a = <foo 123 bar 456 baz>; @a .= grep:{/\w/}
17:13 evalbot_11588 ["foo", "123", "bar", "456", "baz"]
17:13 TimToady ?eval my @a = <foo 123 bar 456 baz>; @a .= grep:{/\d/}
17:13 evalbot_11588 ["foo", "123", "bar", "456", "baz"]
17:13 TimToady er...
17:13 broquaint Whitespace, eh? I missed that.
17:14 TimToady both forms should work.
17:14 TimToady but it looks like the grep on \d didn't change anything.
17:14 broquaint Hrm, methinks pugs could do with a couple of extra tests.
17:14 TimToady ?eval my @a = <foo 123 bar 456 baz>; @a .= grep:{/\d/}; @a
17:14 evalbot_11588 ["foo", "123", "bar", "456", "baz"]
17:15 audreyt good, overload is 76%+ faster than tie.
17:18 TimToady that's not saying much.  :)
17:18 ruoso joined perl6
17:19 TimToady almost everything is faster than tie...
17:19 gaal TimToady: I'm engaging in some espionage, does your "uni" have more features than this?
17:19 gaal perl -CO -e 'my $s = "@ARGV"; @ARGV = "/usr/lib/perl5/Unicode/CharName.pm"; my @d = <>; shift @d until $d[0] eq "__DATA__\n"; for (@d) { next unless /$s/io; /(\S+)(.*)/; printf "$1 $2 [%s]\n", chr hex $1 } ' alef
17:19 pmurias ruoso: hi
17:21 svnbot6 r11590 | broquaint++ | * Added some tests for adverbial modification with grep (I ran into this
17:21 svnbot6 r11590 | broquaint++ | issue when updating the hop6 examples).
17:22 pasteling0 "TimToadyu" at 71.139.18.230 pasted "uni" (20 lines, 450B) at http://sial.org/pbot/18440
17:23 gaal TimToady: thanks :)
17:23 weinig is now known as weinig|working
17:24 TimToady the main thing it does is not hardwire the path name.
17:24 gaal yeah :)
17:24 TimToady by the do-File sneakiness.
17:24 gaal (do-File)++
17:24 hcarty joined perl6
17:25 ruoso hi pmichaud
17:25 ruoso hi pmurias
17:25 gaal and is bidirectional
17:25 TimToady that too
17:26 TimToady and deals with badly encoded utf8
17:27 * gaal merrily pastes a copy of TimToady's script in ~/bin
17:28 TimToady except it should probably throw a ^ on the front of some of those patterns.
17:28 gaal putting the character in []s is useful for bidi terminals
17:28 gaal and to see more explicitly if your font is missing glyphs
17:29 TimToady I can see that.
17:29 TimToady though in some ways easier to copy-n-paste without other printables near it
17:30 gaal tru dat.
17:31 gaal (sneaky hex usage)++
17:36 TimToady shower &
17:39 daxim to which value do I have to set the UNICONF environment variable?
17:44 audreyt Data::Thunk 0.01 on CPAN
17:48 obra . o O { Does Jifty depend on it? }
17:49 audreyt liz++ # Data::Reuse
17:49 audreyt obra: if you want the lazy{} semantics, then yes
17:50 obra :)
17:57 audreyt ergonomics question
17:57 audreyt currently
17:58 audreyt in pugs
17:58 audreyt my $x = lazy {...};
17:58 audreyt evaluates at most once
17:58 audreyt that matches the call-by-need strategy
17:58 audreyt what's a good name for teh call-by-name
17:58 audreyt i.e. evaluate each time when it's demenaded
17:58 audreyt strategy?
17:59 audreyt my $x = later {...}; # this?
17:59 audreyt my $x = delay {...}; # this?
17:59 audreyt but both means more compute-once
17:59 gaal defer?
17:59 gaal slothlike
18:00 audreyt I like "defer"
18:01 audreyt defer it is then
18:01 audreyt gaal++
18:01 * audreyt deletes Data::Thunk and uploads Data::Defer
18:03 gaal Data::NameDropping
18:04 gaal dinner &
18:09 svnbot6 r11591 | fglock++ | pX/fglock/Pugs-Compiler-Rule - better separation of compiler and runtime
18:16 audreyt ...and it's know Scalar::Defer
18:16 audreyt naming takes more time than coding up tests+doc+code
18:18 avarab is now known as avar
18:19 evalbot_11588 is now known as evalbot_11592
18:20 fglock_ joined perl6
18:20 spinclad ?eval 1.infix:<+>(2)
18:20 evalbot_11592 3
18:20 spinclad ?eval "Hi, all".say
18:20 evalbot_11592 OUTPUT[Hi, all ] Bool::True
18:21 TimToady ?eval "␤".say
18:21 evalbot_11592 OUTPUT[$ ] Bool::True
18:21 TimToady $?
18:21 TimToady safe_print has strange ideas...
18:25 Daveman hmm
18:29 TimToady $.➥(:job)
18:33 audreyt fglock_: I'll go ahead and change ::Match to allow $$match
18:33 audreyt to agree with the spec
18:33 audreyt $match->() will be preserved (for a while anyway)
18:37 fglock audreyt: you are changing Pugs::Runtime::Rule?
18:37 audreyt ::Match
18:38 fglock does it make sense if $match were an iterator? I think it may make some operations easier
18:38 audreyt sure, maybe overload <> as well
18:39 fglock $match.next would be the next match in the same string
18:40 fglock audreyt: I'm rewriting PCR internals in pX/fglock
18:41 typester joined perl6
18:41 audreyt oh.
18:41 stevan ah.
18:41 audreyt heh :)
18:41 stevan :P
18:41 stevan Data::Thunk??
18:41 stevan looks nice
18:42 audreyt now Scalar::Defer
18:42 audreyt plays well with moose
18:42 stevan even better :)
18:42 stevan M????????se!!
18:42 stevan audreyt: I was pondering a sugar layer for Sub::Multi last night
18:43 stevan and I talked to clkao about possibly having a bind-time a check-time which could check against Moose Type constraints
18:43 stevan s// hook/
18:44 stevan whoops,.. bad regex,..
18:44 stevan you get the idea though I think
18:44 stevan I was wondering if you had any existing thoughts/plans on this yet
18:50 audreyt well, there's typesafety.pm
18:50 svnbot6 r11593 | audreyt++ | * Pugs::Runtime::Match - change its underlying representation to support
18:50 svnbot6 r11593 | audreyt++ |   $$match to return the capture, which is closer to the spec.
18:51 audreyt I think the sugar question is how to attach sig to subs
18:51 audreyt seems to be either optree rewriting to support full
18:51 audreyt sub f (Type $x) {}
18:51 audreyt or go with
18:51 audreyt sub f :sig(Type $x) {}
18:51 audreyt what should CHECK-time constraints check do?
18:54 audreyt fglock: my r11593 patches cleanly against your branch
18:54 audreyt fglock: should I commit?
18:54 fglock audreyt: sure
18:55 audreyt done
18:55 fglock Pugs::Runtime::Match::Ratchet too
18:58 stevan typesafety.pm??
18:58 amnesiac_ joined perl6
18:58 audreyt fglock: havn't got around to it yet
18:58 audreyt fglock: because the emitter uses direct bless()
18:58 audreyt I guess we can retain the bless if we bless
18:58 audreyt sub{}
18:58 audreyt instead of
18:58 audreyt \
18:58 audreyt stevan: see CPAN
18:59 amnesiac_ is now known as amnesiac
18:59 stevan yes,.. looking
18:59 audreyt and switch &{} versus ${}
18:59 svnbot6 r11594 | audreyt++ | * bring the $$match fix to fglock's branch.
18:59 svnbot6 r11594 | audreyt++ |   $match->data is now the accessor into underlying structure
18:59 audreyt but I think a ->new call is maybe more regularlized?
19:00 fglock audreyt: ok, I'll change to new
19:00 audreyt cool, then I'll wait for that change before changing representation
19:00 audreyt (or you can look at ::Match and do the change, too)
19:00 fglock audreyt: please only change Match::Ratchet - Match.pm is going away
19:00 audreyt ahh
19:00 audreyt heh
19:00 audreyt okay :)
19:00 audreyt then please renormalize to ->new first
19:00 audreyt and then I'll look at ::Ratchet
19:01 stevan audreyt: ok,.... typesafety looks kind of scary,.. but very interesting
19:01 audreyt stevan: need to extract out only the part that deals with signature
19:01 audreyt and bridge it with our own TypeConstraint
19:01 stevan audreyt: well I was thinking purely of sugar over the Data::Bind version
19:01 audreyt *nod*
19:02 stevan let me nopaste the examples I sketched out
19:02 audreyt Attribute::Handlers is maybe saner
19:02 audreyt ok
19:02 pasteling0 "stevan" at 71.234.68.135 pasted "Data::Bind->sig sugar" (52 lines, 1.6K) at http://sial.org/pbot/18445
19:02 stevan personally I would like to avoid attributes,... they tend to need CHECK/INIT
19:03 stevan which is problematic for mod_perl,.. which is what all my $work is under
19:03 stevan the one part which I didnt show here,.. is the way Data::Bind subs need to be called
19:03 stevan the [ $positonal ], { named => ... } stuff
19:04 audreyt nod
19:04 audreyt [ \1, \2, \3 ]
19:04 audreyt can be written
19:04 audreyt [ \(1, 2, 3) ]
19:04 audreyt so that's a bit better
19:04 stevan why does it need to be references?
19:04 audreyt named is still bad though
19:04 audreyt because of "is rw" params
19:04 stevan ah
19:05 audreyt stevan: looks very nice
19:05 stevan maybe a bind() sugar could deal with that
19:05 audreyt yeah
19:05 stevan cool :)
19:05 audreyt stevan++ # sweet sugar moose
19:06 stevan I promised clkao some failing tests
19:06 stevan for the bind/check-time hook
19:06 stevan ch?c?late m??se :P
19:08 cjeris where can I find the definition of the Each role?
19:08 audreyt ideally, docs/Perl6/API/Each
19:08 audreyt .po
19:08 audreyt .pod
19:09 audreyt practically, you'd have to write it yourself... or ask p6l so p6l can write it out
19:09 cjeris the particular question I have is whether objects that 'does Each' are required to be constructible from their constituents.
19:10 cjeris S03's definition of hyperoperators seems to require that: Seq(3,8,[2,Seq(9,3)],8) >>-<< (1,1,2,1); # Seq(2,7,[0,Seq(7,1)],7)
19:10 ruoso fglock, I'm getting "Too many arguments for Pugs::Runtime::Perl6::Inf" when running the tests...
19:10 ruoso fglock, is it some known situation?
19:11 larsen joined perl6
19:11 cjeris But then it seems (naively) that you can't implement Each for something like database rowsets.
19:11 audreyt cjeris: I understand. it's something like http://cvs.haskell.org/Hugs/pages/l​ibraries/base/Data-Traversable.html
19:11 audreyt but it's not been defined yet
19:12 fglock ruoso: no, I haven't seen this error - it is a signature mismatch, detected by Data::Bind - maybe recompile the latest Data::Bind?
19:12 ruoso ok... I'll try that...
19:13 ruoso fglock, should I use the svn version or the CPAN version? for Data::Bind, I mean...
19:13 * cjeris suffers cranial detonation
19:14 fglock ruoso: svn version, if you are using svn v6.pm
19:14 ruoso ok
19:14 cjeris ok, let's see if I can put together an intelligible question for the list.
19:14 ruoso fglock, nops... same error...
19:15 audreyt stevan: API q
19:15 audreyt stevan: for moose typeconstraint Str
19:15 stevan audreyt: API a
19:15 audreyt currently an object with overloaded "" won't pass.
19:15 audreyt two solutions
19:15 audreyt Scalar::Defer can bless to package 0
19:15 audreyt or, we can code for Overloaded.
19:15 silug joined perl6
19:16 stevan is the Scalar::Defer object blessed into anything already?
19:16 audreyt currently into Scalar::Defer
19:16 fglock ruoso: ' perl -Ilib lib/v6.pm -e " Inf.say " '  works for me - I'll update my Data::Bind now
19:16 audreyt I wouldn't mind blessing into 0
19:17 ruoso fglock, actually... perl -cw Perl6Prelude.pmc fails with this error
19:17 ruoso it's not the test itself
19:17 stevan audreyt: maybe a coercion from type constraint 'Scalar::Defer' to Str would work?
19:18 audreyt er no
19:18 stevan ok
19:18 stevan just a thought :)
19:18 audreyt the entire point is that the attr is deferred :)
19:18 gaal wow blessing to 0 is a dirty trick :)
19:18 audreyt gaal: it fools even S::Util::blessed
19:18 gaal really? isn't that in XS?
19:19 audreyt it returns the package name
19:19 audreyt ;)
19:19 gaal heh.
19:19 gaal bool::true but bool::false
19:19 stevan audreyt: I will leave the descision up to you,.. I think handling overloads in the type constraints is probably a good idea, but its maybe a lot of work (for which I dont currently have tuits)
19:20 stevan however you do have a commit bit ;)
19:20 svnbot6 r11595 | fglock++ | pX/fglock/PCR - s/bless/new/
19:20 fglock ruoso: try rm Perl6Prelude.pmc ?
19:21 ruoso ok
19:21 stevan audreyt: honestly, I feel like I have reached the end of my useful knowledge with the Type Constraints,.. I need input/help from someone more knowledgable on the subject
19:21 ruoso btw... the installation of Pugs::Compiler::Rule tries to touch the file
19:21 stevan or a long vacation, during which I can read TaPL again
19:21 ruoso it should do that during build, shouldn't it
19:21 ruoso ?
19:22 ruoso I mean, my $HOME is under NFS with root_squash...
19:22 ruoso so, root can't touch my home
19:23 fglock yes, the pmc must have a newer date than the pm file
19:23 audreyt stevan: ok. we need support for all C::MM::Pure semantics
19:23 audreyt stevan: which inclues negated and intersection types
19:23 audreyt stevan: "not"/"and" in addition to "or"
19:23 ruoso fglock, but it should be done during build, not during install
19:24 ruoso as the user is supposed to run "install" as root...
19:24 ruoso and in my case, root can't touch my home
19:24 ruoso but besides that...
19:25 fglock ruoso: it should 'touch' only when you run Makefile.PL
19:25 stevan audreyt: agreed
19:25 ruoso fglock, nops...
19:25 ruoso make install touchs it
19:32 audreyt stevan: I think I'll simply make overloaded values bypass constraints for now
19:32 audreyt i.e. if something overloads @{}, it might as well be an ArrayRef
19:33 fglock ruoso: it may be a Module::Compile problem - maybe discuss it with ingy?
19:33 audreyt it's a Module::Install::Compile thing I think
19:34 audreyt or rather Module::Install::PMC
19:34 audreyt ruoso: it's touched in config stage
19:34 audreyt not sure if that also gets run on install
19:34 audreyt shouldn't, though.
19:34 ingy hola
19:34 ingy :)
19:34 amnesiac que onda
19:34 amnesiac ingy: qué cuentas?
19:34 amnesiac :P
19:35 ingy amnesiac: su madre!
19:35 amnesiac hahahaha
19:35 amnesiac no no...
19:35 amnesiac qué cuentas == what's up
19:35 amnesiac :P
19:35 ruoso audreyt, it's really called when installing...
19:36 ingy my assertion stands then ;)
19:36 * ingy ducks
19:36 * amnesiac shakes ingy
19:36 * ruoso just made clean, perl Makefile.PL; make; make test; su -c 'make install'
19:36 ingy ruoso: do you have some patch for me?
19:37 ruoso not yet...
19:38 ruoso still trying to understand...
19:41 ruoso wow... running make -d install is pretty ugly
19:42 gosha joined perl6
19:43 silug does anyone know of a clear license statement for the docs included with Perl6::Bible?
19:44 gosha hello what's the easiest way in perl to open an image given a URL. e.g. something like: open(IMAGE, 'http://perl.ftw.com/perl/is/greater/than/php.jpg')
19:44 ruoso wow
19:44 ruoso if I remove Makefile.old it just works
19:45 ruoso nops nops
19:45 wolverian gosha, possibly IO::All or LWP::Simple. anyway, you probably want #perl, as this channel is for the development of the next version of perl.
19:45 ruoso wrong bet
19:45 gosha wolverian: oops sorry. but thanks!
19:46 gosha I'll ask there as well :)
19:46 * ruoso forgot to 2>&1
19:49 wolverian gosha, no problem :)
19:49 ruoso ingy, do you have a clue for me?
19:49 salty-horse joined perl6
19:51 salty-horse pugscode.org links to the pugs::hack doc, and it's gone: http://search.cpan.org/dist/​Perl6-Pugs/lib/pugs/hack.pod
19:51 fglock ingy: in M::C, the example only works if I change pmc_optimize() to pmc_compile()
19:52 cmatei joined perl6
19:52 undrdawg joined perl6
19:56 gosha left perl6
20:03 ruoso ingy, i give up...
20:03 ruoso :)
20:04 audreyt salty-horse: fixed
20:04 audreyt ruoso: the thing is that we need a variant of TOUCH
20:04 fglock audreyt: I made the conversion in Match::Ratchet
20:04 audreyt that does not get run if it doesn't need touching
20:05 audreyt ruoso: that is, if .pmc is already newer than .pm
20:05 audreyt then don't touch it again
20:05 ruoso audreyt, can't Makefile take care of that itself?
20:05 audreyt $(TOUCH_TO_MAKE_NEWER) foo.pmc foo.pm
20:05 svnbot6 r11597 | fglock++ | pX/fglock/PCR - converted Match/Ratchet.pm to inside-out
20:05 salty-horse audreyt, still nothing. is it the same url?
20:05 audreyt salty-horse: pugscode.org fixed
20:05 audreyt fglock: yay!
20:06 ruoso audreyt, I mean, in debian we usually create a .stamp file to control that
20:06 audreyt ruoso: I guess you can make the .pmc file depend on .pm
20:06 audreyt with a rule of simply TOUCH
20:06 ruoso yes, that works too...
20:06 audreyt and make the config target depend on the .pmc files
20:06 audreyt I think that's cleanest
20:06 audreyt code it up? :) it's in http://search.cpan.org/src/INGY/Module-​Compile-0.17/lib/Module/Install/PMC.pm
20:07 * ruoso taking a closer look...
20:08 lumi joined perl6
20:12 nothingmuch clkao: i'll add $1 to my paypal dept if you give App::CLI some docs
20:12 ingy nothingmuch!!!!!!
20:12 nothingmuch ingy: !!!!!!!!!!
20:12 ingy :B
20:13 ingy =:B
20:13 nothingmuch <3
20:14 salty-horse for some time now i've been getting an error while building pugs using a clean svn checkout and running "perl Makefile.PL; make unoptimized: Cannot import `Data.ByteString': it was found in multiple packages: pugs-fps-0.7 fps-0.7. (imported from src/Pugs/AST/Internals/Instances.hs). i guess i'm doing something wrong, since it's unlikely the tree is broken for so long.
20:14 svnbot6 r11598 | fglock++ | pX/fglock/PCR - Runtime/Match is used by the compiler; Runtime/Match/Ratchet is used by the runtime
20:15 audreyt salty-horse: please run a
20:16 audreyt ghc-pkg --user unregister fps
20:16 audreyt to resolve it
20:17 FurnaceBoy joined perl6
20:17 audreyt adding it to Makefile.PL
20:21 salty-horse audreyt, i'm still getting this when running Makefile.PL: Could not find module `Data.ByteString': use -v to see a list of the files searched for  (imported from pugs-tmp-16465.hs)
20:23 audreyt salty-horse: that's fine, simply "make"
20:23 audreyt I guess I should supress that error
20:23 broquaint ?eval eval("{} \n if 1"); $@
20:23 evalbot_11592 is now known as evalbot_11598
20:23 evalbot_11598 Error:  unexpected "@" expecting "::"
20:23 broquaint What's $@ these days?
20:23 audreyt $!
20:23 audreyt $@ and $^E and $? and $! are unified
20:23 broquaint Ta.
20:23 salty-horse i'd rather "make unoptimized". it takes ages on my machine
20:23 broquaint ?eval eval("{} \n if 1"); $!
20:23 evalbot_11598 \undef
20:23 audreyt salty-horse: sure, same
20:23 bpphillips left perl6
20:24 broquaint Hrm, I get an error on my build. Probably time to re-compile ...
20:26 audreyt broquaint: that's an error actually
20:26 svnbot6 r11599 | fglock++ | pX/fglock/PCR - added some docs to Match.pm
20:26 audreyt ?eval eval("\{\} \n if 1"); $!
20:26 evalbot_11598 \undef
20:26 audreyt hrm
20:26 audreyt pugs> eval "\{\}\n if 1"; say $!
20:26 audreyt unexpected end of input
20:26 audreyt expecting "_", fraction, exponent, term postfix, comment, operator or block
20:27 broquaint Yeah, I get something like that.
20:27 broquaint Is that a pugs thing or a perl6 thing?
20:27 audreyt anyway, you get that because of the line-ending-closing-brace is statement-ending-closing-brace rule.
20:27 audreyt it's a perl6 thing.
20:27 broquaint Any idea how to fudge it because I've got a few places where I have braces before an if modifier?
20:28 audreyt don't put \n there.
20:28 broquaint Urk :/
20:29 audreyt $x = { } \ if 123;
20:29 audreyt er
20:29 audreyt $x = {}
20:29 audreyt  if 123;
20:29 audreyt to fix it:
20:29 audreyt $x = {
20:29 audreyt } if 123;
20:29 audreyt or
20:29 audreyt $x = {} if 123;
20:29 audreyt or
20:29 audreyt $x = {}   #(
20:29 audreyt here is your advertisement
20:29 audreyt ) if 123;
20:30 broquaint Aha, thanks :)
20:30 * cognominal discover haskerls    http://www.dcs.gla.ac.uk/~pa​rtain/haskerl/partain-1.html
20:30 lambdabot Title: A message about Haskerl
20:30 cognominal Apparently every joke is somehow doomed to become someohow a reality
20:31 audreyt indeed.
20:33 cognominal spj++ # excellent paper about haskell history
20:33 svnbot6 r11600 | audreyt++ | * unregister --user fps before we install; promoted by salty-horse++
20:33 * audreyt liberates the Jifty declarative-constructor and make it available to all mooseland :D
20:33 audreyt # http://nopaste.snit.ch/7680
20:34 audreyt (reflecting accessors into its own DSL, for the duration of a block, to construct objects)
20:34 broquaint Mmm, mind-boggling.
20:35 xerox Surely looks "declarative" :)
20:35 salty-horse audreyt, lisppaste3 is sitting right here...
20:35 audreyt yeah, this is cross-pasting from #moose
20:36 audreyt ...which has, surprisingly, became an underground lab for mad scientists working on Object/Relational Mapping technologies on CPAN of sorts...
20:36 tga joined perl6
20:37 FurnaceBoy_ joined perl6
20:37 salty-horse i still don't condone ORM, coming from an environment that likes to pre-cache the execution plans in the database and fine-tune them. it's good for quick-hacking, though
20:38 audreyt salty-horse: have you read
20:38 stevan audreyt: :D
20:38 audreyt http://msdn.microsoft.com/netframew​ork/default.aspx?pull=/library/en-u​s/dndotnet/html/linqcomparisons.asp
20:38 lambdabot Title: .NET Framework Developer Center: Comparing LINQ and Its Contemporaries
20:38 audreyt ?
20:38 audreyt Moose is good for working on _that_ sort of ORM :)
20:38 salty-horse reading..
20:40 fglock audreyt: is inside-out really necessary for Match? it is much more difficult to add data from inside Runtime::Regex
20:40 audreyt fglock: well, the problem is that ${} @{} %{} are all used up
20:40 broquaint &{}!
20:40 audreyt yeah, that's an option
20:41 audreyt fglock: is a call to ->data hard? what's the use case?
20:42 audreyt fglock: we don't need inside out per se, but we do need somewhere other than $$ to hold the data
20:43 audreyt blessing subrefs and use &$ref is one way out
20:43 audreyt inside-out is another
20:43 audreyt though &$ref can't do assignment
20:43 audreyt while you can use ->data() to reset the info
20:44 ruoso audreyt, why is inc::Module::Install being used after all?
20:44 ruoso I mean
20:44 audreyt ruoso: because perl 5.9.3 and below has a bug
20:44 fglock audreyt: ok
20:44 audreyt ruoso: if you check out source from svn, there's no guarantee that .pmc will be more fresh than .pm
20:45 audreyt ditto for wget -m
20:45 audreyt ruoso: and unless .pmc is more fresh, it's not used
20:45 audreyt it's fixed on perl 5.9.4
20:45 audreyt but for now we need workaround
20:45 audreyt that uses TOUCH
20:46 * ruoso will try something...
20:47 ruoso fglock, is lrep inside Pugs-Compiler-Rule standalone?
20:48 ruoso or does it depends on something inside PCR?
20:48 fglock it's standalone - it is only used for compiling the grammar
20:49 ruoso could it be moved to where Module::Install::PMC resides?
20:49 * ruoso considering Module::Install::PMC as a separated module
20:49 ruoso including lrep inside it
20:49 ruoso no no no
20:49 ruoso forget it
20:50 fglock ruoso: later versions will not depend on lrep
20:51 ruoso I realized that just after typing
20:51 fglock because v6.pm will be used to compile the grammar
20:56 pdcawley_ joined perl6
20:56 tga left perl6
20:57 weinig|working is now known as weinig
20:58 pasteling0 "ruoso" at 201.8.237.163 pasted "Proposed change on PCR Makefile.PL (solves touch on install)" (38 lines, 928B) at http://sial.org/pbot/18452
21:00 * ruoso just realized... the first 2 lines on MY::postamble are not necessary...
21:00 ruoso fglock, please take a look ^
21:03 ruoso make clean should remove the .pmc file, shouldn't it?
21:03 fglock ruoso: can it still use '$^X ' ?
21:04 fglock ruoso: no, lrep is not in the dist
21:04 ruoso fglock, hmmm...
21:04 Bit-Man joined perl6
21:04 fglock cpan users get a precompiled .pmc
21:05 * ruoso changed to use $^X
21:06 ruoso hmm...
21:07 ruoso and what if they want to change something locally?
21:07 ruoso will they have to deal with the generated p5 file?
21:08 fglock they need a svn version, otherwise we have to pack lrep into the dist
21:09 DS41 joined perl6
21:09 ruoso do we loose something, doing that?
21:09 fglock not really
21:10 ruoso why not doing it?
21:10 ruoso even if not installing it
21:10 fglock mm - because most developers just use the svn version anyway?
21:11 fglock and it will be dropped in later versions
21:11 ruoso hmm... ok...
21:11 ruoso that's a point
21:12 fglock also, it used to take several minutes to compile the grammar - now it is faster
21:15 pasteling0 "ruoso" at 201.8.237.163 pasted "Final version of PCR Makefile.PL diff" (34 lines, 880B) at http://sial.org/pbot/18454
21:15 ruoso fglock, ^
21:15 ruoso may I commit it?
21:16 fglock ruoso: does it work in windows?
21:17 ruoso hmmm... don't konw
21:17 ruoso *know
21:18 ruoso if it doesn't... I can change p6compiler.pl to accept -o and take care of that shell part
21:19 pasteling0 "ruoso" at 201.8.237.163 pasted "patch to Module::Install::PMC" (19 lines, 469B) at http://sial.org/pbot/18455
21:20 ruoso ingy, audreyt ^
21:21 fglock ruoso: I'm ok
21:22 ingy ruoso: go it
21:22 ingy got it
21:24 fglock home &
21:24 ingy ruoso: can you make that diff from the top level dir of M::C?
21:24 ingy there are two PMC.pm files
21:24 ingy and I am lazy
21:24 ingy and anyway, it's good form
21:25 ruoso ingy, well... I was with just that file... but wait a second...
21:25 ingy ruoso: you can do 'svn diff'
21:26 ingy ruoso: also your patch looks backwards :P
21:26 pasteling0 "ruoso" at 201.8.237.163 pasted "patch to Module::Install::PMC" (19 lines, 501B) at http://sial.org/pbot/18456
21:27 ruoso ingy, I'm not with svn sources of module::compile
21:27 ingy yeah, that one doesn't look backwards
21:28 ruoso is it inside pugs svn?
21:28 ingy no
21:28 ingy http://svn.kwiki.org/ingy/Module-Compile
21:28 lambdabot Title: Revision 2877: /Module-Compile
21:31 ingy ruoso: even that was not top level :P
21:32 ruoso I have your svn now...
21:32 ingy anyway. applied
21:32 ruoso do you want me to make a patch from there?
21:33 ingy nope, it's done
21:33 ingy thanks!
21:33 ruoso ok
21:33 ruoso ingy++
21:40 ingy ruoso: File successfully copied to '/home/ftp/incoming/Module-Compile-0.18.tar.gz'
21:40 ingy (pause)
21:41 ruoso nice...
21:41 ruoso does (cd dir && dosomething) works in windows?
21:42 ingy I doubt it
21:43 ingy by work, I assume you mean to not leave the current dir
21:43 ingy are you asking if you can do that in a Makefile?
21:44 ruoso yes
21:45 salty-horse shouldn't "print" print $_ by default?
21:47 ruoso someone in a windows machine around?
21:49 cjeris ruoso: it works on my XP box, surprisingly
21:50 cjeris but it leaves you in the resulting directory
21:50 cjeris which I guess is defined as "not work"
21:50 ruoso ok... so (cd dir && dosomething && cd ..) works for both
21:53 ruoso if dosomething fails, it won't leave the dir, but will stop the processing anyway...
21:53 ruoso so I don't think it's a problem
21:58 salty-horse why does this parse: "for(1..5) {;}" while "for(1..5){;}" doesn't?
22:05 nothingmuch clkao: ping
22:06 clkao pong
22:06 svnbot6 r11602 | ruoso++ | New parameter --output-program=s. p6compiler can now save to a file...
22:06 svnbot6 r11603 | ruoso++ | Avoid touching the file in make install... using per-file dependancy on config, make manages when to regen the .pmc file now...
22:06 TimToady salty-horse: because the second form looks like a hash subscript.
22:07 salty-horse thanks. how silly of me. i actually saw this on examples/snowing.pl
22:07 clkao TimToady: oh, do you know where the syntax @b.map:{$_+1} is defined?
22:07 * ruoso realizes Perl 6 will not be sooo good on golf plays
22:07 nothingmuch clkao: i have a doc patch for you
22:08 clkao nothingmuch you get US$1 for the balance then?
22:08 nothingmuch yes
22:08 nothingmuch =)
22:08 nothingmuch but it's not 100% complete
22:08 nothingmuch some descriptions are missing
22:08 nothingmuch still an improvement though
22:08 salty-horse same snowing.pl example also tries things like "say$var;". should it work? are sigils allowed for function names?
22:08 nothingmuch how should I submit the patch?
22:12 TimToady clkao: S12.pod:    @list.grep: { $_ % 2 }.map: { $_ - 1 }.say
22:12 svnbot6 r11604 | Sage++ | Added some basic work on translating regex internals (such as \A -> ^). Regex translation is done by a couple of functions to identify what text is a regex, then a parsec parser to actually handle the translation. Some of the code for split(FOO) -> .split(FOO) is also is place, but not quite fully ready yet.
22:12 svnbot6 r11605 | Sage++ | Updating with some functions used by the latest stuff in ASTTranslate.
22:12 TimToady salty-horse: that's just "say $var;"
22:13 salty-horse TimToady, so if I understand you, it should work (it doesn't ATM)
22:13 undrdawg ruoso, no that does not work
22:14 undrdawg you need to use error level
22:14 undrdawg errorlevel
22:14 nothingmuch clkao: ?
22:14 salty-horse lisppaste3, help
22:14 clkao nothingmuch: send it to rt.cpan? or me?
22:14 lisppaste3 To use the lisppaste bot, visit http://paste.lisp.org/new/perl6 and enter your paste.
22:14 ruoso undrdawg, I really don't know much about windows...
22:14 nothingmuch email unidiff?
22:14 ruoso undrdawg, could you provide an example?
22:14 undrdawg i havent messed with it ina while
22:15 undrdawg google for it
22:15 ruoso ok... thanks...
22:15 undrdawg or, use perl
22:15 undrdawg :D
22:15 undrdawg dos is such a sucky shell
22:15 undrdawg you'd be better off with vbscript or something i'd say
22:16 undrdawg im just getting around to checking out perl6
22:16 undrdawg is there any compatibility issues with perl5 code?
22:17 undrdawg i believe there's actually an if command now
22:18 ruoso as the Makefile is generated...
22:18 ruoso having two versions is better than invoking 2 perl interpreters
22:19 ruoso just to run something in another directory
22:19 clkao nothingmuch: who helped you?
22:21 undrdawg http://www.robvanderwoude.com/
22:21 lambdabot Title: Rob van der Woude's Scripting Pages: Batch Files, Rexx, KiXtart, Perl, VBScript
22:21 undrdawg that guys a dos pro
22:21 undrdawg heh
22:21 nothingmuch clkao: ann
22:21 undrdawg http://www.tubgirl.com
22:21 undrdawg :(
22:21 lambdabot Title: Consumption Junction, What's Your Dysfunction?
22:21 undrdawg hah
22:22 undrdawg note to the clueless: dont click that
22:22 clkao nothingmuch: whoot
22:23 nothingmuch so
22:23 nothingmuch now i get help
22:23 nothingmuch It doesn't work!
22:28 froh-doh joined perl6
22:28 nothingmuch clkao: so, err.. i can't get help or dispatch to a simple command to work
22:31 cjeris left perl6
22:31 nothingmuch sheesh! he gets a doc patch and then suddenly i no longer exist
22:32 nothingmuch obra: maybe you can help?
22:33 obra ?
22:34 obra what's up?
22:34 nothingmuch obra: do you know App::CLI?
22:34 obra Some. not very well
22:34 obra "I've patched the code"
22:34 nothingmuch i'm having trouble figuring it ouot
22:34 nothingmuch "I've tried to use it" ;-)
22:35 nothingmuch i was paying clkao with a docpatch in exchange for some service
22:35 nothingmuch but then he disappeared!
22:35 obra ok. we made it go for jifty.
22:35 nothingmuch "made it go" ?
22:37 obra a made it work
22:37 nothingmuch ah
22:37 nothingmuch i thought "made it go away" ;-)
22:37 nothingmuch anywho
22:37 nothingmuch it appears that i've been doing stuff as exemplified
22:37 nothingmuch but i'm missing something
22:38 obra where can I grab the code?
22:38 nothingmuch want to subetha the code?
22:38 obra oh. you hadn't heard.
22:38 obra my courier bag strap came undone today
22:38 obra mac hit the ground. bent the case. broke the CD drive
22:38 nothingmuch shyte
22:38 obra $750 repair :/ but it'll be back tomrorow
22:38 * nothingmuch sympathises
22:38 nothingmuch dented laptop
22:39 nothingmuch due to crappy bag
22:39 obra :/
22:39 obra and I was just about to order a replacement bag last night
22:39 nothingmuch so no macs or no subetha or no... ?
22:39 obra no subetha. due to no mac.
22:39 obra tarball?
22:39 nothingmuch yep, making
22:40 nothingmuch actually
22:40 nothingmuch i'll juist commit
22:40 nothingmuch darcs has amend-record
22:40 nothingmuch and you can see it on the web
22:41 nothingmuch moving to /msg
22:41 furrybeagle joined perl6
22:42 nothingmuch EXTRA EXTRA! SVK PROPIETOR USES DARCS OUT OF CHOICE!
22:43 nothingmuch At 01:42, IDT today, Jesse Vincent, whose company Best Practical Solutions LLC had recently acquired the version control tool SVK was logged on IRC saying that he will voluntarily install darcs
22:44 nothingmuch When questioned Jesse did not respond within seconds, the reason likely being that he was busyin installing the tool.
22:44 wolverian haha
22:45 nothingmuch Chia-liang Kao, SVK's author and Jesse's partner at Best Practical was unavailable for comment, as he was applying a doc patch.
22:46 obra Yep! Jesse was busy stealing darcs' mojo
22:48 salty-horse should "say$a" parse as "say $a"? it doesn't seem to work
22:48 ruoso undrdawg, can you please test the Makefile.PL of Pugs-Compiler-Rule from SVN in your windows machine?
22:50 TimToady ?eval my $a = 'ABC'; say$a
22:50 evalbot_11598 is now known as evalbot_11605
22:50 evalbot_11605 Error:  unexpected "$" expecting "::", dot, ":", "(", comment, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
22:50 * clkao slaps nothingmuch with a wet patch
22:51 TimToady yep, seems busted to me, by the current parsing rules
22:51 salty-horse TimToady, say is a keyword, not a subroutine. it seems to work with subroutines (it works with my())
22:51 nothingmuch clkao: ?
22:51 salty-horse (i'm not sure isay is a keyword)
22:52 TimToady say is just a function and a method
22:53 salty-horse so how is it different from my?
22:53 TimToady ?eval sub foo(*@x) { say @x }; my $x = "abc"; foo$x
22:53 evalbot_11605 Error:  unexpected "$" expecting "::", dot, ":", "(", comment, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
22:53 TimToady ?eval sub foo(*@x) { say @x }; my $x = "abc"; foo $x
22:53 evalbot_11605 OUTPUT[abc ] Bool::True
22:53 TimToady my is a declarator
22:53 TimToady declarators really are keywords
22:54 salty-horse ?eval sub foo {say $_ }; my$x=123; foo$x;
22:55 evalbot_11605 Error:  unexpected "$" expecting "::", dot, ":", "(", comment, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
22:55 salty-horse the above works on svn
22:57 * ruoso asks himself if he's the only one who can't test svn v6-alpha
22:57 clkao ruoso: how come?
22:57 ruoso Error in perl 6 parser: Not a SCALAR reference at lib//Pugs/Grammar/BaseCategory.pm line 51.
22:58 clkao well, some of the tests have the error
23:00 ruoso use v6-alpha;"HelloWorld".say(); fails with the same error...
23:01 TimToady svn status show any out-of-sync files under pugs?
23:01 clkao it does work for me
23:02 TimToady just thinking maybe you have a private copy of something
23:02 ruoso hmm...
23:02 TimToady the double slash also seems a bit odd
23:04 ruoso TimToady, that's my perl -Ilib/...
23:04 ruoso shouldn't be a problem, should it?
23:05 ruoso no private copies...
23:05 TimToady you on unix or dos?
23:05 ruoso linux
23:06 TimToady shouldn't be a problem for // embedded in filenames, but could conceivably confuse other code, like s#.*/## kinds of commands.
23:07 TimToady anyway, it just looked strange, probably not related.
23:08 TimToady salty-horse: recompiling r11605 to see if we've regressed somehow.
23:10 salty-horse TimToady, not out-of-sync files on my copy of r11605
23:12 * ruoso checking out everything again...
23:14 salty-horse actually, i was using r11600 for the tests - don't think it matters
23:16 nothingmuch clkao: is the open-your-editor portion of SVK copy-pastable
23:16 nothingmuch ?
23:19 * ruoso wonders why some files have  in the start?
23:23 wolverian BOM?
23:24 * ruoso give up for today
23:24 * ruoso can't figure out why he always get the same error
23:24 ruoso and nobody else gets it
23:25 * ruoso going home
23:29 unobe_away is now known as unobe
23:30 salty-horse where do i submit patches to?
23:30 audreyt salty-horse: what's your email? I'll send you a commit bit
23:31 audreyt salty-horse: add yourself to AUTHORS
23:31 audreyt welcome aboard!
23:31 salty-horse yay
23:33 vsoni hi audreyt
23:33 audreyt latest uploaded-to-cpan hack:
23:33 audreyt http://perlcabal.org/~audre​yt/tmp/object-declare.html
23:33 lambdabot Title: Object::Declare - Declare object constructor
23:36 furrybeagle joined perl6
23:36 vsoni audreyt: ?
23:37 audreyt vsoni: hi
23:38 TimToady salty-horse: looks like it only failes inside eval
23:38 TimToady *fails
23:41 TimToady ?eval say chr(0x2424)
23:41 evalbot_11605 OUTPUT[␤ ] Bool::True
23:41 TimToady heh
23:41 salty-horse hehe
23:41 esammer joined perl6
23:42 salty-horse umm.. how does that escape parsing by eval?
23:45 TimToady I'm just trying to sneak ␤ past safe_print
23:45 TimToady not really related to your problem
23:48 salty-horse can you give an example where "say" is not parsed by eval? how did you reach your conclusion?
23:49 TimToady it's not parsed by eval when you type it directly to the pugs prompt.
23:50 TimToady but if you put eval '...'; $! around the same thing to the pugs prompt you'll get the same error
23:52 TimToady ?eval join chr(0x2424), 1..100
23:52 salty-horse lisppaste3, help
23:52 evalbot_11605 "1\d[9252]2\d[9252]3\d[9252]4\d[9252]5\d[9252]​6\d[9252]7\d[9252]8\d[9252]9\d[9252]10\d[9252]​11\d[9252]12\d[9252]13\d[9252]14\d[9252]15\d[9​252]16\d[9252]17\d[9252]18\d[9252]19\d[9252]20​\d[9252]21\d[9252]22\d[9252]23\d[9252]24\d[925​2]25\d[9252]26\d[9252]27\d[9252]28\d[9252]29\d​[9252]30\d[9252]31\d[9252]32\d[9252]33\d[9252]​34\d[9252]35\d[9252]36\d[9252]37\d[9252]38\d[9​252]39\d[9252]40\d[9252]41\d[9252]42\d[9252]43​\d[9252]44\d[9252]45\d[9252]46\d[9252]
23:52 lisppaste3 To use the lisppaste bot, visit http://paste.lisp.org/new/perl6 and enter your paste.
23:53 TimToady ?eval join chr(0x2424), 1..10
23:53 evalbot_11605 "1\d[9252]2\d[9252]3\d[9252]4\d[9252]5\d[92​52]6\d[9252]7\d[9252]8\d[9252]9\d[9252]10"
23:53 lisppaste3 salty-horse pasted "pugs prompt (non-eval?) error" at http://paste.lisp.org/display/22777
23:53 TimToady ?eval join chr(0x2424), 1,2
23:53 evalbot_11605 "1\d[9252]2"
23:54 TimToady ?eval 1 ~ chr(0x2424) ~ 2
23:54 evalbot_11605 "1\d[9252]2"
23:54 TimToady ?eval say join chr(0x2424), 1..100
23:54 evalbot_11605 OUTPUT[1␤2␤3␤4␤5␤6␤7␤8␤9␤10â​¤11␤12␤13␤14␤15␤16␤17␤18␤19â​¤20␤21␤22␤23␤24␤25␤26␤27␤28␤​29␤30␤31␤32␤33␤34␤35␤36␤37␤3​8␤39␤40␤41␤42␤43␤44␤45␤46␤47​␤48␤49␤50␤51␤52␤53␤54␤55␤56â​¤57␤58␤59␤60␤61␤62␤63␤64␤65â​¤66␤67␤68␤69␤70␤71␤72␤73␤74␤​75␤76␤77␤78␤79␤80␤81␤82␤83␤8​4␤85␤86␤87␤88␤89␤90␤91â
23:57 TimToady okay, I was playing with the foo$x example.  I suspect say is currently in a different syntactic class in pugs than a normal listop
23:57 rashakil joined perl6
23:57 mauke_ joined perl6
23:59 svnbot6 r11606 | salty_horse++ | added space between for() and {}. it was treated as a hash subscript.
23:59 salty-horse yay

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

Perl 6 | Reference Documentation | Rakudo