Run Perl6 Now! & pugscode.org ('Overview', 'Journal') & pugs.kwiki.org & channel log: xrl.us/e98m & < autrijus> damn, my journal keeps getting obsoleted by #perl6. Set by Juerd_ on 12 March 2005. |
|||
pasteling | "zgrim" at 10.0.0.1 pasted "cpu intensive math and pugs mem leaks" (19 lines, 412B) at sial.org/pbot/8376 | 00:07 | |
theorb | Anybody about who has a clue from POD? | 00:41 | |
webmind | clue? hmmm.. no.. I lost clue a few hours a go i think.. | ||
theorb | I need a sub that converts a /string/ of POD and gives me back a /string/ of HTML. | 00:44 | |
Jonathan_ | Not quite a sub, but search.cpan.org/~swmcd/Pod-Tree-1.11/pod2html | 00:48 | |
theorb | Dammit! | 00:50 | |
1. If dest is a HTML::Stream... 2. If dest is a reference... IO::File... 3. ...name of a file. | 00:51 | ||
bd_ | Is there a defined name for the exit continuation (or a function anyway) to escape the current block? | ||
theorb | I don't want it in a frikin file! | ||
I hate it when modules try to be too smart. | |||
bd_ | theorb: can you pass it an IO::String? | 00:52 | |
theorb | Possibly. | ||
I'd prefer not to resort to tricks like that. | |||
...though. | |||
jabbot | theorb: thou speakst also ye olde English? | ||
theorb | jabbot, I wish I did, it could come in handy when trying to speak german. | 00:53 | |
jabbot | theorb: Do you really doubt you did? | ||
theorb | |||
D'oh. | |||
Did what? | |||
bd_ | hmm, if I name a lexical eg "_block_exit" will it be invisible from the perl 6 code? | 01:15 | |
theorb | Yes, but don't do that. | ||
Instead, give it a $=_name... I think. | |||
bd_ | $=? | ||
theorb | $= is used for scalar variables that are metadata from the compiler to the program being compiled. | 01:16 | |
bd_ | ah | ||
theorb | There's no reason that it can't be visible from the p6 code, is there? | ||
bd_ | this is lexically scoped to the innermost block - $? would be better probably | ||
no reason, it's just not defined afaik | |||
theorb | Oh, $? might be better... donno. | 01:17 | |
bd_ | It's basically a function which exits from the innermost brace-delimited block | ||
theorb | That was why I was thinking _. | ||
bd_ | my when construct aliases it to break | ||
hm, $?_BLOCK_EXIT sound good? | |||
theorb | Oh, so it's like $?CALLER_CONTINUATION, but for the ret block and not the return block. | 01:18 | |
Sounds good to me. | |||
bd_ | Okay. *tweaks* | ||
theorb | (But I don't know much.) | ||
bd_ | meh, it can be changed by altering a few strings | ||
theorb | Right. | 01:19 | |
bd_ | hm, when I rebind it to break; do I need to change subName in the Sub structure? | ||
codesnik | perl6 definitely going to have much more ALL_UPPER_CASE identifiers. :\ | ||
theorb | ...no idea. | 01:20 | |
codesnik, that's rather a good thing, in my mind. Most of them will never, or very rarely, be used. | 01:21 | ||
But when they are used, and used well, they can do amazing things. | |||
codesnik | 799 unread messages in perl.perl6.language.. damned work:) there's definitely something cool going on last month | 01:23 | |
bd_ | hmm, interesting, I can't access the automatic $?_BLOCK_EXIT from the perl6 code, but I can create a new one and override it | 01:24 | |
oh, nm | |||
autrijus | greetings. | 01:45 | |
theorb | Allo, autrijus! | ||
autrijus | bd_: your email? I need to make you a committer | 01:46 | |
bd_ | autrijus: [email@hidden.address] should work | ||
autrijus | ok. add yourself to AUTHORS too | ||
welcome aboard! | |||
bd_ | Thanks :) | 01:47 | |
jabbot | pugs - 925 - * libpcre is now built dynamically. | ||
autrijus | so, people who had pcre segfaults, try again? | ||
bd_ | hmm: | 01:49 | |
pugs> { my $_ = 4; $_ } | |||
*** Error: Insufficient arguments for slurpy scalar at undef | |||
autrijus | right. | 01:50 | |
a sec | |||
commit a test? | |||
I just moved to this new tamsui place | |||
will be a bit of time before I resume hacking | |||
bd_ | willdo | 01:51 | |
should that be ok or todo_ok>? | |||
autrijus | ok | ||
let them fail! | |||
bd_ | :) | ||
theorb | PERL6LIB=./blib6/lib ./pugs -e '"foo" ~~ rx:perl5/o/' -- segmentation fault. | 01:52 | |
(t/rules/perl5.t gives me a parse fail.) | |||
autrijus | theorb: and that is built with pcre? | ||
libpcre that is | |||
weird. | |||
what about linking against your own libpcre? | |||
i.e. fix Makefile.PL | 01:53 | ||
and instead of -Lsrc/blib/pcre/ etc | |||
theorb | I saw it build a pcre; I assume it linked against it. | ||
autrijus | -L/usr/local/lib etc | ||
theorb | Got rid of the pcre -I, -L, and -i, should pick up the system one automagically. (From deb-packages.) | 01:54 | |
Going from make clean... | 01:55 | ||
Still segfaults. | 01:56 | ||
autrijus | sad. | ||
linux 64bit? | |||
theorb | Nope, P4/HT. | ||
autrijus frowns | 01:57 | ||
got a ssh for me? | |||
theorb | Hold on a bit, I can make one. | 01:58 | |
bd_ | hmm, that's interesting. The openfoundry TOS seems to be in chinese | ||
autrijus | wagner.elixus.org/~hcchien/termtouse.html | 01:59 | |
sf.net boilerplate | |||
bd_ | ah | 02:00 | |
theorb | autrijus, ssh info in /msg. | 02:01 | |
autrijus | okie. | 02:06 | |
I don't get segfaults. | 02:07 | ||
oh wait. | |||
nvm, rx:perl5 does. | |||
dreaming a fix now | 02:08 | ||
s/dreaming/attempting/ | |||
this HOP on my left hand side keeps distracting me. | |||
theorb | I'm torn about that; from the chapters I've read it looks like a great book. | 02:09 | |
autrijus | it is a great book! | ||
theorb | OTOH, it's expensive and I don't need yet another distraction. | ||
autrijus | will probably convince you that perl 6 is the way of future. | ||
(as many things there is verbose to write in perl5 and some are downright impossible) | |||
metaperl | what's a great book? | ||
autrijus | metaperl: { $^perl } | 02:10 | |
obra: try ./pugs -e '1 ~~ rx:perl5/1/' | |||
metaperl | smartmatching... | ||
autrijus | metaperl: mjd's new book, "metaperl" | ||
metaperl | oh | ||
autrijus | I mean, "higher order perl" | ||
metaperl | that's good to hear | ||
theorb_ | autrijus, reconnect. That was the 24-hourly IP change. | 02:11 | |
autrijus | ok | ||
so, obra here has the same segfault | |||
so persumably it's a linux thing. | |||
I'll fix locally :) | 02:12 | ||
02:13
theorb_ is now known as theorbtwo
|
|||
autrijus | ahh. -fPIC | 02:15 | |
that was it. | |||
autrijus thinks a bit | 02:16 | ||
stevan | hey autrijus | 02:38 | |
howdy metaperl | |||
theorbtwo | Howdy, stevan. | 02:39 | |
stevan | hey orb | 02:40 | |
im compiling with reg-exp again | |||
obra | stevan: autrijus is off reading manga | ||
stevan crosses his fingers | |||
obra: hows Taiwan? | 02:41 | ||
ld: warning -L: directory name (src/blib/arch/auto/pcre) does not exist | |||
ld: can't locate file for: -lpcre | |||
theorbtwo | stevan, autrijus figured out the problem a bit ago, and is thinking of a solution... read recent backlog. | ||
stevan | whoops | ||
theorbtwo: yes I am reading now | |||
theorbtwo | Oh, obra, that was you he was picking up? | ||
obra | theorbtwo: yes | 02:42 | |
theorbtwo | I recently heard that the Japanese use more paper on manga then toilet paper. | 02:45 | |
(I suspect this says more about the prevalance of bidets then anything else, however it is amuzing.) | |||
stevan | theorbtwo: my friend recently came back from teaching english in japan | 02:46 | |
some of the manga he brought back was like 600+ pages thick on cheap newsprint | |||
autrijus | theorbtwo: still fixing your bug | 02:47 | |
jabbot | pugs - 928 - * fix link path | ||
pugs - 927 - Test for { my $_ = 1; $_ } | |||
pugs - 926 - Add myself to AUTHORS | |||
autrijus | stevan: try again? | ||
stevan | cool stuff, couldnt read a word of it :P | ||
autrijus: trying right now | |||
theorbtwo wonders if he should take up reading german comic books. | |||
stevan | theorbtwo: I used to collect them when I lived over there | 02:48 | |
english is so close to german in some ways it actually helped me learn the languaage | |||
metaperl | hi stevban | 02:49 | |
stevan, sorry | |||
stevan | hey metaperl | ||
theorbtwo | Still segfaults for me. | ||
metaperl | hi | ||
autrijus | theorbtwo: right, I'm still fixing that. | ||
stevan: if it builds, try | |||
./pugs -e 'say(3 ~~ rx:perl5{3})' | |||
theorbtwo: GHC 6.4 or 6.2.2? | |||
stevan | autrijus: ok | ||
autrijus | obra has 6.2.2, so I guess it's independent of ghc version | 02:50 | |
theorbtwo | 6.2.2 | ||
autrijus | oh. | ||
then maybe dependent after all. | |||
stevan | should I upgrade to 6.4? | ||
theorbtwo | There's an uninstalled ghc 6.4 sitting in /usr/src/ghc6.4, IIRC. | ||
autrijus | stevan: no, probably no need too | ||
stevan: still building? | |||
stevan | autrijus: yes | ||
theorbtwo | Oh, no, I rm'd it. | 02:51 | |
autrijus | that's fine. obra is looking for ghc 6.4 update | ||
theorbtwo: so do you have a correctly munged hsregex 0.2 tree | |||
stevan | autrijus: the build failed | ||
autrijus | that builds? | ||
stevan | Linking ... | ||
ld: can't locate file for: -lpcre | |||
autrijus | if yes, let me know hte path | ||
stevan: ok. is there a src/blib ? | |||
stevan | yes | ||
autrijus | and what is in its arch/ ? | 02:52 | |
theorbtwo | I have a hsregex 0.2, and it seems to run. | ||
stevan | and auto/ folder | ||
thats all | |||
autrijus | theorbtwo: ok, path to it? | ||
stevan: so, empty? | 02:53 | ||
stevan: is there a src/pcre/blib/ ? | |||
theorbtwo | /usr/src/hsregex-0.2 | ||
autrijus | danke. | ||
stevan | nope, arch/auto/libpcre/libpcre.bs & libpcre.bundle | ||
theorbtwo | You may need to log out and back in to pick up your src group, just added you. | ||
autrijus | ok. | 02:54 | |
stevan: which arch? src/blib/arch or src/pcre/blib/arch ? | |||
stevan | that is src/blib/arch | ||
src/pcre/blib does not exist | |||
autrijus | got it. | 02:55 | |
SMK | 2,15 ōæ½xA1ōæ½xEE <ōæ½xBFōæ½xECōæ½xC0ōæ½xD6IRC> ōæ½xD0ōæ½xC2ōæ½xC4ōæ½xEAōæ½xB0ōæ½xE6 ōæ½xA1ōæ½xEE | 03:04 | |
theorbtwo | English, please? | 03:05 | |
SMK 10ōæ½xB6ōæ½xD413autark-jp10Ėµ:12 10how to install pugs?I have downloaded the win32 bin package.but no .exe file! 12 | |||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210Here are many fans!:-) 12 | 03:06 | ||
theorbtwo | There aren't any binary packages of pugs yet, as far as I know. | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210how to install pugs?I have downloaded the win32 bin package. but no .exe file 12 | |||
obra | hang on | ||
autrijus | hey. | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210www.jwcs.net/users/jonathan/perl6/ 12 | |||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210<quote>Download Binary Build Of Pugs For Win32: ZIP File 12 | |||
jabbot | pugs - 929 - Correct next test | 03:07 | |
autrijus | SMK: ōæ½xD6ōæ½xD0ōæ½xCEōæ½xC4ōæ½xB5ōæ½xC4ōæ½xEEōæ½x81É«ōæ½xBFōæ½xC9ōæ½xD2ōæ½xD4ōæ½xEAPōæ½xB5ōæ½xF4ōæ½x86ōæ½xE1 :p | ||
SMK: ōæ½xBBōæ½xF2ōæ½xCAōæ½xC7ōæ½xD2ʵōæ½xBD #perlchina | |||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210just a moment 12 | |||
autrijus | SMK: ōæ½xDF@ōæ½xD1eōæ½xBAܶōæ½xE0ōæ½xC8Ė]ōæ½xD3ōæ½xD0ōæ½xEF@Ź¾ GBK ōæ½xB5ōæ½xC4ōæ½xC4ōæ½xDCōæ½xC1ōæ½xA6 , sorry | ||
SMK: just unzip the .zip file using WinZip | 03:08 | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210I can't find any file run correctly 12 | 03:09 | ||
obra | SMK: autrijus is on the telephone | 03:10 | |
ninereasons | I don't see any binaries in that "binary", either | ||
obra | he says that binary build appears broken | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210how to disable the color 12 | |||
autrijus | SMK: try download mIRC | 03:11 | |
www.mirc.com | |||
Odin-LAP | Hm. | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210thanks:) 12 | |||
Odin-LAP | What's the replacement for $#foo variables, again? | 03:12 | |
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210Š°ōæ½xB6ōæ½xF1ōæ½xB5ōæ½xC4ōæ½xB6ōæ½xABōæ½xCEōæ½xF7 IO::Promt :) 12 | |||
autrijus | Odin-LAP: not sure. | ||
Odin-LAP | Hm. | ||
Odin-LAP goes off into the specs. | 03:13 | ||
autrijus | Jonathan's build is broken. | ||
theorbtwo | I think .kv or .keys, but that's certianly not a direct replacement. | ||
autrijus | bad. | ||
taking it down. | |||
Odin-LAP | theorbtwo: Very far from it, in fact. $#foo -= 2 or somesuch is handy, sometimes. ;) | 03:14 | |
SMK 10ōæ½xB6ōæ½xD413Odin-LAP10Ėµ:12 10why .kv ,but not .value? 12 | |||
autrijus | SMK: try getting mIRC or Chatzilla :-) | ||
SMK: irc.elixus.org/ has instructions | |||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210I'm downloading Mirc now.just a moment 12 | 03:15 | ||
stevan | Odin-LAP: are you talking about getting an array length? $#foo is length of @foo? | ||
autrijus | the length of @foo - 1 | ||
theorbtwo | $#foo is the index of the last element. | ||
0+@foo is the length. | |||
stevan | 1 - +@foo then | 03:16 | |
autrijus | S02.pod:The C<$#foo> notation is dead. Use C<@foo.end> or C<[-1]> instead. | ||
Odin-LAP | stevan: Yes. A mutable value. | ||
stevan | actually, what autrijus said is better | ||
Odin-LAP | Damn. :/ | ||
autrijus | @foo.end can still be mutable. | ||
Odin-LAP | True. | ||
autrijus | ok, I need to take a nap and get the pcre bug fixed. | ||
then, I'll look into remaining multidim hash deref things | |||
and cut a new releast tonight. | 03:17 | ||
release, even. | |||
meanwhile, have fun :) | |||
theorbtwo | Cool. | ||
autrijus & | |||
bd_ hopes to get given and when in soon :) | |||
Odin-LAP | Exceptions! | 03:18 | |
:p | |||
MACROS! ;) | |||
theorbtwo | ...can wait until the release after next. | ||
bd_ | I think perl6 rules would be a good idea before macros ;) | ||
Odin-LAP isn't making demands, just noting lusted-for features. ;) | |||
bd_: ;> | |||
stevan | bd_: I am hoping for objects first :) | ||
obra | mm. objects | 03:19 | |
theorbtwo | Objects are my big wishlist item. | ||
bd_ | Well, yeah, objects would be nice | ||
SMK 10ōæ½xB6ōæ½xD413ōæ½xB4ōæ½xF3ōæ½xBCōæ½xD210Ėµ:12 1210I use mIRC , but how to disable color display? 12 | |||
bd_ | perl5 regexes plus objects would make a usable language imo :) | ||
stevan has been porting perl5 object to perl6, and is already in love | |||
and they dont even compile yet :) | |||
bd_ | roles will be great for Acme:: modules :) | 03:20 | |
stevan | I could wait on roles, I just want classes and methods | ||
multi-methods .... yummy | |||
metaperl sticks his neck out | 03:21 | ||
I'm not sure this is entirely true, but it probably is | |||
stevan | metaperl: not sure what is true? | 03:22 | |
metaperl | the cool thing about Haskell is that syntactic sugar is just that. List Int and [Int] mean the same thing | ||
I wish I could demonstrate this somhow | |||
what I just said | |||
metaperl heads to #haskell | |||
theorbtwo | OK, I'm going to bed before I face-plant into my laptop. | ||
metaperl | lol@theorbtwo | ||
stevan | guten nacht theorbtwo | 03:23 | |
metaperl: that makes sense | |||
assuming [] is list notation of some kind | |||
metaperl | yes it is | ||
stevan | I like the wordier, but still cool perl 6 C< Array of Some::Object @objects > | 03:24 | |
SMK 10ōæ½xB6ōæ½xD413metaperl10Ėµ:12 10ok ,now? 12 | 03:25 | ||
stevan | or Array of Int rather | ||
SMK 10ōæ½xB6ōæ½xD413autark-jp10Ėµ:12 10ok? now,I mean the color 12 | |||
autrijus | still bad :-( | 03:26 | |
bd_ | SMK: AFAIK, mIRC does not insert those colors by default - do you have a script installed of some sort? | ||
autrijus | but, I really need to be off & | ||
SMK 10ōæ½xB6ōæ½xD413autark-jp10Ėµ:12 10me too 12 | 03:28 | ||
SMK 10ōæ½xB6ōæ½xD413autark-jp10Ėµ:12 10how to turn off? 12 | |||
cm | o0 | 03:29 | |
bd_ | Close the window? | ||
03:31
mandarin is now known as Qiang
|
|||
Steve_p | Eeek, holy unicode! :) | 03:32 | |
bd_ | Is that even unicode? It's hard to tell, the charset convertor script here acts weird at times | 03:33 | |
ingy | hola | 03:35 | |
firzen | hello , I've came back | 03:43 | |
Is it ok ? now | |||
cm | yes | 03:44 | |
firzen | I want to try pugs , but just have a win2003 platform with 5G harddisk | 03:45 | |
Is pugs need ghc virtual machine first? | 03:46 | ||
bd_ | ghc is a compiler actually, but yes | ||
haskell.org/ghc/download_ghc_64.html#windows | 03:47 | ||
jabbot | pugs - 930 - Implement given and when; un-todo some o | ||
firzen | A report said that your good English is cause by a paper game,so I hope by developing my love for the pugs as well as impove my English. So I can get A mark in test :-) | 04:15 | |
autrijus | 04:16 | ||
Odin-LAP | A worthy goal! | ||
firzen | Thanks | 04:18 | |
I have written a session package in perl5,named DigiSession.I hop I could covent this package into pugs. | 04:19 | ||
Khisanth | you convert it into perl6 | 04:29 | |
firzen | I hope I could finish this worthy job.And thanks "convert" | 04:42 | |
gaal | morning all. | 05:17 | |
autrijus | greetings! | 05:21 | |
autrijus wakes up and resumes haxx0ring | 05:22 | ||
gaal | autrijus, the sleep golfer | ||
autrijus | heh :) | ||
ingy | hola autrijus | 05:23 | |
firzen | Is anyone like listen music while working | ||
Are there | |||
gaal | autrijus, don't even know if it's relevant any longer, but that warning about qualifiers in PCRE you asked me to try s/register //-ing? it didn't help | 05:24 | |
ayrnieu | Does anyone like to listen to music while working? Yes, firzen; I tend to listen to cliqhop on SomaFM(.org) | 05:25 | |
gaal | i do except before coffee/tea because at those times my mind is foggy and i forget important things like music. | ||
ingy | autrijus: yapc.kwiki.org/taipei/index.cgi?hackthon | 05:28 | |
doing a little rerranging | |||
firzen | somafm.org wonderful work | 05:32 | |
dvergin | Hi, all. I'm just back from 2 days off-line. Can compile pugs on my WinXP system -- Says: " 'cl' is not recognized as an internal or external command". What's up with that and how do I get back in business? | 05:33 | |
s/Can/Can't/ | |||
autrijus | dvergin: just a sec | 05:34 | |
I'll fix it in a minute | |||
gaal | autrijus, on mingw at least there are build failures related to pcre | 05:35 | |
firzen | Can't support a built package on win32 | ||
? | |||
I don't want to install a big complier | 05:36 | ||
autrijus | firzen: we will make built package on 6.2.0 and on | 05:41 | |
Jonathan contributed automated builds | |||
but it is apparently broken | |||
if you can help writing him an e-mail, that'd be best | 05:42 | ||
but if you want to help pugs development, you will need GHC eventually :) | |||
firzen | ok, I will do it | 05:50 | |
autrijus | dvergin: still there? | ||
dvergin | Yup. | ||
autrijus | dvergin: try compiling things again. | ||
r931 | |||
dvergin | Which respository? svn.openfoundry.org/pugs/ or svn.perl.org/perl6/pugs/trunk/ ? | ||
autrijus | pugs -e "say 4 ~~ rx:perl5/4/" | 05:51 | |
openfoundry. | |||
dvergin | Stand by. | ||
pasteling | "dvergin" at 209.166.89.145 pasted ""ghc.exe: no input files" on WinXP" (35 lines, 1.5K) at sial.org/pbot/8382 | 05:54 | |
jabbot | pugs - 931 - * back out to plan A. | 05:57 | |
autrijus | is it possible that you have a ghc.bat in PATH? | 05:58 | |
try typing "ghc.bat" | |||
firzen | I don't know Jonathan's email | 05:59 | |
autrijus | [email@hidden.address] I think. | 06:00 | |
dvergin: ok, try r932. | |||
dvergin | autrijus: Yes I do have a ghc.bat. That's the way I set it up. | ||
C:\bin\perl6\svn.openfoundry.org>type \bin\ghc.bat | |||
\ghc\ghc-6.4\bin\ghc.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 | |||
autrijus | yes. and that was why it breaks. | ||
r932 should work for you. | |||
dvergin | Trying now... | 06:01 | |
autrijus | if it does not, fix your %1 etc | ||
so it says | |||
\ghc\ghc-6.4\bin\ghc.exe %* | |||
because there are more than 9 args. | |||
dvergin watches happy-making things flash by on the cmd window... | 06:03 | ||
nothingmuch | morning | 06:04 | |
autrijus | dvergin: when it's done try | ||
pugs -e "say $1 if 'regex' ~~ rx:perl5/.(e.e)./" | |||
hi nothingmuch | |||
pasteling | "dvergin" at 209.166.89.145 pasted "Many warnings when compiling under WinXP - should I worry??" (109 lines, 6.1K) at sial.org/pbot/8384 | 06:05 | |
autrijus | those warnings are known. | ||
dvergin | But it seems to end okay. Now making test. | ||
autrijus | uh, try that oneliner first. | ||
dvergin | OUTPUT: ege | 06:06 | |
autrijus | yes! yes! | ||
congratulations, you have the perl 5 regex at your disposal. | |||
dvergin | Yah, I saw that in your daily post. | ||
jabbot | pugs - 932 - * address GHC by name. | 06:07 | |
dvergin | But make test emits icky things | ||
autrijus | yes. I need to get to that. | ||
06:08
cnhackTNT|work is now known as cnhackTNT
|
|||
autrijus | o/~ for god wrote in lisp code / when he filled the leaves with green o/~ | 06:09 | |
nice music for coding sessions. | |||
dvergin | OK. This is enough to let me go to bed with a smile on my face and pick up tomorrow. Thanks autrijus. | ||
autrijus | good night dvergin! | ||
ninereasons | eek 932 gives me my first build error with pugs. | 06:14 | |
autrijus | eek. | 06:15 | |
nopaste? | |||
ninereasons | perlbot nopaste | 06:16 | |
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "ninereasons" at 199.107.164.126 pasted "build error in 932" (24 lines, 1.2K) at sial.org/pbot/8385 | 06:17 | |
autrijus | linux? | ||
ninereasons | yes - debian | ||
autrijus | ix86? | ||
ninereasons | i686 (sorry - I'm slow in irc) | 06:18 | |
autrijus | ninereasons: so | 06:22 | |
gcc 3.4? | 06:23 | ||
ninereasons | gcc version 3.3.5 (Debian 1:3.3.5-8) | ||
autrijus | ok. | ||
ninereasons | is that the problem? | ||
Glasgow Haskell Compiler, Version 6.4, for Haskell 98, compiled by GHC version 6.2.2 | 06:24 | ||
autrijus | ok. | 06:25 | |
ayrnieu gets five undefined reference errors to pcre functions on 932, in the final Linking step. | 06:26 | ||
ninereasons | and I left out the context of that nopaste. | ||
"In file included from /tmp/ghc32080.hc:6:" | |||
ayrnieu | is a particular version of PCRE needed? | ||
autrijus | try again | 06:27 | |
both ninereasons and ayrnieu | |||
ayrnieu: no, pugs comes with pcre | |||
nothingmuch | work & | ||
pasteling | "ninereasons" at 199.107.164.126 pasted "build error in 933" (6 lines, 282B) at sial.org/pbot/8386 | 06:29 | |
ayrnieu | likewise. Probably because of this: Use of uninitialized value in concatenation (.) or string at Makefile.PL line 56 | ||
autrijus | fixed. | ||
r934. | |||
ayrnieu | seems OK, now. | 06:31 | |
ninereasons | yay | ||
autrijus | does regex work? | 06:32 | |
./pugs -e "say 1 ~~ rx:perl5/1/" | |||
I expect a segfault :) | |||
ayrnieu | it prints the 1 first, though =) | ||
autrijus | so it does segfault =) | 06:33 | |
ninereasons | no segfault in the interactive shell | ||
06:33
Aankh|Clone is now known as Aankhen``
|
|||
autrijus | even if you quit it? | 06:34 | |
ayrnieu | It segfaults for me in the interactive shell, however. | ||
ninereasons | none from my CLI either. | ||
autrijus | so it Works for ninereasons. | ||
ayrnieu | er, spooky. | ||
ninereasons | "SUCEEDS UNEXPECTEDLY" | 06:35 | |
autrijus | ayrnieu: r935. | ||
ninereasons | I still get a seg fault with :r, though :-( | 06:36 | |
and with "?" | |||
jabbot | pugs - 935 - * trade segfault for memleak. | 06:37 | |
pugs - 934 - * it's _o, not _obj | |||
pugs - 933 - * on non-win32 just use gcc. | |||
ayrnieu | missing from my kit: util/split_test_catalog.pl | ||
lightstep is astonihed: more than 100 revisions in 3 days | |||
ayrnieu | autrijus - no segfault, now. | 06:38 | |
autrijus | lightstep: that is the normal rate. :) | 06:39 | |
30~40 per day | |||
ayrnieu: well, commit a MANIFEST fix then? | 06:40 | ||
ok. I hope people are fine with me trading segfault for memleak | |||
at least for this release. | |||
it's not like it's terribly leaky anyway. | |||
ingy | autrijus: let's svn:ignore the MANIFEST | ||
autrijus | ingy: sure, let's. | ||
and rm it | |||
is that the plan? | |||
ayrnieu | oh, duh. | ||
ingy | only you need it | 06:41 | |
autrijus | sure. | ||
do it for me? | |||
ingy | I'll nuke it | ||
lightstep | i hope it will stay for the releases | 06:42 | |
autrijus | lightstep: "make manifest" will gen it for releases | ||
jabbot | pugs - 936 - Removing the MANIFEST | 06:47 | |
lightstep | why are there .r811 and .r936 versions of many files in the tree? | 06:52 | |
autrijus | because I fixed line endings | ||
I think | |||
hi ozone. | 06:53 | ||
lightstep | err, the current versions contain some diffs | ||
which causes compile errors. are everyone but me using svk? | 06:54 | ||
autrijus | what diffs? | ||
nopaste the errors? | |||
lightstep | perlbot: nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
ayrnieu | I'm *not* using svk, lightstep. | ||
pasteling | "lightstep" at 217.132.251.24 pasted "src/AST.hs:28:0: parse error o" (22 lines, 695B) at sial.org/pbot/8387 | 06:55 | |
lightstep | both the error and the relevant part of the source | 06:56 | |
i can patch them manually, but it might be a local problem | 06:57 | ||
autrijus | I think it results from your previous work. | 06:59 | |
I applied a different chunk than yours. | |||
so just take the r936 part. | |||
ninereasons | shouldn't "make realclean" solve that? | 07:02 | |
autrijus | ninereasons:no. lightstep had a local branch | ||
ninereasons | I see. | 07:03 | |
lightstep | how do i undo the upping? | ||
autrijus | lightstep: not sure what you mean | 07:06 | |
lightstep | nm | 07:07 | |
i din't understand what happened. i forgot what 3-way merge is about | |||
how should a 2-element list be cast into a pair? | 07:09 | ||
(if it should be) | |||
pasteling | "viirya" at 203.204.198.109 pasted "error msg during compilation with ghc 6.2.2" (6 lines, 328B) at sial.org/pbot/8388 | 07:10 | |
autrijus | \[x,y]->(x,y) | 07:11 | |
something like that? | |||
lightstep | in p6, i meant | ||
autrijus | oh. | ||
lightstep | one test crashes on that | ||
autrijus | -> *$x, *$y { $x => $y } | ||
I think. | |||
jabbot | pugs - 937 - * tell PCRE to use utf8; /^$/ no longer | 07:17 | |
lightstep | what is a reference for p6 syntax, except A2? | ||
autrijus | S2? E2? | 07:19 | |
lightstep | S2 refers to \qq, but i can't see \qw in it, or <> | 07:20 | |
err, qw// | 07:22 | ||
ninereasons | do I misunderstand, lightstep? ./t/Synopsis/S02.pod shows " qw// q:w//" && The built-in "<...>" is equivalent to "q:w/.../".) | 07:24 | |
erk .. I'm too late, as usual. | 07:26 | ||
nothingmuch | morning | 07:39 | |
autrijus: want to go through .assuming? | 07:40 | ||
autrijus | sure thing! | 07:42 | |
nothingmuch | i read the IRC log about doApply | ||
that's what made me think it was trivial | |||
autrijus | nod | 07:47 | |
ok. we now require GHC 6.4 on Win32. | |||
nothingmuch: so, I'm ready ~ whenever you are | 07:48 | ||
nothingmuch | well, i'm here | 07:49 | |
i'd like to know roughly how a sub is represented | |||
is it a copy of a bunch of bits of code, with a scope tree thrown in? | 07:50 | ||
which you can then bind params to? | |||
and then run? | |||
autrijus purrs | 07:52 | ||
ok. so look first at Parser.hs | 07:53 | ||
line 170 | 07:54 | ||
let me know when you're there | |||
I'll type away. | 07:55 | ||
a sub in Pugs is represented by the VSub type. | |||
the important thing in it is its params (subParams) | |||
its actual function (subFun) | |||
and its lexical pad when it was created (subPad). | 07:56 | ||
see definition in AST.hs line 386 on. | |||
nothingmuch | subExp is the err, data | ||
right? | |||
autrijus | subFun you mean? | ||
yeah, it is the body. | |||
I should've call it subBody. | |||
jabbot | pugs - 938 - * We now require 6.4 on Win32. | 07:57 | |
autrijus | but anyway. | ||
so, when calling a sub, what happens is | |||
1) bind the params into subParams and create "args" (bound params) list | |||
2) enter a lexical pad with those args | |||
3) evaluate subFun. | |||
that's all. yay | |||
oh, and of course, enter the subPad lexical pad as well. | 07:58 | ||
nothingmuch | subFun being a closure that represents the evaluation of the perl code? | ||
autrijus | it is just an Exp. | ||
a Exp is an expression. | |||
nothingmuch | ok | ||
autrijus | so it's the same as any parsed expression | ||
it's just a simple AST. | |||
nothingmuch | so maybe subFun should have been called subExp ;-) | ||
autrijus | sure. | 07:59 | |
but anyway, I call it subFun now. | |||
nothingmuch | ;-) | ||
so when evalling Exps | |||
=) | |||
who takes care of invocating subs? | |||
doApply? | |||
autrijus | yup | 08:02 | |
nothingmuch | ok, so what does it do? | ||
autrijus | line by line | ||
650: | |||
try to bind the params | |||
651: if fails, fails | |||
nothingmuch | ok | ||
autrijus | 653: enter dynamic scope by setting envCaller | ||
$CALLER:: and return() from this point on works | 08:03 | ||
nothingmuch | envCaller is basically a stack head, in that respect? | ||
autrijus | you can say that although it's not really used for returning stuff | ||
nothingmuch | enterScope pushes a new one, and leaveScope(?) pops it? | ||
autrijus | no, nother pops it | ||
enterScope takes an action as param | |||
that action has the scope | |||
nothing else. | 08:04 | ||
keep in mind in haskell everything is lexical :) | |||
nothingmuch | so the do blah is the action with the scope | ||
autrijus | yup. | ||
nothingmuch | ok | ||
autrijus | ok. line 654 | 08:06 | |
doBind evaluates the args | |||
for real | |||
nothingmuch | what is bindings? | ||
autrijus | it's [(Param, Exp)] | ||
nothingmuch | a type? | ||
autrijus | a list of (Param, Exp) pairs. | ||
Param is the subParam entry | |||
Exp is the thing that it binds to. | |||
nothingmuch | <!-- how do i close $*ERR? it seems to err, not work --> | 08:07 | |
autrijus | err. | ||
nothingmuch | oh, wait, it does work | ||
it's dying with $*ERR closed that doesn't work | |||
autrijus | it worksforme. | ||
nothingmuch | how can i die silently? | ||
autrijus | exit() ? | 08:08 | |
exit(1)? | |||
nothingmuch | no, with die ;-) | ||
[email@hidden.address] | |||
autrijus | err. eh. | ||
nothingmuch | morning lumi | 08:09 | |
ok, back to haskell | 08:10 | ||
so basically doBind takes a pad, and returns a pad, with ,err stuff in it? | 08:11 | ||
autrijus | doBind takes two params | 08:12 | |
an empty Pad (accumulator) | |||
nothingmuch | and stuff to bind | ||
autrijus | the bindings of Param<=>Exp | ||
and it gives you back | |||
a bound pad | |||
and a set of "ApplyArg"s | 08:13 | ||
nothingmuch | param is the var, and exp is the thing to evaluate to get the value going into param? | ||
autrijus | yup. | 08:14 | |
nothingmuch | so what does a pad look like on the inside? | ||
sort of like a hash? | |||
maps lookups of vars? | |||
autrijus | type Pad = [Symbol] | ||
data Symbol | |||
= SymVal { symScope :: Scope | |||
, symName :: String | |||
, symVal :: Val | |||
} | |||
I think that answers your question :) | |||
crysflame | heh | ||
pads! | 08:15 | ||
autrijus | you can look for definitions in AST.hs | ||
nothingmuch | ok | ||
crysflame cheers. | |||
nothingmuch | hola crysflame | ||
crysflame | greetings. | ||
nothingmuch | and Scope is the way to find outer pads? | ||
autrijus | no. | 08:16 | |
see AST.hs :) | 08:17 | ||
jabbot | pugs - 939 - Test that END { } executes even when dyi | ||
nothingmuch | nevermind now | ||
beh, i looked anyway | |||
it's the type of symbol it is? | 08:18 | ||
so every pad has every possible var in it? | |||
or otherwise, how is the search extended outwards | |||
? | |||
autrijus | yes, every pad has every possible var in it. | 08:19 | |
when you enter a lexical scope, you just push new things on the pad. | |||
nothingmuch | [lazily?] | ||
autrijus | (sure) | ||
nothingmuch | [haskell is cool!] | ||
autrijus | {[(of course!)]} | ||
now back to work | |||
nothingmuch | yup =) | ||
autrijus | so. | 08:20 | |
nothingmuch | ok, so what is in bindings? | ||
everything? | |||
jabbot | nothingmuch: everything is subject to change once implementation starts. | ||
autrijus | bindings is [(Param, Exp)] | ||
nothingmuch /ignores jabbot | |||
just the params of the sub? | |||
autrijus | yeah | ||
nothingmuch | what confuses me: doBind [] bindings | ||
if the pad is, err empty | |||
how does it fill up? | |||
autrijus | the [] is accumulator | 08:21 | |
it starts empty | |||
then gradually accumulates | 08:22 | ||
say you have | |||
sub foo ($a, $b, $c) | |||
nothingmuch | it comes back from doBind as just having $a, $b, and $c defined | ||
autrijus | then [] is first expanded to [($a, exp_a)] | ||
right. | |||
nothingmuch | and the thing that looks for a variable in the pad, fills it? | ||
autrijus | the reason why we need an accumulator | ||
nothingmuch | ok | ||
autrijus | is that $b needs to see $a if it is optional | ||
?$b = $a | |||
nothingmuch | ah | ||
autrijus | that was the whole reason why we need an accumulator. | ||
nothingmuch | that makes sense | ||
ok | 08:23 | ||
autrijus | so. | ||
we now have evaluated all args. | |||
nothingmuch | one last thing: | ||
what is bound, the second half of the pair coming out of doBind? | |||
autrijus | it is a list of ApplyArg | ||
data ApplyArg = ApplyArg | |||
{ argName :: String | |||
, argValue :: Val | |||
, argCollapsed :: Bool | |||
} | |||
it's like a pad | 08:24 | ||
nothingmuch | splain | ||
autrijus | but has no scope yet | ||
just name and value | |||
nothingmuch | ah, ok | ||
autrijus | the bit that says argCollapsed controls collapsing | ||
if it is true | |||
then it won't be autothreaded even if it contains a junk | |||
I mean Junc | |||
if it's false | |||
then it's autothreaded. | |||
nothingmuch | junk is ok ;-) | ||
autrijus | so yeah. junktive autothreading | ||
nothingmuch | it will be autothreaded by juncApply? | 08:25 | |
autrijus | yup! | ||
nothingmuch | i.e., juncApply takes the action that executes the code | ||
autrijus | yup. | ||
nothingmuch | and just applies it for every comb? | ||
autrijus | yes. | ||
done :) | |||
nothingmuch | so if we don't have junctions in the bindings, then bound is nothing special? | ||
autrijus | yup. | ||
then it is just realBound | |||
nothingmuch | it's just what goes to applyExp? | ||
autrijus | yes. | ||
so, look at applyExp | 08:26 | ||
it has two case | |||
line 632 is the prim case | |||
we just take all params | |||
filtering out @_ and %_ | |||
nothingmuch | what is applyExp, that fills in the env with the realBound and err, applies the Exp fun? | ||
autrijus | then runs the primitive | ||
line 636's XXX is out of date | |||
I'll kill it now | |||
nothingmuch | prim case: like to run a pugs primitive? | 08:27 | |
e.g. 'slrup'? | |||
autrijus | yup | ||
or "+" | |||
a primitive is a special form of expression | |||
in that it can't be reduced | |||
so we run it directly | |||
nothingmuch | because it's actually just a wrapper for haskell ops? | 08:28 | |
autrijus | yup. | ||
nothingmuch | ok | ||
autrijus | Prim ([Val] -> Eval Val) | ||
is the type. | |||
"a primitive is something that takes a list of Val and evals a Val for you" | |||
easy? | |||
nothingmuch | sort of | ||
;-) | |||
autrijus | ok. | ||
so back to Eval.hs | |||
line 634 | 08:29 | ||
nothingmuch | ok, and the general case takes body, which is the sub, right? | ||
autrijus | yup. | ||
the subFun | |||
or subExp | |||
or subBody | |||
you decide | |||
nothingmuch | subFun =) | ||
autrijus | ok. | ||
so now it takes the applyarg | |||
slap a SMy on them | |||
making them lexical | |||
enter the lexical scope | |||
and evaluate the body. | 08:30 | ||
that's all. | |||
nothingmuch | formal is the err, lexical scope returner thingy? | ||
autrijus | no, see line 637 | ||
it's just a simple mapping | |||
from bound :: [ApplyArg] | |||
to formal :: [Symbol] | |||
nothingmuch | ah | ||
autrijus | by dropping the argCollapsed bit and adding a SMy scope | 08:31 | |
nothingmuch | it sets the symScope | ||
ok | |||
so how would currying look? | |||
oh i see now | |||
ok | |||
autrijus | you create a new sub | ||
nothingmuch | lets assume that .assuming is dealt with | ||
autrijus | that has one less param | 08:32 | |
nothingmuch | at the syntax level | ||
autrijus | or "n" less param | ||
uh. you can deal with .assuming at syntax level easily by adding a line to Prim.hs | |||
nothingmuch | right, lets ignore that for now | ||
autrijus | ok. | ||
nothingmuch | i'm more interested in the internals | ||
subParams | |||
autrijus | yes? | 08:33 | |
nothingmuch | contains err, placeholder stuff, right? | ||
so basically assuming will take a VSub | |||
and return a VSub whose subFun evals the vsub | |||
autrijus | kill one or more of its Param | ||
yup. | |||
nothingmuch | and whose subParams is simply filtered | ||
autrijus | yeah. | 08:34 | |
nothingmuch | and whose bindings are in the closure body itself? | ||
autrijus | yeah. | ||
I suggest you first prototype it with &goto hack | |||
nothingmuch | and then evaling the vsub would basically be combining the bound from the closure with the bound given to the closure | ||
autrijus | yeah. | ||
nothingmuch | err, bound to the closure | ||
can i just ++ the two lists? | |||
autrijus | it's good for first cut. | ||
but not really | 08:35 | ||
sub foo ($a, ?$b = $a) | |||
&foo.assuming( a => 3 ); | |||
you need to remember its position | |||
nothingmuch | so i just do previouslyBound ++ newBound | ||
no? | |||
autrijus | the param's position that is | ||
nothingmuch | that way a is first?? | ||
autrijus | no, because you can assume by name | ||
&foo.assuming( b => 4 ); | |||
then the newBound will be actually the first one | 08:36 | ||
wilx | Heh, *reading RSS of pugs commits* 935 looks funny :) | ||
autrijus | in param position | ||
wilx | "trade segfault for memleak" | ||
nothingmuch | in that case what does it matter? | ||
xerox | wilx: what is the url? | ||
wilx | rt.openfoundry.org/Foundry/Project/.../pugs/rss/ | ||
jabbot | pugs - 940 - * resetT is in doApply now, kill XXX | 08:37 | |
xerox | Danke. | ||
nothingmuch | &foo.assuming(b => 4) | ||
autrijus | nothingmuch: nvm, it probably doesn't matter. | ||
sorry for that :) | |||
nothingmuch | $returned(a => 3) | ||
---> foo(b => 4, a => 3); # is this right? | |||
autrijus | this is right. | ||
so it doesn't matter. | |||
nothingmuch | =) | ||
please explain doAppy's type again | 08:39 | ||
Env -> VSub i understand | |||
but what are the two lists of [Exp]? | |||
autrijus | invocants, arguments. | ||
nothingmuch | ah | ||
bindings is a slurp of invs and args? | |||
where is bindParams? | 08:40 | ||
wilx | Warning: retaining unknown function `_pcre_compile' in output from C compiler | ||
Lots of these. | |||
autrijus | bindParams is defined in Bind.hs | ||
wilx: yeah. can't quite do away with it now | |||
nothingmuch | ok | 08:41 | |
so makeCurry :: Exp ->VSub -> [Exp] -> [Exp] -> VSub | |||
right? | |||
and it will bindParams | |||
autrijus | what's the first Exp? | ||
you mean Env? | |||
nothingmuch | yes, i mean env | 08:42 | |
autrijus | yes. that looks like it | ||
nothingmuch blames it on dyslexia | |||
if bindParams is Right bindings | |||
Schwern | What's the recommended book to learn Haskell? | ||
nothingmuch | then it will return a ... | ||
perlbot YAHT | |||
perlbot | Yet Another Haskell Tutorial -- www.isi.edu/~hdaume/htut/ | ||
autrijus | Schwern: "Algorithms" | ||
nothingmuch | does it know about 'gentle'? | ||
autrijus | Algorithms : A Functional Programming Approach (International Computer Science Series) [Paperback] | ||
By: Fethi A. Rabhi, Guy Lapalme | |||
or, haskell.org/tutorial | 08:43 | ||
nothingmuch | whose body will look something like | ||
Schwern | Already grabbed the Gentle tutorial | ||
autrijus | the problem of .assumign is | ||
bindParams in Bind.hs currently checks | 08:44 | ||
when (length invs /= length invocants) $ do | |||
fail $ "Wrong number of invocant parameters: " | |||
Schwern | Thanks | ||
autrijus | as well as | ||
when (length positional < length required) $ do | |||
fail $ "Insufficient number of required parameters: " | |||
nothingmuch | so what if we delay bindParams? | ||
xerox | Is `when' standard Haskell? | ||
autrijus | xerox: yes. in Control.Monad | ||
nothingmuch | if we just closureInvs ++ givenInvs and | ||
autrijus | nothingmuch: sure, you can simply remember invs and args | ||
nothingmuch | doApply in the sub? | ||
i think that could be simpler | 08:45 | ||
autrijus | but then, you can't quite know which param to eliminate. | ||
so your resulting VSub's arity will be all wrong. | |||
nothingmuch | which param to eliminate? | ||
autrijus | in foo ($a,$b) | ||
if you assuming $b | |||
then the resulting vsub has only 1 param | |||
if you don't care about that | 08:46 | ||
then the quickest hack is to extend the VSub | |||
nothingmuch | so lets fix bindParams | ||
autrijus | add a "subCurried" field of ([Exp], [Exp]) | ||
which will be added to invs and prms when you are applying it. | 08:47 | ||
jabbot | pugs - 941 - * symlink pcre.o for freebsd sanity | ||
autrijus | and fix subArity to subtract subCurried from arity. | ||
that is sick but will work. | |||
the correct way is of course to fix bindParams. | |||
nothingmuch | i say fix bindParams | ||
autrijus | then you need to do: | 08:49 | |
1. give it a "partial" Bool | |||
nothingmuch | i think bindParams should be made into bindParamsPartial | ||
autrijus | 2. if partial, and length does not agree, ignore the extra invocants. | ||
nothingmuch | and defatalized | ||
fatalization goes to a new bindParams | |||
which uses bindParamsPartial | |||
autrijus | 3. only return the partially bound params. | ||
sure. | 08:50 | ||
I'm happy to answer your questions | |||
but I must work on releng now. | |||
nothingmuch | ok, i'll read a bit then | ||
autrijus | so, ask away. | ||
nothingmuch | releng? release? | ||
autrijus | release engineering. | ||
nothingmuch | bindParams seems simpler, conceptually | ||
ah | |||
btw, could you find more committerbitters? since you guys are now all again in the same TZ ;-) | 08:51 | ||
autrijus | sure. how about you? | 08:52 | |
nothingmuch | well, i could, but i'd rather not be /the/ one | ||
it's a, err, responsibility | |||
autrijus | ok. you're one now. rt.openfoundry.org/Foundry/Project/...n/Members/ is the place to add / invite people. | ||
crysflame | heh | ||
nothingmuch | i vote for stevan too, since he is in america time | 08:53 | |
autrijus | you're not? | ||
nothingmuch | so could you talk to him? | ||
no, Israel | |||
autrijus | stevan: you're admin now. | ||
nothingmuch | =) | ||
autrijus | I'll brb :) | ||
crysflame | autrijus++ # distributed power | ||
nothingmuch | ciao autrijus | ||
crysflame | i'm learning healthy project management skills from all this, for whatever it's worth | 08:54 | |
and not a bit of haskell syntax too | |||
wilx | Hmm, when I define my $i = 0 in pugs shell and then do ? $i it complains *** Evl: Var "$i" *** Error: Undefined variable $i at Var "$i" | ||
autrijus | pugs> my $i = 1 | 08:55 | |
1 | |||
pugs> $i | |||
1 | |||
wilx | ? $i | ||
nothingmuch | hola lightstep | ||
autrijus | it worksforme. you using latest? | ||
wilx | Yup. | ||
I mean the ? <exp> = evaluate an expression in small steps | |||
nothingmuch | Broadcast Message from root@omega (???) at 10:54 ... | ||
~ | |||
Redundant Power Supply has failed. | |||
my boss is an electrical engineer | |||
crysflame | nothingmuch: ! | ||
autrijus | lightstep: the ? thing is segfaulting people. | 08:56 | |
nothingmuch | he made that box boot regardless | ||
autrijus | lightstep: including me. care to take a look? since that's your baby | ||
ayrnieu | ah. | ||
pugs> ? my $z = 1 | |||
pugs> $z # breakage | |||
nothingmuch | =) | ||
sorry, crysflame | |||
crysflame | about what? | ||
phrased differently, my "!" expresses admiration that the box was still alive to send such a message in the first place. | 08:57 | ||
nothingmuch | autrijus: ok, i think i have a direction | 09:08 | |
bindSomeParams | |||
bindParams | |||
and finalizeBind | 09:09 | ||
bindSomeParams takes the args to old bindParams, and also takes prebound | |||
finalizeBind takes [Param] -> [(Param, Exp)] -> MaybeError [(Param, Exp)] | |||
bindParams just does bindSomeParams .... [] | |||
and then finalizeBind's that | |||
lightstep | autrijus, you mean `?' on the shell? | 09:13 | |
nothingmuch | autrijus: err, the result of binding | 09:17 | |
what is it really? | |||
i mean, line 105, for example | |||
what does it construct? | |||
i don't understand that code at all | |||
lightstep | btw, i'm reworking the shell anyway to enhance the debugging abilities | 09:18 | |
nothingmuch | lightstep: about your home page, if you ever need CGI support, etc, just ask me | 09:22 | |
i doubt it's configured for anything like that right now though | 09:23 | ||
lightstep | it feels good to touch it once in a while. you surely noticed that there isn't any content to server yet | 09:24 | |
nothingmuch | well, i was curios as to what you sent autrijus, but aside from that, i didn't snoop around | ||
lightstep | it's a primitive version of the symExp->symVal hask, which caused many casts to crash | 09:26 | |
and still causes them | |||
*hack | |||
nothingmuch | i.e., it changes the semantics of how to make a value of an expression? | 09:27 | |
jabbot | pugs - 943 - * make goto.t parse correctly; add -O to | ||
pugs - 942 - * make perl5.t run | |||
nothingmuch | what is a sym*? | ||
lightstep | the Symbol structure. Pad was once a mapping from symbols to expressions, now from symbols to values, thich is arguably correct, and non-arguably necessary to implement p6 | 09:29 | |
nothingmuch | what is the difference between the two approaches? | 09:30 | |
autrijus | nothingmuch: the old way throws the pad away. | 09:31 | |
nothingmuch | that the old way caused variable interpolation to be performed lazily? | ||
autrijus | but := binding needs to remember the pad when it was defined. | ||
nothingmuch | autrijus: i needed help | ||
ah, ok | |||
autrijus | say (do { my $a = 3; my $b := $a; $b }) | ||
$b will be an error in the old way | |||
nothingmuch | because when do exits then the pad containing $a is destroyed | 09:32 | |
and then $b is emptied? | |||
autrijus | yup. | ||
nothingmuch | ok | ||
so anyway, back to binding params ;-) | |||
autrijus | yes? | 09:34 | |
nothingmuch | read up about 20 lines | 09:36 | |
what is the diff betwen Parm and Param? | |||
jabbot | pugs - 944 - * unTODO passing regex tests | 09:37 | |
autrijus | there's no Parm | ||
line 105 of what? | 09:38 | ||
nothingmuch | Bind.hs | 09:39 | |
ok | |||
boundParams is a list of paris | |||
whose values are the input of prms | 09:40 | ||
(Parm was a typo i did, sorry!) | |||
autrijus | bindParams | ||
returns a list of pairs. yes. | |||
nothingmuch | ok, so to validate it | ||
i take the bound list | |||
and the params list | |||
autrijus | what validation? | ||
nono | |||
nothingmuch | i'm splitting up | 09:41 | |
autrijus | oh ok. | ||
nothingmuch | finalizeParams :: [Param] -> [(Param, Exp)] -> MaybeError [(Param, Exp)] | ||
bindSomeParams :: [Param] ... [(Param, Exp)] -> MaybeError [(Param, Exp)] -- appends the already bound list | 09:42 | ||
autrijus | ok.. | ||
nothingmuch | -- this one dies if a wrong param tries to be bound, etc | ||
autrijus | ok | ||
nothingmuch | finalizeParams will make sure a param list is good enough to be used to actually invocate | 09:43 | |
invoke? | |||
beh | |||
and then bindParams will just be a bindSomeParams with an empty prebound list, and finalizeParams on that | |||
and there will also be a bindParams with a different signature | |||
that takes a prebound list | 09:44 | ||
and also finalizes | |||
just for symetry | |||
i think | |||
this will take me a long while though, i have job tasks coming in | |||
autrijus | nod. | 09:45 | |
nothingmuch programs bash a bit... *sniff* | |||
jabbot | pugs - 945 - * remove # from test descriptions bcause | 09:47 | |
pugs - 946 - * numification now uses the same lexing | 10:07 | ||
pugs - 950 - * TODO and SKIP more things | 10:27 | ||
pugs - 949 - * fix some tests. | |||
pugs - 948 - * ps | |||
pugs - 947 - * separate numify test out; basic.t is t | |||
pugs - 952 - changing the command line again, featuri | 11:17 | ||
pugs - 951 - Correcting the test failure of number 26 | |||
gaal | where did the examples go? hanoi etc. | 11:27 | |
they are referenced in t/examples/eamples.t bt i don't see them | 11:28 | ||
ah | |||
examples/ in the top dir | |||
that's a little wierd :) | |||
elmex | ?? | 11:29 | |
gaal | elmex: there's a test in t/ that runs examples outside the t/ dir. i found it weird. | 11:30 | |
elmex | well, if examples are in the manifest... | 11:31 | |
gaal | after svn up: do you get htis on 6.4/linux? | ||
Compiling Lexer ( src/Lexer.hs, src/Lexer.o ) | |||
elmex | it's more weird to refer to files outside the dist imho | ||
gaal | elmex: it'm just surprised because previously these files were in t/ (i think) | 11:32 | |
(gcc 3.3.5) | |||
elmex | what abotu compiling lexer? | 11:33 | |
gaal | warnings | 11:34 | |
elmex | /tmp/ghc11417.hc: In function `Lexer_zdwisWordAlpha_entry': | ||
/tmp/ghc11417.hc:69: warning: implicit declaration of function `stg_hack_u_iswalpha' | |||
gaal | ah | ||
yes yes | |||
me too. | |||
elmex | in parser too | ||
gaal | y | 11:35 | |
lightstep | the manifest is gone, so there is distinction between "in" and "out" of the distro | 11:53 | |
gaal | why is the manifest gone? | 11:54 | |
lightstep | i think that because of the problems created all the time, forcing `make manifest'. there was some discussion this morning (8~10am ist) | 11:55 | |
gaal | beh, sounds like the time i was on the way to work. is there a log somewhere? | 11:56 | |
lightstep | at pugscode.org | ||
gaal | lightstep, thanks | 11:57 | |
lightstep | btw, Lexer compiles fine on debian GHC6.4 on Linux | ||
gaal | i have debian ghc 6.4 :( | ||
lightstep | try to perl Makefile.PL perhaps? it sounds like missing object files to the linker | 11:58 | |
gaal | oh, it compiles, those are just warnings | ||
though prove t/rules doesn't work... | 11:59 | ||
lightstep | pugs is really slow on this | 12:02 | |
nothingmuch | what exactly is when, in haskell? | 12:46 | |
it causes the function to vary? | |||
or is it a case statement? | |||
or is there no difference? | |||
is it part of an action? | 12:47 | ||
and what is 'fail'? | |||
wilx | It mask computation fail :) | 12:52 | |
For Maybe it is Nothing and for [a] it is []. | |||
s,mask,makes, | 12:53 | ||
nothingmuch | hmm | 12:58 | |
ok | |||
so it doesn't have to be in an action, right? | 12:59 | ||
wilx | Hmm, and when seems like equivalent of if condition then <do with something returning ()> else return () | ||
gaal | is anyone working on the symbol table hash? | ||
wilx | fail is method of Monad type class. | 13:00 | |
nothingmuch | so i can't use fail in a simple function, can i? | 13:01 | |
if (cond) then fail else blah | 13:02 | ||
wilx | Well, you cannot use it in a function that does not monad... | ||
errr | 13:03 | ||
What's wrong with me. | |||
*does not use monads... | |||
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.92.226 pasted "is this valid haskell?" (21 lines, 1K) at sial.org/pbot/8396 | 13:04 | |
nothingmuch | i'm traying to refactor bindParams | ||
to work on currying | |||
eek, that has tabs in it. Assume it's OK anyway ;-) | |||
damnit, back to real work | 13:08 | ||
wilx | Either is apparently a monad too. | 13:10 | |
fail in Either monad returns Left x. | |||
nothingmuch | ok | 13:12 | |
wilx | So teh function you pasted returns Either String [(Param, Exp)] with the string being error message. | ||
nothingmuch | what i'm asking is whether i'm mixing too much crap together | ||
the function i factored this out of is monadic | |||
and i thought i might be able to be a clever ass, and make it regular | 13:13 | ||
but appearantly that doesn't work with fail | |||
wilx | Hmm, I cannot judge that, I myself am not that much of a Haskell guru either :) | ||
you can change the fail to Left $ msg and it will be the same. | 13:14 | ||
Almost... | 13:15 | ||
nothingmuch | so basically, err the MaybeError is who declares the type | ||
and MaybeError is monadic? | |||
or imposes monadicity, whatever that means =P | |||
wilx | It is monadic because Either a b is instance of Monad type class. | 13:16 | |
nothingmuch | Either is monadic? eek | ||
that's news | |||
why should it be, actually? | |||
wilx | Because it is instance of Monad type class. | 13:17 | |
nothingmuch | i mean, in terms of it's purpose | ||
not why, but rather what for | |||
lumi | Because you can use it to determine the following flow of processing, I think | 13:18 | |
But I might be way off | |||
And hi :) | |||
nothingmuch | we have some very nice words to make that distinction in hebrew, yet I lack to find them in english | ||
s/to find// | |||
hola | |||
wilx | Yeah, because it can represent computations that can fail. Monads are representations of computations... | 13:19 | |
I think. | |||
I just makes sense :) | |||
nothingmuch needs to read on | |||
theorbtw1 | Ah, nothingmuch! | ||
nothingmuch | hola theorbtw1 | ||
lumi | So an Either is a good monadic way to fail and keep the error you failed with, I think | ||
wilx | s/I/It/ | ||
Bah. | |||
Bad typo. | |||
nothingmuch | do you forgive me for yesterdays atrocity? | ||
theorbtw1 | nm: I really like the idea of your test cataloger, but I have to admit that I can't make heads or tails of your code -- probably my failing, not yours. | 13:22 | |
nothingmuch | nono, it's horrible code | ||
i'll explain it in brief | |||
the recursive function is either stevan's or autrijus | |||
i don't know | |||
it calls catalog_file on each file | |||
each /test/ | 13:23 | ||
it calls parse_file on the test, and makes a hash with documentation, test cases, and other interesting data | |||
and links | |||
then the prettify_file sub is called with that structure | |||
and it spewes out a pod that has this data | |||
it's pretty ugly | |||
and then there's cross_index, which is even worse | 13:24 | ||
it also takes the hash structure | |||
and iterates the link | |||
planting a backlink in the synopses | |||
which are slurped as strings | |||
and fudged with substr($synopses{$syn}, $pos, 0, "replacement") | |||
13:24
theorbtw1 is now known as theorbtwo
|
|||
nothingmuch | and then saved | 13:24 | |
(sorry) | 13:25 | ||
theorbtwo | Yeah... I think I'm going to stick with my initial plan, and rewrite it. | ||
nothingmuch | good plan =) | ||
first of all, it needs to use File::Find | |||
second of all, it needs to abstract a bit more | 13:26 | ||
theorbtwo | Well, the "first of all" is covered, I think. | ||
nothingmuch | lastly, it needs to change the text a bit nicer | ||
using HTML::blah | |||
and not do nasty tricks and all | |||
and all the transformations of content should be in one flow block | |||
and all the extractions of content should be in a different distinct one | 13:27 | ||
(at the abstract level) | |||
etc | |||
i could do it, and i'd be happy too | |||
s/o$// | |||
my point was to get that one working and working fast. Unfortunately Pod::Simple made it complicated, and instead it was not very simple =( | |||
theorbtwo | I think we should convert to HTML as early as possible, rather then as late as possible. I'm going to try to work on it today pretty exclusively. | 13:28 | |
nothingmuch | i think so too | 13:29 | |
Pod::Simple was supposed to be a quick hack that just work | |||
and it did | |||
until i had to read Pod::Simple's code to find out why it didn't | |||
=( | |||
theorbtwo | ...anyway, I have the first 1/16th or so working. | ||
nothingmuch | theorbtwo: there is some useful code in there | 13:44 | |
steal the regexes that dissect the test file | |||
especially the links | |||
but also the test cases | |||
theorbtwo | I'm not sure I actually want to disect the test cases. | ||
nothingmuch | how come? | ||
too messy? | 13:45 | ||
theorbtwo | It doesn't give any better information then just showing the actual test file. | ||
nothingmuch | that's true | ||
hence the Devel::Cover mention | |||
might want to optionally use vim coloring | |||
luquy wrote a perl6 mode | |||
lightstep | nothingmuch, if you still want an introduction to monads in haskell, you might be interested in this tutorial: nomaware.com/monads/html (all about monads) | 13:56 | |
nothingmuch | i'll read it when I get home | 13:57 | |
nothingmuch has a new monitor | |||
yay! | |||
lightstep | i always get old monitors | 13:58 | |
nothingmuch | anyway, going home... ciao! | ||
theorbtwo | See you in a bit, nm? | ||
(You were in the office on Sunday?) | |||
lightstep | theorbtwo, nothingmuch is in israel, where they work on sundays, but not on saturdays | 14:00 | |
theorbtwo | Ah, I figured they'd get sat&sun off, but go to temple on sat (natrually). | 14:01 | |
lightstep | the usual arrangment is fri&sat off. all the parties are on friday, so you get back to work on sunday without a hangover. few people go to the temple, though | 14:03 | |
theorbtwo | Ah. Makes sense. | ||
Yeah, I figured most people don't go to temple. | |||
stevan | morning theorbtwo, lightstep | 14:19 | |
lightstep | good morning | 14:20 | |
theorbtwo | Morning, stevan. | ||
stevan | or at least it's morning where I am :) | ||
lumi | Pugs doesn't seem to make optimized | 14:21 | |
stevan | hmm, seems we have regexp matching, but not substitution | ||
theorbtwo | That sounds right, stevan. | 14:22 | |
stevan | but we do have $1, etc | ||
oh well, the File::Spec port goes back on the "to-do later" shelf | |||
unless I re-write all the s/// stuff with substr :P | 14:23 | ||
14:41
Aankh|Clone is now known as Aankhen``
|
|||
gaal | meow | 15:40 | |
jabbot | pugs - 954 - un-TODO tests from t/subroutines/sub_ret | 16:27 | |
pugs - 953 - started some t/oo/ tests *hint* *hint* ; | |||
gaal | stevan, do you remember the tests -> synopses url on woobling? | 16:43 | |
oops, ride home. | 16:45 | ||
gaal & | |||
autrijus | hey. | 16:46 | |
just got back home. | |||
s/// will land tomorrow. | 16:47 | ||
theorbtwo | Hey, autrijus. | 16:48 | |
autrijus | heya. | ||
nothingmuch | morning | ||
elmex | hoi | 16:49 | |
theorbtwo | WIP of my catalog_tests checked in. | 16:53 | |
autrijus | coolio. | ||
heads-up: 6.0.12 within an hour. | |||
(weekly release) | |||
theorbtwo | Oh: Your fixed my RE segfault. | ||
autrijus | yup. | 16:54 | |
theorbtwo | Er, s/Your/You/ | ||
autrijus | r3297 (orig r935): autrijus | 2005-03-20 06:35:26 +0000 | ||
* trade segfault for memleak. | |||
basically I stopped calling &free. | |||
;) | |||
theorbtwo | I know, I saw. | ||
autrijus | good. | ||
so I've talked with obra a lot today. | |||
I _think_ I have a pretty solid idea of Compile.hs now. | 16:55 | ||
chip: I need to talk to you wrt parrot. | |||
chip: I'd like a walkthru with you or other parrot people about how to generate a "hello, world" pasm from a pugs ast. | |||
chip: the idea is to implement the parrot ast interface in haskell. | 16:56 | ||
if that happens, that instantly bootstraps perl 6. | |||
as a proof of concept I'll do the hello world compiler to haskell first. | |||
jabbot | pugs - 956 - * more test cleanup; changelog draft | 16:57 | |
pugs - 955 - WORK IN PROGRESS of a new test cross-ref | |||
nothingmuch | dinner, then teach mom how to use camera, then maybe currying! ciao | 17:03 | |
autrijus: if you're willing i'd like to SEE, because i think i'm a little over my head | 17:04 | ||
autrijus | nothingmuch: I will sleep in 30 mins | ||
and wake up in 9 | |||
hrs after it | |||
jabbot | pugs - 957 - * fix pugscc; disable die_and_end.t for | 17:37 | |
gaal | i' | ||
i'm happy to report pugs builds on mingw again | |||
someone++ :) | 17:38 | ||
autrijus | that'd be me :) | ||
preflight check time! | |||
gaal | i'm sad, however, to say that i realized duff's device won't work in perl6. | ||
probably. | |||
autrijus | you can lobby for it. | ||
or write inline C code. | |||
gaal | i'd need labels for arbitrary code, | 17:39 | |
and even then i'm not sure it would work: | |||
how would those interleaved braces define closures? | |||
if i inline, i may as well inline perl5 code :) | 17:40 | ||
autrijus | ;) | ||
that's actually much harder. | |||
please help me out in preflight check: | |||
gaal | then we have a problem, because it does exist in p5: perlmonks.org/index.pl?node=Duff%27...ton=Search | 17:41 | |
yes | |||
is that a new version fligh, or a going somewhere flight? | 17:42 | ||
theorbtwo | autrijus: Yes, you did pack your bags yourself, and no, they have not been out of your sight. That help? ;) | ||
gaal | and, you're coming from home | ||
autrijus | (and report platform, ghc version, and whether it went ok or not; preferably, "pugscc examples/life.p6" as well) | ||
gaal | and don't haee anything anyone gave you to give someone. | 17:43 | |
autrijus | the url is autrijus.org/tmp/Perl6-Pugs-6.0.12.tar.gz | ||
gaal | whoa, too many tests pass on mingw. did somebody do a todo run? | ||
autrijus | try the tarball and nopaste the unexpected successes, if any? | 17:44 | |
gaal | autrijus, no unexpected successes yet -- except i was suprised to see all ok :) | ||
autrijus | eh. | ||
gaal | but that was with the latest r | ||
trying the tgz now. | 17:45 | ||
autrijus | oh. same thing. | ||
Your new level imbues you with super-powers! Check out Level 6: Friar for the details! | |||
gaal | w00t | ||
theorbtwo | Congrats, autrijus. | ||
gaal | someone mentioned on his home node that he became saint six times in one day. i wonder how that happened -- must have posted a very controversial node. | 17:47 | |
autrijus | so Friar is the last superpower level, right? | ||
theorbtwo | Yup. | 17:48 | |
The additional powers are all at the whim of the gods. | |||
pasteling | "gaal" at 192.115.25.249 pasted "linux ghc6.4" (7 lines, 355B) at sial.org/pbot/8403 | ||
theorbtwo | (Read: me.) | ||
linux/intel ia32/ghc6.2.2 -- no test fails, some compile warnings, from latest SVN. | 17:49 | ||
gaal | ah yes, i get the warnings too (forgot to say) | ||
elmex | kinder | 17:50 | |
autrijus | gaal: what is line 419? | ||
it reads | |||
ok(eval 'not ("aaaaaaaaa" ~~ rx:perl5/^(a\1?){4}$/)', 're_tests 635 (819)'); | |||
to me. | |||
doesn't see a [ there. | |||
gaal | but i *don't* get warnings on my mingw | ||
hold on | |||
oh, crap, my bad | |||
autrijus | :) | 17:51 | |
gaal | i was attempting to todoify it after it appeared and forot about it | ||
so a later svn up made a conflict | |||
oll korrekt now. | 17:52 | ||
autrijus | ok. boarding :) | 17:53 | |
gaal | yay :) | ||
autrijus | gaal++ | ||
theorbtwo++ | |||
gaal | do i get a window seat? :) | ||
theorbtwo wonders what he got a ++ for. | 17:54 | ||
autrijus | sure, inside the pilot cabin | ||
theorbtwo: for preflight checking | |||
gaal | need to ask nm about publishing make tests results automatically after every ci | 17:56 | |
reports can come in within minutes. | |||
oh, autrijus, didn't you ci a change to allow verbose test output to a file? | 17:57 | ||
autrijus | yes I did. | 17:58 | |
01:55 * CPAN upload: Perl6-Pugs-6.0.12 by AUTRIJUS | |||
gaal | AVTRIIVS++ | ||
how do you activate it? | 18:00 | ||
autrijus | setting an env I think | 18:01 | |
so, journal up. pugs will move toward a parrot-compatible ast model and compiler. | 18:02 | ||
I hope no-one is surprised. :) | 18:03 | ||
Odin-LAP is shocked. | |||
theorbtwo | No, Odin, you were supposed to cut the /purple/ wire, not the /violet/ wire! | 18:04 | |
autrijus | good night. enjoy, folks! & | ||
Odin-LAP | So ... build pugs, port pugs to parrot, port pugs to perl6 ... et voila? | ||
:D | |||
autrijus | yup. :D | ||
Odin-LAP | theorbtwo: Ah. I knew there was something I was doing wrong. | ||
pasteling | "gaal" at 192.115.25.249 pasted "problem in src/RRegex/PCRE.hs" (14 lines, 321B) at sial.org/pbot/8405 | 18:10 | |
gaal | (this breaks build under Eclipse) | ||
(on windows) | |||
changing it to #include "../pugs_config.h" seems to help Eclipse, now to see it didn't break anything else... | 18:12 | ||
pasteling | "gaal" at 192.115.25.249 pasted "hmm, many warnings in mingw/gcc 3.3.5/ghc6.4 (but this passes all tests)" (50 lines, 3.9K) at sial.org/pbot/8406 | 18:14 | |
jabbot | pugs - 958 - Eclipse build fix; +fine-tune EU::MM dep | 18:27 | |
elmex | ? | 18:42 | |
gaal | what? | ||
jabbot | gaal: what is supposed to happen automagically | ||
elmex | huh? | ||
gaal | jabbot, who's on first? | 18:43 | |
jabbot | gaal: Have you asked anyone else? | ||
gaal | elmex: what puzzles you? | ||
jabbot, are you the manager? | 18:44 | ||
jabbot | gaal: We were discussing you -- not me. | ||
gaal | jabbot, i mean the person's name. | ||
jabbot | gaal: I am not interested in names. | ||
gaal | jabbot, Yes. | ||
jabbot | gaal: Please go on. | ||
gaal | jabbot, that's who? | 18:45 | |
jabbot | gaal: Why do you ask? | ||
gaal | jabbot, would you like to play questions? | ||
jabbot | gaal: You're not really talking about me -- are you? | ||
gaal | jabbot, who isn't? | ||
jabbot | gaal: What answer would please you most? | ||
gaal | jabbot, how do you mean? | ||
jabbot | gaal: Oh, I mean? | ||
gaal | jabbot, did you read Stoppard? | 18:46 | |
jabbot | gaal: Oh, I read Stoppard? | ||
gaal | Evasion! one love. | ||
jabbot: are you ready? | |||
jabbot | gaal: You're not really talking about me -- are you? | ||
gaal | Repetition! two love. | ||
jabbot: think you can win? | |||
jabbot | gaal: We were discussing you -- not me. | ||
gaal | Repetition! Game and match. | ||
tsk, tsk. | 18:47 | ||
(tha't www.unseelie.org/rpg/question.html and www.baseball-almanac.com/humor4.shtml, to all befuddled spectators) | 18:48 | ||
19:17
Aankh|Clone is now known as Aankhen``
|
|||
nothingmuch | www.cs.uu.nl/~afie/haskell/tourofprelude.html | 19:30 | |
stevan | hey there nothingmuch | ||
nothingmuch | hola | ||
nothingmuch tries to get at currying | |||
stevan | I am writing up a Test Suite README | ||
would you mind looking at it when i am done? | 19:31 | ||
nothingmuch | sure | ||
is anyone else having trouble running ghci on src files since RRegex joined the mess? | 19:39 | ||
stevan | nothingmuch: I do occasionally | ||
the regexp stuff is kinda buggy | |||
nothingmuch | =P | 19:40 | |
woot! | 19:49 | ||
stevan | nothingmuch: do you have a second to read it now? | 19:53 | |
nothingmuch | sure | ||
stevan | should I paste it? or just check it in? | ||
gaal | ci | 19:54 | |
nothingmuch | whichever you prefer | ||
OWOWWWW! i didn't break anything! | |||
i'm so, err, astounded | |||
stevan | ok checked in | 19:55 | |
t/README | |||
gaal | oh, nm, i was meaning to ask you. any thoughts on publishing test results? i have two machines that can build after every ci, and i bet other people can do that too | ||
stevan | nothingmuch: there is a section in the README on the backlinks, if you could fill that in it would be great | 19:56 | |
nothingmuch | me too | ||
eris is alive again | |||
and safta at work is pretty decent | |||
gaal | but we need (a) to trust committers (b) something to prettify tests results (c) aggregate them from different sources | ||
nothingmuch | and pasta is ok | ||
gaal | (a) is probably no problem | 19:57 | |
nothingmuch | aggregation should be by HTTP post, i think | ||
trusting committers: eerrr, we don't care, i think | |||
gaal | how do you think? | ||
nothingmuch | i think that it doesn't matter | ||
you run it as a nobody user | |||
gaal | no no | ||
nothingmuch | and then you trust your kernel | ||
then? | |||
gaal | how do you think aggregation is helped by http post | 19:58 | |
nothingmuch | ah | ||
loop runs on somewhere | |||
says 'hi, i'm UUID xyz | |||
(remains) | |||
gaal | i don't trust one of my kernels (xp) :) | ||
nothingmuch | here is the result for rxxx | ||
i'm on $OSTYPE-$MACHTYPE-$HOSTTYPE | |||
ghc version is: | |||
gcc version is: | |||
perl version is: | 19:59 | ||
here are the results: | |||
YAMLYAMLYAMLYAML | |||
a cgi takes that, and says 'uhuh' | |||
gaal | that's transport, which is hardly a problem. i mean once you find a host for all this info, how do you manage it? | ||
nothingmuch | and rebuilds a pretty report | ||
taking only the latest r, and showing what fails everywhere, and what only at x... | |||
which tries to merge | |||
sqlite, methinks | |||
gaal | work | 20:00 | |
nothingmuch | row per test test file | ||
has many test case | |||
per number | |||
current revision is stored | |||
gaal | sounds like too much of it. | ||
nothingmuch | i.e., revision table | ||
then each test per each revision per each host has a result | |||
which is an enum | 20:01 | ||
that's, err, typical sql schema | |||
gaal | hmm, a yaml output mode for test::harness would be nice. | 20:03 | |
nothingmuch | indeed | ||
it's not that hard | |||
30 minutes of work head to head with ::Straps | |||
maybe we should ask on [email@hidden.address] if andy lester has such plans | 20:04 | ||
stevan | nothingmuch: I doubt andy will do anything with YAML | ||
but there is talk about making ::Straps friendlier | 20:05 | ||
gaal | from the pod: The interface is currently incomplete. I<Please> contact the author | ||
if you'd like a feature added or something change or just have | |||
comments. | |||
jabbot | pugs - 959 - adding a README for the test suite | 20:07 | |
gaal | stevan: nice start for the readme. i'd include the policy for marking hard parsefails | 20:15 | |
stevan | good idea | ||
gaal | and emphasize "the failing test is the bug report" | ||
stevan | I am thinking I might convert it into a more FAQ style doc | ||
nothingmuch | someone please fix my fix to the readme | ||
stevan | ? | ||
nothingmuch | hmm, conflict, one moment please | 20:16 | |
stevan | what did you do? | ||
nothingmuch | ah, not conflict | ||
document backlinks | |||
jabbot | pugs - 961 - Move unless...elsif tests from t/stateme | 20:17 | |
pugs - 960 - Grammar fix: +so in t/README | |||
stevan | nothingmuch: did you commmit it? | ||
nothingmuch | yes | 20:18 | |
962 | |||
gaal | stevan, mind if we use a different quote style in t/README? this is super-pedant, i know, but `..` looks fishy to me.. either '..' or `..' ? | ||
stevan | gaal: sure | 20:19 | |
ok fixed the quotes | 20:20 | ||
and added gaal's point about failing tests | 20:21 | ||
r963 | |||
gaal | ah, darn :) was about to ci it with also an "it's" -> "its" fix | ||
nothingmuch | is there a lambda head around? | ||
stevan | nothingmuch: your section looks good, I will fiddle with the wording a bit | ||
nothingmuch | wording is not my strong side | ||
stevan | nothingmuch: I am sure it sounds better in Hebrew :) | 20:22 | |
nothingmuch | it would probably not make sense in hebrew at all | ||
i actually write worse in it | |||
stevan | my Hebrew is rusty too :P | ||
*cough* non-existsant *cough* | 20:23 | ||
nothingmuch | har. | ||
;-) | |||
nothingmuch considers checking in his bindParams refactoring | |||
stevan | nothingmuch: why not, we can test it for you | 20:24 | |
nothingmuch | it's supposed to be transparrent | ||
and i've already tested what it's going to let me do ;-) | |||
although you can edit t/subroutines/currying.t | 20:25 | ||
it needs special cases for binding of required and non required params | |||
stevan | ahh curry | ||
nothingmuch | and binding of invalid params | 20:26 | |
and OOP binding with invocant crap | |||
basically, try to curry infix:<+> | |||
so that MMD is tested too | |||
stevan | MMD? | ||
nothingmuch | multimethod dispatch | 20:27 | |
stevan | ah | ||
jabbot | pugs - 963 - fixing quotes in README and adding point | ||
pugs - 962 - lousy documentation of backlink format | |||
nothingmuch | see L<S06/Currying> ;-) | ||
lucs | Mmm. Curry. | 20:29 | |
nothingmuch | i looove the fact that osx terminal does vt100 codes | 20:30 | |
while true; do dock; svn up; make optimized test; raise; read foo; done | 20:31 | ||
minimizes the window, runs the tests | |||
stevan | nice | ||
nothingmuch | window pops up when it's done, i press enter, and it does it again | ||
integral | vt100s could minimise to the dock? :-P | 20:32 | |
nothingmuch | yes | ||
err, in theory | 20:33 | ||
there's a code to hide or something | |||
and osx's term implements it as minimizing it | |||
964 | 20:34 | ||
now how do i fabricate a closure | 20:36 | ||
ah, i know | 20:45 | ||
i'll make the exp be of type Prim, | |||
and just use a haskell closre | |||
jabbot | pugs - 964 - Refactor bindParams to possibly be incre | 20:47 | |
gaal | nothingmuch, can you do 'dock > somefile' and see what the escape code is so i can try that on my box? | 21:04 | |
nothingmuch | dock is a simple script adapted from: | ||
homepage.mac.com/uucee/macosx/termi...hints.html | |||
which used vttest | |||
short answer: go get vttest | 21:05 | ||
i also have a wait_for cmd | |||
which is perl -ne 'BEGIN { ($r, @cmd) = @ARGV } system if /$r/o'; | |||
gaal | just alias dock 'echo -n "^[[2t"' | ||
nothingmuch | well, it needed to run on various ugly systems at work | 21:06 | |
aliasing wasn't perfect | |||
also, then came this wait_for | |||
so i say 'make 2>&1 | wait_for '\*\*\*' raise; raise' | |||
and then it pops up when it's done, or when there's an error | |||
s/perl -ne/perl -pe/ | 21:07 | ||
gaal | doesn't work on mingw's rxvt :( | ||
nothingmuch | s/system/system @cmd | ||
=/ | |||
gaal | well, i'm off.. later!& | 21:08 | |
nothingmuch | ciao | 21:20 | |
err, too late | 21:21 | ||
pasteling | "iblech" at 80.81.8.24 pasted "make test fails in ext/Test" (24 lines, 1.5K) at sial.org/pbot/8413 | 21:28 | |
nothingmuch | export HARNESS_PERL=$PWD/../../pugs should fix it | 21:29 | |
but it's a makefile problem | |||
iblech: errm. | |||
theorb: i'm butchering your script | |||
theorb | Oh. I should have possibly checked in the corrections I made prior to starting that movie. | 21:30 | |
nothingmuch | hehe | ||
check them in now, i'll resolve conflicts | |||
theorb | Jay and Silent Bob Strike Back. | ||
iblech | nothingmuch: No, problem remains... But I suspect it's actually a bug of my old Test::Harness -- checking... | ||
nothingmuch | haven't seen that one | ||
theorb | It certianly has it's good points, but it wears horribly. | 21:31 | |
Oddly, there were no conflicts. | 21:32 | ||
nothingmuch | i didn't checkin anything | 21:35 | |
iblech | Ok, with Test::Harness 2.42 everything works. But I think (might be wrong) the whole point of pugs/inc is, that users don't have to install (for example) Test::Harness globally. -Iinc works fine in the top-level-directory, but it breaks in ext/Test, because there's no ext/Test/inc... | ||
nothingmuch | -Ilib wout work | 21:43 | |
err, wait | |||
test::harness is perl, not pugs | |||
iblech | nothingmuch: Yes. ext/Test/Makefile has to have -I../../inc instead of plain -Iinc to have make test working | 21:45 | |
nothingmuch | ah | 21:46 | |
test::harness is bundled | |||
that's nasty | |||
well, whatever | |||
you want to fix it? | |||
theorb | nm, how's my driving? | ||
Er, coding? | |||
nothingmuch | theorb: pretty fun to keep up with | ||
jabbot | pugs - 965 - catalog_tests_jmm.pl: Minor fixes mostly | 21:47 | |
theorb tries to figure out if that's a good thing or not. | 21:48 | ||
nothingmuch | heh | ||
it's nice, clean code | |||
iblech | nothingmuch: /me doesn't have any experience with the Makefile.pl system | 21:49 | |
nothingmuch | i was surprised at how pretty the HTML output is | ||
iblech: i don't either... theorbtwo: can you help? | 21:50 | ||
iblech | nothingmuch: Maybe it's easier to not bundle Test::Harness and demand a reasonable recent version of Test::Harness | ||
nothingmuch | i think so too | ||
since we're alreayd demanding MM | |||
and it's a pretty standard module, and core is good enough on recent perl | |||
(a recent MM, that is) | |||
iblech | nothingmuch: Exactly | 21:51 | |
theorb | I don't have all that much either; I prefer avoiding make where I can. | 21:52 | |
theorb tries to figure out what the problem is... | |||
nothingmuch will brb | |||
back | 21:54 | ||
ibelch: why don't you edit the top level Makefile.PL, and remove inc/Test? | 21:55 | ||
theorb: can't i specify multiple criteria to look_down? | |||
i.e. (_tag=>"h1", _content=>$heading)? | |||
oh, seems like you can | 21:56 | ||
theorb | You can, but I don't think _content does what you want. | 21:58 | |
nothingmuch | [ $heading ]? | ||
or is that too much ;-) | |||
theorb | (_tag=>"h1", sub {$_->as_text =~ /whatever/}) | 21:59 | |
nothingmuch | oi | 22:00 | |
theorb: pearpc->status? | 22:05 | ||
theorb | Last I tried, pretty toasted, though I suppose I can try again or try the other one -- and Jess is asleep, so I have no purticular wish to stay in bed. | 22:07 | |
nothingmuch | metaperl: you're proficient in haskell, right? | 22:15 | |
metaperl | not proficient, no | 22:16 | |
i have been studying it as well as I can though | |||
nothingmuch | errm, sort of capable? | ||
metaperl | that would be a much better term | ||
nothingmuch | =) | ||
much better than me | |||
theorbtwo: we have HTML backlinks without regex skip | 22:17 | ||
metaperl: so anyway, i refactored bindParams | |||
and now i'd like to use it to get &sub.assuming($params) working | |||
metaperl does svn update | |||
theorbtwo returns. | |||
metaperl | ok i'm updated | ||
nothingmuch | basically it's split up into 3 functions now | 22:18 | |
bindParams, which retains the old interface | |||
veryifyBind, which takes a param list, and a binding, and returns MaybeError or the binding | |||
metaperl | you mean in the file Bind.hs? | 22:19 | |
nothingmuch | it checks that the binding is complete (required args all there) | ||
which will take a VSub and a list | |||
and there's bindSomeParams | |||
yes | |||
now, my next step is to make an assuming op in Prim.hs | |||
and bindSomeParams like doApply does | |||
and then return a haskell closure, which pretends to be Prim | 22:20 | ||
which when invoked will take it's invocation params, and finalize the binding with what it already has, and invoke the sub it wraps | |||
but i have no clue how to do that | |||
=) | |||
metaperl | you have no clue how to invoke the sub? | 22:21 | |
or create the closure? | |||
nothingmuch | create the closure | 22:22 | |
as a VSub whose SubFun is a Prim | |||
metaperl | well you know the syntax for an anonymous sub in Haskell right? | 22:23 | |
(\x -> blah blah x) | |||
nothingmuch | (\x -> ..) | ||
yes | |||
metaperl | well, let me see what a VSub is... | ||
nothingmuch | a VSub is a code ref | ||
metaperl greps for VSub | 22:24 | ||
nothingmuch | grrr... why can't Pod::Simple::HTML create <divs> between heads | ||
metaperl | there seem to be a lot of examples of that: VSub $ Sub .... | 22:25 | |
in Monads.hs | 22:26 | ||
nothingmuch | hmm | 22:27 | |
theorbtwo | My pearpc didn't even make it to the point of letting me click on my username before the input subsystem got totaled. | ||
nothingmuch | theorbtwo: =( | ||
are you going to reinstall? | 22:28 | ||
metaperl | nothingmuch, I am very behind on how Perl6 is implemented in haskell | ||
i'm afraid I am just wasting your time | |||
theorbtwo | What the hey, I'll give it a try. | ||
nothingmuch | metaperl: i'm not sure | 22:29 | |
i usually leap forward in understanding in a very jerky behavior | |||
i need lots of prods | |||
theorbtwo: I can just check in | |||
metaperl | i have been studying Haskell without studying Haskell compiling perl6 | 22:30 | |
theorbtwo | That's probably for the best; a reinstall will take several hours. | ||
nothingmuch | metaperl: oh well | ||
theorbtwo: ok... i'll just whip in conversion of Sxx.pod to Sxx.html | 22:31 | ||
theorbtwo | Grrr! Now it's dying in the installer. | 22:34 | |
nothingmuch | i don't think ti's the software | ||
it sounds more like the config | 22:35 | ||
theorbtwo | I think it's the emulator, and not the install. | 22:38 | |
But it was doing pretty well for a while. | |||
nothingmuch | that's what i meant | 22:40 | |
maybe the rom image is burnt? | 22:41 | ||
nothingmuch.woobling.org/pugs_test_status/ | 22:42 | ||
ingy | hola | ||
nothingmuch | hola ingy | ||
S09.html#Subscript_and_slice_notation | |||
oops... nothingmuch.woobling.org/pugs_test_...e_notation | 22:43 | ||
ingy | kwid_to_html is progressing nicely | ||
nothingmuch: neat (if it worked ;) | 22:45 | ||
nothingmuch | uh | ||
one sec ago it did | |||
oh, i see | |||
=) | |||
one moment please | |||
ingy | heh | ||
nothingmuch | s#usr/local/src/pugs/t_index/pugs_test_status/; | 22:46 | |
this is theorbtwo's fault, for being too trigger happy with rel2abs ;-) | |||
theorbtwo grins. | 22:48 | ||
elmex | i just read .../pugs_teen_status/... | ||
nothingmuch | it takes a long while to generate on my crummy laptop | 22:49 | |
ok, fixed | 22:50 | ||
ingy | nothingmuch++ | ||
what happened to the L<>? | 22:51 | ||
elmex | jabbot: score | ||
jabbot | elmex: I'm not sure I understand you fully. | ||
nothingmuch | theorbtw++ actually | ||
oh wait, i zapped that temporarily | |||
theorbtwo++; # typo previously | |||
elmex | this scoring is cool.... | 22:52 | |
lets cheat: | |||
elmex += 1000 | |||
ingy | *yawn* | ||
nothingmuch | perlbot karma elmex | ||
perlbot | Karma for elmex: 1 | ||
nothingmuch | perlbox karma theorbtwo | ||
perlbot karma theorbtwo | 22:53 | ||
perlbot | Karma for theorbtwo: 11 | ||
nothingmuch | perlbot karma nothingmuch | ||
perlbot | Karma for nothingmuch: 25 | ||
elmex | elmex++ | ||
perlbot | What kind of idiot karmas himself? Your kind of idiot! | ||
nothingmuch | ook | ||
elmex | perlbot: karma elmex | ||
perlbot | elmex doesn't have any karma | ||
jabbot | elmex: elmex has karma of 2 | ||
nothingmuch | hah! | ||
elmex | ;p; | ||
nothingmuch | elmex++; # for being curious | ||
elmex | jabbot: karma elmex | ||
jabbot | elmex: elmex has karma of 2 | ||
elmex | perlbot: karma elmex | ||
perlbot | Karma for elmex: 1 | ||
jabbot | elmex: elmex has karma of 2 | ||
elmex | ack | ||
... | |||
nothingmuch | ok, cut it out, or i'm -- you ;-) | ||
ingy | nothingmuch++ | ||
nothingmuch | perlbot karma ingy | 22:54 | |
perlbot | Karma for ingy: 18 | ||
elmex | ingy++ | ||
nothingmuch | perlbot karma autrijus | ||
perlbot | Karma for autrijus: 23 | ||
nothingmuch | oh my god | ||
theorbtwo | perlbot karma top | ||
perlbot | top doesn't have any karma | ||
elmex | autrijus++ | ||
theorbtwo | perlbot highest karma | ||
perlbot | The top 5 karma entries: ~brad2901: 26, nothingmuch: 26, autrijus: 24, ingy: 19, stevan: 18 | ||
theorbtwo | Now, can we stop asking for everybody's karma, and agree that mine is too low? | ||
nothingmuch | who is brad? | ||
theorbtwo++ | 22:55 | ||
;-) | |||
theorbtwo++ | |||
actually, i think we can do this by private message | |||
elmex | hmm | ||
i guess exploiting this feature might not be the best | |||
ayrnieu | sigh. if theorbtwo has low karma, it because he *deserves it*! Please be letting normal gushing appreciation make the changes. | ||
nothingmuch | hmm... no, only in public chat | ||
theorbtwo | I was actually joking. | 22:56 | |
theorbtwo couldn't care much less. | |||
nothingmuch | ayrnieu: theorbtwo++ deserves it =) | ||
ingy | nothingmuch: do you munge out the L<...> links? | 22:57 | |
nothingmuch | theorbtwo wrote that | ||
but i think based on my "parsing" | |||
which used Regex::Common | |||
s/:/p:/ | 22:58 | ||
delim and balanced | |||
ingy | ok, must hackhack | 22:59 | |
bye | |||
nothingmuch | ciao | ||
theorbtwo: how do i say _tag=>(h2|h1)? | 23:00 | ||
theorbtwo | _tag=>qr/h[12]/ | ||
nothingmuch | ah | 23:01 | |
how do i unescape pod with a snippet? | 23:02 | ||
like | 23:03 | ||
foo E<blah> C<ding> ... | |||
i guess into 'foo ā¢ā¢ā¢ ding' *** being special char blah | 23:04 | ||
theorbtwo | Hmm, well, as a final step, s/E<([a-z]+|[0-9A-Fx]+)>/$2?chr hex $2:$podescapes{$1}/ge; | 23:09 | |
nothingmuch | ook | 23:10 | |
theorbtwo | So for the rest... well... um... I donno? | 23:11 | |
gaal++ # www.livejournal.com/users/gaal/158565.html | 23:22 | ||
nothingmuch | that DWIM | 23:27 | |
ok, $Pod::Parser->interpolate, | |||
ok, checking in new backlinker | 23:31 | ||
elmex | gn8 | 23:32 | |
theorbtwo waits impatidnetly. | 23:35 | ||
nothingmuch | sorry, last minute fixes ;-) | ||
noticed links were not in order (reverse, since i'm doing $h->postinsert repeatedly) | |||
and that they have no pretty ", " between them | |||
.... merging conflict | 23:36 | ||
eek, difficult merge | 23:40 | ||
same fixes, different solutions | |||
gotta love 3 way tools | |||
final QA: nothingmuch.woobling.org/pugs_test_status/ | 23:45 | ||
wait a minute, it didn't finish generating yet | 23:46 | ||
links should be bidi | |||
no regex skips yet | |||
some links are unresolved, i think they are errors in the tests | |||
ok, try now | |||
theorbtwo, you crazy goon! | |||
theorbtwo | The links in tests point to tests. | 23:47 | |
nothingmuch | right | ||
that's your fault ;-) | |||
theorbtwo | Haven't looked at the code yet... oh. | ||
That was just me not being done. | |||
I'm going to be on something else for a while. | 23:48 | ||
nothingmuch | ok, one minute, i'll fix it | ||
then i'll commit | |||
eek, i hope this is the last thing | 23:51 | ||
damnit | 23:57 | ||
my $synpath = catfile($output_dir, "Synopsis", "$linkfile.html"); | |||
warn "abs2rel($synpath, dirname($output_path)) -> " . abs2rel($synpath, dirname($output_path)); | |||
abs2rel(/usr/local/src/pugs/t_index/Synopsis/S03.html, dirname(/usr/local/src/pugs/t_index/t/builtins/list/zip.html)) -> ../Synopsis/S03.html | 23:58 | ||
what the flying ****?! |