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