Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-09-11

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 TreyHarris I don't understand.  I thought you were saying L<NONEXISTENT/foo> should be considered broken.
00:00 TreyHarris Or are you saying L<NONEXISTENT/foo> and L<BOOM> are not treated the same?
00:00 markstos Right.
00:01 TreyHarris which?
00:01 markstos L<NONEXIST/foo> is treated as non-broken smartlink, while L<BOOM> is skipped.
00:02 TreyHarris "non-broken" meaning.... it thinks it actually finds its target?  where does it think the target is?
00:03 markstos dude, I don't know. I'm using it for the first time tonight. The code is a little difficult to review in there.
00:04 markstos I was just trying to make sure I knew what --check did, but constructing a smart link that was actually considered broken, but I'm having trouble doing so...
00:04 markstos s/but/by/
00:05 TreyHarris use something like L<S03/No such section/These words never appear>
00:05 markstos Well, I'm stuck on looking to this bug. :) I actually made a real typo by using S9 instead of S29, and it appeared that mistake was silently ignored.
00:06 TreyHarris how odd.  I spent a good long while last night making it so that some valid smartlinks would *not* be broken
00:06 markstos Interesting. :)
00:07 markstos One thing I noticed the smartlink.pl POD doesn't cover is the definition of a link. When is L<something> considered a smart link and not just a link ?
00:07 TreyHarris well, you can certainly try my file, since i know it works
00:08 markstos your smartlinks.pl ?
00:08 TreyHarris t/operators/smartmatch.pl ... try changing "simple closure truth" to, say "simple cloTure truth".  it'll break.
00:08 TreyHarris no, run util/smartlinks.pl -check t/operators/smartmatch.pl, to verify the links all work, then change on trivially
00:08 TreyHarris s/on/one/
00:09 markstos Yes, I've been able to to trigger that kind of a failure. I'm interested in the I-typoed-the-synopsis name case.
00:09 TreyHarris I think that L<> is always considered a smartlink so long as the L has nothing but possible whitespace to its left
00:09 markstos Those seem to be silently ignored now.... but maybe that's different between a "smart link" and "just a link", but that difference is not defined, that i can find.
00:09 TreyHarris er, whitespace and/or #
00:10 markstos s/different/difference/
00:11 TreyHarris markstos: sorry, i can't figure out what you're saying... it would help if i could see an example of a 'silently ignored' smartlink that you think should be broken
00:12 markstos TreyHarris, put this in a test file and run smartlinks.pl --check on it:
00:12 markstos # L<S600/split>
00:12 markstos It will report that one smart link was found, and none are broken.
00:13 markstos It should at least warn that S600 doesn't exist yet.
00:13 TreyHarris ah.  gotcha.
00:13 TreyHarris that would be a feature add.  right now, nonexistant is nonexistant, whether it looks like an AES or not
00:14 markstos Oh the other hand, I'm having trouble getting L<S29/split> to work. It is considered broken, although "=item split" is in the POD.
00:14 TreyHarris because people were making smartlinks to S29 before it was blessed
00:14 markstos I also tried L<S29/=item split>
00:15 markstos TreyHarris: Thanks for the clarification.
00:15 TreyHarris split isn't a section
00:15 markstos Ok. How to link to it?
00:15 markstos There are so many functions... it seems useful to link directly to them. There are about 100 tests for split alone.
00:16 TreyHarris you want L<S29/Str/=item split>
00:16 markstos Ah.
00:16 TreyHarris look for the prior =head
00:17 markstos Moose! Seems to work.
00:17 jferrero joined perl6
00:17 markstos No wonder my prior blissfully ignorant (and unchecked) smart links weren't working.
00:17 TreyHarris actually, L<S29/Str/"=item split"> would be safer
00:17 TreyHarris in case some other =item contains the word "split"
00:18 markstos Thanks.
00:19 TreyHarris np
00:20 markstos I'm surprised t/builtins/strings/split.t dies so horribly, though. It has a parse error at line 63, and I just don't see it.
00:20 svnbot6 r13168 | markstos++ | [t/builtins/strings/split.t]
00:20 svnbot6 r13168 | markstos++ | Add smart link. TreyHarris++ for help.
00:20 markstos Try it with prove6 -v.
00:20 markstos I'll look at smartlinking more builtins.
00:23 Aankhen`` joined perl6
00:26 svnbot6 r13169 | markstos++ | [t/builtins/strings]
00:26 svnbot6 r13169 | markstos++ | Add 3 smartlinks in this dir. Every file has at least one now!
00:29 TreyHarris markstos: rx:Perl5{,} isn't valid syntax
00:29 TreyHarris see... um....
00:29 rodi joined perl6
00:29 TreyHarris i'll look in a sec
00:30 TreyHarris but when you have an adverb, you need a space
00:30 TreyHarris so it's rx:Perl5 {,}
00:30 TreyHarris rather, an adverb followed by a bracket
00:30 markstos Ah.
00:30 markstos Because rx:Perl5/,/ might be valid ?
00:30 TreyHarris ?eval rx:Perl5/,/
00:30 nekokak joined perl6
00:30 evalbot_r13164 is now known as evalbot_r13168
00:30 evalbot_r13168 {regex}
00:30 TreyHarris it is valid :-)
00:31 markstos ?eval rx:Perl5{,}
00:31 evalbot_r13168 Error:  unexpected end of input expecting "\\", "$/", "$!" or ":"
00:31 TreyHarris ?eval rx:Perl5 {,}
00:32 evalbot_r13168 {regex}
00:32 TreyHarris are you fixing it, or do you want me to?
00:33 markstos Could you? I'm doing more smart linking.
00:33 bsb joined perl6
00:38 svnbot6 r13170 | trey++ | [t/builtins/string/split.t]
00:38 svnbot6 r13170 | trey++ | Was not running at all because rx:Perl5 was
00:38 svnbot6 r13170 | trey++ | not being followed with whitespace and so
00:38 svnbot6 r13170 | trey++ | pattern was getting interpreted as adverb
00:38 svnbot6 r13170 | trey++ | arg.  All tests now pass again.
00:44 svnbot6 r13171 | markstos++ | [t/builtins/arrays]
00:44 svnbot6 r13171 | markstos++ | Everything here has at least one smart link now. (6 added).
00:55 NamelessOne joined perl6
01:05 meowboy joined perl6
01:07 dolmans joined perl6
01:07 svnbot6 r13172 | markstos++ | [t/builtins/math]
01:07 svnbot6 r13172 | markstos++ | Every file here now has at least one smart link, except
01:07 svnbot6 r13172 | markstos++ | infinity. I sent mail to p6l about Inf not being formally spec'ed yet.
01:07 svnbot6 r13172 | markstos++ | (9 new links added, all checked.)
01:28 audreyt @tell putter the inferencer bug has been fixed quite a while ago; invocant is now always reduced first.
01:28 lambdabot Consider it noted.
01:28 audreyt @tell putter "my C $x" inside subs would cause $x be refreshed upon sub reentry. fixing now.
01:28 lambdabot Consider it noted.
01:29 Daveman joined perl6
01:39 TreyHarris audreyt: I've spent many many hours trying to write a test for my pugsbreak problem, but I can't figure it out.  I think I'll get it licked if I know just one thing:  given "Foo.pm", am I making it YAML correctly by doing "pugs -CParse-YAML Foo.pm > Foo.pm.yml", and if so how do I use that YAML?
01:40 cmarcelo audreyt: hi :).. any clue on the build error I posted?
01:40 audreyt TreyHarris: you use it on "use Foo".
01:40 audreyt TreyHarris: and yes that's correct.
01:40 audreyt cmarcelo: sorry, just woke up and about to run... but url?
01:42 audreyt @tell putter fixed
01:42 lambdabot Consider it noted.
01:42 cmarcelo audreyt: http://sial.org/pbot/19579
01:42 lambdabot Title: Paste #19579 from "cmarcelo" at 200.232.237.204
01:43 audreyt @tell putter btw, perl5embed is on by default; set PUGS_EMBED to -perl5 to disable it.
01:43 lambdabot Consider it noted.
01:43 TreyHarris audreyt: huh.  I tried that first thing, and get 'No compatible subroutine found: "&Foo"'
01:44 TreyHarris though the use returns just fine, and if i remove the yaml file it works fine
01:46 xinming joined perl6
01:47 audreyt cmarcelo: most likely you either have local modification (try "svk di") or have stale .hi files somewhere. try a fresh make?
01:47 audreyt TreyHarris: the Parse-YAML compilation at the moment could break on  closures and other recursive structures
01:48 svnbot6 r13173 | audreyt++ | * Support for:
01:48 svnbot6 r13173 | audreyt++ |     my T ($x, $y, $z)
01:48 svnbot6 r13173 | audreyt++ |   to distribute as:
01:48 svnbot6 r13173 | audreyt++ |     (my T $x, my T $y, my T 4z)
01:48 svnbot6 r13173 | audreyt++ | * Also, "my T $x" now re-assigns T into $x upon closure reentry.
01:48 svnbot6 r13173 | audreyt++ |   Note that this is not strictly correct for "state T $x", but
01:48 svnbot6 r13173 | audreyt++ |   let's do it this way for now.
01:48 audreyt that's one of the motivations behind the simpler newExp and newVal
01:48 svnbot6 r13173 | audreyt++ |   t/xx-uncategorized/attribute_of_return_value.t now passes with this.
01:48 audreyt so avoid it for now except for the specially-craafted-to-fit Prelude nad Test.
01:48 TreyHarris "class Foo { method value { 42 } }"
01:48 audreyt I really need to run... bbiab :)
01:48 TreyHarris ok
01:51 Bit-Man joined perl6
01:53 clkao audreyt: yo.
01:53 svnbot6 r13174 | audreyt++ | * typo in test.
01:53 clkao audreyt: we have a new project called commitbit
01:54 TreyHarris anyone have a nice, portable way to make a file old?  like "touch -t 200000000000 $filename"?
01:54 TreyHarris but portable? :-)
01:54 markstos I've always used "touch", so no.
01:56 TreyHarris it can even be not-so-nice, but I don't see anything in ext/ to help me here
01:57 rodi TreyHarris: I just let it sit there for a long, long time, and that almost always makes it old ;)
02:01 TreyHarris well, in this case, i need to defeat (-M $newfile > -M $filename)
02:01 TreyHarris i'm going to write two files, A, then B
02:01 TreyHarris but then I need B to show up via -M as older than A
02:02 markstos TreyHarris: You could always write it with "touch" with an XXX note for someone else to make it portable. Some progress is better than none. :)
02:02 TreyHarris true
02:09 markstos New wiki page on smart linking: http://rakudo.org/perl6/index.cgi?smart_linking
02:09 lambdabot http://tinyurl.com/jccm6
02:16 markstos Tomorrow I'll add a new blog post encouraging more people to help with smart linking, but I'm done for tonight.
02:16 markstos left perl6
02:31 mako132_ joined perl6
02:40 reZo joined perl6
02:48 Aankhen`` joined perl6
02:54 mdiep joined perl6
03:00 f0rth_ joined perl6
03:09 svnbot6 r13175 | audreyt++ | * Pugs.Eval: in a "for" loop with rvalue lists, don't double-listify
03:09 svnbot6 r13175 | audreyt++ |   its list elements.  This fixes the case of:
03:09 svnbot6 r13175 | audreyt++ |     for %h.pairs -> $p { ... }
03:09 svnbot6 r13175 | audreyt++ |   which used to make $p contain a seq instead of a pair.
03:11 plural hi all.  can anyone offer me any advice for building the third-party stuff successfully on an svn checkout of pugs?  Files are being built but put in the wrong places left and righ
03:13 plural specifically for Data.ByteString and HsSyck
03:15 reZo joined perl6
03:15 mako132_ joined perl6
03:17 audreyt plural: "perl Makefile.pl ; make" should build these for you
03:17 mdiep joined perl6
03:18 plural that is what i am trying, but the make is placing the files in the wrong places.  instead of dist/build/cbits/fpstring.o, i get dist/build/cbits/cbits/fpstring.o
03:18 plural and if i copy it there and run make again it blows it away.  :)
03:18 svnbot6 r13176 | audreyt++ | * unTODO ten subtests in io_in_for_loops.t.
03:19 audreyt what GHC/Cabal are you using?
03:20 plural ghc is 6.4.1 from ubuntu dapper and Cabal is the latest from the cabal site
03:20 audreyt that's a curious combination
03:21 audreyt trying to duplicate
03:21 plural oh?  Curious interesting or curious bad?  ;)
03:22 plural pugs is the only thing i currently use ghc for, so an upgrade is not out of the question.  is the latest ghc recommended?
03:23 audreyt weird, latest cabal works fine for me here
03:23 audreyt can you repaste the error log?
03:24 plural sure.  one moment
03:25 audreyt but yes, testing against  http://www.haskell.org/ghc/dist/current/dist​/ghc-6.5.20060910-i386-unknown-linux.tar.bz2
03:25 lambdabot http://tinyurl.com/kewjz
03:25 audreyt would be appreciated too
03:26 plural ok.  actually, why don't i upgrade GHC and retry.  seems like less hassle.
03:26 audreyt k
03:26 audreyt I'll bbl...
03:26 audreyt good luck :)
03:27 plural thanks for the tips.  :)
03:30 reZo joined perl6
03:35 xinming joined perl6
03:49 svnbot6 r13177 | audreyt++ | * Pugs.Lexer: Allow double-right-parens to end a "parens" structure:
03:49 svnbot6 r13177 | audreyt++ |     (@(1))
03:49 svnbot6 r13177 | audreyt++ |     (@::("foo"))
03:49 svnbot6 r13177 | audreyt++ |   now all parses correctly without needing a whitespace.
03:56 b00t joined perl6
03:57 TreyHarris ?eval 1
03:57 evalbot_r13168 is now known as evalbot_r13177
03:57 evalbot_r13177 1
03:57 TreyHarris ?eval ?(@(undef,))
03:57 evalbot_r13177 Bool::True
03:57 TreyHarris audreyt++
03:57 TreyHarris ?eval ?(list(undef,))
03:57 evalbot_r13177 Bool::False
04:04 svnbot6 r13178 | trey++ | [t/unspecced/precompile.t]
04:04 svnbot6 r13178 | trey++ | Tests for .yml vs. .pm sanity.  Only fail
04:04 svnbot6 r13178 | trey++ | now is when -M $ymlfile < -M $pmfile
04:05 cmarcelo audreyt: is there any .t file which I can try here to check for J.Hash misbehavior?
04:20 * plural hugs audrey
04:20 plural ghc 6.5 fixed my compile issues.  thanks for helping!
04:22 * Alias_ begins to make plans for YAPC::Asia
04:23 gaal good morning
04:43 svnbot6 r13179 | trey++ | Truncated comment fixed.
05:07 lambdabot joined perl6
05:49 f0rth joined perl6
05:58 lambdabot joined perl6
06:08 frankg joined perl6
06:10 masak my tests still hang on t/examples/all_parse :(
06:17 lambdabot joined perl6
06:36 masak is it relevant in some way that when i run pugs -c on the example that hangs the test suite, it complains about not finding AppConfig::Std?
06:37 masak after audreyt fixed the syntax bug, it does OK the file (examples/perl5/cpan-upload.pl)
06:38 masak ah well, skipping the test for now. nobody else seems to have the same issue
06:41 TreyHarris masak: i don't have a working pugs at the moment, once i do i'll try
06:47 masak TreyHarris: thx
06:47 TreyHarris trying now
06:48 masak it's a strange thing, the test hangs for me but running pugs directly on the file doesn't
06:52 TreyHarris you mean running "pugs t/examples/all_parse.t" works, but ".util/prove6 t/examples/all_parse.t" doesn't?
06:53 cmarcelo audreyt: just to keep you informed => found lots of segfault cases now. I gotta go now but will track it tomorrow. &
06:56 masak TreyHarris: no, both of those hang for me, but running pugs -c on examples/perl5/cpan-upload.pl (which is what the test file is supposed to be doing when it hangs) exits fine with a "syntax OK"
06:57 masak i wish there was a program-will-hang detector, despite having read about the halting problem :)
06:58 masak (somehow the fact that a general algorithm doesn't exist, never bothered me much)
07:00 gaal there kinda is, lag behind HEAD a day and keep reading #perl6 :-p
07:03 TreyHarris masak: all_parse is still running for me, but it's at test 92 now
07:04 TreyHarris which number hangs for you?
07:04 bsb left perl6
07:06 masak it prints 21 and then hangs
07:07 masak though for all I know, the routine that collects the files to parse has a platform-dependent collation, so be careful
07:07 masak the file in question is examples/perl5/cpan-upload.pl, though
07:10 TreyHarris oh
07:10 TreyHarris it just went by.  as number 105
07:10 TreyHarris delete it and svn update it maybe?
07:11 masak the cpan-upload.pl file?
07:12 TreyHarris yeah.  kinda voodoo-y, but if it's consistently on that file...
07:13 masak $ md5sum examples/perl5/cpan-upload.pl
07:13 masak 61909d5c10013f5dc700f1b30fd38530  examples/perl5/cpan-upload.pl
07:13 masak rm, svn up...
07:13 masak $ md5sum examples/perl5/cpan-upload.pl
07:13 masak 61909d5c10013f5dc700f1b30fd38530  examples/perl5/cpan-upload.pl
07:14 TreyHarris hrm
07:14 TreyHarris what does a trace show the pugs process doing?
07:15 masak TreyHarris: don't know, how can I tell?
07:15 TreyHarris what OS are you on?
07:15 masak linux
07:15 lambdabot joined perl6
07:16 TreyHarris is it hanging now?
07:16 masak yep :(
07:16 TreyHarris get its PID, and run "strace -p <pidnum> | tail -f"
07:16 masak ok
07:17 masak I seem to have four pugs processes running...
07:17 TreyHarris sorry, forget the tail -f
07:17 masak right
07:17 TreyHarris run pstree masak
07:17 TreyHarris to se which one is the root
07:18 TreyHarris er... pstree -p masak
07:18 TreyHarris otherwise you won't get the PIDs :-)
07:18 TreyHarris and then you want to strace the leaf
07:19 masak right
07:19 masak I get a lot of this:
07:19 masak write(2, "Error eval perl5: \"require AppCo"..., 8192) = ? ERESTARTSYS (To be restarted)
07:20 masak --- SIGALRM (Alarm clock) @ 0 (0) ---
07:20 masak sigreturn()
07:20 masak that's the refrain
07:20 masak it's repeated indefinitely
07:21 TreyHarris do you have AppConfig::Std?
07:22 masak is it a CPAN module? I guess not
07:22 masak that's probably it
07:22 TreyHarris well, i don't have it either
07:22 TreyHarris but it ends with "syntax OK"
07:23 TreyHarris does it end the same for you?
07:23 masak yes
07:23 masak installing AppConfig::Std now
07:23 TreyHarris that might be your best bet :-)  of course, then maybe it'll just move on to the next module you don't have and spin there :-)
07:23 masak :P
07:24 masak i'd actually prefer that
07:24 masak is there a way to label this problem to make it easier for the next person to solve?
07:24 TreyHarris i was thinking about that... but since i can't duplicate it, i dunno
07:24 masak yay! it continues after 21 :)
07:25 masak and doesn't seem to hang so far
07:25 TreyHarris unless i'm missing something, alarm() doesn't seem to be implemented
07:26 masak are we talking about the contents of cpan-upload.pl now?
07:26 masak i haven't actually looked at it
07:26 TreyHarris no, i was thinking about how to catch this in the future
07:26 masak ah
07:26 masak what's alarm() supposed to do?
07:26 TreyHarris since, no, the halting problem isn't solved, it would be typical to set a timeout beyond which you don't believe it will complete
07:27 TreyHarris masak: perl -e'alarm 5; sleep 20'
07:28 masak neat
07:29 masak but what if I'm running pugs on a 386 (with oodles of memory)? I'd have to set the alarm time based on processor speed somehow
07:29 traecer joined perl6
07:29 masak or document it liberally to make people with 386es able to change it easily
07:31 iblechbot joined perl6
07:32 TreyHarris no, a timeout will not make it easier if you're sitting there watching it.  but it could eliminate the frustration of running a smoke, returning many hours later, and finding it's been stuck almost since you left
07:32 TreyHarris you would want to set the timeout well beyond what would imaginably be reasonable
07:32 masak right
07:33 masak but still low enough to be useful
07:33 TreyHarris huh.  "use perl5:alarm" works, but I can't figure out how to get at it
07:36 TreyHarris ah, well, without signal handlers, SIGALRM's not going to be terribly useful anyway
07:37 masak anyway, so now I have the whole test suite running without hanging
07:38 masak what's this "test triaging" that audreyt needs done? :)
07:41 masak tri‧age -n: 1. the process of sorting victims, as of a battle or disaster, to determine medical priority in order to increase the number of survivors.
07:41 masak 2. the determination of priorities for action in an emergency.
07:42 masak what does sorting test victims entail?
07:44 drrho joined perl6
07:53 traecer left perl6
08:03 neo2676 joined perl6
08:03 neo2676 ?
08:04 masak neo2676: can you please rephrase the question?
08:04 masak all i got was the question mark in the end
08:04 masak :)
08:04 neo2676 sorry,i just want to see if the network is good ,
08:04 masak ah
08:04 masak it is. it's very good
08:04 neo2676 i just ask some question and the no response
08:04 neo2676 now it is good
08:05 masak maybe if you ask longer questions... :P
08:05 neo2676 i have many questions, for i am a beginner
08:06 masak me too, but still an avid follower of all things perl6
08:06 masak and there is much to follow, it's kind of a moving target :)
08:06 masak for better and for worse, mostly better i'd say
08:07 neo2676 yes, the most serious problem is my bad english
08:09 NamelessOne take it easy
08:09 masak neo2676: you're doing fine so far
08:10 neo2676 thank u,
08:10 TreyHarris masak: audreyt wants to have the next release out in the next week or so.  so she's deciding which failing tests will get dealt with before, and which will have to wait until after.  triage.
08:10 neo2676 i want to know where should i begin
08:10 masak neo2676: which language are you not bad at?
08:10 neo2676 chinese
08:10 neo2676 ºÇºÇ
08:10 masak TreyHarris: I see. how can I help?
08:11 TreyHarris masak: in triage?  i think that's a one-woman job.  in a too-many-cooks sense
08:11 masak neo2676: I'm very bad at chinese. :) but I'm taking a course this semester
08:11 neo2676 ok, i think i can help u if you like
08:12 neo2676 i want to know if there are small projects for the beginner
08:12 buu neo2676: 'you
08:12 buu neo2676: 'you'
08:12 masak TreyHarris: oh. maybe I'd better pick a perl 6 janitor task instead
08:13 neo2676 what?
08:13 buu neo2676: The correct word is 'you', 'u' is not a word in the english language.
08:13 masak neo2676: thank you. and buu is just being helpful, not mean :)
08:14 masak 'u' is a pervasive IM-lingo phonetic form of 'you'
08:14 neo2676 i know
08:14 kane-xs joined perl6
08:14 masak it is not seen in books, but then again, not many chat-forms of words are
08:14 neo2676 i want to follow the public, so i use u instead
08:14 buu neo2676: Please, do not.
08:15 buu neo2676: Anyone who uses 'u' is usually regarded as having lower intelligence, you wouldn't want people to think that about you, would you?
08:16 masak buu: i wouldn't think they had lower intelligence, just that they learned English through the Net, not in school
08:16 crem joined perl6
08:16 buu masak: *shrug*. As you like.
08:16 neo2676 i agree with masak
08:16 buu Doesn't make you right.
08:16 masak neo2676: and I partly agree with buu :)
08:16 neo2676 my english is from school, but it's bad too
08:16 masak neo2676: you want to make sure to make the right impression
08:17 buu masak: I've known lots of foreigners who've learned english from the net and tv and other popular culture things, they all managed to spell correctly.
08:17 masak buu: yes, but that's the converse of what i said
08:17 neo2676 yes, i have not communicate with the foreign, and my oral english is worst
08:18 drbean left perl6
08:18 masak neo2676: if I want to learn chinese, what should I think about the most?
08:18 masak neo2676: people tell me tones are important to master
08:19 masak neo2676: also, do you have a perl6 question, besides "?" ? :)
08:19 neo2676 yes, for the spelling is hard for foreigners
08:20 neo2676 i have learned the basic of the perl, and i want to know how to be a senior programmer of perl, and where to begin with
08:21 masak neo2676: just perl? not perl 6?
08:21 masak neo2676: you're in the experimental area right now, you see
08:21 neo2676 is perl6 = perl +oop?
08:22 masak neo2676: um, well, not really
08:22 masak neo2676: perl 6 is not production ready yet
08:22 masak neo2676: it does have OO, but so does perl 5, in its way
08:22 buu neo2676: Perl6 is a completely different language than perl5.
08:23 neo2676 i see
08:23 masak neo2676: is you want to hone your perl 5 skills, I suggest you trawl through CPAN for a day or a week or so, just marvelling at all the modules
08:23 masak and then maybe write a module of your own which you find useful
08:24 neo2676 do you have suggestions?
08:24 neo2676 about what aspect?
08:24 masak suggestions for modules to look at? or for problems to solve?
08:24 neo2676 yes, the latter
08:25 masak not really :)
08:25 masak depends too much on yourself
08:25 masak I tend to like math problems
08:25 masak like this one: http://masak.org/carl/whipuptitude/necklace.pl
08:25 lambdabot http://tinyurl.com/qr693
08:26 masak thx, lambdabot
08:27 masak or this one: http://masak.org/carl/whipuptitude/ntris.pl
08:28 neo2676 my os is not installed right, after i complete i will see how you program works
08:28 masak neo2676: sure, np
08:29 neo2676 what does np mean?
08:29 neo2676 oh, i see, no problem
08:30 masak neo2676: yes. I'm not sure if buu likes that usage either, so don't tell him I said that :)
08:31 neo2676 ok, i like this usage,
08:31 drbean joined perl6
08:31 neo2676 we can understand well with less typing
08:32 masak :)
08:32 buu "What does that mean?" "We understand well" ...
08:33 masak buu: you have a point
08:33 buu Thanks.
08:36 frankg joined perl6
08:37 ludan joined perl6
08:45 lambdabot joined perl6
09:02 cmarcelo audreyt: segfaults i was tracking (magicals/pids.t and b/bool/defined.t) with J.Hash in Pugs.Internals go away when either (a) use make fast, or (b) add 'hPutStr stderr ""' in Judy/Hash.hs insert_ function. i'm make smoke'ing to check against StrMap. but looks like GHC optimizer is doing something odd here =P.. (not sure if you already got at this point)
09:02 reZo joined perl6
09:13 rune joined perl6
09:33 ruoso joined perl6
09:51 prefiks joined perl6
09:59 rodi joined perl6
10:03 herbert joined perl6
10:04 NamelessOne left perl6
10:07 chris2 joined perl6
10:10 gaal elk
10:16 rodi mooooooooooooooooooooooooooose
10:20 nothingmuch cow
10:21 masak sea cucumber
10:24 int-e joined perl6
10:26 buetow joined perl6
10:31 KingDiamond joined perl6
10:31 premshree_ joined perl6
10:34 KingDiamond joined perl6
10:57 kanru joined perl6
11:02 kanru joined perl6
11:13 pdcawley joined perl6
11:14 SamB joined perl6
11:14 mj41_ joined perl6
11:15 iblechbot joined perl6
11:16 Kattana joined perl6
11:17 xern joined perl6
11:28 agentzh joined perl6
11:31 agentzh markstos: the smartlink.pl bug you reported earlier has been fixed in my local copy. that was a "natural" consequence of the algorithm used. thank you for pointing it out. :)
11:31 lambdabot agentzh: You have 1 new message. '/msg lambdabot @messages' to read it.
11:31 agentzh markstos: i'm doing the regression tests right now. once it's done, i'll commit the change.
11:35 agentzh testing smartlinks.pl is really tricky. util/t/smartlinks.t is not enough at all. currently i'm using my svn repos on berlios to remember the sample HTML outputs before the change.
11:35 agentzh and then compare the new outputs with that version (using svn diff or so).
11:36 crem_ joined perl6
11:36 agentzh audreyt: will try that later. :)
11:38 agentzh now committing to pugs repos merely takes a few seconds (intead of a few minutes in the past). :) audreyt++
11:38 svnbot6 r13180 | agentz++ | [util/smartlinks.pl]
11:38 svnbot6 r13180 | agentz++ | - added POD to explain the smartlink syntax, suggested by
11:38 agentzh https++
11:38 svnbot6 r13180 | agentz++ |   markstos++
11:38 svnbot6 r13180 | agentz++ | - fixed a bug for ignoring hanging smartlinks in the
11:39 svnbot6 r13180 | agentz++ |   tests, reported also by markstos++
11:43 agentzh markstos: btw, the smart_linking wiki is cute. :)
11:45 agentzh markstos: i'm using globals in smartlinks.pl because the code has become bloating. changing globals to function retval is good, but is sort of hard. :(
11:47 agentzh TreyHarris, markstos: feel free to add stuff to smartlinks.pl's POD if i'm missing something there. thank you!
11:49 markstos joined perl6
11:54 agentzh markstos: please backlog. :)
11:54 markstos agentz: I saw your patch. Thanks!
11:54 agentzh thank __you__ :)
11:54 markstos I thought I would remove the now-duplicated text in t/README and replace it with a reference to read the perldoc in smartlinks.pl instead.
11:55 agentzh markstos: go ahead. :)
11:59 svnbot6 r13181 | markstos++ | Remove smart linking docs from t/README which agentz++ has now included
11:59 svnbot6 r13181 | markstos++ | in the smartlinks.pl POD
11:59 mako132_ joined perl6
12:02 agentzh where can i get CPAN's MIRRORED.BY?
12:02 svnbot6 r13182 | audreyt++ | * Convert all "catch" in Pugs source code to "catchIO", which
12:02 svnbot6 r13182 | audreyt++ |   is a re-export of Control.Exception.catch, such that "eval"
12:02 svnbot6 r13182 | audreyt++ |   can catch asynchronous and imprecise exceptions, e.g. internall
12:02 svnbot6 r13182 | audreyt++ |   "error" calls during parsing:
12:02 svnbot6 r13182 | audreyt++ |     eval '"\123"'; # no longer a fatal error
12:02 * agentzh is still fighting against activeperl 5.8.8.
12:03 agentzh audreyt: nice to see r13182. :)
12:03 integral agentzh, ftp.cpan.org/pub/CPAN/MIRRORED.BY
12:04 agentzh integral: ftp://?
12:04 integral or http://
12:04 agentzh integral: okay, thanks.
12:11 gaal why should  eval '"\123"' be any error at all?
12:14 markstos ?eval eval '"\123"'
12:14 evalbot_r13177 is now known as evalbot_r13180
12:14 evalbot_r13180 pugs: Error: Invalid escape sequence \123; write as decimal \d123 or octal \o123 instead
12:14 agentzh it's overkill.
12:14 agentzh hehe
12:14 markstos overkill? I find it clear and helpful.
12:15 markstos ?eval eval '"\456"'
12:15 agentzh sorry, i meant say '"\123"';
12:15 lisppaste3 joined perl6
12:15 evalbot_r13180 pugs: Error: Invalid escape sequence \456; write as decimal \d456 or octal \o456 instead
12:15 agentzh ?eval say '"\123"';
12:15 evalbot_r13180 OUTPUT["\123" ] Bool::True
12:15 markstos ?eval eval '"\45655555555555555555555555555555​555555555555555555555555555555555"'
12:15 agentzh it used to croak.
12:15 evalbot_r13180 pugs: Error: Invalid escape sequence \456555555555555555555555555555555​55555555555555555555555555555555; write as decimal \d45655555555555555555555555555555​555555555555555555555555555555555 or octal \o45655555555555555555555555555555​555555555555555555555555555555555 instead
12:16 agentzh audreyt has just fixed it.
12:16 agentzh the tests are in t/syntax/char_by_number.t, iirc.
12:17 markstos Ok, here's a new blog to recruit smart linkers. I need to get ready for $job now!
12:17 markstos http://pugs.blogs.com/pugs/2​006/09/the_benefits_of.html
12:17 lambdabot http://tinyurl.com/nlgzp
12:17 agentzh markstos++
12:18 Limbic_Region joined perl6
12:19 agentzh i think someone should write about the new smoke server updated by malon++
12:21 xinming_ joined perl6
12:21 Bit-Man joined perl6
12:25 agentzh audreyt: yay, finally got activeperl 5.8.8 working. (although it fails some of the tests of DBI and LWP) :)
12:25 agentzh audreyt: thank you for your solution, it really helped.
12:27 agentzh audreyt: fyi, the latest YAML::Syck failed to build here.
12:28 pasteling "agentzh" at 210.22.200.67 pasted "YAML Syck 0.67 build failure on Win32 activeperl 5.8.8" (103 lines, 5.4K) at http://sial.org/pbot/19589
12:28 agentzh audreyt: oh, i think i got the same error while building DBI.
12:29 agentzh "Eval-group not allowed at runtime, use re 'eval' in regex m/^ \s+ sv_set ( [iunp..."
12:30 audreyt weird.
12:30 audreyt edit e:\perl\lib\exutils\xsubpp
12:30 audreyt and add
12:30 audreyt use re 'eval';
12:30 audreyt on top of it?
12:30 agentzh okay
12:31 gaal audreyt: did you see my typeclass / fundep composition question from ~15h ago? I'm at work but prolly won't be back home while you're still up
12:32 Limbic_Region audreyt - Win32 platform available to you yet?
12:32 Limbic_Region oh, and hope everyone had a good weekend
12:32 agentzh audreyt: same error. :(
12:32 ofer0 joined perl6
12:32 markstos agentz: I'm not aware of malon's work. If you send me a mail at [email@hidden.address] with some details, I can see about turning it into a post.
12:33 audreyt gaal: no, where?
12:33 markstos I'm also interested to try Sage's P5 -> P6 conversion tool, from the Summer of Code
12:33 * markstos keeps getting ready to leave
12:33 agentzh markstos: okay
12:33 audreyt Limbic_Region: no, not yet. maybe tomorrow
12:34 Limbic_Region okies
12:35 Limbic_Region I am still building from the changes over the weekend
12:35 gaal audreyt: http://colabti.de/irclogger/irclogger_log/​perl6?date=2006-09-10,Sun&amp;sel=399#l676
12:35 lambdabot Title: #perl6 2006-09-10,Sun, http://tinyurl.com/mzgno
12:35 Limbic_Region but was going to run a smoke to let you know where Win32 stood
12:35 audreyt Limbic_Region: ok
12:37 gaal (also I don't see how pretty can be pure and handle Muty and Exty values, but that can wait for later)
12:38 audreyt gaal: you are casting v
12:38 audreyt formatVal (VPure v)
12:38 audreyt is more correct
12:38 audreyt not
12:38 audreyt formatVal v@VPure{}
12:38 gaal had got same error when i did that
12:38 gaal *gotten
12:39 gaal actully, since we call castVal, v@VPure is in fact correct :)
12:40 audreyt nod. nopaste or upload a patch?
12:40 gaal sure sec
12:42 pasteling "gaal" at 192.115.25.249 pasted "PrettyPure orz" (30 lines, 1.2K) at http://sial.org/pbot/19590
12:43 gaal (here I have class (ICoercible P a, Pure a) => PrettyPure but the same error happens whn putting the method right on Pure)
12:45 gaal (hm, why did I drop that valShow =cast . show line? dunno)
12:51 audreyt gaal: I'll bbiab. looks sane though...
12:58 gaal no worky;
13:04 gaal hmm, 'worries.pm', and I wonder what it does when you say 'no worries'. but no worries, it doesn't matter!
13:17 TimToady Ah, the glorious feeling of having a week's worth of email and irc to backlog...
13:18 gaal TimToady: moose!
13:18 TimToady likewise, I'm sure.
13:18 gaal (just welcoming you back with something you've learned to expect, make you feel at home etc.)
13:19 TimToady plus I apparently am on jury duty this week, at least in the phone-pool sense...
13:19 TimToady and I'm sure they *won't* let me irc from the courtroom...
13:19 cjeris joined perl6
13:20 rodi In DC superior court, they let me IRC in the waiting room...
13:20 TimToady well, thet's certainly a possibility, given this is silicon valley...
13:20 TimToady assuming they have wireless there...
13:21 Limbic_Region TimToady - I am sure it wouldn't be extremely difficult to convince them you are a little touched in the head if actually chosen for jury duty
13:21 rodi They didn't in DC, but they had a couple old machines plugged into ethernet, and when I unplugged one and plugged in my laptop, the DHCP deity was kind.
13:21 Limbic_Region just explain the last 6 years of your life - they will understand
13:21 TimToady heh.
13:22 TimToady well, I am likely to be able to get myself kicked off of any actual jury if I put my mind to it.
13:22 gaal jury rigged IRC duty
13:22 rodi They asked me if I'd ever been victim of a crime, and when I admitted I'd been mugged three times in the past five years, they asked me to please leave.
13:22 TimToady well, I've been burglarized a few times.  That's about it.
13:23 rodi but I still had five or six hours of IRC while waiting :)
13:23 TimToady on the other hand, they *don't* want logical people in there, at least in general.
13:23 Limbic_Region I have only been burglarized once to my knowledge - while living in Korea
13:24 lumi So only the unmugged are fit for jury?
13:25 TimToady now if this were in Mountain View, I'd have Google wireless automatically.
13:25 TimToady But it's probably somewhere in San Jose.
13:25 rodi lumi: it was a mugging trial.
13:25 lumi oic. Sort of.
13:25 lumi We don't have this jury system here
13:26 TimToady It has its advantages and disadvantages.
13:26 rodi I am ambivalent about it.  Love the idea.  Hate the fact that it doesn't really work.
13:26 TimToady kind of @judge vs $judge...
13:26 rodi heh
13:27 fglock joined perl6
13:38 agentzh TimToady: seen my recent p6l mails?
13:38 jabbot agentzh: I havn't seen my, agentzh
13:41 * agentzh is trying to find out how to generate a list of random numbers in Haskell.
13:45 kisu joined perl6
13:45 Limbic_Region agentzh - That's pretty easy
13:45 Limbic_Region and I have only been working with Haskell for about 3 hours now ;-)
13:45 Limbic_Region are you using YAHT?
13:45 agentzh LR: i'm listening.
13:46 * Limbic_Region is pulling YAHT up now
13:46 Limbic_Region do you want ints or floats?
13:46 agentzh LR: i read that about 1 year ago.
13:46 agentzh floats
13:46 Limbic_Region what range?
13:46 TimToady agentzh: haven't gotten to p6l yet.
13:46 mdiep joined perl6
13:46 agentzh TimToady: np :)
13:47 agentzh LR: 0 <= x < 100
13:47 Limbic_Region k
13:48 c6rbon joined perl6
13:48 Limbic_Region import Random
13:48 agentzh k
13:48 Limbic_Region randomRIO (0, 100)
13:49 Limbic_Region the rest should be straight forward
13:49 Limbic_Region though I misread your range reqs - adjust accordingly
13:49 agentzh LR: okay, i've seen the code snippet in YAHT. :)
13:49 agentzh LR: thank you for your help. :D
13:50 Limbic_Region no worries - glad to help, I am attempting to force feed haskell in this puny brain of mine myself
13:51 Limbic_Region note that randomRIO is unpure so use <- when storing in var
13:59 gaal better import System.Random instead
13:59 gaal hierarchical modules and all that
14:00 ofer0 joined perl6
14:03 apple-gunkies can someone help me with a pugs error:  No compatible subroutine found: "&right"
14:03 agentzh gaal: could you offer the code?
14:03 apple-gunkies when trying to insert into a linked list like so: $.left.right = new coverNode;
14:03 agentzh gaal: i'm still having problems with monads...
14:04 gaal agentzh: Limbic_Region's code is good
14:04 apple-gunkies where .left and .right are also coverNodes
14:05 gaal main = do { n <- randomRIO (0, 100) ; printStrLn n }
14:06 pasteling "agentzh" at 210.22.200.67 pasted "what's wrong with this piece of Haskell code?" (18 lines, 452B) at http://sial.org/pbot/19593
14:07 agentzh gaal: please take a look. :)
14:07 mdiep joined perl6
14:07 ruoso joined perl6
14:09 agentzh or "import Random" even...
14:09 gaal sec
14:10 gaal ok first, you are importing unqualified so you don't need Random.randomRIO
14:10 gaal randomRIO is enough
14:10 agentzh yeah
14:10 gaal the error about list not being in scope, it's because, well, it isn't :-)
14:10 gaal when you do x <- something
14:10 gaal then x is not visible in where clauses.
14:10 agentzh ah...i see
14:11 agentzh is the genSeq function correct?
14:11 gaal so make list a function of arity 1:
14:11 gaal list sq = take 100 sq
14:11 gaal and call it with
14:11 gaal (list list')
14:12 orafu joined perl6
14:12 agentzh *nod*
14:12 gaal more errors now. let's see.
14:13 Limbic_Region agentzh - in addition to what gaal said
14:13 Limbic_Region you have to stringify it
14:13 Limbic_Region IIRC, that is show()
14:13 Limbic_Region read numifies a string IIRC
14:13 agentzh LR: ah
14:14 Limbic_Region of course, there may be much easier ways of doing it - I am only working from about 30 pages of YAHT ATM
14:14 agentzh LR: you seem to be smarter than i. ;)
14:15 gaal now:
14:15 gaal genSeq :: IO Float
14:15 gaal you actually want it to be another type - an infinite list of Floats
14:15 gaal IO [Float]
14:15 agentzh oh, yes!
14:15 agentzh forgot that. :)
14:16 gaal @hoogle Monad m => [m a] -> m [a]
14:16 lambdabot Prelude.head :: [a] -> a
14:16 lambdabot Prelude.last :: [a] -> a
14:16 gaal uh, not what I was looking for :)
14:16 lumi Very nice.
14:16 lumi sequence I think
14:16 gaal @hoogle sequence
14:16 lambdabot Prelude.sequence :: Monad m => [m a] -> m [a]
14:16 lambdabot Prelude.sequence_ :: Monad m => [m a] -> m ()
14:16 lambdabot Language.Haskell.TH.Syntax.sequenceQ :: [Q a] -> Q [a]
14:16 gaal yes
14:17 agentzh a sequence of monads...
14:17 lumi No, 'sequence' sequences monads
14:18 agentzh hmm
14:18 agentzh so i should use sequence in my genSeq function.
14:19 gaal yes, like so:
14:19 gaal genSeq = sequence genSeq' where genSeq' = randomRIO (0::Float, 100) : genSeq'
14:19 agentzh aye!
14:20 Limbic_Region extremely odd make smoke results
14:20 gaal now, it compiles, but loops :)_
14:21 Limbic_Region http://m19s28.vlinux.de/iblech/stuff/pugs​-smokes/pugs-smoke-6.2.12-r13182-MSWin32-​normal--1157984306-4181--162-159-3-6-4-0-​-be098c689b781b03ac47d52c9a13d398.html
14:21 lambdabot Title: TAP Matrix - Mon Sep 11 14:15:41 2006 GMT, http://tinyurl.com/zx3oq
14:25 * agentzh is feeling frustrated.
14:28 lumi Infinite sequences take a while to compute
14:28 agentzh lumi: :)
14:29 agentzh it compiles now, but begins to compute an infinite loop?
14:29 agentzh sequence is eager?
14:29 lumi Well, you're telling it to perform an infinite number of acitons before moving on
14:29 lumi s/acit/acti/
14:30 gaal actually this surprised me. how do you create a lazy list of actions?
14:30 gaal agentzh: you can, of course, work around this by pushing the take into genSeq.
14:30 lumi I think it has to work this way, execution in IO has to be determinable
14:31 agentzh what i want to do is simply constructing a list of 100 random numbers.
14:31 lumi I think you have to sequence a finite number of actions
14:31 gaal agentzh: yes, so put the 'take' inside genSeq
14:32 agentzh genSeq = sequence $ take 100 genSeq' ?
14:32 lumi sequence $ take 100 $ fix (Random.randomRIO (0::Float, 100) :) -- I guess?
14:32 audreyt t/syntax/char_by_name.t now passes.
14:32 gaal sequence $ take 100 genSeq'
14:32 audreyt agentzh++
14:32 agentzh audreyt++
14:33 svnbot6 r13183 | audreyt++ | * Add support for character name escapes:
14:33 svnbot6 r13183 | audreyt++ |     say "\c[LATIN CAPITAL LETTER Y]";
14:33 svnbot6 r13183 | audreyt++ |   With Perl 5 embedding, the full Unicode range is supported via
14:33 svnbot6 r13183 | audreyt++ |   charnames.pm.  Without Perl 5 embedding (e.g. in "make ghci"),
14:33 svnbot6 r13183 | audreyt++ |   only codepoints in the range 0x00-0xFF are supported.
14:33 svnbot6 r13183 | audreyt++ |   Note: Now Perl5 embedding is on by default, we can implement
14:33 svnbot6 r13183 | audreyt++ |   more "core" Pugs functionalities this way, instead of maintaining
14:33 svnbot6 r13183 | audreyt++ |   huge amount of duplicate information.  (Encode.pm comes to mind.)
14:33 agentzh gaal: would you please paste the modified version?
14:33 agentzh i'm still entering infinite loops after the change.
14:34 lumi gaal: There's some unsafeIntersperseIO or such that gives you laziness there, I think...
14:34 audreyt unsafeInterleaveIO
14:34 agentzh oh, sorry!
14:34 agentzh it suddenly works!
14:34 agentzh gaal++ lumi++
14:35 * agentzh is feeling very happy.
14:35 agentzh audreyt: it's nice to see char_by_name.t is passing now!
14:35 pasteling "gaal" at 192.115.25.249 pasted "fixed random" (20 lines, 488B) at http://sial.org/pbot/19596
14:35 agentzh yay!
14:36 agentzh gaal: thanks! looking
14:36 audreyt agentzh: and what's more, this kind of "feature" is very easy to implement
14:36 gaal yay! :)
14:36 audreyt you can do it yourself pretty soon I think
14:36 agentzh audreyt: i hope so. :)
14:36 audreyt    sv      <- evalPerl5 ("require charnames; charnames::vianame(qq["++name++"])") envSV 1
14:36 audreyt that's all, actually.
14:36 agentzh hehe
14:37 audreyt it's, of course, cheating, but why duplicate 1Mb of information in our source tree :)
14:37 agentzh but then i need perl 5 embedding :)
14:37 audreyt which is on by default :)
14:38 gaal and a recent p5, which is required on windows anyway :)
14:38 agentzh audreyt: i'm pondering degrading to 5.8.7 since it's still problematic.
14:38 audreyt charnames  was first released with perl 5.006
14:38 gaal but are all the tables good since then?
14:38 audreyt agentzh: hrm. I wonder if you can install strawberry 2
14:38 audreyt gaal: I call via ::vianame API
14:38 agentzh audreyt: i'll think about that.
14:38 audreyt agentzh: and then copy your site\lib\ into strawberry
14:39 audreyt which will still let you avoid reinstalling every module
14:39 agentzh k
14:39 audreyt the plus is that you can install via CPAN shell normally
14:39 audreyt without waiting for PPM builds
14:39 gaal so, any thoughts on the fundep composition problem, audreyt?
14:39 agentzh *nod*
14:39 audreyt and without running into VC++ bugs :)
14:41 agentzh audreyt: will try another day.
14:41 agentzh gaal: i'm learning new stuff from your code. thank you. :)
14:43 lumi gaal: What's the fundep composition thing?
14:43 audreyt gaal: well, there's a typo and a typo
14:43 audreyt gaal: you had "purePretty v" where you mean v'
14:43 TimToady Makefile.PL seems to be missing a few --output-file smoke.yml options on various run-smokes
14:43 TimToady anyway, my "make smoke" always fails
14:44 audreyt rehi TimToady
14:44 TimToady and I have to do "make upload-smoke" by hand.
14:44 TimToady fancy meeting you here.
14:44 audreyt curious, I can't seem to duplicate that
14:44 audreyt "make smoke" fails how?
14:45 TimToady it runs run-smoke without --output-file smoke.yml, and run-smoke fails when it tries to upload itself (rather than relying on the Makefile's upload-smoke)
14:46 gaal agentzh: cool! our evil plan is obviously to get you to commit .hs code :p
14:46 gaal lumi: backlog a little bit
14:46 svnbot6 r13184 | audreyt++ | * Existential therapy for gaal++'s purePretty patch.
14:46 gaal audreyt: hmm
14:46 ofer0 joined perl6
14:46 TimToady * smokeserv-client v0.4 started.
14:46 TimToady * Gzip compression on
14:46 TimToady * **  Make sure you include both .html and .yml!
14:46 TimToady * Aborting.
14:46 TimToady Couln't run smoke upload script:  at util/run-smoke.pl line 79.
14:46 TimToady make: *** [smoke-pugs] Error 1
14:47 * gaal was studying the implementation of unsafeInterleaveIO
14:47 audreyt attempted a fix.
14:48 amnesiac joined perl6
14:48 svnbot6 r13185 | audreyt++ | * Fix autouploading of smoke results by attaching .yml too.
14:48 svnbot6 r13185 | audreyt++ |   Reported by TimToady++.
14:49 audreyt gaal: it's explained IIRC in the awkward squad paper.
14:49 gaal I knew it sounded familiar when I saw the comment on their believing INLINE is safe there
14:50 gaal the implementation looks weirdly like a clumsy id though!
14:51 gaal i'll stare at this some more when I get home..
14:51 Limbic_Region TimToady - I uploaded manually after that failure and got those bizarre results I nopasted earlier
14:52 ofer0 joined perl6
14:56 TimToady um, that fix to run-smoke doesn't make much sense to me.
14:56 TimToady the previous call to upload_smoke fails.
14:57 TimToady and it seems there is a duplicate call to system.
14:58 TimToady and the basic problem is that run-smoke isn't passed --output-file smoke.yml in the first place.
14:59 gaal whoa, audreyt, was the fix to ignore everything and just do a patmatch? how the..?
14:59 TimToady okay, I see where it's defaulting.
14:59 gaal ah, because it's redispatched on Pure again?
15:00 dakkar joined perl6
15:03 audreyt yup
15:03 audreyt sleep. bbl :)
15:04 obra hi audreyt
15:04 obra bye
15:05 TimToady night!
15:08 kolibrie joined perl6
15:12 xerox gaal: do you have an url for that implementation?
15:14 Daveman xerox :D
15:14 xerox :)
15:14 Daveman What a pleasant surprise :)
15:22 int-e left perl6
15:26 iblechbot joined perl6
15:36 rodi question for anyone who knows: S12 specifies "META" method, Pugs has "meta" method, but not "META":
15:36 rodi ?eval role a; class b does a; my b $c .= new(); $c.meta.does('a')
15:36 evalbot_r13180 is now known as evalbot_r13185
15:36 evalbot_r13185 Bool::True
15:38 rodi Right now, there are tests only for "meta" and not "META".  Should I a) add tests for "META", b) change S12, or c) do something else
15:38 rodi ?
15:39 rodi ?eval role a; class b does a; my b $c .= new(); $c.META.does('a') # for your viewing pleasure
15:39 evalbot_r13185 Error: No compatible subroutine found: "&META"
15:39 dakkar rodi: ask in p6l?
15:40 rodi seems like a reasonable plan :)
15:42 gaal xerox: GHC/IOBase.lhs in GHC source
15:43 gaal unsafeInterleaveIO :: IO a -> IO a
15:43 xerox @fptools GHC.IOBase
15:43 lambdabot GHC.IOBase not available
15:43 PerlJam joined perl6
15:43 weinig|bbl is now known as weinig
15:43 xerox @fptools GHC.Prim
15:43 lambdabot GHC.Prim not available
15:43 gaal unsafeInterleaveIO (IO m) = IO ( \ s -> let r = case m s of (# _, res #) -> res in (# s, r #))
15:43 xerox Pfft.
15:43 kanru joined perl6
15:44 xerox I see.
15:45 gaal rodi: I think pugs is in error here.
15:47 rodi gaal: seems that way.  What's usually done with this kind of thing happens, assuming it will break a lot of things (though things that are admittedly easy to find and fix)
15:47 rodi ?
15:49 gaal rodi: grep -r \.meta t | wc -l
15:49 gaal only 103
15:49 rodi yeah :)
15:49 gaal what is done is that first you ask someone who knows better than I do if the change is really correct,
15:49 gaal then you fix the tests,
15:50 gaal then you fix the code. :)
15:50 rodi I think I can swing all that.  I'll email p6l first, though.
15:50 gaal yes, that's the ask someone who knows better than me bit :)
15:52 gaal #3 is actually quite trivial. change Pugs.Prim lines grep -r \.meta t | wc -l
15:52 gaal oops
15:52 gaal lines 1956 and 649
15:53 gaal plus, since you will have done #2 prior to that, you'll find it easy to tell if I was wrong and #3 entails something else as well :P
15:54 rodi ;)
15:58 ofer0 p6rl
16:00 gaal m00se
16:00 svnbot6 r13186 | gaal++ | * restore ValNative's valShow method which I accidentally
16:00 svnbot6 r13186 | gaal++ |   got audreyt++ to drop in her latest therapeutic fix.
16:00 Limbic_Region gaal - in Haskell, how to I specify a type signature such that I say something returns an array of ints?
16:01 gaal f :: [Int]
16:01 mauke that's not an array
16:01 gaal right, list
16:02 gaal I'm guessing that's what Limbic_Region meant though.
16:02 * Limbic_Region tries it in case that is what he meant
16:03 gaal Limbic_Region: do you want a mutable structure?
16:03 gaal are you using : and ++ to construct it?
16:03 Limbic_Region gaal - I don't know, I am trying to do one of the exercises in YAHT
16:03 Limbic_Region let me nopaste it
16:04 gaal sure
16:04 pasteling "Limbic_Region" at 129.33.119.12 pasted "Trying to read a list of numbers one at a time from STDIN and store it as an array of ints" (19 lines, 358B) at http://sial.org/pbot/19597
16:05 Limbic_Region it is quite simple but I am not sure what it is I am doing wrong
16:05 mauke if it involves [] and :, you're dealing with lists
16:05 wolverian ?type getLine
16:06 lambdabot IO String
16:06 Limbic_Region wolverian - I am using read to cast
16:06 Limbic_Region let n = read num
16:06 wolverian right. I just read the == comparison wrong
16:06 wolverian (== 0)
16:07 gaal Limbic_Region: for didactic purposes <g> what's the error you're getting?
16:07 ludan joined perl6
16:07 Limbic_Region let me nopaste that as well
16:07 mauke main :: IO (); getNums :: (Read a) => IO [a] or something
16:07 Limbic_Region running using ghci without extensions
16:08 gaal no, never mind :) you need to tell read what it's returning
16:08 pasteling "Limbic_Region" at 129.33.119.12 pasted "The errors" (10 lines, 488B) at http://sial.org/pbot/19598
16:08 gaal let (n :: Int) should do
16:08 Limbic_Region I need to tell read what it is returning?
16:08 wolverian or use num somehow elsewhere that imposes a concrete type on it, I assume
16:08 Limbic_Region ok, let me try that
16:09 mauke or give getNums an explicit type
16:09 wolverian (or nums)
16:09 gaal ...which is the same thing :)
16:09 mauke getNums :: IO [Integer] or whatever
16:09 Limbic_Region except that now says I need extenstions gaal
16:09 Limbic_Region will try it
16:09 gaal let's get it to work w/o extensions :)
16:10 Psyche^ joined perl6
16:10 Limbic_Region it does indeed work with extensions now
16:10 Limbic_Region so any help in avoiding the extensions would be useful to me
16:10 lumi Limbic_Region: Where did you put the type annotation?
16:10 Limbic_Region let (n :: Int) = read num
16:11 Limbic_Region the example in YAHT prior to this didn't imply it was necessary but whatever
16:11 gaal hm, interesting that that hits the monomorphism restriction.
16:11 lumi I think it you give getNums a type, like mauke said, you'd not need extensions
16:11 mauke what happens if you use getNums :: IO [Integer] instead?
16:11 Limbic_Region let me try that
16:11 gaal lumi, mauke: yes, those don't hit the mm wall.
16:11 vel joined perl6
16:11 lumi gaal: Does it? how?
16:12 gaal lumi: that's what I'm finding interesting, or in other words, what I am yet to figure out. :)
16:12 gaal ahhhh no
16:12 gaal it isn't
16:12 Limbic_Region lumi - Illegal signature in pattern: IO [Integer]
16:12 gaal it
16:12 lumi I think it's just a ghc syntax extension?
16:13 Limbic_Region and it says to use extensions to fix it
16:13 gaal 's simply that
16:13 gaal right.
16:13 gaal yes
16:13 mauke Limbic_Region: whoa, where did you put that?
16:13 Limbic_Region so I would rather use the let (n :: Int) = read num
16:13 Limbic_Region since *that* makes sense to me
16:13 Limbic_Region mauke - getNums :: IO [Integer] = do
16:13 mauke ah, no
16:13 gaal so, Limbic_Region, for pugsy purposes, you can always say let (n :: Int)
16:13 Limbic_Region oh, in the assignment then?
16:13 Limbic_Region makes sense
16:13 * Limbic_Region fiddles some more
16:13 mauke getNums :: IO [Integer]; getNums = ...
16:13 mauke it's an extra line
16:14 gaal but the point about these being eventually all equivalent -
16:14 gaal what mauke and wolverian and lumi suggested
16:14 gaal that's a pretty important point about haskell, viz... it has type inference! :)
16:14 Limbic_Region yay mauke
16:15 mauke Limbic_Region: alternatively, let n = read num :: Integer
16:15 gaal wow, four different ways of hinting the same thing
16:15 Limbic_Region oh, so Integer is built in but Int requires extensions
16:15 mauke no
16:15 gaal Limbic_Region: once you 'get' typeclasses you'll see why the hint was necessary
16:15 mauke you just can't put type annotations on the lhs of =
16:16 Limbic_Region gaal - once I "get" to that part in YAHT, I am sure I will
16:16 Limbic_Region mauke - danke
16:16 mauke Int is a fixed-width integer type, Integer is bigint
16:16 gaal this needing an extension is a not-very-profound syntactic thing, I think.
16:16 * Limbic_Region moves on to the second part of the exercise which is summing, producting, and factorialing the numbers in the array
16:17 gaal Limbic_Region: and, if you'd have conflicting types, say [Integer] in the let and [Int] in nums, the compiler would yell.
16:17 lumi How does ghci pick a numeric type?
16:17 gaal (try it!)
16:17 gaal default default?
16:17 mauke read uses the context it's used in to determine the conversion it uses
16:18 mauke type annotations tell the compiler about what type is expected from read
16:18 lumi Yeah, a default type.. f'rex, "1" in ghci doesn't blow up :P
16:19 marmic joined perl6
16:19 gaal lumi: http://www.haskell.org/tut​orial/numbers.html#sect10.4
16:19 justatheory joined perl6
16:19 lambdabot Title: A Gentle Introduction to Haskell: Numbers, http://tinyurl.com/h4xms
16:19 Limbic_Region thanks all - I am AFK now
16:20 gaal lumi: to the point, 'default' is actually a keyword
16:20 lumi Oh hm
16:22 Psyche^ is now known as Patterner
16:25 weinig joined perl6
16:26 agentzh yay, i've finished my third Haskell toy programs. they're all working pretty well. :)
16:26 agentzh *program
16:26 agentzh that's enough for a day. g'night, everyone~~~
16:27 agentzh &
16:27 agentzh left perl6
16:27 gaal night agentzh
16:28 gaal oops too late
16:29 amnesiac_ joined perl6
16:30 Limbic_Region grrr
16:31 Limbic_Region ok - so I know how to work around my current problem but I would rather know how to fix it proper
16:31 gaal which problem?
16:31 Limbic_Region same code as before - but once I have collected  nums <- getNums
16:31 Limbic_Region I want to call a function showOutput nums
16:32 Limbic_Region but it is whining about mismatched type and inferred (IO) type
16:32 mauke show code/errors
16:33 gaal from my experience, GHC does not usually whine. It rolls its eyes at your mistakes.
16:33 pasteling "Limbic_Region" at 129.33.119.12 pasted "New problems with my YAHT exercise" (36 lines, 902B) at http://sial.org/pbot/19600
16:34 mauke showOutput is broken
16:34 mauke what is its type?
16:34 Limbic_Region it isn't going to return anything so I guess it is void
16:35 Limbic_Region ahh, but it is not pure
16:35 mauke there is no void
16:35 Limbic_Region wait, yes it is
16:35 gaal something that just has effects is IO ()
16:35 gaal just like main
16:35 gaal but showOutput is not arity 0
16:35 Limbic_Region all it is going to do is print out some statistics on nums
16:36 gaal so it can't be just showOutput :: IO ()
16:36 gaal because it reveices the numbers.
16:36 gaal brb
16:36 Limbic_Region k
16:36 Limbic_Region the simple solution btw is just to put the printing out of statistics in main
16:36 Limbic_Region and put it all in one big do block
16:36 mauke Limbic_Region: write down its type, it helps :-)
16:36 Limbic_Region mauke - I don't know its type
16:36 Limbic_Region it doesn't help
16:37 amnesiac_ is now known as amnesiac
16:37 mauke ok, it's a function taking one argument, so it's something like foo -> bar
16:37 mauke the argument is a list of numbers, so foo = [Integer]
16:38 mauke the return type is the same as putStrLn's
16:38 Limbic_Region ahh duh
16:38 Limbic_Region so why doesn't main require the same?
16:38 mauke huh?
16:39 Limbic_Region I guess what I am trying to say is it is not clear to me when I have to specify types and when I don't
16:39 mauke you (almost) never have to
16:39 mauke in this case you might notice that [] isn't an IO ()
16:39 mauke the compiler complains because the two definitions return different types
16:39 Limbic_Region well, then I am seriously messing this introductory exercise up
16:39 * Juerd dist-upgrades feather
16:40 Juerd Limbic_Region: Don't worry; apache isn't in the upgrades list.
16:41 mauke Limbic_Region: hmm, why do you need to distinguish between [] and (x : xs) anyway?
16:41 Limbic_Region thanks Juerd
16:41 Limbic_Region mauke - ignore that as copy/paste
16:41 Limbic_Region mauke - so let's take a step back and explain what I am trying to do instead of showing the code that I am trying to do it with
16:41 mauke ok
16:42 Limbic_Region step 1:  obtain from stdin, a list of ints (1 at a time) terminating when 0 is entered
16:43 gaal (which you already know how to do)
16:43 Limbic_Region note that my use of list versus array and ints versus Integers is not intentional - I am just trying to explain what's going on as simple as possible
16:43 Limbic_Region step 2 pass that list to a function that will then print out some statistics on it
16:43 Limbic_Region that's it
16:43 gaal Limbic_Region: I think you're on the right track
16:44 gaal and that mauke is correct, the type will help you
16:44 Limbic_Region gaal - I can't be
16:44 gaal as will understanding the structure of the error message
16:44 gaal Couldn't match expected type `[a]' against inferred type `IO ()'
16:44 Limbic_Region unless YAHT would expect me to catapult way ahead of what has already been shown
16:44 Limbic_Region every exercise up to this point didn't require any knowledge beyond what had already been presented
16:44 gaal this message means something informative
16:45 Limbic_Region gaal - I get that
16:45 Limbic_Region I know I could make it work but there has to be something simpler I am missing
16:45 gaal it says that you have an expression, its type really is IO ()
16:45 Limbic_Region perhaps the intention then is for the student just to put everything in the main do blcok
16:45 gaal that expression is:    putStrLn "The sum is: "
16:45 mauke Limbic_Region: I don't get what the problem is, actually
16:46 gaal but something else forces GHC to expect a different type of that expression
16:46 mauke Limbic_Region: you just have to define showOutput and it'll work
16:46 gaal that something else is the other declaration of showOutput, which *must* be of type [a]
16:46 Limbic_Region mauke - perhaps you missed the part where I said the exercises don't expect you (or at least haven't so far) to have knowledge beyond what has already been taught
16:47 gaal sorry, the expression returned by the first declaration
16:47 Limbic_Region meaning there should be a simpler way to tackle this exercise that I am missing
16:47 mauke I don't know what's been taught so far
16:47 mauke what do you mean by "simpler"?
16:47 Limbic_Region very little
16:47 gaal Limbic_Region: don't panic. you really are on the right haskell track, even if YAHT had a different idea.
16:47 Limbic_Region mauke - fewer functional calls would be my guess - wrapping everything up in main
16:48 Limbic_Region ok - so then what should showOutput's type be?
16:48 gaal first, reconcile the two declarations
16:48 gaal showOutput [] = [] is clearly wrong, because why do you need to return an empty list?
16:48 mauke Limbic_Region: informal type: bunch of ints -> IO something
16:49 Limbic_Region gaal - copy/paste issue, removed locally
16:49 gaal now (maybe YAHT didn't tell you this, but) main has the type main :: IO ()
16:49 mauke e.g. showOutput xs = do putStrLn "hi2u"  should compile and work
16:49 Limbic_Region woah
16:50 * Limbic_Region appears not to have been modifying the same file as was getting loaded
16:50 gaal you need something that returns IO (), but as you already know, accepts a list of stuff
16:50 Limbic_Region I quit ghci, restarted, and everything is working
16:50 gaal in your code, that's [Integer]
16:50 gaal Limbic_Region: okay, good: now do
16:50 gaal :t showOutput
16:50 Limbic_Region gaal - wait
16:51 Limbic_Region let me play a little more on my own
16:51 Limbic_Region I learn better that way
16:51 Limbic_Region will ping again if I run into more problems
16:51 gaal yay
16:51 mauke btw, if you just want to print something (think Data::Dumper), you can use  print whatever
16:54 Limbic_Region ok, I am still lost
16:54 vel joined perl6
16:54 Limbic_Region nums is of type nums <- getNums :: IO [Integer]
16:54 Limbic_Region I am going to pass nums to showOutput
16:55 Limbic_Region showOutput really isn't going to return anything so IO ()
16:55 Limbic_Region but I still don't know the right type signature
16:55 wolverian nums's type should be [Integer], not IO [Integer]
16:55 mauke of showOutput? [Integer] -> IO ()
16:56 mauke but ghci should tell you that with :t showOutput
16:57 nothingmuch joined perl6
16:57 Limbic_Region mauke - tried that from gaal's suggestion - Numbers.hs:22:21: parse error on input `->'
16:58 Limbic_Region let me nopaste the current code
16:58 mauke what's line 22?
16:58 mauke ok
16:58 gaal Limbic_Region: when you say x <- someFunc
16:59 gaal then someFunc whcih returned some monadic value is forced, and x is the unmonadic thing
16:59 Limbic_Region nevermind - I figured it out
16:59 gaal ok
16:59 ingy hola
16:59 * Limbic_Region doesn't admit what he was doing wrong
17:02 gaal hey ingy!
17:02 pasteling "Limbic_Region" at 129.33.119.12 pasted "Ok, now how do I get the sum of nums inside showOutput?" (26 lines, 495B) at http://sial.org/pbot/19602
17:03 mauke Limbic_Region: first, change (x : xs) to ns
17:03 gaal first of all, it's not [t], it's concretely [Integer]
17:04 mauke you don't want to destructure it into a head and a tail; you want to work with the entire list
17:04 gaal since you have an annotation elsewhere that prevents it to be anywhere else
17:04 Limbic_Region another copy/paste error
17:04 gaal *from being
17:04 ingy hi gaal!
17:04 gaal okay, so you want a function that takes a list of Integer and returns an Integer
17:04 Limbic_Region mauke - explain (x:xs) to ns ?
17:04 gaal @hoogle [Integer] -> Integer
17:04 lambdabot No matches, try a more general search
17:05 mauke Limbic_Region: hmm, do you know "data"?
17:05 gaal @hoogle [Int] -> [Int]
17:05 lambdabot No matches, try a more general search
17:05 Limbic_Region no
17:05 gaal grrrrrrr
17:05 gaal @hoogle [Int] -> Int
17:05 lambdabot No matches, try a more general search
17:05 gaal @hoogle [a] -> a
17:05 lambdabot Prelude.head :: [a] -> a
17:05 lambdabot Prelude.last :: [a] -> a
17:05 lambdabot List.maximumBy :: (a -> a -> a) -> [a] -> a
17:05 Limbic_Region but I think I understand - the x:xs I am going to need later
17:05 gaal no kidding
17:05 Limbic_Region when I am going to destruct it
17:05 mauke Limbic_Region: ok, [] (the list type) has two constructors, [] and :
17:05 gaal anyway, what I was shooting at was...
17:05 gaal http://haskell.org/ghc/docs/latest/htm​l/libraries/base/Prelude.html#v%3Asum
17:06 lambdabot http://tinyurl.com/k7pf4
17:06 svnbot6 r13187 | rodi++ | .meta becomes .META in the tests.  Might be changed to .HOW eventually.
17:06 mauke [] is a constant (the empty value), : is a function taking an element and a list, returning a new list
17:06 gaal sup ingy-moose, yo?
17:06 mauke using : in a pattern reverses the process, binding x to the first element and xs to the rest
17:07 Limbic_Region I understand the x:xs (which I will need but obviously in a new function)
17:07 cj joined perl6
17:07 Limbic_Region so now I have - showOutput ns = do
17:07 gaal @tell putter moose is appropriate for all categories, including honorifics
17:07 lambdabot Consider it noted.
17:07 mauke Limbic_Region: do you know "sum"?
17:07 weinig is now known as weinig|bbl
17:07 Limbic_Region is parse failing
17:07 Limbic_Region mauke - yes, but s = sum ns
17:08 Limbic_Region I also know how to do sum with foldl and foldr
17:08 Limbic_Region but why is s = anything failing?
17:08 mauke missing let?
17:09 Limbic_Region hrm
17:10 vel joined perl6
17:10 Limbic_Region brb
17:10 mdiep joined perl6
17:15 polettix joined perl6
17:20 frederico joined perl6
17:24 onsen joined perl6
17:26 fglock joined perl6
17:27 xerox joined perl6
17:30 mdiep joined perl6
17:36 svnbot6 r13188 | rodi++ | meta -> META in Pugs/Prim.hs
17:37 gaal rodi++
17:37 gaal # 1, 2, 3
17:38 pasteling "Limbic_Region" at 129.33.119.12 pasted "I would be very appreciative if someone could haskellfy this for me" (43 lines, 982B) at http://sial.org/pbot/19605
17:39 gaal L~R, narrow the Q a bit?
17:39 Limbic_Region joined perl6
17:39 TreyHarris rodi: that's the easy part.  who's going to fix all the tests? :-)
17:39 gaal TreyHarris: see r13187
17:40 TreyHarris oh, missed that.  rodi++
17:40 TreyHarris you people with your teeny-tiny 1-line commit messages, they get lost in the channel noise ;-)
17:40 Limbic_Region gaal, mauke, wolverian - not sure if my nopaste made it to the channel, but I would be very appreciative if any of you could find the time to help haskell-fy my code
17:40 Limbic_Region it works and produces the correct output but it feels wrong in several places
17:40 gaal 20:39 < gaal> L~R, narrow the Q a bit?
17:40 gaal ah, you mean stylistic cleanup?
17:41 rodi TreyHarris: that was the hope :-D
17:41 Limbic_Region well, for instance - using length(xs) to terminate the loop
17:41 Limbic_Region gaal - taking the task at hand, feel free to just write it from scratch (should take far fewer lines that I have used anyway)
17:41 rodi I still feel naughty whenever I'm editing anything critical ;)
17:41 Limbic_Region s/loop/recursion/
17:42 wolverian Limbic_Region, first, don't write foo(bar). it's confusing. haskell doesn't need parens to call functions.
17:42 gaal since xs is a list, 'null xs' is a fair edit
17:42 mauke Limbic_Region: working on it :-)
17:42 Limbic_Region wolverian - except when it does
17:42 wolverian Limbic_Region, right. but fac(n - 1) looks weird anyway.
17:42 Limbic_Region i.e. when you have one function that is supposed to work on the return of another function
17:42 Limbic_Region but point taken
17:43 wolverian fac (n-1) or fac $ n-1 :)
17:43 gaal Limbic_Region: the point is that it's better to write
17:43 gaal that :)
17:43 xerox fac . subtract 1 $ n
17:43 xerox :P
17:44 wolverian heh
17:44 gaal in fact, there are even some gotchas with putting some things together, eg, if you get into the habit of using $, always surround it with spaces
17:44 wolverian fax $ pred n
17:44 wolverian er.. fac
17:44 xerox hehe
17:44 gaal one day you'll write Template Haskell and get weird errors otherwise
17:45 wolverian you shouldn't use $ too much, either. use . whenever you can instead of $
17:45 Limbic_Region heh
17:45 xerox . is nice because it makes compositions simpler to refactor.
17:45 wolverian right.
17:45 Limbic_Region remember all the "I don't think I should have to be doing all this type stuff yet cause we haven't gotten to it in YAHT"
17:45 gaal as for showFactorials, if it weren't for the putStrLn inside it, you could surely nicefy it
17:45 Limbic_Region this is the last exercise in chap 3
17:46 Limbic_Region chap 4 is introduction to types
17:46 Limbic_Region ;-)
17:46 wolverian you don't need to think about types as long as your code is correct. ;)
17:46 gaal so, Limbic_Region, pull the print out of it, and make it just construct a list of strings, and print THAT.
17:46 Limbic_Region gaal - please, rather than describing what I should do - please provide code snippet
17:46 gaal that's a transformation you can do easily (but not as cheaply!) in perl
17:46 xerox wolverian: errrr.
17:47 gaal well, you have [Integer] -> [String]
17:47 xerox Limbic_Region: code for what?
17:47 gaal sounds like a map :)
17:47 Limbic_Region it is still too foreign for me to understand description
17:47 gaal sec
17:47 Limbic_Region xerox - scroll back, I posted my code for an exercise in YAHT and asked the channel to haskell-fy it for me
17:47 gaal facMessages :: [Integer] -> [String]
17:47 Limbic_Region IOW - write it (or re-write) as they see fit
17:47 xerox OK!
17:48 gaal facMessages ns = map (\x -> "factorial " ++ (show x) ++ " =
17:48 xerox Not bad.
17:48 gaal oops
17:48 gaal facMessages ns = map (\x -> "factorial " ++ (show x) ++ " = " ++ (show $ fac x)) ns
17:48 mauke Limbic_Region: http://rafb.net/paste/results/xygjXe13.html - minor cleanups
17:48 buubot The paste xygjXe13 has been copied to http://erxz.com/pb/3180
17:48 Limbic_Region ok - I get the construction of strings
17:48 Limbic_Region but how does one "print that"
17:49 gaal then you can just
17:49 gaal putStrLn $ concat $ facMessages ns
17:49 gaal in showOutput
17:49 mauke see my code :-)
17:49 gaal concat is simply 'join "\n", @list'
17:50 gaal er
17:50 Limbic_Region ok, so IOW, it is stuff that I haven't learned yet
17:50 gaal join "", #list
17:50 gaal well don't worry, this is just vocabulary
17:50 Limbic_Region no worries, I am sure I will get to it eventually
17:50 gaal map is just like Perl
17:50 gaal only lazy
17:50 mauke perl's map is concatMap
17:50 Limbic_Region if the only serious critique of the code is that I didn't use simpler features I don't know about yet - I can't complain
17:50 PerlJam gaal: just like perl6 :)
17:50 Limbic_Region mauke - looking at your code now
17:51 gaal sub facMessages (Int @ns) { map -> $x { "fac $x = {fac $x}" } }
17:51 gaal sub facMessages (Int @ns) { map -> $x { "fac $x = {fac $x}" } @ns } # rather
17:51 * Limbic_Region does another dance at having conquered what seemed like a difficult problem for only being in chapter 3
17:52 gaal mauke: er, no it isn't....
17:52 mauke eval: [ map +($_, $_ * 2), 2 .. 6 ]
17:52 buubot mauke:  [2,4,3,6,4,8,5,10,6,12]
17:52 Limbic_Region please /msg me if you have something else to say as I am now AFK to explore ch. 4
17:53 gaal well?
17:53 mauke how is that not concatMap?
17:53 gaal how is it? :)
17:54 xerox > [2..6] >>= \x -> [x,x*2]
17:54 mauke length (map f x) /= length x
17:54 lambdabot [2,4,3,6,4,8,5,10,6,12]
17:54 xerox There (>>=) = flip concatMap.
17:54 mauke exactly
17:55 TreyHarris what's ?=?
17:55 gaal ah! indeed.
17:55 TreyHarris TimToady just used it on p6-l
17:55 gaal except it isn't really
17:55 gaal because you don't have to return singleton lists.
17:56 mauke you do, actually
17:56 mauke it's just that values trivially convert to singleton lists
17:56 gaal so, you don't have to return singleton lists. :)
17:57 mauke it's not like you have a choice
18:00 gaal -fallow-overlapping-instances ; class Flatten a where flatten :: a -> [a] ; instance Flatten [a] where flatten = id ; instance Flatten a where flatten = List.singleton
18:00 gaal you're saying p5 map is a bit like that.
18:01 avar where are the online perl6 smoke tests?
18:01 gaal http://smoke.pugscode.org
18:01 avar thx
18:01 lambdabot Title: Pugs Smoke Reports
18:02 xerox flatten = id :: [a] -> [[a]] doesn't work gaal
18:02 gaal beh
18:03 gaal okay, I'm sold:
18:03 gaal eval: sub ctx { print wantarray ? "list" : "notlist" } ; my $x = map { ctx() } 1
18:03 buubot gaal: list  1
18:03 TreyHarris ok, building with ghc 6.5.  let's see if it's any faster
18:04 gaal mauke++ # perl map is haskell concatMap
18:05 Limbic_Region TreyHarris - PPC right?
18:06 TreyHarris yeah
18:06 Limbic_Region woot - where did you get it?
18:07 mauke_ joined perl6
18:07 TreyHarris Limbic_Region: didn't.  built it after finding a message from someone describing how they do it
18:07 Limbic_Region oh, neat
18:07 TreyHarris http://www.haskell.org/pipermail/c​vs-ghc/2006-September/031287.html
18:07 lambdabot Title: GHC Hackathon, http://tinyurl.com/efpf2
18:07 TreyHarris no wonder I didn't find it, given the title
18:07 Limbic_Region I am still running nightly builds from checkout but since there doesn't appear to be anyone busting down my door to get bin dists for Win32
18:08 Limbic_Region I only uploaded the one from the 6th
18:08 TreyHarris "GHC Hackathon"... yeah, that says to me "read me to find out how to build under OS X PPC" ;-)
18:09 Limbic_Region well, I will be interested in what 6.5 does to your smoke times
18:10 TreyHarris well...
18:10 TreyHarris i need to make first :-(
18:11 TreyHarris Setup: error reading ./.setup-config; run "setup configure" command?
18:11 TreyHarris never seen *that* one before
18:11 TreyHarris in fact, i've never had an error making pugs before :-/
18:11 Limbic_Region you need to read the readme
18:11 Limbic_Region oh wait
18:11 Limbic_Region that's a pugs error?
18:12 TreyHarris "Build failed: 256 at util/build_pugs.pl line 305."
18:13 TreyHarris Limbic_Region: what in README should I be reading?
18:13 Limbic_Region I was thinking the issue with ghc (and hence the "oh wait\nthat's a pug error?")
18:14 TreyHarris ahh
18:14 prefiks left perl6
18:14 Limbic_Region I'm clueless other than suggesting looking at what build_pugs.pl line 305 is
18:14 TreyHarris Limbic_Region: I'm looking.  It's kind of opaque.  It's just 'die if $@'
18:14 * Limbic_Region is betting it is a system() command
18:14 TreyHarris so i have to work backwards
18:17 larsen joined perl6
18:17 TreyHarris hm.  "Setup: cannot satisfy dependency mtl-any"
18:17 TreyHarris what's mtl-any?
18:20 SamB should be any version of the mtl
18:20 Limbic_Region TreyHarris - you didn't build with the packages
18:20 Limbic_Region when you downloaded the source - the extra libs were in a separate tarball
18:20 Limbic_Region you can build mtl and network (also required) individually
18:21 Limbic_Region or you can rebuild 6.5 after untarring the extralibs (the build automatically builds them if present)
18:21 SamB or if you got it from darcs, you didn't ask darcs-all for the extra libs
18:21 Limbic_Region if you want to do it by hand for just those 2 packages, I can walk you through it
18:21 Limbic_Region what SamB said if using darcs
18:21 TreyHarris Limbic_Region: cool.  ok, downloading the tarball
18:21 * Limbic_Region has been through this himself ;-)
18:22 mauke_ is now known as mauke
18:22 Limbic_Region TreyHarris - ever use Cabal to build packages in ghc?
18:22 SamB I wasn't, but I grabbed ghc from darcs just before darcs-all stopped grabbing all the libs by default...
18:22 TreyHarris Limbic_Region: my entire experience with ghc is building pugs, building darcs, and typing stuff into ghci :-)
18:22 Limbic_Region the short route is just to do that - maybe 10 minutes or less.
18:23 Limbic_Region well, I know much more about the ghc build process than the language itself
18:23 Limbic_Region but I am trying to rectify that now too
18:23 TreyHarris ok, so I untar this into my existing ghc src dir?
18:23 * Limbic_Region will point you to how to build the 2 packages you need
18:23 Limbic_Region TreyHarris - if you are just building the packages by hand - dump it anywhere
18:23 Limbic_Region if you are planning on rebuilding ghc from source - yes
18:24 SamB if you have already got GHC built, and haven't gotten rid of any of the intermediate files, it should be fairly quick to just rebuild it with those in place...
18:24 TreyHarris well, i already untarred it there.  i'd rather not rebuild everything unless there's a distinct advantage to doing so
18:24 Limbic_Region SamB - not really
18:24 SamB Limbic_Region: hmm?
18:24 Limbic_Region or rather - it will be faster than a from scratch build but not nearly as fast as just building those 2 packages
18:24 Limbic_Region that's because of the 2 stage build process
18:24 SamB hmm
18:25 Limbic_Region at least from my experience
18:25 Limbic_Region TreyHarris - 2 seconds and I will give you a link to build just those 2 packages
18:25 SamB I bet you can tell it to just build the libraries, probably you can even tell it to just build those two...
18:25 TreyHarris Limbic_Region: so my stupid way would be to go into those two libraries/, (./configure, make for each), then go back to the top level, rm compiler/stage2/ghc-6.5*, and make
18:25 Limbic_Region TreyHarris - that won't work
18:26 Limbic_Region that's what I tried - you need to use Cabal
18:26 Limbic_Region see http://paste.lisp.org/display/25124
18:26 Limbic_Region start at the line with mtl and network
18:26 Limbic_Region it gives you the 3 cabal commands to configure, build, install
18:27 Limbic_Region and since mtl doesn't come with a Setup.hs - you need to create one - I provided a template in that paste
18:27 Limbic_Region SamB - If there is a smarter way (which I am sure there is), I am just unaware of it
18:27 TreyHarris pwd
18:27 TreyHarris oops
18:27 SamB heh
18:28 Limbic_Region at least it wasn't your root password
18:28 SamB /home/perl6
18:28 SamB $
18:29 SamB the best technique is to have built with the mtl in the first place ;-)
18:29 Limbic_Region SamB - though come to think of it, while using darcs to checkout changes and build - I have yet to see just a change in an extralib to note the build time
18:30 Limbic_Region perhaps it is as you say and I am just blind by my limited experience
18:30 SubStack joined perl6
18:30 svnbot6 r13189 | putter++ | INSTALL - mention "Perl5 is now embedded by default.  Use "-perl5" to avoid.".
18:31 SamB well, to be sure it takes some time for GHC's makefiles to go through their recursion and find nothing to do...
18:31 TreyHarris just network and mtl?
18:31 Limbic_Region yes
18:31 * SamB wishes mtl wasn't one of the extralibs
18:31 TreyHarris ok.  so should i clean and/or remakefile pugs?
18:32 TreyHarris what is mtl?
18:32 * SamB thinks this could lead to vicious cycles
18:32 Limbic_Region SamB - from what I was told, it was a close call
18:32 Limbic_Region TreyHarris - you can just try make but you know my policy
18:32 TreyHarris ghc-6.5.20060910: unknown package: pugs-filepath-0.1
18:32 SamB well, its nice to know that it was close to being included. perhaps they will do it differently in the future...
18:33 Limbic_Region SamB - I think I convinced the powers that be to include the extralibs in Win32 by default though
18:33 TreyHarris i'll try clean
18:33 SamB okay, that is kinda important
18:33 SamB or, at least, they should be built
18:34 Limbic_Region SamB - when the .msi (true binary build) comes out, I suspect they will still separate them
18:34 Limbic_Region but have both available
18:34 SamB they have a false binary build as well?
18:34 TreyHarris so what is "?=?", anyway?  did TimToady mean to type ">>=<<"?  (sorry, can't type non-ascii chars on irc)
18:34 Limbic_Region TreyHarris - there may also be an issue with third-party, what version were you upgrading from?
18:34 TreyHarris Limbic_Region: 6.4.2
18:34 Limbic_Region SamB - meaning just a tarball
18:34 SamB Limbic_Region: that is binary enough!
18:34 SamB it just isn't terribly convenient
18:35 Limbic_Region SamB - hrm, how can I put this.  The tarball was b0rk and has been b0rk for some time
18:35 SamB ah
18:35 Limbic_Region I should have said "real", I should have said verified or true or something implying non-beta
18:35 SamB okay, so a *working* binary build...
18:35 Limbic_Region yes
18:35 larsen_ joined perl6
18:36 putter joined perl6
18:36 Limbic_Region TreyHarris - since I don't know what in third-party is the culprit, if your realclean by itself doesn't work, try a realclean and removing the entirety of third-party (drastic measure)
18:37 TreyHarris nope, it's rebuilding all of them now :-)
18:37 Limbic_Region woot
18:38 TreyHarris back in a few, maybe if i'm lucky the build will be done then &
18:38 Limbic_Region though I am not holding my breath that it still may fail later
18:39 fglock joined perl6
18:39 Limbic_Region gaal ping
18:39 Limbic_Region audreyt ping
18:40 Limbic_Region when I run make smoke - this is what I get on almost every single test (that is all but about 176 of them)
18:40 Limbic_Region pugs: src/Pugs/AST/Internals/Instances.hs:483:9-109: Irrefutable pattern failed for pattern Data.Yaml.Syck.ESeq [aa,
18:40 TimToady TreyHarris: you need to get a better email client if it can't even display ISO-8859-1 correctly...
18:40 putter Build from scratch fails, r13188, Compiling Pugs.Parser.Charnames, Overlapping instances for Judy.Refeable.Refeable Int arising from use of `Judy.CollectionsM.lookup' at src/Pugs/Parser/Charnames.hs:31:35-42.
18:40 lambdabot putter: You have 5 new messages. '/msg lambdabot @messages' to read them.
18:41 Limbic_Region TimToady - have you been able to do  a successful smoke?
18:41 TimToady yes.
18:41 Limbic_Region have you uploaded?
18:41 Limbic_Region I only see mine from today
18:41 Limbic_Region the one I manually uploaded because of the breakage you noted earlier
18:42 Limbic_Region unless you aren't on Win32 - duh
18:42 TimToady yes, I'm the entries under repository snapshot / linux
18:42 TimToady and it's now uploading automagically.
18:42 Limbic_Region ok - so it appears to be a Win32 thing
18:42 TimToady so 'twould seem
18:42 * Limbic_Region hates being the red headed bastard stepchild
18:43 Limbic_Region no offense intended to red heads, bastards, or step children
18:44 TimToady "genetics: the science behind why you look like your father, or if you don't, why you should."
18:44 nothingmuch_ joined perl6
18:46 TimToady commuting &
18:55 gaal Limbic_Region: look for an old Test.pm.yml somewhere in your @INC
18:55 gaal kill it with no mercy
19:00 dakkar_ joined perl6
19:01 dakkar_ is now known as dakkar
19:03 TreyHarris TimToady: odd, I'm using a terminal that usually has no problem with UTF8...
19:04 TreyHarris if i switch it to Latin-1, it works.  I thought UTF8 collapses to Latin-1
19:05 avar Latin-1 is a subset of unicode, not utf-8
19:05 TreyHarris oh
19:06 TreyHarris so what do i set my terminal to so that "less -r t/syntax/unicode.t" and Larry's message in Latin-1 will both display?
19:06 TreyHarris or is that impossible?
19:07 avar It is not possibly unless you presume certain things about your imput
19:07 avar which you might set your terminal to do
19:08 TreyHarris ah, i see.  hrm.  i don't know what the correct thing to set my terminal to is
19:08 avar You could do what I do, run a utf-8 ship and convert other input to it on demand
19:08 TreyHarris avar: ah, any idea how to do that in Pine?
19:09 avar Are you sure pine cares about encodings?
19:09 avar in that way it is
19:09 avar most command line programs just eat what your shell spits at them
19:09 avar so you probably just want to set your shell to utf-8
19:12 TreyHarris my shell?  i use zsh
19:12 TimToady hmm, haven't used pine in a while, but mutt will automatically convert to utf8 if your terminal is in utf8 mode.
19:12 TreyHarris how do I do that?
19:12 avar zsh did not support utf-8 the last time I tried it
19:13 TreyHarris ah. :-(  i've been a zsh user for far too long to change now
19:13 TreyHarris and all this time i thought i was seeing what i was looking at
19:14 avar It *might* support it
19:14 avar look man, don't belive the crazy man on IRC
19:16 TreyHarris lol, no, it's clear that i'm not seeing what i think i am, since "t/syntax/unicode.t" displays perfectly, including the qqw characters, and Larry's message doesn't
19:18 TimToady Does your pine delegate the display of the message to less?
19:19 TreyHarris TimToady: no.  from its config menu, it claims to do automatic conversion between UTF-8 and other supported sets.  and Latin-1 is supported, because if i change my terminal and pine to it, it displays (though granted it's just a passthrough then)
19:19 Limbic_Region gaal - only one is in blib6/lib but killing anyway
19:19 TreyHarris but i wonder if the UTF-8 support is more of a hope than a promise
19:19 SamB um... shells don't feed stdin...
19:20 jferrero joined perl6
19:20 SamB or anything of that nature...
19:20 TreyHarris SamB: that's what I thought, but I figured someone whose name is not in the ASCII charset would be very aware of these issues :-)
19:20 TimToady it's also possible that some MTA clobbered it at some point along the way.
19:21 TimToady does the header include the line Content-Type: text/plain; charset=iso-8859-1
19:21 TreyHarris TimToady: no, if I save it raw, it's definitely latin-1.  and it goes from ?=? to the correct thing (sorry, i can see utf8, but can't type ;-) as i switch the window back and forth from utf8 to latin-1
19:21 TreyHarris "Content-Type: text/plain; charset=iso-8859-1", yes indeed
19:22 TimToady well, something's not paying attention to it that should, then...
19:22 TreyHarris it also gives me a message, "The following text is in the "iso-8859-1" character set. Your display is set for the "UTF-8" character set. Some characters may be displayed incorrectly."
19:22 SamB or having trouble discerning what the terminal is doing...
19:23 SamB oh.
19:23 TimToady that means "We punt--we're too stupid to do the right thing."
19:23 SamB okay, so something is an idiot that doesn't know how to convert utf-8 to latin1...
19:23 TreyHarris i'm betting that the conversion it claims to do from latin-1 to utf-8 simply isn't happening.
19:23 TreyHarris SamB: otherway around
19:23 SamB or, well, that too...
19:23 TimToady upgrade pine maybe?
19:23 SamB either way it is ridiculously easy!
19:24 TimToady or move to mutt, which is, I believe, a derivative of pine...
19:25 fglock TimToady: did you get my mail about YAPC::SA? I can resend it
19:25 TreyHarris i'm running the newest, which is now almost a year old.  perhaps i will try mutt.  my finger-memory for pine after 13 years is now extreme
19:26 TimToady fglock: I think so, if it's the one with the invite, but I'm still backlogging my mail.
19:26 TimToady just got back home from UK...
19:27 PerlJam TreyHarris: IIRC, you can get pine-keybindings for mutt
19:27 TimToady well, at least I already know where the Brazilian consulate is in San Francisco, assuming they haven't moved lately...
19:27 * PerlJam is glad he never used pine.  *shudder*
19:28 fglock TimToady: ok - I'll send you another mail with some travel info - you'll need a signed invitation to show in the consulate - I'll send you later
19:29 TimToady I thought I already got one of those.
19:30 penk joined perl6
19:30 pasteling "putter" at 66.30.119.55 pasted "PUGS_EMBED="-perl" build fails with type error." (552 lines, 33.5K) at http://sial.org/pbot/19612
19:30 TimToady I just couldn't do anything about it from the UK...
19:31 Limbic_Region putter - -perl should be !perl
19:31 gaal putter: fixed, commit up in a min
19:31 fglock TimToady: the letter I sent wasn't signed
19:32 putter Limbic_Region: both work.  audreyt said "-perl" earlier today.  So INSTALL now says -perl, and the Makefile message says !perl.  Ah well.
19:32 putter gaal++ :)
19:32 TimToady fglock: I see that, now that I look at it.
19:34 svnbot6 r13190 | gaal++ | * unbreak build on PUGS_EMBED=-perl && GHC ~~ 6.4.x.
19:34 svnbot6 r13190 | gaal++ |   Reported by putter++.
19:34 Limbic_Region ah
19:34 Limbic_Region news to me
19:35 gaal be permissive in what you moose etc.
19:35 gaal permoosive, even.
19:35 gaal perlmoosive, even even.
19:36 putter so !perl or -perl?  Any preferences on what is the advertised version?
19:37 gaal actually, either one wants a '5' at the end :)
19:37 putter :)
19:37 gaal you cannot build a perlless pugs :)
19:38 putter must.  resist.  puns.
19:38 * gaal imagines some mad logician voting for ~perl5
19:39 gaal ¬perl5
19:39 gaal ⌐פרל5
19:40 gaal aw, rtl screwup.
19:40 rodi wow, kde konversation actually printed that rtl.
19:40 avar joined perl6
19:40 avar joined perl6
19:40 putter -fperl5
19:40 gaal but wrongly, I bet. was the time moosed up? which side was the not symbol on?
19:41 putter I saw an horizontally reversed not on the left.
19:42 gaal heh, the reversal wasn't rendered, it's a separate glyph
19:42 rodi horizontally reversed, not on the right
19:42 gaal rodi: cool!
19:42 rodi yeah, I'm surprised.
19:42 gaal and the time?
19:42 rodi on the far-right.
19:42 * Limbic_Region doesn't like -perl5 only because it seems like a flag and because as a boolean it seems like it is being set to true
19:42 gaal my setup valiantly said 93:22
19:43 rodi LOL
19:43 Limbic_Region gaal - removing that file did the trick, thanks
19:43 gaal excellent
19:45 putter "!perl5" sold to LR
19:46 gaal putter: did lambdabot fill you in?
19:47 gaal #   @honorific = <-san -tan -moose ...>
19:47 putter yes, thanks.  neat mechanism.  much easier than scanning logs. :)
19:48 Limbic_Region TreyHarris ping
19:49 svnbot6 r13191 | putter++ | INSTALL - change "-perl5" to "!perl5" to match the Makefile message.
19:49 svnbot6 r13191 | putter++ | Also, "-perl5" looks like an enabling flag.
19:51 Limbic_Region ok, it looks like ext\libwww-perl\t\getprint.t still hangs on Win32
19:51 Limbic_Region what's the incantation to skip a particular test from make smoke?
19:51 * putter goes to look at what neat type theoretic thing gaal did to avoid the overlapping instances.  Hmm, only Charnames.hs changed.  diff...
19:51 gaal chmod -r testfile :-p
19:51 putter -{-# OPTIONS_GHC -fglasgow-exts -fno-full-laziness -fno-cse -cpp -fvia-C #-}
19:51 putter +{-# OPTIONS_GHC -fglasgow-exts -fno-full-laziness -fno-cse -cpp -fvia-C -fallow-overlapping-instances #-}
19:51 putter lol
19:52 gaal putter: on by default in ghc 6.5 :)
19:52 SamB gaal: scary!
19:52 gaal and added in basically all our .hs files ever since we started using newval and open types
19:53 gaal ghci leaks badly :(
19:54 Limbic_Region make smoke is calling util\yaml_harness.pl (which supports command line arguments) but make smoke doesn't honor them
19:54 Limbic_Region I could easily modify the Makefile.PL to do so but I am not comfortable that I would be doing it "right"
19:55 Limbic_Region for instance, by looking at an env ar
19:55 gaal Limbic_Region: hm, BEGIN { @ARGV = $ENV{somethingorother} if $ENV{somethingorother} } ?
19:55 Limbic_Region s/ar/var/
19:55 gaal do it in the harness, not in the makefile
19:55 Limbic_Region gaal - in Makefile.PL ?
19:56 Limbic_Region wait, that doesn't make any sense
19:56 Limbic_Region or rather, it seems like it would violate the principal of least suprise
19:56 gaal what doesn't?
19:56 gaal what interface do you want it to have?
19:56 putter Sigh.  And the downside of ! is of course that some shells (eg, sh), consider it special...
19:57 gaal make smoke harnessopts ?
19:57 Limbic_Region gaal - I would want it to treat it as a black box (which it would be if it was compiled)
19:57 gaal er
19:57 gaal you want to pass it params
19:57 Limbic_Region gaal - IOW, if we didn't have the source to modify that which is being invoked, how would we solve it
19:57 gaal how would you want the param passing to look like?
19:58 SamB wouldn't you just use a Make variable?
19:58 Limbic_Region well, that's what I am unsure of, but it should be the make smoke -> $PERL util/yaml_harness.pl <options> <file>  that should be changed
19:58 gaal Limbic_Region: changed how, on the make invocation line? on the makefile generation?
19:59 Limbic_Region gaal - behavior should be able to be changed without re-generating the makefile
19:59 Limbic_Region however, a change to the makefile generation is necessary to get it to read
19:59 Limbic_Region it may be as simple as setting a env variable which the generated makefile reads
20:00 gaal brb phone
20:00 Limbic_Region that way to run the smoke one way one time and another way another time it would be
20:00 Limbic_Region export SMOKE_OPTION="foo"
20:00 Limbic_Region make smoke
20:00 Limbic_Region SMOKE_OPTION="bar"
20:00 Limbic_Region make smoke
20:01 Limbic_Region that's the way I would do it right now if I was locked in isolation (but thankfully I am not *yet*)
20:06 gaal and what's the argument in favor of putting the logic in the makefile rather than the harness?
20:08 Limbic_Region gaal - it is bass ackwards
20:08 gaal elaborate please
20:08 Limbic_Region the only reason why I would put it in the harness would be to support the make
20:08 Limbic_Region anyone running it without the make could just specify the arguments
20:08 nothingmuch joined perl6
20:09 gaal you are not providing a generic mechanism to turn env vars to rule args
20:09 gaal you are adding functionality to help the yaml harness specifically
20:09 gaal the complexity is roughly the same in either place
20:09 Limbic_Region I am not doing anything at the moment
20:09 putter any objections to -fperl5 ?   Ie, gnu/ghc standard negative flag?
20:09 Limbic_Region I am asking what makes the most sense
20:09 fglock audreyt: ping
20:10 Limbic_Region and your suggestion just doesn't make much sense to me
20:10 Limbic_Region the external program being invoked by the make works as designed
20:10 gaal Limbic_Region: I'm recommending the harness, because the makefile's complex as it is
20:11 Limbic_Region *shrug*
20:12 Limbic_Region and what would you recommend if it was a perl script but a compiled executable we needed to invoke - one that only supported command line arguments?
20:12 gaal it will, of course, continue to work just fine the way it used to.
20:12 Limbic_Region except on Win32
20:12 gaal how's that?
20:12 Limbic_Region which hasn't been able to smoke for some time
20:12 Limbic_Region there is a test that hangs
20:12 Limbic_Region I could skip the test if I could pass in command line args to the harness
20:13 Limbic_Region since the 7th judging by the smoke summary
20:13 gaal what? no, I'm saying that the begin block, which of course is a hack, doesn't preclude command line invocations that pass args explicitly.
20:13 Limbic_Region oh, no it doesn't
20:13 svnbot6 r13192 | putter++ | INSTALL, Makefile.PL - Replaced all advertising for PUGS_EMBED option "!perl5" with "-perl5".  For consistency.
20:13 svnbot6 r13192 | putter++ | Both still work, but only "-perl5" is now advertised.
20:13 svnbot6 r13192 | putter++ | Makefile.PL was perviously advertising both.
20:13 svnbot6 r13192 | putter++ | "-perl5" is not ideal, looking like an option enabled.
20:13 svnbot6 r13192 | putter++ | "!perl5" interacts with shells.
20:13 Limbic_Region but it feels wrong to me
20:14 Limbic_Region I understand your point about the makefile already being complex
20:14 gaal what would I recommend if this were an executable, all other things being equal? still changing the executable.
20:14 gaal *compiled executable
20:15 gaal assuming we had control over its source code, that is.
20:15 gaal which does fall under "all other things being equal" :)
20:15 Limbic_Region well, my recommendation would be to find a way to autoconvert an env variable such as <make type>_cfg to pass those as arguments to the thing being called
20:15 Limbic_Region that way we solve it once for any and all programs we might be invoking
20:16 Limbic_Region of course <make type>_cfg is an oversimplification but...
20:17 gaal don't forget that the conversion probably needs to be done explicitly and portably for every invocation.
20:17 Limbic_Region gaal - well, if you look at the way the generated makefile handles this problem in other make types - it is as I am suggesting and not as you are suggesting
20:17 gaal perhaps this calls for 'use Getopt::Environmental qw(yaml_harness_opts)'
20:18 Limbic_Region err - nevermind, I misparsed $(PERL) -e "ENV->{PUGS_RUNTIME}=q+JSPERL5+; exec
20:18 gaal lord knows why you did that :)
20:19 Limbic_Region gaal - here is a valid reason why I think it should be solved in the make process
20:19 gaal yes?
20:19 Limbic_Region I run the smoke, it fails - I decide to skip the test
20:19 Limbic_Region time passes
20:19 gaal z
20:19 Limbic_Region I want to determine if the problem has been fixed
20:20 Limbic_Region I don't want to run the entire smoke so I run the harness manually
20:20 Limbic_Region it skips the test reporting everything as a ok
20:20 Limbic_Region oops - forgot to unset the env var
20:20 Limbic_Region action at a distance
20:20 gaal we all agree env vars suck
20:21 gaal but you could have forgotten to unset it when running make smoke, couldn't you?
20:21 Limbic_Region though I guess proper documentation could solve that
20:21 Limbic_Region the difference being is that I would expect "special consideration for the make process" not to affect the normal operation of the utility
20:22 gaal anyway, that's solved with usage:
20:22 gaal insetead of the modal setenv MOOSE elk ; make smoke
20:22 Limbic_Region I guess it is just a matter of perspective
20:22 * Limbic_Region listens
20:22 gaal run env MOOSE=elk make smoke
20:22 gaal which, granted, is missing on win32.
20:23 Limbic_Region there is no make magic to parse one part of the make one way and the rest as args?
20:23 Limbic_Region make smoke='foo bar' ?
20:23 Limbic_Region gaal - let's really go yak shaving, let's solve the problem by replacing make ;-)
20:23 gaal maybe some extensions have something like this
20:24 gaal let's not go to camelot, 'tis a silly place.
20:24 lumi Doesn't make take parameters?
20:25 Limbic_Region actually - the proper way to solve this is likely to skip the test on win32 for now in the .t file itself
20:25 putter sigh.  hello yak, old friend.  The concept of [-!]perl5 was never propagated through Makefile.  So the rest of it is mistesting with /\bperl5\b/.
20:25 * Limbic_Region is leaving in a few but will think about it overnight
20:26 Limbic_Region I also need to be working on incorporating Parallel::ForkManager into yaml_harness.pl so Win32 can do the smoke tests in parallel
20:26 gaal lumi: it does, but I'm not sure all makes treat them the same way.
20:26 Limbic_Region as well as continue learning Haskell which hasn't made my brain blow up yet this time
20:27 gaal groovy. I'm going back to pretty-printing signatures.
20:30 TreyHarris Limbic_Region: pong?
20:30 gaal lumi: (care to check?)
20:31 gaal we only have four makes to support ;)
20:31 lumi Which?
20:31 gaal gmake, freebsd make, nmake, and (I think?) dmake
20:32 rodi as if one weren't bad enough.
20:33 lumi dmake = distributed make from solaris?
20:33 gaal no, a free windows make
20:33 Limbic_Region TreyHarris - wondered how much 6.5 improved smoke time
20:34 lumi Apparently dmake is also the name of a make written in D
20:34 gaal lumi: a bright wonderful world is opening for you now. if you're into pain.
20:34 lumi Ehm.
20:35 rodi man, sigils were hard to get right, but the combination of sigils and twigils is killing me.  At least they're invariant.
20:35 Limbic_Region TreyHarris - headed home, no worries
20:36 TreyHarris @tell Limbic_Region At the moment I'm still rebuilding pugs.  Since make smoke took ~4hours before, it may be awhile before I know if 6.5 improves it :-)
20:36 lambdabot Consider it noted.
20:36 pen1 joined perl6
20:43 reZo_ joined perl6
20:43 bernhard joined perl6
20:43 gaal anyone still awake who's using 6.4? putter?
20:43 lumi nmake doesn't seem to believe in either the command line or the env
20:43 putter yes
20:43 putter well, 6.4.1
20:43 lumi I've 6.4
20:44 gaal could you do me a favor? I don't remember if this is supported...
20:44 gaal $EDITOR src/Pugs/Exp.hs-boot
20:44 gaal add the line
20:44 gaal instance Eq Exp
20:44 gaal and, uh, make fast :)
20:45 perlbot joined perl6
20:46 gaal I have a feeling this is one of the prime reasons I moved to 6.5 but can't be sure, which only indirectly strengthens the feeling, since I must be repressing the mad attempts of breaking the circularity problems
20:49 gaal MJD++ # great blog post
20:49 gaal "Sherman, set the wayback machine for 1957", ha!
20:56 putter blog?
20:56 gaal http://www.plover.com/blog/​2006/09/11#design-patterns
20:57 lambdabot Title: The Universe of Discourse : Design patterns of 1972, http://tinyurl.com/gxrxs
20:57 pen1 is now known as penk
20:59 putter gaal: will simply building be a sufficient test?  running?
21:01 gaal just building, I think.
21:01 gaal consuming that file, even, so once you get to Pugs.Val, if there's no error, groovy.
21:01 gaal but actually, to be sure...
21:02 gaal edit Pugs.Val.Code, find 'data ParamDefault', and add 'Eq' to the derived list
21:02 lumi Is that warning in Pugs.Val (no method 'gunfold' for Data NativeComplex) a fixture?
21:02 gaal then 'touch Pugs.Val'
21:03 putter make fast succeeds with the modified file.  now making the other changes.
21:03 gaal lumi: hmm, doesn't happen on 6.5, I think
21:04 gaal but we can either articulate the instance or write more dummy 'error' methods
21:05 gaal I often break haskell's static safety in Pugs :(  eg., we'll need some type inference / analysis of our own to tell the user that complex numbers aren't Ord at compile time :(
21:06 lumi gaal: mm no
21:07 gaal no what?
21:07 lumi gaal: There's apparently already an Eq for ParamDefault, and also it doesn't think there's an instance for Eq Exp
21:08 gaal ah, the former's just line 126 needing removal
21:08 gaal but the latter is sad :(
21:08 gaal okay, no sig pretty printing for the coming release :(
21:08 lumi istr "instance in boot" was something you were championing for the future, no?
21:08 lumi So it would make sense it wouldn't work
21:09 gaal like I said, I managed to repress that
21:10 gaal sigh. an alternative is to use Maybe Exp instead of ParamDefault's isomorphic type
21:10 gaal then the Nothings at least are comparable
21:10 gaal okay, thanks
21:11 putter gaal: went boom for me too.  Compiling Pugs.Val         ( src/Pugs/Val.hs, dist/build/src/Pugs/Val.o ) src/Pugs/Val/Code.hs:124:23: Class `Eq' used as a type When deriving instances for type `ParamDefault'
21:11 gaal lumi++ putter++
21:11 gaal I think I'll go to sleep instead, though...
21:11 putter g'night. :)
21:11 gaal If I can convince this fluffy cat to let me
21:12 putter Just for general education, I note...
21:12 putter The [-!]perl5 thing was a half-month old "one patch too far before going to sleep".
21:12 gaal caribou, elko moose.
21:12 gaal lol
21:12 putter A cautionary tale.
21:13 * gaal waves &
21:14 jferrero joined perl6
21:15 rodi wow, speaking of cautionary tales, I just overloaded postfix:<++>, trying to be cute, and inside of my method postfix:<++> call, I said $int++ (meaning, tried to increment an Int by one).  It didn't work ;)
21:16 gaal the R is for Recursive (also)...
21:17 rodi in this case, it was more appropriately, for Rubbish
21:23 thepler joined perl6
21:30 Limbic_Region joined perl6
21:33 weinig|bbl is now known as weinig
21:34 svnbot6 r13193 | putter++ | The PUGS_EMBED perl5 embedding avoidance flag is now "noperl5".
21:34 svnbot6 r13193 | putter++ | Files: INSTALL, Makefile.PL
21:34 svnbot6 r13193 | putter++ | Perl5 was made default on 2006-08-15, and the "-perl5"/"!perl5" flags added.
21:34 svnbot6 r13193 | putter++ | However, Makefile.PL uses /\bFLAG\b/ tests.
21:34 svnbot6 r13193 | putter++ | The positive "perl5" flag continues to exist, and be used.
21:34 svnbot6 r13193 | putter++ | Tests for it match the new new, oppositely sensed, flags.
21:34 svnbot6 r13193 | putter++ | So much of Makefile was not honoring "-perl5" requests.
21:34 svnbot6 r13193 | putter++ | A new flag "noperl5" has now been added to replace "-perl5"/"!perl5".
21:34 svnbot6 r13193 | putter++ | Makefile does the right thing with it.
21:34 svnbot6 r13193 | putter++ | The flags "-perl5" and "!perl5" still exist, are depreciated,
21:34 svnbot6 r13193 | putter++ | generate a warning, and are still buggy.
21:34 svnbot6 r13193 | putter++ | "noperl5" has the advantage of matching the existing convention.
21:34 svnbot6 r13193 | putter++ | If we want a new convention, that's fine, but requires additional changes.
21:34 svnbot6 r13193 | putter++ | The depreciation code, and checks for [-!], should be removed for next release.
21:35 notThis joined perl6
21:37 putter end of yak, err, of day. &
21:37 rodi later putter.
21:41 Eimi joined perl6
21:42 putter rodi: OUTER::postfix:<++>($i); ?
21:45 Eimi joined perl6
21:48 weinig is now known as weinig|afk
21:57 putter Someone with parrot website authority might want to change, on http://www.parrotcode.org/source.html, the link "parrot 0.4.6", so it actually points to a tarball.
21:57 lambdabot Title: Parrot Source Code & Binaries - parrotcode
21:59 buetow joined perl6
22:04 TreyHarris i just realized i'm wayyyy out of date on my parrot build (like, 3+ weeks).  how often do i need to recompile it to keep Pugs happy?
22:05 gaal @tell putter since [-!] is newer than the latest release, there's no public release-oriented deprecation to observe anyway
22:05 lambdabot Consider it noted.
22:05 gaal resleep
22:10 svnbot6 r13194 | rodi++ | An oopy, hackish interface to render cellular automata on a terminal.
22:10 svnbot6 r13194 | rodi++ | Needs to be made lazy, and a few other things as well, but passes tests
22:10 svnbot6 r13194 | rodi++ | and works on the examples (refactored from examples/ca_wolfram.pl).
22:11 leo putter: redirected to $authority and fixed - thanks for reporting - you was the first one doing so;)
22:12 Limbic_Region TreyHarris - typically pugs using parrot only for rules support
22:12 lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
22:13 Limbic_Region so not often
22:13 Limbic_Region there are other reason when too new or too old a parrot would be a problem
22:13 Limbic_Region AFAIK, that is only when using parrot as the backend
22:13 TreyHarris Limbic_Region: thanks
22:13 * Limbic_Region has never set PUGS_EMBED="parrot" so that's uncharted territory for me
22:14 Limbic_Region smoke still running?
22:14 svnbot6 r13195 | trey++ | [t/oo/syntax-but.t]
22:14 svnbot6 r13195 | trey++ | Using context variables to
22:14 TreyHarris I only just started it about five minutes ago.  It's not even into tests yet
22:14 svnbot6 r13195 | trey++ | change ok eval to eval_ok
22:14 TreyHarris Ah, just started tests
22:14 TimToady also smoking r13195
22:16 Limbic_Region well, I guess I should get in on the action then
22:17 Limbic_Region just need to remember the test I need to skip from hanging on Win32
22:17 markstos joined perl6
22:18 TreyHarris r13188 here.  hmm. "Use of uninitialized value in concatenation (.) or string at util/run-smoke.pl line 71."  hmm.  i don't know how you suppress that warning when you do something like that: 's/(\.html?(\+)?)?$/.yml$2/'.  besides no warnings i mean....
22:18 TreyHarris TimToady: can you tell me if this is really the simplest way to do a "cross-product" type thing without resorting to nested for loops?
22:18 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< (([@b],) xx @a.elems)
22:19 evalbot_r13185 is now known as evalbot_r13194
22:19 evalbot_r13194 (("a1", "a2"), ("b1", "b2"))
22:19 TreyHarris (though I wanted the result flattened... can't figure out that either)
22:19 dakkar s/(\.html?(\+)?)?$/'.yml'.($2||'')/e ?
22:20 TreyHarris dakkar: *nod*
22:22 lanny joined perl6
22:22 svnbot6 r13196 | markstos++ | [ext/Automata-Cellular/Makefile.PL]
22:22 svnbot6 r13196 | markstos++ | Fix typo in Makefile.PL
22:22 svnbot6 r13197 | trey++ | [util/run_smoke.pl]
22:22 svnbot6 r13197 | trey++ | Suppressing spurious undef warning.
22:22 svnbot6 r13197 | trey++ | dakkar++
22:23 ludan joined perl6
22:25 Limbic_Region smoke started now
22:25 dakkar ?eval my @a=<a b>;my @b=<1 2>;map { @a »~« $_ } @b
22:25 evalbot_r13194 is now known as evalbot_r13195
22:25 evalbot_r13195 Error:  unexpected "@" expecting comment, ",", ":", operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
22:25 dakkar ?eval my @a=<a b>;my @b=<1 2>;map { @a »~« $_ },@b
22:25 evalbot_r13195 ("a1", "b1", "a2", "b2")
22:26 dakkar TreyHarris: is it more readable this way?
22:27 dakkar hmm... not the same output, though
22:27 dakkar ?eval my @a=<a b>;my @b=<1 2>;map { [@a »~« $_] },@b
22:27 evalbot_r13195 is now known as evalbot_r13197
22:28 evalbot_r13197 (["a1", "b1"], ["a2", "b2"])
22:30 lanny Hi all.  Got a question.  I've implemented L<S29/sort> in perl6 for the prelude but pugs hasn't implemented a lot of the syntax yet.  Should I post to perl6.compiler for mark-1 eyeball feedback or something else?
22:30 lambdabot lanny: You have 1 new message. '/msg lambdabot @messages' to read it.
22:31 TreyHarris lanny: does it parse and not work?  or does it not even parse?
22:32 lanny Not even parse.  An example of failure is:  subset KeyExtractor of Code(Any --> Any);
22:32 lanny pugs seems to not like the Any --> Any
22:33 lanny or maybe it's the 'subset' part.
22:33 TreyHarris subset isn't even tested (!)
22:34 lanny That's my point.  :)
22:34 TreyHarris people who were asking for something to do... *hint hint*
22:35 TreyHarris lanny: well, once it's been reviewed, I'd say check it into Prelude.pm inside a kwid block--there's other code like that currently disabled there.  but not just for review, because updating it will cause a spurious rebuild
22:35 Limbic_Region lanny - first thing to do is write a failing test
22:35 Limbic_Region reference the spec
22:36 lanny Was going to, Limbic, but that wouldn't progress me any on the other 180 lines or so.  Was just curious how large chunks of non-parsing code are handled.
22:36 TreyHarris lanny: maybe make an "unspecced/sort.t" and include it there with its own tests (not the tests for subset, etc.), all todo'd, and check it in so we can have a look at it?
22:36 lanny I'll be writing up tests for the whole thing which should keep me busy for a while anyway.
22:37 TreyHarris email is not the best forum for code review.  svn and irc is better, IMHO
22:38 TreyHarris Limbic_Region: My smoke is still in ext/, 30m later, so I don't think there's going to be any remarkable speedup :-/
22:39 lanny So F<unspecced/sort.t> would have all the code and the tests to exercise it?
22:39 Limbic_Region TreyHarris - well, I had to start over because another wwwlib in ext is hanging
22:39 TreyHarris lanny: right, but put the actual unparsing routine in an eval_ok string
22:39 TreyHarris Limbic_Region: that happens to me on occasion, but not always.  not sure what the deal is
22:40 lanny Well I'll just write a real test for those.  subset is mentioned and so is using --> in signatures so those are easy to hang tests off of
22:40 TreyHarris care to implement alarm() or some other timeout mechanism? :-)
22:40 Limbic_Region well - it is affecting 2 different systems for me but I haven't bothered trying to track it down
22:40 lanny hah.  Little steps first.
22:40 Limbic_Region actually - the harness is written in p5
22:41 TreyHarris lanny: yes, but you never want a test to blow up completely, because then the harness just gives up and we get whites instead of reds in the matrix
22:41 lanny Yep, Trey, I know the drill.
22:41 TreyHarris ok :-)
22:42 lanny But that's why I'm asking first to make sure.
22:42 TreyHarris lanny: sorry, didn't mean to be pedantic.  we've just had some folks here who have never written tests for even regular old CPAN modules... it's hard to know how explicit to be :-)
22:42 lanny Wife calling me to supper.  Thanks for the direction, gang.
22:42 markstos lanny: thanks for helping out! Are you new here, or have I just missed you since I've been hanging around ?
22:43 lanny I've been here about a week or so I think
22:43 TreyHarris markstos: he's been around at least a week or... oh, he's still here :-)
22:43 markstos glad to have you!
22:43 lanny Glad to be here.
22:44 lanny Committing two tiny srand() tests gave me more satisfaction than I've had from my job in a long time so I think this is gonna be fun.
22:44 markstos :)
22:44 lanny Ok.  Really gotta run.  Laters.
22:45 penk left perl6
22:53 cjeris left perl6
22:55 svnbot6 r13198 | markstos++ | [t/builtins/lists]
22:55 svnbot6 r13198 | markstos++ | Every file here has at least one smart link now. (11 added)
23:01 svnbot6 r13199 | markstos++ | [t/builtins/hashes]
23:01 svnbot6 r13199 | markstos++ | Every file here has at least one smart link now. (3 added)
23:01 svnbot6 r13199 | markstos++ | hashes/isa.t could use a better one.
23:07 svnbot6 r13200 | markstos++ | [t/builtins/control_flow]
23:07 svnbot6 r13200 | markstos++ | Every file  here now has a smart link. (4 added)
23:10 svnbot6 r13201 | markstos++ | move goto.t from builtins/ to blocks/ to match now it appears in the spec.
23:13 bsb joined perl6
23:24 radian joined perl6
23:36 Aankhen`` joined perl6
23:41 Limbic_Region wow - smoke time nearly 1 hour
23:44 markstos I found some tests for "true", but seemingly no spec mentions of it.
23:44 markstos The tests all pass, though.
23:47 markstos I notified p6l about "not" and "true" being  missing from the spec.
23:47 markstos I don't really see the need for "true"...I got by fine without it in Perl 5.
23:50 svnbot6 r13202 | markstos++ | [t/builtins/bool]
23:50 svnbot6 r13202 | markstos++ | Added smart link for defined.t. "not" and "true" appear not be spec'ed. p6l notified.
23:52 TreyHarris it's True and False (which should be a shorthand for the Bool::True and Bool::False enums as a Bool subtype), not true.  and 'not' isn't specced because it's the same as perl 5, AFAIK
23:53 markstos I believed the Perl 6 spec to be comprehensive and self contained for the most part, not differences from Perl 5.
23:53 TreyHarris ohhh... i just looked at the test
23:54 TreyHarris true is the low-precedence form of ?
23:54 TreyHarris not is just like perl 5
23:54 markstos You shouldn't have read a Perl 5 reference to understand the Perl 6 reference. (if you want ignore rx:Perl5, use:Perl5, etc)
23:54 markstos TreyHarris: I expect "not" is just like Perl 5, but it should still be in the spec somewhere.
23:55 TreyHarris markstos: take it up with TimToady et. al.... synopses have always been silent on what is the same (or obviously derived given other new things) from Perl 5
23:55 markstos TreyHarris: I did. I notified p6l earlier.
23:55 xdg joined perl6
23:56 TimToady installing P5isms into the specs will probably entail major refactoring.
23:56 TimToady (of the specs)
23:57 putter (thus the Perl6 Reference Manual project was born...;)
23:57 lambdabot putter: You have 1 new message. '/msg lambdabot @messages' to read it.
23:58 TimToady incidentially, true and not are already documented in S03
23:58 TimToady at least in the precedence table
23:58 markstos TimToady: but isn't it a goal to have a self-contained reference? Perl 6 will appear to more people than those who care learn the Perl 5 spec, first.
23:59 TreyHarris TimToady: welcome back, by the way, I've been coming or you've been going every time thus far we've been on the channel at the same time today :-)
23:59 TimToady Certainly we want a self-contained references.  It's just not clear that the S's will refactor into those in place.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo