Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-03-05

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:03 ayrnieu ?eval sub hanoi (Int $n, Str $start, Str $end, Str $extra) { if ($n == 1) { say "move disk #1 from $start to $end." } else { hanoi($n-1, $start, $extra, $end); say "move disk #$n from $start to $end."; hanoi($n-1, $extra, $end, $start) } }; hanoi(3, 'a', 'c', 'b')
00:05 ayrnieu oh, evalbot did not survive.
00:05 putter :(
00:06 putter someone with feather access needs to kick it
00:06 putter (maybe)
00:06 ayrnieu anyway, that hanoi() refuses to accept the natural perl5ian invocation of hanoi(3, <a c b>); how can I call it with a list as the second argument?
00:06 ayrnieu I'm on feather, now, but I don't know how to kick it...
00:06 * putter doesnt either
00:07 putter re hanoi, *@a makes it into a list.
00:07 ayrnieu *<a b c> ?
00:08 putter think so
00:09 putter yes.
00:10 ayrnieu I guess pugs hasn't implemented this yet, then.
00:10 ayrnieu yes, I'd expected that to work last night, reading S06
00:13 putter ./pugs -we 'sub f(*@a){say join(",",@a)} f(*<a b c>)' => a,b,c
00:13 putter works
00:13 putter no?
00:14 ayrnieu um, isn't the point of the * in *<a b c> that you don't need a slurpy param?  You could've just passed <a b c>, there.
00:15 fglock_ in a rule capture, a variable like $a ;= (.*?) is later referred as $(a) ?
00:15 fglock_ s/;=/:=/
00:15 ayrnieu sub f(Str $a, Str $b) { say "$a$b" }; f(*<a b>)  # error
00:17 * ayrnieu & food
00:17 TimToady fglock: no, $a would have to be something in the outer lexical scope.
00:18 TimToady And $(a) would be a syntax error unless a is a function.  But $() is not specced to take any argument yet.
00:19 putter ayrnieu: oooh.  yes, that looks like a bug.  sorry.
00:19 putter ./pugs -we 'sub f($a,$b,$c){say join(",",$a,$b,$c)} f(*<a b c>)'
00:19 putter *** No such method in class Any: "&f"
00:19 fglock_ TimToady: can I get things from inside $()? like $(){thing}
00:20 putter fglock_: $<a> := ... { $<a> }
00:20 putter $2 := ...
00:21 TimToady Only if $() happens to be an object that supports the deref role you're trying to use.
00:21 TimToady By default $() is just a string.
00:22 kisu joined perl6
00:24 fglock_ TimToady: so I'd better return explicit fields, like { return { a => $<a> ,} }
00:25 fglock_ TimToady: (I'm using hashes to build the ast)
00:26 fglock_ TimToady: in this case, $() will be a hash reference, right?
00:27 TimToady yep
00:27 fglock_ and I access it with $()<a> ?
00:27 TimToady yep**2
00:27 fglock_ cool - thanks!
00:35 pasteling "putter" at 66.30.119.55 pasted "addition to Prelude.pm which _isnt_ going to be applied at the moment. issues mentioned." (136 lines, 4.6K) at http://sial.org/pbot/16156
00:38 putter oh, the addition is just the AnyChar tree and Math::Basic of S29.
00:46 jisom joined perl6
00:49 Cryptic_K joined perl6
00:57 putter hmm.  ok, I can move Prim.hs's require and use off into Pugs::Internals, with require/use macro's defined in Prelude.pm calling them, and some other minor changes to enable the precomp caching to be written in p6.  But... none of this will help pugs find it's prelude... which is the current critical path...
01:01 putter anyone familiar with windows?  can, unlike linux, programs actually find themselves?
01:06 FurnaceBoy_ yes they can
01:06 * FurnaceBoy_ shudders to think he knew that
01:07 FurnaceBoy_ using calls like GetModuleFileName()
01:09 szbalint Hm, anyone could explain how ^ff and ff^ is different from ff?
01:09 jisom it's possible on freebsd, but you have to mount /proc first
01:10 jisom perl -e 'print readlink "/proc/$$/file", "\n";' gives me /usr/local/bin/perl
01:10 azuroth something to do with open and closed ranges?
01:10 putter FurnaceBoy_: thanks
01:11 FurnaceBoy_ $ perl -e 'print readlink "/proc/$$/exe", "\n";'
01:11 FurnaceBoy_ /usr/bin/perl5.8.7
01:11 FurnaceBoy_ works on Linux, btw
01:11 putter jisom: thanks
01:11 FurnaceBoy_ note 'file' -> 'exe' :|
01:11 jisom but with freebsd, proc isn't mounted by default
01:11 mauke my linux has /proc/self/exe
01:11 szbalint ah nm, found it.
01:12 jisom and freebsd's /proc is different than linux's, although linux's can be mounted with the linux emulation layer....
01:12 jisom well freebsd also has /proc/curproc/file
01:13 FurnaceBoy_ $ perl -e 'print readlink "/proc/self/exe", "\n";'
01:13 FurnaceBoy_ /usr/bin/perl5.8.7
01:13 FurnaceBoy_ :-))
01:14 mauke -le is shorter than , "\n";
01:15 putter szbalint: what was the answer?  (I didn't even know p5 _had_ a flip-flop operator... wow)
01:16 putter which side to start off on?
01:17 justatheory joined perl6
01:17 szbalint "The ff operator may take a caret on either end to exclude either the beginning or ending."
01:17 szbalint not really verbose but its from S03
01:19 Cryptic_K joined perl6
01:19 * jisom gasps
01:19 jisom building ghc didn't crash the computer!
01:20 putter oh, i see (reading man perlop, it's an operator on ranges... wow, again)
01:20 putter :)
01:20 putter should try cmucl :)
01:20 szbalint yeah, .. is not only range and ff is the flip-flop
01:20 szbalint *now
01:23 putter Ok, how about this.  src/perl6/Prelude.pm should become Pugs::Prelude.pm/yml, with pugs.hs retaining just enough brains to search @*INC for for it's prelude, and the prelude containing the rest of the fancy caching stuff.
01:24 putter An alternative would be to install Prelude.pm and .yml ... someplace.  wonder what make install does now... looking...
01:35 fglock_ what is the name of the variable captured by /<word>/?  $/<word> ?  does $<word> work?
01:38 putter what you said; yes; work as in pge?  (S05/Subrule captures)
01:39 jisom in pge the match object allows you to get a complicated nested structure containing the things.....and although I haven't delved into it, the dumper does print the "<word>"...
01:40 fglock_ thanks. I've got a lot of places to change
01:40 putter fglock_: works in pge, both with $m and $/  ./pugs -e 'my $m = "a" ~~ /<ident>/; say $/<ident>'
01:41 jisom how the pge output fits in with all the perl6 matching, I don't know.....
01:43 fglock_ jisom: the rule lib returns a Match object, which Perl 6 knows how to use
01:44 jisom I mean how the program written in perl6 fits in.....
01:44 putter there is also :keepall, which I like so much I've made it the default a couple of times. :)  though actually, a variant that _always_ uses array of occurances, even if there is only one.  it is silly to have to encode ("now on _this_ kind of node, there are two exprs, so $<expr> is an array, but on this other kind of node, with only one, its the expr itself.  blech.  double blech.  insane.
01:45 jisom once parrot gets directory handling support, I'll probably add it to my pgegrep program and release it...-r's kind of important to me :)
01:47 fglock_ jisom: sorry, I don't understand what you asked
01:47 jisom me either
01:48 fglock_ :)
01:50 pdcawley joined perl6
01:52 putter can anyone remind me how to get  IO a  from EvalT (ContT Val (ReaderT Env SIO)) Val  ? :/
01:54 obra  
01:54 azuroth return? :-p
01:58 kanru joined perl6
02:01 aufrank joined perl6
02:02 aufrank good evening all!
02:07 pdcawley joined perl6
02:07 pdcawley joined perl6
02:21 hcarty joined perl6
02:23 fglock_ left perl6
02:25 hcarty left perl6
02:28 beppu joined perl6
02:29 jisom joined perl6
02:30 jisom how long should it take to compile Pugs.AST.Internals
02:34 beppu jisom, My box only 256MB of RAM and it took forever.  In fact I ^C out of it after a few hours, because I figured I'd try again when I got more RAM for my box.
02:34 jisom hmmm....I think it has 96 megs
02:35 jisom I had to add swap space just to compile ghc....
02:35 jisom right now it's at 109 megs of ram for ghc, so the swap seems to be slowing it down
02:36 jisom maybe that computer has 128, I can't recall
02:36 ayrnieu This is probably an unwise computer to work with pugs on.
02:36 beppu pugs is a hungry beast
02:36 jisom all the more reason for me to prefer parrot
02:36 azuroth maybe you should get feather access?
02:37 jisom feather?
02:37 ayrnieu jisom - feather.perl6.nl
02:38 azuroth feather.perl6.nl - ssh access for building pugs and parrot and stuff
02:38 jisom I don't have a single problem with parrot
02:38 ayrnieu But yes, I'll be happy when pugs bootstraps itself away from haskell.  I'll then be able to run it under OpenBSD/macppc.
02:38 ayrnieu well, when perl6 does.
02:39 ayrnieu jisom - parrot doesn't rely on GHC.
02:39 jisom well all we need is a perl6 compiler that targets parrot
02:39 jisom I know, I use parrot often....
02:39 jisom pir's a good language :)
02:39 azuroth actually, anyone use feather? svk seems to be acting funny for me.
02:40 ayrnieu yes, that is a goal.  In the meantime, you might ask for a feather account if you want to work with pugs on other than your 128M RAM machine.
02:40 ayrnieu azuroth - yes.  Have you read the SVK-on-Feather document?
02:40 azuroth I... possibly have not.
02:40 azuroth *googles*
02:41 jisom "It will be a simple server, with an Intel main board, a Pentium 4 2.4 GHz CPU, 1024 MB of RAM and 80 GB of mirrored (raid1) diskspace." - that's not simple!!!
02:42 ayrnieu that's not complex, either.
02:42 azuroth I did have svk set up for parrot a while ago, but it isn't working. does your svk complain about prototype mismatches?
02:42 ayrnieu it has 2G RAM now, I think.
02:42 jisom I use svn
02:42 jisom never used svk
02:42 ayrnieu azuroth is asking me, jisom.
02:42 jisom oh
02:43 ayrnieu azuroth - yes, on feather, and I don't know why they occur, but I haven't seen any problems from them.
02:43 azuroth svk's used on feather so each user doesn't have to get the same revisions over the network
02:44 mako132_ joined perl6
02:45 szbalint hm where did the svn bot go
02:45 ayrnieu szbalint - freenode as a whole exploded a little while ago.  evalbot is also a casaulty.
02:45 ayrnieu er, weird, svk on feather is giving me files that I'm not getting on my home machine.
02:46 ayrnieu t/operators/beer.t as a new file
02:46 ayrnieu I guess http://svn.openfoundry.org/pugs is a bit behind.
02:48 szbalint possible
02:48 szbalint but beer.t doesn't exist anymore
02:48 szbalint I just deleted it ;)
02:48 szbalint So don't expect it to appear.
02:49 ayrnieu ah, there it goes.
02:50 szbalint btw, shouldn't the bots be able to handle connection loss to the server?
02:52 jisom bots have no brains
02:58 szbalint they are p6 bots, right?
02:59 ayrnieu they are.
02:59 ayrnieu by which I mean: yes, evalbot is.  I don't know about the other.
03:05 szbalint ah
03:05 szbalint it appears that a recent commit might have broken evalbot
03:06 pdcawley joined perl6
03:08 ayrnieu how does $#a translate to perl6?  Is @a-1 now the most natural way?
03:09 azuroth @a.last ?
03:11 ayrnieu last() is something else.
03:11 azuroth oh. I thought last was .elems(-1
03:12 ayrnieu @a.last seems to parse to the flow-control operator.
03:12 azuroth ahh, .end
03:12 ayrnieu ah, thanks.
03:13 azuroth what's the flow control operator?
03:15 szbalint it seems audreyt's pugs instance is broken and thus the loop wanting to resurrect svnbot and evalbot just dies
03:15 ayrnieu hah, for(0..Inf) {} doesn't quite do what I want.
03:16 ayrnieu azuroth -  for (0..10) { last if $_ > 5; say }
03:16 azuroth ohh, right
03:16 ayrnieu S04 refers to them as 'loop modifiers'.
03:17 kisu joined perl6
03:20 szbalint hm, isn't for (0..Inf) supposed to be lazy?
03:22 jisom why not just add a "forever {}"
03:24 azuroth jisom: so that, say, map {$^x * $^x} (0..Inf) works too
03:26 shric joined perl6
03:36 pdcawley joined perl6
03:58 TimToady jisom: on top of which, a forever loop is spelled "loop {}".
03:59 jisom ok
04:00 jisom part of me's getting used to pir which doesn't have any conventional looping....sort of....
04:01 azuroth what are you doing in pir, btw?
04:01 jisom programming for fun, what else?
04:01 azuroth writing a compiler? :-)
04:02 jisom well that'd be nice but not likely :)
04:02 aufrank joined perl6
04:03 azuroth I'm pretty sure PGE's usable as a yacc substitute
04:04 jisom yeah, PGE's got a lot done...it's not optimized for speed yet, but it'll get the job done
04:04 jisom I've contemplated porting at least parts of osascript to parrot....but that's mostly it....
04:05 azuroth osascript?
04:05 jisom right now I wish I could improve a part of the macro reading in parrot's lexer so my HLL macro's will be more usable and make programming in pir actually look high level
04:05 azuroth hmm, interesting
04:05 jisom generic apple script
04:06 jisom the problem with the lexer as is, is that a comma is always a parameter delimiter even when you don't want it to be
04:07 jisom it doesn't eliminate their use but it makes it harder
04:07 jisom PIR actually supports something like this:
04:07 jisom    .Foreach(def, array,
04:07 jisom        print def
04:07 jisom        print "\n"
04:07 jisom    )
04:08 azuroth hmm. that'd be interesting
04:09 jisom but for the code block, it can't have any commas, a big problem, especially for nesting macros
04:09 azuroth or maybe you could just add {} quoting?
04:09 jisom but, everyone was rather surprised when I sent it to p6i about it, it's probably technically not supposed to work
04:10 jisom well that's my hope but that doesn't mean I'll get it working
04:13 jisom I'm not familiar with working with flex
04:14 Fleebailey33 joined perl6
04:16 amnesiac joined perl6
04:17 FurnaceBoy joined perl6
04:20 azuroth do macros need parens?
04:20 jisom yes
04:21 jisom I know how to add support I just don't know how to do it with lex
04:22 jisom the preprocessing is only a text preprocessor(and not really "pre" because it's done at the same time as compiling), so it's very simple really
04:22 jisom at least as far as I know
04:23 azuroth hmm, yeah. it looks like you need paras, except if it takes no args
04:24 jisom but at present, a comma in a comment will still count as a delimiter to the preprocessor
04:24 FurnaceBoy heh
04:24 FurnaceBoy do you have a ',' operator versus ',' arg sep ambiguity?
04:25 * FurnaceBoy knows lex
04:25 jisom using code blocks in this fashion wasn't intended, though, but in a way, it's light weight enough to allow heavyweight stuff
04:25 azuroth compilers/imcc/imcc.l:read_params .. looks like an easy fix?
04:25 FurnaceBoy oh, in a comment...
04:25 jisom yeah
04:25 jisom that's the place I was working in
04:30 azuroth looks like fun. good luck :D
04:31 jisom guessing didn't work :(
04:35 azuroth heheh, I was just looking at it. I didn't try - I'm not a huge lex user. I can't even see where the ( and ) tokens are defined
04:36 jisom lines 723, and 794
04:36 jisom 735 is there the comma's defined
04:37 azuroth hmm, I can see comma
04:38 jisom with regard to macros, the parenthesis and comma are hard coded in as in "c == ','"
04:38 pdcawley joined perl6
04:39 jisom my line numbers are off
04:39 jisom forgot about local modifications :-\
04:39 jisom ) and , are set in read_params
04:40 azuroth ah, ok. I figured lex would need to know that the ( and ) etc were tokens, so it wouldn't error on them
04:40 jisom not for macros
04:40 jisom macro's sort of jump out of lex
04:40 Fleebailey33 left perl6
04:41 azuroth ahh, ok. so yylex just gets it from the file or whatever? nifty
04:42 jisom in one ear, out the other...
04:42 jisom :)
04:42 jisom I'm a mac user, I like "it just works"
04:42 azuroth c = yylex(&val, interp) // just gets a char from stdin, does no lexing?
04:43 jisom yeah
04:43 jisom at least not yet
04:43 azuroth what about read_params "if (YYSTATE == heredoc2)"
04:44 jisom no heredocs in macros
04:44 azuroth but how does it get yystate if we're not lexing?
04:45 azuroth confusing
04:45 jisom as I understand it, it's lexing, but then when it finds a macro it jumps to the macro reading functions...
04:45 jisom but no lexing is done _while_ the macros are being read
04:46 azuroth .foo ( ... ) # so when parsing ..., the last token is still .foo?
04:46 jisom I have no idea whatsoever
04:48 pjmm joined perl6
04:49 putter ?eval 3
04:56 azuroth hmm, I think it does lex. so _could_ just define a token, \{<toks>\} which equates to toks or something?
04:57 azuroth probably not so hot, though
04:57 jisom tokens aren't parsed while reading macro parameters, only text.....at least I think so
04:57 jisom also consider that it can't be too "heavy weight"
05:00 azuroth .foo({!}) gives a tokenising error,.. hmm, there must be a better way to prove it
05:00 pdcawley joined perl6
05:01 azuroth well, .foo("blah, b") would be two args if it wasn't tokenising, right/
05:01 jisom before or after macro processing?
05:01 jisom yeah
05:01 azuroth I'm pretty sure it's inside the macro processing
05:01 azuroth the yylex function returns the next token from the input file
05:02 jisom next token? hmmm.....I was thinking it was the next character.....
05:02 * jisom doesn't know lex
05:02 azuroth well, it returns an int which is the next token's type
05:03 azuroth however, special tokens which are just a char are returned as their character - so you can use them easily
05:03 jisom ok
05:05 jisom that would explain some of my debugging problems...
05:07 azuroth so you need to add two more tokens, { and }.. then just when you see a {, keep getting tokens until you see the matching }. or you could make a block macro, but that might conflict with other stuff?
05:08 jisom braces have no special meaning in pir, brackets either
05:08 FurnaceBoy how is your grammar defined? I usually use bison (yacc)...
05:08 jisom yacc
05:08 jisom imcc uses a lex/yacc combo
05:09 jisom but all macro stuff is in lex
05:09 FurnaceBoy well, that implies that macros are not made of tokens.
05:09 FurnaceBoy which sounds like the difficulty here.
05:09 FurnaceBoy i.e. they're strings inserted into the pre-lex input?
05:10 FurnaceBoy I've never implemented that kind of macro processing, but it would seem fairly straightforward.
05:11 FurnaceBoy in fact, a macro in that sense would work just like a HEREDOC
05:11 eric256_ joined perl6
05:12 jisom essentially, yes...
05:12 FurnaceBoy so, sorry, just briefly, what's the problem you have right now?
05:13 jisom essentially, how to use a comma inside a parameter instead of as a delimiter
05:13 FurnaceBoy can you paste an example?
05:13 jisom    .Foreach(letter, array,
05:13 jisom        print letter
05:13 jisom        print "\n"
05:13 jisom        set $I0, 4
05:13 jisom    )
05:13 FurnaceBoy I've resolved that kind of ambiguity in a yacc grammar before (function calls versus ',' operators), but your situation is a little different I think
05:14 jisom the comma after $I0 is treated as a delimiter
05:14 FurnaceBoy ah.
05:14 FurnaceBoy okay, but how do you trigger and stop macro body slurping?
05:14 jisom using braces to act essentially as apostrophes would resolve it in part....
05:14 jisom the ) at the end
05:15 FurnaceBoy but when is it supposed to start? first line after '(' ?
05:15 jisom I think parenthesis will trigger the problem just as comma's do, albeit slightly different
05:15 FurnaceBoy the way you specify it risks ambiguity
05:15 jisom parameters are from after the ( to before the )
05:15 FurnaceBoy imagine the case with no parametersr
05:15 FurnaceBoy -
05:15 FurnaceBoy r
05:15 jisom just ()
05:15 FurnaceBoy right,
05:16 FurnaceBoy but you need to look ahead PAST parameters before slurping the body
05:16 FurnaceBoy the question is, how far must you look ahead
05:16 FurnaceBoy right now, it appears you might need to read all the way to ')'
05:16 jisom I'm not following you
05:17 eric256_ can i interject with a stupid question...does anyone have a link to directions on downloading the svn of pugs?   /me is slow tonight
05:17 FurnaceBoy I don't quite follow 'a comma inside a parameter' ... what do you mean by that?
05:17 azuroth eric256_: maybe http://search.cpan.org/dist/​Perl6-Pugs/lib/pugs/hack.pod
05:18 Nouk joined perl6
05:18 azuroth .foo(1, {1,2,3} )
05:18 jisom in the example I pasted, the comma after $I0 isn't wanted to my a macro parameter delimiter but the preprocessor will treat it as one
05:18 jisom *to be a
05:18 FurnaceBoy oups
05:18 * eric256_ hits forhead and thinks it is probably time to sleep. thanks azuroth
05:18 FurnaceBoy sorry I misunderstood the above then. ignore my ramblings. I'll resync. :)
05:18 azuroth :-)
05:18 jisom ok
05:19 jisom this is really more parrot than pugs but oh well
05:20 FurnaceBoy ah
05:20 FurnaceBoy okay, I wasn't as far off as I thought.
05:21 FurnaceBoy it really gets back to my question, I think, which is when you stop looking for parameters and slurp the macro body?
05:21 FurnaceBoy the way it is defined, it's ambiguous I think
05:22 FurnaceBoy once your 'sub lexer' switches to macro-body mode, everything is fine until it hits a ')' , right?
05:22 FurnaceBoy parens in the body can be handled by counting nests
05:22 jisom what we're talking about now is when calling a macro, the ambiguity you're thinking about is allotted for with the "need_id" which state that it needs to be an identifier, which is used for defining macros
05:23 FurnaceBoy ah.
05:23 FurnaceBoy okay so I was confused.
05:23 jisom defining a macro is linebased... .macro foo(bar, baz)\n...\n.endm
05:24 azuroth hmm. I'm still confused :-)
05:24 FurnaceBoy and calling it is per your example (set) ?
05:25 jisom .macro foo(a, b)
05:25 jisom    .a += .b
05:25 jisom .endm
05:25 jisom .sub main :main
05:25 jisom    .foo($I0, $I1)
05:25 jisom .end
05:25 jisom simple "expected" usage
05:25 pdcawley joined perl6
05:26 FurnaceBoy ah okay. all of what I've said is irrelevant. :)
05:26 jisom examples are helpful :)
05:26 FurnaceBoy and you want to actually pass a literal comma in/as a parameter
05:26 jisom yes
05:27 FurnaceBoy that should only be a matter of a quoting mechanism, as azuroth hinted at
05:27 jisom for when you're using code as a parameter
05:27 FurnaceBoy quoting or bracketing
05:27 jisom exactly
05:27 FurnaceBoy that logic can be added to the sub-lexer that slurps each param
05:27 FurnaceBoy or a new sub-lexer, if it's too dumb
05:27 azuroth for easiness, could start with just quoting with ( and ) - I'm trying to find where ( and ) are actually defined as tokens, but not having much luck
05:28 FurnaceBoy let me just clarify, parameters are bits of text, not token streams, right?
05:28 jisom I don't think it needs to be that bright, if it finds a '{', call a sub to parse until the '}', if another { is found, recursively call itself...
05:28 azuroth token streams
05:28 jisom azuroth, do they have to?
05:28 putter ?eval say 3
05:28 FurnaceBoy okay, well it seems to me that you must already have some kind of token for string -- i.e., a string containing comma
05:28 ayrnieu stil no evalbot.
05:29 azuroth have to be? no, but they are at the moment, and it's much easier for { "blah}"
05:29 FurnaceBoy when you pass code, are you passing strings, or tokens?
05:29 FurnaceBoy if tokens, then you are going to need a { } block delimiter exactly as azuroth suggested
05:30 azuroth FurnaceBoy: I think read_params gets the tokens and concatenates them, or something...
05:30 azuroth err. concatenates them into a string
05:30 FurnaceBoy this turns out to be rather similar to the case I know about, which is f(a,b) versus f((a,b),c)
05:30 putter well, ~20min of my life spent discovering -e $stem~".yml"  gets parsed as  (-e $stem)~".yml".  :(
05:31 azuroth that doesn't feel right
05:31 jisom that's why I like pir......explicit precedence
05:32 azuroth heheheh
05:32 ayrnieu -e "$stem.yml"
05:32 azuroth are you by any chance a lisp user, jisom?
05:32 ayrnieu either a lisp or a forth programmer may appreciate that.
05:32 jisom no, neither am I a forth user
05:33 jisom but I'd choose forth over lisp when it comes to basic syntax
05:33 jisom pir's more like assembly
05:35 FurnaceBoy explicit precedence still can't do anything with  f(a,b,c) if you mean f( (a,b) , c )
05:35 FurnaceBoy it's inherently ambiguous because you're overloading ',' :-)
05:35 jisom actually in pir, you can
05:35 FurnaceBoy in one case it's an operator, in the other it's lexing sugar
05:35 jisom because you can't autovivify and array like that
05:35 FurnaceBoy okay
05:35 azuroth it's kinda like an array ctor in both cases, though
05:35 jisom rather annoying because sprintf wants an array, even if it's only one term you're wanting to "sprintf"
05:36 FurnaceBoy yeah, as an assembly fan, I noticed your .macro/.endm with approval ;-))
05:36 jisom months of assembly...
05:36 jisom pir rather
05:36 pdcawley joined perl6
05:36 FurnaceBoy yes, it is in dynamic languages, but I was thinking of more C-like stuff.
05:36 jisom some friendly hll constructs
05:37 FurnaceBoy azuroth, you know mathematica?
05:37 azuroth no, I don't believe I do
05:37 ayrnieu oh, "@foo" interpretation has gone away again?
05:37 pdcawley joined perl6
05:38 ayrnieu ("{@foo}", right.)
05:39 FurnaceBoy I wrote a lex/yacc assembler once, jisom, but I never implemented macros. http://telegraphics.com.au/svn/dpa/trunk
05:40 jisom and currently macros are done as it's processing instead of before processing.....
05:41 jisom I could just write a preprocessor in perl....
05:41 azuroth /info
05:41 azuroth err
05:41 gaal putter: 03:20 < putter> Ok, how about this .* the prelude containing the rest of the fancy caching stuff.
05:41 gaal that's exactly the idea
05:44 * eric256_ wonders what .* meant in that context
05:44 pjmm left perl6
05:44 gaal eric256_: I didn't want to quote the whole thing. :)
05:44 gaal and: hello! long time no elk.
05:44 eric256_ ohhh. that makes alot more since
05:45 eric256_ life gets busy and virtual things take the hit first ;)
05:45 pdcawley_ joined perl6
05:46 eric256_ attempting to compile pugs on win32 for the first time in probably 5 months. lol. as usual its beating my CPU to death with a stick
05:46 jisom I'm trying to do it on freebsd for the first time....needs more swap space
05:47 gaal y'all should make sure what's mentioned in config.yml fits your systems
05:47 putter gaal!!!!!
05:48 aufrank does anyone here build pugs on OSX?
05:48 putter gaal: ping?  putter says very very hopefully...
05:48 K joined perl6
05:48 gaal pong :)
05:48 gaal sup?
05:49 gaal putter: I hope Complex::i isn't intended to be exported by default. :-P
05:50 putter gaal: is there some way to compile an arbitrary file to the .yml form?
05:50 putter lol # i
05:51 gaal putter: sure! ./pugs -CParse-YAML Arbitrary.pm > Arbitrary.yml
05:51 gaal or recommended: ... | gzip -c Arbitrary.yml.gz
05:52 putter applying that treatment to Test.pm results in non-happiness.  perhaps I'm doing it wrong.  trying by hand...
05:53 gaal define non-happiness
05:53 eric256_ are use and require just going to cache modules by default? or are there still unresolved issues with that
05:54 gaal eric256_: the plan is to cache by default, yes
05:54 putter ./pugs -CParse-YAML blib6/lib/Test.pm > blib6/lib/Test.pm.yml  and the yml gets loaded, but no 0..1 appears.
05:54 gaal urp? no, that *creates* the yaml bytecode, not loads it
05:54 putter ./pugs -CParse-YAML blib6/lib/Test.pm > blib6/lib/Test.pm.yml; ./pugs -Iblib6/lib -e 'use Test;'
05:55 gaal ah
05:55 * putter builds an unmodified pugs to make sure he didnt break it...
05:55 gaal ./pugs -Iblib6/lib -e 'use Test; plan 42'
05:55 gaal ./pugs -Iblib6/lib -e 'use Test; plan 42; pass "moose"'
05:56 putter It works for you, after .yml'ing?
05:56 gaal exportation was broken but I think audrey fixed it
05:56 gaal try Test::plan 42; Test::pass
05:56 gaal I'm starting up my colinux, se
05:56 gaal c
05:57 gaal what doesn't work for you now? (while my pugs builds...)
05:57 putter ah, ./pugs -Iblib6/lib -e 'use Test; Test::plan 42; Test::pass' has output.  1..42  ok 1
05:58 putter ./pugs -Iblib6/lib -e 'use Test;' doesn't have output. ;)
05:58 eric256_ how do you know its the compiled one though? (just curious)
05:58 putter if a .yml file exists.  does if the .pm is used.
05:59 putter change in behavior depending on existence of .yml file?
05:59 eric256_ so if the yml file is present and broken it will through an error instead of using the .pm?
05:59 gaal putter: then call Test::plan()
05:59 gaal eric256_: I think we disabled the error in the general case now, though it's still comment in the code
06:00 gaal because the user experience should not depend on precompilation being presennt
06:00 putter to recap, ./pugs -Iblib6/lib -e 'use Test;' has normal output only in the absence of a .yml.  ./pugs -Iblib6/lib -e 'use Test; Test::plan 42; Test::pass' works with both.
06:00 Aankhen`` joined perl6
06:00 gaal but to answer your other question.. strace :)
06:00 gaal putter: okay, that means that the exporter still needs work.
06:03 putter a pugs I haven't messed with has the same behavior.
06:03 gaal hmmm, this may need the Pad refactoring audrey was talking about to fix
06:03 eric256_ so is the prelude now compiled to yml instead of haskell like before?  i thought i read that somewhere, but my machine just took quite a while at the generating precompiled prelude step
06:04 gaal eric256_: there's a good summary on the blog
06:04 gaal it's much faster to build than the previous approach
06:06 gaal putter: I'm still trying to reassemble my understanding of why export only kinda works
06:07 eric256_ yea i read the blog, and i just reread...it doesn't say if the default make behavior is to precompile to haskell or the yaml though.
06:07 aufrank when I synced the design docs today I got a bunch of updates, but they hadn't been sent to p6l... is the commit-poster turned off now?
06:09 aufrank (synced from svn.perl.org, that is)
06:09 gaal eric256_: -CPugs, the old way, is no longer in active use. (But curiously, the YAML work prompted it to be imroved too!)
06:10 eric256_ okay so make with prelude set to be precompiled results in it being compiled to yml.. should make development of prelude.pm much faster if you can turn around and compile it that easily.../me wonders if compile is the wrong owrk. either way nice work ;)
06:12 putter gaal: np.  it's 1am for me, so end of day.  I'm going to check in my changes because 1- it's been months since I broke the build, so I must not be trying hard enough, and 2- it might not - the test for attempting to create a .yml upon use() is the .pm being writable, which blib6/lib tends not to be. the t/ I've tried (just a few) work.
06:12 gaal eric256_: actually, the config.yml directive is ignored now: we always precompile Prelude.pm because it's turned cheap :)
06:12 gaal putter: lol
06:13 gaal I'd better start getting to $work, myself
06:15 pdcawley joined perl6
06:19 putter gaal: thank you very much for your help.  you assistance was just in the nick of "I'm going nuts" time. :)
06:21 gaal go to bed instead, I hear it's much nicer there :)
06:22 * gaal takes off for $work &
06:22 jisom but sleep deprivation can cause a pleasant euphoria
06:23 putter As a side note, I observe that mv'ing src/perl6/Prelude.pm to blib6/lib/Pugs/Prelude.pm, and, err, mutter, mumble, hacking the .hs to insert "use Pugs::Prelude.pm;" in the first line of every file mumble, seems to leave ./pugs at least passing at least some tests.
06:23 putter gaal: :)
06:23 Draconit joined perl6
06:23 putter gaal: thanks again.
06:24 eric256_ any ideas what " Pattern match failure in do expression at" means?
06:24 gaal eric256_: I'm not here any more, but nopaste?
06:24 gaal putter: np :)
06:24 putter looks like svnbot6 is awol.    patch 9275 in.
06:24 eric256_ i'm not even sure what to nopaste. lol
06:25 gaal whatever comes after that "at"
06:25 azuroth something like ([], e) <- blah when blah isn't ([],e)?
06:25 pasteling "eric256" at 24.8.74.230 pasted "wierd error" (7 lines, 230B) at http://sial.org/pbot/16159
06:26 * eric256_ stares at azuroth. lol
06:26 Kattana joined perl6
06:26 azuroth err, never mind
06:26 pasteling "eric256" at 24.8.74.230 pasted "whole script in case someone is interested" (56 lines, 1.3K) at http://sial.org/pbot/16160
06:28 putter good night folks.  have fun. &
06:28 azuroth night!
06:28 eric256_ night
06:29 eric256_ hmm. it looks like it is calling the + operatore based on the class instead of the returned type of the methods being used.
06:30 azuroth like, based on static type, not dynamic..?
06:31 eric256_ well..   $a.toBase() + $b.toBase() failes with that error. but if i dump them into variables and add the variables it works fine
06:31 gaal is your Prim:99 the case in op1 "id"? that should never fail a patmatch, it has a _ case
06:31 gaal but for real, I ain't here &
06:32 eric256_ yes thats where it is, its a fresh copy just svn'ed an hour ago..
06:34 pdcawley joined perl6
06:35 azuroth what's with the * in "multi sub *infix:<+>", by the way? I don't recall seeing it before
06:35 eric256_ thats from way back. thats why i'm revisiting the script. lots of new things fixed and implemented since it was first written
06:36 azuroth ahh
06:36 eric256_ oddly...removing it causes the same error even with the enw temp variable.
06:38 putter joined perl6
06:38 putter two quick comments
06:39 azuroth yeah?
06:39 putter i started a refactoring of.... fribble... Prim/Eval.hs, but decided it was mission creep for the evening.
06:40 putter 2- if anyone wants some easy p6 hacking, see the top of TASKS.  Math::Basic / Num gets a zoo of round_foos.  sanctioned, at least for the moment, by @larry[0].  night &
06:42 handon is now known as vborja
06:43 eric256_ was that last statment by putter english? lol
06:45 ayrnieu yes.
06:45 FurnaceBoy it kinda lapsed into shell at the end there.
06:45 eric256_ ummm sprintf can't be found and as doesn't work...is my copy borked somehow?
06:45 ayrnieu eric - talking about parrot?
06:45 eric256_ pugs
06:46 ayrnieu what can't find sprintf, and how doesn't 'as' work?
06:46 eric256_ No compatible subroutine found: "&sprintf"  same with 'as'
06:47 ayrnieu eric - well, I have a sprintf here, so that may indeed be borkage.  I don't know about an 'as'.
06:47 revdiablo ?eval 1.as("%03d")
06:47 revdiablo Wither evalbot?
06:47 ayrnieu revdiablo - went away when all of Freenode did.
06:48 eric256_ in eval i can't get either to work...most be something else going on here
06:48 ayrnieu but oh, OK.  That's an interesting method.
06:48 ayrnieu eric - must be.  I see them.
06:48 ayrnieu eric - please show us the exact code you try to use these in.
06:48 justatheory joined perl6
06:49 * eric256_ decides its time for sleep anyway...guess i'll play with it in the morning.
06:49 revdiablo ayrnieu: It makes some things a lot easier than working it into sprintf()
06:49 pasteling "eric256" at 24.8.74.230 pasted "yet more strange occurences" (6 lines, 229B) at http://sial.org/pbot/16161
06:50 FurnaceBoy_ joined perl6
06:50 eric256_ i think prelude might not be loading at all.../me is going to stick around till the recompile is done. whats another 20 minutes
06:51 eric256_ do i need to nmake install these days? could that be the trouble?
06:51 FurnaceBoy_ left perl6
06:52 drbean joined perl6
06:52 ayrnieu no, I don't need to make install.
06:53 ayrnieu and yeah, those work just fine here.
06:54 eric256_ lol
06:55 justatheory joined perl6
06:55 eric256_ i so did that to myself...way back when i was hacking prelude i had env vars set to load from special places...removed that and it looks okay now
06:58 eric256_ nite
07:02 pdcawley joined perl6
07:08 pdcawley joined perl6
07:27 samhain1138 joined perl6
07:30 mtve joined perl6
07:31 nothingmuch joined perl6
07:48 KingDiamond joined perl6
07:50 azuroth /users
07:50 azuroth err
07:50 buu ?eval if 1 { 1; }
07:50 azuroth no evalbot :-(
07:50 buu sigh
07:51 azuroth wonder when audrey's going to spring to the rescue
07:52 audreyt ...like, now
07:52 obra hey audreyt
07:52 azuroth gee. you really are the IRC hive
07:53 ayrnieu IRC hive?
07:54 azuroth all information going through IRC has to go through her, first
07:55 ayrnieu er, OK.
07:55 jisom sounds more like a bottleneck than a hive....
07:56 ayrnieu (1 xx Inf)[Inf]  # hee
07:56 nothingmuch moosen
07:56 ayrnieu What does that do?  It takes the infinityth element from an infinite list of 1s.  It works just fine in pugs.
07:57 azuroth niftylicious.
07:58 jisom how does pugs handle 1/Inf?
07:58 nothingmuch did you guys see the new smolder thing
07:58 nothingmuch jisom: like haskell does
07:58 ayrnieu my @a = 1 xx Inf; @a[Inf]  # handled less gracefully, however.
07:58 nothingmuch ?
07:59 nothingmuch xx is non lazy
08:00 ayrnieu nothingmuch - pugs is happy enough with: my @a = 1 xx Inf; 5  # displaying 5, only becoming upset with @a[Inf] later on.
08:01 ayrnieu nothingmuch - how do you know that xx is non-lazy?
08:05 audreyt jisom: IRC is a klein bottle, not a gross one, so it has no bottlenecks
08:05 gaal hey audreyt, all
08:06 gaal how was GPW?
08:07 stennie joined perl6
08:07 nothingmuch arcady: mine isn't =/
08:07 audreyt gaal: it was fun -- mainly the hallway track with nicholas and andk
08:07 nothingmuch oh wait, it is, sorry
08:07 nothingmuch but not with just my @a = xx Inf;
08:07 nothingmuch and I know why now
08:07 nothingmuch because it's .perl'ing it
08:07 nothingmuch =(
08:07 audreyt putter's r9275 broke everything, including Net::IRC
08:08 nothingmuch that putter
08:08 nothingmuch we should take away his commit bit
08:08 nothingmuch he never does anything useful anyway
08:08 * audreyt smacks nothingmuch for hate speech
08:08 nothingmuch =)
08:09 nothingmuch ayrnieu:  my @a = 1 xx Inf; @a[5]
08:09 nothingmuch does that work?
08:09 ayrnieu nothingmuch - nope.
08:10 ayrnieu nothingmuch - (my @a = 1 xx Inf) just sits around like a brain, I suppose: safe until an immune system discovers it.
08:10 gaal (hallway tracks)++
08:10 gaal they make one tres serene
08:10 nothingmuch andreas koenig?
08:11 gaal [OT] http://unix.rulez.org/~calver/pictures/curves.jpg
08:11 audreyt nothingmuch: yeah
08:11 nothingmuch http://sourceforge.net/project/​screenshots.php?group_id=161136
08:11 audreyt hm, weird, it may not be putter after all -- as r9274 doesn't work either
08:11 * audreyt triages
08:12 nothingmuch that damn putter, confusing us all the time about his revs
08:12 nothingmuch wee should take away his commit bit, so that we know who really did it next time
08:12 nothingmuch gaal++ # cute link
08:24 Nouk joined perl6
08:32 feng joined perl6
08:36 gaal a few notes on 9275
08:36 gaal (sorry, can't fix myself now)
08:36 gaal * bool::true/false prolly better than 1/0, though this is very minor
08:36 gaal * use file_sep instead of '/'
08:37 gaal * look for the gzipped version, too
08:37 gaal * Pugs::Internals::compile_file_to_yml may as well look for some gzipper.
08:38 gaal * Pugs.Prim.Eval's opRequire can probably stop doing the search path thing now that the Prelude version takes care of this
08:39 gaal * putter++
08:39 gaal that's all for now :)
08:41 iblechbot joined perl6
08:41 * audreyt tries using "make profiled ; ./pugs +RTS -xc -RTS" to get a stack trace of this mysterious error
08:55 gaal oh, and another note on 9275: Pugs::Internals::emit_yaml should also be fixed, and we need to find a way to avoid parsing the file twice (once for precompilation and once for the curent &use)
08:58 KingDiamond joined perl6
08:58 ghenry joined perl6
09:13 svnbot6 joined perl6
09:19 premshree_ joined perl6
09:20 evalbot_9275 joined perl6
09:20 audreyt summon evalbot
09:20 audreyt ?eval 'woot'
09:20 evalbot_9275 "woot"
09:21 beppu joined perl6
09:21 K joined perl6
09:21 audreyt fg
09:21 audreyt oops :)
09:21 integral umm, I thought Data.FastPackedString had builtin gzipping?
09:22 audreyt it had builtin zlib bindings
09:23 audreyt but if you are on win32, there'd be no zlib to bind
09:23 ayrnieu ?eval (sub ($a, $b) { $a ~ $b })('a', 'b')
09:23 evalbot_9275 "ab"
09:23 ayrnieu ?eval (sub ($a, $b) { $a ~ $b })(*<a b>)
09:23 evalbot_9275 Error: Undeclared variable: "$b"
09:23 integral ah.  stupid os
09:24 audreyt hm, the buildfail turns out to be a simple
09:24 audreyt sub infix:<≠> {} 1
09:24 audreyt which triggers Prelude.last: empty list
09:24 audreyt only that particular unicode "not equal to" char triggers this
09:24 audreyt weird.
09:33 handon joined perl6
09:34 nothingm1ch joined perl6
09:34 handon is now known as vborja
09:40 marmic joined perl6
09:40 iblechbot joined perl6
09:42 wilx joined perl6
09:59 svnbot6 r9276 | audreyt++ | * Pugs.Parser.Operator: Fix the misparse of "not equals"
09:59 svnbot6 r9276 | audreyt++ |   in Set.pm that triggered parsefail for all IRC bots;
09:59 svnbot6 r9276 | audreyt++ |   decodeUTF8 should be executed before words.
10:03 nothingmuch joined perl6
10:23 KingDiamond joined perl6
10:30 chris2 joined perl6
10:44 premshree_ joined perl6
10:46 GeJ joined perl6
10:50 pmurias joined perl6
10:51 pmurias hi all
10:53 nothingmuch hi ho
10:53 svnbot6 r9277 | pmurias++ | * a dispatch hash is used for emitting nodes
10:53 svnbot6 r9277 | pmurias++ | * moved emit to iterator_engine_emit.pl
10:54 pmurias putter: were did you get the wheather in Alaska from? It needs to be updated :)
10:57 KingDiamond joined perl6
11:09 larsen joined perl6
11:12 nothingmuch aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
11:12 nothingmuch i'd like to be able to write high performance database apps in Perl 6
11:13 ayrnieu nothingmuch - OK.
11:13 nothingmuch C++ is getting on my nerves
11:13 nothingmuch so much language tax
11:14 ayrnieu and from a Perler, this is extremely harsh criticism.
11:15 nothingmuch well, it's more than language tax
11:16 nothingmuch the issue is:
11:16 nothingmuch we have to work with a subpar language, with subpar tools
11:16 nothingmuch (slow turnaround, difficult to test, no reflection....)
11:16 nothingmuch the mundane tasks are hard and annoying
11:16 nothingmuch but they could be easy
11:16 nothingmuch the problem is that they have to be in C++
11:16 nothingmuch not because they are performance critical
11:16 nothingmuch but because other parts are
11:17 nothingmuch and the overhead of making this a two language project is even higher
11:17 nothingmuch for example:
11:17 nothingmuch code to deal with socket pooling
11:17 nothingmuch high level resource allocation
11:17 nothingmuch (i.e., delete a "connection" thingy)
11:17 nothingmuch all these things are about 10x as complicated as they need to be
11:18 nothingmuch to the point that we don't even have the resources to really optimize the life out of the performance critical code: we're bogged down with dumber bugs
11:20 integral haskell seems to manage evrything C++ can though
11:22 nothingmuch integral: i'm not sure haskell is the right thing for here
11:22 nothingmuch there is tons of tight loops on string ops
11:22 nothingmuch fudge this, binpack that, store in this structure
11:22 nothingmuch tons of aio
11:22 integral the trick is to use arrays, not strings.   especially the unboxed arrays
11:23 beppu unboxed?
11:23 integral I suppose that's the thing, haskell replaces C++ nasties, with having to know all the different options for making your data structures
11:23 nothingmuch beppu: with no pointers and stuff
11:23 integral beppu: just the value, not a pointer to a closure returning the value
11:23 nothingmuch what i'm complaining about is not that yucky code though
11:23 nothingmuch frankly, C++ is the right tool for that part
11:23 nothingmuch at least IMO
11:23 nothingmuch it's easier to train people for it
11:23 nothingmuch it's easier to find new people to work on it
11:24 nothingmuch but the non core core core stuff
11:24 integral I've never understood why people found using malloc/free and debugging it to be easy :-/
11:24 nothingmuch which doesn't have to work efficiently on an 8 cpu monster, fudging 2TB of data in reasonable time
11:24 nothingmuch that part doesn't have to be in this messy stuff
11:25 nothingmuch integral: it's simply a delay mechanism
11:25 nothingmuch the education of industry recruits is based on the conclusions that were made 20-30 years ago
11:25 nothingmuch java is a direct answer to the problems of the 1980s
11:26 nothingmuch i don't think it's a relevant language today
11:26 nothingmuch it's solid, sure
11:26 beppu It's not very expressive, though.
11:26 beppu (java, that is)
11:26 nothingmuch but there's no real reason to use that instead of e.g. C# which is much more relevant today
11:26 nothingmuch (and probably also won't be)
11:26 integral people don't like expressive when it makes them think rather than just pounding code continuously
11:26 nothingmuch aye
11:27 nothingmuch =(
11:27 lumi Java is definitely conductive to pounding code continuously
11:27 nothingmuch the problem is that pounding code continuously is considered a good thing in the industry
11:27 nothingmuch because you get the same output for less $$$/hour/employee
11:27 nothingmuch that's why outsourcing is popular
11:28 nothingmuch people don't realize that the communication breakdown that is a result of outsourcing is costing them triple, quadruple, etc
11:28 nothingmuch even without paying attention to any technical differences between the quality of the code
11:36 pmurias there's not point in useing java for personal projects thought
11:37 nothingmuch pmurias: the problem with java is:
11:38 nothingmuch a. it's very easy to get programmers
11:38 nothingmuch b. it's very easy to enforce boilerplate level "code quality standards"
11:38 nothingmuch this leads to it's popularity
11:38 nothingmuch which means that it'll be tought more, and more books will be bought
11:38 nothingmuch hence even more programmers
11:39 pmurias what does bolieplate level "code quality" mean?
11:41 nothingmuch enforcing stuff that is supposed to cause good quality code
11:41 nothingmuch but is really nothing
11:42 nothingmuch the issue is that you cannot force good design out of a bad designer
11:42 nothingmuch and the java approach is that given enough restriction
11:42 nothingmuch (e.g. you have to always handle exceptions... most people just rethrow them)
11:42 nothingmuch (need one thread per IO stream)
11:43 nothingmuch ... given enough restriction bad design will not happen
11:45 pmurias I tried to code a project once in java, I even bought Thinking in Java... rewrote the project in JavaScript in the end :(
11:46 nothingmuch how come?
11:47 cognominal nothingmuch: managers are interested in minimizing risks. so they prefer language that guarantee a maximin (meaning a guaranteed quality for any programmer).
11:48 nothingmuch cognominal: my conjecture is that this quality is just the quality of the boilerplate
11:48 nothingmuch and note the real code
11:48 cognominal excellence is for marketting, not for manager.
11:48 pmurias i was allowed to choose my own language in that case
11:49 pmurias I tried doing it in Jython,Java and JavaScript
11:49 nothingmuch pmurias: did you have to use JVM or something?
11:50 cognominal I am learning javascript, It is pretty nice one you know were to find good examples and libraries
11:50 nothingmuch . o O ( Rhino compiles JS to JVM, right? )
11:50 cognominal e4x seems nice and DOM sucks
11:50 nothingmuch cognominal: javascript's bad reputation should really be attributed to DOM and it's browser implementations
11:50 pmurias i needed it to run in the browser
11:50 nothingmuch what's e4x?
11:50 cognominal its a way to inline xml.
11:50 nothingmuch ah
11:50 pmurias the worst think about js is the .clone method
11:50 nothingmuch pmurias: why?
11:51 pmurias it always gets in the way when using for (x in a) {...}
11:51 cognominal too bad that you can't maniplate the DOM tru it with firefox.
11:51 stevan joined perl6
11:51 cognominal e4x doc says that implementation could do that...
11:51 nothingmuch pmurias: please explain
11:52 pmurias in firefox .clone is a method of every object,it's *not* inherited
11:52 pmurias for iterates over all atribiutes of an object
11:52 pmurias objects are used like hashes sometimes
11:53 pmurias in perl terms it means every hash get a 'clone' key by default,meaning you have to check for it in every while ($k,$v = each %hash) {...{
11:54 pmurias s/{$/}/
11:54 cognominal do you mean that the problem is that methods are part of the hash?
11:54 cognominal I don't get the problem about clone
11:55 pmurias only the clone one others, are inherited from prototype
11:55 pmurias and for doesn't iterate over the prototype
11:56 cognominal iterators suks in js. iterating over an array is such a pain. And the DOM defines a iterating method with a different name for every object :(
11:57 pmurias cognominal: how do yo iterate over an array
11:57 pmurias ?
11:57 pmurias s/yo/you/
11:57 pmurias the C or for (x in y) way?
11:57 cognominal for (var i in array) {  whatever( array[i] ); }
11:57 cognominal i is the indices not the value :(
11:58 pmurias you don't get clone
11:58 pmurias ?
11:58 cognominal I was not talking about clone anymore.
11:58 cognominal but may be I miss something important.
11:59 pmurias i always get "clone" as on of the indices :(
11:59 pmurias maybe it's firefox specific
11:59 cognominal even for genuine arrays?
12:00 pmurias for Object's for sure if I remember correctly for Arrays also
12:00 svnbot6 r9278 | audreyt++ | * "make upload-smoke" now uploads smoke.
12:01 pmurias what browser do you use for development?
12:01 ayrnieu ?eval my @a = <1 2 3 4 5 6>; say @a[^@a.end]
12:01 evalbot_9275 is now known as evalbot_9277
12:01 evalbot_9277 OUTPUT[12345 ] bool::true
12:01 ayrnieu wait, what?
12:01 cognominal pmurias: not for genuine arrays
12:02 cognominal var a = [ 1,2,3]; for ( var i in a) { print(i) }
12:02 cognominal 0
12:02 cognominal 1
12:02 cognominal 2
12:02 cognominal ...using the javascript shell in firefox.
12:03 cognominal but I agree that there is a problem. objet and arrays looks too much alike
12:03 ayrnieu well, @a[0..@a] is what I mean, but I why don't @a[^@a] or @a[^+@a] work?
12:05 cognominal ayrnieu: what is the meaning of the prefix ^ ?
12:05 pmurias cognominal: you have lifted the curse, .clone has perished!
12:05 pmurias maybe it was the firefox upgrade
12:05 pmurias ...
12:05 bsb joined perl6
12:06 cognominal pmurias: I use firefox 1.5
12:06 ayrnieu cognominal - ^$n  <=>  0..($n-1)
12:07 ayrnieu ?eval say for ^5
12:07 evalbot_9277 is now known as evalbot_9278
12:07 evalbot_9278 OUTPUT[     ] undef
12:07 pmurias lets let the nightmare rest, I care only for compablity with the Evil Browser and the latest firefox
12:07 ayrnieu ?eval print for ^5
12:07 evalbot_9278 OUTPUT[] undef
12:08 ayrnieu somehow, this is an error...
12:08 ayrnieu ?eval for ^5 { say $_ }
12:08 evalbot_9278 OUTPUT[0 1 2 3 4 ] undef
12:08 ayrnieu pmurias - not Opera?
12:08 pmurias it's closed source
12:09 ayrnieu unlike EB?
12:09 ayrnieu also, Opera is hip and stylish.
12:10 ayrnieu And they are doing something that Netscape considered post-IE impossible: they are making money off their web-browser.  (Although not anymore their desktop version.)
12:10 pmurias ayrnieu: if Opera people contact me with a path I'll fix the incompabilty
12:11 pmurias anyway it was not in the project requirements
12:13 pmurias i was allowed no ignore Opera unless serious complaints are heard (it's a family business) - see www.yourcargo.org
12:14 pmurias it's a havily DOMmed site, and Opera is a lot diffrent in that area
12:15 pmurias with firefox one is allowed to most of the IE extension
12:15 pmurias s
12:17 cognominal pmurias: I am no sure if my browser ask for english, but I get polish by default on your site
12:17 rindolf joined perl6
12:17 rindolf kane_: here?
12:17 cognominal and being redirecte to :8080 is weird
12:18 pmurias you can change it using the menu, the default will be changed to deutch soon anyway?
12:18 cognominal being French, I prefer English to Deutch :)
12:19 ayrnieu being redirected to :8080 isn't /weird/, just sort of unnecessary with firewall technology.
12:19 premshree_ joined perl6
12:20 pmurias the guy responsible for our internet access didn't know how to redirect it my box without using it
12:21 pmurias French language will be supported in the next version
12:22 cognominal :)
12:25 nothingmuch
12:25 nothingmuch moosen
12:25 pmurias ?
12:25 lypanov hey nothingmuch
12:25 ayrnieu in OpenBSD PF, such a redirection is one line:  rdr on $indev from any to any port 80 -> $webip port 8080
12:25 nothingmuch hiya lypanov
12:25 rindolf lypanov: hi
12:25 rindolf Hi nothingmuch
12:25 nothingmuch Ara4n: in IO::All...
12:25 nothingmuch ;-)
12:25 lypanov heya rindolf!
12:26 nothingmuch hola rindolf
12:26 rindolf I'm looking for kane_
12:27 nothingmuch seen kane?
12:27 nothingmuch seen kane_?
12:27 nothingmuch seen kane_xs?
12:27 nothingmuch oh wait, no jabbot
12:27 nothingmuch anyway, those are his 3 nicks
12:27 pmurias ayrnieu: thanks, does it take the fact that a different page resides on :80 (different domain)
12:27 pmurias in mind
12:27 nothingmuch i'm not sure about _xs in terms of underscoring and whatnot
12:27 rindolf nothingmuch: /wii kane_ says he's been idle for 13:10:22 hours.
12:28 nothingmuch sounds like he went to bed slightly late for .nl time
12:28 nothingmuch anyway, you can also ask purl on irc.perl.org
12:38 cognominal joined perl6
12:41 pdcawley joined perl6
12:45 kisu joined perl6
12:48 premshree_ joined perl6
12:50 bsb joined perl6
12:51 larsen joined perl6
13:06 bsb joined perl6
13:17 pjcj joined perl6
13:18 wilx joined perl6
13:24 rindolf joined perl6
13:31 avar joined perl6
13:32 azuroth /wii arderydd
13:32 azuroth err
13:32 azuroth what's /wii?
13:33 azuroth I see
13:34 ayrnieu BitchX-speak , or something-speak, for the one true command of /whois $foo $foo -- for clients with silly wrappers for /whois, for silly people who want to easily /whois multiple people at a time.
13:34 azuroth very strange
13:35 ayrnieu indeed.  I have never once -- not even once -- desperately wanted to /whois multiple people at a time.
13:36 ayrnieu and demanding last-active from servers is also not very frequent.
13:43 feng123 joined perl6
14:05 whiteg_ joined perl6
14:07 elmex joined perl6
14:27 beppu joined perl6
14:38 justatheory joined perl6
14:44 justatheory joined perl6
14:51 putter joined perl6
14:55 putter gaal: thanks for the code review.  appreciated.
14:58 putter nothingmuch: re C++ project, have you considered Lua?  while officially a ansi-c project (the last time I checked, but a while ago), folks periodically do a c++ mod, which is apparently only a couple of lines.  at which point you have a higher level language to do the things you describe.  lua's main point is to do this, living embedded, so it does it well.
14:59 nothingmuch joined perl6
14:59 putter http://www.lua.org/about.html  http://lua-users.org/wiki/
14:59 putter nothingmuch: http://colabti.de/irclogger/irclogger_log/​perl6?date=2006-03-05,Sun&amp;sel=570#l898
15:05 putter audreyt: any thoughts on moving src/perl6/Prelude.pm to ext/ and thus blib6/lib/Pugs/Prelude.pm ?
15:06 lisppaste3 joined perl6
15:08 nothingmuch putter: i doubt i can make my bosses switch, but that's still interesting =)
15:09 rindolf kane_: here?
15:10 putter that's the thing, it isnt a switch, just a nice C++ library providing an api which lets you do a variety of things much more efficiently than having to code it all yourself.
15:10 putter ;)
15:10 nothingmuch putter: it is a switch, because we have a crap load of stuff for our own
15:11 nothingmuch abstractions over AIO, threading, mutexes, strings, buffers, memory management
15:11 putter (maybe the social dynamics would work better if it was called liblua?:)
15:11 nothingmuch like any good inhouse ball of mud ;-)
15:11 putter lol
15:11 nothingmuch i forgot what mit license is
15:12 putter my fuzzy recollection of looking at the code is that it was nicely done
15:12 lisppaste3 joined perl6
15:12 nothingmuch anyway, the license looks very usable
15:12 Nouk joined perl6
15:12 nothingmuch i'll have a deeper look
15:12 nothingmuch but i'm skeptical that we'll use it
15:14 putter mit is bsd like ( http://en.wikipedia.org/wiki/MIT_License )  aka X11.  vis bsd, includes "dont say you're mit/whoever" :), and doesnt include bsd's "advertising" requirement.
15:15 putter s/includes "dont/adds "dont/
15:22 putter audreyt: wow, that was quite the odd buildfail trigger ;)
15:24 nothingmuch aye
15:24 putter hmm... and while 9275 managed to avoid breaking the ./pugs build, pil2js is not happy.
15:26 putter so no-one ever got around to implementing -M ?  is there something like it tucked away in File::mumble somewhere?
15:27 * putter wants to compare age of .yml and .pm
15:29 aufrank joined perl6
15:29 aufrank hello all!
15:30 aufrank is anyone working on the rounding routines?
15:30 aufrank (listed in TASKS)
15:31 nothingmuch aufrank: not that I know of
15:31 aufrank ok, well, dibs :)
15:31 putter :)
15:32 nothingmuch you can rely on int to truncate the floats, if you're going to implement stuff
15:32 nothingmuch the article mentioned is IMHO overkill to consider, but still pretty nice
15:32 aufrank I had been doing floor(abs($x))
15:32 aufrank to truncate floats
15:32 aufrank but int is cleaner
15:32 putter there's actually a Num::truncate :)
15:33 nothingmuch round is int( $x + 0.5 ), floor is int( $x ) if float down, but I guess we want to zero
15:33 nothingmuch hehe
15:33 nothingmuch yeeeeeeeeechhhhhhhhhhh
15:34 aufrank ??
15:34 nothingmuch my sister is having a piano concert, with all her teacher's other students
15:34 putter sneeze?
15:34 nothingmuch (rehersal now)
15:34 putter ouch
15:34 nothingmuch and she also volunteered to back up a beginner synth student
15:34 aufrank double ouch
15:34 nothingmuch who is playing a HORRID adaptation of a kleiderman "composition"
15:34 nothingmuch kleiderman is horrible enough on piano
15:35 nothingmuch buut when you add a cheap "strings" sound, with a pop beat background to the mess...
15:36 aufrank question:  what's the right way to keep track of a state variable within a method?
15:36 nothingmuch what do you mean by 'state'?
15:36 nothingmuch instance data?
15:36 aufrank round_alternate says round towards even one time, round towards odd the next
15:36 nothingmuch oh
15:36 nothingmuch you can use 'state'
15:36 aufrank so I want a bool saying which to do
15:36 nothingmuch it's like static in C
15:36 nothingmuch sub foo {
15:36 nothingmuch    state $x = 1; # only assigns 1 the first time
15:36 aufrank excellent
15:36 nothingmuch    say $x++;
15:36 nothingmuch }
15:37 nothingmuch ?eval sub foo { state $x = 1; say $x++ }; foo(); foo(); foo();
15:37 evalbot_9278 OUTPUT[1 2 3 ] bool::true
15:37 nothingmuch (let's see if it works)
15:37 nothingmuch ;-)
15:37 aufrank w00t!
15:38 nothingmuch aaaaaaaaaaaaaaaaaaaaaaaaaaah
15:38 nothingmuch this is really hurting y head
15:38 * nothingmuch goes to watch BSG somewhere quiet
15:38 aufrank itunes?
15:38 nothingmuch bittorrent
15:38 aufrank I see
15:38 putter gaal: re opRequire searching - it's still needed to find the prelude.  but yeah, the p6 code could take over %*INC handling and call something simpler.
15:39 nothingmuch even if i wanted to buy them i can't, apple won't accept my money
15:40 nothingmuch plus the resolution is prolly crummy if it's optimized for iTunes
15:40 aufrank yeah, the resolution does stink
15:40 Juerd Volunteer wanted for fixing http-ssl access to feather...
15:41 rindolf Is gaal speaking now?
15:41 nothingmuch wow, the rehhersal was over quickly
15:41 nothingmuch rindolf: haven't seen him all day
15:41 nothingmuch Juerd: yeah right ;-)
15:41 Juerd nothingmuch: Really.
15:41 putter does ghc have System.Posix on windows?
15:42 nothingmuch Juerd: i mean, no chance of getting me to volunteer
15:42 nothingmuch putter: nope =
15:42 nothingmuch =(
15:42 putter :(
15:42 nothingmuch aye, it gave gaal a hell of a time WRT trying to add some kind of read support to pugs several months ago
15:46 putter the curse of Gates.  sigh.
15:46 aufrank my rounding code is getting spaghetti-y
15:47 putter you know, that "y" looks kind of like a fork.
15:47 aufrank mmm... spaghetti
15:47 rindolf nothingmuch: then why is putter addressing him?
15:47 whiteg_ is now known as whiteg
15:50 * aufrank needs to do actual work
15:50 aufrank I guess I'll commit the rounding stuff later
15:51 aufrank enjoy your days, all
15:54 nothingmuch sorry, back
15:54 nothingmuch rindolf: because he can backlog
15:55 putter aufrank: ok. thanks for the round tuits. :)
15:56 nothingmuch rindolf: also, there is the possibility that putter will forget what he wanted to say, but that someone else would remember
15:57 nothingmuch lastly, it could be that putter is insane
15:57 nothingmuch and actually thinks that gaal *is* here
16:01 putter does pugs/p6 have something which returns the stdout contents, like `cmd args`, but has system()'s  system($separate,$argu,$ments) ?
16:02 putter and what is this?  not even one groan?  how many times in the history of the universe will there be a setup to pun about _round_ tuits.  sigh.
16:02 integral it's a pipe perl5's readpipe doesn't act like system
16:02 Juerd audreyt: Please do not ever, for whatever reason, disable system wide services on feather and replace them with different services, without explicit approval
16:03 Juerd audreyt: Several people actually use https, and don't expect ssh on that port.
16:04 Juerd audreyt: If in case of an emergency you really have to do this, do restore it afterwards, and please notify me by mail...
16:05 putter integral: err, objective is p6 code which says  my $m = `%?CONFIG<perl5path> -e 'print join("\n",map{-M}@ARGV,"")'`;  while... but maybe that's good enough.
16:06 integral yeah, I was just hinting at that since perl5 has a function form of ``, perl6 could have too, and it could be fixed to have the same features as system()
16:06 putter ahhhhhh :)
16:06 integral putter: we don't have a multi-arg open?
16:06 integral it's not *too* much more code to use a popen
16:07 ayrnieu q:w:x/this looks like a string, but it is actually a list, and it doesn't use a shell :D/
16:07 putter yeah.  sigh.  the yak is getting bigger.
16:07 putter ayrnieu: :)
16:08 justatheory joined perl6
16:09 justatheory joined perl6
16:10 ayrnieu qwwx(as before, but "this is one argument")
16:11 integral ugh, why have a quotation/word minilanguage in q, rather than just using a normal perl list?
16:12 ayrnieu why say what I just said instead of ('as', 'before', 'but', "this is one argument")  NO IDEA.
16:12 * ayrnieu inserts ? as appropriate.
16:12 integral no, I mean: (<as before but>, "this is one argument")
16:12 integral soon you'll suggest: qqwwx(as before, but "this is one argument", { $obj.do_stuff })
16:13 ayrnieu that helps for my specific example.
16:14 putter integral: because the problem domain you care about has a couple of extra dimensions? (like non?interpolating)
16:17 ayrnieu anyway, the quotation minilanguage is already there.
16:18 integral I was more worried about adding "" into the qw part of the minilang
16:18 ayrnieu you mean, qww?
16:18 integral and inside a qw as opposed to a qqw how does "" vs. '' behave
16:18 ayrnieu that is also already there.
16:18 integral err, sure, if that's what we're calling it
16:18 integral oh, it is?  ugh.
16:18 ayrnieu that is what S02 calls it.
16:18 ayrnieu also, you've noticed <> vs <<>> , yes?
16:18 integral I see lots of useful stuff is spec'ed then.
16:18 integral yep
16:19 integral that's qw vs. qqw
16:19 putter "all you need".  'oh, and this'.  <and this kind of nice>.  <<and then there's this>>.  and unicode, and... why refactor into a dsl - sanity. ;)
16:19 ayrnieu expressivity is hard.  No, wait, it's easy :-)
16:19 amnesiac joined perl6
16:21 srcmaster joined perl6
16:22 ajs_home joined perl6
16:28 ayrnieu oh, I love the podstream stuff.
16:34 xerox which ones?
16:35 srcmaster is now known as uszr`
16:35 ayrnieu %POD<anything> , and @=COMMENT
16:39 vborja joined perl6
16:39 avar joined perl6
16:49 putter how do you do `cmd` in p6?
16:50 ayrnieu q:x//
16:51 ayrnieu It doesn't seem that pugs has that, yet.
16:51 ayrnieu nor :ww
16:52 ayrnieu nor other things.  But nevermind.
16:52 putter (the yak grins, rolls over and crushes putter)
16:53 nnunley You are in a maze of yaks, all needing to be shaved.
16:54 uszr` is now known as srcway
16:56 putter :) http://www.vendian.org/mncharity/dir2/cs_maze/   I do so like that Russell quote.
17:01 szbalint mroning.
17:01 szbalint *morning
17:05 avar ayrnieu: wouldn't  that be qq:x// ?
17:06 rindolf kane_: here?
17:06 avar or does q mean something different now?
17:15 putter fyi, qx/cmd/ is currently spelled   {my $p = Pipe::open($cmd); my $ret = slurp($p); $p.close; $ret;}
17:16 putter take that, yak! :)
17:16 eric256_ joined perl6
17:18 wilx joined perl6
17:21 Khisanth putter: I am sure it's shivering
17:22 putter lol :)
17:23 putter it has dreadlocks.  all it did was trim the edges a bit.
17:23 svnbot6 r9279 | eric256++ | Converted to postfix operators instead of the ` glue operator.  I think now ` and `` could be aliased to feet and inches.
17:23 putter lol
17:23 eric256_ i shoulda put the file name in the message. hmmm
17:24 putter or we could tweak svnbot6 to include the file list if it is short.
17:25 eric256_ i can now do 5m + 6f in my units.p6 example ;)   /me forgot how cool perl6 is going to be
17:25 putter oo, neat :)
17:26 putter (well, the 5m part anyway.  "feet"... sigh)
17:26 eric256_ i'm trying to figure out.. is there a ft not .. what you don't like feet?
17:26 ayrnieu avar - wouldn't what be?  q:x// and qq:x// are similar, yes.
17:26 * putter , metric bigot
17:26 avar but `` in perl 5 is not equivalent to q:x// in perl 6 but qq:x//
17:27 avar because `` interpolates
17:27 avar I like that `` doesn't exist anymore
17:27 eric256_ i'm trying to figure out how to make a set of english units, and a set of meteric units that each convert using there own base, and then some conversion between the too.. hmm
17:27 ayrnieu avar - ah, I wasn't even thinking of perl5's ``, just the basic functionality.
17:27 putter what dimensions are you planning?  LTM...?  L**2?
17:28 avar actually isn't p5 `` == p6 qq:x`` ?
17:28 avar if one wanted to be really pedantic;)
17:28 eric256_ putter??
17:28 ayrnieu avar - yes... you already said so.
17:28 avar ayrnieu: no, I didn't
17:28 putter length, length-squared, length-cubed, mass, time, etc
17:28 ayrnieu avar - oh, you just mean the delimiter?
17:29 avar yeah
17:29 avar since qq:x/./configure/ wouldn't do the same thing as `./configure`
17:29 eric256_ putter: i'm more just loooking for new things to try in perl6 and less trying to make a complete units suite
17:29 ayrnieu avar - this is too pedantic for me.
17:30 putter ok.  :)  i'm just looking forward to the toys.
17:32 putter eric256_: why have each convert using their own base?
17:33 eric256_ tp maintain accuracy and as a challenge ;)
17:33 putter :)
17:33 eric256_ if i want to go from feet to inches, i don't want to have to go through a base of meters, and if i want to go from km to m i don't want to go through feet as a base, so both systems realy want to use there own base if you want to avoid rounding errors building up
17:35 putter If Prelude ends up as a new Pugs::Prelude today, it wont have anything to do with perfectly good p6 code repeatedly breaking when moved into src/perl6/Prelude.pm.  Like prefix:.  And regex.  It wont.  Really.
17:35 eric256_ lol
17:36 eric256_ any ideas how i was getting that no match in do expression error last night?
17:37 putter i wasn't really clear on the error you saw.  note that audreyt fixed a parser error which was breaking the bots, so maybe it works now?
17:38 eric256_ i'll remake and see
17:40 rindolf kane_: here?
17:40 larsen joined perl6
17:49 putter eric256_: could you make the various units types, and conversion be a multi, and then just special case the few(?) convertions for which you have an exact multiplier?
17:51 eric256_ thats what i was thinking. leverage multis to provide special cases. like between unit sets, and then have a general multi that converts toBase, does math, and then reconverts fromBase to the desired units
17:52 eric256_ i'll need to make a conversion method, then use that in the operator (+,-,divide) so that the math operators don't all need special overrides too. ;)
17:53 rantanplan_ joined perl6
17:56 ruz_ joined perl6
17:57 putter ah, right.  interesting...
17:58 KingDiamond joined perl6
18:00 gaal putter: we can certainly hardcode searchpath for Prelude, since we don't search @*INC for that anyway.
18:02 gaal brb
18:05 putter hi gaal.
18:06 Bill_n1vux joined perl6
18:07 gaal yo!
18:08 putter It seems src/perl6/Prelude.pm has several roles.  It's trusted code (un/safe) (yes?  or the whole safe/unsafe thing generally usable and cumulative?).  It's stuff which gets hardwired into pugs as a fallback (hmm, why?).  It's general prelude stuff.  I think that's it?
18:10 gaal putter: Prelude.pm has special privs in that it can define `is builtin`
18:10 * putter is unclear how the prelude doesnt end up compiled into every file and such, so it may also have a role there?
18:10 bsb joined perl6
18:10 gaal the P6 source of src/perl6/Prelude.pm is inlined into the pugs exe
18:10 putter what exactly is 'is builtin'?
18:11 putter what is the objective of the inlining?
18:11 gaal *if* precomp prelude isn't found (and we should determine where it should be looked for), then the source version is used as a (slow) fallback
18:12 putter why?  so a crippled pugs can be used standalone?
18:12 gaal throw an exe somewhere, it should still somewhat work, yes.
18:12 * gaal looks to refresh his memory about `is builtin`
18:13 gaal putter: if inlining the yml.gz weren't awkward to do, I'd be all for doing it.
18:13 putter so what would the Right Thing inline-wise look like?  a list of module names (Math::Basic, etc) which should get the inline treatment?
18:14 putter Carp.  etc
18:14 gaal putter: I'd say everything in a Prelude directory.
18:14 rindolf Hi gaal
18:14 gaal hello rindolf
18:15 rindolf gaal: what's up? How was the Pizza yesterday?
18:15 putter so the whole p6 prelude file/module layout gets structured around pugs
18:15 rindolf perlbot: karma gaal
18:15 perlbot Karma for gaal: 83
18:16 putter 's opinion-of-the-day about what should be in the fallback set?
18:16 rindolf You do have an infobot - perlbot
18:16 putter !!
18:16 gaal putter: in the pugs backend, the only meaining I see for `is builtin` now is in Parser.hs 349
18:16 putter looking...
18:16 gaal it's just the name of the symbol to be installed
18:16 gaal fully qualified or not
18:17 gaal rindolf: it was good
18:17 gaal putter: what's the !! for?
18:17 gaal putter: other backends may assign it more meaning though
18:18 gaal I do remember that there's the "don't use `return`" limitation, not because of the Pugs backend.
18:18 putter :)  so Prelude.pm says "dont use '*', use 'is builtin'".  and Parser.hs only uses 'is builtin' to add '*'. lol
18:18 putter ah, right.
18:18 gaal putter: heh, I don't have a clear view of why that's that way.
18:19 gaal now re: fallback set..
18:19 gaal this is exactly what Prelude means
18:19 gaal "The standard library available to ALL Perl 6 programs"
18:19 ruz_ joined perl6
18:19 gaal it's part of the spec. Presumably S29, or something similar.
18:20 rindolf gaal: good.
18:20 gaal Possibly PugsDesignDeer^H^H^Hoc 29, whatever
18:21 gaal one of my selling points about the getopt library is that whoever does it really well may get it into the Prelude, if only so that pugs itself can use it for its own cmdline processing. Then, really everyone will use it. :-)
18:24 putter ok.  say we dont want Prelude.pm to be enormous.  and wish to keep the modules which-also-happen-to-be-in-prelude in the normal perly directory tree.  how could they be sucked in at build time to create the inline thing?  is inlining contagous?  could src//Prelude.pm just be a bunch of  use()es?  or do all the files need to be catted together somehow?
18:25 gaal putter: there is a hack to cat them (but it broke with the precomp stuff)
18:25 gaal but...
18:25 gaal why worry about this right now
18:25 gaal ?
18:26 putter putter ponders
18:27 * Bill_n1vux often putters while pondering, unless wondering while I wander
18:27 gaal putter: let's distinguish between
18:27 gaal a. standard libraries that are availble for 'use'
18:27 gaal b. preluded libraries that are magically available even without 'use'
18:28 putter sidebar: a file A.pm use()es B.pm.  A gets ymled.  B changes in some way which would affect A's parse.  ... someone hand deletes A.yml?
18:28 gaal If you want to work on (a), ext/ is probably cool
18:28 gaal whether (b) is a single file or not is not THAT important
18:29 gaal of course it's better if we make it so that it doesn't need to be one, but it isn't critical
18:29 putter Bill_n1vux: had awesome time at a startup, where most of the floor was unrented, unwalled.  beautify for pacing while thinking
18:29 gaal since as far as pugs loading is concerned, it is one unit
18:30 Bill_n1vux putter: when spring returns, I hope to do that more ... my cube is on a wharf, perfect for circumambulation.
18:31 putter right.  ok, what are our objectives / forcing factors.  pugs cant find the prelude when run outside it's builddir.  various p6 stuff currently breaks when placed in Prelude.pm.  any other immediate objectives?
18:31 avar what does ./method_name do?
18:31 gaal I knew about problem #1, but not of #2
18:31 avar ..in a class
18:31 gaal #1 is trivial to fix in terms of coding, but it's a spec issue
18:32 gaal avar: the same as self.method
18:32 gaal avar: only I think it's not official this week
18:32 * avar doesn't like it
18:32 avar ./ by anology with the shell?
18:32 gaal avar: there was a mile long thread about it. please don't revive it :-)
18:33 Nouk joined perl6
18:33 putter I guess I creeped into #1 because one obvious approach would be to use the normal @INC mechanism with the "current" new task/system of doing auto yml precomp caching.
18:34 avar gaal: on p6l?
18:34 avar called what?
18:34 gaal putter: no, general caching is important but just an optimization (hey, p5 doesn't have it). prelude is mission critical
18:34 avar (./ is a lousy search term)
18:34 putter #2 I just hit (again), finding I couldn't do prefix:<-M> in Prelude.pm, and my regexs all start failing.
18:35 gaal avar: yeah, sorry, don't remember. I wonder if I can sort threads by total message per thread, it'd be one of the top ten in the past year :-)
18:35 gaal putter: oh! do you know why?
18:36 putter Ok, so there are a cluster of 3 things - an immediate problem/bug (pugs cant find prelude); a new precomp capability being built; and prelude development about to kick off again, resulting substantial change/growth.
18:36 putter s/are a cluster/is a cluster/
18:37 gaal putter: if you feel pcp not being found is a downer for you let's make a makeshift
18:37 putter re why?, no idea.
18:37 gaal it's really easy to change later. (really it is:)
18:37 netprogrammer joined perl6
18:37 gaal or better:
18:38 gaal let's throw some ideas for where it should be, and decide now.
18:38 * gaal looks at pugs -V
18:39 gaal sitelib?
18:39 putter I think I was hoping we could get directly to "pugs can find itself" + "there is a single precomp mechanism used for everything" + "precomp, or its unreliable presence, ceases to be an obstacle to prelude development".
18:40 putter where _what_ should be??
18:40 gaal putter: since prelude isn't loaded like a regular module, it can't be handled with the regular cache
18:40 gaal putter: precomp prelude.
18:40 putter why isnt it loaded like a regular module?
18:41 gaal putter: it gets stuffed into the env before everything else
18:41 gaal see Run.hs.. sec
18:41 gaal line 177
18:41 gaal heh, the comment there is no longer true, fixing
18:42 putter so there are two concepts there, "stuffed into the env" and "before everything else".  seen Run.  didn't quite understand why it was implementing stuff also appearing in Prim/Eval.
18:42 gaal the point is that prepareEnv wants to give an env that has Prelude functions in it.
18:42 gaal what stuff, `require` and `use`?
18:43 putter right.  so, for example, I briefly had a non-functional-non-typechecking version of prepare which... I think it called parse and then grabbed the global env?  with the oops of I should have run rather than parse maybe?
18:43 netprogrammer left perl6
18:43 gaal that's a recent addition: because the cache manager can be written either in haskell or in perl 6, and it was my idea|fault|belief that writing the cache manager in perl would be more whipuptible
18:43 * putter has to learn to not start high-latency notes with yes/no/right/etc.
18:44 gaal putter: wanna skype?
18:44 putter lack capability :(
18:45 gaal okay I'll try summarizing then:
18:45 gaal 1. every "reasonable" Perl environment "deserves" the functions in the Prelude.
18:45 putter :)
18:46 gaal 2. We want precompilation, for performance
18:46 nothingmuch ... and semantics
18:46 gaal 3. We have to implement precompilation somewhere -- we have teh haskell fu, but maybe doing it in Perl is nicer
18:46 * putter adds "and semantics" to the list of things to get back to after gaal finishes his list
18:47 gaal ehhh, @point<3> ~~ s/precompilation/cache manager/
18:47 gaal so, if #3 obtains, we have a seeming bootstraping problem since you want Prelude to always be available
18:48 gaal that's why it's obvious to me that it's fine to hardcode the search for the prelude
18:48 putter it seems the list so far doesnt include the whole inlining thing.
18:50 gaal OTOH, the cache manager *will* need to be chummy with the internals, since it has to so something like intercept `use`, see that a cached version of a module isn't available yet, get it parsed, emit the precomp, and excercise whatever internals API to merge envs back to the current running program
18:50 gaal so it may be simpler to write in Prim.Eval despite my original ideas.
18:50 gaal I'm not sold on either way, really
18:50 putter In the _absence_ of inlining, the obvious thing would be Pugs::Prelude.pm in @INC, with .ymling normal, but perhaps restricted, and pugs .hs with just enough smarts to find and load it.
18:50 gaal as for inlining:
18:51 gaal we must have it. :)
18:51 gaal I feel pretty strongly about this, really. I want pugs-the-exe to be useful.
18:52 putter I don't disagree.  my point is...
18:53 putter all the objectives are not ending up on the table at the same time, and we're not being clear about which of them introduce which design contraints, which are driving our design of all.  at least in my poor brain, its still all an opaque ball of mud at this point. ;)
18:54 gaal okay let's see how to unblock you
18:55 gaal is searching for precomp prelude in @*INC good enough?
18:56 gaal I get the niggling feeling that no, you need to detect if you're running in a build tree
18:56 putter can we please use different vocabulary for the yml'ing and the inline'ing.
18:56 gaal but I've been known to have bogus niggles
18:56 putter rather than both being precomp.
18:56 gaal er no, the inlined version is not precompiled
18:57 putter precomp == .yml'ized?
18:57 gaal it's real source p6 code that's a constant haskell function returning a string
18:57 gaal yes
18:57 gaal if it were possible to inline a precompiled version, we woulnd't need this discussion :)
18:58 putter so the inline prelude gets compiled into pugs.  err, what is pugs not finding when run from random places?
18:58 gaal the ymlized version of Prelude.pm
18:59 putter when pugs is run from random places, it cant find the ymlized Prelude.pm, and falls back to a slower, compiled in inline Prelude.pm.
18:59 putter yes?
18:59 gaal yes
18:59 gaal the confusing teminology was that "compiled in inline Prelude.pm" was p6 source
19:00 gaal you know what
19:00 gaal let's make it simple
19:00 putter when a user use()s Foo, pugs will search for a ymlized Foo.pm.  why isnt the search for ymlized Prelude.pm using the same mechanism?
19:00 Shachaf joined perl6
19:00 gaal yeah
19:00 gaal let's just do that.
19:01 gaal it's a different code path, but sure
19:02 gaal Run.hs:243 has the comment "XXX: search path"
19:03 FurnaceBoy joined perl6
19:03 gaal and this should not be named PreludePC.yml; changing that to Prelude.yml[.gz]? will reduce bogosity
19:04 gaal I'll change it so it goes in blib6/lib and that's it.
19:04 putter Yeah.  I briefly had a hack which just ++'ed "use Pugs::Prelude;" to the string in each call to prepareEnv/tabularasa. thus using the Prim/Eval search path / loading code.  this with an empty src/perl6/Prelude.pm.  for the short time I played with it, it at least pretended to work...
19:06 gaal okay. fixing this now then.
19:06 Juerd Though shalt not have hacks without comments :P
19:07 putter that's not right, I'm confused.  everywhere in Pugs.pm, where prepareEnv/etc is used, eg
19:07 putter for parseProgram, I slapped on the new leading use().
19:07 Juerd You'll eventually get used to the confusion thing.
19:08 putter if only it didnt keep growing...
19:08 Juerd I've been confused ever since autrijus asked me to test one of the first editions of Pugs...
19:08 putter :)
19:09 putter but that obviously broke inlining.  pugs would fail if it didnt find the prelude.
19:10 gaal putter: only thing I don't understand is why Pugs::Prelude?
19:10 gaal (ie and not Prelude)
19:11 putter thinking pil2js etc would like to share stuff if possible.
19:12 gaal point.
19:12 gaal brb # need some dinner
19:12 putter ok.  note re blib6/lib (neat idea), that
19:13 putter pugs cant currently find blib6/lib without -Iblib6/lib.  so pugs is still slow unless you tell it where to find its universe.
19:14 putter indeed, unless blib6/lib gets added to @INC,  ./pugs  in builddir would use the inline unless told -Iblib6/lib.
19:14 putter so it would be slower.  no sure what to do about that.
19:15 putter hey, config has it's build path.  if cwd == path, ...
19:15 putter or not
19:18 gaal putter: but that's actually correct: unless your pugs is installed, you need to either PER6LIB or the equivalent -I anyway, for Test.pm etc
19:19 * putter wonders "if ymled files become important to pugs, but pure .yml is too big and .yml.z is really needed, for some value of .z, shouldn't pugs have built-in .z support, just like it has builtin .yml support...?"
19:19 gaal so, I'm actually reusing the search function from Prim.Eval, which is good
19:19 gaal putter, indeed
19:20 gaal and it's a problem
19:20 integral has anyone though of versioning of pugs wrt .yml files?  eg. when to regenerate them, or store them in versioned directories
19:20 gaal because from-z is easy (MissingH, bsb++)
19:20 gaal but to-z you may need to hack via p5
19:20 gaal integral: nothingmuch has a good design
19:20 integral yay!  I just hadn't heard it mentioned :)
19:21 gaal though it doesn't actually cover any policy for managing cache sizes for different versions
19:22 Juerd putter: Ehh... Pugs has many requirements; one more is no issue, I think.
19:22 gaal I think we get to worry about that later :)
19:22 putter lol :)
19:22 gaal Juerd: in fact pugs has very few requirements
19:22 Juerd Oh.
19:23 gaal Juerd: Perl 5.6.1, unancient EU::MM, GHC.
19:23 Juerd Then still I think adding one isn't an issue, but for other reasons :)
19:23 gaal If you want smokes, there's some more, but that's really optional.
19:23 Juerd Ah
19:24 Khisanth joined perl6
19:24 gaal Juerd: on some platform which you don't like, zlib may not be trivial to install
19:24 gaal so there's the option of bundling
19:24 Juerd I hate that platform.
19:25 gaal zlib isn't very large, nor encumbered by an annoying license, but still, bundling is kinda annoying
19:25 gaal Juerd: we're still going to support it though. :)
19:25 Juerd Why? :)
19:25 putter :)  use Test.pm;   baseline (from .pm), 20sec.  yml'ize and load, 14sec.  load existing yml, 4sec.  pugs -e 'say 3' for floor, 2sec.  :)  nice job gaal etal.
19:25 gaal I'm not going to answer that. :)
19:25 Juerd Linux can run as an application on that platform
19:26 gaal Juerd: no way you're getting me into this discussion now :)
19:26 Juerd Really?
19:27 Juerd Could we schedule it for later then?
19:27 gaal Juerd: sure, but you have to buy me a beer.
19:28 Juerd gaal: Okay :)
19:28 gaal putter: yay! :) et al did include some other people...
19:29 integral we could be really cool and write a gz impl in p6 :-P
19:29 gaal integral: don't think I didn't consider that :)
19:29 gaal but it has to be, like, fast
19:29 Juerd integral: re system and ``, isn't a flag for system() better?
19:30 * integral waves his hands around a bit, and mentions parrot
19:30 integral Juerd: to make system into ``?
19:30 Juerd integral: parse error
19:30 * gaal waves back and mentions MissingH
19:30 integral Juerd: a flag for system() that makes system into ``?
19:31 Juerd integral: Yes.
19:32 integral I don't really like that because I see `` as more a wrapper around a open F, "foo|" than around what system does
19:32 Juerd I see both as wrapping around open.
19:32 integral Juerd: ugh?  system wrapping around open?!
19:32 Juerd Sure?
19:33 FurnaceBoy_ joined perl6
19:33 integral maybe I'm just thinking too unixy, but open implies some use of a filehandle, and in this case a pipe(),  and so something wrapping open, and then throwing away my defining characteristic of open?
19:33 rindolf kane_: here?
19:34 Juerd integral: It's both fork+exec, anyway...
19:35 integral Juerd: hmm, I don't actually see how to write system() in terms in open() in pure p6
19:36 Juerd Neither do I.
19:36 Juerd Regardless, that's the way I've been seeing system :)
19:36 Juerd And I see open as a wrapper around fork+exec+pipe
19:37 mako132_ joined perl6
19:37 svnbot6 r9280 | putter++ | Prelude.pm: use/require: Check that .pm.yml is more recent than .pm.  And some code cleanup (gaal++).
19:37 svnbot6 r9280 | putter++ | Prelude.pm: created prefix_M, to get file modification time.  Calling it prefix:<-M> doesnt work in Prelude.pm. :(  Calls an external perl5. :(  Under unix, it would be better to use ghc's Sys.Posix.Files.modificationTime.  See Compat.hs, and op0 "time" in Prim.hs.  But it doesnt work on windows.
19:37 integral hmm, if a FileHandle does Array, and open returns a FileHandle, @lines = `foo` === @lines = open "-|", "foo"
19:42 nothingmuch so, i'm going to write my CV and I want some advice
19:42 nothingmuch since i've never done anything of the sort
19:42 rindolf nothingmuch: shoot
19:42 nothingmuch what actually goes in there?
19:42 nothingmuch i know:
19:42 nothingmuch short bio
19:43 nothingmuch what I learned
19:43 nothingmuch what i've been paid to do
19:43 nothingmuch what else?
19:43 rindolf nothingmuch: open source projects
19:43 integral don't make it too long
19:43 nothingmuch ofcourse
19:43 rindolf nothingmuch: fields of expertise
19:43 nothingmuch integral: so brain dumping everything I can do well is not a good idea?
19:43 rindolf nothingmuch: you can look at mine: http://www.shlomifish.org/me/resumes/
19:44 * nothingmuch tries to relearn latex
19:44 integral nothingmuch: depends,  if you have a lot of stuff, I'd target it towards the specific job you want
19:44 nothingmuch integral: aha...
19:44 nothingmuch makes sense, i gues
19:44 nothingmuch s
19:47 putter where did the name "blib6/lib" come from?
19:47 rindolf nothingmuch: shouldn't you use HTML for your resumé?
19:47 Arathorn joined perl6
19:47 nothingmuch rindolf: latex -> pdf == prints well
19:47 nothingmuch i can dumb it down to pod, too
19:47 integral putter: perl5 uses blib/lib
19:47 nothingmuch or i can make it htmlish
19:48 rindolf nothingmuch: you can convert HTML to LaTeX.
19:48 nothingmuch i know
19:48 rindolf nothingmuch: you can also convert HTML to Word.
19:48 nothingmuch but that direction doesn't work well
19:48 nothingmuch word is an editing format, not a presentation format.... and i hate editing in it
19:48 nothingmuch i can export from anything to word nowadays
19:48 integral rindolf: just turn the DVI into pngs and paste those into words
19:48 integral s/s$//
19:49 Juerd Why Word? Use Word Perfect
19:49 Juerd It's better. Actually, it's perfect.
19:49 Juerd hence the name!
19:49 nothingmuch what is it?
19:49 rindolf Juerd: because the whole world and his mother uses Word and sometimes expects documents in this format.
19:49 rindolf nothingmuch: Word Perfect?
19:49 nothingmuch yes
19:49 rindolf nothingmuch: it's a word processor.
19:50 nothingmuch that much i couldn't have guessed on my own ;-)
19:50 gaal nothingmuch: use whatever formatting tool you want. always make a cover letter for the specific place you're applying to. always try to send your resume in via a person who isn't from HR.
19:50 putter integral: ah, thanks.  didnt see it in the random p5 dir I had at hand, but was confused, and think it's unbuilt.
19:50 Juerd rindolf: If someone wants me to use Word, even after I explain the issue with that, I don't want to work for them.
19:50 nothingmuch gaal: makes sense
19:50 rindolf Juerd: you can use OOo to save as word.
19:50 integral putter: yeah.   the build process assembles all the files to install into blib, and make install simply copies things from blib
19:51 gaal re: short or long, it depends on the culture. for .il 1-2 pages is good.
19:51 Juerd rindolf: There are many good reasons to refuse to do so.
19:51 integral and don't put anything important in small print on page 2
19:51 gaal there are excellent resources for this stuff online
19:51 Juerd rindolf: And in fact, most of the time in practice, PDF suffices.
19:51 rindolf Juerd: "Reality, to be conquered, must be obeyed"
19:52 Juerd rindolf: Reality must be changed if it's wrong.
19:52 sapper joined perl6
19:52 gaal the best tip I can give is be ready to customize per application.
19:52 Juerd rindolf: I am in the position to say no, and use it.
19:52 rindolf Juerd: "Reality, to be changed, must be obeyed"
19:52 luqui joined perl6
19:52 Juerd rindolf: Reality isn't Word, you know.
19:52 gaal yo luqui!
19:52 luqui left perl6
19:53 gaal oy, luqui :(
19:53 Juerd rindolf: Reality is that they may expect this, but never because it's *needed*.
19:53 putter lol
19:53 * gaal goes back to hacking
19:53 rindolf Juerd: Reality isn't Word, but Word is reality.
19:53 Juerd I have sent out several CDs with OpenOffice.org, and people like that.
19:53 Juerd They can install OOo and edit my document, if they must edit it, and that way, the layout and contents aren't fucked up at each revision.
19:54 eric256_ is there a meta method to get the name of the class of an object?
19:54 Juerd I cannot install their Word crap as easily, because it'd cost be a big bag of cash to get Microsoft Office, the required Microsoft Windows, and the time to install all of that.
19:54 rindolf Juerd: resumes are meant to be read, not change.
19:54 Juerd rindolf: Right, so PDF suffices.
19:54 rindolf Juerd: assuming the intended recipient can grok PDF.
19:55 Juerd If they must have a resume in Word's .DOC, then perhaps they'll never have real geeks working for them.
19:55 rindolf I'm sending my resume as HTML.
19:55 Juerd rindolf: They can.
19:56 rindolf Albeit someone requested a document in word format because he couldn't open the HTML one. Maybe the XML declaration (<? ... ?>) caused him trouble.
19:56 eric256_ or maybe he tried opening it in word
19:56 eric256_ lol
19:56 integral rindolf: HTML doesn't have an XML declaration.
19:57 nothingmuch luqui? is that really you?
19:57 rindolf integral: I meant XHTML.
19:57 nothingmuch oh crap, just a shadow
19:57 * integral prefers HTML 4.01 or lower still
19:58 rindolf integral: HTML 1.0
19:59 Bill_n1vux One of the Word *.DOC formats is actually RTF with a preamble. Safe and portable.
20:00 vel joined perl6
20:00 rindolf I like DocBook/XML for serious documentation.
20:01 rindolf I wrote some stories and essays in DocBook/XML.
20:01 integral the toolchains aren't very solid for that though IMHO
20:01 eric256_ if i have classes that are derived from other classes.. i.e. distance is unit; if i multi sub *infix:<+> for a combination of 2 units, and a combination of a types distance, shouldn't the distance one be called when used with objects of type distance even though they are of type unit as well?  /me hopes that made since
20:01 rindolf Too bad DocBook/XML has poor Bi-directionality support.
20:02 putter how does one get the pugs' C-level argv[0]?  ie, the path of the pugs executable.  (not %?CONFIG<pugspath>, which is just where it thinks it should eventually be installed.)
20:03 FurnaceBoy_ <Bill_n1vux>One of the Word *.DOC formats is actually RTF with a preamble. Safe and portable.
20:03 FurnaceBoy_ why not just use rtf then?
20:03 gaal putter: $*PROGRAM_NAME ?
20:04 gaal oh, not p5 $0, p5 FindBin.
20:04 gaal dunno, sorry.
20:06 Juerd eric256_: Always, the most specific type should be preferred in mmd.
20:06 putter np.  ah well.  I was enamored of the idea that pugs could check it argv[0], and if it was different than %?CONFIG<pugspath>, it would basically know it was being run out of its development dir, and could automagically push  devdir/blib6/lib onto its @INC...  make life easier.
20:06 Juerd eric256_: It can be first-defined in a static language, but we don't have the luxury of such laziness.
20:07 gaal putter: I don't want to send you off on a wild moose chase, but I seem to remember there was some sort of compatibility thing with argv[0]
20:08 putter there are all sorts of nasty hairy fanged compatibility things with argv[0] :)
20:09 putter sigh.  oh well.
20:10 eric256_ juerd: pugs doesn't seem to be behaving that way,  gtg for now, but i'll see if i can't narrow it down to a good test case later
20:12 rindolf gaal: I see you're editing wiki.osdc.org.il
20:12 rindolf gaal: are you subscribed to its RSS feed?
20:12 Juerd eric256_: By the way - welcome back
20:13 putter Ok, so use/require are doing .yml stuff.  gaal's working on making the ymlized (that keeps sounding like carmelized and making me hungry) Prelude.pm.  which will keep its existing inline mechanism.  then, using the new wizzy ymlized Prelude, putter will dump all sorts of new cruft into Prelude.pm, rendering the inline version unusable due to enormous startup latency.  sounds like a plan.
20:15 gaal putter: the inlined version shouldn't ever be needed anyway. except once every build.
20:15 gaal rindolf: no.
20:16 rindolf gaal: OK.
20:17 blm_ joined perl6
20:17 * gaal ponders a "pugs --emit-precompiled-prelude" option
20:17 putter gaal: why is it needed once per build?
20:18 gaal putter: because presumably you need Prelude to run pugs -CParse-YAML Prelude.pm
20:18 gaal actually
20:18 gaal if that's not the case...
20:18 gaal you've just shaved off some time in the build! :)
20:18 gaal (because of BYPASS_PRELUDE or whatevr it's called)
20:20 putter :)
20:21 gaal .oO( or do we already bypass the prelude so that the preluded env doesn't get in the way of the one being compiled+emitted? I'm not sure )
20:21 putter re --emit-precompiled-prelude, if precompiled == yml, please no.  ;)
20:22 * putter goes back to read that .oO again.. for the third time... ;)
20:28 jisom joined perl6
20:30 putter "Hey, Juerd", putter wispers, "what parts of the pugs Big Picture have _you_ heard of?".
20:32 Juerd putter: Referring to what? :)
20:33 putter gaal is making ymlized Prelude.pm work.  That will permit lots of random p6 to be dumped there (apropos writing all the p6 parts of p6), and permit Prim.hs stuff to be either reimplemented in p6, or at least renamed to Pugs::Internals::mumble (for p6 in p6, and for minimized-Prim for PIL^N).  let's see...
20:34 putter Juerd: trying to assemble a picture of status.  STATUS even ;)
20:35 rindolf gaal: what is the Takahashi style of presentation?
20:35 Juerd putter: The big picture is to do everything :)
20:35 Juerd rindolf: Get a life and visit some social events ;)
20:35 putter stevan is... thinking about efficient p6 objects on p5???  thinking other object-y thoughts???
20:36 Juerd My battery will die soon
20:36 Juerd Good night everyone
20:36 Juerd Or s/night/{ localtime }/
20:36 integral hmm, the dates in STATUS still mostly read 2005 :-(
20:36 integral night Juerd !
20:36 putter the status of the p6 oo model is... in limbo awaiting the forcing factor of p5 or piln implementation???
20:36 putter good night Juerd &
20:37 putter err, s/&/*wave*/
20:40 putter on regexes and parsing...  it looks like fglock could use help dumping Lexer/Parser.hs to p6 rules (giving us both a (nondynamic) p6 rules grammar for p6, and giving his iteration_engine a chance to attempt parsing of p6 code).
20:41 rindolf gaal: that's OK, found it by a Google search. It's not on wikipedia yet.
20:41 gaal found what? oh, sorry, missed your previous question
20:42 wolverian takahashi method is on wikipedia
20:42 rindolf kane_: here?
20:43 gaal rindolf: just send him an email?
20:44 rindolf gaal: I'd like to talk to him in real time.
20:44 putter bbiab
20:56 uszr` joined perl6
20:57 mako132_ joined perl6
20:58 gaal what's the converse of basename?
20:58 gaal er, that is, $pathname =~ s,(.*)/,, only not bogus
20:58 gaal $pathname =~ s,(.*)/,$1,
20:59 gaal argh.
20:59 gaal $pathname =~ s,(.*)/.*,$1,
20:59 gaal only still not bogus :)
21:00 gaal File::Basename::dirname, thanks :)
21:01 samhain1138 joined perl6
21:04 avar gaal: np
21:06 penk joined perl6
21:08 ghenry joined perl6
21:09 putter :)
21:10 azuroth put put putter
21:11 sapper joined perl6
21:11 SamB joined perl6
21:15 gaal fixed. putter++
21:16 svnbot6 r9281 | gaal++ | * Rationalize search of precompiled Prelude: now via @*INC. putter++
21:16 svnbot6 r9281 | gaal++ | * Generate it in blib6/lib/Prelude.pm.yml, not src/Pugs/PreludePC.yml
21:16 svnbot6 r9281 | gaal++ | * Fix two stray "/" to file_sep
21:16 svnbot6 r9281 | gaal++ | * TODO: gzip portably (see comment in util/build_pugs.pl)
21:16 svnbot6 r9280 | putter++ | Prelude.pm: use/require: Check that .pm.yml is more recent than .pm.  And some code cleanup (gaal++).
21:16 svnbot6 r9280 | putter++ | Prelude.pm: created prefix_M, to get file modification time.  Calling it prefix:<-M> doesnt work in Prelude.pm. :(  Calls an external perl5. :(  Under unix, it would be better to use ghc's Sys.Posix.Files.modificationTime.  See Compat.hs, and op0 "time" in Prim.hs.  But it doesnt work on windows.
21:16 putter woot!
21:17 putter and svnbot is having flashbacks again ;)
21:18 gaal so, everyone gets fast prelude as long as they set @*INC properly, just as they would for (say) Test.pm
21:18 gaal this also solves the installation question, I suppose.
21:18 putter right.  I still wish there was a way to finesse that (as I usually dont so set, and always find it a bit annoying)...
21:18 gaal you don't what?
21:19 putter re installation, right, and who get's to be the first guinne pig :)
21:19 gaal not I, I get to sleep now I think
21:19 putter -Iblib6/lib
21:19 putter good night gaal++.  thanks for the fun new fish.
21:20 gaal I thought the new fish was ready a week ago.. I suppose it's the little things that count
21:21 putter oh, hmm,
21:22 putter it's an incrementally emergent fish ?
21:22 gaal putter: before I go to bed, there was one quesiton for you.. was the concern about separate files just good coding practice / convenience or did you have a plan for reusable prelude somehow?
21:22 putter works! yay.
21:22 gaal wheeee
21:23 putter hmmm
21:23 putter a blurry combination of the two?
21:23 Bill_n1vux left perl6
21:23 gaal #2 implies you had an inkling of a plan :)(
21:24 putter I like the model of alternate backends being
21:24 putter almost entirely p6-based, with just a few subs/methods overwritten.
21:24 putter but whether that's one file or many, doesnt really matter for now.
21:25 putter I think it was just me groping my way blindly through design space.
21:25 FurnaceBoy_ is now known as FurnaceBoy
21:26 azuroth FurnaceBoy, FurnaceBoy, fur fur fur fur FurnaceBoy
21:26 * gaal hands out fluffy, toe-protecting socks for all gropers
21:26 putter thanks!  ooo, blood absorbant too - great :)
21:26 * FurnaceBoy greets azuroth similarly
21:27 azuroth :D
21:27 putter if we had a working p6 parser on p5 (hmm, maybe we do re i_e), i'd be trying to pour code into it.
21:27 putter starting with a prelude
21:27 FurnaceBoy why not an Accord?
21:27 * FurnaceBoy ducks. the coffee's working. :)
21:28 putter or now that parse-yaml demonstrably works, perhaps we could do a p5 backend for that.  yaml on p5 isnt broken anymore, yes?
21:29 gaal putter: use YAML::Syck and it's even very fast :)
21:29 putter :)
21:30 putter I guess this is one of those "you're in a room with many doors" situation.  there's
21:32 gaal what's a p5 backend for parse-yaml though?
21:32 putter expand Prelude.pm, p5 backend for Parse-YAML, Lexer/Parser.hs -> rules, pure p5 regexp-hook extendability, iterator_engine, (pause)
21:32 gaal my turn to gropw
21:32 gaal e
21:33 putter p5 implementation of p6 which starts from the parse-yaml rather than known-to-be-insufficient(persistantly) pilX.
21:33 stevan pilX is dead,.. long live pilX
21:33 putter lol
21:33 putter hi stevan :)
21:33 stevan heya putter
21:33 gaal yo stevan
21:34 stevan howdy gaal
21:34 putter Prelude.pm is in blib6/lib, and yml-ized! :)
21:34 stevan eak! I am so behind on pugs these days
21:34 gaal putter: parse-yaml is just a way to serialize ASTs (and globs)
21:34 stevan this week though, I will hopefully be able to jump back in
21:35 putter right.  yaml->p5 objects(?) ast =>p5-based-compiler=> p6 ast? =>p5emitter=> something stevan helps write:)
21:36 stevan putter, gaal: so where is the state of the spike these days?
21:37 gaal putter: ah, so that lets you proceed w/o needing to write a parser yet
21:37 putter which is just PIL-Run, but for the ast's and the p5-based-compiler part..
21:37 gaal I think I see
21:37 putter yes
21:37 Limbic_Region joined perl6
21:37 putter and hopefully get more people involved, it being p5 and all.  not sure if I completely buy that argument though.
21:37 gaal putter: okay, experimnet with 'pugs -CParse-YAML -e 'if 42 { say "moose" }'
21:38 gaal currently the output of parse-yaml is a 2-tuple
21:38 gaal (glob, ast)
21:38 gaal but do note that we plan on adding some metadata, because we want this to be an extensible bytecode format
21:40 * azuroth blasts off. bye all
21:40 gaal okay, i'd really better sleep now. good night :)
21:40 putter yes.  eep, I notice the absence of a version number :)  "Church of the version number - principle and only teaching - all protocols shalt have a version number"
21:40 DesreveR joined perl6
21:40 putter good night gaal
21:41 putter 'twas fun
21:41 putter stevan: re spike,
21:41 gaal putter: if you can thing of other things that need putting there, please tell
21:41 gaal also how to generate version nubmers :)
21:41 gaal zzZ&
21:41 putter will do :)
21:42 putter oh, that's version numbers in the protocol-version-number sense.  sortof doesnt matter how they get done, as long as they are there as a hook.
21:43 putter s/in the/as in the/
21:43 putter so the dump format can evolve
21:44 putter re spike, fglock has been making progress - see misc/pX/Common/iterator...prelude
21:45 putter I futzed around a bit, and have a partially cleaned up version of the regex part of the spike, but got bogged down in operator precedence parser land.
21:46 stevan yeah I have seen all fglocks commits, and his announcement on p6a
21:47 putter wandered off and played with some of perl5's hooks to intercept regexp creation/use, which together with source filters and the rest, might just barely be sufficient to pull off p6-like regexs, transparently, on p5-writen-by-humans.  but not quite I think.
21:47 jisom why not just use PGE for p6 regexes?
21:48 stevan jisom: because that requires hooking into Parrot, putter is talking about a p5 engine
21:48 jisom ok...
21:48 putter there hasn't been much interest in the spike, so with the "spike" pressure gone, and fglock puttering along and even getting some assistance from folks, my spike-focus has largely been absent. :(
21:48 mauke_ joined perl6
21:49 stevan putter: well this week audreyt is going to be hangin with leo, and working out the Parrot objectspace
21:49 stevan I told them I would try to be around
21:49 putter oh, nifty
21:49 stevan maybe you can divert your focus and work with me on PIR hell :)
21:50 putter if we can get objects disambiguated a bit, that would be great
21:50 stevan *cough* I mean PIR funland
21:50 stevan putter: I have some thoughts coming out of Class::MOP about how to clean some of the fuzzier bits of the metamodel
21:50 putter yeah, funland.  been there, done that, just so not going to happen.
21:50 stevan mostly they center around a more fully realized set of attribute and method objects
21:51 stevan LOL
21:52 putter is Array a class?  yes, of course.  is a role too?  are all classes roles too?  putter looks confused.
21:52 putter s/is a role/is it a role/
21:52 stevan oh no,.. not that again :P
21:53 putter magically given a working p6 from the future, I'm still not at the point where I could sit down and write a p6 implementation.
21:53 putter which kind of sucks, because the way I want to write a p5 implementation, is to sit down and write a p6 one, and fill in the missing bits.
21:56 stevan you want to implement p5 in p6 :P
21:56 Limbic_Region oh - in case anyone is interested - running the most basic p6 code in Pugs now takes 10 seconds on my Win32 build
21:56 jisom go for a challenge, implement parrot in p6 and get p6 running on p5 and if ponie gets finished you can get p5 running on parrot
21:57 putter after pilrun's "oh, that's *cute*", my thoughts go more towards "oh, what new ways can I think of to abuse the symbol table and to reduce p5 opcode counts so I can do p6 on close to bare p5/xs metal, and waste my life in premature optimization", than to "oo, objects, let's abstract, and work for correctness, even though there is no spec".
21:57 putter ok, I'm getting grumpy. :)  time for some sugar-water.
21:57 FurnaceBoy what attractive alternatives !!
21:57 putter re implement p5 in p6, oh, meant p6 implemented in p5.
21:58 putter Limbic_Region: did you say -Iblib6/lib ?
21:58 jisom yeah, I know....but....nm
21:59 Limbic_Region putter - no, but should I?
22:00 putter Limbic_Region: the compiled version of the Prelude.pm is now in blib6/lib, and looked for in @INC.  if it's not found, you get the slow fallback (the same one you were earlier getting by running pugs outside of the builddir)
22:00 putter near term at least, the fallback (compiled into pugs itself) is going to get nothing but slower.
22:01 svnbot6 r9282 | pmurias++ | less awkward way of declearing nodes
22:01 uszr_ joined perl6
22:01 Limbic_Region putter - I wasn't running pugs outside the builddir
22:01 Limbic_Region ever
22:02 putter ah, i'm confused, some were, and seeing slowness.  now you get to too.
22:02 Limbic_Region ok - so what is a full snippet of what I should try from the command line
22:02 Limbic_Region assuming I am in the directory I built pugs
22:02 putter ./pugs -Iblib6/lib whatever
22:02 Limbic_Region Win32 - slashes go the other way
22:03 putter :)
22:03 jisom MacOS 9 and below, no slashes at all
22:03 Limbic_Region pugs: -blib\lib: openFile: does not exist (No such file or directory)
22:03 Limbic_Region errr
22:03 putter ;)
22:03 Limbic_Region that's a strange error
22:04 Limbic_Region but that's what happens
22:04 putter you forgot the -I ?
22:04 Limbic_Region no
22:04 Limbic_Region .\pugs -lblib\lib balls.p6
22:04 Limbic_Region and fwiw - it is now twice as slow as it was yesterday
22:05 putter do you ever run test files directly?  how do you point at Test.pm?
22:05 Limbic_Region interesting
22:05 * Limbic_Region hasn't run the test suite in some time because of how S-L-O-W it is
22:05 Limbic_Region but
22:05 putter re twice, should be more than that if you're seen the fallback
22:05 Limbic_Region .\pugs -l blib\lib balls.p6
22:06 Limbic_Region pugs: blib\lib: openFile: permission denied (Permission denied)
22:06 Limbic_Region new error
22:06 Limbic_Region just put a space between -l and blib
22:06 LeTo Limbic_Region: 'I' captiatl I
22:06 LeTo and blib6/lib '6'
22:06 putter LeTo++
22:07 Limbic_Region pugs: -Lblib\lib: openFile: does not exist (No such file or directory)
22:07 LeTo *I*
22:07 putter no, "I" as in India, and blib6 as in this is p6.
22:07 Limbic_Region huh include
22:07 Limbic_Region not lib
22:07 Limbic_Region heh
22:08 Limbic_Region let me try this again
22:08 Limbic_Region ok - no errors, still taking circa 10 seconds
22:08 * LeTo is running svnbot for parrot with: pugs  -Iblib6/lib   ../svnbot.p6
22:08 LeTo ...
22:09 LeTo it just works ;)
22:09 Limbic_Region ok
22:09 Limbic_Region 10 seconds without the blib6\lib
22:09 Limbic_Region and 5 seconds with
22:09 putter Limbic_Region: so you have a recent snapshot, you did make (the precompiled prelude gets done at build time), and...
22:09 LeTo and it's starting slow - definitely yes
22:10 Limbic_Region putter - I always do nmake realclean; svn up; perl Makefile.PL; nmake
22:10 putter ls -l blib6/lib/Pugs  says?
22:10 LeTo I'm running it on feather with the publically available pugs (however that is built)
22:10 Limbic_Region you mean dir
22:11 Limbic_Region There is no Pugs directory under blib6\lib
22:11 putter oh, I guess it's  ls -l blib6/lib/Prelude.pm.yml
22:11 Limbic_Region there is however a blib\lib\pugs (no 6)
22:12 Limbic_Region 1,324,514 bytes built at 4:53PM localtime today
22:12 putter oh, fribble. one sec.
22:13 putter no, never mind. hmm
22:13 putter could you time -e 'say 3' and -e 'use Test;' ?
22:14 Limbic_Region so as I said with -Iblib6\lib it takes 5 seconds (same as yesterday) and without it takes circa 10
22:14 Limbic_Region yep
22:14 putter ah, ok.  so modulo needing -I , you are back to normal.  yes?
22:14 putter so now the payoff.
22:14 Limbic_Region compiling test
22:15 Limbic_Region that blew up
22:15 Limbic_Region I can nopaste the error if you want
22:15 Limbic_Region well - for some definition of normal
22:15 putter if you make blib6/lib/Test.pm writable, you will get a precompiled Test.pm.yml created for you.
22:15 Limbic_Region it had been only around 1 second not too long ago
22:15 Limbic_Region it is writeable
22:15 Limbic_Region this is a winbugs box
22:16 Limbic_Region unless you specifically change it to read-only or change the acls for permissions - it is writeable
22:16 putter re 1 sec, hmm, dont know what's up with that.
22:16 Limbic_Region ooh wait
22:16 Limbic_Region that's weird
22:16 Limbic_Region it isn't writeable
22:17 putter blib6 is the directory tree set up for install to copy from.
22:17 Steve_p joined perl6
22:17 Limbic_Region right - but by default files created on Win32 are not read-only
22:17 Limbic_Region ok putter - it blew up again - different error
22:18 putter until nothingmuch gets to it, right now the caching is extremely dumb.  if the .pm file is writable, create a .pm.yml when it is use()d.
22:19 Limbic_Region ok - well I just did a global change of read-only status
22:19 Limbic_Region neato
22:19 Limbic_Region that made things extremely fast
22:19 Limbic_Region as in about 2 seconds now
22:20 putter :)
22:20 Limbic_Region I did it on the entire Pugs build directory
22:21 Limbic_Region making stuff read-only out of the repository violates the principal of least suprise IMO
22:22 putter (making things writable in /usr/local/ allows violating a lot more than that ;)
22:22 putter oh, windows, I keep forgetting.  single-user os.
22:22 putter ;)
22:22 Limbic_Region putter - not at all
22:23 Limbic_Region on a *nix box the system/user should have a sane umask
22:23 Limbic_Region and for those files that need to have the umask overridden the install process should specifically set them
22:23 Limbic_Region and on Windows a similar thing can be done
22:26 putter my understanding is perl uses a two step install process so you can run perl without having to install, using the blib assembled from all the assorted sources in the build.
22:27 avar putter: of course, just like nearly any other program
22:28 Limbic_Region I won't pretend to understand any of the build process - cause I don't
22:28 Limbic_Region but when I download stuff - I do not expect it to change file permissions indiscrimanently (regardless of OS)
22:29 * Limbic_Region starts a fresh build with everything globally writeable
22:31 putter LR: err, build as in make?  which will create blib6 with aforementioned non-writableness?
22:31 Limbic_Region putter - yes, wanting to verify what files get changed
22:32 Limbic_Region since I didn't do a good job the first time at trying to isolate the whackiness
22:33 putter ah
22:33 handon joined perl6
22:33 handon is now known as vborja
22:35 Limbic_Region putter - my real goal is to find just the necessary files needed to make things run fast
22:35 putter :)
22:35 Limbic_Region and < 2 seconds is pretty fast considering it was 5-10 before
22:36 putter precompiling Test has a similar impact on it
22:37 Limbic_Region on the test suite
22:37 Limbic_Region which I don't run
22:37 putter precompiling and loading is actually faster than just a straight load of the .pm .
22:37 putter ah
22:37 Limbic_Region oh, and fwiw unless the global change fixed something else - I am getting failures compiling Test.pm
22:38 putter stevan: ping?
22:38 putter sigh.  before last night too?
22:39 putter actually, even if I punt, the next question anyone pursuing it will have is "could you paste the error message(s)"... so... ;)
22:41 nothingmuch joined perl6
22:41 putter stevan: sorry I got distracted.  I'd be interested in hearing what you are going to be up to, and discussing what to do next.
22:42 putter nothingmuch: ?
22:42 putter nothingmuch: so, the precompiling hook is in... have fun :)
22:45 putter ok, I'm wiped.  dinner &
22:47 nothingmuch joined perl6
22:58 putter gaal: just in case it was audreyt who fixed it and not you, note that pugs -e 'use Test;' now works.
22:58 putter nothingmuch: ping?
22:58 putter (re now works, though note Limbic_Region's reports of difficulties on Win32 above)
23:00 Limbic_Region which I am going to try and isolate
23:00 Limbic_Region AFAIK, pugs -e "use Test;" does not work on Win32
23:01 * Limbic_Region is almost done with a clean build to investigate
23:01 nothingmuch putter: pong
23:04 putter hi nothingmuch.  the use/require precomp hook is in, so I think I'm clear.  feel free to bash it about any way you like.
23:04 nothingmuch putter: okay
23:04 nothingmuch self.punt(*@all);
23:04 putter :)
23:04 nothingmuch i need to switch jobs first
23:04 nothingmuch i realized that I'm unhappy
23:06 putter back.  was wondering why your starting a job search was making me think of burned chicken.  then realized.  still edible.
23:06 Limbic_Region ok - for pugs -e "use Test;" to work on MY win32 build, I need to make blib6\lib\Test.pm writeable and use pugs -Iblib6\lib -e "use Test;"
23:07 blm_ is now known as blm
23:07 putter do you have a feel for how long it will take you?  ie, is it "have offers, choose one, go"?  or "trying to find water in an unfamiliar desert"?
23:08 Limbic_Region I assume it works after that - it is yelling that I don't have a parrot in the path though I do
23:08 putter Limbic_Region: the writablity is _required_?
23:08 putter that would mean the precomp Test.pm is working, but the normal load-from-.pm of Test.pm is not.
23:10 Limbic_Region erm well, let me try just pugs -Iblib6\lib -e "use Test;" without Test.pm being writeable
23:10 Limbic_Region IIRC that blows up but let me be sure
23:11 nothingmuch putter: err, i need to finish my CV
23:11 nothingmuch i get job offers all the time
23:11 nothingmuch 2-3 monthly
23:11 Limbic_Region even weirder
23:11 Limbic_Region that works with no errors at all
23:11 nothingmuch i'll send out my CV to all the job posts I can find in 30 mins
23:11 nothingmuch and all my friends
23:11 dduncan joined perl6
23:11 nothingmuch and we'll see what I can dish out
23:11 nothingmuch but this is short term
23:12 nothingmuch so i guess it's more difficult
23:12 Limbic_Region *shrug* - I am not going to debug
23:12 nothingmuch (2-3 months tops, at least as far as I know right now)
23:12 Limbic_Region I am just going to make everything writeable and be happy that it is once again fast
23:20 planrantan joined perl6
23:20 m joined perl6
23:23 Gothmog__ joined perl6
23:25 Gothmog__ is now known as Gothmog_
23:25 putter Limbic_Region: aside from making it non-writable, you would need to delete the .yml.  the writability is only currently affecting the decision of whether to create the .yml, not whether to use it if it is already there.
23:27 putter nothingmuch: hmm, how about a two step process?  first send it to your friends, get feedback, tweak, and then world?  
23:27 nothingmuch putter: ofcourse
23:27 nothingmuch of course
23:27 nothingmuch this is a "by the end of the week" plan
23:28 putter I also note that a targeted resume, with cover letter specific to the job description, at least in the US, seems to usually be at least an order of magnitude more effective than a broadcast thing.
23:29 putter ah, good plan
23:29 putter (of course, it's several orders of magnitude easier to broadcast than to tailor, so depending on your objectives...:)
23:30 nothingmuch I'm relying on word of mouth as a catalyzer here, because much more people know me and can reccomend me than I know of jobs
23:30 putter a most excellent approach
23:30 nothingmuch but i guess I can ask them to tell me about things, instead of pass my cv on
23:30 nothingmuch so that I can prepare something more directed
23:31 putter ah, that would be good too.  if only so you can follow up on things you think sound interesting, rather than risk getting lost in the pile on someone's desk.
23:31 nothingmuch yes
23:31 nothingmuch anyway
23:31 nothingmuch i need two things which are hard to get:
23:31 nothingmuch interesting work
23:31 nothingmuch part time
23:32 nothingmuch especially their combination
23:32 nothingmuch hence my fussing over this resume thing ;-)_
23:32 nothingmuch but now i need to sleep
23:32 putter good night. :)
23:37 FurnaceBoy_ joined perl6
23:39 Cryptic_K joined perl6
23:39 uszr_ is now known as kucukoscar
23:45 lisppaste3 joined perl6
23:51 clkao joined perl6
23:56 justatheory joined perl6

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

Perl 6 | Reference Documentation | Rakudo