Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-03

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:07 sean left perl6
00:09 chovy is there a command to display a file's encoding type? ie - UTF-8
00:09 svnbot6 r9824 | fglock++ | PCR - grammar.pl parses some statements
00:22 FurnaceBoy chovy, iconv
00:34 chovy FurnaceBoy: iconv doesn't tell me what the current encoding type of a file is.
00:39 hexmode joined perl6
00:56 stevan joined perl6
01:00 FurnaceBoy not even with -f ?
01:01 FurnaceBoy hmm.
01:13 justatheory joined perl6
01:23 justatheory joined perl6
01:24 Khisanth joined perl6
01:32 chovy FurnaceBoy: -f is for a file with a list of files to check (batch mode)
01:32 chovy FurnaceBoy: sorry, i meant file -f. I tried iconv -f and got "iconv: conversion from `resume.html' is not supported"
01:33 justatheory joined perl6
01:35 mako132_ joined perl6
01:40 justatheory joined perl6
01:51 vel joined perl6
01:52 fglock joined perl6
02:12 fglock which parts of p6 can't be parsed with a bottom-up parser?
02:21 vel joined perl6
02:23 xinming joined perl6
02:26 vel joined perl6
02:43 DesreveR joined perl6
02:54 pfenwick joined perl6
02:57 pfenwick For those who are interested in such things, Pugs has just become the new "collaboration of the moment" on PerlNet: http://perl.net.au/wiki/Pugs
02:59 obra pfenwick: you guys actually got ORA to let you use the camel?
03:01 pfenwick obra: Absolutely.
03:02 pfenwick obra: We've never had problems with ORA and camel usage.  We've got a few training notes that use camel images (specifically the "camel code").  Both ORA and Stephen Jenkins were msot obliging.
04:31 KingDiamond joined perl6
04:32 FurnaceBoy_ joined perl6
04:33 FurnaceBoy_ left perl6
04:38 ingy hola
04:41 arcady hello
04:41 arcady news from ingy-land?
04:44 ingy arcady: yes
04:45 ingy news at 11
04:46 arcady aww... but i don't want to wait a whole hour...
04:49 ingy 11 *my* time :p
04:57 coumbes joined perl6
05:32 xinming Is my question stupid?
05:42 xinming oops, sorry, wrong channel
05:47 scw joined perl6
05:52 GeJ joined perl6
06:11 KingDiamond joined perl6
06:53 marmic joined perl6
06:59 svnbot6 r9825 | clkao++ | mg proxy code, written by Nicholas Clark.
07:05 tirwhan joined perl6
07:10 iblechbot joined perl6
08:06 bsb joined perl6
08:13 nothing_pasta joined perl6
08:18 gaal nothing_pasta: too bad about the laptop :(
08:18 nothing_pasta yeah
08:18 nothing_pasta long story short: looks like it's getting worse
08:36 premshree_ joined perl6
08:36 gaal what, the laptop started twitching at night then began killing people?
08:49 elmex_ joined perl6
08:51 nothing_pasta gaal: err, no... it appears that I threw out the wrong paper
08:51 nothing_pasta the receipt instead of the price quote
08:51 nothing_pasta so it might cost me ~$1000
08:51 nothing_pasta and it'll take at least a week
08:57 gaal uh the store should have a copy of that
08:59 nothing_pasta gaal: yeah i mailed them
08:59 nothing_pasta but they only wake up in a few hours
08:59 nothing_pasta http://groups.google.com/group/it.f​an.marco-ditri/msg/623f793d1cb0dd51
09:15 svnbot6 r9826 | audreyt++ | * S15-draft-tobe: notes from joint design session with
09:15 svnbot6 r9826 | audreyt++ |   Dan Kogai san.  (Also includes prior discussions and
09:15 svnbot6 r9826 | audreyt++ |   inputs from Jarkko Hietaniemi and Dan Sugalski.)
09:42 ko1_away is now known as ko1_
09:55 pmurias joined perl6
09:57 pmurias joined perl6
10:01 pmurias joined perl6
10:08 pmurias hi all
10:09 elmex joined perl6
10:09 Juerd Hi
10:09 Juerd pmurias: Are you having trouble with feather, or were the disconnects intentional?
10:12 pmurias Juerd: troubles with screen, read the manual page, and now reading the svk doc
10:16 Juerd ok
10:22 pmurias svk checkout works like magic, got to go to the lessons
10:23 Juerd Eeeerrh
10:23 Juerd The point of screen is not having to leave IRC :)
10:25 webmind maybe he just needs to get used to it :)
10:31 ko1_ is now known as ko1_away
10:55 azuroth joined perl6
11:10 iblechbot joined perl6
11:14 tomyan joined perl6
11:18 Khisanth joined perl6
11:22 svnbot6 r9827 | audreyt++ | * A Module::Compile extension may define pmc_use_means_no to true to
11:22 svnbot6 r9827 | audreyt++ |   reverse the meaning of "use" and "no".
11:31 pdcawley_ joined perl6
11:34 svnbot6 r9828 | audreyt++ | * "no Filter::Simple::Cached sub {...}" now means exactly the same as
11:34 svnbot6 r9828 | audreyt++ |   "use Filter::Simple::Cached sub {...}" -- except pmc_use_means_no
11:34 svnbot6 r9828 | audreyt++ |   will be set to true in this case, reversing the meaning of "use"/"no"
11:34 svnbot6 r9828 | audreyt++ |   in that filter.
11:37 svnbot6 r9829 | audreyt++ | * Filter::Simple::Cached is now named Filter::Simple::Compile.
11:43 pdcawley1 joined perl6
11:43 svnbot6 r9830 | audreyt++ | * add tests for Filter::Simple::Compile
11:45 bsb audreyt: shouldn't it be pmc_no_means_no defaulted to 1?
11:45 svnbot6 r9831 | audreyt++ | * add some semicolons to t/filter3.t
11:47 oeon joined perl6
11:48 audreyt you think that is more descriptive?
11:48 audreyt I thought it might be nice to mention both "use" and "no" in the method name
11:49 bsb Less descriptive, more amusing
11:50 bsb mentioning both is wise, of course
11:50 audreyt yeah :)
11:51 audreyt S15 and S08 still needs work
11:51 audreyt then S14 just follows
11:52 audreyt (Unicode, References, Tied Variables, respectively)
11:52 audreyt S08 can begin to say "there are no references anymore" :D
11:52 audreyt (and go one to show how the same semantics is achieved.)
11:55 bsb I went away for the weekend and references disappeared...
11:55 bsb Or is this a long running April Fool's gag?
11:55 audreyt it's not
11:55 audreyt note the synopses never mentioned $$a
11:55 pdcawley_ joined perl6
11:56 audreyt or any dereferncing things
11:56 audreyt so pugs has been all wrong
11:56 audreyt so yesterday TimToady gave $$a and \$a and *$a their semantics
11:56 audreyt which does not at allinvolve a Ref class or anything like that.
11:56 audreyt (it's all in the new S02/06)
11:57 bsb and you ghost wrote.  You need a ghost writer for your journal
11:57 audreyt I absolutely need.
11:58 audreyt are you volunteering?
11:58 audreyt I can give you a typepad sommit bit
11:58 * bsb whistles
11:59 bsb I only understand what's happening *after* reading the journal
12:00 audreyt and it is a real problem that development happens faster than I can record it
12:00 audreyt like, far faster
12:00 audreyt dan kogai san just mentioned Dragon's Egg and I very much feel that way :)
12:01 audreyt so instead of plunging into implementation, I promise I'll do a proper wrapup report first
12:02 * gaal didn't digest that
12:02 gaal there's not ref-to-ref possible?
12:02 gaal (hi!)
12:03 audreyt ok, maybe I can use irc to explain the idea better
12:03 audreyt \ is prefix constructor of Arguments (previously known as Args) objects.
12:03 audreyt it is very much a special form -- \(...) and :(...) are the two special forms for Arguments and Signature objects.
12:04 audreyt my $args = \($pos, $pos, :named, :another(1), :another(2))
12:04 audreyt you use it like
12:04 audreyt func(*$args)
12:04 gaal the other half of a closure
12:04 audreyt so far so good?
12:04 bsb re: ghost blogging, perhaps irc highlights would help.  That way I/we don't even need to understand
12:05 audreyt bsb: great idea
12:05 audreyt maybe I'll do all my blogging here and just link to irc slices
12:05 gaal that-whic-you-call-a-closure-with
12:05 audreyt that is so very Web 3.0
12:05 gaal link to irc *slides* - Web 4.0
12:05 audreyt gaal: so. \1 means the same as \(1)
12:06 audreyt we already know that \(1) always mean \(1:)
12:06 audreyt i.e. arguments with 1 at invocant positon
12:06 pdcawley1 joined perl6
12:06 gaal k
12:06 audreyt prefix:<$> is a caster that casts things into Scalar
12:06 audreyt much like prefix:<~> is to Str
12:06 audreyt Scalar here is Haskell's TVar
12:07 audreyt (or IORef)
12:07 audreyt i.e. a mutabl cell.
12:07 * gaal sniffs the caster oil
12:07 gaal k
12:07 audreyt Arguments object simply returns the invocant slot in it when treated as a Scalar
12:07 audreyt exactly the same way that Match returns its result object when treated as a Scalar.
12:08 gaal okay
12:08 audreyt so $(\(1)) goes back to 1.
12:08 gaal what about .id?
12:08 gaal (for constants vs. mutables)
12:08 audreyt Arguments takes lvalues
12:09 audreyt so \$x captures the container
12:09 audreyt not the current value of $x
12:09 audreyt i.e. there is no implicit FETCH call
12:09 gaal hmm, but then how can \(1) work?
12:09 audreyt so $(\($x)) = 3 # works
12:09 audreyt \(1) works just first
12:09 gaal ro lvalue?
12:09 audreyt $(\(1)) works only on rvalue position
12:10 gaal right.
12:10 audreyt as a ro Scalar
12:10 audreyt if you put it on lvalue, it dies
12:11 audreyt now, @$args returns all the positions in args
12:11 gaal *$args do you mean?
12:11 audreyt positional arguments, that is
12:11 audreyt I mean @$args
12:11 audreyt my $args = \(1,2,3);
12:11 audreyt say @$args;
12:11 gaal ah and %$args the named
12:11 gaal ok
12:11 audreyt yup
12:11 audreyt and &$args the slurpy block
12:12 audreyt aka adverbial block
12:12 audreyt which like invocant is either Nothing or Just one
12:12 audreyt $() defaults to $($/)
12:12 audreyt @() default to @($/)
12:12 audreyt %() default to %($/)
12:12 gaal okay so \\$x is the twice-argumented $x
12:13 audreyt to get result object, positional, and named captures
12:13 audreyt prefix:<$> ($args = $CALLER::/) { ... }
12:13 gaal is there auto-appendage of duplicate keys? or last-wins? or error?
12:13 audreyt duplicate keys are auto appended
12:14 audreyt see the spec for details
12:14 audreyt basically
12:14 gaal so something can be promoted from a scalar to a list...?
12:14 pdcawley1 joined perl6
12:14 audreyt    sub fun (Int @x) { ... }
12:14 audreyt    fun( x => 1, x => 2 );  # @x := (1, 2)
12:14 audreyt however
12:14 audreyt    sub fun (Int $x) { ... }
12:14 audreyt    f( x => 1, x => 2 );    # $x := 2
12:15 gaal ah, the signature sigil captures it. good
12:15 audreyt the wording is
12:15 audreyt "When there are more than one argument, the C<@> sigil in the parameter list causes the arguments to be concatenated"
12:15 tziku joined perl6
12:15 audreyt which is exactly like getopt.
12:15 gaal what about flattening?
12:16 gaal sub fun (Int @x) { ... }
12:16 gaal fun( x => (1, 2), x => 3 )
12:16 audreyt flattening  is just a runtime call to prefix:<*>
12:16 audreyt which is a caster to Arguments
12:16 audreyt when occuring as part of another Arguments spec, it is interpolated into it
12:16 audreyt by simple `mappend`
12:17 audreyt i.e. order of named vs positional doens't matter
12:17 * gaal grins
12:17 Limbic_Region joined perl6
12:17 kolibrie joined perl6
12:17 audreyt with x=>(1,2) it is one argument of the Tuple type
12:17 audreyt so both $x and @x will get (1,2)
12:18 gaal not ((1,2), 3) in any case?
12:18 audreyt oh wait
12:18 audreyt I see x=>3
12:18 audreyt sorry
12:18 audreyt $x gets 3, @x gets (1,2,3)
12:18 gaal or (1,2,3) in some?
12:18 gaal okay:
12:18 audreyt bias is to the right
12:18 gaal x=>[1,2], x=>3
12:18 audreyt same as $x:= binding in rules and hash constructor
12:18 gaal ([1,2], 3) ?
12:18 audreyt in [1,2] you are passing in an Array object
12:18 audreyt so yes.
12:19 audreyt the way out from this reference maze is by splitting container types out from value types
12:19 audreyt and do away with automatic promotion to rw containers
12:19 audreyt this means
12:19 audreyt $x = (1,2,3);
12:20 audreyt $x.push(4); # would fail!
12:20 audreyt and
12:20 audreyt $x = [1,2,3];
12:20 audreyt $x.push(4); # is just fine
12:20 audreyt I think it is not hard to explain
12:20 gaal this example sits well with my intuition fwiw
12:21 audreyt good. co-author S08 with me some day? :)
12:21 audreyt (probably next week)
12:21 gaal I'll happily help where I can :)
12:21 audreyt woot :)
12:21 audreyt so, I hope so far it makes sense
12:22 audreyt also, binding is now simply "let"
12:22 audreyt so
12:22 audreyt in both above cases
12:22 gaal what's $x's "type" in both examples above?
12:22 audreyt $x = 4; # works
12:22 gaal tuple and Array?
12:22 audreyt but if you had
12:22 audreyt $x := (1,2,3);
12:22 audreyt $x = 4;
12:22 audreyt this fails
12:22 audreyt also
12:22 audreyt $x := [1,2,3];
12:22 audreyt $x = 4
12:22 audreyt also fails
12:23 audreyt (both cases fails to handle Scalar assignment)
12:23 gaal so the container is permanent, at least until a new rebinding
12:23 audreyt gaal: the rvalue of Tuple and Array respectively, yes.
12:23 audreyt gaal: yes.
12:23 audreyt s/of/is of type/
12:23 audreyt with :=(1,2,3), lvalue is just rvalue
12:23 audreyt with =(1,2,3), lvalue is Scalar, rvalue is Tuple
12:24 audreyt this again is very straightforward
12:24 xern joined perl6
12:24 audreyt the effect of "my @x" is twofold, compared to"my $x":
12:24 audreyt 1. the container is prebound to Array
12:24 gaal except to implement $x := @y := (1,2) looks tricky?
12:25 audreyt 2. used as lvalue, it triggers Array's store, not Scalar's assignment
12:25 audreyt s/lvalue/lhs to assignment/
12:25 audreyt gaal: nope, there is no intrinsic type difference
12:25 audreyt $x and @y are both bound to Tuple
12:25 audreyt the sigil is just context hinters for compiler
12:25 audreyt internally the use the same Pad storage
12:26 audreyt it's just if you say
12:26 audreyt @z = @y
12:26 gaal hmm hold on, @y := (1,2) bound to Tuple?
12:26 audreyt then it flattens the tuple
12:26 audreyt @z = $x
12:26 audreyt does not
12:26 audreyt gaal: yes.
12:26 gaal so @y := (1,2); @y[0] === (1,2) ?
12:26 audreyt no, because Tuple handles poscircumfix []
12:26 audreyt [0] is 1 for sure
12:27 audreyt $x[0] and @y[0] compiles to the same postcircumfix[] call
12:27 gaal so how does tuplehood manifest in @y?
12:27 audreyt in both cases it's the Tuple that handles it
12:27 audreyt it manifests in that you can't push into it.
12:27 audreyt nor assign into it
12:27 audreyt @y = (4,5,6); # fails
12:28 gaal ah, I see
12:29 audreyt I hope it makes some sense :)
12:29 audreyt so terms like "autoenreferencing" and "autodereferencing" goes away
12:29 audreyt as there are no references anymore.
12:29 gaal I think it does. Does a Tuple know its particular arity? (is that just an implementation issue?)
12:30 audreyt you can ask it of .end
12:30 audreyt and of prefix:<+>
12:30 audreyt if that is what you mean
12:31 gaal okay
12:32 audreyt you can force lvalue context with variable()
12:32 audreyt though maybe lvalue() is better
12:32 audreyt in any case, assignment into tuples distributes over its elements
12:33 audreyt (sme as p5)
12:33 audreyt though tuple doesn't handle .push ever
12:33 audreyt but this does mean
12:33 audreyt my ($x, $y);
12:33 audreyt my @z := (variable($x), variable($y));
12:33 audreyt @z = (1, 2); # $x = 1; $y = 2;
12:33 audreyt which is just a roundabout way to write
12:33 gaal whoa :)
12:33 audreyt ($x, $y) = (1, 2);
12:33 gaal cool
12:34 audreyt this is again without special cases
12:34 audreyt <- spent all the week removing all special cases encountered from synopses
12:35 gaal the RHS of a tuple binding like that must be all constant XOR all variable, right?
12:35 audreyt (in above, it should read "list-assignment into tuples")
12:35 audreyt not so.
12:35 audreyt that would be a special case ;)
12:35 gaal ie @z := (variable($x), 42); # now what?
12:35 audreyt well, @z[0] = 1 # works
12:35 audreyt @z[1] = 2 # fails
12:36 audreyt @z = (1); # also fails, as distribution is complete
12:36 audreyt that is, it's asif you have said (1,undef)
12:36 audreyt although we can make it work
12:36 gaal this sounds like it won't ever be useful to the programmer -- it's just so the compiler is allowed to do constant folding. (right?)
12:39 audreyt ("we can make it work" here means that we can redefine what = means before that line is compiled ;))
12:39 gaal :-)
12:39 bsb "this sounds like it won't ever be useful to the programmer", famous last words gaal ...
12:40 audreyt gaal: it is very useful...
12:40 audreyt sometimes your function always returns a scalar and a number
12:41 audreyt so you can say
12:41 audreyt sub f { ... ; return(variable($x), 42) }
12:41 audreyt and then
12:41 audreyt my ($var, $con) := *f();
12:41 audreyt and it will transparently work.
12:42 gaal .... as opposed to sub f { ... ; return($x, 42) }      my ($var, $con) = f();
12:42 gaal which would also work? :)
12:43 audreyt no... it would allow
12:43 audreyt $con = 50;
12:43 gaal ah
12:43 LeTo audreyt: from S09:           my $ref = \$array[0][0];
12:43 audreyt i.e. variable($con) would be Scalar not Int
12:43 LeTo is this still valid?
12:44 audreyt sure
12:44 gaal however, this probably can't be inferred generally at compile time, can it?
12:44 audreyt gaal: if "f" has a static type
12:44 gaal well maybe f is $f of Code
12:44 audreyt well then sure
12:45 audreyt it must be effected at runtime
12:45 audreyt which is fine
12:45 audreyt LeTo: still valid
12:46 gaal audreyt: in LeTo's example, does this mean autovivify $array[0]'s container with some assumed type if it didn't already exist?
12:47 audreyt LeTo: fixed, thanks
12:47 audreyt gaal: aye, the same rule as used to vivify
12:47 audreyt my @x = (1,2,3);
12:47 audreyt i.e. implicitly "is Array"
12:48 * gaal nods
12:49 gaal what was fundamentally broken with references that they needed to be done away with?
12:50 gaal I can see
12:50 gaal 1. insufficient typefulness
12:50 audreyt the notion that Array of Array is impossible
12:50 audreyt is absurd.
12:50 audreyt it forces dynamic typing, as you observed
12:50 audreyt also it introduces mutable storage automatically at about any point
12:51 audreyt my $x = (1,2,3); # allocates mutable [1,2,3]
12:51 audreyt which renders := less effective and discourages sharing
12:51 * gaal nods
12:52 audreyt also, it introduces typoglobs.
12:52 audreyt (typo intended)
12:53 audreyt i.e. the "reference type" is a self-cancelling thing that only holds one thing
12:53 audreyt but can serve as any container
12:53 gaal yeah
12:53 audreyt I fixed this by specifying the Arguments class is a value class
12:53 audreyt i.e. itself is never mutable
12:53 audreyt and always holds all the inv/pos/nam/blo slots
12:53 gaal my latest "did you know" in p5: filehandles are GLOBs, but they don't have an ARRAY slot
12:54 audreyt so it _is_ a typeglob, but not mutable and not dangerous
12:54 audreyt plus it plays well with function calls and bindings
12:54 audreyt plus a Match object is basically the same thing
12:54 audreyt so we have Rules that turn structures into Match/Arguments
12:54 audreyt and Signatures that turns them back to Pad structures
12:54 audreyt and I like the duality.
12:55 audreyt (this is so that we can do bidirectional tree manipulating -- without using attribute grammars)
12:56 gaal how does the last point about AGs follow?
12:57 audreyt are you familiar with structural unpacking in Signatures?
12:58 gaal ($head, @tail) ?
12:58 audreyt no...
12:58 audreyt class BinTree { has $.left; has $.right }
12:58 audreyt sub traverse ( BinTree $top ( $left, $right ) ) {
12:58 audreyt    traverse($left);
12:58 gaal ah yes
12:58 gaal now in S06
12:58 audreyt    traverse($right)
12:58 audreyt }
12:58 audreyt aye
12:59 audreyt and you can embed them in rules
12:59 audreyt see <,> in S06
12:59 audreyt so it returns a Match tree
12:59 audreyt and consumes Arguments as input
12:59 audreyt but Match can be used as Arguments
13:00 audreyt so you can then feed that back to another rule for parsing
13:00 audreyt or to a signature for binding
13:00 audreyt and use multisubs to select variants
13:00 audreyt the idea is just that Match/Arguments are the same thing
13:01 audreyt underneath
13:01 audreyt so you can use *$match as arguments
13:01 audreyt to a function
13:01 audreyt which will set its result object to invocant position (if any)
13:01 audreyt positional captures as positional arguments
13:01 audreyt named as named
13:01 audreyt so you can also reparse that match with structural rules
13:02 audreyt I have evil plans to use rules the other way around as structural templates
13:02 gaal I saw that you did but could not understand them
13:02 audreyt but even this one-directional cycle is sufficient.
13:02 audreyt oh, it's rather easy idea
13:02 audreyt the
13:03 audreyt /Hello, (\w+)!/
13:03 audreyt rule can be viewed as a Str --> Match
13:03 gaal sausage bidirectionality principle, yeah
13:03 audreyt we want to use it as Arguments --> Str
13:03 audreyt so basically write a transformer to turn Rules inside-out into Signatures
13:03 audreyt inthis case the signature is
13:04 audreyt sub (Str $0 where /\w+/) { "Hello, $0!" }
13:04 audreyt this is like reusing Parsec combinators as PrettyPrint combinators.
13:04 bsb ocaml++
13:05 bsb or maybe it was somewhere else...?
13:05 gaal yes; what I don't get is the "make the computer do this automatically for you" bit. :)
13:06 gaal (I know about the Parsec-Pretty mirrormorphism)
13:06 audreyt concat(const("Hello, "), positional(subrule(quantify(word(), 1...))), const("!")
13:06 audreyt this can be seen to specify a rule
13:06 audreyt or to specify a building function
13:06 audreyt i.e. a template
13:07 audreyt the use it as a template, simply hoist subrulse into valitaion position
13:07 audreyt i.e. constraints
13:07 audreyt and lift positionals into the sigs
13:07 audreyt as positionals, and named as named
13:07 audreyt see rules-are-templates for more transformations
13:08 audreyt similarily
13:08 audreyt :(BinTree $top ( $left, $right ))
13:09 audreyt can be seen as a template that takes named left/right and make a 'top' by calling BinTree's constructor with named :$left :$right
13:09 audreyt the Harmony project has specs for how toreverse other combinators
13:10 audreyt (just for the record, this reversal thing is not going to be part of any synopses)
13:10 audreyt it's more like the collective deranged musings of <clkao audreyt ingy>
13:11 gaal derangement++ # also remember please to add to it Generate
13:11 audreyt right :)
13:11 audreyt it's like Djinn
13:13 audreyt # http://www.augustsson.net/Darcs/Djinn/examples
13:13 audreyt give type, write code
13:13 gaal got url for Harmony?
13:13 audreyt since the type is iessentially an Arguments-->Match spec
13:14 audreyt http://alliance.seas.upenn.e​du/~harmony/cgi-bin/demo.cgi
13:14 audreyt the paper is "Combinators for Bi-Directional Tree Transformations"
13:14 * Limbic_Region saw combinators and derangement and thought what was being discussed was a way to produce derangements (special kind of permutation)
13:14 * Limbic_Region really needs to get some sleep
13:14 audreyt Limbic_Region: go sleep :)
13:15 * Limbic_Region is at $work
13:15 audreyt ^Z then
13:15 ingy audreyt: I liked your reversal stuff, and least in spirit
13:15 ingy roundtripping++
13:15 gaal brb, phone call
13:16 audreyt *curtsies*
13:16 ingy :)
13:17 gaal b
13:19 audreyt (shower, bbiab)
13:20 audreyt LeTo: dankogai and I codesigned multibuffer strings
13:22 audreyt LeTo: an early draft it is at http://svn.openfoundry.org/p​ugs/docs/notes/unicode_draft
13:22 audreyt (grep down for "Bad Ideas")
13:24 audreyt LeTo: we'll work on it more before it becomes S15, but if that works, pugsstr.pmc will probably be useful as a general parrot STRING*
13:25 * Limbic_Region understands how audreyt is able to use her laptop in the shower but he hasn't quite figured out how she is able to actually shower
13:25 Limbic_Region and I really want to figure out this hack in your sleep thing too
13:25 audreyt touch-typing with toothbrush
13:26 gaal TT3
13:26 audreyt and sideway-aligned laptop (L-shaped area touches the ground)
13:26 audreyt and sleep sideways with fingers near keyboard
13:27 audreyt only works when sleeping on a mattress on the ground
13:27 audreyt or a relatively solid bed
13:29 sri_ joined perl6
13:29 audreyt with this arrangement allows hacking during the twilight zone of sleep
13:29 audreyt (and produces the same effect as a twilight sleep -- i.e. wouldn't remember what I hacked last night when I wake up)
13:33 nothing_pasta i need to shoot someone
13:33 nothing_pasta preferably with something you find in a game like Quake
13:33 nothing_pasta or an original mod
13:34 nothing_pasta . o O ( Chainsaw Launcher )
13:34 spinclad quick, hide the railguns!
13:34 nothing_pasta rail gun is too clean
13:35 nothing_pasta i really like those kinds of things when I play quake/unrealt but that's not the kind of mood i'm in =/
13:35 * Limbic_Region didn't get a chance to pray for your laptop until last night nothing_pasta
13:35 Limbic_Region I assume it was too late then?
13:35 nothing_pasta well
13:35 nothing_pasta there's that
13:35 nothing_pasta and there's more
13:35 nothing_pasta now my ISP decided to block my outgoing mail
13:35 nothing_pasta wrt the laptop: i lost the receipt
13:35 nothing_pasta it'll cost $1000 or so to repair
13:35 nothing_pasta it'll take at least a wek
13:35 nothing_pasta week
13:35 nothing_pasta just to get the warranty info sorted
13:36 Limbic_Region nothing_pasta - did you buy it on credit card?
13:36 Limbic_Region if so - get them to issue you a receipt
13:36 nothing_pasta yes I did
13:36 nothing_pasta i mailed the store
13:36 nothing_pasta maybe they'll get back to me soon
13:36 nothing_pasta i'll call them too
13:36 Limbic_Region depending on your bank/credit card company - they may have electronic records bypassing the need to go to the store
13:37 nothing_pasta i'll try that
13:37 nothing_pasta thanks for the tip =)
13:38 Limbic_Region no worries - though I wouldn't hold your breath.  I use some pretty good credit unions here in the states that aren't open to the general public (military affiliation) so I may just be getting better than average service
13:38 nothing_pasta possibly
13:38 nothing_pasta then again, shouting gets you a long way in israel
13:38 nothing_pasta i've managed to asshole myself up the food chain of my ISPs customer service dept
13:38 nothing_pasta now I have to do it for the tech support dept too
13:39 nothing_pasta and maybe the CC one =)
13:39 Limbic_Region oh yeah, there's that too - I am not exactly pleasant when I don't get what I pay for
13:47 lisppaste3 joined perl6
14:03 vel joined perl6
14:08 bsb joined perl6
14:23 theorb joined perl6
14:40 theorb is now known as theorbtwo
14:46 nwc10 joined perl6
14:48 nwc10 I'm trying to build pugs to answer a question. I started with a clean checkout of revision 9831, and it's failing at "Generating precompiled Prelude"
14:49 nwc10 specifically:
14:49 nwc10 Generating precompiled Prelude... Use of uninitialized value in length at util/gen_prelude.pl line 158.
14:49 nwc10 system: [/usr/local/bin/perl5.8.8 util/gen_prelude.pl -v -i src/perl6/Prelude.pm -p ./pugs --output blib6/lib/Prelude.pm.yml]: No such file or directory at util/build_pugs.pl line 278.
14:49 nwc10 Is this known?
14:49 nwc10 And actually, my real question which I was trying to answer for myself without needing to ask here was "Does pugs have code to run multiple TAP-producing tests in parallel?"
14:50 audreyt nwc10: no it's not known
14:50 audreyt run it by hand?
14:50 audreyt /usr/local/bin/perl5.8.8 util/gen_prelude.pl -v -i src/perl6/Prelude.pm -p ./pugs --output blib6/lib/Prelude.pm.yml
14:53 nwc10 Generating precompiled Prelude... Use of uninitialized value in length at util/gen_prelude.pl line 158.
14:53 nwc10 and exits with code 1
14:54 nwc10 aha. because:     exit 1 unless length $lines;
14:54 audreyt do you have a Prelude.pm in the cwd?
14:54 nwc10 no
14:55 nwc10 this is on FreeBSD 5.3 and I was using FreeBSD make
14:55 audreyt I'm on fbsd as well
14:55 audreyt I suspect somehow -w or -x
14:55 audreyt is missing
14:56 audreyt trace the open2 on line 153 of util/gen_prelude.pl ?
14:56 audreyt to answer your question
14:56 audreyt look for
14:56 audreyt smoke_concurrent: 1
14:56 audreyt in config.yml
14:56 sri_ joined perl6
14:56 audreyt and set it to >1
15:00 nwc10 Oh. um. I can't seem to get much joy from ktrace -d
15:01 nwc10 pugs coredumped, backtrace is pthread_testcancel (), pthread_testcancel (), pthread_mutexattr_init (), pthread_mutexattr_init ()
15:01 nwc10 ?? ()
15:01 nwc10 so that's not that helpful
15:01 audreyt are you on 64bit?
15:02 nwc10 no, x86
15:02 audreyt threaded perl?
15:02 nwc10 This is perl, v5.8.8 built for i386-freebsd-64int
15:03 nwc10 it's the stock FreeBSD perl, so it has the defined or patch too
15:03 audreyt I can't duplicate it here... try nuke dist/build/ and hack Makefile.PL line 402 to undef the $threaded config
15:05 nwc10 OK. There will now be a 17 minute delay
15:06 nwc10 (as time said that it took me 17 minutes to get that far last time)
15:06 audreyt "make unoptimised" may make it faster
15:06 audreyt but ok
15:06 nwc10 If it fails I'll try that next
15:06 nwc10 and then if it passes, er, "interesting"
15:07 gaal nwc10: yes, pugs make smoke runs TAP tests in parallel if you ask it to
15:07 gaal util/yaml_harness.pl
15:07 gaal and you need to edit config.yml to tell it how many processes you want to run
15:08 gaal # e.g., smoke_concurrent: 3
15:08 gaal regen Makefile after editing config.yml
15:08 gaal (though in this case it may not be needed, I don't remmeber)
15:08 nwc10 thanks for the instructions. clearly I need to get it to build first :-)
15:09 nwc10 I'm thinking about hacking concurrent tests into the core perl harness.
15:09 gaal nwc10: cool! it's not very hard, actually
15:09 nwc10 because on a multi core machine, doing lots of things is really fast
15:09 gaal yup
15:09 nwc10 and doing one thing is S L O W
15:09 gaal nwc10++
15:09 nwc10 it's possibly better to wait with the karma until it's done :-)
15:11 gaal I'm not sure I remember why I decided to use yaml for 'make smoke', but I think it was because I had an SMP machine and I didn't want to invent a serialization format for TAP results or even keep around unparsed TAP myself :)
15:11 nwc10 aha. you're splitting all the tests into blocks, then assigning 1 process to run each block
15:11 nwc10 I was thinking about something a bit more crack fuelled
15:11 gaal yeah, it's not TehSmrt
15:11 gaal it's TehWorksWellWithZillionsOfTests(which we have)
15:12 gaal even if one run finishes early, it won't be much early
15:12 gaal just keep in mind that anything that manages a queue will be a bitch to port :(
15:12 gaal <-- proponent of KISS
15:14 nwc10 I wasn't proposing to replace the existing harness
15:14 nwc10 just give me one that runs in parallel on Solaris and FreeBSD (at least) where *I* have access to multiple CPU machines
15:15 justatheory joined perl6
15:15 gaal well, if you don't mind about the imprecise division of labor in what pugs does, just take our yaml_harness. I don't think it has much pugs hardcoded into it
15:16 gaal maybe a little with configuration, but that's easy to gut out :)
15:23 webmind answer: mostly not
15:25 nothing_pasta good news
15:25 nothing_pasta csc++
15:26 nothing_pasta they mailed me back with a copy of my invoice
15:26 nwc10 audreyt: my pugs build has got to the point of running tests
15:26 kane_ joined perl6
15:30 hlen joined perl6
15:33 FurnaceBoy joined perl6
15:33 bradoaks joined perl6
15:36 nothing_pasta wtf
15:36 nothing_pasta i just absent mindendly sent an email
15:36 nothing_pasta and it didn't bounce
15:38 clkao_ joined perl6
15:38 nothing_pasta false alarm =(
16:10 bradoaks left perl6
16:15 kane__ joined perl6
16:20 manbou joined perl6
16:26 autark joined perl6
16:34 Odin- joined perl6
16:35 jiing joined perl6
16:35 jiing left perl6
16:35 fglock joined perl6
16:36 Odin- joined perl6
16:37 fglock audreyt: ping
16:44 autark is now known as bjarnis
16:48 amnesiac joined perl6
16:55 ghenry joined perl6
16:57 _bernhard joined perl6
17:19 tri joined perl6
17:21 ruoso joined perl6
17:34 gaal audreyt: ping # YAML::Syck bug weirding me out
17:34 elmex joined perl6
17:35 nwc10 gosh. that was slow. time make test says
17:35 nwc10 real    149m48.053s
17:35 nwc10 user    108m9.106s
17:35 nwc10 sys     1m56.619s
17:35 * Limbic_Region covers the bug in chocolate - chocolate covered bugs some how seem less weird
17:36 gaal nwc10: make optimized?
17:37 gaal also, make sure you have blib6/lib/Prelude.pm.yml.gz
17:37 nwc10 the default make, so yes, I think optimised
17:37 nwc10 yes, that's there
17:38 gaal which hardware did you say you were on?
17:39 gaal smoke.pugscode.org for a few samples of how long this takes... it's been a while since I ran a smoke but I think it takes me half that or less
17:39 nwc10 I didn't say what the hardware was other than x86 (FreeBSD)
17:39 nwc10 it's single cpu: Intel(R) Pentium(R) 4 CPU 2.80GHz (2792.06-MHz 686-class CPU)
17:42 gaal I have a similar box
17:42 gaal were you thrashing?
17:42 nwc10 I don't know. the box is a friend's colo machine
17:42 gaal oh wait, this included the build?
17:42 nwc10 yes, including the build
17:42 gaal ahhh
17:43 nwc10 that was from the start
17:43 gaal okay, reasonable.
17:45 gaal just make sure you don't run out of physical ram during compilation, since that will obviously kill speed. you can cap how much GHC is allowed to allocate for its own heap (again, config.yml)
17:46 gaal but your figure doesn't indicate new b0rkedness.
17:52 Qiang joined perl6
17:54 hexmode joined perl6
18:02 bjarnis joined perl6
18:03 zgh joined perl6
18:13 TimToady audreyt: I see you snuck the defaults-to-the-left into S06, but I want to go on record as saying I agree with that.
18:15 TimToady I particularly like that a named arg to a func that ignores multi-dim can set the default for all subsequent pipes, while a multi-dim aware function can cause each dimension to have its own defaults by rebinding the particular Arguments to a helper functions parameters.
18:15 chris2 joined perl6
18:19 TimToady *function's
18:22 TimToady Also allow me to say again how very happy I am with this last week's progress in unifying the underlying concepts in a way that is more powerful, yet without inducing higher-math headaches in newbies.
18:22 TimToady The new stuff looks very cargo-cultable, and I mean that in a nice way.
18:23 LeTo TimToady: a side nit/note: could obj.repr be dehuffmanized to e.g. obj.obj_repr to reduce possible confusion of pythoniers?
18:24 TimToady I didn't know we had an obj.repr.  I thought we'd changed that to obj.perl, obj.python, obj.js, etc.
18:27 LeTo the confusion is, that it's not related to these at all ;)
18:27 TimToady Oh, okay, you mean the :repr<P6opaque> thing.
18:27 LeTo           my $candidate = $class.CREATE(:repr<P6opaque>);
18:27 TimToady Could be :storage or some such.
18:28 LeTo I saw a lot of .repr in pugs code
18:28 LeTo storage is fine
18:29 TimToady I'd say that :repr is probably just as correct, but you're right that it will induce confusion in Pythoners, who are used to thinking of Python as the only true representation.  :)
18:29 LeTo exactly
18:29 TimToady Need to go take a shower, bbiab &
18:30 Juerd When Perl 6 is released, we should rewrite Mediawiki in it.
18:30 Juerd And get the Wikipedia project to convert
18:30 TimToady This morning I had a nightmare of 6PAN being implemented as a wiki...
18:30 autark joined perl6
18:30 TimToady really &
18:31 Juerd They can then get rid of half their servers, and Perl 6 gets instant PR.
18:31 Juerd TimToady: WHooaa. That'd be scary :)
18:31 theorbtwo It'd be scary indeed.
18:31 Juerd Though fixing bugs would be easier... Hmm..
18:31 theorbtwo I think we can manage the mediawiki port, though.
18:32 Juerd theorbtwo: 68 kloc
18:32 Juerd Doable, I think. But LOTS of work. Would certainly require funding :(
18:32 theorbtwo 68 kloc!?
18:32 theorbtwo I had no idea it was that big.
18:32 Juerd Of course
18:32 Juerd It's PHP.
18:33 Juerd Every big PHP project is multi-dozen kloc.
18:33 Juerd There's 4 kloc in the parser alone. A grammar easily fixes that problem.
18:34 FurnaceBoy eep
18:34 * FurnaceBoy uses TWiki
18:34 Juerd Twiki sucks.
18:34 theorbtwo Yeah, but you still need to /read/ all 68kloc, or at least most of them.
18:34 Juerd For users.
18:34 * theorbtwo shrugs.
18:34 FurnaceBoy odd -- most of our users love it.
18:34 Juerd theorbtwo: Sure, but there's lots and lots of vertical whitespace, so really I think it's doable.
18:34 FurnaceBoy the rest don't say anything :-)
18:35 theorbtwo A debate of the rel merits of different wikis is rather irrelevant to this discussion.
18:35 Juerd theorbtwo: Consider that it has no postfix if and such
18:35 FurnaceBoy of course. just saying.
18:35 Juerd theorbtwo: So every such simple check is 3 lines.
18:35 Juerd theorbtwo: It has no loop control, so you need lots of huge blocks
18:35 Juerd And it goes on like that
18:35 ingy TimToady: I see you were not consumed by the Pacific ocean
18:37 LeTo Juerd: php is improving - don't worry ;) http://www.sitepoint.com/blogs/2006/0​3/31/php6-gets-a-comefrom-statement/
18:38 Juerd And reading 68 kloc... In words (wc -w), it's less than 7 times A12 :)
18:38 Juerd LeTo: ... :))
18:38 theorbtwo Ah, well, that doesn't sound too bad, though I bed A12 has grown since last I read it.
18:39 Juerd A's don't change much
18:39 theorbtwo Oh, g'point.
18:40 Juerd And 34 kloc is in the special pages
18:40 Juerd If things are compatible enough, you can always port those later :)
18:42 gantrixx joined perl6
18:44 nwc10 left perl6
18:50 xinming joined perl6
18:51 nothing_pasta we have a mediawiki hacker onboard, btw
18:51 nothing_pasta avar: ping
18:52 theorbtwo .oO(_pasta?)
18:53 * theorbtwo wonders if there's any sort of PHP/perl6 integration going on.
18:53 theorbtwo PHP-on-Parrot, for example...
18:53 nothing_pasta theorbtwo: my laptop died, this is from my server
18:53 nothing_pasta pasta.woobling.org
18:53 theorbtwo Oh, which is named pasta.
18:53 nothing_pasta only my generous ISP screwed up my reverse pointer to that
18:53 nothing_pasta so you couldn't know ;-)
18:54 mj41_ joined perl6
18:54 TimToady ingy: well, yeah, as far as I know, Davy Jones' Locker isn't equipped with IRC
18:54 nothing_pasta TimToady: wrt 6PAN as a wiki:
18:54 nothing_pasta i think it's actually a semi good idea
18:54 nothing_pasta in that *anyone* should have the possibility to "branch" a module
18:54 TimToady yes, that was the scary part.
18:54 nothing_pasta on the 6PAN
18:54 nothing_pasta easily
18:54 nothing_pasta annotate, change, edit, add
18:55 nothing_pasta and then let the author see it, let the world see it
18:55 nothing_pasta merge back
18:55 TimToady We'll call it...uh...Xanadu...
18:55 nothing_pasta or subversion ;-)
18:55 ingy :)
18:55 nothing_pasta but it needs a good web interface =)
18:55 nothing_pasta with a wiki
18:55 nothing_pasta and a page per module ;-)\
18:55 nothing_pasta ingy: what's up with freepan btw?
18:56 ingy nothing_pasta: still humming :)
18:56 ingy aka, nothing new :(
18:56 nnunley joined perl6
18:56 ingy aka, full of possibilities
18:57 nothing_pasta bwahahahha
18:57 nothing_pasta submit a grant proposal to TPF to work on it?
18:57 ingy no way
18:57 ingy I don't get paid to have fun, sorry
18:57 nothing_pasta heh
18:57 nothing_pasta work on it?
18:58 fglock I'm doing some tests, I need an example of a p6 statement that requires a top-down parser
18:59 ingy For me, being on the hook to produce something of quality, by the money of your friends and admirers is no fun. At that point I decided that I would never accept money directly tied to the goal of me completing an open source project. -- http://use.perl.org/~ingy/journal
18:59 ingy my one journal entry
19:01 nothing_pasta ah
19:01 nothing_pasta well, that's a reasonable rationale =)
19:01 nothing_pasta as in, "i dig that"
19:02 Juerd fglock: What's top-down again? Would "%foo{"bar"}" suffice?
19:02 nothing_pasta i think i can work for money on fun stuff though
19:02 nothing_pasta as long as I can commit full time
19:02 nothing_pasta which I can't right now
19:03 ingy nothing_pasta: let's buy a tour bus
19:03 nothing_pasta tour bus?
19:04 ingy yeah
19:04 nothing_pasta http://search.cpan.org/~ko​librie/Class-Inflate-0.01/
19:04 nothing_pasta oops, wrong channel
19:04 gaal a VW microbus and then we can sing Alice's Restaurant
19:04 FurnaceBoy_ joined perl6
19:04 ingy we can drive all over Europe and America doing hackathons, selling snakeoil etc
19:05 ingy wait that's Python
19:05 nothing_pasta no, that's dead python ;-)
19:05 nothing_pasta hmm
19:05 nothing_pasta i think not
19:05 fglock Juerd: no, that's easy to parse - I'm not sure what I need, but I want to draw a line between where to use bottom-up and top-down
19:05 nothing_pasta gas == $$
19:05 nothing_pasta i need $$
19:06 nothing_pasta because i'm saving for my studies
19:06 nothing_pasta my coding career is about 70% finished
19:06 ingy nothing_pasta: you are forgetting one thing
19:06 nothing_pasta i think i have no more than 2-3 years left in me
19:06 kolibrie nothing_pasta: you pushing my module?
19:06 ingy groupies!
19:06 nothing_pasta kolibrie: yes, on #catalyst
19:06 kolibrie cool
19:06 nothing_pasta someone asked for a system that would be forgiving to bad DBs
19:07 ingy chix luv perl
19:07 KingDiamond joined perl6
19:07 nothing_pasta also, living in a bus is not my idea of a fun time ;-)
19:07 nothing_pasta i will gladly go with you on 1-2 month tours
19:07 ingy <== pumpkinzzzzzzzzzzz
19:07 nothing_pasta but not much more =)
19:08 ingy nothing_pasta: cool
19:08 ingy &
19:08 gaal the trans-siberian takes a few days
19:08 gaal it's a fun ride
19:09 nothing_pasta ciao ingy
19:09 nothing_pasta isn't it ~8 days on the train?
19:10 nothing_pasta i've heard some horror stories from workmates
19:10 gaal I loved the part of it that I took (no Siberia involved)
19:10 * nothing_pasta hurt his hand hitting the desk and shouting today =/
19:10 avar nothing_pasta: what?
19:10 nothing_pasta gaal: where were you?
19:11 vel joined perl6
19:11 nothing_pasta avar: Juerd and theorbtwo were talking about porting mediawiki to Perl 6, and I thought you could provide some insight ;-)
19:11 gaal Beijing -> Ulaan Baatar
19:11 nothing_pasta where's Ulaan Baatar?
19:11 gaal (and back)
19:11 gaal capital of Mongolia
19:11 avar Juerd; theorbtwo: been taking your medicine?
19:11 avar ;)
19:11 nothing_pasta ah
19:11 gaal and Beijing is in China. :)
19:11 Juerd avar: Yes. Though I was quite serious.
19:11 * nothing_pasta always secretly wished he would see Mongolia
19:11 nothing_pasta gaal: uh, isn't it in Japan or something?
19:11 Juerd avar: I will not be able to actually do it, so it's easy for me to say.
19:12 avar Juerd: really?;)
19:12 * nothing_pasta isn't *that* big an ignoramous
19:12 avar Juerd: ah, then it's understandable;)
19:12 Juerd avar: But I think it's doable, and would be a huge boost for Perl 6 and the wikipedia projects.
19:13 avar Juerd: I don't really think this is a nice application to port;)
19:13 Juerd avar: I do. And when it's ported, it can be made nice.
19:13 Juerd avar: Technically it's a mess.
19:13 Juerd avar: But that's mostly becauso of ph.p
19:13 Juerd php.
19:13 avar well, not really
19:13 Juerd avar: Given PHP, there is no option of doing these things in a nice way
19:13 wolverian hrm, why does S09 talk about @array and $array[0], and %hash and $hash{foo} under Autovivification?
19:14 Juerd wolverian: It should probably be $array and $hash
19:14 Juerd [note: haven't read the text]
19:15 avar Juerd: anyway, I just ran in and I'm running out again
19:15 avar Juerd: want to discuss this later?
19:15 Juerd avar: Bye
19:15 Juerd avar: Sure
19:15 wolverian Juerd, it says $hash{foo}, too.. isn't that foo a bareword in perl6?
19:16 nothing_pasta wolverian: it should be %hash<foo>
19:16 Juerd wolverian: Barewords are NOT illegal. Barewords are NOT bad.
19:16 gaal no such thing as a bareword in perl6
19:16 nothing_pasta but it might possibly be my patch
19:16 nothing_pasta in which case i was sticking some Perl 5 example code
19:16 siosiosios joined perl6
19:16 Juerd wolverian: Unquoted strings are bad, and now illegal. Any bareword foo is just foo().
19:17 Juerd Well, not illegal, just nonexistent
19:17 nothing_pasta wolverian: that's my fault
19:17 nothing_pasta i was confused
19:17 nothing_pasta %hash<foo><bar>
19:17 wolverian ah, ok.
19:17 nothing_pasta i was writing the "bad" perl 5 example
19:17 nothing_pasta and then stayed in that mode ;-)
19:17 nothing_pasta i have no environment in which ti patch it now
19:18 nothing_pasta backlog for "nothingmuch.*whine" to find out why ;-)
19:18 wolverian yeah, I know :)
19:18 wolverian condolences
19:18 nothing_pasta *sob*\
19:18 nothing_pasta i'll take it in tomorrow and we'll see what comes out of it
19:20 LeTo nothing_pasta: p5 examples could also have 'use 5;' or some such in front to avoid confusion
19:23 theorbtwo Or be styled seperately, though I suppose that's difficult to do in POD.
19:23 LeTo yep
19:23 gaal =for nostalgic value
19:24 b_jonas joined perl6
19:24 wolverian the AES could use perldoc.perl.org's pod2html thing, too, it makes cute code blocks. :)
19:24 wolverian (well, someone would have to write the perl6 part, of course..)
19:24 gaal and we have perl6.vim too
19:24 LeTo gaal: that would be stripped then, I presume, unless you are 'nostalgic value'
19:25 gaal no, I am the strange bogon attractor
19:26 LeTo but value 3->3->4 ;)
19:27 gaal though from making a presentation w/syntax hilighting I must say vim coloring from pod is slow :(
19:27 gaal }->
19:27 LeTo vim needs a better VM e.g. parrot
19:28 wolverian why is the syntax highlighting built into vim anyway? isn't there a common unix tool for it? meh. reuse, people!
19:28 nothing_pasta ciao
19:28 nothing_pasta LeTo: yes, I agree
19:28 nothing_pasta but perhaps not in this specific example, as it's 1 expr
19:29 gaal well, I bet Text::VimColor <-> spork could be integrated more tightly, it's probably parses (that could be avoided) that are slow
19:30 gaal (nak 3->3->4, LeTo)
19:32 nothing_pasta Kwiki::VimMode
19:33 gaal er, yeah. phone
19:39 fglock can PPI be reused to parse p6?
19:39 nothing_pasta fglock: prolly not elegantly
19:39 nothing_pasta the approach in Perl 6 is to generalize the parsing a bit
19:40 nothing_pasta and PPI's biggest challenge was dealing with the quirks and special cases, from what I heard
19:40 nothing_pasta you might as well use any parsing module in that case
19:40 nothing_pasta which could be more easily extended, p'raps
19:46 fglock I'm looking for parsing modules in CPAN - there is not much except for Parse::RecDescent
19:49 weinig is now known as weinig|off
19:54 Steve_p Parse::YAPP?
19:58 fglock Steve_p: looking
20:02 kolibrie fglock: there's also HOP::Parser
20:10 fglock kolibrie: this may be a good idea - it resembles a bit PCR internals - I'll see if it can be used as PCR runtime engine
20:11 kolibrie fglock: cool
20:12 fglock I'm not sure about the license
20:12 kolibrie kind of a weird one
20:21 kanru joined perl6
20:21 KingDiamond joined perl6
20:23 Odin- joined perl6
20:31 ruz joined perl6
20:33 SamB joined perl6
20:35 pmurias joined perl6
20:37 fglock "quantifiers returning a list of match objects" (s05) is really weird - I'm trying to return the captures of the subpatterns and I have to use a bunch of map's to get there
20:41 weinig|off is now known as weinig
20:42 pmurias kolibre: how is the HOP::Parser licence different from the BSD?
20:44 fglock pmurias: HOP::Parser won't help much - it doesn't implement all nodes/data PCR needs
20:48 pmurias fglock: whats wrong with the current engine?
20:50 pmurias as a optimalisation Perl6::Rules could be used in some cases
20:52 fglock it's hard to maintain the whole set of tools - I was looking for something to use as a base module
20:52 fglock I've got an optimized version - but I want to have completeness/correctness first
20:54 fglock I was trying Perl6::Rules - but it segfaults in PxPerl
20:56 merlyn Perl6::Rules is very fragile
20:57 merlyn more "proof of insanity^Wconcept"
20:57 fglock :)
20:57 pmurias merlyn: do you know any parse modules which are actively developed or have well documented internals?
20:58 merlyn none.  ever. :)
20:58 merlyn PRD was actively developed, but not well documented :)
20:58 fglock I was trying to implement subscripts, then I met an infinite recursion - I thought it was an error in PCR, but it is my rule - I think I found the fix
20:58 merlyn HOP::Parse is currently being developed, but not well documented
20:59 merlyn subscripts require left recursion unless you're careful
20:59 merlyn you might check out my PRD "eval" parser
20:59 merlyn damian liked it at one point
20:59 merlyn google site:stonehenge.com save eval
20:59 merlyn safe eval
21:00 fglock the problem with PCR is that I never know if the bug is in my app or in PCR
21:00 merlyn http://www.stonehenge.com/​merlyn/LinuxMag/col29.html
21:00 fglock but lately it has always been my app
21:00 merlyn I had an infinite recursion until I figured out how to break it
21:00 merlyn but I was also dealing with lvalues vs rvalues etc.
21:01 fglock looking
21:01 merlyn gotta go
21:01 fglock thanks!
21:02 pmurias merlyn: thanks too!
21:05 pmurias fglock: got to sleep now (we have a crapy timezone in Poland)
21:05 pmurias good night
21:05 fglock pmurias: good night!
21:06 LeTo audreyt: +++( 5. Treating Str as SvLV makes no sense at all. ... This should totally die, then Str becomes immutable... )
21:07 fglock LeTo: how is the state of embedding parrot in p5? (in order to reuse PGE)
21:07 LeTo parrot + p5 is stalled currently
21:08 LeTo not good might be an answer ;)
21:10 larsen joined perl6
21:14 fglock I have a "working" p6 parser in p5 - but in order to really make it work there are a bunch of things remaining to implement - so I'm also looking for alternatives
21:16 fglock a refactoring of Pugs::Grammar::Category would fix most problems
21:25 fglock tewk: ping
21:30 weinig is now known as weinig|out
21:37 larsen_ joined perl6
21:39 justatheory joined perl6
21:41 fglock left perl6
21:42 lumi joined perl6
21:45 frodo72 joined perl6
22:02 larsen joined perl6
22:15 frodo72 is now known as PolettiX
22:16 PolettiX is now known as frodo72
22:18 frodo72 is now known as froh-doh
22:19 froh-doh is now known as poletti
22:20 fglock joined perl6
22:20 poletti is now known as PolettiX
22:26 fglock audreyt: ping
22:27 PolettiX joined perl6
22:35 audreyt fglock: pong
22:36 audreyt about to pack to leave tokyo for .twnow
22:37 audreyt the quantifier-returning-a-list: it may help to think that it returns a special MatchList object.
22:39 justatheory joined perl6
22:43 fglock audreyt: I'm wondering whether to apply for a tpf grant, maybe for improving P::G::Category into a proper extensible grammar
22:43 fglock even if I would work on it anyway
22:45 fglock do you think it might be worth working on this, or I'd better work on parrot for example
22:46 fglock I'm not sure how serious people are thinking of perl6 on perl5
22:49 audreyt I think you should submit a grant for working out P::G::*
22:50 audreyt and explicitly say that you will make it run the "perl6 grammar" specified in rules
22:50 clkao audreyt: greetings
22:50 audreyt and allow sharing of this grammar with parrot-based and ghc-based implementations
22:50 audreyt clkao: yo
22:51 fglock ok
22:51 audreyt fglock: I think for the short term
22:51 audreyt p5 is the most important vm for P6.
22:52 clkao audreyt: i am annoyed with p5 api. otherwise data::bind is doing fine
22:52 audreyt there may come a day wheree spidermonkey or parrot or yarv or something else becomes more important
22:52 clkao anyone is planning to do the Module::compile bit for the syntax?
22:52 audreyt clkao: woot! I think the point of D::B is that other people won't need to be annoyed again
22:52 audreyt it encapsulates the annoyance
22:53 clkao what i hit now specifically is aliasing array or hash
22:53 audreyt clkao: I can get people looking at it in my osdc.tw tutorials
22:54 clkao which tutorial?
22:54 fglock audreyt: about the other ping: do you have an example of p6 code that can only be parsed top-down? I'm trying to figure out why we need both top-down and bottom-up
22:54 audreyt fglock: bareword => 'literal'
22:55 clkao audreyt: there were rumours about inviting you or miyagawa to a london tech meet or perl weekend ish thing. when will you be in europe again?
22:55 audreyt fglock: also, \(...switch to Arguments syntax...)
22:56 audreyt :(...switch to Signature syntax...)
22:56 audreyt rx{...switch to Rule syntax...}
22:56 audreyt fglock: it might be that we can unify all top-down as "quoters"
22:56 Limbic_Region joined perl6
22:57 audreyt fglock: and use conditional {return...} to reparse
22:57 audreyt fglock: but I havn't seriously thought about that approach.
22:57 fglock {..perl6 syntax...} {...hash...,}
22:58 audreyt fglock: right, the hash autoexplosion
22:58 audreyt involves postprocesses froma topdown rule
22:58 audreyt fglock: basically all the "non-normalized" parts require a topdown
22:58 audreyt and lord knows there are a lot of those in p6.
22:59 audreyt clkao: definitely after July
22:59 audreyt my euroscon proposal wasn't accepted
22:59 audreyt I need to get up and eat and pack now :)
22:59 fglock can these fit into 'term', such that they can be mixed with operators?
22:59 audreyt talk to you later...
22:59 fglock bye
23:00 audreyt fglock: sure... it's always like that to my mind
23:00 audreyt callbacks from bottomup to topdown always use them as terms
23:00 audreyt different sublanguages has different callback
23:01 audreyt to topdown rule under the term position
23:01 audreyt that's what DynTerm does in my haskellop parser
23:02 audreyt bbl... &
23:02 audreyt TimToady: I'm really glad too... coupled with the subsequent work on strings and (lack of) references (they are in the backlog)
23:03 audreyt TimToady: I can say that P6 fits in my brain now
23:03 audreyt forthe first time ever :)
23:04 Limbic_Region proof that men will never understand perl6 - given:  1.  Men will never understand women 2. audreyt understands perl6 - proof is self-evident
23:05 audreyt understanding is perhaps not transitive
23:05 fglock :)
23:05 TimToady well, have a good transit to .tw
23:05 audreyt =)
23:05 Juerd Limbic_Region: But why would men not understand things that women do understand? It's not exclusive :)
23:06 audreyt Juerd: Limbic_Region's argument holds iff understanding is transitive
23:06 Limbic_Region Juerd - it is like the proof that women are evil.  It only works if you don't look too closely but it is funny enough not to bother
23:06 fglock is there a single precedence for infix:<+>, or does it depend on the operands?
23:06 Juerd audreyt: I don't know what that is
23:06 audreyt Juerd: A relation R is transitive if x R y  &  y R z  =>  x R z.
23:06 TimToady single precedence as far as I know
23:06 Juerd audreyt: I see
23:06 audreyt fglock: infix can't know its operand's dynamic types at parse time anyway.
23:07 audreyt fglock: so it's not allowed to bias
23:07 Juerd fglock: I hope that the operands *can't* have influence on precedence, and that the language protects sanity by not providing the option.
23:07 fglock what if a redeclare infix:<+> precedence? does it change lexically or is it an error?
23:08 TimToady probably error, or at least a dire warning
23:08 audreyt fglock: the same infix:<+> can't exist on two prec levels
23:08 fglock that's nice to know (I was wondering how to implement this)
23:08 audreyt it is definitely an error if that happens
23:08 TimToady Unless you give some trait that says you know what you're doing. :)
23:08 audreyt re-preccing it is probably only doable with 1. killing the original infix:<+>
23:09 audreyt 2. install a new one relative to other stuff's prec
23:09 audreyt but I wouldn't sorry about supporting that at this point :)
23:09 audreyt s/sorry/worry/ # freudian slip
23:09 TimToady You can program any language in Perl 6, but we kinda prefer Perl 6.
23:10 fglock biab &
23:10 audreyt TimToady++
23:10 mind joined perl6
23:11 TimToady audreyt: don't spend too much time blabbing with us.  Ingy only made his flight by a 5-minute margin.  If he'd gotten off at the wrong terminal...
23:12 clkao I also made my flight by -10-minute margin
23:12 bepi joined perl6
23:12 TimToady that's a negative 10?
23:12 clkao yes
23:12 clkao luckily the airport was nearly empty and the flight arrived late
23:13 PolettiX lol
23:13 TimToady they told Ingy "don't do that again
23:13 clkao same with me
23:13 clkao or, unluckily, otherwise i could get back to tokyo for 2 more days, or even a short trip to taiwan!
23:16 TimToady audreyt: btw if you are unsure which terminal, there's a little posting down at one end of the train car saying which airlines are at which terminal.
23:17 TimToady which we didn't know till after we'd made the (fortunately correct) guess on his part.
23:18 bepi left perl6
23:21 fglock left perl6
23:22 fglock joined perl6
23:34 clkao joined perl6

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

Perl 6 | Reference Documentation | Rakudo