Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-21

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:05 Auzon be back later. &
00:07 mncharity rakudo: [3,4].perl
00:07 exp_evalbot OUTPUT[Method 'perl' not found for invocant of class 'List'␤current instr.: '_block11' pc 49 (EVAL_11:20)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (src/PCT/HLLCompiler.pir:587)␤called from Sub
00:07 exp_evalbot ..'parrot;PCT::HLLCompiler;command_line' pc 1246 (src...
00:08 mncharity rakudo: my @a=(3,4); @.perl
00:08 mncharity rakudo: my @a=(3,4); @a.perl
00:08 exp_evalbot joined #perl6
00:08 mncharity rakudo: my @a=(3,4); @a.perl
00:08 exp_evalbot OUTPUT[Method 'perl' not found for invocant of class 'List'␤current instr.: '_block11' pc 64 (EVAL_11:27)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (src/PCT/HLLCompiler.pir:587)␤called from Sub
00:08 exp_evalbot ..'parrot;PCT::HLLCompiler;command_line' pc 1246 (src...
00:15 lisppaste3 joined #perl6
00:35 [particle] joined #perl6
00:46 syle joined #perl6
01:25 Ched joined #perl6
01:30 alanhaggai joined #perl6
01:42 Auzon joined #perl6
01:43 alester joined #perl6
01:45 mncharity curious the number of people saying I shouldn't be spending time on p6.  most odd.
01:45 vixey :(
01:49 mncharity yeah. :/
01:49 pugs_svnbot r20475 | putter++ | [elf] A few .perl(), method traits, run-test result updates, some unfinished work on Analysis.
01:50 vixey mncharity: I think it's great :)
01:50 mncharity :)
01:53 mncharity have a ~no-performance hit plan for  'my $x is context; ... $^x' but needs Analysis fleshed out a bit.
01:54 mncharity higher priority is getting Hash initialization, Pairs and Lists (non-lazy) made more real/usable.
01:56 mncharity tweak regex handling, the one(?) slimey emitter trick being used.
01:57 mncharity need some format to view and debug code analysis, and more easily see the parse.  html with pop-ups maybe.
01:58 mncharity good night vixey, all &
01:58 vixey night
02:04 spinclad moritz_: re proper 'waking times':  uptime  :)
02:04 Alias_ joined #perl6
02:06 Alias__ joined #perl6
02:07 Alias__ joined #perl6
02:10 spinclad and though i say it too late, /me thinks elf is the bee's knees.  it's great to see STD made 'flesh', and to have multiple implementations active and feeding each other.  mncharity++
02:11 spinclad (rakudo is, of course, the camel's pyjamas.)
02:13 Auzon Agreed. elf++.
02:13 Auzon and mncharity++ too :)
02:22 eternaleye joined #perl6
02:29 lesner2 joined #perl6
03:02 elmex_ joined #perl6
03:27 Alias_ joined #perl6
03:33 Alias_ joined #perl6
03:37 pbuetow_ joined #perl6
04:45 [particle]ventus joined #perl6
04:45 [particle]ventus left #perl6
05:22 baest joined #perl6
05:25 schmalbe joined #perl6
06:15 masak joined #perl6
06:27 rindolf joined #perl6
06:31 meppl joined #perl6
06:45 iblechbot joined #perl6
06:52 lesner2 joined #perl6
06:56 carlosf joined #perl6
07:40 eternaleye joined #perl6
07:41 elmex_ joined #perl6
08:06 pmurias joined #perl6
08:27 Grrrr joined #perl6
09:14 ruoso joined #perl6
09:21 jjore joined #perl6
09:34 pugs_svnbot r20476 | lwall++ | [STD] regex rewritten for EXPR (untested)
09:34 pugs_svnbot r20476 | lwall++ | experimenting with single dynamically scoped stop pattern for final quotes etc.
09:48 masak can I `goto` into a loop in perl 6?
09:49 masak S04 mentions for loops, but not loops in general
09:49 b_jonas joined #perl6
09:50 masak assuming a while loop "require[s] no special initialization of parameters", can I goto into it?
09:50 moritz_ "... it is possible to "goto" into a lexical scope, but only for lexical scopes that require no special initialization of parameters."
09:51 masak so whether I can goto into the while loop depends on whether it says `while ( something() ) {...}` or `while( my $var = something() ) {...}`?
09:51 masak or am I misreading the meaning of 'parameters'?
09:52 moritz_ while (my $var =..) is perl 5
09:52 moritz_ in Perl 6 you say for .. -> $var { ... }
09:52 masak moritz_: it's not disallowed in perl 6, is it?
09:53 moritz_ masak: I seem to recall that STD.pm throws an "this is perl 5 code" error
09:53 masak I know about the pragmatics, I'm talking about which while loops you can goto into
09:53 masak bit harsh, if you ask me
09:53 moritz_ ;)
09:53 masak perl usually allows different ways to code things
09:53 masak some people think in while loops
09:54 moritz_ they'd better stop ;)
09:54 masak but why?
09:54 masak what's the rationale for disallowing it, apart from it being a common pattern of perl 5?
09:55 moritz_ dunno
09:55 b_jonas I wonder why perl6 doesn't add the fourth loop control statement though
09:55 moritz_ but part of Perl 6 philosophy is that althought TIMTOWTDI we provide a strong, good default
09:55 b_jonas S4 lists only next, last, redo
09:56 moritz_ and something that checks a condition and returns one item for each check *is* an iterator, even if you don't think that way
09:56 masak moritz_: I would still make it a warning, not a compile error
09:56 moritz_ STD.pm:768 (for reference)
09:56 masak as in 'while (my $b = sth()) is nowadays written for =$sth -> $b'
09:57 moritz_ a wait, it only panics if you have something that looks like <$handle> or <handle> inside the while loop
09:57 moritz_ so 'while (my $b = sth()){...}' still works
09:58 masak b_jonas: what do you consider missing?
09:58 masak moritz_: good :)
09:58 b_jonas masak: retry is how they call it in ruby
09:58 b_jonas it's like this:
09:58 masak b_jonas: how is it different from redo?
09:59 b_jonas <retry goes here> while (a) { <redo goes here> d <next goes here> } <last goes here>
09:59 * moritz_ considers writing a perlmonks meditation "parsing perl 5 and perl 6" or somethiing along these lines
09:59 b_jonas though of course it's a bit more complicated if the block is not just a simple while loop
09:59 moritz_ retry starts the loop all over again?
09:59 b_jonas yep
10:00 masak maybe just goto the loop label?
10:00 moritz_ I don't even use redo myself ;)
10:00 b_jonas you have to give a loop label for that
10:00 masak moritz_++ # write it
10:00 masak b_jonas: yes
10:00 b_jonas in most of the cases, I use next, redo, and last without a label
10:00 b_jonas though sometimes I do use a lable
10:00 masak I think you should use a label if you use next, redo or last
10:01 masak just my personal opinion
10:01 b_jonas by the way, ruby loop control (and also yield and return) have the correct lexical scoping semantics like perl6 does
10:01 b_jonas they need that too, because of how common iterators are in ruby
10:01 b_jonas otoh ruby doesn't support loop labels
10:02 masak that's a surprise
10:02 b_jonas masak: I disagree with that
10:02 masak with the labels thing?
10:02 b_jonas no, with that you should always write goto isntead of redo/last/next
10:02 moritz_ b_jonas: btw perl 6 doesn't have a 'yield'
10:02 wknight8111 joined #perl6
10:02 masak b_jonas: I didn't mean it like that
10:03 masak I just said that you could emulate 'retry' with a goto LABEL
10:03 b_jonas moritz_: nor a retry. but according to S04, the goto and last/next/redo are lexical
10:03 b_jonas and iirc even return is, because it doesn't act on some forms of subroutines
10:04 b_jonas I think that's also how return works in smalltalk
10:04 b_jonas but I'm not sure
10:04 b_jonas masak: oh, sure you could
10:04 masak that, and only that, was my point
10:04 b_jonas and it's probably the least common of the four too
10:04 masak yes.
10:04 masak and it has more than four letters
10:04 masak so it doesn't really fit in
10:04 b_jonas but perl6 seems to strive for completeness in these kinds of things
10:04 b_jonas meh, you could rename it
10:05 masak retr?
10:05 b_jonas ruby calls last "break"
10:05 b_jonas (which is used for something else in perl5.10 now)
10:05 b_jonas and I think it calls next "continue" like C
10:05 masak nobody's perfect :)
10:06 b_jonas I think it's the C instinct
10:07 masak probably
10:10 b_jonas though otoh, with iterators and useful iterator methods in the core library, you use loop control a bit less often than in perl
10:10 b_jonas but it's still very useful
10:11 dalek joined #perl6
10:19 pmurias moritz_: re everything is an iterator, aren't iterators just an implementation detail in perl6?
10:19 Psyche^ joined #perl6
10:20 pmurias as lazy lists are used as the more high level/civilised alternative
10:20 pmurias ?
10:21 Psyche^ joined #perl6
10:21 moritz_ pmurias: a lazy list conceptually *is* an iterator (+ more)
10:27 pmurias the same way as loops are gotos
10:27 moritz_ I disagree ;)
10:32 FurnaceBoy joined #perl6
10:34 pmurias interetors aren't even properly speced (mentioned as implementation detail only in the synopsis) and should not be used
10:37 * pmurias is not really responsives as he uses a windows-- box in the other room for j2me and walks out onto the terrace in order that the gps catches signal
10:40 moritz_ so in 'for =$fh -> $x { ... }', does '=$fh' return a lazy list?
10:41 moritz_ if so, does it stay in memory by default?
10:41 pmurias it's an optimialisation
10:42 moritz_ so is it specced that =$fh returns a (lazy) list?
10:42 pmurias you could do while (my $x = @lazylist.shift) {...}
10:45 pmurias moritz_: we have an iterate interator operator :( ?
10:45 pmurias s/?//
10:46 pmurias so =$fh retuns a single element in item context
10:46 pmurias * returns
10:50 moritz_ but 'for' provides list context
10:51 pmurias in list context it returns a lazy list
10:52 moritz_ what does that mean for code like 'for =$fh { last if m/STOPPER/ }; say ~=$fh;'?
10:53 moritz_ does that mean that the =$fh in list context consumes (lazily) all of the file content?
10:53 pmurias implementation specific
10:53 pmurias S02:3252
10:53 moritz_ please don't
10:54 pmurias what shouldn't i do?
10:54 moritz_ not you ;)
10:55 moritz_ I just think it's bad practice to make such a thing implementation dependant
10:55 moritz_ you can do batch processing and internal buffering without exposing that behaviour
10:55 moritz_ even if it's a bit more work
10:58 pmurias maybe =$fh just eats anything
10:59 pmurias * everything
10:59 smtms joined #perl6
10:59 pmurias makes more sense
11:21 braceta joined #perl6
11:24 masak joined #perl6
11:39 penk joined #perl6
11:40 braceta_ joined #perl6
11:40 cookys joined #perl6
11:56 Gothmog_ [ET-152]: Timing top level created for design: def_proto, analysis mode: default
11:56 Gothmog_ .
11:56 Gothmog_ [XI-012]: TECH_USAGE: C10HP
11:56 Gothmog_ [XI-012]:       STEP: 5/1000 MICRON
11:56 Gothmog_ args
11:56 Gothmog_ sry
12:30 ispy_ joined #perl6
13:36 wknight8111 joined #perl6
13:41 b_jonas joined #perl6
13:44 rdice joined #perl6
14:17 Tene Okay, where are the actual real latest up-to-date versions of the spec kept?
14:19 kolibrie Tene: http://svn.perl.org/perl6/doc/trunk
14:19 lambdabot Title: Revision 14543: /doc/trunk
14:20 Tene kolibrie++
14:25 TJCRI joined #perl6
14:54 Southen_ joined #perl6
14:59 sscaffidi joined #perl6
15:17 jhorwitz joined #perl6
15:22 carlosf joined #perl6
15:25 charsbar joined #perl6
15:29 Jedai joined #perl6
15:33 chris2 joined #perl6
15:58 donaldh joined #perl6
15:59 smtms joined #perl6
16:02 FurnaceBoy joined #perl6
16:04 pugs_svnbot r20477 | pmurias++ | changed not to use paths specific to my box
16:09 pmurias ruoso: what's the rule if a identifier belongs in smop_identifiers.h?
16:10 ruoso pmurias, in theory, every identifier that will be used by any of the core types can be in that file
16:10 ruoso but in other case,
16:10 ruoso if something is going to be present for the entire execution
16:10 ruoso like some identifier present in the source file
16:11 ruoso it can be declared as a const identifier later
16:11 ruoso and it will behave just like the ones listed in smop_identifiers.h
16:17 iblechbot joined #perl6
16:22 charsbar joined #perl6
16:30 pbuetow joined #perl6
16:35 Eevee_ joined #perl6
16:40 pbuetow joined #perl6
16:42 justatheory joined #perl6
16:47 Psyche^ joined #perl6
16:50 sscaffidi joined #perl6
16:50 meppl joined #perl6
17:02 pmurias ruoso: why do some objects hava a NULL responder interface instead of it pointing to them
17:02 pmurias ?
17:03 ruoso well...
17:03 ruoso the responder interface object could have a pointer to itself
17:04 ruoso but the thing is that
17:04 ruoso the responder interfaces are all objects too
17:04 ruoso that are refcounted too
17:04 ruoso so, I thought it would be simpler to have it explicit in the low level
17:04 ruoso that responder interface objects can have a NULL responder interface
17:05 ruoso then call to destruction and stuff would not recurse
17:05 pmurias a NULL responder interface seems a bit hackish
17:06 ruoso NULL simply means that there isn't one
17:07 ruoso which means that this object is its own responder interface
17:07 ruoso I really couldn't find another way of doing it...
17:07 ruoso a recursive pointer seems even more hackish to me ;)
17:08 pmurias why?
17:08 ruoso it's a "recursive pointer" after all
17:08 ruoso ;)
17:08 ruoso even the name is hackish ;)
17:08 ruoso heh
17:08 eternaleye joined #perl6
17:08 ruoso and besides... that's the way to interrupt the infinite loop
17:09 ruoso in the destruction , mainly
17:09 ruoso because the responder interfaces might be subject to garbage collection as well
17:10 pmurias refcouting not proper garbadge collection ;)
17:10 ruoso well... smop can have another gc in the future
17:10 ruoso in fact
17:10 ruoso it can have as many GCs as pleased
17:10 ruoso all coexisting
17:12 pmurias a quick ack shows that nothing acces the responder interface via RI
17:12 [particle] karma ack
17:12 [particle] ack++
17:13 ruoso pmurias, in the moment you fetch the responder interface from the object,
17:13 ruoso it's handled as "just another object"
17:13 pmurias yes
17:13 ruoso and that object might even have a different RI
17:13 pmurias but a NULL is turned into the responder interface it represents
17:13 pmurias than
17:13 ruoso nope...
17:14 ruoso if you try to fetch the RI from an object that have NULL as RI
17:14 ruoso it will return the object itself
17:14 pmurias yes
17:14 pmurias but a NULL is equivalent to the object it is stored in
17:15 pmurias as it is only accessed via SMOP_RI
17:16 pmurias what i'm unsure if the responder iterface being it's own responder interface is a good default
17:18 ruoso I'm not sure I understand what you're saying
17:19 ruoso there's not really a default
17:19 ruoso it's just the API
17:19 ruoso if a responder interface declares itself as the responder interface
17:19 ruoso it should just work
17:20 ruoso as long as it doesn't recurse ad infinitum
17:22 pmurias it can't recurse as the responder interface is a lowlevel thing and it's fields are accessed in a non-oo way
17:23 ruoso I mean in the destruction
17:23 ruoso since the destruction code will call SMOP_RELEASE on the responder interface
17:23 ruoso I mean...
17:24 ruoso the destruction code for the default lowlevel implementatiobn
17:24 ruoso it obviously can be something different for that responder interface
17:24 ruoso and in fact...
17:24 ruoso most responder interfaces in the core lowlevel have no-ops in the SMOP_RELEASE call
17:25 pmurias there's a (SMOP__Object*)responder != obj) check in smop_lowlevel_generic_release
17:25 ruoso because they are initialized and destroyed manually by smop_init
17:25 ruoso and smop-destr
17:25 ruoso that is there for another purpose... but it solves that problem as welll :)
17:27 ruoso that's a nice thing in SMOP
17:27 ruoso everything is so in the right place that everything fits
17:27 ruoso even for things they were not planned to
17:27 pmurias everything except slime ;)
17:27 ruoso yeah... SLIME is... slimish...
17:28 ruoso but I'm not sure that there is a cleaner way of implementing a run loop
17:28 ruoso I mean
17:28 ruoso in such short numbers of loc
17:31 ruoso pmurias, but do you think you'll be able to have something spitting smop-linked C code from elf?
17:31 pmurias what's the benefit of a RI using itself as it's RI instead of a specialised RI for RI's
17:32 pmurias ruoso: yes, do you need it?
17:32 ruoso pmurias, SMOP will... as the abstraction level of the builtin types increase...
17:32 ruoso more and more it needs to be done inside the run loop
17:32 pmurias i can work on it if it's needed for something
17:32 ruoso pmurias, the benefit is not having a meta-RI
17:33 pmurias a meta-RI would be nice
17:33 ruoso but it would work just as fine if there is one
17:33 ruoso it's not something that I'd like to require
17:33 pmurias instead of having a herd of meta-RI?
17:33 pmurias s/?//
17:34 ruoso maybe... but these are all too-lowlevel to make much difference...
17:35 pmurias the pointing to itself thing is also used as hack for new to work in some places
17:35 ruoso some places in smop?
17:35 pmurias yes
17:35 pmurias Frame i think
17:36 ruoso are you sure?
17:37 pmurias yes
17:37 ruoso where?
17:38 pmurias there's lots of ugly smop_slime_frame.c which prove it beyond doubt
17:38 pmurias * ugly if's
17:38 pmurias in
17:39 ruoso hmmm... that's because of the "RI as Prototype" thing (that I'm not sure that is documented)
17:40 ruoso it's not actually pointing to itself...
17:40 ruoso it's just because the RI object is used as the Class
17:40 ruoso actually prototype
17:40 ruoso for this objects
17:41 ruoso maybe it would be better to have another object+RI for the prototype
17:42 ruoso for the constructor, actually
17:43 cjfields joined #perl6
17:43 ruoso but that's one of the things that shows why we'll need a compiler to generate that code as soon as possible
17:44 ruoso because we can't get rid of that increasingly complex set of environment conditions
17:44 ruoso except by having a higher-level language
17:44 ruoso but actually... the more I think, the more I realise that the Perl 6 code in SMOP will always be compiled to native code...
17:45 ruoso to native code that initialize the optree..
17:45 ruoso but native code...
17:45 ruoso it can, of course, parse the code directly...
17:45 * pmurias actually plans/hopes that a jit will be used instead of an optree
17:46 pmurias ruoso: you mean a lowlevel perl6 subset
17:46 * ruoso hopes somebody that knows how to write a jit comes along ;)
17:46 ruoso pmurias, yeah... a lowlevel perl6 subset will be needed as soon as I finish writing p6opaque
17:47 ruoso to write the builtin types
17:47 ruoso things like Hash
17:47 ruoso for instance
17:47 ruoso writing the C code for that by hand will be extremely painfull
17:47 ruoso because it will have to be integrated to the smop run loop
17:48 ruoso because it needs to call eqv on unknown objects
17:48 ruoso that might even be implemented in perl5
17:48 ruoso (not eqv actually... but ===... but it doesn't make any difference...)
17:49 ruoso so Perl 6 for SMOP *really* needs to be implemented in Perl 6
17:49 ruoso it's not just something fancy...
17:49 ruoso it's mandatory
17:50 pmurias or in a other high-level language of choice
17:50 pugs_svnbot r20478 | pmurias++ | [smop] removed double nulls at string ends
17:50 ruoso sure..
17:50 ruoso it's just natural that language to be Perl 6
17:51 ruoso but I really wouldn't bother having it written in any other language...
17:51 ruoso (except if I'm the one writing it ;)
17:51 ruoso (then it needs to be Perl 6 ;)
17:52 pmurias what i like very much about the oo all down design, is that it should be possible to play with vm internals in high-level language, or even replace parts with a performance loss
17:53 ruoso or with a performance gain
17:53 ruoso which is actually the plan about the run loop
17:53 ruoso and the GC
17:53 ruoso and about everything else, except the lowlevel API
17:53 ruoso :)
17:53 ruoso and the code written in Perl 6
17:53 ruoso ;)
17:55 pmurias those parts have to be in a lowlevel language
17:56 ruoso sure... but I'd like to have the Perl 6 builtin types written in Perl 6 (not the native types)
17:56 ruoso so... when you look closer...
17:56 ruoso you'll see that smop really really is just smop.h
17:57 ruoso smop_base.h, actually
17:57 cjfields_ joined #perl6
17:57 pmurias ruoso: should i write a meta-RI a banish the NULL trick and see if nothing bad happens?
17:58 pmurias s/a/and/
17:58 ruoso you could... I don't see much benefit... but if you do... I'm all for it
17:58 * ruoso going home... I should be back later today...
17:59 pmurias have a safe trip ;)
17:59 ruoso :)
18:06 pmichaud joined #perl6
18:15 b_jonas joined #perl6
18:23 renormalist joined #perl6
18:25 cognominal_ joined #perl6
18:27 dalek joined #perl6
18:27 pugs_svnbot joined #perl6
18:30 TJCRI joined #perl6
18:31 pmichaud joined #perl6
18:33 Juerd joined #perl6
18:35 wolverian joined #perl6
18:47 Ched- joined #perl6
18:48 TJCRI joined #perl6
18:59 pmichaud are the parameters to .new()  allowed to initialize private attributes?  or just public ones?
19:07 TimToady you are allowed to pass any random named arguments to any method, and the method is allowed to ignore any it doesn't feel like dealing with
19:07 TimToady that's why methods have a %_ by default
19:07 TimToady so it depends on whether the BUILD pays attention to them
19:07 TimToady as to the answer to that, I dunno... :)
19:08 TimToady seems like the default BUILD probably shouldn't presume to know about private attributes
19:08 armagad joined #perl6
19:09 TimToady but in general there is no requirement that the arguments to BUILD must be attr names
19:12 pmichaud I guess I'm asking about the default
19:13 pmichaud i.e., does the default BUILD use the named parameters of .new() to initialize private attributes?
19:13 pmichaud or, more to the point, how does the default BUILD initialize private attributes?
19:13 TimToady and can it even know how in general?
19:13 pmichaud sorry
19:13 pmichaud I meant to ask without "private"
19:14 pmichaud or, more to the point, how does the default BUILD initialize attributes?
19:14 TimToady probably asks the .HOW of the object to do it
19:15 pmichaud so, given   .new( foo=> 1)
19:15 pmichaud on a class that    has $.foo;
19:15 pmichaud does BUILD effectuate a bind of $.foo, or does it try to do initialization using the $.foo accessor, or ... ?
19:15 TimToady I suppose it must know about $!foo as well in order to do it right
19:16 TimToady when an object is building its part of the current object, it should probably only be concerned with its own $!foo
19:16 Eevee what if both exist?  (or is $.foo just an auto-generated method that touches $!foo?)
19:17 TimToady so either BUILD has to know the object repr, or has to ask the .HOW how to tell the object to init $!foo
19:18 TimToady $!foo is the physical storage.  $.foo is just the accessor, which does not require $!foo to be implemented by this class, as long as some base class does it.
19:19 pmichaud okay, that fits with the mental model I've been using lately
19:19 TimToady however, if this class does have $!foo, then $.foo should certainly know enough to find it.  :)
19:20 TimToady which I think comes down the the fact that you never autogenerate the accessor unless you also have storage
19:20 pmichaud okay, so far we're in accord.
19:20 TimToady other access to $.foo happens by inheritance to a "real" $.foo
19:20 pmichaud so then would we expect the BUILD method to initialize the storage, use the accessor, or "not care"?
19:21 TimToady we don't use the accessor to init
19:21 pmichaud (where "not care" means "implementation gets to decide as long as the outer semantics are preserved")
19:21 pmichaud okay.  So BUILD effectively initializes the storage, then?
19:21 TimToady if you try to use the accessor, you're probably stomping on some other class's BUILD's private var
19:21 TimToady BUILD is a submethod, so should only modify $!foo
19:21 pmichaud got it.
19:22 pmichaud at least enough to get rakudo started in the right direction.
19:22 Juerd pmichaud: I built a hack to restart apache2
19:23 TimToady in general, if BUILD sees an accessor, it'll be to some base class's storage that has already been inited by BUILDALL
19:23 Juerd pmichaud: Uptime was approx 12 hours :(
19:23 pmichaud Juerd: okay, good.  I was watching it earlier and didn't notice anything odd, so it must have occurred quickly.
19:23 pmichaud TimToady: S12 also has
19:23 pmichaud submethod BUILD ($tail, $legs) {
19:23 pmichaud $.tail = $tail;
19:23 pmichaud $!legs = $legs;
19:23 pmichaud }
19:24 pmichaud is that $.tail there meant to be "as if" or real?
19:24 Juerd pmichaud: It started right after the box was rebooted...
19:24 Juerd pmichaud: http://feather.perl6.nl/~juerd/feather1.perl6.nl-memory-week.png
19:24 Juerd pmichaud: BTW, it could be that apache2 is the first process killed by the kernel, but not the cause of the problem. We'll see.
19:24 TimToady I think the intent there was that you could use $.tail to refer to $!tail
19:25 TimToady but it could also be illegal; seem to recall some restriction of submethods to ! attrs somewhere...
19:25 pmichaud yes, I remember seeing that.  It's an overridable warning
19:26 pmichaud S12: In fact, within submethods, use of the $.foo form on attributes that are available as $!foo (that is, that are declared directly by this class) is illegal and produces a dire compile-time warning (which may be suppressed).
19:26 TimToady yeah, just found it myself and was about to paste. :)
19:31 speckbot r14544 | larry++ | S12 contradiction noted by pmichaud++
19:33 pmichaud ooooh, speckbot!  I like it.
19:37 syle joined #perl6
19:51 sepia-- joined #perl6
20:01 ruoso joined #perl6
20:20 iblechbot joined #perl6
20:21 mj41 joined #perl6
20:22 pmurias ruoso: how should the meta RI be called?
20:22 Auzon moritz_: ping
20:23 ruoso pmurias, meta_ri?
20:23 ruoso :)
20:23 ruoso smop_lowlevel_meta_ri
20:23 ruoso to keep the namespace sane
20:24 ruoso this is C after all
20:24 PerlJam joined #perl6
20:26 pmurias ruoso: would {{p6 code to create Nodes}} be an acceptable replacement for q:code {}?
20:26 ruoso my idea of q:code { } was to make it compatible with the "quasiquotes"
20:28 pmurias q:code is harder to implement fast
20:30 pmurias while {{}} would be a very easy hack
20:30 TimToady um, the code inside a macro is already supposed to be creating AST; why do you need {{}}
20:31 pmurias TimToady: i'm talking about C code
20:31 TimToady *nod*
20:32 pmurias smop uses a C + quasi quotes variant some parts of it
20:32 pmurias but it's abdominaly slow as the processor is writen in kp6
20:33 PerlJam "abdominaly slow"?
20:33 PerlJam like how you react after a punch to the gut?
20:33 TimToady they didn't tell you what "const" is short for?
20:34 pmurias PerlJam: ;)
20:34 * pmurias should spend more time with the dictionary
20:35 pmurias * abominably
20:35 PerlJam I liked your first word better for some reason :)
20:37 FurnaceBoy joined #perl6
20:38 pmurias so i thought the option of just embeding the output of arbitary perl6 code would be a workaround
20:41 pmurias ruoso: do you think that writing the nodes out that way would be too tedious?
20:42 ruoso by hand?
20:42 ruoso well... take a look at the generated code
20:42 ruoso if you can read it...
20:44 TJCRI joined #perl6
20:44 pmurias i mean in the Frame.new(nodes=>[Node.new(result=>...),Node.new(...)]) form
20:51 polettix joined #perl6
20:51 Auzon ruby
20:51 Auzon doh
20:52 Auzon This isn't my terminal :)
20:52 * Auzon is perplexed at why elf is throwing ruby errors...
20:53 Patterner elves are evil.
20:53 pmurias Auzon: the parser is in ruby
20:53 Auzon Yes, I realize that. But elf works for me on $localhost.
20:54 pmurias Patterner: elfs are not evil. ;)
20:54 Tene So, I wonder how much more work I'll have to do on cardinal before I can run elf on ruby on top of parrot. ;)
20:57 Auzon Hm. autobox 2.52 hasn't made it to my local cpan mirror, apparently...
20:59 Auzon which includes ftp://ftp.cpan.org/pub/CPAN. I am befuddled.
21:00 pmurias ruoso: does the rakudo sm0p grammar work?
21:01 ruoso didn't tried much
21:01 ruoso it was a sketch only
21:01 ruoso pmurias, if you can write a faster parser for the Frame.new(...) syntax...
21:02 pmurias elf is a resonably fast parser
21:02 ruoso couldn't elf parse sm0p
21:02 ruoso ?
21:03 pmurias thinking about it
21:03 pmurias elf's parser is in ruby
21:03 pmurias and elf dosn't do rules yet
21:04 cjfields joined #perl6
21:07 explorer joined #perl6
21:07 pmurias shouldn't be that hard really
21:08 polettix joined #perl6
21:09 Chillance joined #perl6
21:10 dolmen joined #perl6
21:15 Auzon aha. It was just cpanplus not playing nice.
21:28 sscaffidi_ joined #perl6
21:37 kane_ auzon: ftp.cpan.org is a round robin
21:37 kane_ it picks whatever mirror is closest to you... that one was probably not sycned up yet
21:37 Auzon Nah, the problem was my local cache
21:37 Auzon I had to give cpanplus the 'x' command to purge it and refetch
21:37 Auzon Thanks anyway :)
21:47 Auzon joined #perl6
21:50 cjfields pugs: role Foo { has $.a; method set_a ($inv: $a) { $inv.a = $a } }; class Bar does Foo {}; my $b=Bar.new(a => 42); say $b.a;
21:50 exp_evalbot OUTPUT[42␤]
21:50 cjfields rakudo: role Foo { has $.a; method set_a ($inv: $a) { $inv.a = $a } }; class Bar does Foo {}; my $b=Bar.new(a => 42); say $b.a;
21:50 exp_evalbot OUTPUT[Method 'unshift' not found for invocant of class 'Undef'␤current instr.: 'parrot;Perl6;Grammar;Actions;_block2140' pc 113753 (src/gen_actions.pir:5680)␤called from Sub 'parrot;Perl6;Grammar;Actions;declare_attribute' pc 113164 (src/gen_actions.pir:5451)␤called from Sub
21:50 exp_evalbot ..'parrot;Perl6;Grammar;Actions;_block2233' pc 111837 (src/gen_actions.p...
21:51 cjfields Rakudo doesn't have role attributes
22:12 alester joined #perl6
22:30 coolcat50 joined #perl6
22:30 coolcat50 hello
22:30 pbuetow hello.
22:31 Auzon Hi.
22:32 coolcat50 Hmm, I have noticed that Perl 6 is going to have a built in compiler.
22:32 coolcat50 Is that true?
22:33 Auzon Compiler to machine code? I'm pretty sure.
22:33 coolcat50 Yeah, I personally am tired of C++ because of it's syntax.
22:33 Juerd coolcat50: Perl 5 also has a built in compiler. What target would you like to compile for?
22:34 coolcat50 I wish to compile into a Windows executable
22:34 Auzon Some implementations compile to other languages, such as Perl 5, Perl 6, Javascript, or Lisp (the latter two being defunct)
22:34 Juerd Perl 5 can't build executable files. Perl 6 is a language specification, but there will probably be an implementation that can create a windows executable.
22:34 coolcat50 Yes. That is what I need.
22:35 Auzon coolcat50: Have you tried PAR? It lets you package a Perl script into a self-contained executable. The benefit you get is the packaging, not speed, however.
22:35 Juerd coolcat50: Don't *wait* for it though. Can take some time :)
22:35 Juerd Auzon: I believe that PAR is generally way too slow for any real life use.
22:35 coolcat50 Yeah. I have looked online, and I cannot find a feasible solution that works for Perl 5.10.
22:35 Juerd It feels like a proof of concept.
22:36 coolcat50 What I really want is to be able to convert my Perl into C code, and be able to compile it there.
22:36 Auzon Juerd: Maybe so, but I have a few computers using it for simple scheduled tasks
22:36 coolcat50 The only feasible compiler I have found is built into tinyperl.
22:36 Auzon Anyway, coolcat50, I believe at least one implementation will target that.
22:37 coolcat50 Which I have not been able to successfully put the Tk library into my tinyperl.
22:37 coolcat50 I currently use Strawberry Perl and will most likely switch to ActivePerl.
22:37 Juerd Personally I wonder why in Win32 it's such a common wish to build native executables. Everything on that platform comes with an installer, so why not just install Perl?
22:37 Juerd coolcat50: Interesting. Many people are switching in the other direction.
22:38 coolcat50 Most computer noobs don't know jack about perl.
22:38 Juerd coolcat50: They don't have to.
22:38 Juerd coolcat50: The installer installs Perl and some icon to run your program with Perl.
22:39 coolcat50 I have thought about that. Making an installer that installs a Perl built into a directory and run the program with a C++ executable.
22:39 coolcat50 Or something.
22:39 Juerd What's the C++ executable for?
22:39 coolcat50 For them to run the program.
22:40 IllvilJa joined #perl6
22:40 coolcat50 So a command prompt window is not opened.
22:40 Juerd Perl can take a filename on the commandline. "perl C:\yourprogram.pl" would work. User doesn't have to know because you put this in a LNK (I believe they're called shortlinks? shortcuts?)
22:40 Auzon shortcuts.
22:40 coolcat50 Ya. shortcuts
22:40 Juerd If I recall correctly, there's already a way to avoid this window.
22:40 coolcat50 In batch?
22:40 Auzon I know there is with the system() call, at least
22:40 Juerd PIF perhaps.
22:41 coolcat50 or through the .lnk
22:41 Juerd Maybe START.EXE
22:41 coolcat50 there is start yes
22:41 Juerd I haven't used Windows as my primary platform since 2000
22:41 Juerd I'm forgetting things.
22:41 coolcat50 I prefer Linux Mint over XP.
22:41 coolcat50 I had Vista.
22:41 Juerd Also I used the Dutch windows so I'm not familiar with the English terminology there.,
22:42 coolcat50 I just have XP in order to run my games and common applications for school.
22:42 Juerd In Dutch an LNK is called a "snelkoppeling" but the literal translation back to English would be "quick coupling".
22:43 Juerd coolcat50: You don't have to justify your choice of platform.
22:43 coolcat50 Yeah! lol
22:43 coolcat50 Just wondering? What Linux distros do the Perl devs run?
22:44 Auzon I personally run Fedora, and I believe Larry and a few others do as well.
22:44 Auzon Debian is a popular server choice, and judging from some README entries, people like Ubuntu
22:44 Juerd I run Ubuntu on my laptops, Debian on my servers.
22:44 coolcat50 Ah, I have never used Fedora. I have only tried out Ubuntu and its variants as well as Mandriva
22:45 coolcat50 I may try Fedora through a Live CD. I have heard good things about it
22:45 Psyche^ joined #perl6
22:45 Juerd I've used many distributions and eventually determined that I liked Debian best because of the vast repository it has. Then Ubuntu came along, based on Debian and its repository, with some innovative features that save me time.
22:45 Auzon I used Fedora 1-3 when they came out, and I must say that 8 is a LOT better. 9 has a few quirks, but I'm using it now
22:46 coolcat50 Linux Mint I believe is much better than Ubuntu.
22:46 coolcat50 Much better graphics, an even greater repository, built-in MP3 support and stuff like that.
22:46 Juerd I'm under the impression that Fedora is very popular with long-time Linux users, who originally used Red Hat.
22:46 Auzon I think I tried that one in a Virtual Machine. It was quite flashy.
22:46 coolcat50 Great looking theme as well.
22:46 coolcat50 Is Red Hat not made anymore/
22:47 coolcat50 ?*
22:47 lambdabot Maybe you meant: . ? @ v
22:47 Auzon RHL, the free official version isn't.
22:47 coolcat50 Ah.
22:47 Auzon RHEL, the enterprise one that you pay for is still being made. We have it in labs at school.
22:47 coolcat50 My school has mainly Mac OS 9
22:47 coolcat50 Which I laugh at.
22:47 Auzon Really? Ugh.
22:48 Juerd RHEL is ported to CentOS, an open source fork.
22:48 Juerd I encounter CentOS more often than RHEL. Cheap bastards ;)
22:48 coolcat50 Yeah. A few computers run XP professional.
22:48 Auzon Heh. I run it on a server nearby.
22:48 coolcat50 CentOS?
22:48 Auzon CentOS, that is.
22:48 Auzon Community ENTerprise OS
22:48 Juerd coolcat50: CentOS is basically RHEL re-branded :)
22:48 coolcat50 Is it a free RHEL?
22:48 Auzon Basically, a de-branded RHEL
22:48 coolcat50 Ah lol!
22:48 coolcat50 I'm a noob to Linux.
22:48 Auzon It's binary compatible in all other ways
22:49 Juerd coolcat50: Everyone's a noob in the beginning.
22:49 coolcat50 I'm pretty new to programming as well. Entirely taught.
22:49 coolcat50 By myself.
22:49 Auzon I feel like I still have tons to learn after 5 years of using Linux and 4.5 of Perl
22:49 Juerd coolcat50: Maybe you would like the book Beginning Perl, which is a nice way to learn Perl and some good programming techniques.
22:49 Juerd coolcat50: It's free: http://tnx.nl/bp
22:49 lambdabot Title: Beginning Perl - perl.org
22:49 coolcat50 I've read Perl for Dummies
22:49 coolcat50 lol
22:50 Juerd coolcat50: Are you a dummy?
22:50 coolcat50 I'm only 14, so I just picked up a book from barnes and nobles
22:50 Juerd Those books are only for dummies, and I strongly believe that dummies should not write software.
22:50 coolcat50 One that seemed incredibly easy.
22:50 Juerd coolcat50: Age is irrelevant.
22:50 coolcat50 I know.
22:50 Auzon Juerd: The appeal of the Dummies books for me is/was the humor.
22:50 coolcat50 I am far from a dummy.
22:51 Auzon coolcat50: That's when I started with Linux and Perl. Well, 13. Seems so long ago now
22:51 Juerd (I myself started "programming" (if you can call it that) when I was approx 8, 9)
22:51 coolcat50 Lol!
22:51 coolcat50 Nice!
22:51 lisppaste3 joined #perl6
22:51 coolcat50 I started wishing to make a website at around 10 and started learning HTML.
22:51 coolcat50 Got into real computer stuff recently.
22:51 Juerd It wasn't until I was 15 before I discovered Linux and Perl.
22:51 Auzon coolcat50:  Again, sounds like me ;)
22:52 coolcat50 Lol!
22:52 Juerd I had wasted my time with Quick and Visual Basic before that.
22:52 coolcat50 I have tried VB. Not very impressed.
22:52 coolcat50 I made a Web Browser after reading 3 pages of a tutorial.
22:52 coolcat50 Way to easy.
22:52 Juerd When I was 10, there wasn't much consumer internet in my country. I don't know about the rest of the world.
22:53 coolcat50 Depends. When were you 10?
22:53 Juerd I made my first HTML page when I was 12, in 1995. :)
22:53 coolcat50 Ah 1993. I'm not sure then
22:53 coolcat50 That's when I was born lol.
22:54 Juerd The first Dutch consumer ISP, XS4ALL, was founded in 1993.
22:54 Juerd It took a while before this internet thing got well known and popular.
22:55 Auzon Cute name, XS4ALL
22:55 Juerd The first months I thought that IRC was the Internet.
22:55 coolcat50 Lol!
22:55 Juerd I couldn't get other programs on the free diskette to work, except Trumpet Winsock and some IRC client.
22:55 coolcat50 Well, I'm gonna go eat. brb
22:55 Juerd But this IRC client did everything internet promised: I could talk to people all over the world, share files (DCC), look up information (bots)
22:56 Juerd After a while I started wondering what all the line noise was about. IRC modes, netsplits, and those http://... thingies!
22:56 Auzon Very cool, to be online at that time.
22:56 Juerd Someone helped me install a browser
22:56 Juerd And I found a whole new world AGAIN.
22:57 Juerd I was 12, and doing it secretly. My parents couldn't know that I was getting them huge phone bills.
22:57 Auzon Aha.
22:57 Juerd So I couldn't talk to anyone about it except my new online friends :)
22:57 Juerd Thats when duality began in my life :D
22:57 Auzon duality?
22:58 Juerd Two lives.
22:58 Juerd Offline and online.
22:58 Auzon Makes sense. I'm only now moving away from it.
22:58 Juerd Only recently (some 7 years ago) they merged again :)
22:58 Juerd I started meeting the people I met online, and more of the people I knew in real life got internet access at home.
23:00 Juerd It is no longer a geek/corporate thing to use the internet for interpersonal communication
23:00 Juerd Heck, even my grandfather (aged 84) does that now.
23:00 Juerd (in Kubuntu by the way; Windows confused the heck out of him.)
23:01 Juerd It's funny to see old people use computers :)
23:01 Auzon Yeah, it is.
23:01 Auzon Some take to them easily.
23:03 Juerd Clicking without dragging is hard for my grandpa.
23:03 Juerd Double clicking is near impossible.
23:03 Juerd But he found a trick that I hadn't thought of yet: select an item using the mouse, then press enter.
23:03 Auzon I've seen those patterns with people that lack that fine motor control. I saw it in my grandparents as well.
23:04 * Auzon wonders about UI research for those with less motor control...
23:04 Juerd While I have no trouble navigating with the keyboard, and I can use the mouse too, I don't use a combination of them because I tend to use one or the other.
23:05 Juerd Auzon: Well, in general keyboard interfaces would be easier for them. But the reduced capacity to learn new things is a problem there. The lack of visual clues means you have to remember more.
23:05 lisppaste3 joined #perl6
23:05 IllvilJa joined #perl6
23:05 coolcat50 joined #perl6
23:05 cognominal_ joined #perl6
23:05 justatheory joined #perl6
23:05 [particle] joined #perl6
23:05 ilogger2 joined #perl6
23:05 TimToady joined #perl6
23:05 japhb joined #perl6
23:05 lampus joined #perl6
23:05 Helios- joined #perl6
23:05 Sartak joined #perl6
23:05 orafu joined #perl6
23:05 Juerd So good old DOS like menu programs, where a visual menu is provided with a hotkey for each item, might be best.
23:05 Auzon Right.
23:06 Auzon Maybe arrow navigation.
23:06 Juerd That's a highly modal interface, though
23:06 vixey joined #Perl6
23:06 Auzon But the web poses problems here.
23:06 Juerd And practically impossible to bolt onto web browsing.
23:06 Juerd Or any interactive document viewing really.
23:07 Juerd Note how many mobile phones have really simple menus overall but switch to a much more complex user interface when you start their web browsers.
23:08 Auzon Agreed. Maybe tablets could be a help for these people.
23:08 Auzon That still relies on motor control, but it shouldn't be as conceptually hard.
23:09 Juerd I don't know.
23:11 Juerd afk
23:11 Auzon See you.
23:26 Eevee opera has a lot of accessibility stuff built in
23:26 Eevee like directional link navigation with the arrow keys, and I think it will assign hotkeys to every link on the page..  or maybe that's konqueror
23:27 Auzon I know that Konqi assigns an access key to the first 36 links on a page.
23:27 Auzon 36 URLs, that is
23:27 Auzon well,... URLs and form elements.
23:28 Eevee pretty sure it just starts at the top of the viewable area, so you can scroll down and get more
23:28 Auzon Nope, not in Konqueror at least. Try it on a big Slashdot story. The only URLs with keys are the ones that occurred at the top
23:29 Eevee well, that's pretty lame
23:29 * Eevee installs konqueror
23:30 Auzon Get ready to pull in a bunch of kdelibs.
23:30 Eevee oh good, konqueror is only 133MB
23:30 Eevee don't worry KDE, I wasn't planning on using my hard drive for anything anyway
23:30 Auzon Heh. Just install the whole desktop then.
23:31 Auzon Otherwise you might miss a helper or two.
23:32 Sartak joined #perl6
23:32 Auzon Though... you might end up with weird file associations. So maybe just installing Konqi is the way to go if you just want Konqi to use your Gnome stuff.
23:32 Auzon (Assuming you're using Gnome and not XFCE or something.)
23:32 Eevee gnome yes
23:33 Auzon In Fedora 8, I had KDE and Gnome both installed. Firefox would open things with Gnome apps, and Konqi opened them with the KDE version. It was amusing.
23:33 Eevee ouch, you're right.  it gets every link that points to the same place, but only recognizes the first 36 targets on the page
23:34 Auzon I believe Links, the text browser, does it by number. So you go from 1 to N.
23:34 Auzon Or maybe that's Lynx
23:34 Eevee meanwhile I have no idea how to make Opera do anything
23:34 Eevee I love how Opera's pref dialog has five tabs, and the last one is Advanced with some dozen or more other tabs hidden inside
23:35 lisppaste3 joined #perl6
23:35 IllvilJa joined #perl6
23:35 coolcat50 joined #perl6
23:35 cognominal_ joined #perl6
23:35 justatheory joined #perl6
23:35 [particle] joined #perl6
23:35 ilogger2 joined #perl6
23:35 TimToady joined #perl6
23:35 japhb joined #perl6
23:35 lampus joined #perl6
23:35 orafu joined #perl6
23:35 TimToady joined #perl6
23:36 Eevee aha!  shift-arrow
23:36 Limbic_Region joined #perl6
23:36 Auzon Konqueror's autoscroller?
23:37 Eevee opera's spatial navigation
23:37 Eevee this works pretty well too
23:38 Auzon hm. I haven't installed Opera on this installation yet.
23:38 Eevee huh.  apparently firefox does it too, it's just not part of the default build: http://www.mozilla.org/access/keyboard/snav/
23:38 lambdabot Title: Spatial Navigation in Mozilla
23:39 Auzon Oh, that's cool!
23:41 Eevee in konqueror, shift-up/down is..  autoscroll acceleration, apparently
23:41 Eevee interesting
23:41 Eevee but entirely useless
23:41 Auzon It's almost useful, but I can't read moving text that well.
23:43 vixey joined #perl6
23:45 japhb joined #perl6

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

Perl 6 | Reference Documentation | Rakudo