|
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 | |