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. |
|||
Juerd | audreyt: In case you're keeping records: I'm entirely okay with disclaiming copyright for all that I contributed to Pugs. | 00:00 | |
FurnaceBoy | why would you do that? is it not GPL? | 00:02 | |
00:02
turrepurre_ joined
|
|||
Juerd | foo < 5 # foo qw/ ..., or foo() < 5? | 00:02 | |
FurnaceBoy: See pugs.blogs.com/ | |||
FurnaceBoy | k | ||
wolverian | Juerd, good question. | 00:03 | |
Juerd | I fear a long left angle bracket ;) | 00:05 | |
Where if you meant foo() < 5, you can do foo< <5 :) | |||
Perhaps a single solution has to be invented for all of these. | |||
00:08
OutThere joined,
OutThere is now known as SubStack
|
|||
avar | Juerd: Where do you live? | 00:09 | |
Juerd | avar: If this is about the copyright thing: I do not care about the legal possibility of actually disclaiming copyright; it's the intent that counts in court, and I don't even think there'll ever be any juridical action surrounding this. | 00:11 | |
avar: If for any other reason: Dordrecht, The Netherlands. | |||
TimToady | audreyt: I think the proper way to disambiguate my $x[@y] = 1,2,3 is just my ($x[@y]) = 1,2,3 | 00:33 | |
it's the moral equivalent of ()= as "always list assignment" if we had such an opertor. Well, we do, but the left side just has to go in parens. | |||
00:34
coumbes joined
|
|||
TimToady | If we make another way of forcing list assignment, we would have to at least think about killing (x) = y | 00:35 | |
but since we need () for precedence anyway, why not just use (x) = | |||
.oO(I killed frederico, and kanru, and pjcj!) |
00:36 | ||
dbrock | what are the two possible meanings of my $x[@y] = 1, 2, 3? | 00:37 | |
TimToady | whether @y is intended to be +@y or (@y,) | ||
and because of that, whether = is a binary operator or a list operator | |||
dbrock | I see | 00:38 | |
TimToady | there are lots of ways to dwim it, but unfortunately there's no really good place to draw the line on too-much-magic | 00:39 | |
Pretty obviously, $x[1..10] is intended as a slice | |||
since .. no longer has a scalar meaning that works as a subscript | 00:40 | ||
but it's probably better to detect these edge cases and just give a really good diagnostic: | |||
"If you mean this lvalue to do list assignment, you have to put parens around it..." | 00:41 | ||
only better. | |||
it's not really a problem on an rvalue slice because it doesn't affect subsequent parsing. | 00:42 | ||
except, of course, for the little problem that we assume an rvalue subscript is is in list context, and an lvalue slice is in scalar context. | 00:45 | ||
which is a bit odd. | |||
and, in fact, since $x[@y] is illegal as a "my" declaration, it would just be in bare parens, so when the parser sees | 00:46 | ||
($x[@y]) | |||
it can't yet know whether there's going to be an = to turn the whole thing into an lvalue. | 00:47 | ||
so it has to parse @y as a list-or-scalar, or assume list and retrofit it to be a scalar when it sees the = | 00:48 | ||
fortunately a Capture can treat @y as a list-or-scalar | 00:49 | ||
since we have to defer knowing context anyway until after we dispatch "push @array, 1,2,3" | 00:50 | ||
$x[@y].assign() vs ($x[@y],).assign() basically. So when () sees an =, it transforms Capture to move invocant to positionals, just as , would have done. | 00:57 | ||
.oO(and that killed shachaf...) |
|||
#perl6, the land of fatal thoughts... | 00:58 | ||
00:58
KingDillyDilly joined
00:59
mako132_ joined
|
|||
KingDillyDilly | TimToady wrote "I think the proper way to disambiguate my $x[@y] = 1,2,3 is just my ($x[@y]) = 1,2,3" | 01:00 | |
I like that reasoning. I used it in perlmonks.com/?node_id=388635 . | |||
KingDillyDilly contemplates saying "I like how you think, Timmy. Say, do you play golf?" but thinks not. | 01:11 | ||
01:16
bsb joined
01:20
beppu joined
01:32
Quell joined
01:42
shachaf joined
01:43
jserv-- joined
|
|||
avar | YetAnotherEric: boo. | 02:09 | |
02:09
avar left
02:10
avar joined
02:20
FurnaceBoy_ joined
02:25
qu1j0t3 joined
02:27
Pete_I joined
02:29
stclare joined
|
|||
svnbot6 | r10062 | audreyt++ | * Chromatic requested removal of his contribution under the | 02:43 | |
r10062 | audreyt++ | src/ tree; this is part #1: Bind.hs. | |||
KingDillyDilly researches computer language terms so he could say something properly | 02:50 | ||
beppu | If I wanted to write a perl 6 binding to the C library, libcaca ( sam.zoy.org/libcaca/ ), is that something that's possible to do now with pugs? | 02:52 | |
svnbot6 | r10063 | audreyt++ | * Finish the Pugs.Bind cleanup for chromatic's contributions. | ||
r10063 | audreyt++ | "svk blame" still shows two empty newlines as chromatic's, | |||
r10063 | audreyt++ | but those are not copyrightable. :-) | |||
audreyt | beppu: yes... but currently it has to be writtne by hand in C or in Haskell | 02:55 | |
beppu | Are there any examples of such a beast? | ||
audreyt | beppu: a swig-for-parrot or swig-for-pugs would be nice | ||
yes | |||
you can find src/Data/Yaml/Syck.hsc | 02:56 | ||
a binding for libsyck | |||
beppu | excellent. | ||
oh shit, it's in haskell. ;-) | |||
I guess I have an excuse to learn haskell, now. | 02:57 | ||
audreyt | yeah | ||
there's automation: | |||
hsffig.sourceforge.net/ | |||
I havn't used it, but it looks like on par with swig :) | |||
beppu | btw, I just finished listening along to your YAPC::Asia talk on Haskell while looking at the slides. I found it very informative. | 02:58 | |
audreyt | oh, thanks! :) | ||
beppu | You know, I never liked swig that much, because it was too straightforward... | ||
audreyt | my suggestion would be writing HelloWorld.hs using libcaca + Haskell FFI (maybe using hsffig) | ||
#haskell can help | |||
and then bridge it to pugs's object model | |||
which is trivial | |||
so focus on the interesting part first :) | |||
beppu | sometimes, I want to take a C library and make the perl wrapper seem perlish and swig can't do that, because it takes human judgement to do that kind of mapping. | 02:59 | |
I'll keep your suggestion in mind. | |||
audreyt | also, see haskell.org/hawiki/FindPage?action=...;value=ffi | 03:00 | |
example, cookbook, tutorial, etc, for writing bindings :) | |||
beppu | great, that'll help a lot. | 03:01 | |
hey... how much of perl 6 is left to implement in pugs? (...becaues it seems like you guys have covered A LOT of ground already.) | |||
(that's why I feel like making libcaca bindings for perl 6) | 03:02 | ||
or pugs rather... | |||
but to me, pugs == perl6 . | |||
audreyt | heh | 03:06 | |
KingDillyDilly | I can't find an official term for this, and my feelings aren't based on a whole lot, but sometimes I get the feeling that Perl 6 will be a very ununiform, contrived, difficult to learn language. Exceptions to rules and stuff. FWIW. | ||
Damn...I think TimToady used the term I'm think. The quote was something like "There's nothing .... can't fix except too much ...." Could someone fill in the blanks? | |||
03:06
Kattana joined
|
|||
Pete_I | i thought pugs was just an interpretter for perl6 | 03:06 | |
audreyt | Pete_I: that is correct, except s/interpreter/implementation/ | ||
pugs is no more an interpreter than, say, java is an interpreter | |||
beppu: a lot, actually; the class, grammar, types and macro milestones are all incomplete | |||
Pete_I | java is a language. | 03:07 | |
audreyt | sun java then. | ||
Pete_I | javabeans is an interpretter thingy. | ||
beppu | java is a lot of things under one name. | ||
Pete_I | yeah | ||
ayrnieu | java is also the name of a programmer. | ||
er, a program. | |||
audreyt | oy :) | ||
Pete_I | think i'll check that. maybe there's a guy named 'java smith' | ||
beppu | www.jwz.org/doc/java.html | 03:08 | |
03:10
coumbes joined
|
|||
Pete_I | 'java' is a horrible name. makes me hate coffee more. | 03:10 | |
KingDillyDilly | Found the quoteL "there's nothing that can't be solved with another level of indirection...except the problem of too many levels of indirection." Doesn't fully apply, but it's found. | 03:13 | |
Good quote anyway. | 03:16 | ||
03:19
aufrank joined
|
|||
dduncan | audreyt, regarding the prospective or actual change that Pugs itself (not including ext/, examples/, etc) is officially committed to the public domain, do you want all committers to explicitly acknowledge this, or are you going that we approve by default if we don't explicitly dis-prove and remove our contributions? | 03:22 | |
personally, while my contributions to the core are minor at best, I will hereby officially commit those parts to the public domain | 03:23 | ||
audreyt | thanks :) | ||
dduncan | however, I will still retain ext/Locale-KeyedText and ext/Rosetta to myself as already stated in their copyright statements | 03:24 | |
audreyt | dduncan: I'm still discussing with TPF on that, but I think I'll let some period of comments happen before releasing the next pugs with src/ pub-domained | ||
dduncan | can we assume that nothing is official until you make another CPAN release? | ||
audreyt | dduncan: sure. I'm disclaiming my compilation right as the release engineer | ||
yes, that is correct. | |||
dduncan | another question; what about the t/ directory or docs/ ? | 03:25 | |
is it only src/ under discussion for change? | |||
audreyt | yes. | ||
SubStack | java is an island silly | 03:26 | |
audreyt | I'll place explicit LICENSE to t/ and docs/ and examples/. | ||
they remain A2b5+GPL | |||
until we reach agreement with TPF on upgrading to A2b14 | |||
dduncan | and util/ I presume | ||
audreyt | 's procedure | ||
sure | |||
but not the new third-party/ | |||
those are under whatever original license they are under | 03:27 | ||
and we can't relicense them :) | |||
(or rather, bettern ow.) | |||
dduncan | meanwhile, though it is in ext/ , I fully intend for ext/Relation to become part of the core if you would have it | ||
audreyt | (or rather, better not.) | ||
dduncan: ooh. makes sense to say so then :) | |||
TimToady | I thought bettern ow was kinda cute. | ||
.oO(There's nothing that can't be solved with another level of licencing, except the problem of too many levels of licensing...) |
03:28 | ||
dduncan | the reason I put 'Relation' in ext/ was because it was something I was proposing for Perl 6 that would need approval by the powers that be before I would consider that it was accepted into the core | ||
so ext/ is a temporary spot for it ... | |||
while I make my proof of concept to decide on | 03:29 | ||
TimToady | "powers that be" sounds so...patriarchal...or occasionally matriarchal... | ||
dduncan | when I first committed 'Relation' a week ago, I said this in its copyright: | 03:30 | |
Relation is Copyright (c) 2006, Darren R. Duncan. But any copyright | |||
interest will be transferred to The Perl Foundation for portions or | |||
derivations that become part of Perl 6 itself. | |||
however, given the current discussion ... | |||
I'm thinking I should leave TPF out of it | |||
and maybe just say it is for the public domain | |||
at the time I wrote that ... | |||
I thought the Pugs core would eventually be given to TPF | |||
as it is supposedly the official copyright holder of "Perl 6" | 03:31 | ||
obra humbly suggests that intellectual property decisions be tabled until Artistic 2.0 is settled | |||
For now, just don't go giving away all your IP rights to some guy named Guido who offers you a chance to be involved in his "next generation language" project. | 03:32 | ||
He's almost certainly peddling snake oil. | 03:33 | ||
TimToady | hey, what do you have against Italians? | ||
Pete_I | italians are cool. they invented pizza. | ||
dduncan | I will take out the second sentence for now and defer further decisions until the right time | ||
beppu | www.njguido.com/ | ||
obra | They're anti-lambda[camel]. | ||
TimToady | right. then explain how it is that tomatoes came from the new world. :) | ||
qu1j0t3 | and a few other things not quite so ... delicious | 03:34 | |
Pete_I | TimToady, the original pizza pie didn't have tomatoes on it. | ||
dduncan | true | ||
Pete_I | did have cheese though. | ||
dduncan | or if it did, it didn't have anything else on it that we associate with pizzas | ||
TimToady | when you say "pizza" nowadays around here, people assume it *must* have tomatoes. | ||
so that's what pizza means here. | 03:35 | ||
dduncan | some don't even today | ||
Pete_I | you can still get it without tomatoes if you ask for it. | ||
dduncan | you can get, I think, a mexican pizza from some general joint, and it has refried beans instead of tomatoes | ||
KingDillyDilly | Vodka pizzas around here don't have sauce and are pretty popular. | ||
TimToady | kinda hard to get it without wheat though... | ||
they make pizzas out of vodka now? | 03:36 | ||
dduncan | you can get bread without wheat, why not pizza? | ||
TimToady | 'cause it always has tomatoes on it. | ||
Pete_I | TimToady, you could make it yourself. it's not a difficult process from what i've seen. | ||
TimToady | hard to fling dough based on low-gluten flours... | ||
KingDillyDilly | I wonder if an underaged kid would be allowed to order a couple of vodka pies and just lick them. | ||
TimToady | wanders off... & | 03:37 | |
Pete_I | KingDillyDilly, in all likelyhood the alcohol is cooked out. | ||
KingDillyDilly | I'd kick the kid out for that anyway. | 03:38 | |
Pete_I | i'd let him think he's getting drunk so he'll come back and buy more later. | 03:39 | |
svnbot6 | r10064 | audreyt++ | * README: Per dduncan++ and obra++'s suggestion, make it clear | ||
r10064 | audreyt++ | I'm just disclaiming the compilation-copyright, and the | |||
r10064 | audreyt++ | next-release-goal of changing src/ to public domain does | |||
r10064 | audreyt++ | not touch any other subdirectories, which are still assumed | |||
r10064 | audreyt++ | to be in A2b5+GPL unless explictly noted by the author. | |||
audreyt | dduncan: does that look a bit clear? :) | 03:42 | |
dduncan | I think so, from what I've read ... | ||
svnbot6 | r10065 | audreyt++ | * rename Artistic-2 to Artistic-2.0b5, now we have | ||
r10065 | audreyt++ | A2b14 which may or may not be the same license... | |||
audreyt | cool :) | ||
dduncan | could possibly take a little more clean-up for better grammar | 03:44 | |
audreyt | commit away then :) | ||
dduncan | will do ... | ||
03:49
KingDillyDilly left
|
|||
svnbot6 | r10066 | Darren_Duncan++ | updated the README file to improve some of its grammar ; updated ext/Relation/lib/Relation.pm to remove a speculation from its copyright | 04:03 | |
audreyt | dduncan++ | ||
04:03
jserv-- joined
|
|||
dduncan | now, back to a practical problem, regarding a multi-dimensional hash ... | 04:05 | |
svnbot6 | r10067 | audreyt++ | * Eval.hs: rewrite chromatic++'s parameter-binding logic, | ||
r10067 | audreyt++ | this time supporting $!foo instead of $:foo. | |||
04:21
drbean joined,
justatheory joined
|
|||
dduncan | here's a question ... what's the best way to declare a multi-dimensional hash attribute of a class where the number of dimensions and the type of each dimension can vary for each object of the class? | 04:23 | |
audreyt | just declare it as Hash then | ||
dduncan | S9 gives examples that would work if all objects have the same num of d and types, which is known in advance | ||
doesn't that force keys to be 1-dimensional Strs then? | 04:24 | ||
audreyt | well, a multidim hash of str;str keys | ||
it not really different from a hash of str to hashes of str | |||
I mean, keyed on str | |||
dduncan | what I want is a hash of any;any;...N | 04:25 | |
audreyt | then declare it as a Hash using Any as key | ||
would work | |||
dduncan | will try that for now | ||
wolverian | except the subhashes are keyed on Str, aren't they? | ||
dduncan | unrelated question ... | 04:26 | |
audreyt | wolverian: not if they are constructed the same way | 04:27 | |
dduncan | now that we have the 'constant' declarator, do we still need 'is readonly' for declaring constants in a program? | ||
04:27
justatheory joined
|
|||
dduncan | eg, is 'is readonly' gone? | 04:27 | |
for that purpose | |||
wolverian | audreyt, can you declare {$foo => "bar"}'s (inline hashref) type somehow? | ||
audreyt | "is readonly" still allows rebinding | ||
wolverian: it's a good question | 04:28 | ||
an answer will ultimately lead to Ruby symbol types ;) | |||
so... I'll yield to TimToady | |||
(meaning, I have noidea) | |||
wolverian | {$foo => "bar"} :: Hash{Foo, Bar} # :) | 04:29 | |
audreyt | possible, as te closure the find the common type and collapse | ||
but then, {1 => 'x', '1'=>'y'} would be legal | |||
er I mean | |||
but then, {1.5 => 'x', '1'=>'y'} would be legal | |||
but then, {1.5 => 'x', '1.5'=>'y'} would be legal # sigh | 04:30 | ||
and I'm not sure if it's sane... | |||
04:30
justatheory joined
|
|||
svnbot6 | r10068 | audreyt++ | * Finished src/ tree rewrite of chromatic++'s contributions: | 04:36 | |
r10068 | audreyt++ | Lexer.hs - a typo fix | |||
r10068 | audreyt++ | Prim.hs - object finalization and creation sequence. | |||
gaal | morning | 04:50 | |
audreyt | gaal: hey | 04:51 | |
gaal | I feel hung over. I also feel cheated, since I didn't have anything to drink last night | ||
audreyt | heh | ||
gaal | audreyt: hey - unfortunately I didn't fix the lexeme stuff, as you probably saw | 04:52 | |
TimToady | regarding Hash objects--at some point you just have to break down and write a constructor, I suspect. | 04:53 | |
gaal | curious to see what a fix oughtta look like | ||
TimToady | I think you can get a hangover from lexemes too... | ||
my fever is up again, so expect the unexpected | 04:54 | ||
oh wait... | |||
gaal | unexpect the expected? | 04:58 | |
audreyt | reexpect the unexpectable? | ||
TimToady | mostly I'm just expectorating unexpectedly | 04:59 | |
audreyt | gaal: you can | ||
gaal | Rule the regexpressible? | ||
audreyt | import Parsec hiding (lexeme) | ||
import quqliaifed Parsec (lexeme) | |||
lexeme = post . Parsec.lexeme . pre | |||
qualified, even | 05:00 | ||
that effectively gives you a "wrap" | |||
TimToady | figgered there had to be some way to rewrite in a rewrite-only language like Haskell. (ow, sorry) | ||
audreyt | rofl | ||
gaal | but code in Parsec sees its own function. So there are only lexical wraps? | 05:01 | |
audreyt | yes. | ||
but lexeme is combinator | |||
gaal | (Secret Haskell AOP project under lexical wraps) | ||
audreyt | and parsec core doesn't use them | ||
gaal | does in the op stuff, doesn't it? | ||
reservedOp etc | |||
audreyt | it's in Pugs.Rule.Token | 05:02 | |
we are not using Parsec Tokens. | |||
gaal | yep | ||
oh: didn't we slurp in all of Parsec? | |||
audreyt | advised by allison, we are unslurping any third-party code | ||
those in GHC core or Perl5 core, we just remove from our tree | 05:03 | ||
those not, we move to third-party/ | |||
parsec is GHC core library | |||
gaal | sure, so if we used to have moderate forkage in Pugs.Rule.Token (which is essentially ParsecCombinator.Token)... | ||
audreyt | we still do | ||
Expr and Token are still in our tree | |||
and instead of forkage, we can now do totalrewritage if needed. | 05:04 | ||
gaal | ParserCombinators.Parsec.Token.hs that is | ||
audreyt | (needed for Expr for sure) | ||
and rewrite Token (just lift it from languageDef) | |||
can increase performance as well | |||
gaal | okay... also I realized that makeTokenParser returns essentially a vtable | ||
audreyt | aye | 05:05 | |
gaal | okay. but that's just details :) what about the lexemal shift? :) so change lexeme to id; then what? | 05:06 | |
audreyt | then for all postfix stuff that accept ws | 05:07 | |
declare | |||
ruleWs | |||
for them | |||
which consumes whitespace | |||
try the rule | |||
if it fails, rollback as if whitespace havn't been consumed | |||
but if it commits at any point | 05:08 | ||
then just commit | |||
it's not as efficient as (say) | |||
keep a UserState of seenWhitespate | |||
that remembers if the last lexeme is whitespace | |||
and reject those rules that are declared ruleNoWS | 05:09 | ||
but both approach can work | |||
gaal | ruleWs = try whiteSpace -- simply? | 05:11 | |
audreyt | more like | 05:12 | |
ruleWs p = do | |||
p <|> try { whiteSpace; p } | |||
it's essentially what PGE's OPTable does | |||
except for the optimization of lifting all whiteSpace tests into a state | 05:13 | ||
we can do that too later | |||
gaal | k. where does ruleWs need to go? are there key rules we can put it in to avoid putting it everywhere? | 05:14 | |
audreyt | my thought was ruleWs goes to "rule" | 05:15 | |
and then we keep "verbatimRule" | 05:16 | ||
and change "literalRule" to "rule" | |||
and change all "lexeme" to "ruleWs" | |||
and see what breaks | |||
I think we can also simply rename "ruleWs" to "rule" | 05:17 | ||
and change the old "rule" marker to "Token" | |||
gaal | ah, there already is "lexeme someVerbatimRule" in a few places, showing that's how this is used in general | ||
audreyt | I mean "token" | ||
yes | |||
TimToady | mainly, it doesn't matter where you eat whitespace as long as it doesn't leak down into any tokens you might later want to abut as a supertoken. | ||
audreyt | TimToady: yup. | ||
gaal | ok. I have to go to $work now, but thanks for the explanation | 05:18 | |
TimToady | logically, though, no rule should really have to worry about any whitespace except what is between its subrules. | ||
subrules and literals. | |||
as long as any superrule pulling in this rule worries about the space around me. | |||
audreyt | well, we can do that too | 05:19 | |
by overriding >>= | |||
TimToady | i.e. only the top level rule has to eat whitespace at the beginning and end of the program | ||
audreyt | k | ||
TimToady | most standard lexers just eat whitespace at the rule to token boundary, though. | ||
audreyt | yeah, which is essentially the plan I proposed to gaal does | 05:20 | |
TimToady | that assumes literals are never matched by rules, but by the lexer though. | ||
audreyt | well... | ||
literals can be matched by a "token" | |||
05:20
dduncan left
|
|||
audreyt | but if it calls back to a rule | 05:20 | |
then it has to explicitly take care of the whitespace situation | |||
I say "token" here because parsec is scannerless... | 05:21 | ||
it just differs on how the rules are constructed | |||
TimToady | sure | ||
audreyt | not unlike perl6 | ||
but yeah, the goal is that we can then start porting "token ..." functions | |||
move them into .pg files | |||
and preprocess them into equivalent .hs files | |||
same for "rule ..." functions | 05:22 | ||
TimToady | you can just get into trouble if $ eats ws and ident eats whitespace and then you try to make a $ident supertoken | ||
audreyt | indeed, but currently these are distinct lexemes | ||
supertokenship is generally not present in pugs | |||
there is a Pugs.Lexer that hosts tokens, and Pugs.Parser that hosts rules | 05:23 | ||
even though the are just both parsec functions | |||
TimToady | so $ident is a single token | ||
audreyt | yes | ||
ruleVarName | |||
TimToady | and can't allow space in the middle | ||
audreyt | nope. | ||
that is, correct. | 05:24 | ||
TimToady | why do you propose backing of on whitespace matching if the subsequent thing doesn't match? | 05:25 | |
*off | |||
doesn't seem like it matters to me, if you've already eliminated all the possibility of postfix at a position. | 05:26 | ||
that's the main reason we invented long dot, methinks... | 05:27 | ||
gaal | okay sorry, gotta run | ||
see 'ya & | |||
TimToady | bye | ||
audreyt | TimToady: right, but that requires sorting the ws and the nows together | 05:29 | |
split into two pile | |||
try nows first | |||
er, sorry, try nows-together-with-ws first | |||
then if all fails, consume ws | |||
and then try the ws rules again | |||
does this make some sense? | |||
currently we don't do the sorting | 05:30 | ||
TimToady | <%postfix|%infix> | <ws> <%infix> | ||
audreyt | so they are just tried in turn | ||
nod | |||
otoh, maybe we can simplify it even more | |||
by lookahead ws first | |||
if there is ws, then just try the infix parts | 05:31 | ||
otherwise, consider postfix with infix | |||
TimToady | <ws> <%infix> | <<%postfix|%infix> | ||
s/<// | |||
audreyt | yeah. | ||
I think that's likely to be more efficient... | 05:32 | ||
TimToady | actually have to be careful not to get burned by :w there though in P6 | ||
rule {<ws> <%infix>|<%postfix|%infix> | 05:33 | ||
} | |||
audreyt | right... everything there has to be in token-level | ||
TimToady | that works too | ||
token { <ws> <%infix> | <%postfix|%infix> } looks cleaner | 05:34 | ||
oddly though, the auto-:words behavior of rules means that | 05:38 | ||
rule { foo bar } matches outside as well as between. | |||
which is probably redundant according to what I was saying earlier. | |||
audreyt | heh :) | 05:39 | |
TimToady | though maybe that's not bad, if we call <foobar> from within a token | 05:41 | |
token { fb = \[ <foobar> \] } | 05:42 | ||
then we automatically get our whitespace inside the square brackets, which the token won't bother to supply | |||
I think we should just assume that it's very efficient to determine if we're sitting at whitespace, and plan to do it redundantly. | 05:43 | ||
audreyt | or memoize that | 05:44 | |
TimToady | on the other hand, if <%postfix|%infix> is building a trie or some such, you're gonna find on the very first character that nothing matches whitespace. | ||
audreyt | which leads to packrat-tables :) | ||
TimToady: but .# is whitespace | 05:45 | ||
05:45
iblechbot joined
|
|||
audreyt | so not until 3rd char can you be sure. | 05:45 | |
I mean, 2nd. | |||
TimToady | so it ought to be efficient that direction too. | ||
audreyt | I actually mean 3rd :) | ||
TimToady | well, <ws> also has to test that. | ||
so it's no different | |||
audreyt | indeed | ||
but that's just perl6's ws | |||
:words in user code would be more effiient that that | 05:46 | ||
TimToady | arguably, if you usually have a postfix, it's better to go for something you know probably *will* match first. | ||
audreyt | than that | ||
as their <ws> is different | |||
TimToady | but that probably depends on your style | ||
a.b.c.d.e() style is all postfix | |||
audreyt | yeah. 1+1 is still very popular | ||
TimToady | well, we'll at least cure them of 1<2 :) | ||
audreyt | but not 1..4 :) | 05:47 | |
TimToady | one could go as far is to just install the whitespace matcher as the "" key in <%postfix|%infix> | ||
that is, as the corresponding value. | 05:48 | ||
I suspect that will end up the fasted way. | 05:50 | ||
*fastest, even | |||
but that's just a guess that the trie will find the answer faster than | alternation will. | 05:51 | ||
a really smart engine might turn all of token { <ws> <%infix> | <%postfix|%infix> } into a single trie anyway... | 05:52 | ||
audreyt | sinceyou just rid of the rules-as-keys | 05:53 | |
that's actually trivial... | |||
TimToady | yup | ||
audreyt | ok, I think that's much easier to do :) | ||
but that means we can't have an postfix .#<> | 05:54 | ||
TimToady | sure you can. | ||
audreyt | oh, longest token consider the static parts only. | 05:55 | |
I see. | |||
TimToady | just .# calls into a different subrule | ||
audreyt | surely for trie, it's even better if we enumerate all the opening brackets? | ||
.#( .#< .#{ etc become entries that is | 05:56 | ||
TimToady | could well be, unless you transit the subrule call | ||
inline, as it were. | |||
audreyt | nod. | ||
ok, thanks for the direction :) | |||
in all of its 9 senses :) | |||
TimToady | no problemo. | ||
I am but mad nnw. | 05:57 | ||
when the wind is southern, I know a hash from a hankerchief. | |||
mostly, though, I've just been going through Kleenex... | 05:58 | ||
audreyt: did you backlog my screed on $x[@y] = ... ? | 06:02 | ||
it was kind of a Shakespeare day, so I thought I'd do a soliloquy. | 06:03 | ||
audreyt | TimToady: well yes, but what about $x[1..3] ? | 06:05 | |
TimToady | I think just say "You have to parens around me" and croak. | 06:06 | |
audreyt | $x[1,2,3] too? | ||
so all lvalue position slices now require parens? | |||
TimToady | I expect so. | ||
I'd like to force the right ) to be near the = | |||
audreyt | %h{1,2,3} too? | 06:07 | |
TimToady | any slice | ||
audreyt | (unless the hash is shaped to Seq is valid key) | ||
so it's croaking at dispatch time | |||
TimToady | but then parens shouldn't matter, so croak at compile time. | 06:08 | |
audreyt | k. | ||
but all of them still flatten at rvalue? | |||
$x[@y] included? | |||
TimToady | As long as the message is clear, I think we can get away with it. | ||
as rvalue defaults to list | |||
or Capture, really | |||
so doesn't matter for @y | 06:09 | ||
still only matters for $x[foo()] | |||
if it's just a funny looking function call... | |||
as I was saying, the strange thing is lvalue defaulting to scalar and the rvalue defaulting to list | 06:10 | ||
audreyt | ok. so we retani the perl5ish | ||
($x) = (1,2,3); | |||
translating it to | |||
($x,) = (1,2,3) | |||
right? | |||
TimToady | seems so | ||
audreyt | ok, another paren special form for Pugs.Parser... | ||
TimToady | but you don't know it's special till you see the =. | 06:11 | |
audreyt | yup, hence "yet another" | ||
infix:<=> cannot be a sub or method. | |||
it has to be a macro | |||
TimToady | but you have to go back and verify legal lvaluehood anyway... | ||
audreyt | and I'm fine with that, as the AST has explicit "Assign" nodes now | ||
it's not merely an application of infix:<=> | 06:12 | ||
TimToady | for a while I was wondering if we could go as far as to get rid of | ||
(x)= | |||
and have some kind of x ()= form | |||
but I think it's good to document with parens on both ends still. | |||
audreyt | ($x) = 1,2,3; | 06:13 | |
just one end | |||
TimToady | I mean both ends of the $x. | ||
audreyt | oh ok. | ||
TimToady | whether you read in Latin or Hebrew, you still see the paren first. :) | ||
audreyt | but if I read it as classical chinese, then I read all of them in a gestalt :) | 06:14 | |
Pete_I | g'night folks. | ||
TimToady | well, good English readers do the same. | ||
they just use word shapes, ascenders, descenders, etc. | |||
audreyt | (was ferreing to vertical direction) | ||
TimToady | that's partly why you can get away with scrambling the insides of | 06:15 | |
words to some extent. | |||
audreyt | referring, even | ||
TimToady | o_O | ||
audreyt | ok, I must go out now to meet bsb and ingy and gugod and hcchien | ||
be back in a bit | |||
TimToady | say hi for me | ||
audreyt | sure :) | ||
TimToady | tata | ||
audreyt | me.map:{say hi} | 06:16 | |
TimToady | 0..* <- squished orz | ||
audreyt | oh btw, if I havn't seen "me" as func or class | ||
does | |||
me.map | |||
mean me().map always? | |||
TimToady | would have to. | 06:17 | |
::me.map if you mean the other thing. | |||
and blow up if me isn't declared by the end of this scope. | |||
or file, maybe. | 06:18 | ||
CHECK time, whatever. | |||
audreyt | oh? | ||
that's new to me | |||
excellent. | |||
TimToady | we don't leave random barewords sitting around waiting to unrecognize themselves at runtime. | 06:19 | |
audreyt | pugs -e 'OUR::<&x> := sub {... }; x()' | ||
would be illeal then. | |||
I don't remember that's specced... | |||
but it's excellent news. | |||
TimToady | seems like that would still be legal. the name is mentioned, even | ||
if you don't know what will be bound to it. | |||
audreyt | ok | ||
TimToady | but you know something will be bound to it. | 06:20 | |
so it kinda counts as a declaration. | |||
maybe | |||
could argue that "our" is required. | |||
audreyt | pugs -e 'OUR::{rand() ?? '&x' !! '&moose'} := sub {... }; x()' | ||
definitely bad then? | |||
TimToady | at some point, you guess one way or the other, and half the time you're wrong. :) | ||
I think that's probably carpable about. | 06:21 | ||
audreyt | so why not eliminate barewords at CHECK? | 06:22 | |
TimToady | basically, by the end of the compilation unit we'd better decide what all the barewords mean or die. | ||
audreyt | that will make | ||
me.foo; class me {...} | |||
legal | |||
and I don't quite see something wrong with that | |||
06:22
marmic joined
|
|||
TimToady | except you have to defer compiling it to a sub. | 06:22 | |
if can only be a sub, you can compile it provisionally and die later. | 06:23 | ||
alternately, compile to a stub that returns the class. | |||
I suppose that would work too, but might foul up MMD somehow. | |||
06:23
autark joined
|
|||
TimToady | I think it's better to require predeclaration of classes. | 06:24 | |
or :: for documentation. | |||
you want to forward ref subs a lot more often than classes. | |||
wasn't you supposed to go? | |||
audreyt | yeah | 06:28 | |
waiting for taxi | |||
TimToady | thought maybe you were off primping :) | ||
audreyt | doing that too. | ||
ok, so just compile it to a sub call, and push it to a check queue | 06:29 | ||
TimToady | right | ||
audreyt | to be validated by end of compilation unit | ||
that works. thanks :) | |||
TimToady | yw | ||
audreyt | (this probably is part of language-spec...) | ||
TimToady | I'm sure I already said it somewhere.... | ||
I'll poke around. | 06:30 | ||
audreyt | no... | ||
line 1530 S02 | |||
doesn't say it's invalidated | |||
TimToady | will soon. | 06:31 | |
audreyt | TimToady++ | ||
taxi's here, bbiab & | |||
TimToady | ciao& | ||
07:14
BooK_ joined
07:17
Aankhen`` joined
07:24
xern joined
08:11
kanru joined
08:21
elmex joined
08:25
Aragone joined
08:30
dakkar joined
08:32
pjcj joined
08:38
scook0 joined
08:41
iblechbot joined
08:45
xinming joined
|
|||
xinming | hi, I've passed the exam... :-) | 08:46 | |
YetAnotherEric | perl6 certification? | 08:47 | |
xinming | No, the law of traffic... Need that for learning driving cars. :-) | 08:56 | |
08:58
drrho joined
|
|||
meppl | guten morgen | 09:00 | |
GeJ | servus | ||
xinming | ... | 09:01 | |
09:06
scook0_ joined
|
|||
drrho is away: dancing | 09:44 | ||
09:55
dakkar joined
10:14
KingDillyDilly joined
10:16
kanru joined
|
|||
KingDillyDilly | I don't suppose ChrisAngell or anyone planned this, but I bet they like it: www.google.com/search?hl=en&lr=...assercrats | 10:21 | |
Makes it seem like Wassercrats isn't universally loved. | |||
10:38
ruz joined
|
|||
nothingmuch | KingDillyDilly: surprised? | 10:48 | |
KingDillyDilly | It's an interesting concatenation/truncation by Google. Makes it look like the phrase is quoted and is one phrase, but it isn't if you read the document. | 10:49 | |
But I wouldn't be surprised if someone said that. | |||
10:53
cdpruden joined
10:57
KingDillyDilly left,
KingDillyDilly joined
10:59
dakkar joined
|
|||
KingDillyDilly | Particularly buu | 11:02 | |
Juerd | KingDillyDilly: You don't say much about Perl 6 here, do you? | 11:04 | |
TimToady: Doesn't * clash with [*], at least visually? | 11:05 | ||
TimToady: Also, how does [<] not start qw//? | 11:08 | ||
Juerd thinks <> is exceptionally dangerous, and adding more special cases and silly disambiguation to the language than replacing qw// is worth. | 11:09 | ||
foo < 3 | |||
KingDillyDilly | I try to keep it at least 50/50 about Perl 6. I usually keep it on the topic of the current discussion when it's not about Perl 6. | ||
Juerd | foo<3 | ||
[<] | |||
theorbtwo | [<] is still the metaoperator, isn't it? | 11:10 | |
Juerd | theorbtwo: It should be, but why doesn't that < begin <>? | ||
[<] $ % ! @ ^>] # array of some characters. | |||
KingDillyDilly | Probably less than 50/50 as far as my contributions to Perl 6 development go. | 11:11 | |
Juerd | theorbtwo: See also the infinite lookahead post on Audrey's blog. | ||
KingDillyDilly | Ok, here's one...we have an infinite lookbehind now. You can't use *, but you can look behind for as many characters as you type. Bad term. | 11:12 | |
Juerd | KingDillyDilly: Your point? | 11:13 | |
KingDillyDilly | Change the term. | ||
Juerd | KingDillyDilly: Your suggestion? | ||
KingDillyDilly | We have an infinite lookahead/behind in Perl 5. | 11:14 | |
Um...wait... | |||
I was assuming someone was saying the infinite lookahead is new. | |||
It's an appripriate term for how it works in Perl 5. | 11:15 | ||
If it's something different in Perl 6, I can't suggest a term because I don't know what it is. | 11:16 | ||
audreyt | yo. | 11:18 | |
Juerd: [< does not start quoting | |||
because [ looks at only the infix category | |||
to be followed by ] | 11:19 | ||
so [<] is longest-token | |||
than simply [< | 11:20 | ||
you can always disambig on the 3rd char | |||
so there's still only look ahead for one token | |||
(same as bareword=>'quoting') | |||
KingDillyDilly | Plus I was thinking of regexes. Don't know what you're talking about, so nevermind. | 11:22 | |
11:23
kane_ joined
|
|||
Juerd | audreyt: But what about the list of characters, that I contrived? | 11:23 | |
theorbtwo | It's not an operator. | ||
Juerd | audreyt: Does whitespace break reduction operator parsing? | ||
theorbtwo | Oh, now I see the conflict better. | 11:25 | |
Juerd | audreyt: And how about foo < bar? | 11:26 | |
theorbtwo | The question isn't why it's not a reduce on a list of characters, but why it's not a capture of a list of captures. | ||
Er, a capture of a list of chars. | |||
Juerd | foo(< bar ...>), or foo() < bar | ||
theorbtwo: Array of chars. | |||
I don't think captures have much to do with it. | |||
theorbtwo | [...] forms a capture now, doesn't it? | ||
Juerd | Array | 11:27 | |
theorbtwo | Oh, whew. | ||
Juerd | \ captures | ||
theorbtwo | Captures haven't eaten quite the entire world. | ||
Juerd | And typically, you capture multiple elements with \(), because of comma's precedence | ||
11:29
aeon_ joined
|
|||
Juerd sees comments disappear :) | 11:29 | ||
cleanup++ | |||
KingDillyDilly | Where's Audrey's blog? I'll take a stab at learning what thes infinite lookaheads are. | 11:31 | |
Or better yet, a link to some documentation. | 11:32 | ||
miyagawa | pugs.blogs.com | ||
Juerd | KingDillyDilly: You won't find an explanation there. | ||
KingDillyDilly: Do you know what looking ahead is? Can you imagine infinity? | 11:33 | ||
It's not weird, it's not special. It is inefficient, though. | |||
KingDillyDilly | Yes. Are you all talking about parsing of Perl, or about regexes only? | ||
Juerd | Both | ||
KingDillyDilly | Oh, I'll bail on this one. | 11:34 | |
I just thought someone came up with a great new lookahead assertion and they're naming it an infinite lookahead. I'd have something to say about that. | 11:36 | ||
theorbtwo | No. | ||
One idea of parsing is that you always try your hardest to succeed. If you encounter an error, try going back and interpreting things differently. | 11:37 | ||
Another is that when you find something that can be interpreted in multiple ways, you remember where you are, and keep looking ahead until you find something that only makes sense with one of the ways to interpret it. | 11:38 | ||
KingDillyDilly | That could result in legal code that's not what the programmer intended. Better have good warnings. But I have no comment. | 11:39 | |
theorbtwo | You potentially need to keep looking ahead for an indeterminate amount of time, even to the end of the file. | ||
That's infinite lookahead. | |||
KingDillyDilly | That's the problem with you people. You waste time on people like me when you should be developing Perl 6. :-D | 11:41 | |
dakkar | that sounded like an invite to be kicked ;-))) | ||
audreyt | Juerd: yo | 11:43 | |
theorbtwo | By the way, the other option is to require that there be no constructs in the language that can't be told apart by looking apart only a fixed amount, which is why you get whitespace rules. | ||
audreyt | [<] moose>] is a parsefail | 11:44 | |
will be parsed as | |||
KingDillyDilly | Seems like all programming languages should use infinite lookaheads, but if you can determine that there's no possible way for the code to be legal before the end, you return an error. Doesn't seem like it should even have a term. If you don't keep checking until you know for sure, your language is buggy. | ||
audreyt | ([<] ) then ( moose>]) | ||
Juerd: I agree it's icky. I think the ickyness is unavoidable as long as we have this overload of <>. | 11:45 | ||
dakkar | KingDillyDilly: you keep using 'term'... I don't think it means what you think it means | ||
audreyt | KingDillyDilly: infinite lookaheads are slow, that's all | ||
KingDillyDilly: packrat makes it fast for computers | 11:46 | ||
but it doesn't make it faster for humans | |||
disambiguation with infinite-lookahead is very hard for the human mind. | |||
KingDillyDilly | I mean the term "infinite lookahead." Sometimes a language that uses the "other option" that theorbtwo mentioned would need to look to the end of a program, and sometimes an infinite lookahead one could figure out that it doesn't. There's a weak distinction. | 11:48 | |
11:49
sahadev joined
|
|||
Juerd | audreyt: What if I wanted [']', 'moose']? Would whitespace fix it: [< ] moose >], or [ <] moose > ]? | 11:51 | |
audreyt | yes | 11:52 | |
Juerd | audreyt: And I'm not sure if all this ickyness is worth it. <> is nice, but in almost every application for it, <<>> can be used, and there's always qw<> | ||
theorbtwo | Juerd: [']', 'moose'] isn't ambiguious, since there is no ' infix op. | ||
Juerd | theorbtwo: ... :) | ||
theorbtwo: Thank you. | |||
theorbtwo: ", using <>" was implied. | 11:53 | ||
theorbtwo | Sorry. | ||
Juerd | audreyt: Do you happen to know what happens with "foo < bar"? | ||
audreyt | Juerd: yes, I think whitespace can fix that | ||
theorbtwo | I'm awful stupid lately. | ||
Juerd | theorbtwo: No, don't be. You remind me that I should be more specific. | ||
audreyt | Juerd: "foo < bar" ? | ||
Juerd | audreyt: Yep. Is that foo lt bar, or foo qw/bar? | 11:54 | |
Do you look ahead infinitely there, to find out? | |||
I think I'll often have whitespace inside <> and Ā«Ā». | |||
(Hm, if I type compose,<,< too fast, it doesn't work) | 11:55 | ||
(Ah, solution: keep shift pressed all the time, starting before compose) | |||
Ā«Ā«Ā«Ā«Ā«Ā«Ā«Ā«Ā«Ā«Ā« :) # that way | |||
Ā»Ā»Ā»Ā»Ā»Ā»Ā» # or that way | 11:56 | ||
theorbtwo | Hm, shift-compose isn't compose for me. Perhaps I should fix that. | 11:57 | |
Juerd | It is for me. Did nothing special to get that. My compose key is menu (117) | ||
audreyt | Juerd: it's always unambiguous | 12:00 | |
(I just asked a ruling on that this afternoon) | |||
if "foo" is known as a type, it's "::foo < bar" | |||
if it's known as a nullary function, it's "foo() < bar" | 12:01 | ||
in all other cases, it's "foo(<bar...") | |||
Juerd | Okay. | ||
And foo< without whitespace is always foo.<? | |||
audreyt | yes. | ||
Juerd | Good :) | 12:02 | |
audreyt | note that if you declare nullary foo _after_ the "foo < bar" line | ||
it will not cause reparse | |||
and is still a "foo(<bar...") and prototype mismatch error | |||
Juerd | Of course. | 12:03 | |
Postdeclaration sucks anyway. I don't use that. | |||
It doesn't fit the model of imperativeness (imperativity?) for me | |||
audreyt | in mutually recursive functions you'l have to do that... | ||
or use a predecl form | 12:04 | ||
Juerd | True, but I can't remember the last time I had that. | ||
Oh, I can | |||
12:16
pen1 joined
12:18
feng123 joined
12:21
iblechbot joined,
kolibrie joined,
jsiracusa joined
12:36
mauke joined
|
|||
svnbot6 | r10069 | audreyt++ | * Pugs.Prim: further tweaks to the DESTROYALL sequence | 12:36 | |
gaal | hey. I doubt I'll be getting to the parser stuff today, from the looks of it. | 12:38 | |
KingDillyDilly | Not to plug my web based diff app, but there are web based diff apps out there and the results of a diff might be good for svnbot6 to link to in posts like the above. | 12:39 | |
Or at least a link to where ever that thing svnbot6 is talking about is. | 12:40 | ||
gaal | KingDillyDilly: rt.openfoundry.org/Foundry/Project.../pugs/log/ | 12:41 | |
I'd wanted 'svk desc'-like functionality to that for a while, since there's no webby way to get a whole patch | |||
KingDillyDilly: that's SVN::Web, I think they very much take a patches welcome attitude. | 12:42 | ||
12:43
BooK joined
|
|||
theorbtwo | The other option is to do a svn diff -r10058:10059 in your checked-out pugs. | 12:44 | |
Of course, that doesn't have the same brain-dead ease of clicking a URL. | |||
gaal | hey, the web has got to be good for something. | 12:45 | |
12:46
jsiracusa joined
|
|||
KingDillyDilly | www.polisource.com/diffnote/042406-...yOzX.shtml | 12:49 | |
Warning: above webpage is almost 400K | 12:50 | ||
And the Javascript will slow things even more. | |||
Juerd | KingDillyDilly: Please supply descriptions of the web pages you post. | 12:51 | |
KingDillyDilly: That helps people to determine if it will be worth their time. | |||
KingDillyDilly | *shrug* ok | 12:52 | |
Juerd | I assumed this page would be about Perl 6 somehow, opened it, and saw my computer die from 100% cpu load and extreme paging. | ||
Somehow I think it has nothing to do with Perl 6, and that it's not worth opening, but lack of description makes me too curious. | |||
KingDillyDilly | Wow. I'm short on memory and no problems. You must be using Linux. :-D | ||
mauke | it's empty | 12:53 | |
Juerd | Yes, I am | ||
theorbtwo | Mmmpf, my /kick finger is getting itchy, but I don't have ops on this channel. | ||
Juerd | mauke: Not for me, when I see it with a capable browser (not w3m). It takes a few minutes to load, but displays eventually. | ||
mauke | great, <body><script></script></body> | 12:54 | |
Juerd | KingDillyDilly: This is the worst diff overview I've ever seen. The point of diffs is showing only the DIFFerences. | ||
KingDillyDilly | Just trying to help. I thought I had a useful tool. | ||
Juerd | KingDillyDilly: So pugs/ | ||
checkout/src/Pugs/Prim.hs has more than 1000 equal lines in between these revisions. How does that help? | 12:55 | ||
mauke | 23390 mauke 25 0 144m 125m 16m R 92.7 12.5 3:00.79 firefox-bin | ||
KingDillyDilly | It gives you all the information of diff -y and more. (I think it's diff y...it's the side by side unix tool) | ||
Juerd | I appreciate that you try to help, but please think twice if it's really helpful. | ||
Right now you're mostly wasting time (though I admit that I could have ignored it all) | 12:56 | ||
KingDillyDilly | GNU diff has options to show all that too. | ||
My computer is a piece of garbage. I figured it would display find for you. | 12:57 | ||
theorbtwo | Yeah, but does anybody use diff -y? | ||
Juerd | It makes no sense to display all equal lines. | ||
There's nothing useful in that. | |||
KingDillyDilly | For shorter things there is. That's why there's a diff -y. other unix diffs are hard to understand. | 12:58 | |
Juerd | This isn't short. | ||
KingDillyDilly | I really have no idea what kind of diff you'd all use for that. Sorry I wasted your time. | 12:59 | |
13:07
Qiang joined
|
|||
KingDillyDilly | Thunder in NY. I'll kick myself out. | 13:10 | |
13:10
KingDillyDilly left
13:35
weinig_ joined
13:45
merlyn joined
13:49
justatheory joined
|
|||
svnbot6 | r10070 | fglock++ | PCR: added positional parameters in rules | 13:49 | |
13:50
weinig_ is now known as weinig
13:53
ruz joined
13:54
fglock joined
13:56
vel joined
13:59
Limbic_Region joined
14:04
chris2 joined
|
|||
clkao | audreyt: check msg. | 14:04 | |
Limbic_Region | audreyt - regarding Pugs and licensing. Tell me what I have to sign/say to turn over all code I have authored in the Pugs repository | 14:06 | |
theorbtwo | Limbic_Region: If you want to be formal about it, find the FSF's assignment, and change the names. | 14:08 | |
I probably should have done that before I wrote the one on audrey's blog, but I think that one works too. | 14:09 | ||
They do different things, though -- mine is to public-domain, the FSF's would make it somebody else's choice. | |||
Limbic_Region | theorbtwo - you missed my point | 14:10 | |
theorbtwo - while I want to help audreyt and not be a hindrence to progress | |||
I want to be lazy | 14:11 | ||
just tell me where I have to sign | |||
theorbtwo | Ah. | ||
14:22
Coke joined
|
|||
Coke | expected failures in t/builtins/arrays/shift and splice ? | 14:22 | |
audreyt | Coke: yes, our parsing strategy has changed yesterday | 14:33 | |
a lot of parsefails is cropping up now | |||
Coke | ah, my timing, as usual, is excellent. | ||
audreyt | try up to r10061 | 14:36 | |
svn up -r 10061 | 14:37 | ||
that's the known-good version | |||
Limbic_Region: thanks, formal assignment is the legal way to do it, but before I settle this discussion with chromatic/allison/tpf/etc, there needs to be no overt actions than a comment here, or on the journal | 14:38 | ||
I'm trying to find out who chromatic is okay with MIT license but not with public domain | 14:39 | ||
s/who/why/ | |||
and if there are sufficient mistrust on public domainess from U.S. people, I'm willing to use MIT license | 14:40 | ||
they are legally equivalent anyway, except the MIT license may be revoked, according to some lawyers. | |||
Limbic_Region | well, I think more people are concerned with the changing of the licensing than what license you choose (but that's just my limited opinion) | 14:41 | |
audreyt | *nod* | ||
that's what I thought as well | |||
so I was surprised that chromatic was upset about public domain but okay with MIT license | |||
and believe me, I didn't do this compilation-right-disclaim thing just for fun :/ | 14:42 | ||
theorbtwo | audreyt: If you decide to go with MIT, feel free to relicense my stuff under it. It's under the public domain, you're allowed. | ||
Limbic_Region | I know - but perception is a big thing | ||
audreyt | theorbtwo: sure | ||
Limbic_Region | IOW - it would have been 1 thing to say, I don't feel comfortable with license X and would like to do Y, this is what it will mean to you - what do you think | 14:43 | |
is a lot better than | |||
I have unilaterally decided to do Z | |||
I know that's not what really happened | |||
but perception is what perception is | |||
audreyt | indeed | 14:44 | |
Limbic_Region | s/happened/is happening/ | ||
I don't want to be a hindrence in the process | |||
but I don't want to have to work to figure out what I need to do either | 14:45 | ||
theorbtwo | Limbic_Region: Just wait a week or so until the situation becomes clearer. | ||
Limbic_Region | theorbtwo - yeah, I got that from what audreyt said | 14:46 | |
audreyt | right. basically, unless you are uncomfortable with your previous commits under src/ tree to be under MIT license or public domain, you don't need to do anything... | ||
and yeah, waiting a week or so is a sane choice too. | 14:47 | ||
Limbic_Region | audreyt - even files that have explicit copyrights? | ||
audreyt | under src/ tree? | ||
those are moving out to third-party/. | |||
Limbic_Region | so ext/Config-Tiny/ will move to 3rd party? | 14:49 | |
*shrug* - I just as soon remove my copyright from it but ok | |||
audreyt | uh. | ||
the ext/ tree is untouched | |||
and will remain so | |||
this whole thing was just about the code that makes up the /usr/local/bin/pugs executable. | 14:50 | ||
so, that means the src/* tree | |||
some C and some Haskell code | |||
the ext/, examples/, t/, docs/ trees | |||
are entirely unaffected | |||
(see README and my last entry for details) | |||
so, unless you have hacked the Haskell sources or C sources under src/ | 14:51 | ||
i.e. the pugs "guts" | |||
Limbic_Region | ahh - well then I don't think I have anything to worry about. Other than some patches to Makefile.PL - I haven't had anything to do with the building of the pugs executable | ||
audreyt | right | ||
and the installed copy of pugs doesn't bundle Makefile.PL | 14:52 | ||
yes | |||
ext/ will always remain in the license the author chose | |||
like GPL for Rosetta | |||
or Perl5 license for some | |||
or Artistic2 for some | |||
I think I should repeatedly state this :) | 14:53 | ||
Limbic_Region | ok - so now about Pugs not compiling on Win32 - did you get a chance to look at my nopaste of the error? | ||
audreyt | I'm afraid I missed the url | 14:54 | |
relooking | |||
Limbic_Region | ok, well I can't confirm it is still b0rk on a recent checkout as I can't seem to build at all at work anymore | ||
14:54
elmex joined
|
|||
Limbic_Region | and now that GHC is at 6.4.1 - I have given up trying | 14:55 | |
audreyt | oh, you were on6.4.0? | ||
actually we still compile on 6.4.0, it's just unicode support in source files will be broken | 14:56 | ||
only ascii will be allowed on ghc 6.4.0 | |||
Limbic_Region | no - the error arose prior to 6.4.1 requirement | ||
what I am saying is that I am now at work and can't build here | |||
so I can't confirm the problem is still a problem | |||
audreyt | oh ok | ||
Limbic_Region | trying to save you cycles | ||
audreyt | I'll reboot now and test | 14:57 | |
Limbic_Region | error is at sial.org/pbot/16851 | 14:58 | |
audreyt | yup, got it | ||
would be nice if you can modify File::Path | |||
and do a Carp::confess there | |||
to get stack trace | |||
Limbic_Region | well - I didn't want to spend too much time investigating if I was the only 1 having the problem | 14:59 | |
for various reasons - I seem to have problems no one else does | |||
like Pugs requiring to be linked against Cygwin to compile on my work machine for instance | |||
or nmake for failing on cd .. | 15:00 | ||
etc | |||
audreyt | do you perhaps have space in the path of pugs? | ||
15:01
hexmode joined
|
|||
Limbic_Region | no | 15:02 | |
audreyt - everything has always worked on my home machine | 15:03 | ||
then it just stopped working - no changes | |||
audreyt | k | ||
Limbic_Region | the only variable (that I could isolate) was checking out from the repo | 15:04 | |
audreyt | ok. do yo you roughtly know which revision ? | 15:07 | |
(last known wokring, that is) | |||
or date | |||
Limbic_Region | how rough? | 15:11 | |
it was about a week before I mentioned it that it was working | 15:12 | ||
audreyt | okay. | 15:16 | |
that makes it easier to locate the problem | |||
still a stack trace would be very helpful | |||
because I can't duplicate it here :/ | |||
Limbic_Region | well, I will try at home sometime this week and let you know | 15:22 | |
if it is another "just me" then *shrug* | |||
no big deal - I have even less time for extra-curricular activities these days | 15:23 | ||
audreyt | k, but I'd still like to investigate if you can get a stack trace | 15:26 | |
Limbic_Region: a new entry is up, prompted by your "perception" suggestoin | |||
I'm really sorry; I had no idea that "src/ tree" can be taken to mean other meanings | |||
Limbic_Region: please check to see if I can improve it | 15:27 | ||
15:27
frederico joined
15:31
hlen joined
15:35
szbalint joined
15:39
FurnaceBoy joined
|
|||
Limbic_Region | audreyt - I will | 15:39 | |
audreyt - I think, and I hope I am not completely out of line here, that you problem is in the assumptions you place on others | 15:40 | ||
I have a tendency to do this myself | |||
I didn't even see src/tree - I saw the pugs code repo is going public no-license | |||
people don't look for the details - they jump to conclusions | 15:41 | ||
myself included | |||
ooh - chromatic is kind of particular about not having his name proper case Chromatic vs chromatic | 15:44 | ||
other than that - spot on ;-) | 15:45 | ||
15:49
axarob joined
|
|||
audreyt | Limbic_Region: yeah. what I should have done is to list the "src/ tree" thing prominiently on top | 15:50 | |
instead of hiding it in, oh, 20th line in the journal entry | |||
really sorry for that :/ | |||
fixed capitalization | 15:51 | ||
Limbic_Region | well, no need to apologize - I wasn't offended but I did have the wrong idea | ||
audreyt | if you did, I suspect a lot others did as well | ||
chromatic obviously did :/ | |||
audreyt stops herself from indulging in guilt and goes sleeping instead | 16:00 | ||
theorbtwo | audreyt: Nobody is perfect 100% of the time. You, so far, have managed about 100-1/Inf percent. | 16:04 | |
PerlJam | theorbtwo: that's not true. Nobody is perfect. Period. But if you stay ahead of your peers you will *seem* perfect ;-) | 16:05 | |
szbalint | gnight audreyt | 16:06 | |
theorbtwo | G'night, audreyt. | ||
16:06
chris2_ joined
|
|||
szbalint | It is amazing how much I missed in the past three weeks while I was away from here. | 16:06 | |
FurnaceBoy | PerlJam++ | 16:08 | |
16:10
hexmode` joined
16:20
ghenry joined,
swarm joined
|
|||
gaal | guilt is overrated anyway. I go with sleep every time | 16:32 | |
audreyt | gaal: one last thing | 16:42 | |
before I sleep | |||
gaal | t? | ||
audreyt | tonight ingy and I paired on using packrat to parse kwid syntax | ||
and it's amazingly addictive | |||
it's like writing Perl 6 grammars using only "regex" but never "rule" or "token" | |||
gaal | cool! using which package? the .hs code? | ||
ingy | audreyt: did you send me the details? | ||
audreyt | ingy: details of the checkout? | 16:43 | |
it's in svn.kwiki.org/audreyt/Wiki/ | |||
ingy | thanks | ||
gaal checks it out too | |||
16:44
_bernhard joined
|
|||
gaal | too bad my brain is fried.. maybe tomorrow | 16:44 | |
audreyt | ingy: svn up | 16:45 | |
r129 is what you want | |||
just "make" | |||
gaal | wtf? # wikiStarRule0 = wikiSubStarRule0 . wikiSub0 | 16:46 | |
audreyt | gaal: look at Wiki.pappy | ||
Wiki.hs is genned | |||
Daveman | Morning gaal :) | ||
gaal | hola | 16:47 | |
audreyt | gaal: note how arbitrary nesting is handled very gracefully | ||
Daveman | How's things going today? | ||
gaal | audreyt: funny, i coudla sworn I saw a note in Main.hs saying it was genned by Wiki.hs :) | ||
ingy | audreyt: gracias | ||
audreyt | gaal: that's true | ||
Main is genned by DrIFT over Wiki | |||
gaal | where do I look first then? | ||
audreyt | and Wiki is genned by Wiki.happy | ||
.pappy | 16:48 | ||
so you look at .pappy | |||
since that's all the code | |||
nothing else :) | |||
gaal | sweeeeeet | ||
audreyt | ingy: btw, you don't have to write in .pappy if you don't want to | ||
you can write in parser combinator style | |||
just like parsec | |||
but the .pappy form guarantees linear speed | 16:49 | ||
and is shorter | |||
and is more like perl6 rules to boot | |||
so stick with that until you need fancy stuff like \b | |||
you can then define those assertions in the more complex parser-combinator style | |||
ingy | \b? | ||
ah | |||
gaal | though kwiki is still relatively simple to parse. btw see this about parsing wiki with regexes: | ||
# community.livejournal.com/evan_tech...html?nc=11 | |||
audreyt | if what I just said makes no sense, read the thesis: | 16:50 | |
pdos.csail.mit.edu/~baford/packrat/thesis/ | |||
it's not quite powered-by-phd this time | |||
it's only a master's thesis | |||
TimToady | have an interview in 10 minutes. Any quick Q's? | 16:51 | |
audreyt | TimToady: did what I said about "a < b" makes sense? | 16:52 | |
if a is known ::a, infix. | |||
TimToady | yes | ||
audreyt | oh ok :) | ||
next question. for proto | |||
gaal | anyway, I need to wind down a bit, see you tomorrow, sleep tight audreyt | ||
TimToady | nite | ||
audreyt | proto f ($, $, $, $, *@) {} | 16:53 | |
do we have to do the perl5ish parsing? | |||
theorbtwo | Um, does infix < make any sense on types? | ||
audreyt | or is antyhing beyond unary automatically listop? | ||
TimToady | the latter | ||
audreyt | whew. | ||
TimToady | but can still complain on single sub and mismatched params. | ||
audreyt | sure, but that means it's much saner. | ||
TimToady | that's what p5 does with >1 | 16:54 | |
wolverian | TimToady, may be audreyt already asked this before, but: can I declare the type of the literal hash in '{ foo => $bar }' somehow? | ||
TimToady | just use a constructor | ||
wolverian | okay, thanks. | ||
TimToady | they have to be good for something... :) | ||
wolverian | Hash[Foo, Bar].new? | 16:55 | |
TimToady | something like that. | ||
audreyt has to be good for something. | |||
audreyt | heh :) | 16:56 | |
16:56
chris2_ is now known as chris2
|
|||
audreyt | theorbtwo: re Class1 < Class2 | 16:56 | |
if someone want to port Rails to Perl6 | 16:57 | ||
that would be natural | |||
and even "Class1 < Class2&Class3" for inheritance. | |||
multiple inheritance that is | |||
# blog.mauricecodik.com/2006/01/ruby-...tance.html | 16:58 | ||
theorbtwo | Hm, OK. | 16:59 | |
TimToady | but I hate overloading math ops for non mathy things, especially angles. Don't look at me that way... | 17:00 | |
obra imagines junctive inheritance | 17:01 | ||
TimToady | Unicode is full of arrows. We don't need to use up good brackets for a stupid arrow. | 17:03 | |
interviewer not here yet... | |||
Coke | er or ee? | 17:04 | |
YetAnotherEric imagines TT sitting at a space-cadet unicode keyboard | |||
Coke | Speaking of unicode and languages, "ew." "ew ew ew". | ||
(this based on my attempts to write *one line* APL programs.) | |||
PerlJam | greeble. | 17:05 | |
TimToady | er, giving an interview, just for someone's school project. | ||
could end up in a magazine, of course. | |||
17:05
saorge joined
|
|||
Coke | excelllllllent. | 17:05 | |
pasteling | "spinclad" at 209.94.133.172 pasted "ambiguous example in S02.pod r8928" (14 lines, 370B) at sial.org/pbot/16884 | 17:07 | |
TimToady | using < for mixin is the sort of mistake Haskell makes all over, huffmanizing the abstruse operations to be shorter than the common ones. Admittedly, < is fairly common in Ruby, but it's still too short. | 17:08 | |
Coke | using unicode is another way of dehuffmanizing, but it still makes me feel all oogy. | ||
audreyt | TimToady: well, it was huffmanizing for its niche :) | 17:09 | |
(which is, math) | |||
TimToady | P6's -> ==> are all conceptually unicode ops written in ASCII | ||
:) | |||
audreyt | ooh, -> too? | ||
then I don't have to update my slides! | |||
;) | |||
TimToady | I'm sure you can locate a right arrow in Unicode. :) | ||
PerlJam | (ascii unicode ops)++ | ||
audreyt | the Japanese people really all freak out at the Yen though. | 17:10 | |
to them the unicode Yen is indistinguishable from backslash... | |||
theorbtwo | MS-- | ||
audreyt | (same thing on the screen) | ||
PerlJam | I guess I'll need to get used to typing ^K alot in vi (or make lots of abbreviations) | ||
TimToady | spinclad: thanks, will clarify | 17:11 | |
Coke | OS X has a great character input scheme for unicode, but it's completely disruptive to writing code. | ||
spinclad likes the pastebot | |||
17:11
KingDillyDilly joined
|
|||
audreyt | tonight ingy was talking about how in golf | 17:11 | |
all Module::Compile users are penalized | 17:12 | ||
spinclad | TimTowtdi: thanks | ||
audreyt | because you have to at least say "no X;" | ||
to load a module | |||
ingy | :D | ||
audreyt | I suggested maybe we can use the unicode codepoints outside BMP | ||
KingDillyDilly | Anyone know what "23390 mauke 25 0 144m 125m 16m R 92.7 12.5 3:00.79 firefox-bin" means? Mauke posted that after trying my diff app. | ||
audreyt | that is, > 65536 | ||
to encode three characters in one codepoint | |||
obra | KingDillyDilly: that looks like "firefox is eating all my CPU" | 17:13 | |
audreyt | because 3 7-bit ascii is 21 bit unicode | ||
so one character can mean "no " | |||
and another one can mean "X;" | |||
significantly reducing the penalty | |||
TimToady | well, we have 64-bit utf8 in P5... | ||
so you know my opinion of the 21-bit limitation... | |||
audreyt | but the higher bits are all zeroed... | 17:14 | |
if it's not, the unicode police will come and get you | |||
TimToady | they don't much care as long as you never emit such a character. Why you do in the privacy of your own process... | ||
theorbtwo | More to the point, your terminal won't know how to display it. | ||
Exactly, TT. | 17:15 | ||
TimToady | To me, it's just a way of storing variable sized integers, so should | ||
probably be typed as some kind of Buf instead of Str. | |||
except abstract. | |||
might well be a uint64 @ internally... | 17:16 | ||
PerlJam | Can we make the ASCII version of zip be Ye instead of Y? Then my code will work even if I don't have abbreviations setup :-) | ||
TimToady | macro infix:<Ye>... | ||
theorbtwo | We should make wide yen equiv to yen, for silly people for whom \ displays as yen. | 17:17 | |
PerlJam | yeah, I know. I just want custom-to-me behavior out of the box :) | ||
TimToady | We'll need to tackle all Unicode equivalences at some point. | ||
Juerd | audreyt: Unicode police? Heh. | ||
PerlJam | TimToady: so ... why don't we have a <KEY> assertion? | ||
TimToady | use PerlJam; not good enough? | 17:18 | |
what would you need it for? | |||
you already know where the silly thing starts and stops. | |||
PerlJam | TimToady: I don't know, I just think it's strange that we have $<KEY> and not <KEY> | ||
TimToady | the point is, you're already past the key when you get to the rule, so you have to set the position anyway if you want to go back. | 17:19 | |
xinming | Juerd: may I have account on perlcabal.org/ ? :-) | ||
PerlJam | I guess <after $<KEY>> works well enough as <KEY> | ||
TimToady | indeed | ||
and since lookbehinds reverse | 17:20 | ||
Juerd | xinming: It's feather.perl6.nl, but sure. Request it by email. | ||
xinming | Juerd: ok... | ||
Juerd | xinming: perlcabal.org is audreyt's domain; She pointed it to feather :) | ||
TimToady | <<after foo $<KEY> >> also works. | ||
so $<KEY> functions as its own assertion, more or less. | |||
xinming | Juerd: send the mail to you? | 17:21 | |
PerlJam | yep. | ||
Juerd | xinming: Please include your real name (transcribed to ascii if relevant, please) and the username that you want | ||
xinming: Yep | |||
TimToady | just didn't seem like there was any reason to clutter <foo> space. | ||
Coke | /me wonders if he should get a feather account. they seem all the rage. | ||
PerlJam | perhaps I'm suffering from hobgoblins of foolish consistency. There's a nice symmetry between <foo> and $<foo> (except for $<KEY>) | ||
Juerd | Coke: There is no "should". If you think you can be more productive for Perl 6 or Parrot if you have an account, request one :) | 17:22 | |
TimToady | I don't doubt that someone enterprising will go ahead an implement <KEY> anyway, just for that reason. | ||
I'm not prohibiting it, just not specifying it. | |||
Coke | Juerd: what's the platform again? | ||
wolverian | TimToady, do you think -> could actually be a unicode operator (that is, ā )? | 17:23 | |
Juerd | total 4.8G | ||
-rw------- 1 feather feather 776M Apr 24 19:28 2006-04-24T17:16:26_feather_._backup.tar.gz | |||
-rw------- 1 feather feather 4.1G Apr 24 21:03 2006-04-24T17:25:47_feather_data_backup.tar.gz | |||
Feather's first backup :) | |||
Coke: Linux, Debian Sid. | |||
Coke: GNU, too. | |||
TimToady | what else would it mean? That doesn't mean the world is ready for it, though. But we need to spec the correspondences. | 17:24 | |
for the eventuality that the world catches up with Unicode. | |||
wolverian | TimToady, right. I'm specifically asking whether the default perl6 will understand ā :) | ||
TimToady | which version? | ||
Juerd | My font doesn't render that character, wolverian | ||
Coke | Juerd - if someone on feather is already smoking parrot + parrot/lang, then I don't need it. | ||
Juerd | Coke: Probably. I don't keep track of who does what. | ||
wolverian | TimToady, the one I'll use. :) | ||
Coke | I read it as ?~F~R ! | 17:25 | |
TimToady | we are intentionally not speccing 6.0.0 to require anything outside Latin-1. | ||
but all is fair if you predeclare. | |||
Juerd | TimToady: Please keep it that way. | ||
wolverian | TimToady, as long as -> exists, is it a requirement? | ||
TimToady | how long? | ||
is what a requriement? | |||
Juerd | TimToady: Until latin1 is no longer the default on more than half of all modern unixish distributions :) | ||
PerlJam | TimToady: It won't require, but will it accept unicode variants? And for what operators? | 17:26 | |
it == perl 6.0.0 | |||
TimToady | I think that was yesterday... :) | ||
(wishful thinking, I know) | |||
szbalint | Juerd: oh? Today is indeed today then ;) | ||
TimToady | Is perl 6.0.0 a requirement? | ||
Juerd | Fedora is way ahead, and Ubuntu's almost there. Debian's far from utf8-ized, though, in the default installation, last time I checked. | ||
szbalint: ? | 17:27 | ||
szbalint: When is today ever not today? | |||
wolverian | TimToady, is the fact that ā exists as an optional -> variant a requirement for non-latin-1? | ||
TimToady | I use Fedora, so my view is biased, of course. | ||
wolverian | TimToady, (sorry, I honestly couldn't put it any better than that.) | ||
szbalint | "Today^WSoon I will install some backup mechanism on this machine." | ||
TimToady | I believe it'll require a predeclaration in 6.0.0 | ||
szbalint | I ment this from the motd Juerd, sorry for being cryptic :) | ||
theorbtwo | I use debian, and don't have any problem utf8ing. | ||
TimToady | use uniops; or some such | ||
theorbtwo | Well, very little problem. | ||
Juerd | szbalint: The original today was Saturday :) | ||
theorbtwo: But it's not the default. | 17:28 | ||
theorbtwo | wolverian: It'd be a requirement to allow it is the problem... not to use it. | ||
Juerd | theorbtwo: As long as utf8 is a conscious choice, it's a bad thing to assume. | ||
TimToady | maybe just use U for golfers. :) | ||
theorbtwo | Mm, point. | ||
wolverian | TimToady, okay. thanks. | ||
Juerd | wolverian: Off topic - why do you use a comma, not a colon, to address people? | 17:29 | |
TimToady | but we *have* already specified that Perl programs are written in Unicode... :) | ||
wolverian | Juerd, I'm not sure. does it bother you? I can always change it. | ||
Juerd | It looks so unnatural to mention someone's name all the time. "foo:" is an IRC thing, and not part of what's virtually pronounced :) | ||
TimToady | "In the abstract" | ||
Juerd | wolverian: It doesn't bother me. I am curious, though. | ||
wolverian | that's true. | 17:30 | |
I'm curious too. I just don't remember why I changed it. | |||
I'll tell you if I remember. :) | |||
Juerd | Hehe :) | ||
Thanks | |||
Juerd just bought a phone with prepaid credit, and had the phone unlocked. | 17:31 | ||
Brand new phone for < ā¬ 100, that normally costs > ā¬ 200 | |||
TimToady | I think assuming the source file is in some subset of Unicode is a fine thing unless declared otherwise. | ||
Juerd | use unicode :madness; | ||
=item :madness | 17:32 | ||
Binds something to each existing codepoint. Requires half of CPAN, because Unicode has many more codepoints that Perl 6 has operators. | |||
TimToady | translation from "native" script is about the only thing left that source filters are good at... | ||
Juerd | |||
=cut | 17:33 | ||
TimToady | maybe if the first declaration uses high-order Unicode, we assume it all does: vā„; | 17:35 | |
svnbot6 | r10071 | audreyt++ | * Per chromatic++'s suggestion, change "public domain" to | ||
r10071 | audreyt++ | "MIT license" in the README's section about future intent. | |||
TimToady | for golfed Unicode. | ||
use vā¶; | 17:36 | ||
Juerd | #!/usr/bin/perlā„ | ||
TimToady | for more formal occasions. :) | ||
cool, now just convince the filesystem. :) | |||
Juerd | Why vā¶, not vā? :) | ||
TimToady | vā is for prereleases. | 17:37 | |
Juerd | I see | ||
xinming | Juerd: You have the email... :-) | ||
TimToady: do you mean, we have to use vā instead of v6? :-/ | 17:38 | ||
TimToady | ā „ also has possibilities. :) | ||
Juerd | xinming: Out of curiosity, who/what is in the From: header? | ||
17:38
jlhamilton joined
|
|||
TimToady | Only after 6.0.0 :) | 17:38 | |
PerlJam | TimToady++ | ||
xinming | Juerd: Still me, YiyiHu is just my name which is used only for written article only... :-) | 17:39 | |
Juerd | So confusing... | ||
xinming thinks, he should change his email-box using [email@hidden.address] | |||
en.... | 17:41 | ||
Juerd | en? | ||
mauke | en_US.UTF-8? | 17:42 | |
xinming | hmm, It's a bit like a confirmation... which means yes... | 17:43 | |
Juerd: I've updated my password. :-) | |||
Juerd: thanks | |||
TimToady | Maybe a simple "ļ¼" would work... | 17:45 | |
basically just continues the idea of Perl looking at how you abuse it in the first statement, and assuming you want to continue to abuse it that way... | 17:46 | ||
unfortunately there's nothing in the Latin-1 range that looks like either v or 6, unless you really mean Latin, in which case U wold work--except that's ASCII... | 17:49 | ||
but we already allow Latin-1, so I guess it doesn't matter. I don't see much use for limiting the character set to Devangari with "vą„¬" | 17:50 | ||
17:51
arcady joined
|
|||
TimToady | *Devanagari | 17:51 | |
Unfortunately " | 17:52 | ||
"å " is considered non-numeric... | 17:53 | ||
so would have to be vå ; | |||
no wait, that doesn't work either... | |||
"å "; with quotes would work maybe. | |||
17:56
Coke_ joined
|
|||
xinming | .... | 17:56 | |
TimToady: why not ttf? :-) 110 | 17:57 | ||
17:57
DaGo joined,
xinming_feather joined
17:59
flounder99 joined
18:00
jlhamilton left
|
|||
xinming | TimToady: If you really want some chinese... é is capticalized form for å . which means, é is normally used in check with numbers... and å is a tiny form... | 18:01 | |
but... | 18:02 | ||
xinming doesn't think it's a good idea for people who wish to use perl have to search unicode table or learn how to type Chinese. ;) | |||
KingDillyDilly | Regarding my diff of the DESTROYALL sequence versions (colabti.de/irclogger/irclogger_log/...-04-24,Mon at 12:50), I've received some positive comments from some people on #web. If anyone's interested, they're at sial.org/pbot/16885 along with the negative comments from #perl6. I'm passively looking for a better use for DiffNote than it has, so if there are some minor tweaks that would make it useful | 18:05 | |
Juerd | KingDillyDilly: We already have a great diffing tool. It's called diff :) | 18:10 | |
KingDillyDilly | Saw it. That's why I created DiffNote. | ||
Juerd | What is the added value of DiffNote? | ||
KingDillyDilly | It's just a Diff -Y wrapper. | ||
Juerd | What is the added value of DiffNote? | ||
KingDillyDilly | Line wrapping, easier to see spaces and some newlines because they're dots, file names on top, web based. | 18:11 | |
Juerd | ... | 18:12 | |
I give up | |||
18:12
pdcawley_ joined
|
|||
KingDillyDilly | Something even better that I forgot. :-[ Diff -Y normally leaves something out that I include. | 18:12 | |
Juerd | Hi pdcawley_ | ||
pdcawley_ | Hey there. | ||
How goes? | 18:13 | ||
Juerd | pdcawley_: I'm a bit depressed because people are wasting their time writing web based diff wrappers that do nothing special. | ||
pdcawley_ | Hmm... | ||
pdcawley_ doesn't hate trac enough to do that. | 18:14 | ||
KingDillyDilly | Vertical scroll prevention can be very helpful. | ||
Juerd | And I'm hungry, but without many option for food except McDonald's | ||
KingDillyDilly | Oh, yeah. Diff -Y leaves out entire portions of a line when there's an embedded CR. What's up with that? | 18:16 | |
It returns to the beginning of the line and write the right side over the left side. | |||
Juerd | Honestly, who cares? Nobody uses diff -y, and people who have CRs don't use diff at all... | ||
KingDillyDilly | Ok... | 18:17 | |
Juerd | Yea, that's what CR is supposed to do: return the carriage. | ||
18:18
aeon__ joined
|
|||
KingDillyDilly | But a diff should give you the entire contents, at least of the visible characters. Mine does even more than that. | 18:18 | |
Juerd | Do you know the difference between CR and LF? And why DOS rightfully uses both? | ||
KingDillyDilly | Ditt -y doesn't. | ||
pdcawley_ | One's Carriage Return, and the other is Line Feed. | ||
Juerd | pdcawley: I trust you know this :) | ||
pdcawley_ | Personally, I think dos should have done LFCR, but that may just be because I'm a natural born contrarian. | 18:19 | |
Juerd | LFCR or CRLF is semantically the same. I think DOS should accept both, regardless of what it chooses to output by default. | ||
Did you know that in many places in DOS, it's actually /\r./? | |||
KingDillyDilly | So you're saying diff without my wrapper is just going what's it's told to do by writing over some characters? Ok. Personally, I don't like that. | 18:20 | |
pdcawley_ | Ooh... you could a Bleach equivalent like that. | ||
Juerd | Lazy bastards who wrote the ASM code didn't bother checking the byte after CR in many cases. | ||
pdcawley_ | You'd need *big* files though. | ||
Juerd | I have a 1 TB file of nullbytes. | ||
Thankfully it's fully sparse :) | 18:21 | ||
pdcawley_ | teehee. | ||
My /dev/null is longer than yours! | |||
Sorry, my /dev/zero | |||
18:22
ruoso joined
|
|||
Juerd | But I have several :) | 18:22 | |
KingDillyDilly | I notice that I enter longer lines here than anyone else. Those who have a lot to say enter it on separate lines. I assume that's because you want to prevent lines from being too long horizontally. DiffNote prevents that. Diff doesn't. | 18:24 | |
Juerd sighs and flees to McDonald's | 18:25 | ||
18:25
aufrank joined
|
|||
Juerd pre-emptively puts KingDillyDilly on ignore | 18:25 | ||
afk | |||
theorbtwo | Later. | ||
KingDillyDilly | Good idea, Juerd. Fast food places have short lines. Stay away from those Unix restaurants. | 18:26 | |
Someone teach me. Is it better to not wrap lines in a diff? | 18:27 | ||
pdcawley_ can't type fast enough to use long lines, by the time I've finished typing 'em they're no longer relevant. | |||
18:28
nothingmuch joined
|
|||
theorbtwo | KDD: Diffs have one major purpose, with two subpurposes. | 18:28 | |
The purpose is to show the differences between two evolutions of a code file. | |||
This means that they need to be concise, and they need to be clear. | |||
KingDillyDilly | Someone asked me on Perlmonks why I use such long lines of code. It didn't wrap for him so it was annoying. I don't get it. Use a tool that wraps text. | ||
theorbtwo | ...both to a human and to a computer. | 18:29 | |
KingDillyDilly | Wrapping precludes that? | ||
theorbtwo | We do, KDD. Short lines in code, and in IRC, are a way of chunking things for the eye and mind... something best done by short lines. | ||
Yes, it does. | |||
Write a program that applies patches with wrapped lines. | 18:30 | ||
Now go back in time and write it in 1975. | |||
KingDillyDilly | My table cells delimite lines pretty well. It is optimized for humans though. Not everyone needs a machine readable diff. If you do, politely say so and I won't bother you. | ||
theorbtwo | Table cells? | 18:31 | |
Sounds horrid. | |||
KingDillyDilly | www.polisource.com/diffnote/042406-...yOzX.shtml (careful, it messes with some people's computers) | 18:32 | |
FurnaceBoy | Juerd, "pre-emptively"? the empting has already occurred... | ||
KingDillyDilly | It's just a graphical gif. Nothing horrid. | ||
pdcawley_ | How can you be sure the tool will wrap the lines in sensible place? | ||
And long lines that can't be made shorter are a code smell. | 18:33 | ||
FurnaceBoy | amen | ||
pdcawley_ | Code's way of telling you to write another method. | ||
A graphical gif? | |||
What's one of those when it's at home? | |||
KingDillyDilly | I wrote the wrapping routine. There's a module for it, but I didn't know it at the time, and I hate modules. They're not wrapped in the best places in all cases, but I think it's better than a really, really long line that makes you scroll sideways. | 18:34 | |
pdcawley_ | is that like a textual sentence? | ||
KingDillyDilly | What? | 18:35 | |
aufrank | pdcawley_: I thought it was a conceptual idea | ||
=P | |||
KingDillyDilly | Oh, good...FurnaceBoy. Lets call buu too... | ||
aufrank | </tease> | 18:36 | |
18:37
frederico joined
|
|||
KingDillyDilly | Here's someone elses product: diffmerge.com/ You can attack the author of that when you're done with me. | 18:39 | |
I don't like the term "graphical..." but that's what they're called when they're not at the command line. | 18:40 | ||
And pretty. | 18:41 | ||
aufrank | KDD... I think the thing that threw us is that gif is most commonly known as an image format. That fact makes "graphical gif" sound a little weird. Did you mean something else by gif? | 18:44 | |
KingDillyDilly | Oh. I meant diff. I assume I said "diff" except that once. | 18:45 | |
aufrank | do you get our jokes now? textual sentence? conceptual idea? | ||
KingDillyDilly | Yes. | 18:46 | |
Do I have to laugh? | |||
aufrank | that sort of word play passes as humor around these parts, I'm afraid. | ||
yes, you are required to rofl. or maybe lol. one or the other. or else. | |||
KingDillyDilly | Gaim doesn't allow me to. As you know, I do graphics, not text. | 18:47 | |
But: :-D | |||
Gaim is written in Perl, right? Do a lot of you use Gaim and customize it? | 18:49 | ||
wolverian | please, god, let this end | ||
KingDillyDilly | Maybe it was just that it takes Perl plugins. | 18:50 | |
19:26
froh-doh joined
19:29
larsen joined
19:56
SamB joined
19:59
nothingmuch joined
20:02
axarob joined
|
|||
_bernhard | exit | 20:15 | |
kolibrie | I want to return the captured text and the contents of a subrule within the capture. Is that legal? | 20:17 | |
kolibrie thinks it would be very handy | 20:18 | ||
20:20
weinig joined
|
|||
kolibrie | rule something { ( my text <subrule> ) { return { captured => $/[0], subrule => $<subrule> }}} | 20:20 | |
TimToady | you can return anything you like as the scalar value of a Capture. | 20:22 | |
though in this case it seem like you'd just want to set $<captured> and $<subrule> rather inventing a separate hash. | 20:24 | ||
kolibrie | TimToady: so I should be able to set both $<captured> and $<subrule> and have them both accessible in my match object | 20:30 | |
TimToady | sure | 20:31 | |
kolibrie | very nice | ||
20:52
YetAnotherEric joined
20:58
xphud joined,
xphud left
|
|||
kolibrie | ah ha! I found my $<subrule> thingy embedded in my $<capture> thingy! | 21:10 | |
kolibrie is glad he doesn't have to puzzle about that all night now | |||
21:32
zgh joined
|
|||
KingDillyDilly | Is evalbot a #perl6 exclusive? | 22:07 | |
I'd like to play with it. | |||
theorbtwo | KingDillyDilly: Check out a copy of pugs. Compile it. Run it to your heart's content. | 22:09 | |
22:10
KingDillyDilly left
|
|||
theorbtwo | For that matter, there's a copy of evalbot itself somewhere in examples/, but you get a much more powerful environment just by running ./pugs. | 22:10 | |
22:10
KingDillyDilly joined
|
|||
KingDillyDilly | Funny...there was an evalbot conversation in #perl when I asked that. I'm surprised evalbot isn't in #perlcafe. | 22:12 | |
theorbtwo | KingDillyDilly: Seriously, if you want pugs, you know where to find it. If you can't follow the directions I'm sure you can find online, ask questions about them. | 22:14 | |
22:18
Limbic_Region joined
|
|||
KingDillyDilly | I've had bad experiences with software that doesn't have an installer, and I don't think I ever compiled anything successfully. I just wanted to play. I'll stick to Monkeysnowfight. | 22:19 | |
22:21
jsiracusa joined
|
|||
theorbtwo | KDD: Pugs isn't really release-quality software presently, and is unlikely to be so for some time. | 22:24 | |
arcady | it does have an installer though | ||
it's called apt-get | |||
Limbic_Region | audreyt sleeping? | 22:25 | |
theorbtwo grins. | |||
Limbic_Region | well - is she pretending to sleep at least? | ||
she mentioned earlier that 6.4.1 isn't mandatory but perl Makefile.PL aborts outright with 6.4.0 | 22:26 | ||
Limbic_Region is upgrading now | |||
but I wanted to sanity check the earlier comment | |||
KingDillyDilly | I thought for a minute that evalbot might be for Perl 5, but it would make sense to have that here. I see there's a p5evalbot in perlcafe, so I'll play with that. Don't want to learn Perl 6. | 22:27 | |
(wouldn't) | |||
theorbtwo | Then what are you doing here? | 22:28 | |
KingDillyDilly | I find stuff to do here somehow. | 22:29 | |
22:29
pen1 is now known as penk
|
|||
KingDillyDilly | I'll probably be kicking the habit though. | 22:29 | |
Juerd | KingDillyDilly: This is not a channel for general hanging around. If you don't know why you're here, please leave. Feel welcome to return when you find a purpose that has to do with you wanting to learn (and hopefully be involved in) Perl 6. | 22:34 | |
KingDillyDilly | Juerd: Shut up | 22:35 | |
Juerd | KingDillyDilly: No, but thanks for asking. | ||
22:40
Khisanth joined
22:43
cdpruden joined
22:52
zgh joined
23:05
Odin-LAP joined,
Odin- joined
23:22
Quell joined
23:23
nowhereman joined
23:30
axarob joined
23:38
FurnaceBoy is now known as FB|afk
23:47
reZo joined
23:48
mako132_ joined
23:49
axarob left
23:51
zgh joined
|
|||
Limbic_Region | perlbot nopaste | 23:51 | |
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "Limbic_Region" at 24.35.57.240 pasted "audreyt - Win32 build failure" (9 lines, 295B) at sial.org/pbot/16886 | 23:56 | |
Limbic_Region | got the backtrace | 23:57 | |
isolated problem | |||
not sure how you want to address |