100 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m Set by iblech on 22 March 2005. |
|||
ingy | hola | 01:05 | |
Limbic_Region | is autrijus aware of rt.cpan.org/NoAuth/Bugs.html?Dist=Perl6-Pugs | 01:13 | |
theorbtwo | Hm, IIRC, bugs against your CPAN distros email you unless you tell it not to. | 01:14 | |
Limbic_Region | oh - good | 01:15 | |
means no one has ever reported any bugs against Tie::Hash::Sorted ;-) | |||
theorbtwo isn't that sure. | 01:16 | ||
Limbic_Region is sorry he missed today's productivity | 01:17 | ||
I was stuck in marathon meetings from hell all day | |||
theorbtwo | Uff. | 01:19 | |
I feel for you man. | |||
Schwern | Ugg, darcs repo still not compiling. | 01:27 | |
Chasing modules from: src/Main.hs | |||
src/Main.hs: | |||
Can't find module `Compile' | |||
(use -v to see a list of the files searched for) | |||
make: *** [pugs] Error 1 | |||
src/Compile* didn't get imported into the darcs repo | 01:28 | ||
theorbtwo | Use the SVN instead? | 01:31 | |
Schwern | Not the point. :) | 01:32 | |
jabbot | pugs - 1031 - Added examples/golf/tsanta.p6 (p6 versio | 01:43 | |
pugs - 1032 - reorganizing the FileSpec module, I did | 02:03 | ||
flw ? | 03:48 | ||
flw /me | |||
Schwern | Hey, can I be horrified by $?CALLER::CALLER::CALLER::POSITION ? | 04:03 | |
both by $?CALLER::CALLER::CALLER:: and by POSITION | 04:04 | ||
I don't even know what $? means | 04:05 | ||
autrijus | Schwern: $?FOO is just a variable | 04:25 | |
that is usually read only | |||
$PACKAGE::?FOO does not work | 04:26 | ||
it's spellled as $?PACKAGE::FOO | |||
so there you have it. | |||
codesnik | ew | 04:28 | |
autrijus | better suggestions? | ||
codesnik | autrijus: i didn't considered cons and pros.. | 04:29 | |
but what about PACKAGE::$?FOO | |||
assuming sigil is a part of name, this scheme don't involve any magic | |||
autrijus | true, it just means a little lookahead | 04:30 | |
p6l? :) | |||
codesnik | what? | ||
jabbot | codesnik: what is supposed to happen automagically | ||
codesnik | jabbot, yeah, still.. still.. dunno, it looks more sane and logical | 04:31 | |
jabbot | codesnik: Please go on. | ||
codesnik | we either have sigils as some kind of data-type-purpose-whatever mark | 04:32 | |
either as part of name, just a convention | |||
autrijus | p6l means, "bring this suggestion to perl6-language" ? :) | 04:33 | |
codesnik | autrijus: already did | ||
autrijus | k. | ||
codesnik | two or three months ago, no respond:) | ||
autrijus | that probably means it was considered even longer before | 04:34 | |
and was resolved to not do that. | |||
autrijus was not around for long, so can't remember any of this | |||
codesnik considers all such desision as some rudimentary perl5 habit | 04:35 | ||
luqui | about PACKAGE::$?FOO... we thought about that at one of the design meetings | ||
and agreed that it was more consistent | |||
but decided against it | |||
codesnik | why? | ||
luqui | for linguistic purposes | ||
codesnik | oh my | ||
autrijus | luqui: elaborate? | 04:36 | |
luqui | Sir Autrijus Tang, not Autrijus sir tang | ||
It's always sigil package name, even though the name includes the sigil in the symbol table... | 04:37 | ||
partly historical, partly because we want "this is a variable" out front where it's easy to see | |||
autrijus | so then secondary sigils just follows | ||
for consistency's sake. | |||
luqui | yeah, $Foo::?BAR would be very strange | ||
(but then again, so would everything else we've been discussing) | 04:38 | ||
autrijus | perl 6 is very strange. | ||
Alias_ | Dangerously strange at times | ||
But then if it means we can access CPAN from python, I'm totally cool with it | |||
autrijus | Alias_: that day may be closer than you thought :) | 04:39 | |
codesnik | one who learn perl6 would need to make his brain inside out. that's good, when it for sense, but in *that* case, language need to make it inside out again | ||
autrijus | Alias_: you saw --runparrot? | ||
Alias_ | I have far more allegiances to CPAN than to perl itself | ||
Although I really really like perl | |||
autrijus | hear hear. | ||
<- won't be using perl if not for cpan | |||
Alias_ | It would just be a pity to throw away so much code | ||
luqui | useful, well modularized code. | 04:40 | |
autrijus | that occasionally even works | ||
Alias_ | well testing, well documented... etc etc | ||
tested | |||
... for the most part | |||
But then I imagine all of the top 10 CPAN people are in a similar position | |||
luqui | (isn't autrijus a top 10?) | 04:41 | |
Alias_ | autrijus is 1. | ||
luqui | oh, cool | ||
Alias_ is 4-6 depending on the calculation method | |||
luqui steps into the background for his game design call | 04:42 | ||
Alias_ | But all of the top 10 are now at 50 packages or higher | ||
obra | game design? | 04:43 | |
autrijus | mm, which means we account for 20% of the module list | 04:44 | |
codesnik | you know what. how python people could access all this sigilled stuff? | 04:45 | |
or whatever else parrot based language | 04:46 | ||
autrijus | they do it by using the sigilless interface | ||
so scalars are called without "$" | |||
arrays has this a_ prefix | |||
or something | |||
codesnik feel some little unidentified doubts | 04:47 | ||
cm | the doubt starts with p.. and ends in ..arrot? | 04:50 | |
autrijus | pizza_jar_cannot_rot? | 04:51 | |
err, doesn't end in arrot. | |||
cm | yeah, you lose :) | ||
autrijus | pizzajarrot then. | ||
cm | :| | ||
you win. | |||
ayrnieu | pear-soup-with-carrots | 04:52 | |
autrijus | "with parrot, we all win!" | ||
codesnik | you win and i'll have a pizza, all happy | ||
autrijus | yay. | 04:53 | |
cm | donut | 04:54 | |
codesnik | i have strange feeling. like if i should go to psychiatrist, sit on sofa, and tell him all my perl6 expectations. | 04:55 | |
cm | sounds like fun | 04:56 | |
codesnik | lique: a bit late comment, but "sir autrijus tang" isn't a good example. | 05:13 | |
we have: a name, a sigil, a package | 05:14 | ||
they could be mapped: name=>name, of course; package=>surname, place of birth(which is the same, basically); sigil is the most strange part. | 05:15 | ||
proffession? | |||
autrijus | Ms., Mr., Prof., | 05:18 | |
etc. | |||
codesnik | if we going to have linguistic parallels, then, it could look like: Var Module, the $; or: $Var from Module | ||
i think it isn't something we should look for linguistic parallels, | |||
autrijus | the idea I think is for hinters to occur first. | 05:19 | |
@?PKG::foo | |||
the @ is context hinter | |||
? is scope/effect hinter | |||
those things are more "important at first glance" than the package name. | |||
codesnik | it was hinter. now it's more the part of name | 05:20 | |
but.. | |||
autrijus | it was the part of name that is the hinter | ||
codesnik | if $location eq 'PKG::' | 05:23 | |
how we could write @?PKG::foo | |||
Schwern | For the record, I wasn't horrified by $? I was horrified by the CALLER::CALLER::CALLER::POSITION part | 05:39 | |
obra | sure. the previous version of that code actually propagated CALLER::POSITION all the way down | 05:41 | |
which was really bloody ugly before we had named params | |||
it made the whole API insanely baroque | |||
codesnik | would something like $?::(caller(3))::POSITION work in perl6? | 05:42 | |
jabbot | pugs - 1033 - Added my name | 05:43 | |
obra | for the record, I agree that a hardcoded depth there is the wrong thing longterm | 05:44 | |
Alias_ | CALLER::CALLER::et al is stupud | 05:48 | |
ayrnieu puzzles at: my @a = "hello" ~~ rx:perl5/[el]/; @a[0] == @a # bool::true | 05:51 | ||
ayrnieu plans to reread everything. | 05:52 | ||
on the bright side, @a<0> crashes pugs =) | 05:53 | ||
Schwern | Alias: Exxactly. | 05:56 | |
I'd expect caller(3){POSITION} or something | |||
gaal | ayrnieu: what are you getting? | ||
ayrnieu | maybe not exact: Fail: cannot cast into [VPair]: VArray (MkArray [VInt 1]) | 05:58 | |
gaal | that's not a crash, that's a syntax error :) | ||
ayrnieu | with "(\n" output. | ||
that is also a crash, gaal =) | |||
gaal | to your thinking, why is this syntactic and what should it mean? | 06:00 | |
ayrnieu | I don't think you are following. Consider: sial.org/pbot/8517 | 06:01 | |
I realize that what crashes pugs happens to be a syntax error. | 06:02 | ||
gaal | ah, *that* is a crash. :) | ||
./pugs -e 'my @a=(1); eval "@a<0>.say"; "still alive".say' | 06:03 | ||
wanna add a test to t/pugsbugs? | 06:04 | ||
ayrnieu | Sure. | ||
Khisanth | ayrnieu: so you finally got svk working? | 06:05 | |
gaal | thanks! | ||
ayrnieu | Khisanth - no -- I'm just using svn. | ||
jabbot | pugs - 1034 - * Sample inline SHA1 module | 06:13 | |
gaal | ! | 06:16 | |
ayrnieu | ? | ||
gaal | though now that inlining from one language to another is becomming common, does the distinction between still src/ and lib/ make sense? | 06:17 | |
ayrnieu, I was referring to ++autrijus' latest commit. | |||
autrijus | rehi lambdacamels | ||
gaal: for C we're still going to have include/ etc | 06:18 | ||
cm | /\ /\ /o+_ | ||
autrijus | gaal: I think it makes sense to respect each language's culture | ||
gaal: if you don't want src/ just put all haskell code in DATA block | |||
=begin DATA sha1 | |||
...haskell code | |||
=cut | |||
and | |||
Alias_ | ugh | ||
autrijus | inline :Haskell(%=DATA<sha1>) | ||
gaal | sure, yes; if you're taking an existing module and "just" giving bindings for it | ||
Alias_ | actually... not so bad as putting shiteloads of actual data in it | ||
and far better than encoding data as perl | 06:19 | ||
autrijus | yes. | ||
I think it's a legitimate use. | |||
speaking as a GW-BASIC refugee that remembers DATA | |||
gaal | what if you have a projectof your own, want to write some of it in X and some in Y | ||
ayrnieu finally realizes that Test.pm's lives_ok is listed under FUTURE PLANS. | 06:20 | ||
gaal | ayrnieu: heh. though it would not have helped you anyway in this case. | 06:21 | |
autrijus | so, I hope the inline primitive is ok with you folks. | ||
ayrnieu | oh, I just need eval =) | 06:22 | |
autrijus | (ingy just arrived a few hours ago and we are hacking this) | ||
gaal | tres cool, autrijus | ||
autrijus | what does tres mean? :) | ||
obra | very | ||
ayrnieu | In French. | ||
gaal | ayrnieu, the test will pass when the hard parsefial is fixed, but until then you'll always get a crash | 06:23 | |
autrijus | ah. | ||
obra | "tres chich" | ||
chic | |||
gaal | not pronounced TRAY. :-p | ||
add syntax to have the builtin slurp from a file maybe? | 06:25 | ||
....or a url? :) | |||
autrijus | slurp() already does a file | 06:26 | |
no? | |||
pugs -e 'say slurp "README"' | |||
worksforme. | |||
you are free to add url support in Prim.hs. | |||
gaal | sure--i meant for inline | ||
autrijus | what's wrong with "inline :Haskell(=<file>)" ? | 06:27 | |
I like the consistency. | |||
i.e. not doing an -e test on the parameter string | |||
working on Foreign.hs now. | 06:28 | ||
To the Sea, to the Sea! The white gulls are crying, | |||
The wind is blowing, and the white foam is flying. | |||
West, west away, the round sun is falling. | |||
Grey ship, grey ship, do you hear them calling? | |||
gaal | hmm, yes, that's just dandy | ||
(i'd forgotten =<file> worked on a filename too, silly me) | 06:31 | ||
ayrnieu | OK, would this work for a test? sial.org/pbot/8519 | 06:34 | |
autrijus | pugs is not always in path | 06:35 | |
neither is that test always interpreted | |||
what does S02 say | |||
about $^X? | |||
hrm didn't say anything about it. | |||
what should happen is for me to always make parsefail trappable. | 06:36 | ||
ayrnieu | ah, I see that you say what to do in t/README | 06:39 | |
autrijus | I'll call it External.hs instead of Foreign.hs | 06:45 | |
because haskell already has a Foreign call interface and I don't want to confuse myself :) | 06:46 | ||
ayrnieu | This should work: sial.org/pbot/8520 | 06:51 | |
seeing as eval currently returns undef on syntax errors, as in: eval "1>>>3" | 06:52 | ||
gaal | ayrnieu++ # test case | 06:53 | |
better add a description on the ok line too | |||
jabbot | pugs - 1036 - SHA1 should be ignored until it works | ||
pugs - 1035 - * External.hs landed. | |||
gaal | though, hm, in this case i can't think of a good one :) | 06:54 | |
ayrnieu | sial.org/pbot/8521 | ||
autrijus | ayrnieu: add yourself to AUTHORS. | ||
gaal | i meant in the ok() itself as the second parameter. but when this is in a file of its own it's pretty self-documenting. | 06:55 | |
gaal has to go now | 06:56 | ||
see 'ya. | |||
autrijus | see ya! | ||
ayrnieu | thanks for the help, gaal =) | ||
gaal | thank you for the bug report :) | ||
& | 06:57 | ||
ayrnieu | autrijus - what's my password, to commit the test and the AUTHORS change? | 06:59 | |
autrijus | ayrnieu: your email? | 07:00 | |
(so I can make you a committer) | |||
ayrnieu | [email@hidden.address] | ||
autrijus | check your mail | 07:02 | |
crysflame | morning, autrijus | 07:03 | |
obra | morning? it's 3pm | ||
crysflame | aie | 07:04 | |
crysflame learns | |||
+8? | |||
ayrnieu | OK, changes commited =) | 07:05 | |
masak | the internet time is @337 .beats :) | 07:06 | |
www.timeanddate.com/worldclock/ | |||
ayrnieu | ah, good to know that 'internet time' still exists. | 07:07 | |
masak | i have it on my watch | ||
never used it for anything :) | |||
except pissing people off | |||
"what time is it?" "uh, 338" | 07:08 | ||
jabbot | pugs - 1038 - added self | 07:23 | |
pugs - 1037 - added parsefail test | |||
crysflame | masak++ # heh | 07:24 | |
nothingmuch | morning | 07:48 | |
masak | morning? it's @367 :) | 07:51 | |
nothingmuch | internet time is soooo 1999 | ||
;-) | |||
nothingmuch is going to do currying, and then see what he can do about those 100 subtests | 07:52 | ||
masak just realized that his watch actually is from 1999 ;) | |||
08:20
Grrrr is now known as Gruber
|
|||
nothingmuch thinks he got it, and made bindParams much more readable in the process | 08:36 | ||
a funny side effect is that given: | 08:37 | ||
sub foo ($x, *@slurp); | |||
sorry | 08:38 | ||
sub foo ($x, +%slurp) | |||
foo(x => "1", x => "2") | |||
will yield "1" in $x, and x => "2" in %slurp | |||
08:39
cnhackTNT is now known as cnhackTNT|away
|
|||
nothingmuch | we have embedded p5? my god... | 08:40 | |
autrijus | we will also have embedded haskell in another hour. | ||
and embedded C. | 08:41 | ||
nothingmuch | ooh | ||
autrijus | see ext/SHA1/ | ||
pugs is suddenly very socialable with other languages. | |||
nothingmuch | my time is very limited | ||
so i will err, delay | |||
autrijus | sure! | ||
nothingmuch | haskell's type system is soo good | 08:43 | |
the day before | |||
yesterday i thought it was sadistic | |||
but it's becoming so much more coherent now | |||
not yesterday, yesterday i did nothing at all | 08:44 | ||
obra | "perhaps the pugs needs to be fixed" | ||
nothingmuch | autrijus: how tight is p5 integration? | ||
autrijus | nothingmuch: not very tight at all | ||
it just does simple eval() that preserves context | 08:45 | ||
no value transformation yet | |||
nothingmuch | do unresolved calls go to p5? i bet the other way around is much harder | ||
ah | |||
autrijus | eval_perl5() | ||
is the only bridge right now | |||
once we have value casting then we have Inline::GHC. | |||
and Inline::Pugs. | |||
imagine the sickitude! | |||
nothingmuch | i would love Inline::GHC | ||
autrijus | sure. it is actually not that hard | ||
nothingmuch | i think haskell will be very very useful for me, once i "get it" | ||
autrijus | just not on my priority list | ||
if you have a larger window of time we may pair on it | 08:46 | ||
but not this week | |||
nothingmuch doesn't know Inline::, or C (well, that is), or p5 guts, or ghc guts | |||
so i doubt i | |||
i'm useful =) | |||
oh compile already! i want to see if it's worked! | |||
nothingmuch rereads the sentance, decides that it's wrong, and then changes his mind again. | 08:47 | ||
autrijus | eh.? | ||
nothingmuch | it's worked | ||
it has worked | |||
but i thought it was wrong for a second | |||
well, this is an improvement | 08:48 | ||
pairs not working yet? | 08:49 | ||
autrijus | not working how what? | ||
nothingmuch | in params | 08:50 | |
autrijus | I think it works and is parsed for nameds | ||
nothingmuch | hmm | ||
autrijus | but it gets passed in not as .val | ||
but as a pair | |||
which is wrong and caused obra problem | |||
so seeing you're already there, maybe you can attempt a fix | |||
nothingmuch++ # in advance | |||
nothingmuch | well, passing in as a pair makes sense to me | ||
how was it a problem? | |||
and how will a val look in a pair? | 08:51 | ||
autrijus | sub foo ($bar) { say $bar } | ||
foo( bar => 1 ); # needs to print 1, not "bar1" | |||
nothingmuch | right | ||
autrijus | you can get a val out from a pair obj by doing | ||
nothingmuch | bindSomeParams will get a pair? | ||
autrijus | snd . vCast | ||
nothingmuch | i can unwrap that | ||
autrijus | yeah | ||
nothingmuch | ok | ||
what is unPair? | |||
autrijus | it matches the args | 08:52 | |
to see if they are pairs | |||
nothingmuch | map unPair foo | ||
autrijus | and if yes, returns k/v pairs | ||
nothingmuch | k/v pairs? eh? | ||
hold on, i need to grok bindNames | 08:54 | ||
i don't understand this: (bound, exps') = foldr doBind ([], []) (map unPair exps) | 08:55 | ||
autrijus | ok | ||
nothingmuch | mpa unPair exps | ||
what does that return? | |||
autrijus | it returns a list of k/v | ||
nothingmuch | a list of.... | ||
which is? | |||
[ key, val, key, val ]? | |||
autrijus | unPair :: Exp -> (String, Exp) | ||
so | |||
nothingmuch | oh | ||
autrijus | [(k, v), (k, v)] | 08:56 | |
nothingmuch | it returns a list of haskell pairs | ||
ok, that's good | |||
autrijus | yes. | ||
now doBind takes that | |||
and process each in turn | |||
starting from ([],[]) | |||
and fill in things. | |||
(assuming you grok folr) | |||
foldr | |||
nothingmuch | i sort of do | ||
autrijus | foldr replaces the final [] of a list with an init value | 08:57 | |
in this case ([],[]) | |||
and replaces all the intermediate : of a list with a function | |||
in this case doBind | |||
and evaluate the expression. | |||
nothingmuch | yah | ||
so doBind is getting a pair of empty arrays, and a value of the list | 08:58 | ||
and then it's getting on the next iteration, the value it returned last time | |||
and the next value from the list | |||
of haskell kv pairs | 08:59 | ||
ok, and doBind supposedly finds a param whose name is the fst of that pair | |||
and then makes a new pair, (foundParam, snd pair) | |||
right? | |||
and accumilates things it can't bind in exps | |||
Just prm <- find ((name ==) . tail . paramName) prms | 09:00 | ||
will run the succeeding line only if there is such a param | |||
which will prepend (prm, exp) : bound | |||
read : as to | |||
and if find has a Nothing | |||
then exp is tacked on to exps instead | 09:01 | ||
right? | |||
i think unPair is called too late | |||
it should be done in the begining of bindSomeParams | |||
ah | 09:05 | ||
not true, because isPair is isVPair, actually | |||
autrijus: i don't see where the problem is | |||
oh crap, i see what's going on | 09:13 | ||
sub foo ($x, $y); | |||
foo(y => 4); | |||
$x = y => 5; | |||
i have no clue where to stick a trace | |||
oh! i think i see | 09:14 | ||
(name ==) | |||
because it's a perl pair | |||
then name won't really be a string | |||
it's an exp | |||
i think | |||
so that never is true | |||
unless it's supposed to generate a type error | |||
args: [App "&infix:=>" [Syn "cxt" [Val (VStr "Str"),App "&infix:~" [Val (VStr "x"),Val (VStr "")] []],Val (VInt 1)] []] | 09:16 | ||
this will attempt to bind x => 1 | |||
eventually unPair should yield (k, v), right? | |||
which in this case applies infix ~ to [val (VStr "x") ... ] | |||
and applie s the context to that | |||
and applies infix => to "x", and Val (VInt 1) | 09:17 | ||
and unPair's 'vCast k' is supposed to make all that happen, right? | |||
why isn't it? | |||
i get, in the resulting binding: | 09:18 | ||
[(Param {...paramName = "$x"...}, App "&infix:=>" [Syn "cxt" [Val (VStr "Str"),App "&infix:~" [Val (VStr "x"),Val (VStr "")] []],Val (VInt 1)] []), ...] | |||
which means that the pair is not evaluated at all | 09:19 | ||
jabbot | pugs - 1039 - supply default values only when vinalizi | 09:23 | |
nothingmuch | s/vinalizing/finalizing/... sorry! | 09:28 | |
jabbot | pugs - 1040 - * sample makefile | 09:33 | |
Juerd | "Larry | 09:37 | |
hemmed for a bit, but decided to stick with true in the end " | |||
That's not the way I read the true thread | |||
nothingmuch | me neither | 09:39 | |
Schwern | That's not the way I read it either. I didn't read it. | 09:40 | |
It would be more like " " | 09:41 | ||
rgs | hey Schwern | ||
Schwern | Hey | 09:42 | |
jabbot | pugs - 1041 - * generated binding file | 09:43 | |
firzen | Does the bin package ok now? | 09:48 | |
Is the win32 bin package ok now? | 09:53 | ||
lumi_ | Hi, does anybody else have insane problems with t/magicals/caller_pos.t? | 09:54 | |
nothingmuch | lumi_: insane? | 09:59 | |
i sort of grok that code, i might be able to help | |||
lumi_ | Well | ||
clkao | nnunley! | ||
lumi_ | The tests never finish, because that one just takes all the memory it can get | 10:00 | |
nothingmuch | ah | ||
i'll check | |||
shit! i comitted traces | |||
lumi_ | I saw it grow to 600m before I killed it, I don't think it was planning on stopping | ||
nothingmuch | i'll try to figure out what's going on | 10:01 | |
latest R? | |||
nnunley | clkao: | ||
lumi_ | Yes | 10:02 | |
nnunley | clkao: I made it here! | ||
clkao | nnunley: are you being treated well? | ||
nnunley | clkao: Only minor hazing. :) | ||
lumi_ | Looks like it dies in 2nd test | ||
jabbot | pugs - 1042 - Remove calls to trace (sorry everyone!) | 10:03 | |
nnunley | I leave for a couple of weeks and miss the bootstrap phase of pugs, almost | 10:04 | |
lumi_ | The indirect interpolation, whatever that means, works | ||
Schwern | Norm! | 10:05 | |
nnunley | Schwern! | 10:06 | |
lumi_ | IT seems to have stopped doing that, could it have been the traces? | 10:17 | |
That's passing strange | |||
autrijus | nothingmuch: it's broken yes. | 10:23 | |
unPair/isPair that is. | |||
jabbot | pugs - 1043 - * require_haskell() landed. dependency a | ||
autrijus | so, eval_haskell() will come next. | 10:26 | |
then a GHC.pir. | |||
which completes the runtime side of bootstrapping. | |||
Juerd | autrijus: How would you describe the outcome of the s/true/better name/ thread? | 10:30 | |
autrijus | Juerd: the outcome is that it seems that true() is a better name. | ||
Juerd | autrijus: The summarizer thinks larry stuck with true, while my interpretation is that we're having so now. | ||
Oh. | |||
Weird. | |||
autrijus | and pugs is back to true(). | ||
(6.0.12) | |||
Juerd | I think I missed some messages then | ||
autrijus | that may be the case | ||
Juerd | What were the reasons for true? | 10:31 | |
autrijus | I don't really want to think about it :) | ||
Juerd | I see | ||
I'll try google groups tonight | |||
autrijus | nod | 10:32 | |
jabbot | pugs - 1044 - local Makefile.PL | 10:33 | |
autrijus | hi Jonathan__! | 10:34 | |
your binary build of pugs seems to be borken | |||
Jonathan__ | Hi | 10:35 | |
Yeah, it seems that the build overall is broken on Win32 at the moment. | 10:36 | ||
autrijus | uh? | ||
it works for me. | |||
luqui | *bling* (that's an appearing noise) | ||
pasteling | "mj" at 147.229.221.107 pasted "WinXP, nmake failed" (33 lines, 1.5K) at sial.org/pbot/8528 | 10:37 | |
Jonathan__ | Just did latest checkout and... | ||
Could not find module `Internals.RuntimeLoader': | |||
autrijus | oops, forgot to add | 10:38 | |
fixed. | |||
try again? | |||
r1046 | |||
mj | seems ok | 10:39 | |
autrijus | cool! | ||
I'll bbiab. | |||
Jonathan__ | Yup, it's building now. Working build should hit my site in a minute or so. :) | ||
autrijus | woot. | 10:40 | |
luqui | is it just me, or was that pugsbugs 'foo\' test script very broken? | 10:41 | |
and is it still... | 10:42 | ||
jabbot | pugs - 1046 - * add missing module | 10:43 | |
pugs - 1045 - * add require -version support stub | |||
mj | nmake done, some warnings: In function `svLJ_entry': ghc3624.hc:829: warning: implicit declaration of function `initLinker' . . . | 10:44 | |
nothingmuch | autrijus: so which is broken? | ||
isPair? or unPair/ | |||
and how? | 10:45 | ||
autrijus | I'm not quite sure :-/ | 10:46 | |
nothingmuch | how would I go about testing it? | ||
i could ghci -Isrc src/Bind.hs, but what would I feed them? | |||
luqui | I deleted pugsbugs/string_escaping.t . It was testing incorrect semantics (and the correct ones are already tested plenty) | 10:47 | |
autrijus | luqui: thanks | 10:48 | |
mj: known problem, don't worry 'bout it | |||
nothingmuch: just "svn up", "make ghci" | |||
and type | |||
eval "sub foo (+$x) { say $x } foo(x => 1)" | 10:49 | ||
nothingmuch | i could take the outputs of Show | ||
autrijus | that will then output "x1" | ||
this is wrong | |||
we want 1 | |||
that's it. | |||
nothingmuch | yeah, i know | ||
i broke it down further | |||
autrijus | good. | ||
nothingmuch | but it's hard for me to say whether the VCast in unPair is not evaling somehow | ||
or if isPair is broken, and thus unPair is not called at all | 10:50 | ||
but it's one of those problems | |||
autrijus | just trace and see? :-/ | ||
<- needs to work on $real_work right now | |||
nothingmuch | i'll try | ||
but it's a bit hard for me to trace | |||
it being haskell and all that | |||
autrijus | sorry for not being very helpful | ||
trace() is your friend | 10:51 | ||
we have it imported in Internal.hs | |||
jabbot | pugs - 1048 - * make ghci | 10:53 | |
pugs - 1047 - Removed bogus bug test. | |||
nothingmuch | ook, i introduced some crap | 10:55 | |
slrupy bindings should be appended | |||
smoetimes they appear twice | |||
nothingmuch will fix | |||
tomyan | autrijus: you probably know this, but pugs now runs fine on linux on sparc | 11:01 | |
nothingmuch | how do i "do" an exp? | 11:02 | |
autrijus | tomyan: woot. | 11:03 | |
nothingmuch: do? | |||
tomyan | yeah | ||
jabbot | autrijus: do is pretty magic, yes | ||
autrijus | val <- evalExp exp | ||
nothingmuch | errm | ||
that's my last guess at a solution | |||
ok | 11:04 | ||
unPair (App "&infix:=>" k exp) = (vCast (castV k), exp) | |||
how do i DWIM? | |||
do i unpair () = do | |||
autrijus | what do you want k to become? | ||
nothingmuch | a String | ||
autrijus | you can also make unpair monadic. | ||
nothingmuch | should unpair be evalExp'ing? | ||
autrijus | str <- fromVal k | ||
err. | |||
nothingmuch | i think this is because of that fix | ||
autrijus | let me think real quickly | 11:05 | |
yes. | |||
nothingmuch | that autoquotes lefthandside | ||
autrijus | it should do that. | ||
it should evalExp k. | |||
nothingmuch | unPair (App "&infix:=>" k exp) = do | ||
kVal <- evalExp k | |||
return (vCast kVal, exp) | |||
right? | |||
do i just 'import Eval' at the top? | 11:06 | ||
Module imports form a cycle for modules: | |||
Eval Bind | |||
=/ | |||
does Bind.hs need to be merged with Eval.hs? | 11:07 | ||
? | 11:08 | ||
autrijus | er. uhm. | 11:09 | |
nothingmuch | #haskell people say i'll need to merge | 11:12 | |
oh, shapr is here, he said that =) | |||
autrijus | no. | ||
you can do this instead | |||
move evalExp into AST. | |||
nothingmuch | oh my | ||
autrijus | that's the correct course of action. | ||
just move it from Eval to AST. | 11:13 | ||
nothingmuch | ok, why not =) | ||
autrijus | it's nothing much =) | ||
nothingmuch | it's bound to do less damage than i already have ;-) | ||
shapr | punny | ||
nothingmuch | putting it just above findSym | 11:14 | |
it looks err, like a logical place | |||
nothingmuch noticed he is very hesitent | |||
'err' and 'uhm' all the time | |||
shapr | aha - www.haskell.org/ghc/docs/latest/htm...-recursion | 11:16 | |
yup, just as troublesome as I remember. | 11:17 | ||
nothingmuch | hmm | 11:21 | |
Inferred type: Eval Val | |||
how do i make that into a Val? | |||
shapr | eval it? | 11:22 | |
shapr is guessing | |||
nothingmuch | that's after i've evalExp'ed it =) | ||
11:31
shapr is now known as TheShapr
11:34
TheShapr is now known as shapr
|
|||
mj | win32 semm ok - r1048, WinXP, nmake, ActivePerl - 100/2809 subtests failed, 96.44% okay. | 11:39 | |
nothingmuch | 100 subtests is the correct number, IIRC | 11:40 | |
jabbot | pugs - 1049 - r15205@kybristedi: gugod | 2005-03-23 | 11:43 | |
gugod | stevan: about ghc version discussed early , turns out it was my fault. I didn't noticed that I have some local modification which make compilation failed. ghc 6.4 compiled fine | 11:46 | |
nothingmuch | what is the syntax i am trying to get? | 11:49 | |
unPair pair@(App "&infix:=>" _ _) = do | |||
i want pair to be that type | |||
shapr | Oh that was the SchwernLikesDarcs guy. | 11:53 | |
nothingmuch | yup | ||
he's really a perl guy | |||
11:53
cnhackTNT|away is now known as cnhackTNT
|
|||
nothingmuch | www.perl.org/yapc/2002/movies/themovie/ | 11:54 | |
he's the guy talking about farmers | |||
kungfuftr | is there a way to get a list of todo tests? | 12:25 | |
nothingmuch | grep -r todo_ t/ | ||
kungfuftr | =0) | 12:26 | |
well... grep -r todo_ t/ | grep -v .svn | 12:27 | ||
2113 apparently | |||
nothingmuch | =) | 12:28 | |
shapr | kungfuftr: www.scannedinavian.org/~shae/kung.fu.jpg | 12:29 | |
nothingmuch | wtf?! | ||
shapr | sorry, completely off-topic | 12:30 | |
nothingmuch | no, i'm really curious =) | ||
do you know the origin of that pic? | |||
shapr | nope | ||
nothingmuch | it just doesn't make sense | ||
oh well | |||
shapr | looks cute, I dunno if it's gimp'd or not. | 12:31 | |
kungfuftr | anyone know if mugwump made it to tapei yet? | 12:33 | |
nothingmuch | gah! | 12:34 | |
how do you make an anything out of an Eval Val? | |||
elmex | oi | 13:12 | |
jabbot | pugs - 1051 - examples.t works now. | 13:13 | |
pugs - 1050 - Added some new tests. | |||
Limbic_Region | iblech - you about? | 13:18 | |
iblech | Limbic_Region: ? (don't understand) | 13:20 | |
Limbic_Region | oh - was just asking if you are around | 13:21 | |
iblech | Limbic_Region: ah, yes, I am :) | ||
Limbic_Region | japhy recently was on a quest to pick n distinct colors and I remember the screen shot from iblechbot | 13:22 | |
he has since solved his problem, but I wanted to ask what you used anyway (in case it was different) | |||
nothingmuch | that's a nice problem | ||
iblech | Yes, the color algorithm iblechbot uses is different | 13:23 | |
nothingmuch thinks about distributing based on distance | |||
iblech | First, the whole log is read to find out which nicks were online at the same time | ||
Limbic_Region | iblech - is the source public? | ||
iblech | Yes, an old version is online ATM, will upload the current one, a sec. | 13:24 | |
Limbic_Region | www.perlmonks.org/index.pl?node_id=441359 # is where japhy posted what he used, feel free to reply if you have some insight (which I thought you might) | ||
iblech | m19s28.vlinux.de/iblech/iblechbot.tbz2 -- the interesting parts are weblog.pl (the webserver) and Heinz/Colors.pm | 13:27 | |
Then, an interference graph is created, bases on the information of step (1) | 13:28 | ||
And this interference graph is then collapsed to the minimal number of colors necessary | |||
Limbic_Region | thanks - will let japhy know if you don't post | 13:29 | |
iblech | www.perlmonks.org/index.pl?node_id=384347 might be interesting, too | ||
I'll do | |||
Limbic_Region | iblech - I remember that thread but I didn't remember you as the author | 13:36 | |
elmex | yaho, wanna get some | 13:37 | |
iblech | www.perlmonks.org/index.pl?node_id=441758 | 13:39 | |
101 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | 13:40 | ||
autrijus | nothingmuch: still there? | 14:17 | |
nothingmuch: how do you get an Int out from an IO Int? | |||
by binding it! | |||
int <- io_int_thing | |||
so, to get an Exp from an Eval Exp, you do | 14:18 | ||
exp <- eval_exp_thing | |||
nothingmuch | autrijus: uhuh | ||
ok | 14:19 | ||
scw | autrijus: I always have ghc check my code when Monad is involved.. :p | ||
autrijus | :p | 14:20 | |
nothingmuch | so what does it really look like? | ||
scw never knows if it's correct. | |||
autrijus | val <- evalExp exp | ||
str <- fromVal val | |||
nothingmuch | unpair (App "&infix:=>" key value) = do | ||
k' <- evalExp key | |||
value <- k' | |||
...? | |||
autrijus | no | ||
jabbot | nothingmuch: ... ōæ½xACOōæ½xB3oōæ½xBCĖ¤lōæ½xB6ōæ½xDC | ||
nothingmuch | it doesn't make sense to me | ||
autrijus | value <- fromVal k' | ||
nothingmuch | oh | ||
autrijus | str <- fromVal k' | 14:21 | |
int <- fromVal k' | |||
it all works | |||
nothingmuch | what is App "infix:=>" btw | ||
it seems to be, err, weird | |||
it has a dangling thing | |||
autrijus | it is just this pair constructor thing. | ||
nothingmuch | the second element, which i dunno what it does | ||
i know, it's a perlop | |||
App seems to want 3 things | |||
what to apply (=>) | |||
apply on what (a list with two elems) | |||
and ....? | 14:22 | ||
autrijus | and a series of arguments not related to invocation | ||
in this case, always empty. | |||
nothingmuch | ah | ||
autrijus | App op invs args | ||
nothingmuch | ok | ||
since => is a multisub | |||
right? | |||
autrijus | right. | ||
it is a multisub with 2 invocants. | |||
nothingmuch | i might actually grok pugs internals at some point ;-) | ||
autrijus | you already do :) | 14:23 | |
nothingmuch | much more hopeful than p5 guts | ||
autrijus | that is very true. | ||
p5 guts is like impossible. | |||
you can understand a code path | |||
but you can't really reason about the whole of it. | |||
or, maybe you can, but I cannot. | |||
nothingmuch can't | 14:24 | ||
tried reading some parts | |||
knowlege is too spread out, i think | |||
a vCast is a context sensitive thing | 14:25 | ||
making a <context expects this type> out of a Val? | |||
unPair (App "&infix:=>" (keyExp : valExp : []) _) = do | 14:26 | ||
keyExp' <- evalExp keyExp | |||
yields: Couldn't match `(,) String' against `ContT Val (ReaderT Env IO)' | |||
Expected type: (String, t) | |||
Inferred type: Eval Val | |||
In the application `evalExp keyExp' | |||
retrospectively nopaste =P | |||
autrijus | er. | ||
you want to return (Sting, Exp) | 14:27 | ||
nothingmuch | yes | ||
autrijus | make it | ||
Eval (String, Exp) | |||
nothingmuch | but i'm not returning till much later | ||
autrijus | because you are now inside the eval monad | ||
and you can't escape the eval monad. | |||
nothingmuch | unPair should return Eval (String, Exp)? | 14:28 | |
autrijus | if you to the eval inside there, yes. | ||
nothingmuch | ok | ||
autrijus | but that makes the whole Bind.hs monadic. | ||
which is sort of what I wished to avoid. | |||
nothingmuch | i think it's unavoidable | ||
it's a thing that happens | |||
autrijus | subcall( [$name1, $name2](rand 2) => 3 ) | ||
nothingmuch | it takes avlues | 14:29 | |
autrijus | yeah. | ||
nothingmuch | and it connects them | ||
you could pre unPair, before actually binding | |||
i think | |||
autrijus | I think that makes a lot of sense. | ||
when you are at the caller site | |||
first examine the pairs | |||
and eval the key part | |||
nothingmuch | what does, monadic binding, or preunpairing? | ||
autrijus | preunpairing | ||
nothingmuch | then bind? | ||
zh | |||
ah | |||
autrijus | then do a nonmonadic bind | ||
so you always have pure Val | |||
nothingmuch | how do you preunpair? | ||
you obviously have the thing that does App unPair args | 14:30 | ||
(and invs) | |||
i think i can handle it | |||
but who does App | |||
Eval's apply? applyExp? | |||
autrijus | reduce | ||
but you just eval them. | |||
nothingmuch | ok | ||
autrijus | using evalExp | ||
so basically | |||
extend isPair | |||
to recognize App "&infix:=>" as well | |||
nothingmuch | how icky will this be in the long term? | ||
autrijus | I think it will be just fine. | 14:31 | |
nothingmuch | isPair (App "&infix:=>" _ _) = True | ||
that much I did ;-) | |||
but actually we don't want that, do we? | |||
autrijus | good. did you check it in? | ||
we probably want just that. | |||
nothingmuch | no, because that causes unPair to be fatal =) | ||
in that case bindNamed can't work | |||
clkao | autrijus: what do i expect today? | ||
nothingmuch | because it has Exps | ||
autrijus | what? | ||
jabbot | autrijus: what is App "infix:=>" btw | ||
nothingmuch | when it should be getting pairs | ||
gugod owns jabbot, right? | 14:32 | ||
autrijus | right. you are free to ignore it | ||
nothingmuch | i think i will try to feed it defs that contain 'gugod--' ;-) | ||
it's RSS commit announce is useful | 14:33 | ||
autrijus | nothingmuch: let me try | ||
nothingmuch | but everything else is an annoyance | ||
autrijus | a sec. | ||
nothingmuch | let you try what, the pair fixing code? | ||
autrijus | I checked in the App &infix code. | 14:34 | |
r1052 | |||
nothingmuch | i could have told you that borks ;-) | ||
in fact, i did =D | 14:35 | ||
i think it's not the solution we want | |||
autrijus | ./pugs -e sub foo (+$n) { say $n } foo( n => 3 ) | ||
nothingmuch | either isPair and unPair take the same thing | ||
autrijus | now says "3" for me. | ||
nothingmuch | ah | ||
then what is the diff, really? | |||
it's not just isPair that was fixed, was it? | |||
autrijus | isPair (App "&infix:=>" [(Val _), _] []) = True | ||
unPair (App "&infix:=>" [(Val k), exp] []) = (vCast k, exp) | |||
now that only works for simple values as keys. | 14:36 | ||
$n => 3 | |||
will totally bork. | |||
nothingmuch | ah | ||
autrijus | so pre unpairing is still needed | ||
nothingmuch | that's what I meant =) | ||
autrijus | just want to make clear the point :) | ||
nothingmuch | ok =) | ||
isn't messing with App ... after preUnpair a violation of separation of concerns? | |||
i mean, we both expect it to be dealt with, and deal with it ourselves | 14:37 | ||
anyway, i'll see what i can do for preunpairing | |||
is there any chance of it breaking anything? | |||
autrijus | the correct thing is to preunparirng | ||
and preevaluation into simple Syn "=>" pairs | |||
that guarantees a simple Val in the LHS | |||
nothingmuch | why syn pairs? | ||
is that what a VPair is? | |||
autrijus | just so Bind.hs knows how to deal? | ||
VPair is Val, Val | 14:38 | ||
we want Val, Exp | |||
nothingmuch | in the long term, too? | ||
autrijus | you can arguably turn Exp into Val VThunk | ||
and get Val Val | |||
in that case sure, make them simple VPair vals | |||
is the long term best solution | |||
because that decouples the caller site with binding site. | |||
nothingmuch | i believe in the long term | ||
so this is the aforementioned Param, Exp to Param, Val fix | |||
which i don't know where to start doing | 14:39 | ||
=) | |||
elmex | autrijus++ | ||
nothingmuch++ | |||
autrijus | nothingmuch: sure :) | ||
elmex | so cute | ||
autrijus | what is so cute? | ||
nothingmuch | cute? | ||
Dabian | Emacs rocks! | ||
autrijus | and yes, that is the aforementioned fix. | ||
greetings Dabian. | 14:40 | ||
or rather, closely tied to. | |||
nothingmuch | autrijus: i'll work on it then, | ||
nothingmuch reads some more haskell... | |||
Odin-LAP | Dabian: Does it? | ||
autrijus | nothingmuch++ | ||
nothingmuch | Eval.hs's reduce, and apply is what I want, right? | ||
or rather, the callers of apply | |||
Odin-LAP | :D | ||
autrijus | yup. | ||
nothingmuch | perlbot: highest karma | ||
perlbot | The top 5 karma entries: autrijus: 38, nothingmuch: 36, ~brad2901: 26, stevan: 22, C: 22 | ||
nothingmuch | damn | ||
autrijus is still ahead | |||
two days ago i had an edge of 1 ;-) | |||
Dabian | Odin-LAP: Yes! | ||
autrijus | :p | 14:41 | |
pjcj | Dabian: pugscc --elisp works? | ||
autrijus | see, that parrot compile things is popular | ||
Odin-LAP | Dabian: Pffth. I don't believe you. | ||
autrijus | ooh. want to work on it? | ||
--elisp that is | |||
that will so rock | |||
Dabian | pjcj: try it :) | ||
theorbtwo | I'm afraid I'm to blame... but I think --elisp would indeed so rock. | ||
Odin-LAP | Hm. | 14:42 | |
elmex | you're so cute | ||
nothingmuch | that should allow for actual syntax highlighting by means of embedded perl, right? | ||
Odin-LAP | That'd be ... interesting, to say the least. | ||
elmex | C++ | ||
nothingmuch | elmex: some people might find that offensive ;-) | ||
autrijus | nothingmuch: sure | ||
elmex | what is about C++? | ||
nothingmuch | C-- is also a nice backend | ||
in theory | |||
autrijus | elmex: we alreay compile to GHC | ||
which compiles to C-- | |||
which compiles to C | |||
elmex | nothingmuch: that wasn't offensive. being cute is a very good thing | ||
nothingmuch | i find it cute, being cute and all | 14:43 | |
in fact, i look cute, and try to act cute, and stuff | |||
elmex | ;) | ||
cool | |||
err..cute ;) | |||
stevan | autrijus: any timeline on the s/// perl5 regexp support? | ||
Odin-LAP | 'cute', you say. | ||
nothingmuch | but that's because i realized early on i have no chances at looking cool | ||
jabbot | pugs - 1052 - * pair fixing code | ||
nothingmuch | or buff | ||
=) | 14:44 | ||
Odin-LAP just looks like an idiot. | |||
Easiest thing ever. Takes no effort at all. ;) | |||
autrijus | stevan: you want backref to $1 and $2? | ||
and s///g? | |||
give me a priority list? :) | |||
on s/// that is | 14:45 | ||
stevan | the backref is alreayd there I think | ||
at least it seems to work :) | |||
autrijus | right. | ||
s/(foo)/$1/g though | |||
is another matter. | |||
stevan | s/// would be really really really nice | ||
I am not so concerned about s/(foo)/$1/g | |||
Odin-LAP | Erm. | 14:46 | |
stevan | thats nice and all, but could wait (at least for my purposes) | ||
Odin-LAP | That'd be s:g/// now, wouldn't it? | ||
stevan | Odin-LAP: yes | ||
nothingmuch is half way through his 3rd liter of water today | |||
autrijus | sure. | ||
nothingmuch is impressed with himself | |||
Odin-LAP | nothingmuch: What, only three? | ||
stevan | s:g:perl5/// would be nice | ||
theorbtwo | s:perl5:g///, to be more specific. | ||
autrijus | is it still bound by ~~ ? | ||
nothingmuch | Odin-LAP: i tend to drink too little | 14:47 | |
metaperl | nothingmuch, why drinking so much water? | ||
autrijus | adverbs order doesn't matter | ||
stevan | bound by? I am sure I understand? | ||
nothingmuch | metaperl: i live in the desert, and i didn't drink enough yesterday | ||
metaperl | nothingmuch, where do you live? | ||
Odin-LAP | autrijus: I don't think any other operator would fit. | ||
nothingmuch | Beer Sheva (suburb of thereof, to be exact) | ||
Odin-LAP | nothingmuch: Ah. | ||
metaperl | what country is beer sheva in? | ||
theorbtwo | You live in the god of beer? | ||
autrijus | god. | 14:48 | |
mkirank | im trying to install pugs at home on my linux machine .. this is the files that i have to download right www.haskell.org/fedora/haskell/1/i3...2.i386.rpm and www.haskell.org/fedora/haskell/1/i3...2.i386.rpm | ||
autrijus | look at S04! | ||
theorbtwo | Er, the suburbs of the god of beer... | ||
autrijus | a native "subst" object previously unmentioned! | ||
nothingmuch | well, either in Tennessee somewhere, or in israel | ||
autrijus | what's with that? | ||
metaperl | i see, are you jewish? | ||
nothingmuch | metaperl: err, that depends on who you ask | ||
metaperl has a slight interest in kabbalah | |||
nothingmuch | mkirank: the second i think | ||
i'd say, yes, culturely, not religeously | 14:49 | ||
state of israel says no | |||
metaperl | oh, where is the wailing wall? | ||
nothingmuch | mom converted from catholicisim | ||
but to the conservative stream | |||
in the 80s | |||
mkirank | nothingmuch only the second is it ? | ||
nothingmuch | when only orthodox judasim was recognized as valid by the state | ||
metaperl | i thought you had to be born as a jew... | ||
nothingmuch | mkirank: the first is for opetron64 and friends, i think | ||
well, in theory yes | |||
you inherit it from your mother | 14:50 | ||
stevan | metaperl: I think your mother has to be jewish | ||
nothingmuch | if she converted then you count as a jew | ||
metaperl | my impression of israel is that you could be blown up at any moment... no offense intended but that's all I see about Israel on the news here | ||
nothingmuch | my dad is jewish, officially | ||
autrijus | stevan: care to ask on p6c about how the "subst" obj is supposed to work? | ||
because it's only mentioned once | |||
nothingmuch | metaperl: that is a bad impression, i think, for either side | ||
it's really not like this | |||
autrijus | and I have no idea at all about its semantics. | ||
stevan | p6c? or p6l? | ||
metaperl | that's good to hear | ||
autrijus | well it's in Syn, we're implementing it, so p6c maybe | ||
nothingmuch | chances of being involved in a direct conflict with arabs is very low, even if in the army | ||
Odin-LAP | nothingmuch: What's your view on that whole mess? :> | ||
metaperl | Syn? as in Synagogue :) | ||
theorbtwo | Well, the theory, I think, is that conversion happens when somebody who was always jewish but didn't realize it finds out. | 14:51 | |
nothingmuch | chances of dying in a bombing is much lower than car accident deaths | ||
stevan | autrijus: ok, I will re-read Syn 04 and ask | ||
autrijus | danke! | ||
nothingmuch | etc etc | ||
but that stuff doesn't make new | |||
s | |||
i never head 'man got hit by car in australia' | |||
Odin-LAP: rational left wing, i think | |||
i believe that we can cautiously approach a peace if people that want to spoil it are under control | |||
and we don't get overzealous, and then say "Well, they started it" when it all false to bits | 14:52 | ||
Odin-LAP | Heeh. They aren't, right now. :p | ||
metaperl | arafat's death was a good thing for peace if you ask me | ||
nothingmuch | metaperl: perhaps... we shall see | ||
right now it's still too chaotic to tell, IMHO | |||
but then again, he was not too hard to improve on | |||
Odin-LAP | metaperl: Yes, but it won't mean anything until the nuts on the other side get out of the way, too. | ||
Which, frankly, doesn't seem too likely. :( | 14:53 | ||
nothingmuch | i really have high hopes about our side bucking up this time | ||
it seems so close, and so dead serious | |||
mkirank | i get a ghc64 is needed by ghc-6.4-2 .. so i guess i have to download both | ||
theorbtwo | His death was, but the Israelite government messed it all up by trying to control his funeral. | ||
nothingmuch | likely someone will screw things up, and something will get bombed | ||
but experience tells me otherwise | |||
jabbot | pugs - 1053 - add test for var in key side of pair | ||
nothingmuch | and sharon could say "well, i tried, and they didn't help themselves" | 14:54 | |
and we'd be back in spring 2002 | |||
anywho, i dislike discussing politics, i tend to get carried away and then regret it | 14:55 | ||
to cut to the point: | |||
i'm more pro arab than most, but not in an "oh, we're so barbaric" sort of way. I think both sides bear a lot of guilt, or at least should, and will have to face it in the next decade or things will never get resolved | 14:56 | ||
Juerd | ]}} | 14:59 | |
stevan | autrijus: actually subst is mentioned again in S05, all the way at the bottom | 15:02 | |
it seems to be a method for string objects | |||
$str.subst(//, "replacement") is the example given | 15:03 | ||
theorbtwo | Ah, that'd make more sense. | ||
~~ is "smart match", and s/// isn't matching anything. | |||
stevan | there is also a match() method | ||
$stc.match(//); | |||
theorbtwo | Right; $string ~~ $rule is syntatic sugar for $stc.match($rule)... I think. | 15:04 | |
(Though I'm not clear why that's not $rule.match($stc).) | |||
theorbtwo realizes he's making this up as he goes along, stops. | |||
Odin-LAP | I think that's how Perl6 was designed, you know. | 15:05 | |
theorbtwo | That's how everything was designed, odin. | ||
Odin-LAP | :p | ||
iblech | Hm... latest r1053 fails *many* tests, "Fail: Prelude.last: empty list" | ||
autrijus | so what is "subst" as a type? | 15:06 | |
nothingmuch: you broke the tree | |||
nothingmuch | how did I break it? | ||
Odin-LAP | theorbtwo: Nah. Many things, but not everything, I think... | ||
autrijus | or maybe I did. | ||
theorbtwo | LISP, in purticular, was never designed to be actually /run/, and the guy who designed it was quite surprised when somebody made it do so. | ||
stevan | autrijus: still not 100% sure, I am going to read some more so I can ask the question intelligently :) | ||
autrijus | sure :) | ||
nothingmuch | i think not | 15:07 | |
my last ci was removing trace | |||
and that passed tests | |||
Juerd | 16:09 < theorbtwo> Right; $string ~~ $rule is syntatic sugar for $stc.match($rule)... I think. | ||
16:09 < theorbtwo> (Though I'm not clear why that's not $rule.match($stc).) | |||
theorbtwo: Shouldn't matter. $regex ~~ $string DWYM | |||
nothingmuch | expect for a one line change to sub_named_params.t | ||
Juerd | Most smart matches are reversable | ||
Odin-LAP | theorbtwo: Lisp is an oddity. It was just a mathematical formalism that wound up having use as a programming language... | ||
nothingmuch | and the correpsponding change to plan | ||
Juerd | Only those with special syntax (i.e. hash subscripts) are not | 15:08 | |
theorbtwo | Right, because ~~ is more-or-less a highly funky equality operator; all the basic properties of equality operators should more-or-less hold. | ||
autrijus | except when it is not. | 15:09 | |
marked with * | |||
Odin-LAP | Smart match is very well described with the term "funky". ;) | ||
Juerd | All those new Perl 6 features are funky | ||
Those from other languages are boring | 15:10 | ||
theorbtwo | I'm going to get dressed, find some cash, and buy some milk... see you in 30 or so. | ||
Odin-LAP | Heeh. | ||
Juerd | theorbtwo: years? | ||
theorbtwo: hours? minutes? | |||
Odin-LAP | Juerd: Macros are boring? :> | ||
Juerd | seconds? | ||
autrijus | nothingmuch: not your fault. it's me. | ||
Juerd | Odin-LAP: Quite. | ||
autrijus | apologies. | ||
nothingmuch | autrijus: =) | ||
Juerd | Odin-LAP: Handy and useful, but boring. | ||
nothingmuch | the pair fix? | ||
theorbtwo | minutes. Possibly much less, depends on if I feel like buying other things, and how long it takes to find cash. | ||
autrijus | weird. | 15:11 | |
Odin-LAP | Juerd: Hm. I guess that's one perspective. I think it's going to be interesting to see how they mix with all the other stuff that's being thrown into the mix. | ||
theorbtwo | I suspect everyone will find the new perl6 stuff much less wierd after we've actually programmed with them for a while. | ||
Odin-LAP | But taken alone, I guess I'd agree. :) | ||
theorbtwo | The same way lisp programmers don't find the lack of syntax and such funky. | 15:12 | |
Odin-LAP | theorbtwo: They usually acknowledge that it's weird, compared to other programming languages. :> | ||
nothingmuch | good post: www.perlmonks.org/index.pl?node_id=440730 | 15:17 | |
i've wanted to answer a question like that for a long while | 15:18 | ||
it has implications about robustness, security, performance, etc | |||
autrijus | the test fix has been worked around. | ||
ironically it's cased on write_log wkring. | |||
working. | |||
nothingmuch | autrijus? | 15:19 | |
jabbot | nothingmuch: autrijus is still ahead | ||
autrijus | please help me untodo. | ||
t/subroutines/sub_named_params.............ok | |||
4/20 unexpectedly succeeded | |||
nothingmuch | what is gugod-- | ||
what? | |||
jabbot | nothingmuch: what is gugod-- | ||
nothingmuch | hah! | ||
lumi | That's not very nice.. | ||
But then, neither is the bot | |||
nothingmuch | he should fix his bot =) | ||
i've decided not to ignore it | 15:20 | ||
lumi | Heh | ||
nothingmuch | because then I miss the commit messages | ||
autrijus | it is worth noting that jabbot.blogspot.com exists. | ||
nothingmuch | oh, it's a precanned rss<->irc bridge? | ||
boy, that website makes so much sense for me.... =) | |||
stevan | autrijus: what exactly are you wondering about with subst? | 15:22 | |
the more I read the less I think it will be relevant until you implement the perl6 rules | 15:23 | ||
jabbot | pugs - 1054 - * work around the Prelude.last bug cause | ||
stevan freely admits that he is totally missing the point though | |||
autrijus | stevan: say I have this | 15:24 | |
s:perl5:g/foo/bar/ | |||
is that a "subst" object? | |||
does a subst object .hasa rule object? | |||
Juerd | Is it really :g with :p5? | ||
autrijus | what exactly does a subst object do? | ||
stevan | ok | 15:25 | |
autrijus | can I get a rule object from it? | ||
how does it stringify? etc. | |||
stevan | and if its not an object, and just a Str method then? | ||
autrijus | how is a method possible as RHS of ~~? | ||
stevan | RHS? | ||
Right Hand Side? | 15:26 | ||
autrijus | right hand side | ||
is ~~ s:perl5:g/a/b/ | |||
the same as | |||
~~ .subst(rx:perl5/a/, "b") ? | |||
or | |||
~~ .subst(rx:perl5/a/, {"b"})? | |||
questions questions. | |||
stevan | I see now | ||
stevan goes off to try and compose a mail on this insanity :P | 15:27 | ||
nothingmuch | autrijus: should i raise "ok(!(eval '&foo.assuming(1)'), "can't curry without named params");" passing to p6l? | ||
the way we bind currying positionals does make sense | |||
backlink comment: # L<S06/Currying /takes a series of named arguments/> | |||
autrijus | sure. | 15:28 | |
go ahead. | |||
but | |||
phrase it as a perl6 question :) | |||
(as in, language proposal about how .assuming can also behave) | |||
nothingmuch | i think i would rather ask it as: | 15:29 | |
it says so | |||
we do it so that it can be otherwise | 15:30 | ||
this is because binding works like: | |||
? | |||
sorry | |||
"is that a bad thing, or a good thing?" was what I meant to type | |||
autrijus | that works too. | ||
stevan: s:perl5/// is landing. no :g :i yet | 15:33 | ||
or :m :s | |||
but trivial. | |||
stevan | autrijus: thanks :) | ||
autrijus++ | |||
jabbot | pugs - 1055 - More tests. | ||
autrijus | glad to be of help ;) | 15:34 | |
stevan | nothingmuch++ # just so he won't feel bad :P | ||
autrijus needs to journal and sleep soon | |||
nothingmuch | stevan++ | ||
=) | |||
stevan | nothingmuch: no I haven't done anything today | ||
nothingmuch | blah, whatever | ||
stevan | perlbot karma mom | ||
perlbot | Karma for mom: 1 | ||
nothingmuch | i haven't done much either | ||
stevan | nothingmuch: thats your mom :) | 15:35 | |
nothingmuch | my mom? | ||
stevan | we ++ her for giving birth to you :) | ||
nothingmuch | heh | ||
=D | |||
stevan | when you got her at the train yesterday :) | ||
nothingmuch | mothers++ | ||
that was yesterday? not the day before? | |||
yesterday i didn't even unpack the puter at home, i think | |||
just read a book, and went to bed | |||
stevan | nothingmuch: hard to say, my yesterday is not always your yesterday :P | 15:36 | |
damn time zones | |||
nothingmuch | i think i picked up mom around 45 hours ago | ||
so ;-) | |||
stevan | well tell mom we all say "hi" | 15:37 | |
autrijus | patches welcome to implement the rest of :m :s etc | ||
just parse for adverbes and feed them to MkRegex | |||
nothingmuch | ok =) | ||
autrijus | pugs> my $x = "pugs"; $x ~~ s:perl5/u.[st]/arrot/; $x | 15:38 | |
'parrot' | |||
stevan | autrijus: very cool, now I can finish File::Spec | ||
did I mention how UGLY File::Spec is? | |||
autrijus | no. you did not. | ||
stevan | its really really UGLY | ||
autrijus | t1056. | ||
enjoy! | |||
s/t/r/ | |||
stevan | danke; graci; thank you :) | 15:39 | |
autrijus | =) | ||
Day 51: Inline haskell, s:perl5/// | 15:42 | ||
not too bad for a day :) | |||
sadly ingy did not commit his makefile.pl magic for inline() | |||
iblech | BTW -- I get some warnings when compiling (GHC 6.2, Linux): sial.org/pbot/8541 | ||
autrijus | yeah they're expected. | 15:43 | |
iblech | Ok | ||
theorbtwo is back. | |||
jabbot | pugs - 1056 - * s:perl5/// support. | ||
nothingmuch | ok, sent to p6l | 15:44 | |
autrijus | iblech: I attemped a fix; try again please? | 15:45 | |
heads-up | 15:48 | ||
it may be the case that the whole evaluator will be moved into compiler | |||
once Compile.Haskell is working | |||
so the evaluator does on-the-fly compilation | |||
and always run code at fast speed. | |||
that will also save us from doing Eval.hs and Compile.Haskell separately. | |||
plus a set of very nice things. | |||
nothingmuch | how does this hinder BEGIN {}, etc? | 15:49 | |
autrijus | but it will be done by essentially taking Eval.hs code and add [| |] for each reduce rule | ||
iblech | sial.org/pbot/8542 -- new warnings | ||
autrijus | nothingmuch: that is so we can get BEGIN work. | ||
nothingmuch | ride leaving | ||
ah =) | |||
ciao everyone | |||
home & | |||
autrijus | iblech: should be fixed now. try again? | 15:52 | |
jabbot | pugs - 1058 - * revert to old include style for 6.2.2. | 15:53 | |
pugs - 1057 - * warning fixes | |||
iblech | :) Only one warning left: | 15:55 | |
Compiling RRegex.PCRE ( src/RRegex/PCRE.hs, src/RRegex/PCRE.o ) | |||
/tmp/ghc24855.hc: In function `RRegexziPCRE_zdwccall_entry': | |||
/tmp/ghc24855.hc:498: warning: assignment discards qualifiers from pointer target type | |||
autrijus | I have no idea :) | ||
maybe it's one of the signeness things. | |||
you're welcome to track src/pcre/ down :) | 15:56 | ||
iblech | somebody with C skills may do that :) | 15:57 | |
115 subtests fail | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | 16:00 | ||
jabbot | pugs - 1059 - * fixup inline syntax a bit | 16:03 | |
elmex | oi | 16:11 | |
iblech | luqui: IIRC, you created a perl6.vim syntax highlighting script :) -- URL? | 16:13 | |
jabbot | pugs - 1060 - * add credit for GHC-licensed RuntimeLoa | ||
stevan | luqui: I have a quick question for you | 16:15 | |
when you have a second | |||
luqui | stevan: hmm? | 16:23 | |
stevan | luqui: you removed the string escape test | ||
for test\' | |||
why? | |||
luqui | yeah, it was wrong. | ||
stevan | should that not work? | ||
luqui | perl -e "print 'foo\'" | ||
jabbot | pugs - 1061 - unTODO-ed tests; added in the File/Spec. | ||
stevan | oh | 16:24 | |
whoops my bad | |||
luqui | (not to mention that you were saying "$foo = 'hello\'", so the newly defined $foo was being interpolated, but that was fixable) | ||
np | |||
stevan | perl -e "print 'foo\\'" | ||
that does work | |||
luqui | yep, and in pugs | ||
stevan | pugs -e "say 'foo\\'" | ||
it fails | |||
luqui | really? | 16:25 | |
stevan | unexpected end of input | ||
expecting "\\'" or end of string | |||
NonTerm SourcePos "-e" 1 12 | |||
luqui | i thought I tested that | ||
make sure that your shell isn't turning \\ into \ | |||
stevan | sorry, that should have been the test | ||
luqui | echo "say 'foo\\'" | ||
stevan | luqui: how would I do that? | ||
prints say 'foo\\' | |||
luqui goes to test it in pugs | 16:26 | ||
stevan | I actually ran into a number of weird things with \'s in strings | ||
luqui | huh... my bad | ||
stevan | but some of them were me :) | ||
luqui | that deserves a test | ||
stevan | not a big deal, I was testing for the wrong thing, so you were right to remove | ||
do you want to look into it more? or should I put in the test again? | 16:27 | ||
luqui | put it back in whether or not I want to look into it | 16:28 | |
but I probably will... tomorrow (my bedtime is approaching) | |||
iblech, vim syntax url: luqui.org/public/perl6.vim | |||
iblech | luqui: Thanks much :) | ||
luqui | it's very, very out of date | 16:29 | |
stevan | luqui: where are you located? | ||
luqui | colorado | ||
stevan | bedtime at noon? | 16:30 | |
luqui | yes, it's about 9:00 am | ||
and yes, it's almost my bedtime | |||
stevan | whoops, got my timezones backwards | ||
luqui | it's spring break | ||
stevan | LOL | ||
I just got up | |||
ahhh | |||
I am EST | |||
connecticut to be exact | |||
but I am not in college so I have to work :P | |||
PerlJam | stevan: give us your exact latitude + longitude so that we know where to send the missles ;-) | 16:31 | |
metaperl | stevan do you work in CT or NY? | ||
lol@PerlJam | |||
stevan | metaperl: the company is out of NY, but I work mostly from home in CT | ||
stevan prepares his bomb shelter in case PerlJam is serious | 16:32 | ||
elmex | ? | ||
luqui | Perl guided missles | ||
of course he's serious | |||
PerlJam | stevan: does this pugs stuff dove-tail with your work or is it just for fun? | ||
luqui | Gives new meaning to the "D" in TMTOWTDI | 16:33 | |
stevan | PerlJam: mostly for fun right now | ||
I am at the end of project, so I have some time | |||
PerlJam | luqui: new meaning? No, that's the same old meaning it always had it's just that people don't realize it (until it's too late ;) | ||
luqui | hehe | ||
jabbot | pugs - 1063 - * Upgrade to CVS version. | ||
pugs - 1062 - * Jump ship to DynamicLoader | |||
PerlJam | I wish I could find a legitimate excuse to do this for work so I don't feel guilty when I spend work time playing with pugs. | 16:34 | |
metaperl | stevan, what dynamic HTML generation toolkit do you use at work? | ||
stevan | PerlJam: my boss is very cool with open source work | 16:35 | |
luqui | what's that perl module that returns more specific information about the context? | ||
stevan | he knows that we rely on it, so if I have "free" time, I am allowed to use it for OSS stuff | ||
luqui: Want? | |||
metaperl: I used to use HTML::Template, now we switched to TT because I can do [% user.getFirstName %] and stuff | 16:36 | ||
luqui | stevan: that's the one | ||
stevan | PerlJam: I would love to use Pugs at work if I could, but we do mostly mod_perl (handler-style) and mod_pugs is not even on the radar yet :) | 16:37 | |
PerlJam | stevan: similar situation here. | ||
stevan | PerlJam: where do you work? | ||
assuming you can say, and its not Top Secret :P | 16:38 | ||
PerlJam | stevan: I work at a research institute within Texas A&M University-Corpus Christi. | ||
stevan | nice | ||
autrijus | there's mod_parrot and there's mod_haskell. | ||
PerlJam | Mostly we collect, process, store, process some more, etc. environmental data. | 16:39 | |
stevan | autrijus: and mod_pugs ????? | ||
maybe YAPC::NA?? | |||
PerlJam | stevan: Are you challenging him? ;) | ||
stevan | PerlJam: my job is to challange him :) (aka write tests) | ||
autrijus | stevan: err. you compile to haskell and run it with mod_haskell. | ||
or compile to pir and run it with mod_parrot. | |||
I believe mod_haskell can work with the --pugs backend. | 16:40 | ||
the other two backends will catch up. | |||
stevan | wow | ||
PerlJam | autrijus: that's the thing about actual high-volume output ... It always gets exaggerated and you become the lightning rod for any new cool ideas. | ||
(not that this is a bad thing :-) | 16:41 | ||
ninereasons | Is there any chance that in perl6 we will be able to declare multiple assignments? I've often wished that I could say something like "my ($x = $y = $z) = $val;" to initialize mutiple equivalent variables in a single statement. | ||
integral | my ($x, $y, $z) = $val x 3 ;-) | ||
autrijus | journal up. | ||
integral | my $x = my $y = my $z = $val; | ||
autrijus sleeps. :) | |||
PerlJam | ninereasons: er, what's wrong with ... what integral just said | ||
stevan | night autrijus | 16:42 | |
luqui | integral: in p6 that's my ($x, $y, $z) = $val xx 3; | 16:43 | |
the -) on the end is a syntax error :-p | |||
integral had a habit of just picking syntax at random ;-) | |||
PerlJam | luqui: couldn't we get something like my ($x,$y,$z) =<< $val; so as to not have to explicitly state the number? | 16:44 | |
integral | wouldn't the hyper be on the other side? | 16:45 | |
PerlJam | yeah, I guess so. | ||
But my ($x,$y,$z) >>= $val; really looks like it's doing something different than what's wanted. | 16:46 | ||
integral | maybe we need a combinator to turn $val into a infinite constant list | 16:47 | |
PerlJam | (the "flow" appears rightward rather than leftward) | ||
integral | xx inf? | ||
PerlJam | integral: $val xx Inf + lazy eval | ||
nothingmuch | evening | 16:48 | |
stevan | nothingmuch: howdy | ||
PerlJam | buenos dias nothingmuch | 16:49 | |
ninereasons | sorry, I was away. | ||
nothingmuch | that was a reply, not an announcement | ||
stevan | en Espanol 'naddamucho' :) | ||
nothingmuch | evening | ||
stevan | hey gaal | 16:50 | |
nothingmuch | autrijus seems to overestimate my work | ||
i don't give that much time to pugs | |||
PerlJam | nothingmuch: why not? Everyone else tends to overestimate his. Learn to go with it ;) | ||
ninereasons | fer heavensake. I didn't know that that worked, integral. | ||
nothingmuch | it makes me come out as, err, someone who is really devoted | 16:51 | |
i don't want people to expect me to do things | |||
stevan | nothingmuch: the commit logs speak differently | ||
nothingmuch | i work on it when i get a spare 5 mins | ||
PerlJam | nothingmuch: well, stop getting spare 5 mins | ||
nothingmuch | and in the afternoons in bigger chunks | ||
PerlJam | Or only use your spare 5 mins on pugs sparingly ;) | ||
nothingmuch | PerlJam: why? i enjoy it =) | 16:52 | |
anyway, now is afternoon, and after mail i will pre unPair things before apply | 16:55 | ||
and that way we get proper named params | |||
and currying that works 100% of the time | |||
luqui | PerlJam: my ($x, $y, $z) >>=<< $val; will do it now | 16:57 | |
... unless $val happens to be an array reference (/me wants to get that changed) | |||
nothingmuch | don't you mean my ($x, $y, $z) = >>= | ||
$val | 16:58 | ||
without the <<? | |||
luqui | no. binary hypers always have them on both sides, even if you're only hypering one side | ||
nothingmuch | so in that case isn't '.' binary 'apply method', which gets a method and an object, and applies? | ||
luqui | that's one way to think of it | 16:59 | |
nothingmuch rereads hyper ops | |||
luqui | but since . has special parsing rules on its right side, another way to think of it is as a postfix | ||
which is apparently how Larry think of it | |||
s/k/ks/ | |||
theorbtwo | The problem with thinking of . as an infix operator is that it doesn't take anything normal on it's RHS. | 17:00 | |
nothingmuch | i can grok that | ||
luqui | in other words, $obj.<<@meths is illegal | ||
nothingmuch | although first class methods and method calls should probably be there too, while we're at it ;-) | ||
luqui | nothingmuch: I don't understand? | 17:01 | |
nothingmuch | is there a way to implement a different WALK? | ||
it would be nice if you could, for example, change the semantics of what is a method dispatch | |||
given the MMD dispatch | |||
luqui | definitely. I don't think anybody has any idea how. | ||
nothingmuch | or whatever | ||
luqui | oh, there's DISPATCH | ||
nothingmuch | how does smalltalk do it? | ||
does it do it? | |||
luqui | which alters single dispatch... | 17:02 | |
nothingmuch | i am under the impression that it should, given the way people talk about it | ||
luqui doesn't know smalltalk | |||
luqui should learn it though | |||
nothingmuch is busy enough with haskell =) | |||
luqui no kiddings | |||
haskell is a... difficult language | |||
nothingmuch is starting to enjoy it | 17:03 | ||
can read basic things now | |||
sometimes even without help | |||
i don't "get" monads yet, though | |||
luqui | I've never learned a language by having to learn to read it | ||
I've always learned by having to write | |||
so this is a new experience | |||
theorbtwo | I still think haskell would be a very nice language if it got reasonable parens and commas. | ||
nothingmuch | theorbtwo: in that case $ is your friend, no? | 17:04 | |
ninereasons | I get frustrated when examples for ghc won't compile in hugs, and visa versa. | ||
luqui | and if it had any psychological footholds | ||
and all these years of reading perl really throws me off when I see a $ | |||
nothingmuch | i bet if i read python now it'd confuse me | ||
luqui | no other languages use $, so it's my "perl marker" | ||
nothingmuch | but haskell looks /very/ different from perl | ||
luqui: i get that with bash, actually | 17:05 | ||
theorbtwo | No, because I've never quite figured out what $ is quite supposed to do. | ||
nothingmuch | i use the same keystrokes | ||
so, i sometimes confuse myself and switch to perl | |||
theorbtwo: (foo (bar param)) in perl would be said foo(bar(param)) | |||
luqui | f a b === ((f a) b) | ||
f $ a b === f (a b) | |||
nothingmuch | and in haskell can be said foo $ bar $ param | ||
or more concisely foo $ bar param | |||
or not =) | |||
foo $ (bar param) which is just plain stupid | 17:06 | ||
theorbtwo | So $ acts like parens from that point, forward as far as possible to the end of the line. | ||
nothingmuch | yup | ||
which usually works quite well | |||
luqui | it's a right associative apply, rather than a left-associative one which is the default | ||
nothingmuch | you can also infix things if it helps readability | ||
luqui | most languages apply right-associative (the ones that don't use parens, like perl, that is) | ||
theorbtwo | By using backticks. | ||
nothingmuch | uhuh | ||
like list `zip` other | 17:07 | ||
although that's not the same kind of zip | |||
elmex_ | ? | ||
17:07
elmex_ is now known as elmex
|
|||
luqui | that would be a nice thing for perl to have | 17:07 | |
unfortunately, perl is out of keyboard | |||
nothingmuch | that's not hard, is it? | ||
luqui | I'm not sure adding another wdti for sub calls is buying us anything though | 17:08 | |
nothingmuch | gather { for zip(@list; @list) -> $p1, $p2 { take ($p1 => $p2) } } | ||
what do you mean by that? | |||
luqui | every programmer will have his favorite, and every programmer will have to learn all the wtdis to read code | ||
nothingmuch | we could make a nice pair_up method | 17:09 | |
luqui | foo($a, $b); $a.foo($b). foo $a: $b. ($a, $b) ==> foo | ||
those are all the same, but subtly different | |||
oh, (foo $a, $b) | |||
nothingmuch | and tuple_up, which would really mean array_up | ||
err s/method/sub/ | |||
user sub, mind you | |||
(&foo.assuming($a, $b))() | |||
i don't want that n the core | |||
or however you dereference that | 17:10 | ||
(not quite sure yet) | |||
luqui | &foo.assuming($a, $b).() | ||
nothingmuch | ah | ||
isn't $a: $b and $a, $b radically different? | |||
i've been playing with parameter binding these last few days, in pugs | |||
we have invs and args, which are entirely different things, as far as it's concerned | |||
luqui | not at all in the absense of a sub foo (only methods) | ||
yeah, and they're pretty different, until you start calling the multis | 17:11 | ||
which should wash them together | |||
nothingmuch | so how does it know what is an invocant and what is an arg in a multi? | ||
luqui is trying pretty hard to convince @Larry that invocants are a bad idea | |||
Odin-LAP | Isn't everything essentially a multi? | ||
luqui | Odin-LAP: it's getting there | ||
nothingmuch | i think invocants should be slurped from the args | 17:12 | |
it'd be much more dwimmy | |||
luqui | I think invocant's shouldn't exist, and we should have a smarter MMD behavior | ||
nothingmuch | but less symmetric with sub prototypes | ||
luqui | s/'// | ||
nothingmuch | how would it be smarter? | ||
Odin-LAP | luqui: Hm. But the concept of 'invocant' makes it a bit odd, you mean? | ||
Yeah. | |||
Hm. | |||
Odin-LAP seconds nothingmuch's question. | |||
luqui | p6l "Argument Patterns" | 17:13 | |
that was my first brainstorm | |||
nothingmuch | you mean more like haskell's? | ||
luqui | nothingmuch: that was my inspiration | ||
nothingmuch | (btw, don't subtypes let us do that in an ugly way?) | ||
luqui | but a dynamic language needs something a little different from haskell | ||
nothingmuch waits for mutt to open | |||
luqui is working on a module with which he can experiment with these things | 17:14 | ||
and really should be working on it right now | |||
luqui declares that he'll be in-and-out | |||
nothingmuch | luqui: how would it look? | ||
Reading /home/nothingmuch/.maildir/... 14580 | |||
it's growing too fast.... =( | |||
luqui | yikes | ||
it would look pretty much like it looks now | 17:15 | ||
(because my proposals never really change much on the surface, they just mess around with the guts) | 17:16 | ||
stevan | anyone inspired to hack in support for :g? | 17:21 | |
in s/// regexps that is | |||
luqui | are they still using pcre? | 17:22 | |
stevan | yes | ||
luqui | (still referring to a very short period of time) | ||
ahh, then no | |||
stevan | autrijus: just put in s/// for me | ||
luqui | a little jumpy on the tab key are we? | ||
:-) | |||
stevan | :) | 17:23 | |
too much coffee | |||
nothingmuch | stevan: consider updating colloquy for a less convenient completion interface, if that's what you use ;-) | ||
stevan | I am using X-Chat-Aqua actually | ||
:P | 17:24 | ||
luqui likes xchat | |||
stevan | its the only one which worked well for me really | ||
so I like it too | |||
ok, since no one wants to work on s:g/// support | 17:25 | ||
how about a nice hack to make this: | |||
nothingmuch | luqui: you're on OSX? or are you referring to a different xchat? | ||
stevan | $path ~~ s:g:perl5{/+}{/}; | ||
work without it | |||
luqui | no, I'm on linux. | ||
I think x-chat-aqua is probably a port of xchat to aqua | |||
stevan: it's possible, but it's not pretty | 17:26 | ||
stevan | luqui: its for the File::Spec hack/port, so pretty is not nessecary | 17:27 | |
if I wanted pretty I would not use File::Spec :) | |||
luqui | you could always do: while $path ~~ s{/{2,}}{/} { } | ||
perhaps without the curly overload | |||
Khisanth | xchat-aqua is xchat with the native mac thing for GUI widgets instead of GTK :) | 17:28 | |
luqui | that's what I thought :-) | ||
nothingmuch | luqui: i've got to admit i don't see how that is much different than subtype matching on MMD | 17:29 | |
Odin-LAP | And is it open source, unlike the Win32 version of same? :> | ||
luqui | it basically destroys invocants and makes subtype matching less verbose | ||
destroying invocants is the biggest part | |||
nothingmuch | invocants destroyed for SMD too? | ||
luqui | SMD and MMD are the same thing | 17:30 | |
in perl 6 | |||
nothingmuch | so $self goes back to being $_[0], sort of? | ||
luqui | class Foo { method bar() {...} } and multi sub bar(Foo $x) {...) | ||
well, methods still have that nice syntactic sugar | |||
Khisanth | Odin-LAP: yes | 17:31 | |
luqui | it's just that the colon goes away, because it makes the semantics all icky | ||
nothingmuch | that means basically 'implicity add an argument of type ::?CLASS? | ||
i really didn't like the colon either | |||
Odin-LAP | Khisanth: Cool. That's good. :) | ||
nothingmuch | in fact, i'd like to be able to do matching on arbitrary params... is that possible? | ||
Khisanth | Odin-LAP: although it does lack certain features | ||
nothingmuch | not only constraining | ||
luqui | nothingmuch: explain arbitrary | 17:32 | |
nothingmuch | darn! nobody ever answers my posts to p6l | ||
luqui | what was your post about? | ||
nothingmuch | class Human { method eat (Dog $regular_arg) { say "i don't eat dogs" } method eat (Food $regular_arg) { say "mmm" } } | 17:33 | |
luqui: about currying positionals | |||
luqui | to be honest, I didn't really understand it | ||
nothingmuch | well, the first part is simple | ||
S06 says "This method takes a series of named arguments" | 17:34 | ||
but i don't see why | |||
luqui | oh, that's what you were asking | ||
nothingmuch | and then the second part says how we do it in pugs | ||
and what our way implies | |||
luqui | and perl 6 probably ought to have a happy medium in there somewhere | ||
nothingmuch | and asks whether our impl is broken, or OK? | ||
so luqui: can i do simple subs that have not only prototype constraints, but also matching? | 17:35 | ||
i'd like to be able to do that at the MMD level, to allow things to be added on the outside | 17:36 | ||
instead of using given { where } | |||
which means the entire def is one place | |||
(unless it should be in one place, in which case, don't remove switch statements ;-) | |||
luqui | Ohh! smart matching inside parameter lists | ||
nothingmuch | sort of | ||
luqui | hmm... that might be an elegant way to define smart match :-) | ||
nothingmuch | MMD dispatch | ||
but not only for arguments | 17:37 | ||
nothingmuch assumed that's how smartmatch will be implemented ;-) | |||
except for evaluating the RHS, that is | |||
luqui | what else would you do MMD on except for arguments? | ||
(still trying to figure out exactly what you're asking) | |||
nothingmuch | well, in many cases i like doing special cases separately | ||
your factorial (is prime) { $?SELF } example pretty much illustrates what I want | 17:38 | ||
basically, allow this specific-to-generic order matching of MMDs on all params, not just invocants | |||
and to tell you the truth, I expect MMD to allow that anyway | |||
since in theory, everything is an object | 17:39 | ||
luqui | that's exactly what I'm proposing | ||
nothingmuch | if you like to call it that | ||
luqui | because I'm proposing to destroy the concept of "invocant" | ||
nothingmuch | so isn't everything an invocant of a sub? | ||
right | |||
so what i'm really saying is: oh crap, i thought it was like this anyway | |||
luqui | specific-to-generic order happens to be a pretty hard thing to define | ||
and that's the only weak point of the proposal at this point | |||
nothingmuch | i know it's hard | ||
=( | |||
nothingmuch tried it a couple of times | |||
order of definition is also nice | 17:40 | ||
although less DWIMMY | |||
luqui | Obviously, $x matches A imples that $x matches B iff B is more generic than A | ||
nothingmuch | perhaps order of definition within specific-to-generic in a simpler way | ||
like, where clauses first | |||
then least derived types | |||
in order of constraint definition | |||
luqui | but that test is hard, or impossible, for a computer to do | ||
nothingmuch | upwards | ||
luqui | nothingmuch: hmm... | 17:41 | |
nothingmuch | that test is impossible to optimize | ||
luqui | that's an interesting idea | ||
nothingmuch | and i think bad for humans to work with | ||
i don't know about junctive types | |||
obviously & is more specific than | | 17:42 | ||
but i'm not sure if & is less specific than just plain old unjunctioned | |||
luqui | A&B more specific than both A and B which are more specific than A|B | ||
it's that type lattice thing | |||
but when you're doing that loose order, you might have to clump them all together | |||
nothingmuch | basically what you get is a pretty DWIM "specificness" measure | ||
which is not heuristical, but well defined | 17:43 | ||
luqui | I think the main thing that it needs to be is well defined | ||
nothingmuch | and i think that's pretty good | ||
compared to order of definition | |||
luqui | so people can understand what's wrong quickly | ||
and allow them an easy way to fix it | |||
nothingmuch | yes | ||
that's one of the things that seems the most scary for me in p6 | |||
i get along well with special cases | |||
but too much dwimmery at runtime or something can really get on my nerves | |||
luqui | one of my efforts in the p6 design team is to reduce runtime dwimmery | 17:44 | |
metaperl_ | nothingmuch, then dont get into functiona programming. it is pure DWIM | ||
:) | |||
luqui | because it's bitten me too many times | ||
nothingmuch | metaperl_: i don' think so... i think | ||
luqui: that's good | |||
the sigil dereference chain mess in p5 was the most annoying | |||
luqui | metaperl_: the problem is that it takes you two hours to say what you mean, even if it only takes three lines | ||
PerlJam | luqui: In perl or other languages? | ||
luqui: Have you ever dealt with C++? | 17:45 | ||
luqui | mostly in perl | ||
nothingmuch | you just can't get it right without using @{ } et all (no off hand example) | ||
luqui | I know C++ really well, and it never bites me. It just bugs the hell out of me. | ||
nothingmuch | one of the things i really appreciate in p6 is that it's very consistent | 17:46 | |
p5 had some oddities | |||
PerlJam | luqui: I know C++ really well too. I know not to mess with it while it's eating or it *will* bite me ;) | ||
nothingmuch: you can say that again! | |||
nothingmuch | but p6 finds nice way of wrapping everything up much better | ||
like builtins are really MMD | |||
and operators too | |||
and you can make them up | |||
luqui | Larry's trying to put all the dwimmery into ~~ | ||
nothingmuch | so that means that they are well defined | 17:47 | |
less guessing | |||
luqui | which I like | ||
nothingmuch | ~~ is very well defined, i think | ||
luqui | but there are a lot of different cases | ||
nothingmuch | but they are all intuitive | ||
luqui | which should be considered dwim | ||
sure | |||
nothingmuch | i wrote most of t/operators/smartmatch.t | ||
luqui | we don't want to put anything in perl 6 that isn't | ||
nothingmuch | and i have a good opinion on it | ||
luqui | (like, er, junctions?) | ||
nothingmuch | i really like junctions | 17:48 | |
except that I think autothreading should not have auto | |||
s/auto/easy | |||
luqui | me too, they're a little tough for people to wrap their heads around though | ||
nothingmuch | that's not what gets to me | ||
it's the same thing that annoys me with overzealous laziness | 17:49 | ||
you lose control | |||
luqui | yeah... | ||
nothingmuch | and since the language isn't pure in the FP sense, it really /reaallly/ matters | ||
what if i know that by doing x i indirectly fudge the file that is opened | |||
luqui | well the idea behind junctions is that you usually know where they are | ||
nothingmuch | and which that i assigned to @array beforehand? | ||
luqui | (but damian still refuses to mark them in any way) | ||
yeah, you have a point | 17:50 | ||
metaperl_ | stevan asked a good question about junctions... I dont know if he posted it to p6l or not | ||
luqui | because of the recent p6l discussion, larry is really reconsidering the "everything lazy" perspective | ||
PerlJam | luqui: I think junctions are one of those things where we'll get them in 6.0.0 and then by 6.1.0 we'll have found out if they were a good idea as implemented or not. | ||
metaperl_ | my $junc = $a | $b | $c; ++$b; # does this change the junction | ||
PerlJam | metaperl_: no | ||
luqui | no. | ||
nothingmuch | i'd like to be able to have a n is lazy trait on lvalues | ||
metaperl_: in p5 it doesn't make sense | |||
unless $b is a reference | |||
i'd expect no | 17:51 | ||
metaperl_ | i see | ||
nothingmuch | but what about if $b is a reference and ++ DWIMs on references/ | ||
luqui | and then it still doesn't change the junction, it changes something that something in the junction points to | ||
nothingmuch | right | ||
how do you specify when a sub takes the junction as a junction | |||
and when a sub takes a junction as it's, err, unwrapping? | 17:52 | ||
PerlJam | nothingmuch: sub foo (Junction $bar) { ... } | ||
luqui | sub foo (Junction $j) {...} | ||
one of your special cases :-) | |||
nothingmuch | if we use Sub and Int and Str | ||
why not Jun or Junc? | |||
that's more consistent | |||
Junc, imho | |||
ends in a consonant | |||
PerlJam | The whole Any|Junction thing bothers me though ... It kind of makes Any not really any. | 17:53 | |
luqui | yeah... | ||
nothingmuch | hah | ||
luqui | but you've got to remember what junctions are | ||
they're things that, when you give them this: | |||
if $x { say "foo" } if !$x { say "bar" } | |||
will say both foo and bar | |||
nothingmuch | how do you specify a junction that has a type? | 17:54 | |
like a junction of Ints | |||
luqui | Junction of? | ||
nothingmuch | Junction&Int? | ||
luqui | then you're asking for something that is both a junction and an int | ||
nothingmuch | why not make 'Any|Junction' into 'Junction Any' or 'Any :junctive | ||
luqui | which I suppose... well... umm.... | ||
nothingmuch | i think ti's more than a type | ||
it's the state of the vlaue, | |||
or it's err, lack thereof | 17:55 | ||
luqui | I think a junction is just a type, and perl is confused about what a type is | ||
nothingmuch | again with the 'err' and the 'uhm' | ||
luqui | you'll see that a lot of my proposals try to generify "type" | ||
PerlJam | nothingmuch: btw, I'm sure that the actual type names are probably Integer, String, Number etc. and Int, Str, Num are convient shorthands. I don't think Junction should have a convienent shorthand. | ||
nothingmuch | so how do i specify a junction of types? | ||
like array shape? | |||
luqui | I've always wanted to do something like: role 2 { method is_prime() { 1 } } | ||
PerlJam: no, they're actually Int, Num, and Str | 17:56 | ||
nothingmuch | so that even a value can be a type? | ||
luqui | yeah | ||
or rather, a type can be a value | |||
nothingmuch | that makes more sense with junctions | ||
and generalizes where {} a bit, methinks | |||
luqui | uhhuh | 17:57 | |
nothingmuch | how does that fudge the runtime/compiletime mess? | ||
PerlJam | luqui: then I'll blame haskell for messing with my mind! ;-) | ||
nothingmuch | i think it would work if we had haskell like type inferrence | ||
except that it's not strict | |||
luqui | yeah, but it wouldn't be perlish | ||
nothingmuch | in that once you make a type more generic | ||
it stays that way | |||
haskell inference tends to try to find the most specific case | |||
and anything that is not really that case exactly with no fucking exceptions and i mean it, is a compile time error | 17:58 | ||
luqui | Larry said that type inference is a possibility as long as it doesn't yell at you | ||
nothingmuch | exactly | ||
i'd really like to be able to strictify type inferrence selectively | |||
luqui | I have to say, haskell's type inference has caught a lot more errors than C's type declarations | ||
nothingmuch | it has | ||
luqui | hmm | ||
nothingmuch | i am starting to like it | ||
luqui | well type inference is a difficult thing to implement | 17:59 | |
nothingmuch | and i really distrusted C's | ||
if we figure it out, though | |||
luqui | especially with the complexity of Perl 6's object model | ||
nothingmuch | MMD could be smarter | ||
smartmatch could be smarter | |||
luqui | yeah, and contexts in calls could be smarter | ||
nothingmuch | because the compiler will know much much more about the containers | ||
luqui | which would be awesome | ||
nothingmuch | and their values | ||
luqui | one problem with type inference is that it is counter-opaque | ||
nothingmuch | how is context insensitivity at the proxy level dealt with, btw/ | ||
opacity could just be a border | 18:00 | ||
type inferrence stops here | |||
luqui | yeah... | ||
nothingmuch: what do you mean by comments[-3] | |||
nothingmuch | it's class X's problem | ||
i don't recall if i sent a message about context insensitivity to p6l | |||
but it's one of the special cases i most hate dealing with in p5 | |||
wantarray should never be seen, if it's not at the leaf or the root of a call chain | 18:01 | ||
what do you mean by "comments[-3]"? | |||
;-) | |||
luqui | poor naming choice. nothingmuch[-3] | ||
nothingmuch | english is so much easier to type than say | ||
luqui | which is now nothingmuch[-9] | ||
nothingmuch | proxy level? | ||
luqui | yeah | ||
nothingmuch | sub foo { } | ||
is a wrapper for sub bar { } | 18:02 | ||
which takes bar's result | |||
and also sends it into gorch {} | |||
how does it do that, if bar is context sensitive | |||
luqui | oh yeah | ||
nothingmuch | and gorch is polymorphic | ||
luqui | Larry's thought of that too :-) | ||
nothingmuch | without actually caring about the fact that both are | ||
and what it's own context is | |||
luqui | he just hasn't come to a solution | ||
It's almost globbish: *foo = bar(); gorch(*foo) | 18:03 | ||
nothingmuch | ah, i did | ||
'retiring wantarray'' | |||
luqui | oh, excellent | ||
nothingmuch | again, no replies =) | ||
like my taint idea | |||
PerlJam | We need to get larry on here so that we can brainstorm in real-time with him. | ||
nothingmuch | and, ... | ||
PerlJam | (mess up his mind faster that way ;) | ||
nothingmuch | PerlJam: i asked him | ||
he said he doesn't want to do that, because he wants stuff logged | 18:04 | ||
and slowly | |||
and less ADD insensitive | |||
luqui | you mean sensitive? | ||
nothingmuch | i mean less disturbing | ||
luqui | anyway, your wantarray problem is a tough one | ||
nothingmuch | so that he can answer in his own time | ||
and not have to click on the irc window to see if new stuff has happenned every minute | 18:05 | ||
luqui | what it seems we need to do is to back-infer the type that bar() is supposed to return | ||
PerlJam | nothingmuch: It's saner that way for him. I'd do the same were I he. | ||
nothingmuch | right, type inferrence really would help DWIMery here | ||
luqui | The design calls are silent 40% or more of the time | 18:06 | |
nothingmuch | especially if it's weak | ||
(that is, type inferrence is not pedantic, just something you can leverege for sanity) | |||
luqui | It goes "Larry, problem", Larry: "............... well.................. we could (very good idea that he ends up rejecting)" | ||
nothingmuch | and it's good DWIMery | ||
luqui | and then two days later he posts a really really good idea | 18:07 | |
nothingmuch | because it's very deterministic and defined | ||
luqui | yeah | ||
nothingmuch | retiring wantarray was about a week ago | ||
luqui | but I don't think it's a good idea to start defining language semantics based on a feature that we're not sure we'll implement | ||
PerlJam | luqui: maybe instead of the conference call, you guys should IRC once a week | ||
nothingmuch | well, then you design for both cases | ||
luqui | I think that would be dangerous | ||
nothingmuch | isn't that how you find out what looks better in the end? | 18:08 | |
you could autothread it ;-) | |||
oh wait, we don't know how to do that safely | |||
luqui | nothingmuch: and the problem with that is that it starts restricting how we can define our type system | ||
PerlJam | Everyone of you with the exception of Larry already regularly IRCs :) | ||
nothingmuch | and then synopses will be contradicting | ||
luqui | damian? | ||
nothingmuch | allison? | ||
rgs | jhi? | 18:09 | |
luqui | who's jhi? | ||
PerlJam | okay, and maybe damian (I don't think I've ever seen him on IRC) | ||
nothingmuch | isn't that jarkko? | ||
luqui | ahh | ||
PerlJam | He isn't part of the cabal is he? | ||
nothingmuch | is he even involved in p6? | ||
rgs | just throwing pumpkings in the arena | 18:10 | |
luqui | I don't think I've ever spoken to him | ||
weren't you a pumpking rgs? | |||
rgs | actually, I am one | ||
for 5.10 | |||
luqui | oh. neat. | ||
nothingmuch | i think i might have seen some occurances in parrot | ||
s/weren/aren/ | |||
PerlJam DCCs some sympathy to rgs ;) | |||
nothingmuch | luqui: is Inline:: designed in p6? | 18:11 | |
rgs | sympathy, good :) | ||
tuits, better | |||
nothingmuch | i'd really like to mix and match given the fact that parrot "will make it easy" | ||
i just have no real clue how it will look | |||
luqui | nothingmuch: I don't think we've really thought about it | ||
Ingy did an awful good job in perl 5 | |||
we might just leave it up to him | 18:12 | ||
nothingmuch | i think he's already doing it =) | ||
luqui | good | ||
nothingmuch | oh, last thing | ||
in p5 there is no lightweight threads | |||
it's either two processes which can share some memory if you think it's worth it | |||
or completely synchroneous, ala Coro, Event, POE | 18:13 | ||
will we have proper threads | |||
luqui | lwall: "I think both the 5.005 model and the ithreads model are wrong to some extent" | ||
nothingmuch | that can be created and destroyed /fast/? | ||
luqui | the fast part is up to parrot | ||
we hope | |||
nothingmuch | 5.005 is more "right" for me | ||
it can't be fast just like that, obviously | |||
jabbot | pugs - 1064 - just uploading the File::Spec progress - | ||
nothingmuch | if we copy everything then it'll be slow, even with copy on write | 18:14 | |
because you have to make everything readonly first | |||
luqui | I think the threading model will be up to the parrot folks in general though | ||
because they're having to tackle it, and we're not thinking about it | |||
so whatever we do will probably be whatever parrot does | |||
nothingmuch | =/ | ||
i think that's asking for trouble, in a way | |||
luqui | so get on parrot's ass if you want a particular model | ||
nothingmuch | not giving requirements to a design team | ||
is not likely to come up synchroneous at the end | 18:15 | ||
luqui | I could bring it up today on the design call | ||
nothingmuch would like two things: | |||
throwaway threads | |||
that you create for cheap | |||
when you just want to do somehing and not be interrupted | |||
luqui | every time I chat here on wednesdays I end up having to get a piece of paper for the call | ||
nothingmuch | and two mix two things: | 18:16 | |
luqui | I think that's good | ||
nothingmuch | long running heavy computation | ||
and responsive interfacing | |||
into one thing | |||
without making the the heavy computation complex, so that it can do funny things | |||
this is a big design ease | |||
i just ate crap with it in p5 | |||
because i thought i was building a batch system | |||
PerlJam | luqui: tell pmichaud "hi" for me if he's on the call. He's been conspicuously absent from the places where I normally run into him. | ||
nothingmuch | and it turns out it should have a nice responsive web GUI too | ||
so now i'm sort of screwed | 18:17 | ||
PerlJam | I'm hoping that's a good thing and that he's focusing on pge and/or pugs | ||
nothingmuch | and i will probably resort to using signal handlers | ||
what about serializability? is that also for parrot? | |||
i'd like to be able to store closures in a DB, sometimes | |||
it makes things easier | |||
luqui | yeah, but they've declared their answer | ||
"we'll do serialization, and we'll serialize continuations too" | 18:18 | ||
which implies closures | |||
nothingmuch | are they serious about it? | ||
luqui | yep | ||
nothingmuch | i really don't see how that could be generalized well | ||
nothingmuch hopes that they get it right | |||
PerlJam | nothingmuch: #parrot exists you know :) | ||
nothingmuch | 0 members | 18:19 | |
"You were demoted from operator by ChanServ." | |||
oh well | |||
Khisanth | not this network :) | ||
luqui | yeah, and luqui doesn't follow parrot *that* closely | ||
nothingmuch | on perl.org, p'raps? | ||
PerlJam | nothingmuch: magnet #parrot | ||
nothingmuch: aye | |||
All that's happened lately on #parrot though is that chip has been having fun nick switching. | 18:20 | ||
perhaps you'll stir them up a little. | |||
nothingmuch tried | 18:21 | ||
bah, i got carried away | 18:22 | ||
i promised myself i'd fix currying today | |||
i think i'm going to try to be sort of busy | |||
luqui & { sleep 300; fg } | |||
jabbot | pugs - 1065 - adding some more File::Spec docs | 18:23 | |
nothingmuch | well, /I/ answered another one of my p6l posts ;-) | 18:25 | |
sorje | And you're complaining nobody's answering it.. ;-) | ||
luqui back | 18:36 | ||
vladtz | hello | 18:40 | |
yesterday I ran into problems with ghc5.4 for x86_64 | 18:41 | ||
markstos | vladtz: That sounds like a fairly old version of ghc. Is a newer version available for your platform? | ||
vladtz | today I tried using the i386 version of ghc6.4 | 18:42 | |
s/5.4/6.4/ sorry | |||
now it fails with asm errors, stillno luck (Fedore Core 3 gch64 rpm) | |||
pasteling | "vladtz" at 80.127.84.50 pasted "ghc 6.4 problems" (7 lines, 525B) at sial.org/pbot/8545 | 18:43 | |
vladtz | On the fedora haskell list I was told ghc for 64-bits lacks GHCi support needed for template syntac | 18:44 | |
kungfuftr | 125 subtests failing | 18:58 | |
nothingmuch | luqui: more ideas | 19:06 | |
will closures be introspectable, in a way? | |||
i mean, could i look inside one, and see what it does, what it's bound to? | |||
re: type inferrence: | 19:08 | ||
this would do wonders for unicode<->other codes | |||
and for string representation and parsing of numers | |||
i'd also like to do things like: | |||
FH is file | |||
or | |||
luqui | nothingmuch: about closures, umm... sortof | ||
nothingmuch | FH is viewed | ||
luqui | you probably can't look inside a closure unless we've kept its syntax tree around | 19:09 | |
nothingmuch | so that if i print "$data" into either, it gets displayed for the user | ||
i meant, could i do diotalevi type stuff to it | |||
luqui | and if we have, then you can look all you like | ||
diotalevi? | |||
nothingmuch | perlmonks | ||
he does funny stuff in p5 guts | |||
except you won't have to know p5 guts to do it | |||
luqui | splain | 19:10 | |
luqui is no monk | |||
theorbtwo | You should fix that. | ||
B::Deobfuscate. | |||
nothingmuch | i think he did it to demonstrate that inside out objects are also not a shotgun-in-the-livingroom type thing | ||
i can't remember when or in what context he said that | |||
i'll try to find the post | |||
B::Deobfuscate is a simpler example of diotalevisms, i think =) | |||
nothingmuch really respects him | 19:11 | ||
diotalevi++ | |||
the only one who didn't say i plagiarized MAPL on my first post | |||
because he actually read it to see the details | |||
theorbtwo wonders WTF MAPL is. | |||
nothingmuch | mastering algorithms with perl | 19:12 | |
theorbtwo | Ah. | ||
nothingmuch | i took the approx matcher | ||
and redid it with closures | |||
except i didn't quite title it right | |||
and then everyone said i was an asshole for plagiarizing | 19:13 | ||
except i wasn't showing off that I grok manber-wu | |||
i was showing off that i grok closures | |||
www.perlmonks.org/?node_id=315186 | 19:16 | ||
i know it's possible in pugs | |||
that's what i've been doing for a while ;-) | |||
jabbot | pugs - 1066 - Begin of an (OO) Email::Simple port. | 19:33 | |
nothingmuch 's mom is now on a cholesterol (chosthelerol, tee hee) | 19:55 | ||
diet | |||
nothingmuch is helping her with the red wine =) | |||
yay! larry answered! | 19:56 | ||
stevan | iblechb++ # for the Email::Simple | 19:58 | |
naddamucho | |||
wanna help me make :g work? | |||
kungfuftr | Email::Simple? | 20:00 | |
*blink* | |||
stevan | svn.perl.org/perl6/pugs/trunk/modul.../Simple.pm | ||
nothingmuch | stevan: naddamucho will not cause growl to pop a notification ;-) | 20:01 | |
stevan | nothingmuch: sorry | ||
you need a bi-lingual IRC client :P | |||
nothingmuch | ok, well, i fixed it | ||
try now | |||
stevan | naddamucho: hey | ||
nothingmuch | hola steffano! | ||
stevan | guten tag :P | 20:02 | |
so before you get too silly on read wine, wanna help me with some Haskell? | |||
nothingmuch | sure | ||
wine works slowly on me though | |||
last week i was in a wedding | |||
took 5 cups to get me willing to dance | 20:03 | ||
get me to be? english doesn't make sense for me | |||
nothingmuch tries to think on that one | |||
theorbtwo | ...make me willing... | ||
nothingmuch | good point | ||
theorbtwo | ...get me to be willing... | ||
stevan | 5 cups to get you on the dance floor | ||
nothingmuch | that makes sense too | 20:04 | |
nothingmuch should talk it sometime, not just type it | |||
i don't "hear" it otherwise | |||
stevan | nothingmuch is *not* a cheap date | ||
nothingmuch | oh i'm cheap ;-) | ||
theorbtwo | ...should speak it... | ||
nothingmuch | i'd do anything for free food, attention, more alcohol etc | ||
theorbtwo recommends watching DVDs in english. | 20:05 | ||
nothingmuch | theorbtwo: actually that was intentional | ||
theorbtwo | Oh, whoops. | ||
nothingmuch | =) | ||
even if it doesn't make sense, the point was to draw attention to the fact that it's 'talking', not just using it | |||
i think | |||
that's how i heard it in my head | 20:06 | ||
which again, doesn't make sense | |||
=( | |||
and hearing doesn't help much either | |||
i do that a lot | |||
but given a one week visit to an english speaking country, and I become much more coherent | |||
i think that's fair, because most of my usable english was not learned by conversation | 20:07 | ||
so anyway, staffenhof, what is your haskell problem? | |||
and please don't count on me being able to help ;-) | 20:08 | ||
stevan? | 20:11 | ||
jabbot | nothingmuch: stevan is gone. | ||
kungfuftr | heh, casey's liking the fact Email::Simple port is under way... looks like he's intrested in pugs | 20:12 | |
=0) | |||
nothingmuch | maybe we can get simon cozens to become an atheist this way ;-) | 20:13 | |
stevan is gugod-- | |||
steva? | |||
stevan? | |||
jabbot | nothingmuch: stevan is gugod-- | ||
nothingmuch | damn right, jabbot | ||
Corion | Two questions: What is the magic svn incantation to get the latest Pugs? And has somebody started on porting LWP ? | 20:15 | |
nothingmuch | hola Corion! | 20:16 | |
svn co svn.openfoundry.org/pugs | |||
and then you have ./pugs | |||
Corion | Hi nothingmuch ! (and the rest of the crowd too :) ) | ||
crysflame | hi, corion | ||
Corion | nothingmuch: Thanks! | ||
stevan | sorry nothingmuch | ||
client is on the phone | 20:17 | ||
nothingmuch | nono! your full attention is required at this time! | ||
Corion | (does Pugs have sockets at all? ) | ||
nothingmuch | Corion: err, i doubt it | ||
Corion | Yay - checkout was fairly quick :) | ||
nothingmuch | you could write a todo_test | ||
and then when it passes, err, find out ;-) | |||
crysflame | heh | ||
nothingmuch | with LWP todo_testing a phone home address, that should be very easy =D | ||
Corion | nothingmuch: Ah - well, I'll look how far I get with the native call interface and maybe hack up some sockets thing that only works on Win32 :) | 20:18 | |
nothingmuch | or you could stay involved with pugs | ||
Corion: it's probably easier than you think | |||
Corion | nothingmuch: Heh - having Pugs tell me when it's ready would also be fun, true :) | ||
nothingmuch | remember that haskell is a high level address | ||
ayrnieu | a HLA, if you will. | ||
nothingmuch | s/address/language/ | ||
Corion | nothingmuch: Well, I wanted to do a bit with Pugs and thought that starting a port of LWP would be a good thing :) | ||
nothingmuch | dad is confusing me, sorry | 20:19 | |
Corion | Yeah - maybe Haskell has enough sockets to get me started... | ||
nothingmuch | i would start with something a wee bit simpler if i were you ;-) | ||
what does sloccount LWP say? | |||
ayrnieu | Corion - oh, GHC certainly has socket support. Even somewhat OK support. | ||
Corion | nothingmuch: Ah, I wrote something like LWP for Ruby (and then came back to Perl), so writing it for Pugs shouldn't be too hard :) | 20:20 | |
nothingmuch | well, ok =) | ||
ayrnieu | Network.hs had a tiny maldesign, last I looked, but *that's OK*. | ||
kungfuftr | File::Path, Scalar::Util (some of it at least) and um... Set::Object! | ||
stevan | Corion: be forewarned that modules, packages and most importantly objects do *not* work in Pugs now | ||
nothingmuch | Corion: do you grok haskell yet? | ||
Set::Object++ | |||
Corion | stevan: Ugh - but something as simple as LWP::Simple doesn't need much of objects :) | 20:21 | |
kungfuftr | Set operations in general are lovely | ||
Corion | nothingmuch: No - I can read it, but I don't understand types... I need to read a book on that I fear. | ||
nothingmuch | Corion: well, do remember that pugs is 51 days old | ||
perlbot YAHT | |||
perlbot | Yet Another Haskell Tutorial -- www.isi.edu/~hdaume/htut/ | ||
Corion | (but it should be enough to learn from existing stuff and modify existing stuff) | ||
stevan | Corion: sub returns values are sketchy right now too :) | ||
nothingmuch | that helped most tof us | ||
Corion | I already read YAHT (I think), but I didn't understand types. | 20:22 | |
nothingmuch | and so are sub param bindings | ||
stevan | thanks to nothingmuch :) | ||
nothingmuch is working on that ;-) | |||
larry's post is confusing me | |||
ooh, guests are here | |||
bbiab | |||
stevan | Corion: dont let us discourage you though | ||
you can always port, and wait for the features | 20:23 | ||
thats what we did with most of the stuff in there now | |||
Corion | Hmmm. Param bindings aren't that necessary. But I guess I'll dig in and see how far I get and then bitch about it here :)) | ||
stevan | Corion: if you wanna see a port/hack which does work (sort of) look in ext/FileSpec/* | ||
but beware, it gets ugly in there | 20:24 | ||
Corion | stevan: Yeah - your port gave me the idea of thinking what module I wanted to port, and LWP was the one I wanted (to make use of continuations) | ||
stevan | Corion: glad to inspire :) | ||
Corion | BTW - I got to chapter 4 of YAHT but the explanation of Types told me nothing (or I don't get what types are about) | 20:25 | |
stevan | Corion: I havent read YAHT, and can't write Haskell myself, I'm just here for the Perl6 :) | ||
ayrnieu | Corian - in order to learn Haskell, I suspect that you will need to be able to leave many terms (such as 'monad') undefined for a while. | 20:26 | |
Corion | stevan: Writing Haskell isn't that important to me (at least now), I also mostly want to do Perl6 as some quick exercise :) | ||
stevan | Corion: wanna help with the OO test suite? | ||
Corion | ayrnieu: Yeah, I could do that, but I prefer to learn stuff properly :-) | ||
stevan: I first have to get Pugs installed/compiled and get my feet wet a bit with it, then I can maybe churn out some tests for OO stuff, yes :) | 20:27 | ||
stevan | excellent | ||
Corion | (and I'd want some OO stuff for LWP sooner or later :) ) | ||
Whooops - Pugs fails some tests in t/examples :) | |||
stevan | Corion: we have plenty of test failures in the current rev | ||
115-125 I think | 20:28 | ||
ayrnieu | Corian - ... even if you want to learn Haskell properly, you may need to do as I suggested. | ||
Corion | Ah - so it's nothing to worry about :) | ||
ayrnieu will be offline for a few days. | |||
stevan | Corion: they are on the TODO list | ||
Corion | ayrnieu: Ah - well, I'll skip on that for the moment I guess - I can read Haskell well enough, and I got far with being able to read C too :) | ||
Ah - yes - 125 failures (25/118 scripts) | 20:30 | ||
jabbot | pugs - 1067 - Both $mail.header("From") and $mail.head | 20:33 | |
nothingmuch | weeell | 20:39 | |
hyper defined as a circumfix:<Ā« Ā»> | 20:47 | ||
which returns an anonymous infix operator | |||
slurpy on both sides | |||
? | |||
theorbtwo | wouldn't that be circumfix:{'>><<'} ? | 20:49 | |
Er, circumfix:<Ā»Ā«> | |||
PerlJam | theorbtwo: Those guillemets don't know which way they're pointing | ||
stevan | nothingmuch: is a multi-line comment in Haskell {- -}? | 20:51 | |
theorbtwo | Yes. | ||
nothingmuch | i have no clue | ||
err, yes, theorbtwo, but what does it matter | |||
theorbtwo | {# ... #} is a compiler hint. | ||
Well, I'd call $a>>$b<<$c a circumfix operator macro with a strange middle parameter... possibly. | 20:52 | ||
Corion | How do I tell Pugs to search the lib/ directory ? pugs -Ilib doesn't work, and C<use lib 'lib'> doesn't work either ... | ||
stevan | Corion: you set the PERL6LIB env variable | ||
theorbtwo | Oh, hi, Corion! | 20:53 | |
I thought -Ilib was working now... but yea, PERL6LIB. | |||
Corion | Hi theorbtwo! | ||
theorbtwo: At least as of five minutes ago, -Ilib didn't work :) | 20:54 | ||
nothingmuch | gugod++ | 20:56 | |
Corion | Gah. With infallible instinct I beelined for ext/SHA1/SHA1.pm, which doesn't work yet. But using that would make stealing some http/socket code from Haskel soo much easier :) | 20:59 | |
nothingmuch | that's autrijus's latest hobby | 21:00 | |
Corion | nothingmuch: Yeah - I read that in his latest journal :) | ||
nothingmuch feels redundant, and also tends to repeat information that is already known | |||
use.perl.org/~autrijus/journal | |||
stevan | I don't think I like PCRE | 21:02 | |
or Haskell either right now | |||
nothingmuch | stevan? | ||
jabbot | nothingmuch: stevan is gugod-- | ||
Khisanth | PNCRE! :) | ||
PerlJam | blasphemer! | ||
nothingmuch | hah! | ||
stevan | I just spent all this time,.. only to realize I was changing code which was commented out :P | ||
theorbtwo | jabbot, forget stevan | ||
jabbot | theorbtwo: ok | 21:03 | |
Khisanth | hmm NPCRE | ||
nothingmuch | theorbtwo: this is an incentive for gugod to change it =) | ||
theorbtwo | jabbot, stevan is Stevan Little (STEVAN) | ||
jabbot | theorbtwo: ōæ½xA9Ņ„Hōæ½xA1H | ||
stevan | then once I realized it was commented out,.. it totally shattered my understanding of all this | ||
theorbtwo | Blink... WTF? | ||
nothingmuch | stevan: use syntax coloring | ||
stevan | nothingmuch: I think I will just stay away from Haskell for now :) | 21:04 | |
PerlJam | stevan: why? Because you thought your changes were having the effects you wanted? | ||
stevan | PerlJam: I was in way over my head | ||
I was trying to add the :g support to Reg-exp | |||
and I am barely literate in C, and no at all in Haskell | |||
and :g takes understanding both | 21:05 | ||
PerlJam | stevan++ refusing to be limited by his lack of understanding :-) | ||
nothingmuch | PerlJam++ | 21:06 | |
stevan | PerlJam: thanks :P | ||
coding_by_accident-- | |||
PerlJam | stevan: sometimes it's okay to jump into the deep end even if you don't know how to swim--you'll learn real fast that way (occasionally) | ||
nothingmuch can vouch for that | 21:07 | ||
at least perlbot karma nothingmuch can | |||
luckily in puters you can't really drown either =) | |||
Khisanth | PerlJam: or you drown! | 21:08 | |
stevan | svn revert is my friend :) | ||
PerlJam | Khisanth: metaphorical drowning is the best kind. | ||
Khisanth | only if you enjoy drowning | 21:09 | |
stevan | svn++ | ||
nothingmuch | it's like reading a book about heroin addicts | ||
if it's really well written, you can nearly experience it | |||
but then the book ends | |||
and woah! you're not a junkie! | |||
gugod++ | |||
stevan? | |||
stevan | nothingmuch? | 21:10 | |
PerlJam | Khisanth: no, because once you've metaphorically drowned, you get that "phew! I'm glad *that's* over" kind of feeling and hopefully you've learned something | ||
theorbtwo | nothingmuch++ | ||
nothingmuch | gugod++ | ||
PerlJam | nothingmuch: Have you ever read the book _Bore Hole_ ? | ||
gugod *phew* | |||
nothingmuch | gugod fixed jabbot, so it doesn't thing 'stevan is gone' or something | ||
and when people ask 'what?' it won't repeat the last 'what is ...' question | |||
thanks gugod! | |||
PerlJam | what? | 21:11 | |
:) | |||
nothingmuch delays bindSomeParams till larry replies | 21:20 | ||
does someone have a todo for me? | |||
luqui | nothingmuch: about threading | 21:21 | |
groups-beta.google.com/group/perl.p...c96b258981 | |||
musings. responses about it would be nice | |||
(bring it up on p6l if you like) | |||
stevan | nothingmuch: please do s:g:perl5/// :) | ||
nothingmuch | stevan: i think that is beyond me, but i'll try | 21:22 | |
theorbtwo | nothingmuch, do -Ifoo | ||
stevan | if you can just grok how regexp are made that might help | ||
nothingmuch | -I like in PERL6LIB? | ||
theorbtwo | Yeah. | ||
luqui | p6 design call going on now | ||
any Great Questions, shout | 21:23 | ||
nothingmuch gave a bunch of "details details" questions about param binding on p6l | |||
but aside from that i'm happy | |||
except for what we discussed earlier | |||
idea: | |||
is lazy semantics: | |||
it's an lvalue trait | |||
it causes the assignment to be made into a closure | 21:24 | ||
which executes as late as possible | |||
instead of now | |||
it's clear, it's controlled | |||
and it's, useful | |||
but it's not the default | |||
and it's not too magical | |||
luqui | hmm... | 21:27 | |
i think that deserves a proposal to p6l | |||
and I promise that I'll think about it and reply :-) | |||
nothingmuch | ok, i'll do that | 21:28 | |
but first i'll try to help stevan with :g | |||
stevan | yeah!!!!!!!!! | ||
PerlJam | lvalue trait? | ||
stevan | nothingmuch + Inf | ||
nothingmuch | PerlJam: the receiver gets to decide | 21:29 | |
PerlJam | It sounds more like a trait of the operator than the lvalue | ||
nothingmuch | wait, no, that doesn't make sense | ||
mostly i'd like it in the sender | |||
but sometimes in the receiver | |||
luqui | but it could be = that does the magic by checking the trait | ||
nothingmuch | you're right, more of a trait of the operator | ||
and also, lazily assigned values passed on simply retain laziness | 21:30 | ||
(see also fruitful IRC backlog with theorbtwo and someone else about how this could be fun) | |||
(this could be done with taint generalization!!!! reply to that message!) | |||
theorbtwo | Sounds like a trait of the values: if either side is but lazy then the thing being assined to ends up but lazy. | 21:31 | |
PerlJam | nothingmuch: when would you want it in the receiver? | ||
theorbtwo | (Which makes lazyness quite infectious.) | ||
nothingmuch | PerlJam: i don't know | ||
PerlJam | theorbtwo: yeah, it could be a trait of the rvalue. | ||
nothingmuch | it just made sense for a while | ||
PerlJam | (so far, only rvalue traits make sense anyway :-) | 21:32 | |
nothingmuch | it could be a trait of the container | ||
actually the context | |||
which belongs to the container and the operator together | |||
theorbtwo | I'm thinking on the rvalue or the operator makes sense. | 21:33 | |
Though I'm not sure how traits on an infix operator would look. | |||
nothingmuch | i see this relating to: | ||
my $var = BEGIN { make_a_value } | 21:34 | ||
theorbtwo | Hm, I wonder if a lazy prefix operator is enough. | 21:35 | |
my $var = lazy (42!); | |||
(Er, except there aren't numeric postfix operators, but you get the point.) | |||
nothingmuch | type inferrence could help make things like that optimized lazy | 21:36 | |
if luqui gets his way, we could have auto laziness in subsets where the compiler recognizes ops are pupre | |||
and then you wouldn't have to do that | |||
what it /would/ be useful for is to say: | 21:37 | ||
even though this op reads a file, and that should in general not be lazy | |||
i /do/ want it to be lazy | |||
because for this case i don't care | |||
PerlJam | Hmm. | ||
nothingmuch | my @array will vivify { } | ||
that's basically what i want | |||
but i don't want to tie | 21:38 | ||
and i don't want to if $sub ~~ Sub | |||
and so on, and so forth | |||
and i want to be able to send this stuff safely into the unknown | |||
that is, someone elses well behaved p6 code | |||
PerlJam | Suddenly it seems that control of the lazy is ueber important. Maybe it's just me though. | 21:39 | |
nothingmuch | lazy without control will not work in a non pure language, period | ||
unless it's guaranteed to be safe | 21:40 | ||
like haskell arranges for it to be | |||
it won't be safe | |||
and someone will cry | |||
or arrange for nested laziness myself | |||
i don't like the fact that gather will pause execution of a closure until it needs to take | |||
PerlJam | perhaps we need a use-like operator called "be" ... then we can lexically scope laziness with "be lazy" :-) | ||
nothingmuch | if it were lazy i would expect it to be all or nothing | ||
but going that far, for coolness, or whatever, is just too much | 21:41 | ||
=) | |||
use sloth; | |||
but then again | |||
since 'use integer' was made into a type system thingy | 21:42 | ||
for better fine grained control | |||
i think we should aim for this in new features too | |||
Corion | How do I find out in Haskell if a string starts with a certain substring? | ||
nothingmuch | also, laziness is definately /not/ good backwards compatibility behavior | 21:43 | |
because many people optimize with strictness in mind | |||
PerlJam | perl 5's "use integer" has always annoyed me because it doesn't do what I want. | ||
nothingmuch | www.cs.uu.nl/~afie/haskell/tourofprelude.html | ||
theorbtwo | You match it against ('x':rest), and rest will be the rest. | 21:44 | |
nothingmuch | www.haskell.org/ghc/docs/latest/htm....List.html | ||
Corion | theorbtwo: That means I'll have to manually to a match for every element in the string/list ? Ugh. | ||
theorbtwo | Note that that doesn't follow for longer strings -- it's ('-':'I':rest) for the rest. | ||
Corion | theorbtwo: Ah - that's nicer :) | 21:45 | |
theorbtwo | I don't know if you can match "-I" ++ rest -- probably not, since ++ is a regular function but : is a constructor. | ||
Corion | theorbtwo: How did you know that I want to match "-I" ? :-)) | 21:46 | |
theorbtwo is psychic. | |||
PerlJam | you could always take 2 string | ||
(and drop 2 string for when you need the rest) | 21:47 | ||
nothingmuch | stevan: i think this is not going to be too easy | 21:48 | |
stevan | nothingmuch: yup :) | ||
autrijus said it was,.. but I dont believe him | |||
autrijus++ | |||
nothingmuch++ # for just looking at it | 21:49 | ||
nothingmuch | i haven't given up yet =) | ||
stevan | nothingmuch++ # for perseverence | ||
perlbot highest karma | |||
nothingmuch | bah | ||
perlbot | The top 5 karma entries: nothingmuch: 40, autrijus: 40, C: 27, ~brad2901: 26, stevan: 24 | ||
nothingmuch | nothingmuch-- | 21:50 | |
stevan | C-- | ||
PerlJam | autrijus++ because he can never have enough | ||
stevan | who is brad2901? | ||
nothingmuch | tr/,/d | ||
he came in, and implemented some important feature (given, was it?) in a blitz | |||
and, i think that was it | 21:51 | ||
i think rregex just doesn't really provide the interface | |||
it only knows /i and /s vs normal | 21:52 | ||
stevan | but I think /g would work just like /i and /s | 21:53 | |
nothingmuch | yeah | ||
stevan | it seemed to me that PCRE just too a combined flag or "options" | ||
nothingmuch | but this would mean fixes at many levels | ||
PCRE seems to use an int | |||
stevan | yeah, if you look at compile in src/RRegex/PCRE.hs | 21:54 | |
-> Int -- ^ Flags (summed together) | |||
nothingmuch | uhuh | 21:55 | |
that's the first place i looked | |||
stevan | I had original made my changes at line 220 in src/RRegex/Syntax.hs | ||
but then I realized it was commented out | |||
nothingmuch | perhaps with [RegexOpts] where data RegexOps = I | G | S ... | ||
now i want to see how i can make mkRegexWithOpts a bit nicer | |||
and then they are simply applied to the flag in order | 21:56 | ||
stevan | yeah I messed with mkRegexWithOpts as well | ||
that was the only thing which worked, although it spewed warnings | |||
the one part I was unsure of was that there is no pcreGreedy | 21:57 | ||
just an pcreUngreedy | |||
nothingmuch | greedy = :g? | ||
stevan | yeah | ||
nothingmuch | why not "global"? | 21:58 | |
stevan | oh | ||
uhm | |||
I am not sure what the long form is | |||
but it makes it match all the instances | |||
nothingmuch | oh well | 21:59 | |
stevan | so I think of it as greed | ||
y | |||
Khisanth | stevan: for :g? | 22:01 | |
PerlJam | historically that's "global". "greedy" is something else entirely :) | ||
stevan | doesn't s///g match greedily? | ||
or is my nomenclature off? | |||
nothingmuch | g is the 9th bit | 22:02 | |
Khisanth | erm no | ||
that g is global :) | |||
PerlJam | stevan: if you mean "globally", then yes. :) | ||
Khisanth | greedy is on by default | ||
theorbtwo | Greedy is if * matches as much as possible or as little as possible. | ||
nothingmuch | Ungreedy makes .* behave like .*? | ||
i hope | |||
theorbtwo | (In perl, plain * is greedy; *? is ungreedy.) | ||
Khisanth | nothingmuch: with pcre? | ||
stevan | ok, ignore me then,.. i mean global :) | ||
nothingmuch | :g really just reiterates | ||
i don't know, i hope | |||
=) | |||
and i think reiterating is the wrapper's job | |||
stevan | pcreUngreedy, -- matches are not greedy by default | 22:03 | |
Khisanth | well not quite, according to pcre manpage | ||
nothingmuch | hmmm | ||
Khisanth | ungreedy makes * ungreedy but *? greedy | ||
stevan | according to src/RRegex/PCRE.hs | ||
PerlJam | Khisanth: that's so evil. | ||
theorbtwo | Uff. That's confusing. | ||
stevan | *glug* *glug* <<< that is me drowning :P | ||
Khisanth | that particular option also makes it incompatible with Perl RE :) | ||
nothingmuch | i think we should all read pcre docs first | 22:04 | |
Khisanth | should this really be including features that make it incompatible with Perl's RE for better or worse? | ||
Corion | theorbtwo: How did you know that I want to match "-I" ? :-)) | ||
PerlJam | Khisanth: why not? pcre will never be compatible with p6rules. | ||
Corion | Ooops - sorry | ||
theorbtwo | Hit talk, not reload. ;) | 22:05 | |
PerlJam | Khisanth: as long as it's clear that you're using PCRE | ||
Khisanth | PerlJam: neither is Perl's RE... | ||
nothingmuch | perlbot nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "nothingmuch" at 212.143.91.217 pasted "pcre docs: ungreedy" (6 lines, 294B) at sial.org/pbot/8549 | 22:06 | |
Khisanth | PerlJam: I was hoping that if I used perl5 REs in perl6, they would actually work exactly the same :/ | ||
you know, least suprise and all ... | |||
stevan | Khisanth: I wouldnt worry I think PCRE is temporary | ||
nothingmuch | By calling pcre_exec() multiple times with appropriate argu- | 22:08 | |
ments, you can mimic Perl's /g option, and it is in this kind of imple- | |||
mentation where \G can be useful. | |||
you need to send it startoffset | |||
www.pcre.org/pcre.txt | |||
executeExtract | 22:11 | ||
we seem to want that for :g | |||
stevan | execute calls c_pcre_exec too | 22:12 | |
nothingmuch | *yawn* | 22:13 | |
stevan | wow,.. its really snowing here now | 22:15 | |
nothingmuch: line 76 in Syntax.hs maybe? | |||
nothingmuch | 72? | 22:16 | |
it just makes a lazilist with matchOnce ;-) | |||
stevan | *sigh* why does autrijus have to sleep :P | 22:18 | |
pasteling | "Corion" at 217.86.59.98 pasted "Types question - why doesn't this work when I add the types?" (15 lines, 393B) at sial.org/pbot/8550 | ||
nothingmuch | there's actually an infix =~ | 22:19 | |
Corion | I got it working by punting and filtering out the empty string, but I think I should use "Maybe String" and "Nothing" instead | ||
nothingmuch | cool =) | ||
Corion | (and when I transfer my code into Run.hs, it blows up because of incompatible types still) | 22:20 | |
nothingmuch | Corion: Maybe stuff means you must put monad fun into it all | 22:22 | |
Corion | nothingmuch: I guess it's just too late in the evening for my brain %-) | ||
nothingmuch | Corion: perhaps another solution: | 22:29 | |
pasteling | "nothingmuch" at 212.143.91.217 pasted "-Ifoo" (14 lines, 233B) at sial.org/pbot/8551 | ||
nothingmuch | maybe you like that better | ||
or even nicer: | 22:30 | ||
pasteling | "nothingmuch" at 212.143.91.217 pasted "with drop" (12 lines, 204B) at sial.org/pbot/8552 | ||
Corion | nothingmuch: Yeah - that's OK too, but I would really want to introduce the types ( a -> Maybe a )... But maybe I just don't understand what the types are for :) | 22:31 | |
nothingmuch | what types? | ||
nothingmuch didn't do any types | |||
Corion | nothingmuch: Yes, but I want to do types. | 22:33 | |
nothingmuch | what for? | ||
line 48 of Run.hs: (libs, args) <- getLibs environ args | |||
Corion | nothingmuch: Or rather, when integrating the stuff with Pugs, I get type errors, so something in my understanding must be wrong | 22:34 | |
nothingmuch: Line 48 looks different in my version, but I added something to that effect, yes. | |||
(or did I miss somebody adding -I support already? :) ) | 22:35 | ||
nothingmuch | i don't think | ||
that's what i suggested changing | 22:36 | ||
Corion | Ah. It was just plain stupidity on my part. Cargo-culting only gets you so far :) | 22:37 | |
nothingmuch | i have a diff you might be interested in | 22:38 | |
Corion | (at least Pugs is now compiling again. I should now write a test against -I ...) | ||
nothingmuch | want to share? | ||
ninereasons | is a "topic" going to be read-only by default? | 22:39 | |
pasteling | "Corion" at 217.86.59.98 pasted "-I support for Pugs (preliminary, only against Run.hs, needs equivalent change in Main.hs)" (23 lines, 785B) at sial.org/pbot/8554 | ||
Corion | nothingmuch: Needs the reverse of your line 48 applied: | ||
libs <- getLibs (args) (environ) | |||
... and the same in Main.hs | |||
nothingmuch | ok, that's good | 22:40 | |
except, you need to also return the new arg list | |||
stevan | ninereasons: why do you ask? | ||
nothingmuch | so that -Ifoo doesn't end up in @*ARGS | ||
ninereasons | stevan, I wondered if we would be able to do something like map { $_++ } @a | ||
Corion | nothingmuch: Ooops - yeah, that's true ... But not tonight anymore :) | ||
nothingmuch | want me to take it on from there? | 22:41 | |
it's a simple fix | |||
Corion | BTW, Failed 25/118 test scripts, 78.81% okay. 125/2867 subtests failed, 95.64% okay. <- nothing new broke, right? | ||
nothingmuch: Yes, please do :) | |||
nothingmuch | i would go with isLibArg | ||
and map drop 2 | |||
and partition on that | |||
ok | |||
stevan | ninereasons: I dont think that would work in Pugs right now, but I imagine it will in perl6 | ||
Corion | nothingmuch: Ah, well - I'm not wed to my implementation :) | ||
nothingmuch | just because it's easier to shove it to partition ;-) | ||
Corion | nothingmuch: I like the pattern-matching declaration style, but the other way seems just as good. I don't know any Good Style for Haskell anyway :) | 22:42 | |
(and now it's bedtime for me. I expect results tomorrow, nothingmuch :)) | |||
nothingmuch | ciao | ||
Corion | Good night all :) | 22:43 | |
stevan | good night Corion | ||
ninereasons | stevan, am I correct to have supposed that my question concerns the properties of a "topic" ( that: "Topic eq $_")? | 22:44 | |
stevan | yes (but I am no expert on this) | ||
there are many variables in Pugs which should be mutable, but are immutable instead | 22:45 | ||
but that is a TODO item | |||
ninereasons | ok - that gets to the real issue. Thanks. | 22:46 | |
I'm still trying to sort out the TODOs and the real constraints | |||
nothingmuch | ninereasons: please write tests for these stuff | 22:48 | |
things | 22:49 | ||
they make it impossible not to define it later | |||
if you need commit access autrijus, obra, stevan or me can all give you that | |||
ninereasons | I'm not a programmer, though, nothingmuch. | ||
I am a luser of perl | |||
nothingmuch | tests are in perl =) | 22:50 | |
(perl6, that is) | 22:51 | ||
ninereasons | I would like to help; but I don't want to screw things up with bad commits | ||
stevan | ninereasons: thats what svn is for :) | 22:52 | |
nothingmuch | don't worry about that | ||
revision control lets you or anyone else cleanup | |||
and you can always test before you commit | |||
stevan | we can always revert back if there is something wrong | ||
ninereasons | then I would like to help | 22:53 | |
nothingmuch | ok, so just go for it =) | ||
any help is appreciated | 22:54 | ||
if you write a test, which is 50% good | |||
that's still 80% of the work | |||
ninereasons | (since y'all are being so careless^h^h^h^h^h^h nice) | ||
nothingmuch | carelessness has brought this project where it is today | ||
it's autrijus' mantra | |||
and it works =) | |||
theorbtwo | You're a meta-comitter now, nm? | ||
stevan | nothingmuch++ | ||
nothingmuch | committerbitter | 22:55 | |
=) | |||
stevan | me too :) | ||
nothingmuch | you should also be, theorbtwo | ||
you have a funny sleep cycle | |||
theorbtwo | Very. | ||
stevan | i went to sleep on night not one,.. and woke up the next morning and I was :P | ||
with theorbtwo we would be covered 24/7 for sure :P | |||
all major time zones I think | 22:56 | ||
theorbtwo ponders a reorg of AUTHORS. | |||
stevan | theorbtwo: I think it is alphabetical | ||
theorbtwo | It is. | ||
stevan | to minimize egos maybe? | ||
theorbtwo | To whit, alphebetical by what appears first on the line. | 22:57 | |
Well, I did it because that's how Aut had it. I suspect Aut had it that way because that is the correct way to alphebetize Han names. | |||
theorbtwo wonders if autrijus minds "aut". | 22:59 | ||
stevan | how were you going to re-org it anyway? | ||
nothingmuch | i think Autrijus Tang is actually reversed for a westerny appearance, otherwise Bestian Tang won't make sense, right? | ||
we'd better ask him | 23:00 | ||
stevan | who is Bestian? | ||
iblech++ # for Geo::Distance this time | |||
theorbtwo | Oh, I assumed they were unrelated people who happened to share a family name. There aren't that many of them. | ||
nothingmuch | in the perl6 interview he autrijus mentiones 'math minded brother Bestian' | 23:02 | |
theorbtwo | I meant reorg it to be more like the linux kernel's authors file, which is more like a flattened hash. | 23:03 | |
jabbot | pugs - 1069 - Port of Geo::Distance 0.08. | ||
pugs - 1068 - more File::Spec documentation and cleanu | |||
stevan | never seen it, so I have no idea what you are talking about :) | 23:04 | |
nothingmuch | i want one variation that takes two args | ||
how do i do context polymorphic functions in haskell? | |||
and gives back a pair | |||
and one that takes one arg | |||
and gives back a list | |||
stevan | ok, time for me too eat and hang with the wife and kids | 23:05 | |
see you guys later | |||
nothingmuch | beh! | ||
family smushiness is for nerds! | |||
stevan | nothingmuch: isnt it past your bedtime :P | ||
nothingmuch | if you are really a geek then you would be more|less nerdy | 23:06 | |
more&less nerdy | |||
pushing it, stevan | |||
stevan | nothingmuch++ | ||
theorbtwo++ | |||
autrijus++ | |||
nothingmuch | everyone++ | ||
stevan | iblech++ # for the Email::Simple test suite in perl6 too | 23:07 | |
nothingmuch | we are very touchy-feely with all this ++ stuff | ||
we should start hugging each other | |||
stevan | nothingmuch: its a virtual hug over the wires | ||
ok,.. I am going for real now | |||
adios | |||
nothingmuch | ciao! | ||
theorbtwo | Later, stevan. | 23:09 | |
theorbtwo wonders. | 23:10 | ||
perlbot karma everyone | |||
perlbot | Karma for everyone: 2 | ||
theorbtwo wishes there was an easy way to say "keep going till you can't keep going no more" in a regex. | 23:23 | ||
That is, make everything optional. | |||
Sadly, I think that's a bit too close to AI to be doable. | |||
luqui | theorbtwo: why do you want that? | 23:26 | |
theorbtwo | What I'm doing at present moment is a regex to grok the (present) AUTHORS format. | 23:27 | |
...in which pretty much everything is optional. | |||
luqui | what's wrong with a bunch of question-marks? | 23:28 | |
theorbtwo | It's rather verbose, and I keep having to introduce (?: ... ) blocks for them. | 23:29 | |
luqui | oh, that's all | ||
I thought you were talking about a real problem | |||
anyway, it really is bedtime now (up for 23 hours). night everybody | 23:30 | ||
luqui & | |||
theorbtwo | Sleep well. | ||
And long! | |||
ihb | luqui: is development of Math::LOgic::Predicate dead? | 23:32 | |
nothingmuch | pugs -Ifoo is implemented | 23:43 | |
twas a bit tricker than I thought | 23:44 | ||
1070 | 23:50 | ||
jabbot | pugs - 1070 - pugs -Ilib hack (getArgs added in getLib | 23:53 |