Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-01-02

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:49 pnu joined perl6
00:49 gaal joined perl6
00:49 cj joined perl6
00:49 tewk joined perl6
00:49 shachaf joined perl6
00:49 TimToady joined perl6
00:49 GeJ joined perl6
00:49 nanonyme joined perl6
00:49 qmole joined perl6
00:49 [particle] joined perl6
00:50 kcwu joined perl6
00:50 wilx joined perl6
00:50 lambdabot joined perl6
01:12 weinig joined perl6
01:46 ozo joined perl6
02:42 dmq joined perl6
02:43 weinig is now known as weinig|zZzZ
02:51 Schwern joined perl6
03:06 pbuetow joined perl6
03:11 dduncan joined perl6
03:11 bjoern_ joined perl6
03:12 bjoern_ Hi. Say you call a|b a "choice" and ab a "sequence". What would you call a||b and a&&b where a||b = a?b|b?a and a&&b = ab|ba?
03:15 dduncan did you mean to say: and a&b a "sequence"
03:16 dduncan ?
03:16 dduncan or (a,b) ... that's a sequence
03:16 bjoern_ Not really. This isn't a Perl question and the syntax does not really matter. I'm just looking for good names.
03:17 dduncan just a minute ...
03:17 bjoern_ ab is "first a, then b"
03:17 bjoern_ a|b is "either a or b"
03:17 bjoern_ a&&b is "a and b in any order"
03:17 bjoern_ a||b is "a, or b, or both in any order"
03:18 dduncan I see ... what is the wider context?
03:19 bjoern_ You could say XML element names for a schema language
03:19 bjoern_ so you'd <choice><a/><b/></choice> for example
03:20 bjoern_ I was thinking along the lines of "inclusion", "conjunction", ... but haven't been able to come up with something good
03:27 bjoern_ hmm a&&b is "any permutation of all values" and a||b is "any permutation of some values" ...
03:28 diakopter joined perl6
03:29 bjoern_ any other channel on freenode where people might have an idea?
03:32 dduncan hard to say ... but still, you've given me more to work with
03:33 dduncan I certainly face times I want to come up with names too, and have gotten help here on a couple occasoins
03:33 dduncan occasions
03:34 dduncan I suggest using an online thesaurus to ideas
03:34 dduncan put in words that you think mean similarly to what you want, and see other things that may look good
03:35 dduncan it may not be the best, but http://thesaurus.reference.com/ is what I usually try for this purpose
03:35 lambdabot Title: Thesaurus.com
04:10 Teratogen joined perl6
04:10 Teratogen will Perl 6 still have a text preprocessor a la Perl 5's perl -P ?
04:11 Teratogen text preprocessors are nice =)
04:12 dduncan that matter is orthogonal to the language itself, so would depend on specific implementations
04:13 dduncan and there is no single Perl 6 implementation
04:13 Teratogen is it orthogonal to Perl 5, or is it a moot point?
04:13 dduncan there is only 1 Perl 5 implementation
04:13 Teratogen perl -P will always try to invoke a C preprocessor, even if one isn't there
04:13 dduncan all this said, v6.pm, one Perl 6 implementation, is over Perl 5
04:14 dduncan so things that work with Perl 5 should work with it as reasonable
04:14 dduncan or maybe I misunderstood your question
04:14 dduncan are you talking about source filtering?
04:14 dduncan or a dynamic text editor?
04:15 Teratogen no
04:15 Teratogen a simple text preprocessor
04:15 bjoern_ (/me in #math) "permutation" isn't too bad because you could say, to produce a valid text
04:15 bjoern_ [a |  b] - make a <choice> among these: a, b, c, ...
04:15 bjoern_ [a ,  b] - use this <sequence>: a, b, c, ...
04:15 bjoern_ [a && b] - make a <permutation> of these: a, b, c, ...
04:15 bjoern_ [a || b] - make a <permutation> of a subset of these: a, b, c, ...
04:15 Teratogen a la Perl 5's perl -P
04:15 bjoern_ (#math wasn't too helpful yet though, neither were the thesauri)
04:15 Teratogen I know Perl 6 will have a sophisticated built in preprocessor
04:15 Teratogen at the "code level"
04:15 Teratogen not at the "text level"
04:16 dduncan it has macros
04:16 dduncan you mean like that?
04:16 Teratogen right
04:16 Teratogen exactly
04:16 Teratogen macros are one thing
04:16 Teratogen a text preprocessor is something else
04:16 Teratogen something simpler
04:16 Teratogen but still very useful
04:16 Teratogen there should be a "perl6 -P"
04:16 dduncan macros can take either an AST or the text source code as input
04:16 dduncan in Perl 6
04:16 Teratogen aah
04:16 dduncan so you have that flexability
04:16 Teratogen cool
04:16 Teratogen =D
04:16 dduncan afaik
04:17 dduncan one moment ...
04:17 dduncan have a look at Synopsis 6 ... http://dev.perl.org/perl6/doc/design/syn/S06.html
04:17 lambdabot Title: Synopsis 6: Subroutines - perl6:
04:19 bjoern_ combine-some / combine-all are two words unfortunately
04:19 dduncan there's a snippit at the top, but mainly scroll down about 80% to the "Macros" section
04:22 avar when you can take ast you have the power of lisp macros
04:22 bjoern_ I think I am going with <conjunction> for a&&b and <combination> for a||b then
04:28 dduncan bjoern_ , depending on the nature of things, you could have something that sort of works now, and change it later if something better comes up ... even easier if you design your schema to declare a version string, so that user programs can adapt to changes
04:29 dduncan after it goes in production
04:50 LeeD joined perl6
04:58 Aankhen`` joined perl6
05:06 miyagawa joined perl6
05:37 nipra joined perl6
05:38 araujo joined perl6
05:45 luqui joined perl6
05:56 ofer0 joined perl6
06:14 BooK_ joined perl6
06:41 kanru joined perl6
06:51 Teratogen congratulations, tag-
06:59 f0rth joined perl6
07:00 lambdabot joined perl6
07:14 Aankh|Clone joined perl6
07:16 lambdabot joined perl6
07:20 Aankh|Clone is now known as Aankhen``
07:25 Aankh|Clone joined perl6
07:33 Southen_ joined perl6
07:47 cognominal joined perl6
07:59 devogon joined perl6
08:13 marmic joined perl6
08:21 iblechbot joined perl6
08:22 Schwern joined perl6
08:53 spo0nman joined perl6
08:53 lambdabot joined perl6
08:54 lambdabot joined perl6
08:56 makk384 joined perl6
09:08 lambdabot joined perl6
09:18 lambdabot joined perl6
09:40 makk384 left perl6
09:42 elmex joined perl6
09:58 Aankh|Clone is now known as Aankhen``
10:23 svnbot6 r14977 | fglock++ | mp6 - fixed variables predeclaration in bind
10:43 fglock joined perl6
10:43 buetow joined perl6
10:59 svnbot6 r14978 | fglock++ | mp6-mo - initial commit
10:59 svnbot6 r14978 | fglock++ | - classes (::CompUnit) are implemented as a macro.
10:59 svnbot6 r14978 | fglock++ |   The macro expands to a module (::Module), which calls MO.
10:59 svnbot6 r14978 | fglock++ | - implemented methods, accessors, class variables
11:08 ruoso joined perl6
11:08 Khisanth joined perl6
11:23 fglock nothingmuch: is '->new' created automatically by MO? otherwise, is '->create_instance' the right way to implement it?
11:24 Debolaz2 joined perl6
11:24 cdfh_ joined perl6
11:24 BooK joined perl6
11:24 Debolaz2 joined perl6
11:28 bjoern_ joined perl6
11:28 Debolaz2 is now known as Debolaz
11:38 baest /win 1
11:39 baest sorry :)
11:45 webmind joined perl6
11:52 chris2 joined perl6
12:00 nothingmuch fglock: i have drawn that up but haven't implemented yet
12:00 nothingmuch i'm not 100% sure how I will do it, but the constructor protocol is going to consist of:
12:00 nothingmuch low level constructors, generated by the meta class as private methods
12:01 nothingmuch high level constructors inherited from a base class which in turn gets them from some roles so that you can easily make a different base class
12:01 nothingmuch see: http://nothingmuch.woobling.org/construction_destruction_serialization.pdf
12:01 lambdabot http://tinyurl.com/y3o94b
12:02 nothingmuch the problem  with this is that it makes sense for class style stuff
12:02 nothingmuch but it doesn't match what TimToady wanted for prototype OO
12:02 svnbot6 r14979 | fglock++ | mp6-mo - implemented "new" method
12:03 nothingmuch which while implementable is going to be difficult in perl 5 land
12:05 fglock I've got: Can't locate object method "create_instance" via package "MO::Run::Responder::Invocant" at cp.pl line 130.
12:05 nothingmuch that's because invocant doesn't have that method, it's a moose method
12:05 nothingmuch you need to set the native runtime in MO::Run::Aux to get "normal" oo
12:06 nothingmuch where the object type is a blessed ref, not a boxed type
12:06 nothingmuch BEGIN { $MO::Run::Aux::MO_NATIVE_RUNTIME = 1 }
12:06 nothingmuch somewhere before use MO::Run::Aux
12:06 Debolaz http://en.wikipedia.org/w/index.php?title=Perl_6&amp;curid=1146638&amp;diff=97809476&amp;oldid=97634795
12:06 lambdabot http://tinyurl.com/yzchr9
12:07 nothingmuch or you could use MO::Run::Aux::method_call( $obj, "method" ) instead of $obj->method to have it working under both types
12:09 fglock can I use  method_call() everywhere?
12:09 nothingmuch yes
12:09 nothingmuch it's slow, but it means it'll run with either boxed invocant or native perl 5 always
12:09 nothingmuch if it could be a macro that's what it would have been ;-)
12:10 fglock ok, I can make it macro later
12:10 nothingmuch MO's own generated code uses these "macros" and will eventually use a proper AST to treat it as a macro
12:11 fglock I'll paste what I have so far, one sec...
12:11 nothingmuch MO::Run::Aux dictates everything, in a sense... it provides boxing and unboxing routines, as well as method calls, etc... it bridges the meta model with the runtime
12:12 nothingmuch and it has two modes
12:12 nothingmuch if you want to use $foo->method type method calls you must use it under the native mode
12:12 nothingmuch and then it can also generate .pmcs sanely
12:13 nothingmuch bbiab
12:15 ofer1 joined perl6
12:15 fglock http://paste.lisp.org/display/33941
12:15 fglock http://paste.lisp.org/display/33942
12:21 fglock I've got the same error message with MO_NATIVE_RUNTIME = 1
12:24 fglock method_call() works - thanks!
12:28 nothingmuch are you sure you did it early enough?
12:30 nothingmuch fglock: that looks good
12:30 nothingmuch some comments:
12:30 nothingmuch do { [] }; # what's this?
12:30 nothingmuch $__class_box->create_instance( @{$List__} ); - you can call it on #self
12:31 nothingmuch $self, sorry
12:31 nothingmuch but either way MO::Run::Aux::method_call( $self, "create_instance", @{ $list__ } ) is prolly safer
12:31 nothingmuch also, create_instance will soon change to need to accept field meta objects instead of key/value pairs
12:31 nothingmuch and only 'new' will accept them
12:31 nothingmuch so I will let you know when to phase 'new' out
12:32 nothingmuch the issue with $__clas__box vs. $self is that new cannot be inherited that way
12:33 nothingmuch looks sweet =)
12:33 nothingmuch fglock++
12:33 nothingmuch anymoose, i'm going to excercise
12:35 nothingmuch fglock: oh, one request... Keep the small bits of emitted stuff pluggable
12:36 nothingmuch since MO::Compile::Class::MI is not necessarily the right metaclass, and Method::Simple is not necessarily the right metrhod metaclass it should be easy to change them later if we decide to tailor ones that better suite your needs
12:37 agentzh joined perl6
12:38 fglock ok
12:38 agentzh hmm, it's fun to see there's various encodings used by the people here: utf-8, gb2312, big5, latin1, and etc, etc, etc. :)
12:42 fglock nothingmuch: I'm confused with p6 'submethod BUILD'  - how is it used?
12:57 ruoso joined perl6
13:03 dduncan left perl6
13:05 fglock nothingmuch: now I'm getting 'Can't locate object method "responder_interface" via package "MO::P5::Registry"
13:05 svnbot6 r14980 | fglock++ | mp6-mo - method calls now use 'method_call()' instead of '->'
13:11 fglock nothingmuch: re 'do { [] }' - it's an empty ::Bind, it was generated because the function has no params. It could be removed by the emitter.
13:21 nothingmuch fglock: BUILDALL aggregates all of the BUILD submethods and calls them in order
13:21 nothingmuch fglock: can you paste the line that made that error
13:22 fglock I'm fixing it - I'm moving the internal/native MO calls into the runtime
13:24 fglock here: MO::Run::Aux::method_call( MO::Run::Aux::registry(), q(register_class), 'x', $__base )
13:25 fglock I think MO::Run::Aux::registry() is not a valid object?
13:25 fglock re BUILD: should I implement it somehow?
13:29 bonesss joined perl6
13:33 nothingmuch oh
13:33 nothingmuch no need to do that
13:33 nothingmuch MO::Run::Aux::registry is a p5 object, not a MO object
13:33 nothingmuch only use the method_call pseudomacro for values that are returned by MO::Run::Aux's boxing routines
13:33 fglock ok - it's fixed now
13:39 asz joined perl6
13:47 agentzh ÐÂÄêºÃ
13:49 elmex joined perl6
13:52 kanru joined perl6
13:52 thepler joined perl6
13:53 svnbot6 r14981 | fglock++ | mp6-mo - 'new' works
14:00 weinig|zZzZ is now known as weinig
14:01 zev joined perl6
14:03 svnbot6 r14982 | fglock++ | mp6-mo - added example
14:04 [particle] joined perl6
14:24 mako132 joined perl6
14:25 mako132 joined perl6
14:29 fglock nothingmuch: can you give me an example of how to add a new method to 'instance_methods' and recalculate
14:29 fglock bbiab
14:38 nipra joined perl6
14:52 svnbot6 r14983 | agentz++ | [get-irc-logs.pl]
14:52 svnbot6 r14983 | agentz++ | - always refresh the last day's log.
14:52 Jedai joined perl6
14:53 kanru joined perl6
15:11 fglock joined perl6
15:19 fglock nothingmuch: $__base->instance_methods->add( MO::Compile::Method::Simple->new(...) ) seems to work. Is this correct?
15:22 nothingmuch si
15:22 nothingmuch i was going to say that but you left ;-)
15:22 nothingmuch however, at this point you need to reinstall the new responder interface
15:23 nothingmuch the registry is not yet smart enough to do this, it should have a 'regenerate' method of some sort
15:23 nothingmuch i'm avoiding this for now because I haven't decided yet if I want some sort of declarative dependency based regeneration
15:23 nothingmuch which would be cooler
15:23 nothingmuch and safer
15:23 nothingmuch but more work
15:23 fglock is this the responder interface? $__class_box = Main::box_class($__base)
15:24 nothingmuch that's not enough
15:24 nothingmuch box_class has two modes of operation:
15:24 nothingmuch under the native mode it'll look inside the registry for the metaclass's registered package
15:24 nothingmuch and return that
15:24 nothingmuch so that $__class_box is just a package string
15:25 nothingmuch under the non native runtime it will get $__base->class_interface and return an invocant with $__base and that responder interface as a boxed value
15:25 fglock I'm avoiding native mode so far
15:25 nothingmuch if you're using the registry use the native mode
15:26 nothingmuch otherwise it makes no sense
15:27 nothingmuch (you can't sanely use packages & the registry but avoid perl's own OO dispatch)
15:27 fglock can I make a sub ::MyClass that returns a $class
15:27 nothingmuch ?
15:28 fglock so that I call ::MyClass()->new(...)
15:28 nothingmuch why?
15:28 fglock and I don't use the registry
15:28 fglock I mean call_method( ::MyClass(), 'new', ... )
15:28 nothingmuch then code calling from p5-space into p6-on-p5-space will have to do weird stuff
15:28 nothingmuch what for?
15:29 fglock no problem, as long as I get the p6 stuff right
15:29 nothingmuch i still don't understand why you want to use the fully virtualized runtime
15:29 nothingmuch it's much slower and very demanding on memory
15:30 fglock I'd like to move as much as possible into p6-land
15:30 nothingmuch well, yes... you can simply make up your own registry thing that maps symbolic names to meta class instances
15:30 fglock which would make it easier to emit to non-perl backends
15:31 nothingmuch i don't see what difference it makes right now... in a sense you need some mapping between a package name and it's corresponding metaclass instance
15:31 nothingmuch bidi
15:31 nothingmuch and you want to ideally make your calls on the most suitable one leaving it opaque to the emitter how exactly the runtime dispatches this
15:32 nothingmuch as long as it does it right
15:32 nothingmuch in p5 the most natural way to map it is packages and subs in stashes
15:32 nothingmuch as long as you use a set of macros (or pseudomacros) as provided by MO::Run::Aux and adhere to some simple registration protocol (the p5 registry might be too simplified.. i rushed it), then it should be 100% portable
15:33 ruz joined perl6
15:33 nothingmuch and you shouldn't need to care that the registry is in fact flattenning the metaobjects into packages
15:33 nothingmuch and that method_call is really a perl 5 arrow operator
15:33 nothingmuch my $boxed_type = MO::Run::Aux::box_class($metaclass_instance);
15:33 nothingmuch $boxed_type is totally opaque
15:33 nothingmuch in p5 land it maps to a class string since that's what native to it
15:34 fglock so I should only use method_call() in 'new' ?
15:34 nothingmuch why?
15:34 nothingmuch it's a macro for a method call
15:35 nothingmuch a portability macro to ensure that you don't have to care if it's the native runtime or the fully virtualized one, which do method calls completely different from eachother
15:38 fglock ok, so let's go back to registry regenerate
15:39 fglock I can use MO::Compile::Class::MI->new() when I see a class declaration for the first time
15:39 nothingmuch yes
15:39 fglock but it can be declared again, with extra methods
15:40 nothingmuch there is a very very important distinction though
15:40 nothingmuch nevermind
15:40 nothingmuch i thought you meant something else
15:40 nothingmuch you can simply alter the collections
15:40 nothingmuch and then recalculate the responder interface by fetching a new one: $class->instance_interface
15:40 nothingmuch etc
15:40 nothingmuch and then emitting that
15:41 nothingmuch look in Registry's emit_all_classes
15:42 nothingmuch this can be refactored to emit_class
15:42 nothingmuch so that you can forcibly emit a class, even if it was emitted beforfe
15:44 nothingmuch you call ->add and then reemit
15:44 nothingmuch the problem is that you have to reemit all the derived classes as well
15:45 nothingmuch which is why I want a hook system
15:46 fglock can I just use emit_all_classes() for now? I'll only call it once for each new class
15:46 nothingmuch no, that's lazy
15:46 nothingmuch it'll skip classes it already did without checking if they were modified
15:47 Belaf joined perl6
15:47 nothingmuch why do you need to support modifying classes so early?
15:50 fglock because mp6 adds methods to classes in several different files
15:50 fglock I could fix that, but I'd like to add support for it, instead
15:50 nothingmuch you can wait with emit_all_classes
15:51 nothingmuch and simply do that after everything is modified
15:51 nothingmuch if you don't mind so much do it at INIT time
15:53 fglock it's not so early - mp6-mo should support all of p6 object system
15:53 fglock mp6-mo is a runtime for p6
15:53 nothingmuch it should, yes
15:53 nothingmuch but why right now
15:53 nothingmuch there is a lot of effort involved
15:54 nothingmuch and partial support is better than nothing
15:56 fglock we've got partial support in v6.pm, but mp6 is supposed to fix that
15:56 nothingmuch that's not what I'm saying
15:57 nothingmuch i'm saying that adding this functionality to MO is difficult... it's not in there right now
15:58 fglock maybe I could help?
15:59 nothingmuch the question is: do you want to hack weird MO internals or do you want to let this slide for now and get back to it when it's ready for you ;-)
16:00 fglock I'm a bit impatient, you know :)
16:01 nothingmuch it's opensource... you're welcome to try yourself
16:01 stef_ joined perl6
16:01 nothingmuch but the "real" solution is a considerable amount of work IMO
16:02 ashleyb joined perl6
16:04 fglock ok, I'll work around it
16:10 stef__ joined perl6
16:14 pbuetow joined perl6
16:24 Arathorn joined perl6
16:27 fglock nothingmuch: unnamed classes are not supported? I'm making a for-later list
16:27 fglock are roles ok?
16:27 nothingmuch uh?
16:28 fglock my $c = class { ... }
16:28 nothingmuch you can simply use a metaclass object... if you want to use the native runtime generate an anon class for it
16:28 nothingmuch otherwise there is no need to name a class at all, ever
16:28 fglock ok
16:28 nothingmuch all the meta objects are natively anonymous
16:29 fglock how do you get the metaclass? $obj->WHAT, etc?
16:29 nothingmuch through the type box
16:30 nothingmuch unbox the responder interface out of it using MO::Run::Aux and then ask that what it's class is
16:30 fglock can you give an example? given an object $obj ...
16:31 nothingmuch i forgot to commit it...
16:31 nothingmuch loook at MO::Run::Aux::unbox_value
16:31 nothingmuch something like that but unbox_responderinterface
16:32 nothingmuch unbox_ri
16:32 nothingmuch darcs pull
16:33 nothingmuch wait, not yet
16:33 nothingmuch now
16:36 webmind happy new year!
16:36 webmind left perl6
16:38 weinig_ joined perl6
16:42 nipra_ joined perl6
16:43 diakopter joined perl6
16:45 agentzh joined perl6
16:46 agentzh curve for #perl6 message count in 2005:  http://perlcabal.org/agent/irc-2005.gif
16:47 agentzh and the curve for the year 2006: http://perlcabal.org/agent/irc-2006.gif
16:47 diakopter agentzh: should have no broken smartlinks now
16:47 agentzh diakopter: wow!
16:47 diakopter (I only fixed 2 - the last 2)
16:47 agentzh diakopter++
16:47 agentzh maybe i should plot the smartlink count curve too. :)
16:48 diakopter I was thinking about adding "Unfiled" smartlinks to the top of all the test files that have no smartlinks yet - so they show up as "bugs"
16:48 _bernhard joined perl6
16:48 agentzh bugs?
16:48 diakopter unlinked test files
16:48 diakopter "broken" smartlinks
16:48 agentzh ah, okay.
16:49 diakopter there are a few hundred that are not linked
16:49 agentzh what will such links look like?
16:49 agentzh i mean, where should these links be linked to?
16:50 diakopter hopefully, nowhere valid, so they show up as broken by smartlinks.pl --check
16:50 diakopter so, anywhere invalid?
16:51 agentzh i think it's sufficient to add a few lines of code to smartlinks.pl
16:51 diakopter oh, to count/list the test files without smartlinks.
16:51 agentzh and possibly add an option to tell it to say something about .t files without any links.
16:51 agentzh right
16:52 diakopter on another topic - a friend of mine and I were considering finishing the "refactoring" of the test suite - do we need some kind of authorization to begin doing that?
16:53 agentzh refactoring? what kind of refactoring?
16:53 diakopter reorganizing, relabeling
16:53 diakopter removing duplicates
16:53 agentzh i think that's fine. :)
16:54 agentzh if you're really doing something big, feel free to ask here. :)
16:54 diakopter but if no one answers like the past few weeks....
16:54 agentzh oh well
16:54 diakopter :)
16:55 agentzh i think it's always fine to fire a mail to p6c.
16:55 agentzh if there's no one awake here. ;-)
16:56 agentzh any contribution to the test suite will be greatly appreciated.
16:56 diakopter I'm confused as to how widipedia can call pugs a "slow perl6 implementation" - I mean, are there any faster ones?  perhaps the language is just slow :-P
16:57 agentzh just as audreyt like to say, "when doubt, commit!"
16:57 agentzh pugs is only a prototype.
16:57 agentzh and it's not optimized for speed afaik.
16:57 agentzh it's mostly optimized for correctness.
16:58 agentzh pugs's historical mission is just to verify the language design,
16:58 diakopter right, but to call it a slow implementation means there must be a faster implementation
16:58 agentzh and give us a sane test suite.
16:58 agentzh indeed!
16:58 diakopter and not just an imagined/future one
16:59 agentzh perl6 on parrot is supposed to be the fastest.
16:59 agentzh no, it's also underway.
16:59 agentzh the parrot folks are working on that.
16:59 agentzh including pmichaud and particle.
16:59 diakopter is there a polite way to say "I know" on IRC?
16:59 svnbot6 r14984 | fglock++ | mp6-mo - remove old AST/ and Perl5MO/ dirs
17:00 agentzh iirc, the parrot implementation for perl6 has already passed a good portion of the sanity test.
17:00 agentzh *tests
17:01 agentzh the pugs test suite may be the most valuable componment in the pugs repos.
17:02 iblechbot joined perl6
17:05 agentzh end of day for me &
17:05 agentzh left perl6
17:20 nipra_ is now known as nipra
17:25 ozo joined perl6
17:25 weinig joined perl6
17:58 riffraff joined perl6
17:58 riffraff hi
18:00 masak joined perl6
18:14 BooK_ joined perl6
18:15 larsen_ joined perl6
18:16 ludan joined perl6
18:24 svnbot6 r14985 | fglock++ | mp6-mo - native mode MO works (fixed in MP6/Perl5/Runtime.pm)
18:27 svnbot6 r14986 | gabriele++ | solved problem 28, could use an update if/when sort(SingleArgumentClosure) works
18:32 justatheory joined perl6
18:40 ludan joined perl6
18:41 larsen__ joined perl6
18:42 riffraff does perl6 _impose_ tail call optimization like scheme or is it an implementation detail?
18:44 fglock joined perl6
18:45 svnbot6 r14987 | fglock++ | mp6-mo - no longer requires add_method() for bootstrapping
18:49 TimToady riffraff: p6 imposes it.
18:50 riffraff wonderful thanks
18:57 upd joined perl6
19:01 mdiep joined perl6
19:03 mdiep Juerd: you about?
19:04 pasteling "riffraff" at 83.187.201.251 pasted "gcd with euclid's algorithm, (problem 32/99)" (27 lines, 770B) at http://sial.org/pbot/22088
19:06 riffraff someone could please take a look at my paste and comment it, whenever it feels like? I don't know if it makes sense to use a ternary operator or an explicit if/else instead of a two lines body, or to just remove the last return. I need coding guidelines :/
19:08 riffraff mh..  one "it" should be "he", of course
19:08 masak riffraff: I liked "it" :) I thought you were making a gender-grammatical point
19:08 masak btw, the two-line body reads fine if you ask me
19:09 masak feels a bit like Haskell's pattern matching when written that way
19:10 riffraff masak, you're also right, but it was just showing my language roots, in italian I wouldn't use he/she/it at all, and in my mind everything becomes  "it" :)
19:11 masak riffraff: a lot of thought has been made on this subject
19:11 masak http://en.wikipedia.org/wiki/Gender-neutral_pronoun
19:12 masak by me, you make a very fair point in writing "it", not only showing your language roots
19:12 masak (not saying I would necessary do the same, though. ususally I just rework the sentence until the pronoun disappears)
19:12 fglock joined perl6
19:12 * masak &
19:14 riffraff interesting, I understand the general point of gender neutral pronouns,  but never thought much about it, thanks for the pointer
19:17 kanru joined perl6
19:21 svnbot6 r14988 | fglock++ | mp6-mo - change all p5 method calls to 'native'
19:26 fglock now attempting to bootstrap mp6-mo ...
19:27 * diakopter awakes at the word bootstrap
19:27 kolibrie me crosses fingers
19:28 weinig is now known as weinig|bbl
19:29 nipra joined perl6
19:36 Juerd mdiep: Am now
19:36 svnbot6 r14989 | gabriele++ | implemented euclidean algorithm for gcd, tests passing
19:36 mdiep Juerd: what do I need to do to get a feather account these days?
19:37 Juerd mdiep: Send me an email with the request
19:37 Juerd mdiep: Include real name and preferred username
19:38 mdiep email?
19:38 Juerd  E-mail \E-mail\, email \email\, e-mail \e-mail\([=e]"m[^a]l`),
19:38 Juerd     n.
19:38 Juerd     electronic mail; a digitally encoded message sent from one
19:38 Juerd     computer to another through an electronic communications
19:38 Juerd     medium, especially by means of a computer network.
19:38 Juerd :)
19:38 mdiep :-p
19:38 mdiep your email?
19:38 Juerd Preferrably over SMTP
19:39 Juerd No, your mail, to my mailbox :)
19:39 mdiep "what is your email address?"
19:39 Juerd [email@hidden.address]
19:39 mdiep thanks :-p
19:40 b_jonas joined perl6
19:42 awwaiid I like the comments in that paste re: needing to be multi to allow for other commutative rings
19:47 fglock re mp6-mo: no bootstrap yet - it took several minutes to compile a small program, and didn't finish :(
19:47 kolibrie bummer
19:48 riffraff awwaiid, thank you, I hardly remeber practical use cases of commutative rings except that in a coding theory course I took, but I like the idea of being open to enhancements :)
19:54 statico joined perl6
19:58 ilogger2 joined perl6
19:59 [particle] joined perl6
20:08 ingy joined perl6
20:18 Alias_ hmm
20:18 Alias_ weird
20:18 Alias_ why would CPAN, when running as root, write to my user's .cpan directory
20:19 Alias_ I won't be able to clear that cache except as root either
20:22 wilx Because of some env variables that have not been cleared when su'd?
20:26 polettix joined perl6
20:29 kolibrie Alias_: the culprit is CPAN::Config, which hard-codes that kind of stuff
20:35 ilogger2 joined perl6
20:40 rindolf joined perl6
20:40 rindolf Hi all.
20:41 diakopter hi
20:41 Alias_ oh, also wrong channel :)
20:42 Alias_ The weird thing is though, if I just require CPAN::Config, it gets the right one
20:42 Alias_ if I use CPAN, it internall does CPAN::HandleConfig->load and gets the WRONG one
20:53 rindolf Hi Alias_
20:53 rindolf Alias_: are you up early?
20:54 Alias_ late
20:54 Alias_ sorta :)
20:54 * Alias_ works on pip arm
20:54 rindolf Alias_: I see.
20:55 rindolf Alias_: what's pip arm?
20:55 Alias_ pip is my installer tool
20:55 Alias_ That lets you script Perl module installs
20:55 Alias_ From arbitrary sources
20:55 Alias_ CPAN modules, CPAN paths, local tarballs, and now uris
20:57 Alias_ > sudo -H pip --install http://svn.phase-n.com/svn/cpan/release/PPI-1.119_01.tar.gz
20:57 Alias_ That's todays addition
20:57 larsen_ joined perl6
20:57 Alias_ The magic bit, is that not only does it install it, it also installs it's dependencies across the private code to CPAN boundary
20:58 Alias_ And the installation is not only perfectly compatible with CPAN, it tricks the CPAN client into ACTUALLY doing the installation of a non-CPAN module
20:58 Alias_ So it's a perfect installation
20:59 Alias_ It's more useful for installing non-CPAN perl modules of course
20:59 Alias_ Or sequences of installs
21:01 Alias_ And hopefully eventually will also support par files and ppd files
21:09 larsen___ joined perl6
21:47 ilogger2 joined perl6
22:08 marmic joined perl6
22:18 dduncan joined perl6
22:23 frankg joined perl6
22:23 buubot joined perl6
22:28 zev joined perl6
22:28 Schwern joined perl6
22:28 cognominal joined perl6
22:28 f0rth joined perl6
22:28 qmole joined perl6
22:28 nanonyme joined perl6
22:28 kane_ joined perl6
22:28 Eidolos joined perl6
22:28 audreyt joined perl6
22:34 zev joined perl6
22:34 Schwern joined perl6
22:34 cognominal joined perl6
22:34 f0rth joined perl6
22:34 qmole joined perl6
22:34 nanonyme joined perl6
22:34 kane_ joined perl6
22:34 Eidolos joined perl6
22:34 audreyt joined perl6
22:34 buubot joined perl6
22:36 mako132 joined perl6
22:39 ilogger2 joined perl6
22:40 ilogger2 joined perl6
22:42 TimToady er, && is infix, not postfix.  so in theory my $and = &infix:<&&> would work, though && is really an infix macro, and currently hardwired in pugs (I suspect), and thus perhaps not available that way.
22:43 TimToady ?eval &infix:<&&>(1 == 1, { say "yes" })
22:43 evalbot_r14989 {Syn "block" {App &say (: "yes")}}
22:43 zev joined perl6
22:43 cognominal joined perl6
22:43 f0rth joined perl6
22:43 qmole joined perl6
22:43 nanonyme joined perl6
22:43 kane_ joined perl6
22:43 Eidolos joined perl6
22:43 audreyt joined perl6
22:43 TimToady ?eval &infix:<&&>(1 == 1, say "yes" )
22:43 evalbot_r14989 OUTPUT[yes␤] Bool::True
22:44 TimToady ?eval my $and = &infix:<&&>; $and(1 == 1, say "yes")
22:45 evalbot_r14989 OUTPUT[yes␤] Bool::True
22:45 TimToady ?eval my $and = &infix:<&&>; $and(1 == 2, say "yes")
22:45 evalbot_r14989 Bool::False
22:45 riffraff well, it seem to work  :)
22:45 TimToady yeah. :)
22:45 riffraff thank you once more
22:45 TimToady 4
22:48 riffraff a question about "returns": if I declare a method as returning Bool, and inside it there is an undef, should I get implicit coercion to False ?
22:48 TimToady no, you'd get an undefined Bool I expect.
22:49 TimToady in Haskell terms, most types are already Maybe types.
22:49 riffraff I see
22:50 TimToady need to commute... &
22:51 riffraff but not undef -> True
22:52 TimToady It's possible it should coerce to False though, since testing a value for truth generally counts as "handling" an unthrown exception...
22:53 TimToady so Bool may be special that way...
22:54 TimToady now if you coerced to bool instead of Bool, it would certainly have to decide whether to produce 0 or 1 or throw or throw an exception...
22:54 TimToady since bool is just an unsigned 1-bit integer.
22:54 TimToady and has no room to contain an unthrown exception.
22:55 TimToady but have to trot &
22:55 buetow joined perl6
22:56 zev joined perl6
22:56 cognominal joined perl6
22:56 f0rth joined perl6
22:56 qmole joined perl6
22:56 nanonyme joined perl6
22:56 kane_ joined perl6
22:56 Eidolos joined perl6
22:56 audreyt joined perl6
23:06 Schwern joined perl6
23:12 lambdabot joined perl6
23:21 Psyche^ joined perl6
23:24 jan joined perl6
23:29 Psyche^ is now known as Patterner
23:30 araujo joined perl6
23:33 elmex joined perl6
23:34 QwestDawG joined perl6
23:37 perlDreamer joined perl6
23:37 diakopter welcome perlDreamer
23:37 perlDreamer howdy
23:45 TimToady rehi
23:45 Alias_ TimToady: So, I'm pondering the idea of a Perl 6 futures market...
23:46 Alias_ for, say, your blessed "production" release
23:46 Alias_ TimToady: With contracts at quarterly intervals
23:47 Alias_ When would be an appropriately unlikely end date...
23:47 Alias_ Q4 2010, and then "after 2010" ?
23:50 Alias_ I don't mean this as a joke or jibe, but a way to stop the FUD to a degree
23:51 TimToady hmm, well, I think the best way to stop the FUD is just up and finish the thing.  :)
23:52 Alias_ of course, but then I get a lot of chatter around and about on that topic
23:54 diakopter on that note
23:54 TimToady I predict diakopter is going to say something about testing...
23:54 Alias_ Anyone want to take the negative contract?
23:55 diakopter perlDreamer and I were talking about, thinking about devoting some time/effort to refactoring/restructuring the test suite.  Hey!
23:55 perlDreamer do you have any suggestions/cautions ideas for such a task?
23:55 TimToady I have exhausted my "futures" for the year...
23:56 TimToady what are the goals?
23:56 perlDreamer portable across implementations (easy for parrot to use)
23:56 perlDreamer we have an idea about tracking test progress across time, so you can track when a feature broke in an implementation
23:56 avar Aren't there a few things still that languages/perl6/*pir needs to run Test.pm and the test suite?
23:57 perlDreamer also an easy way to compare test results across implementations (pugs passes these tests, parrot, these, etc.)
23:57 diakopter erasing duplicates, better organizing around the synopses/apocalypses/exegeses
23:57 Alias_ perlDreamer: Andreas has a solution for that in Perl 5
23:57 Alias_ perlDreamer: The "when did it break" problem
23:57 diakopter "don't break it"?
23:57 Alias_ perlDreamer: Has does a binary search across the revision space
23:57 perlDreamer Alias_: is it posted online somewhere?
23:58 Alias_ There's a CPAN module for it, yes
23:58 Alias_ I've never gotten it to work though :)
23:59 [particle] diakopter: write the tests in pure perl 6. then parrot can easily run them
23:59 perlDreamer Alias_: which Andreas are you talking about?
23:59 TimToady one of the problems is that there's never going to be a one-to-one correspondence between tests and features, so the identity of a feature is difficult to nail down.
23:59 DebolazX TimToady: Perhaps it might also be an idea to watch the wikipedia article about perl 6, it has had some interesting fud edits lately. :)
23:59 TimToady I could spend all day battling fud, but I don't think that's my job.

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

Perl 6 | Reference Documentation | Rakudo