Camelia, the Perl 6 bug

IRC log for #perl6, 2009-09-08

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:01 jnthn morning
00:01 TimToady o/
00:01 TimToady zerhash: the download button on perl6.org will get you to a How to download rakudo page
00:02 zerhash ya i see
00:02 zerhash thanks
00:03 TimToady zerhash++ for diving in
00:03 zerhash :D
00:03 * zerhash installs rakudo
00:04 * zerhash waits for a puff of smoke to come from machine
00:04 TimToady for expert help on rakudo ask jnthn and pmichaud
00:05 TimToady you'll note the jnthn is not in the western hemisphere :)
00:06 zerhash ok
00:07 * jnthn spans Eurasia.
00:07 jnthn ;)
00:07 zerhash so i install rakudo. then the pugs test sweet should work
00:07 zerhash rakudo devs work around our tests
00:08 TimToady you probably want 'make spectest'
00:08 zerhash in pugs? or rak?
00:08 jnthn Well, it's the spec test suite, for any implementation. But for historical / "it works awesomely" reasons, the tests still live in the Pugs repo.
00:08 jnthn Rakudo.
00:08 jnthn After make, make test will run a few small sanity tests (enough to be sure the test harness will compile and run).
00:09 jnthn Then make spectest runs thousands of tests. :-)
00:09 vmbrasseur left #perl6
00:10 zerhash ok i see how it works
00:10 zerhash svn co of pugs spec test
00:10 zerhash where is the rakudo chan?
00:10 TimToady mostly here, some in #parrot on irc.perl.org
00:11 TimToady but the perl6 aspects, here
00:11 TimToady any of the implementations are welcome to hang out here
00:13 rhr joined #perl6
00:28 colomon Errr.... building Rakudo with a fresh git clone (and --gen-parrot) is failing for me at the moment.
00:29 lisppaste3 colomon pasted "Error message with latest git clone and --gen-parrot" at http://paste.lisp.org/display/86734
00:30 colomon commit 01ae3fae981eed2ecd8a75c94a72c119340044cf
00:31 hudnix joined #perl6
00:31 jnthn colomon: Ooh, a Parrot build error.
00:31 jnthn What platform?
00:31 colomon OS X
00:32 colomon BTW, git++.
00:32 colomon Very awesome to be able to switch back to an earlier version of rakudo while I was away on vacation, far from the Internet.
00:33 carlin joined #perl6
00:34 jnthn colomon: Am asking on #parrot
00:34 colomon Thank you.
00:34 jnthn colomon: May be result of the profiling branch merge...
00:34 colomon Oooo, parrot has profiling now?
00:37 TimToady apparently not on your machine :P
00:37 jnthn I believe so - I didnt yet try it.
00:44 * jnthn afk for a bit
00:51 colomon Looks like it's building just fine on my 64-bit Linux machine...
00:56 colomon But make test fails?
00:58 TimToady fails t/01-sanity/07-simple-multisubs.t on my machine
00:58 TimToady Ubunto 64-bit
00:59 colomon Failed t/00-parrot/03-op-logic and t/01-sanity/08-say the second time through.
01:00 colomon Five different tests the first time through, including t/01-sanity/07-simple-multisubs.
01:00 colomon Weird, I didn't do anything in between, just ran make test again.
01:00 TimToady passed everything 2nd time
01:01 TimToady obviously something intermittent
01:01 colomon cue twilight zone music....
01:01 TimToady and mine was just a realclean, not fresh checkout, btw
01:01 TimToady realclean/git/etc.
01:01 colomon Mine was a fresh checkout.
01:02 colomon When I tried running 03-op-logic.t on it's own, I got "Can't open perl script "t/spec/fudgeall": No such file or directory".
01:04 TimToady failed multisubs again
01:05 colomon Errrr... there is no t/spec directory?
01:06 TimToady not in that directory, try parent or grandparent
01:07 nbrown joined #perl6
01:07 colomon I'm talking from the rakudo directory:  rakudo/t/spec isn't there.
01:08 TimToady strange
01:08 TimToady I have one here
01:08 colomon There's no spec directory anywhere in my rakudo tree.  (I haven't run make spectest in this fresh build yet.)
01:08 TimToady git failure?
01:09 colomon No, there's no rakudo/t/spec on github, either.
01:09 TimToady svn failure?
01:09 TimToady bypassed the svn co from pugs somehow?
01:09 colomon That would be make spectest, no?  This is just make test that is causing problems.
01:10 TimToady well, fudgeall is a pugs repo dependency
01:10 colomon Why would make test mess with it?
01:11 TimToady sees a fudge directive maybe?
01:13 TimToady doesn't look like it
01:13 colomon yeah
01:13 TimToady how are you running the test "standalone"?
01:14 TimToady some prove variant?
01:14 colomon make t/00-parrot/03-op-logic.t
01:14 TimToady that may be supplying the fudgeall
01:14 colomon It works for the spectests, so I just assumed.
01:14 TimToady it's strange to tell make to make something that's already there
01:15 colomon So it may not even be related to our intermittent bug?
01:15 TimToady I'd guess not
01:18 colomon Well, going back to the full make test, errors reported seem to be "Parse errors: No plan found in TAP output".  Does that match what you're seeing?
01:19 TimToady you mean spectest?
01:20 colomon No, that's what I saw on all five errors from my latest "make test".
01:20 TimToady haven't seen that
01:21 TimToady sounds like you have an old Test module out there somewhere
01:21 TimToady the 'plan *' is fairly recent, I think
01:21 colomon The tests that are failing don't use test at all.
01:21 colomon say '1..24';
01:21 colomon (for instance)
01:23 colomon (I mean, don't use "Test.pm" at all -- it's hand-coded standard perl test format.)
01:24 frew__ joined #perl6
01:25 TimToady très étrange
01:26 ysth joined #perl6
01:28 ysth Do the stubby exception generators (.../!!!/???) take optional lists or single arguments?
01:28 TimToady they are listops
01:28 ysth S03 says "The argument is optional", but says ... has List prefix precedence (and die/warn/fail take lists, don't they?)
01:29 tak11 joined #perl6
01:29 ysth excellent.
01:29 TimToady basically, they're just fail, die, and warn with different default messags
01:29 asciiville joined #perl6
01:32 ysth what is ...'s default message? the 5.11.0 implementation says "Unimplemented"
01:32 allbery_b that's basically it
01:32 pdcawley_ joined #perl6
01:32 allbery_b (...) means "this is a placeholder"
01:36 TimToady maybe "Implementation stub executed" or some such
01:36 sri_kraih joined #perl6
01:36 TimToady but Unimplemented would be fine
01:37 sri_kraih joined #perl6
01:40 araujo hello all
01:41 TimToady \o
01:41 araujo hola TimToady :)
01:50 * araujo gets to package his code for this summer of code
01:51 Ryan52 araujo: package for what?
01:51 araujo Ryan52, to submit the code
01:51 Ryan52 ah. fun. :)
01:51 Ryan52 araujo: what was your project?
01:52 asciiville or even Implementedless :)
01:52 araujo http://socghop.appspot.com/student_project​/show/google/gsoc2009/osuosl/t124023180742
01:52 araujo Ryan52, that one
01:53 araujo (non perl6 related)
01:53 TimToady asciiville: lol
01:53 asciiville there's more than one way to say it :)
01:53 TimToady Insufficiently unimplementednessless
01:53 Ryan52 araujo: ah, cool!
01:54 asciiville those are definitely great messages
01:55 araujo Ryan52, :D
01:56 asciiville i'm guessing unimplementednessless is causing Merriam Websters parser to bork
01:59 * araujo surely would have lot of problems pronouncing that word
01:59 asciiville i had problems typing it...
01:59 * araujo still needs to polish his english pronunciation
02:00 Ryan52 araujo: I'm a native english speaker, and I still can't say it :P
02:00 araujo haha
02:00 asciiville it would be a great module on CPAN, ACME::UnImplementedNessLess
02:01 asciiville could just print out a warning, that is all
02:01 araujo you can do it ... people would start referring to it as an acronym I bet ...... UINL
02:01 araujo or something like that....
02:02 asciiville it could be like a Mock Object or something
02:02 colomon std: @foo >>->> @bar;
02:02 p6eval std 28205: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/OI0kuLsQeg line 1:␤------> [32m@foo >>[33m⏏[31m->> @bar;[0m␤    expecting any of:␤        bracketed infix␤  infix stopper␤    standard
02:02 p6eval ..stopper␤ terminat…
02:03 colomon std: my @foo; my @bar; say @foo >>->> @bar;
02:03 p6eval std 28205: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/ixTjEndH8K line 1:␤------> [32mmy @foo; my @bar; say @foo >>[33m⏏[31m->> @bar;[0m␤    expecting any of:␤  bracketed infix␤  infix stopper␤
02:03 p6eval .. stan…
02:04 TimToady hmm
02:04 asciiville colomon: are those super-hyperoperators? >>->>
02:04 colomon asciiville: They are some kind of hyperoperators, not sure the exact term.
02:05 asciiville they look sharp :)
02:05 colomon It means "expand the right hand side until you can subtract it pairwise from the left hand side".
02:05 TimToady std: @_ »-» 1
02:06 p6eval std 28205: OUTPUT«Potential difficulties:␤  Variable @_ is not predeclared at /tmp/2KKL7lWu0u line 1:␤------> [32m@_[33m⏏[31m »-» 1[0m␤ok 00:02 38m␤»
02:06 TimToady std: @_ >>->> 1
02:06 p6eval std 28205: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/zl9dhSGdtd line 1:␤------> [32m@_ >>[33m⏏[31m->> 1[0m␤    expecting any of:␤      bracketed infix␤  infix stopper␤    standard stopper␤
02:06 p6eval ..terminator␤Oth…
02:06 TimToady bug
02:06 colomon std: my @foo; my $bar; say @foo >>->> $bar;
02:06 p6eval std 28205: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/kCZgw8hQLF line 1:␤------> [32mmy @foo; my $bar; say @foo >>[33m⏏[31m->> $bar;[0m␤    expecting any of:␤  bracketed infix␤  infix stopper␤
02:06 p6eval .. stan…
02:07 colomon TimToady: That's what I thought, wanted to make sure it wasn't one which had been fixed recently, as I hadn't updated your "tryfile" in a while.
02:07 TimToady doesn't recognize the Texas version for some reason
02:07 asciiville there's an I18N just for Texas?
02:07 TimToady oh, it's seeing the -> in the middle
02:08 colomon So I just need to get away from Texas... useful tip!
02:08 asciiville gotta get to Texas someday myself
02:09 colomon TimToady: Do you want me to submit that one "officially"?
02:10 TimToady std bugs don't have a mechanism
02:10 TimToady I'll just remember it :)
02:11 TimToady and probably fix it tonight
02:11 colomon TimToady++
02:14 ysth I assume rakudo's current state of yada yada only being allowed in a sub is a lack-of-implementation thing, not intentional?
02:14 TimToady yes
02:15 asciiville or optionally, lack-of-unimplementationnessless
02:16 alester joined #perl6
02:17 ysth thanksw
02:20 ihrd left #perl6
02:20 asciiville rakudo: use Digest::MD5:from<parrot>;
02:20 p6eval rakudo 446d49: OUTPUT«Null PMC access in get_pmc_keyed()␤in Main (src/gen_setting.pm:445)␤»
02:23 asciiville sometimes it works, sometimes it don't
02:25 asciiville actual question: is it better to inline PIR for functionality not yet available in rakudo?
02:27 asciiville probably should have finished the question: than to attempt to build a PIR module directly and include it with the Module:from<parrot>; statement?
02:29 zpmorgan joined #perl6
02:38 pmichaud fwiw, it's okay to submit STD bugs to the rakudobug queue.  We just mark them as [spec]
02:39 pmichaud (and the rakudobug queue is officially 'perl6' anyway :-)
02:39 pmichaud asciiville: it probably depends on whether you think your module will be of benefit only to rakudo or also to other parrot languages
02:40 Confield joined #perl6
02:40 pugs_svn r28206 | lwall++ | [STD] fix colomon++'s bug on >>->> parsing
02:41 asciiville pm: good point. i wondered if there were any performance benefits as well
02:43 pmichaud hard to say yet
02:44 asciiville after I learned of the Module:from<parrot>; statement yesterday, I had been playing round with the PIRs in the parrot_install/lib/<>/library directory. The :from<parrot> appeared to load .pbc as whereas Rakudo would have to parse/compile everytiime if inlined
02:45 asciiville sorry about the broken English :)
02:45 pmichaud well, Rakudo knows how to load .pir also
02:46 pmichaud (and .pbc)
02:56 ysth To avoid describing things in terms of other languages, could we call fff the single-test flipflop operator?  S03 says "sed style".  p5's perlop says "sed-like".
02:57 ysth But maybe that's just honoring perl's roots
03:00 SmokeMachine joined #perl6
03:05 ysth hmm, now I can't find "sed-like" there.  It just gives a description and says "as in B<sed>"
03:25 sri_kraih_ joined #perl6
03:29 alester joined #perl6
03:43 mepplock joined #perl6
04:12 zloyrusskiy joined #perl6
04:37 Zloy_Russkiy joined #perl6
05:02 sevvie_ joined #perl6
05:08 wayland76 joined #perl6
05:10 KatrinaTheLamia joined #perl6
05:12 Tene :( no masak
05:13 mj41_ joined #perl6
05:13 jnthn 'tis a little early for masak.
05:13 wayland joined #perl6
05:14 Tene yeah, but I was gonna have him tell me what to do for sqlite.
05:14 jnthn aww.
05:18 Tene FINE ILL JUST DO IT MYSELF
05:18 Tene First I need to move it somewhere where it actually gets installed or something
05:19 Tene or maybe japhb has a better option for me...
05:19 wayland joined #perl6
05:21 * Tene hides irc.
05:23 * wayland checks the hides to see if they're tan :)
05:34 finanalyst joined #perl6
05:42 Tene phenny: tell masak I copied SQLite3.pir into parrot's library, so it now gets installed, and you can use that example from elsewhere.  Depending on how my night goes, I'll now work on a nicer Perl 6 library to use it.
05:42 phenny Tene: I'll pass that on when masak is around.
05:42 Tene phenny: thanks
05:44 meppl joined #perl6
05:52 spinclad re  class Foo {...} : /me would be happy to retarget  class Foo;  to this, retiring the rest-of-file scope.  seems a natural syntax for a stub declaration (though it adds to the burden of migrating from 5 to 6)
06:07 moritz_ good morning
06:07 Tene hi moritz.
06:07 moritz_ spinclad: class Foo; is increadibly handy, you shouldn't just steal the syntax
06:09 Tene jnthn: do you have any idea what this "positional inside named args at position 3" stuff is?
06:09 Tene oh... nm
06:09 Tene >.>
06:10 Tene that's what I got for calling a sub with too many args.
06:12 jnthn Tene: Aye, it usually means something like that. :-)
06:12 * moritz_ usually sees that from method calls
06:12 moritz_ because methods have an implict *%_
06:14 masak joined #perl6
06:14 masak o/
06:14 phenny masak: 05:42Z <Tene> tell masak I copied SQLite3.pir into parrot's library, so it now gets installed, and you can use that example from elsewhere.  Depending on how my night goes, I'll now work on a nicer Perl 6 library to use it.
06:14 Tene hi masak
06:14 jnthn \o
06:14 masak note: masak is up early today. :)
06:14 Tene masak: give me just a sec, and I'll have something nice for you.
06:14 masak \o/
06:18 azawawi joined #perl6
06:18 azawawi hi
06:19 masak azawawi: morning!
06:21 Tene masak: finished for now, pushing...
06:21 masak std: loop { say "OH HAI"; last } while 1
06:21 p6eval std 28206:  ( no output )
06:21 masak std: loop { say "OH HAI"; last } while 1
06:21 p6eval std 28206:  ( no output )
06:22 jnthn std: alive
06:22 Tene masak: http://github.com/tene/perl6-sqlite/tree/master
06:22 p6eval std 28206: OUTPUT«Undeclared routine:␤   alive used at 1␤ok 00:02 36m␤»
06:22 jnthn std: loop { say "OH HAI"; last } while 1
06:22 p6eval std 28206: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing semicolon or comma after block at /tmp/Jy1DGIRCd0 line 1:␤------> [32mloop { say "OH HAI"; last } [33m⏏[31mwhile 1[0m␤    expecting any of:␤        infix stopper␤    statement␤Undeclared routine:␤      while used at 1␤FAILED 00:04 37m␤»
06:22 masak Tene: looking.
06:22 Tene masak: it *really* needs to be cleaned up... abstracted...
06:22 * masak adds to the ticket that STD appears to do the right thing nowadays.
06:23 Tene There should be a function to fetch just a row, instead of just individual columns, for example.
06:23 masak Tene: understood. I looked at Sequel yesterday, and I think it's the right thing to port.
06:23 Tene masak: you are 'masak' on github?
06:23 masak their abstraction is called 'dataset' and it's right in many ways IMO.
06:23 masak Tene: I am.
06:24 Tene http://sequel.rubyforge.org/ -- this Sequel?
06:24 masak that one.
06:24 Tene Yes, I can do that.
06:24 masak I spent some time yesterday reading source.
06:24 masak Tene: should we start a separate repo for that one? I think we should.
06:24 masak suggested name of port: Squirrel.
06:24 moritz_ TimToady: (re tests failing after parrot branch merge) for me it helped to delete the directory in which parrot was installed, rakudo/parrot_install by default
06:25 sevvie_ joined #perl6
06:25 Tene masak: Yes, probably... but the SQLite library needs to be more complete before then... we should also look at the DBDI work...
06:25 moritz_ phenny: tell colomon (re tests failing after parrot branch merge) for me it helped to delete the directory in which parrot was installed, rakudo/parrot_install by default
06:25 phenny moritz_: I'll pass that on when colomon is around.
06:25 masak Tene: if you don't stop me, I'll probably start working on Squirrel today.
06:26 masak Tene: I'll be doing it with a mocked db first.
06:26 Tene masak: That sounds fine.  You have commit rights on perl6-sqlite3
06:26 masak \o/
06:26 masak hugme: hug Tene
06:26 * hugme hugs Tene
06:26 moritz_ DBDI is still in the stage of trying to translate java classes and interfaces to Perl 6 classes and role definitions
06:26 jnthn Squirrel?
06:26 Tene masak: So go make your squirrel, and show me the API that is needed for SQLite3 driver for it...
06:26 Tene and I'll do that tomorrow.
06:26 masak excellent.
06:26 Tene So whatever you get specced for it, I'll implement.
06:27 cotto If anyone has any suggestions on how I can make Parrot's profiling more useful to Rakudo, I'd be glad to hear them.
06:27 moritz_ cotto: make it faster ;-)
06:27 Tene Tomorrow during my day/evening, unless something comes up.
06:27 masak jnthn: are you asking about the choice of name, or the scope of the project?
06:27 masak Tene: that sounds good.
06:28 jnthn masak: What is the project? :-)
06:28 Tene jnthn: port of http://sequel.rubyforge.org/
06:29 masak jnthn: a port of Ruby's Sequel. http://sequel.rubyforge.org/
06:29 masak EMASAKTOOSLOW
06:29 * moritz_ opens masakbug: make masak++ 20% faster
06:29 Tene 30%!
06:30 Tene I have some significant masak needs.
06:30 masak you know what they say... first make it run, then make it right...
06:30 Tene Then make 30 subclasses.
06:31 masak .oO( serious threading problems... )
06:32 jnthn In some senses, Rakudo can't have any serious threading problems. ;-)
06:32 Tene jnthn: there's a patch in trac that allegedly fixes the Parrot bug that was blocking threading in Rakudo.
06:32 Tene I've got it queued up in my firefox tabs for evaluation...
06:32 masak is http://rt.perl.org/rt3/Tic​ket/Display.html?id=63510 invalid? I suspect it is.
06:32 jnthn ah, cool
06:33 cotto moritz_, noted
06:33 Tene anyone here want threading in rakudo soon enough to ask me to bump its priority up?
06:33 jnthn NPMCA sucks.
06:33 jnthn Tene: It'd be a Cool To Have.
06:34 Tene OK.
06:34 jnthn At least, it'd open some doors.
06:34 Tene I'll fork a thread to work on that while I work on SQLite. :)
06:34 moritz_ Tene: iirc it was blocking on TT #757 - that ticket now has patches that claim to solve it
06:34 Tene moritz_: yes, so as long as they are good patches and there are no additional blockers...
06:35 Tene then it should be easy.
06:35 jnthn .oO( I can haz async? )
06:36 moritz_ well, I have no idea if the patches are good - but I can hope ;-)
06:37 Tene moritz_: if you could do a test run on parrot and rakudo with the latest patch there... it would be helpful.
06:37 * Tene leaves to phone the gf and then sleep.
06:38 * jnthn feels weird watching the day end in the US and the day start in Europe.
06:39 nsh joined #perl6
06:40 xinming joined #perl6
06:40 ewilhelm joined #perl6
06:41 orafu joined #perl6
06:44 DakeDesu joined #perl6
06:51 charsbar joined #perl6
06:53 sharada joined #perl6
07:01 masak rakudo: say "abc" ~~ m ☃.(.).☄
07:01 p6eval rakudo 446d49: OUTPUT«abc␤»
07:01 azawawi joined #perl6
07:01 masak no need for that Snowman::Comet module just yet...
07:01 azawawi moritz_: i figured out a fix to http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=68746 on win32
07:01 azawawi moritz_: any commit bits? :)
07:02 moritz_ azawawi: no, you need to submit a patch
07:02 jnthn masak: Some bugs will be a shame to fix ;-)
07:03 azawawi moritz_: np
07:07 moritz_ azawawi: just stumbled upon http://perlpilot.blogspot.com/2009/09/th​ings-i-wish-were-different-in-padre.html
07:08 azawawi moritz_: thanks...
07:08 zamolxes >
07:08 zamolxes >
07:08 lambdabot not an expression: `'
07:08 zamolxes >
07:08 zamolxes >
07:08 zamolxes >
07:08 zamolxes > Cosmin Capataneanu
07:08 lambdabot Not in scope: data constructor `Cosmin'Not in scope: data constructor `Capa...
07:08 zamolxes > Unit Director
07:08 lambdabot Not in scope: data constructor `Director'
07:08 zamolxes >
07:08 zamolxes >
07:08 zamolxes >
07:08 zamolxes > Adresa:
07:08 lambdabot <no location info>: parse error (possibly incorrect indentation)
07:08 zamolxes > P-ta Alba Iulia nr.8, bl. i7, sc.3, et.2, ap.50-52, sector 3, Bucuresti
07:08 lambdabot <no location info>: parse error on input `,'
07:08 zamolxes left #perl6
07:09 masak aww, I wanted to use my op bit... :/
07:10 zamolxes joined #perl6
07:10 zamolxes :(
07:10 zamolxes so sorry
07:10 moritz_ in soviet russia op bits use you ;-)
07:11 masak hugme: hug zamolxes
07:11 * hugme hugs zamolxes
07:11 moritz_ happens to the best of us too
07:11 masak aye.
07:11 wayland ...and I'm living proof of that (cough cough :) )
07:12 zamolxes :)
07:13 masak http://rt.perl.org/rt3/Tic​ket/Display.html?id=67234 is famous, btw. it bit TimToady during the YAPC keynote. :) thus perhaps the most advertised bug in RT.
07:13 zamolxes usually it's my cat's fault, but now i just accidentally middle-clicked while scrolling
07:14 masak zamolxes: Linux, eh?
07:14 zamolxes hrm, or something, don't thing I had a reason to scroll
07:14 zamolxes yep
07:14 masak dangerous stuff.
07:14 rfordinal joined #perl6
07:16 wayland That's why I'm trying to replace my scroll wheel with a SpaceNavigator 3D mouse
07:17 masak rakudo: { &^c("$^a, $^b") }.("morning", "perl6ers", &say)
07:17 p6eval rakudo 446d49: OUTPUT«Parameter type check failed; expected Callable, but got Multi for c in call to _block50␤in Main (/tmp/OfyPsGNZhs:2)␤»
07:18 masak jnthn: you wondered if I wanted something in particular fixed... the above, while not high-prio, is sufficiently annoying.
07:18 masak http://rt.perl.org/rt3/Tic​ket/Display.html?id=68116
07:19 jnthn eww
07:19 jnthn yes, that is annoying.
07:24 * azawawi fixed http://rt.perl.org/rt3/Tic​ket/Display.html?id=68746
07:25 rgrau joined #perl6
07:25 moritz_ as long as nobody has paths with backslashes on linux... ;-)
07:26 moritz_ azawawi: I'll test it later on, and commit + push if it doesn't break anything on linux (don't think it will)
07:27 azawawi moritz_: Thanks for your help... I managed to build a c:\strawberry\six PDX distro that will be included in the next Padre 0.45 almost-six MSI installer (for win32)
07:28 broquaint joined #perl6
07:30 rfordinal left #perl6
07:32 azawawi moritz_: can u please fix my CREDITS entry in Rakudo like this http://gist.github.com/182771 ?
07:33 iblechbot joined #perl6
07:35 moritz_ aye
07:36 azawawi moritz_: thx
07:42 azawawi moritz_: perl6 --version does not show any useful information.
07:43 moritz_ azawawi: I know, we have two tickets open for that already
07:46 masak it's on my April list, soon to be published.
07:46 jnthn The April List
07:47 masak 34 bugs on there right now, but I'm still culling.
07:47 * jnthn will be curious to see it
07:47 jnthn 34 isn't so bad.
07:47 masak I want it to be a list of things that bite innocent people, not a list of easily workaroundable highly abstracted bugs of the "don't do that, then" variety.
07:48 dalek rakudo: a0c8a44 | moritz++ | C (2 files):
07:48 dalek rakudo: [build] fix \ to / in paths passed to parrot's Configure.pl
07:48 dalek rakudo: Patch courtesy by azawawi++. Also fix up his CREDITS entry
07:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​0c8a44eb4f1578f03bd7d521ee91ee75581a0a0
07:54 timbunce joined #perl6
08:00 wayland Am I innocent enough? :)
08:00 wayland (afk food &)
08:07 agentzh joined #perl6
08:32 cmv joined #perl6
08:35 cognominal joined #perl6
08:39 rbaumer joined #perl6
08:57 ejs joined #perl6
08:58 barney joined #perl6
09:05 frederico joined #perl6
09:16 drbean_ joined #perl6
09:16 wayland ooh, tim bunce.  Maybe we'll get some DBI 2 soon :)
09:17 timbunce I gott'a get NYTProf v3 out the door first. Haven't even got to work on that recently. Kind'a crazy at the moment.
09:18 moritz_ timbunce: good news, pmichaud++ is working on getting stub class declarations working properly, that might make things easier for us
09:18 agentzh joined #perl6
09:20 timbunce I saw that. We may still have a problem because we don't know if the name is the name of a class or a role.
09:20 timbunce but doing two passes would avoid that
09:20 wayland timbunce: No pressure -- I'm just getting pre-excited :)
09:20 timbunce :)
09:20 wayland Do we get stub roles with stub classes?
09:21 wayland Or is that a separate problem?
09:21 * wayland would like stub roles, if that means role foo {...}
09:23 jnthn Probably same kinda problem.
09:23 jnthn Though little different I guess.
09:30 azawawi joined #perl6
09:30 azawawi moritz_: is Safe and Test going to be bundled with rakudo's parrot_install in the future?
09:31 rblasch joined #perl6
09:41 jaffa8 joined #perl6
10:05 carlin joined #perl6
10:12 fredrecsky joined #perl6
10:17 dakkar joined #perl6
10:34 moritz_ azawawi: probably yes
10:35 pmurias joined #perl6
10:38 colomon joined #perl6
10:43 azawawi joined #perl6
10:43 azawawi moritz_: http://ahmadzawawi.blogspot.com/2009/0​9/upgrading-to-rakudo-perl-6-pdx.html
10:44 pmurias ruoso: hi
10:51 ruoso hi pmurias
10:52 carlin joined #perl6
10:54 * ruoso commute &
10:58 athaba joined #perl6
11:00 zostay_ joined #perl6
11:00 athaba hi, how do I use BigInts and BigNums with perl6/rakudo?
11:01 colomon athaba: pretty sure that's not implemented yet.
11:01 phenny colomon: 06:25Z <moritz_> tell colomon (re tests failing after parrot branch merge) for me it helped to delete the directory in which parrot was installed, rakudo/parrot_install by default
11:03 athaba okay, thanks
11:07 athaba what is a short/efficient way to have a block executed X times, if I don't need the current value. I use 'for 1..X', but it doesn't seem like the best way
11:07 cmv joined #perl6
11:08 colomon athaba: have a vague memory there is a "repeat" command...
11:08 colomon but it doesn't do what I was thinking.
11:09 athaba yeah, it's even more complex
11:09 moritz_ you have to use map or for
11:09 moritz_ the X.times is ruby :-)
11:10 moritz_ but 'for ^N { block }' is not really much to write
11:10 colomon Could you do something like { ... } xx 10?
11:10 athaba yes, I know. I hoped for perl6 offering something similar
11:10 colomon moritz_: I was assuming it was an efficiency issue ... create a big list with for ^N if N is large.
11:11 colomon and if you don't want the value of that list....
11:11 moritz_ colomon: it is today, but it's going to be a lazy iterator
11:11 wayland seen Matt-W
11:11 wayland phenny: seen Matt-W
11:11 colomon moritz_: sure, but the horrible efficiency issues are here today!  ;)
11:12 moritz_ @seen Matt-W
11:12 lambdabot Unknown command, try @list
11:14 wayland That's what lambdabot says to me too
11:14 wayland Maybe lambdabot has bitrot
11:28 sm^^^ joined #perl6
11:52 Matt-W Hello
11:52 frettled H-h… hello?
11:53 Matt-W What lambdabot should have said is "Matt-W will return in 40 minutes", but it's not that clever
11:53 sharada joined #perl6
11:53 frettled Nor is it prescient, apparently.
11:55 carlin ENOPRECOGNITION
11:55 Matt-W That's probably a good thing, all told
11:55 frettled Besides, it's NYI in Rakudo.
11:55 Matt-W Although it might be able to tell people when Perl 6 will be 'ready' as they define 'ready', and thus save us a lot of explanation
11:58 carlin it would probably respond; ENOIDEA
11:58 carlin or 42
12:09 _timbunce joined #perl6
12:10 takadonet joined #perl6
12:10 takadonet morning all
12:10 moritz_ good localtime takadonet
12:11 takadonet hehe
12:19 frettled moritz_: localtime NYI, please use gmtime.
12:19 frettled Good gmtime, takadonet :D
12:31 frettled masak: regarding Extreme Makeover - Temporal.pm Edition: do you have any particular plans yet, and if so, in a text file or something?  I suddenly feel vaguely inspired again.
12:40 ruoso joined #perl6
12:41 azawawi joined #perl6
12:41 azawawi hi
12:44 spinclad moritz_: re  class Foo; to eof  incredibly useful:  more so than  class Foo { #`[rest of file here] } ?
12:45 spinclad i'm surprised, then.
12:46 spinclad hi, azawawi
12:46 moritz_ spinclad: yes
12:47 moritz_ spinclad: basically because it allows you not to indent the body of the class
12:47 moritz_ and still have each closing } on an indetion level of its own
12:48 spinclad there is that, true.  a matter of layout then.
12:50 moritz_ aye
12:50 moritz_ and it does matter a lot to me to have my code laid out properly
12:50 spinclad 'use an editor that does it for you.'  <-- note: i don't endorse this argument
12:50 moritz_ that's not related to it at all
12:50 moritz_ my editor does it properly
12:51 moritz_ but you still ahve one more level of indenting
12:51 moritz_ which basically carries no information, but if you leave it out it's still confusing
12:52 spinclad and it's _because_ it runs to eof that it carries no information on each line
12:53 moritz_ aye
12:53 moritz_ anyway, I strongly recommend writing usable Perl 6 code
12:54 moritz_ it gives you some perspectives of the language that you don't notice by just thinking about it
12:55 moritz_ (that's what made me start the POD discussions one year ago that ended in a flame war, but now seems to produce good results, Damian++)
12:55 spinclad i've done some, but often enough had more than one class in a file, so preferred  class { }.
12:56 pmurias what should a RELEASE/REFERENCE do on the p5 interpreter? (it's destroyed manualy)
12:56 pmurias ruoso: ^^
13:03 PerlJam good morning fellow #perl6 denizens
13:05 spinclad along with  class { }  being more lexically natural to my taste, so i've felt the class-to-eof as (now) tacked onto the language, and open to reconsideration.  but i take your argument.  (more)
13:07 azawawi PerlJam: hi there
13:10 azawawi masak: el-pingo
13:10 masak azawawi: ka-powng.
13:11 azawawi masak: im trying november on win32 as i promised before :)
13:11 masak azawawi: cool!
13:11 masak frettled: I have plans, but not written down anywhere. I could write them down, or we could discuss them here.
13:11 azawawi masak: a lot of the docs are outdated a bit (when rakudo was inside parrot)
13:12 azawawi masak: commit bit please
13:12 KyleHa joined #perl6
13:12 frettled masak: There may be significant RTT in discussing it here, but I'm not opposed to that.  Phenny is so nice.  :D
13:12 spinclad so now i'm thinking over distinguishing the two  class Foo; s:  (1) 'class Foo is stub;', or (2) 'class Foo:' (with colon) to end of file.
13:14 KyleHa Is this still the problem of declaring that a class exists without defining it?
13:14 azawawi masak: if it works out on win32, i think i can cook a Padre::Plugin::November
13:14 spinclad yes
13:14 moritz_ KyleHa: IMHO it's not a problem
13:14 moritz_ we have a syntax for it
13:14 masak azawawi: the repository belongs to viklund. ping, viklund.
13:14 moritz_ and since yesterday it's also specced
13:14 KyleHa s/problem/discussion/
13:14 moritz_ before it was just in TimToady's head, and maybe implied here and there
13:15 masak azawawi: that sounds vaguely intriguing.
13:15 moritz_ hugme: hug azawawi
13:15 * hugme hugs azawawi
13:15 masak frettled: OK, so the previous goal of the Temporal spec was to provide a minimal toolset for date and time. after playing around with it, I've decided that the toolset is too minimal.
13:16 KyleHa If I may throw out a nonsensical suggestion, 'class Foo is fer realz;', or, for explicit error production, 'class Foo is fer lulz;'
13:16 azawawi hugme: help :)
13:16 hugme azawawi: 'hugme: (add $who to $project | list projects | show $project | hug $nickname)'
13:16 frettled masak: not to mention a bit too complicated, perhaps.  :)
13:16 moritz_ hugme: show json
13:16 hugme moritz_: the following people have power over 'json': masak, moritz_, viklund. URL: http://github.com/moritz/json/
13:16 azawawi hugme: list projects
13:16 hugme azawawi: I know about these projects: json, perl6-examples, proto, svg-matchdumper, svg-plot, tufte
13:17 masak frettled: I haven't thought about simplifications, but I do have a use case which I focus quite heavily upon.
13:18 frettled masak: ### days until April?  ;)
13:18 masak rakudo: ((Temporal::DateTime.new(:date(​​Temporal::Date.new(:year(2010), :month(4))), :time(Temporal::Time.new)).epoch - time) / 86400).ceiling.fmt("%d days left until April!").say
13:18 p6eval rakudo 446d49: OUTPUT«Confused at line 2, near "(:date(\u200bTe"␤in Main (src/gen_setting.pm:3469)␤»
13:18 masak frettled: yep.
13:19 frettled masak: one of my usecases is the one I just can't seem to stop blogging about (timestamping in logs and STDOUT)
13:19 masak frettled: that's a nice one too.
13:20 masak rakudo: ((Temporal::DateTime.new(:date(​Temporal::Date.new(:year(2010), :month(4))), :time(Temporal::Time.new)).epoch - time) / 86400).ceiling.fmt("%d days left until April!").say
13:20 p6eval rakudo 446d49: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤205 days left until April!␤»
13:20 frederico joined #perl6
13:20 frettled yeah, that one is a bit of a bother.
13:20 azawawi masak: pinged viklund
13:20 azawawi masak: thanks
13:21 masak azawawi: let me know if you time out pinging him, and I'll bother him by more effective means.
13:21 frettled masak: I also like to think of a future performance aspect; I don't want to have to insult the Temporal.pm implementors as much as I've apparently (accidentally and unintentionally) insulted Dave Rolsky.
13:21 masak who's that? :) and how did you insult him?
13:21 azawawi masak: i already emailed him...
13:21 moritz_ the DateTime author
13:21 masak azawawi: excellent.
13:22 masak moritz_: aha.
13:22 PerlJam frettled++ accidentally insulting Dave Rolsky  :)
13:23 * PerlJam looks around to see if autarch is on channel
13:24 frettled hehe
13:25 frettled masak: In essence, what I want to avoid is the trap that simple printing/formatting of datetime information is several orders of magnitude slower than someone taking the «raw» epoch timestamp and doing it themselves.
13:25 masak frettled: that sounds like a worthy goal. :)
13:25 PerlJam frettled: is one order of magnitude acceptable?
13:25 frettled masak: Supporting simple date and time calculation is also important, but it shouldn't affect the performance part.
13:25 frettled PerlJam: not for my uses
13:26 PerlJam frettled: good.
13:26 frettled PerlJam: and I suspect it isn't for any sysadmin who might want to use Perl to do real-time output.
13:26 PerlJam aye.
13:26 * PerlJam resembles said sysadmin
13:26 frettled :)
13:27 frettled hugme: hug PerlJam
13:27 * hugme hugs PerlJam
13:28 PerlJam back in the day, one of the things that really bugged me about the brand new perl 5 was that the date/time stuff was *WAY* slower than it had been with perl 4.   I got over it because of Moore's law  (heh, I accidentally wrote "Moose" initially) but had their been a significant improvment in the abstraction, I would have gotten over it sooner.
13:30 PerlJam I can live with a slightly slower execution speed if I win in writability, readability and maintenance
13:30 PerlJam (even for real-time stuff as long as "real-time" means "soon enough"  :)
13:32 frew__ joined #perl6
13:32 frettled mm
13:34 frettled PerlJam: Dave Rolsky provided me with a benchmarking script for performance, BTW, which I modified to this: http://jani.at.ifi.uio.no/tmp/dt-bench
13:38 agentzh joined #perl6
13:39 * PerlJam runs it
13:52 colomon joined #perl6
13:55 masak frettled: I have a repository on github for the Temporal.pm refactor, but I see I've only pushed one commit to it: http://github.com/masak/temporal-flux-perl6syn/​commit/eb5c3ccfc0d7560deb1f22075fbb7e9785fd9f01
13:56 masak I also have a local Rakudo branch where I try to implement what I spec.
13:56 M_o_C joined #perl6
13:58 frettled Ah!
13:58 frettled That's nice.
13:59 masak I'd like for Temporal::DateTime.new('2010-04-01') to work.
13:59 masak IIRC, I ran into some slight problems implementing that.
13:59 masak I should try it again soon.
14:01 timbunce joined #perl6
14:06 moritz_ actually we could offer a Temporal::Date which only deals with dates, not times
14:06 moritz_ that's much simpler
14:06 moritz_ and often does the job too
14:06 * moritz_ is quite fond of Perl 5's Date::Simple
14:10 justatheory joined #perl6
14:10 masak moritz_: there is a Temporal::Date, but IIUC it's only meant to be used by Temporal::DateTime by current spec/impl.
14:10 masak moritz_: but yes, I agree. and it probably wouldn't be too difficult.
14:14 jhorwitz joined #perl6
14:18 frettled moritz_: It's simpler except when it isn't :)
14:19 frettled moritz_: One of the things I want to fix is the leap second thing.  That's only possible to solve with some sort of LUT, I'm afraid.
14:19 frettled and that's needed for Temporal::Date
14:19 frettled I think I'd like to propose one implementation that's not leap second aware, and another that is.  The second will be slightly slower.
14:21 frettled But what I'm afraid of there, is that people will then opt to ignore leap seconds, and then come to rely on it in some application where they ought to be leap second aware.
14:22 frettled So the leap second part probably needs to be pretty close to the core.
14:24 masak having two parallel implementations is already a bit more complexity than I'd like to see in the core.
14:24 frettled Leap seconds are nasty little buggers in more than one way, too.  The operating system's clock is probably NTP adjusted these days, but you can't really know that it is.  If it is NTP adjusted, then leap seconds will be taken care of automagically, and that can lead to interesting problems when comparing dates, datetimes and times across a leap second boundary.
14:25 frettled Fortunately, we know _when_ the leap seconds are supposed to inserted related to UT1 (IIRC), so it should be manageable.
14:26 frettled masak: yes, me too
14:28 Tene hi masak
14:29 masak good day, Tene.
14:29 cognominal joined #perl6
14:29 ruoso pmurias, hmm... conceptually we could make a refcount for the interpreter itself, and destroy it in the end...
14:41 alester joined #perl6
14:48 mikehh joined #perl6
14:50 chez joined #perl6
14:51 nihiliad joined #perl6
14:51 chez ?eval say "hello!"
14:51 masak perl6: say "hello!"
14:51 p6eval elf 28206, pugs, rakudo 446d49: OUTPUT«hello!␤»
14:51 Psyche^ joined #perl6
14:52 finanalyst left #perl6
14:52 chez does the bot support private messages ?
14:52 masak aye.
14:53 chez thanks I'm afraid of spamming the channel :p
14:53 masak chez: I've also heard that there are offline versions of each implementation :)
14:53 chez hey erm what implementation is this ?
14:54 masak all of them. Elf, Pugs, and Rakudo.
14:54 chez oh
14:54 masak (those are the one represented by p6eval)
14:54 masak s/one/ones/
14:54 masak for download, I'd recommend Rakudo.
14:54 chez how do I test something with pugs only ?
14:54 Zloy_russkiy joined #perl6
14:54 chez yeah I have rakudo on my pc
14:54 masak pugs: say "OH HAI"
14:54 p6eval pugs: OUTPUT«OH HAI␤»
14:54 chez thanks
14:54 masak np.
14:57 patspam joined #perl6
15:02 chez my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99);
15:02 chez does the above line look valid ?
15:04 masak does to me.
15:04 chez because I've not been able to get it running on any of the implementations
15:04 masak perl6: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99); say @s.perl
15:05 p6eval rakudo 446d49: OUTPUT«Null PMC access in find_method()␤in method Perl6Object::perl (src/gen_setting.pm:1812)␤called from method Any::map (src/gen_setting.pm:1399)␤called from method List::perl (src/gen_setting.pm:1399)␤called from Main (/tmp/oA3E2Udm8g:2)␤»
15:05 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "@s"␤    expecting "=", operator, ")", context, ":" or "("␤    at /tmp/QU2I8ES51K line 1, column 4␤»
15:05 p6eval ..elf 28206: OUTPUT«syntax error at (eval 125) line 3, near "(for"␤ at ./elf_h line 5881␤»
15:05 masak chez: no, they probably don't implement that yet.
15:05 PerlJam std: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99);
15:05 p6eval std 28206: OUTPUT«ok 00:02 38m␤»
15:05 rfordinal joined #perl6
15:06 chez ah
15:06 PerlJam chez: that's how you know if it's syntactically valid.
15:06 chez thanks
15:08 iblechbot joined #perl6
15:15 [particle]1 joined #perl6
15:18 cognominal joined #perl6
15:39 moritz_ but rakudo doesn't do list comprehensions yet
15:40 moritz_ afk
15:40 masak neither do Pugs or Elf, it seems.
15:45 carlin joined #perl6
15:47 carlin rakudo: use IO::Socket::INET; my $s = IO::Socket::INET.new; $s.open('localhost', 123456); $s.send('foo'); say "Lorem ipsum";
15:47 p6eval rakudo 446d49: OUTPUT«gethostbyname failure [localhost]␤Lorem ipsum␤»
15:48 TimToady masak: ss/fixed until April/fixed before April/  # or 'by April'
15:49 carlin rakudo: use IO::Socket::INET; my $s = IO::Socket::INET.new; $s.open('127.0.0.1', 123456); $s.send('foo'); say "Lorem ipsum";
15:49 p6eval rakudo 446d49: OUTPUT«Lorem ipsum␤»
15:49 carlin Hmm. Here the REPL just quitely dies.
15:50 masak TimToady: gracias. my non-nativeness shines through. :)
15:51 TimToady well, all languages are weird
15:51 masak
15:51 TimToady but to me, 'until' implies fixing something continuously up to that point
15:51 masak yes, I see that reading now.
15:51 TimToady and then in April we'll give up gixing them :)
15:51 masak fixed. TimToady++
15:51 TimToady gixed
15:52 masak :P
16:03 pmichaud good morning, #perl6
16:03 jnthn oh hai pmichaud
16:03 TimToady ö/
16:04 jrtayloriv joined #perl6
16:04 masak greetings, pmichaud
16:05 M_o_C What are the two dots for, TimToady? Some camelia related thing?
16:05 pmichaud TimToady now has a crown?  ;-)
16:06 pmichaud aha!  we need to sell Camelia "bug antenna" that people can wear at conferences :-P
16:06 masak or tiny antennae.
16:06 M_o_C More like attachable antennas :D
16:06 pmichaud kind of like the BSD horns :-)
16:06 cognominal joined #perl6
16:15 payload joined #perl6
16:20 colomon joined #perl6
16:20 TimToady std: @*foo >>->> 1
16:21 p6eval std 28206: OUTPUT«ok 00:03 38m␤»
16:21 TimToady colomon++
16:22 pugs_svn r28207 | colomon++ | [t/spec] Skip/todo now-broken tests after the div patch.
16:29 zamolxes joined #perl6
16:40 dalek rakudo: 9c449f6 | pmichaud++ | docs/spectest-progress.csv:
16:40 dalek rakudo: spectest-progress.csv update: 436 files, 14273 (69.3% of 20599) pass, 0 fail
16:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​c449f6390940d7c441b59c9ee9f651638677b75
16:45 jnthn Wow, over 14,000 :-)
16:46 pmichaud yes, but we're also back below 70% :-)
16:46 jnthn aww
16:46 pmichaud I've decided to re-run the statistics since the August release
16:46 jaffa8 you know guys, I am really surprised that you can keep it up doing what you do.
16:46 pmichaud I think it'll be a bit more accurate
16:47 pmichaud jaffa8: I'm surprised also :)
16:48 jaffa8 this thing is not finished in one day.
16:48 jaffa8 I am surprised that you are surprised.
16:59 TimToady we can't keep up what we're doing, but we do it anyway :)
16:59 TimToady but everyone has to find their own tortoise/hare balance point
17:00 PerlJam continuing despite the setbacks and "failures" is still quite amazing when you think about the mental energy that goes into those setbacks and "failures"
17:00 TimToady what amazes me is how many times I've rediscovered that fallbacks are a bad idea
17:01 TimToady which says something about inheritance :)
17:02 TimToady .oO(and what it says probably sounds a lot like "Liskov")
17:02 PerlJam fallforwards are always better than fallbacks (unless you happen to be standing in front of a deep pit ;)
17:02 TimToady I dunno, when we fall back in autumn I get an extra hour of sleep...
17:04 PerlJam Just apply the axiom of choice on your time slices and your sleeping/waking schedule will work itself out :)
17:04 PerlJam (and pick finer grained slices perhaps)
17:04 TimToady especially if you don't believe in it
17:04 takadonet one day this will all be over...
17:05 PerlJam takadonet: do you mean to say that one day perl 6 will be finished?!?  ;>
17:05 TimToady most likely in the morning, since asteroids are likelier then
17:06 takadonet PerlJam: That we have more then a few people working on rakudo
17:06 huf i was under the impression that "finished" only applies to languages in the sense "dead"
17:06 ysth left #perl6
17:07 TimToady Perl 4 is stable
17:07 * PerlJam drops a pebble in the meme pool intiating more ripples of nuance
17:07 huf isnt it pretty rare tho?
17:08 PerlJam TimToady: you should chide Allison for trying to destabilize Perl 1.
17:19 sri_kraih joined #perl6
17:22 Zloy_russkiy joined #perl6
17:29 cdarroch joined #perl6
17:54 charsbar perl6: say 10!
17:54 p6eval elf 28207: OUTPUT«Parse error in: /tmp/wCZ6T6Ofr7␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say 10!␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤  STD_red/std.rb:210:in
17:54 p6eval ..`_UNIT'␤…
17:54 p6eval ..rakudo 446d49: OUTPUT«Confused at line 2, near "!"␤in Main (src/gen_setting.pm:3469)␤»
17:54 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "!"␤    expecting "_", fraction, exponent, term postfix, operator, ":" or ","␤    at /tmp/NKVd5uPvoM line 1, column 7␤»
17:57 colomon rakudo: sub postfix:<!>($n) { [*] 1..$n; }; say 10!;
17:57 PerlJam rakudo: sub infix:<!>($n) { return [*] 1..$n };   say 10!;
17:57 PerlJam oops
17:57 PerlJam colomon++
17:57 PerlJam dunno why I typed infix
17:57 p6eval rakudo 446d49: OUTPUT«3628800␤»
17:57 p6eval rakudo 446d49: OUTPUT«Confused at line 2, near "!;"␤in Main (src/gen_setting.pm:3469)␤»
17:57 alester joined #perl6
17:57 stephenlb joined #perl6
17:57 colomon I was faster typing because I left off the "return".  ;)
17:57 charsbar aha, thanks, colomon++
17:57 PerlJam alester++ thanks for the new ack  :)
17:58 sm` joined #perl6
17:59 alester you're welcome
17:59 colomon I don't think factorial is a default operator in Perl 6 -- it's so simple to write anyway that it's hardly worth having it be part of the standard...
18:00 PerlJam colomon: though it might end up in a module or a perl 6 distribution as Math::Notations  or something.
18:00 colomon PerlJam: It's not really very useful without bignums anyway...
18:01 charsbar I'm translating jnthn's slides for YAPC::Asia, without seeing his code, and just wanted to be confirmed 10! was implemented or not
18:03 pmichaud charsbar: postfix:<!> is not part of the default library, no
18:03 pmichaud charsbar: however, postfix:<!> can be defined in Rakudo and it does work
18:03 charsbar pmichaud: ok, thanks
18:05 rblasch joined #perl6
18:05 colomon I almost think it's worth more to leave it out so defining it can be an example!
18:06 moritz_ colomon: aye ;-)
18:07 arthur-_ joined #perl6
18:07 M_o_C Another question, is it normal that RT will display emails unobfuscated when you don't create a new issue via the web interface?
18:09 azawawi joined #perl6
18:09 __ash__ joined #perl6
18:12 rfordinal left #perl6
18:13 gbacon joined #perl6
18:14 TimToady colomon: note that Int is defined to be bignum already
18:15 TimToady it's just nyi
18:16 __ash__ hm.... a fresh checkout of rakudo then running perl Configure.pl --gen-parrot fails on OS X 10.6, something seems wrong with parrot it seems
18:17 moritz_ __ash__: please try to cd parrot; svn up; make
18:17 M_o_C joined #perl6
18:17 pmichaud I think Rakudo might be currently tied to a version of Parrot that fails to build on OS X
18:18 pmichaud I'm fine with bumping PARROT_REVISION if we can prove that spectests still pass
18:18 moritz_ rakudo even passes spectests with the patches from TT #757
18:19 __ash__ parrot with the latest revision builds
18:19 __ash__ i am building rakudo, then i'll run tests, one sec
18:19 moritz_ I'll spectest, if it passes I'll bump the parrot revision
18:19 pmichaud moritz++
18:21 moritz_ I just answered a usenet post in de.comp.lang.perl.misc about how to develop applications with Rakudo, what tools to use etc ;-)
18:22 pmurias joined #perl6
18:23 __ash__ is there a coverage tool for perl6 yet?
18:25 M_o_C moritz_: Maybe turn it into a blog post?
18:25 alester moritz_: Or give me a URL to it so I can Perlbuzz Tweet it.
18:26 colomon TimToady: I know, I am eagerly awaiting bignum support so I can play around with those Project Euler number theory problems.  :)
18:27 __ash__ with the most current svn checkout of parrot make test results in 0 failures, i am running spectest now
18:27 pmurias colomon: be brave, write your own bignumbs ;)
18:27 colomon pmurias: Don't think I haven't thought about it!
18:28 colomon With operators working, it should be possible.
18:28 Tene TimToady: Why is ' not allowed at the end of an identifier?
18:28 colomon But it's not like I have a shortage of Perl 6 projects at the moment.
18:28 arnsholt Take the Perl 5 bidnum modules and port them? =)
18:30 nbrown joined #perl6
18:30 colomon moritz_: I needed to add a perl Configure.pl in the parrot directory to get your suggested fix to work.  But parrot is happily compiling now...
18:31 pmurias Tene: do you need a ' at the end for anything?
18:32 pmurias perl6: $foo'bar = 123;say $foo'bar;
18:32 p6eval pugs: OUTPUT«*** ␤    Unexpected "'"␤    expecting "::"␤    Variable "$foo" requires predeclaration or explicit package name␤    at /tmp/F0pNVtqs3k line 1, column 5␤»
18:32 p6eval ..rakudo 446d49: OUTPUT«Symbol '$foo'bar' not predeclared in <anonymous> (/tmp/pHXoV8bZ2p:2)␤in Main (src/gen_setting.pm:3469)␤»
18:32 p6eval ..elf 28207: OUTPUT«Parse error in: /tmp/a7nRgluv2x␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: $foo'bar = 123;say $foo'bar;␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
18:32 p6eval ..STD_red/s…
18:32 rbaumer joined #perl6
18:32 pmurias perl6: my $foo'bar = 123;say $foo'bar;
18:32 p6eval elf 28207: OUTPUT«Parse error in: /tmp/FWJoWT7RXG␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: my $foo'bar = 123;say $foo'bar␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
18:32 p6eval ..STD_red…
18:32 p6eval ..rakudo 446d49: OUTPUT«123␤»
18:32 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "'"␤    expecting word character, "?", "!", trait, "=", infix assignment, term postfix or operator␤    at /tmp/YoRjz5eCD6 line 1, column 8␤»
18:32 Tene pmurias: It might be kinda neat to be able to say, like, my $a' = f($a);
18:32 colomon That is a common math idiom.
18:33 moritz_ M_o_C, alester: http://groups.google.com/group/de.comp.lang.pe​rl.misc/browse_thread/thread/abbf6e06c0b3b253# (it's German though, as the de. implies ;-)
18:33 pmurias math identifier are bad
18:33 Tene bad?
18:33 pmurias * identifiers
18:33 alester ARGH
18:33 pmurias they are all one lettered
18:37 ruoso std: my $a; sub foo {...}; my $a' = foo($a);
18:37 p6eval std 28207: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/5qo9G1SJhP line 1:␤------> [32mmy $a; sub foo {...}; my $a[33m⏏[31m' = foo($a);[0m␤    expecting any of:␤  POST␤   bracketed infix␤    infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       shape definition␤
18:37 p6eval ..standard stopper␤ statement m…
18:37 ruoso std: my $a; sub foo {...}; my $a'b = foo($a);
18:37 p6eval std 28207: OUTPUT«ok 00:03 38m␤»
18:37 colomon pmurias: but in a lot of math programming contexts, one letter is all that is needed to clearly express what is going on.
18:37 ruoso yeah... you cannot finish the name with the special char
18:38 mberends joined #perl6
18:38 colomon Perhaps there is an appropriate Unicode symbol that is legal for a variable name?
18:38 pmurias colomon: you can add a _ , like $a_ ;)
18:42 colomon moritz_, __ash__: After building the latest version of parrot, I'm getting a Bus error executing
18:42 __ash__ Yeah, i got it on 2 tests, the rest so far are fine
18:43 moritz_ colomon: did you reconfigure (or clean) rakudo after that?
18:43 finanalyst joined #perl6
18:43 colomon No.  How would I reconfigure?  (And do I need to make install parrot?)
18:44 moritz_ in rakudo, do a rm -rf parrot_install/*
18:44 moritz_ then cd parrot
18:44 moritz_ make install install-dev
18:44 moritz_ cd ..
18:44 moritz_ perl Configure.pl && make -j 3 install
18:45 __ash__ hmmm, i have to go, i'll come back and let you guys know if any other tests have issues, i did a clean install and I am having the buss error like colomon
18:45 colomon moritz_: make install install-dev appears to be trying to install at /usr/local/include/parrot  ?
18:45 M_o_C alester: Basically moritz tells him that proto doesn't really install modules which it downloads right now and that he tends to fixes this with BEGIN { @*INC.push: 'lib', '../svg/lib' } as setting perl6lib is occasionally annoying. However moritz mentions that masak and mberends will soon implement this feature in proto. Finally he suggests to convert the modules to PIR as Rakudo is currently rather slow and points out that you need to beware that
18:47 M_o_C Might it be that my last message got cut? My client displays it correctly but I got a server message about some truncation...
18:47 pmichaud truncated at "beware that"
18:48 M_o_C ...beware that rakudo will prefer *.pm files over the according *.pir variants.
18:48 M_o_C <EOF> ;)
18:48 pmichaud actually, rakudo prefers *.pir over *.pm
18:48 pmichaud otherwise Test.pir would never get used
18:49 M_o_C True, my mistake, he got it right. Sorry.
18:49 nbrown joined #perl6
18:49 moritz_ if that's of general interest I can turn that into a blog post.
18:49 moritz_ (in English)
18:50 M_o_C Well,  seems like little content for a blog post to me. I'd wait till the install-feature gets implemented in proto.
18:51 * mberends has just resumed work on the proto installed-modules branch :)
18:52 M_o_C moritz_: I hope I got the other parts of your message right in my translation :x
18:52 colomon moritz_: All the mucking about with parrot wasn't getting me anywhere, so I've just bumped my local PARROT_REVISION to the latest, and I'm trying again with --gen-parrot.
18:53 moritz_ M_o_C: yes, you did (afaict :)
18:55 pmurias ruoso: have you thought what should REFERENCE/RELEASE on the p5 interpreter do?
18:55 ruoso pmurias, it depends if we're going to allow arbitrary creation of new interpreters
18:55 ruoso if we do, we need to make the refcounting
18:57 azawawi moritz_: could u apply this small rakudo patch to ignore some win32 files, http://gist.github.com/183146 ?
18:57 nbrown_ joined #perl6
18:58 moritz_ azawawi: I'm off to cook some lunch, but I'll do later on
18:59 azawawi moritz_: thanks
19:01 nbrown joined #perl6
19:04 colomon Bumping build/PARROT_REVISION to 41159 and then doing a --gen-parrot build has gotten me a rakudo that passes "make test".  Working on "make spectest" now.
19:05 moritz_ my spectest just finished - lots more "Non-zero wait status: 11"
19:05 moritz_ about 50 or so, I'd gues
19:05 moritz_ ss
19:06 dalek rakudo: ef31fec | moritz++ | .gitignore:
19:06 dalek rakudo: add some windows specific files to .gitignore, azawawi++
19:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​f31fec556364f6aada34a5f9c1c707d75174394
19:06 dalek rakudo: 62879bb | moritz++ | :
19:06 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
19:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​2879bb25e6ecc2aa5dcc8f376eff7d974386c50
19:12 masak joined #perl6
19:12 masak time for some fun with databases!
19:13 lmc joined #perl6
19:14 nbrown joined #perl6
19:22 __ash__ joined #perl6
19:27 Tene yay masak!
19:28 masak yay Tene!
19:28 masak I'll now begin my exploration of Squirrel-space.
19:30 Tene Mysteeeeerious!
19:31 moritz_ over the weekend I did quite some SVG::Plot hacking
19:32 moritz_ and as I added legend boxes to the lines plots I noticed that the code became more and more unmaintainable
19:32 moritz_ mostly the positioning code
19:32 pmurias ruoso: will we use the p5 undef as the p6 undef?
19:33 moritz_ that it would be much cleaner to put certain things (legend box, title, the main plot etc.) in boxes, and position them afterwards when I know how much space they need each
19:33 moritz_ s/^/I realized /
19:33 moritz_ and then I looked at the scruffy code again
19:34 moritz_ and noticed that that's exactly what the Scruffy::Components are ;-)
19:35 moritz_ so my motivation for porting scruffy to Perl 6 has just increased
19:40 masak Tene: I started by porting the Short Example in the Sequel README.pod: http://github.com/masak/web/blob/2a3469525a418107​94d650458d058dedf1fb49c2/drafts/squirrel-example
19:40 masak I think the functionality needed to make that run won't be too difficult to implement.
19:41 masak maybe I'll get there in the next 24 hours or so.
19:41 masak moritz_++
19:42 masak Tene: the syntax on lines 5-9 might well change once we have macros and modifiable grammars.
19:46 masak now... what's the Simplest Thing That Could Possibly Work?
19:46 moritz_ say "hello, world";
19:46 masak I keep thinking I want to redo the exercise from last week, but with Sequel/Squirrel underpinnings.
19:47 masak i.e. use Text::CSV as a backend.
19:47 masak then Tene could take a look at how I did that, and hook up sqlite similarly.
19:47 * masak re-reads last Web.pm blog post
19:49 colomon moritz_: I only get two failures in make spectest (OS X still) -- S02-whitespace_and_comments/unicode-whitespace.t and S04-declarations/my.t.
19:49 masak moritz_: 'hello world' in this field would kinda correspond to the example I just translated.
19:49 nbrown joined #perl6
19:50 moritz_ colomon: could you please nopaste the summary of the failed tests?
19:51 lisppaste3 colomon pasted "OS X failures with latest parrot and --gen-parrot" at http://paste.lisp.org/display/86772
19:51 jan_ joined #perl6
20:00 cmv joined #perl6
20:10 masak rakudo: class A {}; multi infix:<<< << >>>(A $a, $b) { "Feed $b into $a" }; say A << 42
20:10 p6eval rakudo 446d49: OUTPUT«Confused at line 2, near "<< 42"␤in Main (src/gen_setting.pm:3469)␤»
20:10 masak that'll never work, will it?
20:10 masak std: class A {}; multi infix:<<< << >>>(A $a, $b) { "Feed $b into $a" }; say A << 42
20:10 p6eval std 28207: OUTPUT«[31m===[0mSORRY![31m===[0m␤(Possible runaway string from line 1)␤Malformed block at /tmp/n0yZN0IkUs line 1 (EOF):␤------> [32m, $b) { "Feed $b into $a" }; say A << 42[33m⏏[31m<EOL>[0m␤    expecting escape␤Other potential difficulties:␤  Variable $a is not predeclared at
20:10 p6eval ../tm…
20:10 masak right.
20:11 masak std++ # nLTA
20:12 kidd joined #perl6
20:12 rapacity joined #perl6
20:12 pmichaud I'll try latest parrot on my system.
20:13 masak hm, this CSV idea of mine might not be very good after all... :/
20:13 masak perhaps better to write tests and then make these pass for sqlite instead.
20:16 patspam joined #perl6
20:17 sevvie_ joined #perl6
20:18 Tene masak: even failing tests are helpful.
20:18 meppl joined #perl6
20:18 Tene pmichaud: is it possible to override keyed lookup for class instances in rakudo?
20:18 pmichaud Tene: you mean postcircumfix:<[ ]>  and postcircumfix:<{ }>  ?
20:19 Tene Yes.
20:19 Tene The latter, specifically.
20:19 pmichaud I'm not sure if it's possible yet, although it's supposed to be getting there soon.
20:19 masak Tene: yes, no doubt. what suddenly struck me, though, is that Squirrel is a frontend for SQL databases, and I might end up in a position where I'd need to implement more SQL in CSV than I think would be fun.
20:20 Tene rakudo: class A { multi postcircumfix:<{ }> { say 'omg lol' } }; my A $a .= new(); my $x = $a{'hi'};
20:20 p6eval rakudo 446d49:  ( no output )
20:20 Tene masak: Heh.
20:20 masak so I'll go for the sqlite for now.
20:20 Tene masak: pm says we can't get the $db<items> thing working yet, but maybe soon.
20:21 masak ya, I saw.
20:21 masak workaround is a method for now. no prob.
20:21 Tene well, I guess we could play with trying to bless a hash or something...
20:21 Tene but I wouldn' tbe too hopeful.
20:21 TimToady std must've parsed that as say A < < 40
20:22 Tene masak: I'd be inclined to just make create_table return an object.
20:22 Tene and also have, say, a table method... which is what you just said.
20:22 pmichaud I might be able to get postcircumfix:<{ }> working rsn
20:22 pmichaud (but don't wait for me on that... lots of stuff on my plate this week)
20:23 Tene pmichaud: Don't worry, I know better than that. :)
20:23 frettled Except for masak, PerlJam and me, does anybody else have a religious relationship with the date/time specification and implementation?  :D
20:23 pmichaud frettled: yes.
20:23 mberends frettled: no
20:23 masak Tene: I think I have a pretty good grasp of Sequel internals already. 'Dataset' is the cool tech in Sequel.
20:24 pmichaud frettled: see also 'autarch' :)
20:24 masak frettled: mine isn't religious... it's more of a science fiction relationship.
20:25 frettled pmichaud: EBADREF :)
20:25 pmichaud it will not surprise me if date/time specs end up being another of those "bikeshedding is over, please live with the result" sorts of areas of the spec
20:25 Tene masak: I'd strongly recommend that you get tests in for something first, and then look at wiring up SQLite, 'cos if you don't get that far, I can do the SQLite wiring tonight.
20:25 pmichaud frettled: I'll find a better ref -- one moment
20:25 masak pmichaud: you mean before or after I'm done with my rewrite? :)
20:26 masak Tene: oki. almost done writing first test file.
20:26 PerlJam masak: working code trumps all bike-shedding  :)
20:26 masak PerlJam: that's why I was working on a Rakudo branch in parallel.
20:27 masak it was a really good plan. then I ran out of tuits.
20:27 PerlJam no plan survives lack of tuits.
20:28 frettled :)
20:28 * PerlJam just realized he's been walking around all day with a 3cm thorn stuck in his shoe
20:28 frettled good thing it was only the shoe
20:28 PerlJam (honestly I've been sitting most of the day  :)
20:28 pmichaud frettled: http://www.nntp.perl.org/group/perl.​perl6.language/2009/02/msg30780.html
20:29 pmichaud autarch == "Dave Rolksy"
20:29 pmichaud but that thread also points out people who have strong interests in date/time :)
20:29 frettled pmichaud: aha, that was implied in a discussion earlier today, but I didn't quite get it.
20:29 masak 'should not handle [...] string parsing'. uh oh.
20:30 PerlJam masak: again, working code ...
20:30 masak aye. will do.
20:30 pmichaud afk for a bit
20:30 masak actually, I don't think it'll be that hard. Perl 6 is pretty good at parsing stuff.
20:30 PerlJam masak: DateTime.new(:year(2010), :month(10), :day(28)) is quite annoying IMHO
20:30 masak nod.
20:30 masak I know!
20:30 moritz_ aye
20:31 moritz_ I do think that parsing "Tue Sep  8 22:31:36 CEST 2009" might be a bad idea though
20:31 PerlJam indeed
20:32 PerlJam (at least initially  :)
20:32 masak moritz_: I'm planning to parse large parts of ISO 8601.
20:33 masak the nice thing about that standard is that it's both well-defined and degrades nicely according to human expectations.
20:33 masak thus, '2010' is a valid date.
20:33 masak '2010-04' too.
20:34 moritz_ I've often been pleasantly suprised how much thoughts most ISO and RFC authors have put into their subject
20:34 moritz_ (same for SVG btw)
20:35 masak verily.
20:35 masak not all committees are rotten.
20:36 M_o_C Which are? ;)
20:36 moritz_ many administrative I've dealt with
20:36 [particle] 802.11
20:36 M_o_C Hm, ok, my thoughts were stuck with software-world so nevermind :x
20:37 M_o_C s/with/in/
20:37 frettled Okay, I've read the discussion from February (rather quickly).
20:38 frettled From what I can see, the leap second problem is taken rather lightly, as is usability.
20:38 frettled masak: let's do something, show it to people, and see what happens. :)
20:38 masak frettled: you're on :)
20:38 masak did I give you a commit bit already?
20:39 moritz_ (is there another repo I should add to hugme? ;-)
20:39 pmurias moritz_: the xpath spec seems to be pretty badly written
20:39 masak moritz_: please.
20:39 moritz_ masak: uhm, which one?
20:39 masak moritz_: https://github.com/masak/temporal-flux-perl6syn
20:39 moritz_ ok
20:39 moritz_ who should be able to hand out commit bits?
20:39 moritz_ same as perl6-examples?
20:39 masak moritz_: sure.
20:40 masak frettled: it's 'jani' on github, right?
20:41 frettled masak: yep
20:41 frettled masak: I think you gave me a commit bit to some project or other, but I don't quite recall now :)
20:41 masak frettled: consider yourself commitbitted.
20:41 masak .oO( 'commitbitten'? )
20:42 frettled heh, yes, the latter :D
20:42 moritz_ ssh: connect to host feather2.perl6.nl port 22: No route to host
20:42 moritz_ that's bad.
20:42 masak hugme: hug frettled
20:42 masak ENOHUGME
20:42 * frettled hugs masak without intermediate hugmes.
20:43 masak frettled: welcome aboard :) let's create some Temporal flux :D
20:43 frettled masak: I cannae change the laws of physics, cap'n!
20:43 moritz_ Juerd: it seems that feather2 is down - could you please take a look? (at least I get "No route to host")
20:43 TimToady which is why we use TAI seconds
20:43 masak frettled: did I mention I'm allergic to speccing by means of class definitions?
20:43 frettled TimToady: how do we get them from the OS?
20:43 frettled masak: hehe
20:44 frettled masak: (no, you didn't)
20:44 TimToady if the OS is inaccurate, it must be sterilized
20:44 masak I'd like that to go away in the process.
20:44 frettled The OS is probably adjusted by NTP, and doesn't know anything about TAI or whatever.
20:44 masak there's nothing wrong with talking about the methods in prose, or listing them a la S29.
20:44 frettled mm
20:44 masak but having actual implementation code in the methods _is_ wrong, by me.
20:44 frettled definitively
20:45 TimToady indeed, but if the OS is in that frame of mind, then we just do our best to guess the atomic seconds and let the civil time be as inaccurate as it already is :)
20:45 TimToady but atomic seconds are the gold standard
20:45 masak TimToady++ # pragmTAIc
20:45 frettled TimToady: well, we _can_ know at least one thing, and that is when the leap seconds were supposed to be added.  If they weren't added by the OS at that time, then that becomes a User Problem.
20:45 Tene TimToady: What's the reason for forbidding ' at the end of identifiers?
20:46 mikehh rakudo (62879bb) builds on parrot r41161 - make test / make spectest (up to 28207) PASS - Ubuntu 9.04 i386 (g++)
20:46 hercynium joined #perl6
20:46 mikehh rakudo - t/spec/S03-operators/arith.rakudo - TODO passed:   131
20:46 mikehh rakudo - t/spec/S12-attributes/class.rakudo and t/spec/S14-roles/basic.rakudo - Non-zero wait status: 11 (Segfault after passing tests)
20:46 TimToady if we know that a leap second was added, and about when it was added, and how fast the time algorithm fudges to the new setting, we can interpolate how far off the OS is
20:46 frettled So as long as we stick to pretending to know when the leap seconds were supposed to be added, and trust the system's pretense of current time (which would include the leap seconds, right?)
20:47 PerlJam frettled: We just need to install a GPS on every computer so that they not only know what time it is, but where they are in the world.  :)
20:47 frettled TimToady: knowing when a leap second was (supposed to be) added is a matter of keeping a LUT for dates; they've always been added at the same time of day.
20:47 TimToady or, at least, where they were N milliseconds ago...
20:47 frettled PerlJam: SMOP :D
20:47 pmichaud if keeping dates, might as well keep times.
20:47 frettled pmichaud: yes, that's a matter of future-proofing it.
20:48 TimToady frettled: which is why I with they'd abolish civil leapseconds, and just jump a few minutes every century
20:48 frettled we would just need to keep the look-ups _fast_
20:48 PerlJam If we're to do timezones, we have to keep times around anyway as they vary as a function of time too  ;)
20:48 nbrown joined #perl6
20:48 frettled TimToady: that would be way too pragmatic for astronomers :D
20:48 TimToady it's not fair, since the astronomers already have their own atomic clocks
20:49 frettled PerlJam: oh, yes, considering that $country changes their timezone whateverness occasionally
20:49 TimToady it's a complete double standard
20:49 * ruoso can't really see many cases where UTC and local time zones won't be enough...
20:49 frettled so the new package should be called DoubleStandard, and when we want to access a time, we need: DoubleStandard::Date::Time.new()
20:49 frettled *g,d&r*
20:50 TimToady yes, but if you want to run a process for exactly 42.68 seconds, you like those seconds not to be varying in length
20:50 frettled ruoso: and the problem is that UTC _is_ leap second adjusted
20:50 ruoso but the hardware clock doesn't know about leap seconds
20:50 frettled the hardware clock doesn't, but when the system sets the hardware clock according to leap seconds, _something_ happens.
20:51 TimToady "The time is a lie.  The time is a lie.  The time is a lie."
20:51 PerlJam TimToady: gravitational distortion notwithstanding?   Maybe you *do* want their lengths to vary appropriately.
20:51 frettled let's say that you have some sort of process running between 2008-12-31T23:59:59 and 2009-01-01T00:00:15, how long does that take?  :D
20:51 TimToady if the atomic clock varies, then sure :)
20:51 PerlJam frettled: in whose frame of reference?
20:52 frettled PerlJam: hee-hee.  Within the same frame of reference.
20:52 ruoso frettled, my impression on all this leap seconds thing is that it is mostly ignored by non-astronomers
20:52 frettled ruoso: yes, because we just synchronize our watches occasionally
20:52 ruoso is there any DateTime lib that cares about leap seconds ni UTC?
20:53 pmichaud it is considered by missile designers, though :)
20:53 PerlJam ruoso: sure ... I mean we've only had what?  23 leap seconds?  what's 23 seconds in the grand scheme of things?
20:53 PerlJam :-)
20:53 pmichaud it's also considered by gps navigators, iiuc
20:54 frettled If we keep a LUT of the leap seconds added, we'll be past-proof and future-proof, and it's possible to ignore it for those who don't want to believe in leap seconds.
20:54 ruoso I mean, ntp adjustments will represent a bigger threat to "how much time something took" than leap seconds
20:54 PerlJam ruoso: 'tis true.
20:54 TimToady ruoso: correct
20:54 frettled ruoso: Yes, currently, that is true.
20:54 frettled But that assumption is not future proof.
20:55 TimToady I think in the future, our computers will only get a better idea of atomic time, not worse
20:55 PerlJam TimToady: unless we nuke ourselves into the bronze age or so
20:55 ruoso TimToady, but our computers currently only have UTC idea of time
20:55 TimToady it would be better to converge on that than on sloppy civil time
20:55 TimToady screw our computers currently
20:55 pmichaud PerlJam: "nuke ourselves" means we just get a new definition of atomic time :)
20:56 TimToady if they're gonna be that inaccurate, I don't mind the inaccuracy of guessing TAI and backtranslating to UTC
20:56 TimToady but I want Perl 6's *idea* of time to be uniform
20:56 frettled quite!
20:56 TimToady atomically speaking
20:56 pmichaud TimToady: implementations are allowed to cheat, yes?
20:57 PerlJam frettled: Listen to whatever TimToady says because according to Tim O'Reilly, he can "see around corners"  and I bet even if those corners are more meta-physical that's still true  :)
20:57 ruoso TimToady, the easiest way to do that is to avoid epochs at all
20:57 TimToady to the extent that they have to, sure, but the legal fiction is that it's TAI
20:57 pmichaud TimToady: that works for me :)
20:57 frettled PerlJam: :)
20:57 TimToady ruoso: the easiest way is to not think about it at all :P
20:57 pmichaud I'm all in favor of legal fictions.  Perl 6 is full of them.  We'll probably get sued over them.
20:57 * masak got the test to fail
20:58 masak Tene: still there?
20:58 frettled pmichaud: good grief ;)
20:59 pmichaud hmmmmmm
20:59 ruoso TimToady, you mean: say '2008-12-31 23:59:59.000'.DateTime - '2009-01-01 00:00:00.000'.DateTime # prints 2
20:59 pmichaud something I did broke "make spectest" on my system
20:59 pmichaud as in, "make spectest" itself failed in TAP/Multiplexer.pm line 139
20:59 * pmichaud tries again.
21:00 TimToady I don't know what DateTime does, but if you translate those to Instant and subtract, you get a Duration of 2
21:00 ruoso TimToady, that was just a silly way to represent "cast to instant"...
21:00 TimToady assuming the translation is accurate, of course
21:00 masak phenny: tell Tene that I just pushed a failing test to the Web.pm repo. due to general tiredness, I'll have to continue this foray tomorrow. if you can do something with what's there already, great. if not, I'll see to it tomorrow.
21:00 phenny masak: I'll pass that on when Tene is around.
21:00 masak good night, people.
21:01 frettled good night, masak (I consider you people, too)
21:02 ruoso TimToady, but I guess we need to qualify the system used to represent that instant
21:02 pmichaud duration of 2 seems correct to me.  Because the second after 2008-12-31 23:59:59.000 is 2008-12-31 23:59:60.000
21:02 frettled TimToady: I think that's probably the most pragmatic way of looking at it.  Let the OS worry about what time it is now, but when Perl 6 needs to do calculations on time, worry about leap seconds then.
21:02 frettled pmichaud: yup
21:04 TimToady ruoso: it's a Rat number of TAI seconds, as accurate as you care to make it
21:05 TimToady so we're just using the TAI epoch implicitly
21:05 PerlJam "What time is it?"  "8:30 epsilon 1500 seconds"
21:05 pmurias frettled: do os'es take leap seconds into account?
21:06 pmichaud where "epsilon 1500 seconds" == "ish"
21:06 TimToady varies
21:06 PerlJam pmichaud: many do
21:06 PerlJam oos
21:06 PerlJam pmurias: many do
21:06 frettled pmurias: NTP takes care of it for many of them
21:06 frettled pmurias: so it depends on whether you consider ntpd to be part of the OS or not
21:06 TimToady where "takes care" means "papers over the difficulty"
21:06 pmichaud regardless, we *know* the OS doesn't have the correct time :-)
21:06 pmichaud rephrase
21:07 pmichaud we know that many OSes don't have the correct time
21:07 PerlJam Well, without a better time source, the OS is all we have :)
21:07 Whiteknight joined #perl6
21:07 pmichaud right, but our HLL isn't limited in its knowledge of time to the time source
21:08 pmichaud HLLs are all about putting abstractions over OS, library, and hardware :)
21:08 pmichaud even if we said "Perl keeps its time in UTC", the answer to ruoso's question would still be "duration of 2"
21:09 moritz_ and I thought HLLs were all about -Ofun. Now you've spoilt me.
21:09 TimToady you just have the wrong idea of fun :)
21:09 pmichaud moritz_: abstractions over OS, library, and hardware increase the -Ofun for larger numbers of people :)
21:09 moritz_ ;-)
21:09 pmichaud and for some of us, building those abstractions are our strange notion of -Ofun
21:09 moritz_ pmichaud: that sounds like a side, not a goal ;-)
21:09 pmichaud ah
21:09 pmichaud I'll rephrase then.
21:10 pmichaud HLLs are about putting abstractions over OS, library, and hardware
21:10 pmichaud *Perl 6* is about doing it with a lot of -Ofun
21:10 ruoso I think bottom line is, Perl doesn't need to "keep its time"... it's just "aware of leap seconds"
21:10 ruoso (which will probably make its time calculations to deviate from most datetime libraries currently implemented'
21:11 pmichaud we should probably make a library that emulates the behavior of "most datetime libraries", or people's notions of "civil time"
21:11 pmichaud but Perl 6 should probably use TAI as its standard
21:11 ruoso pmichaud, but note that UTC includes the leap seconds itself
21:12 pmichaud ruoso: yes -- I think I did note that above.
21:12 TimToady so at minimum, a Perl 6 has to know (approximately) how its OS time maps to TAI on Dec 31, and how it will map by the end of Jan 1, and hopefully how to interpolate when != 86400
21:12 frettled mm
21:12 ruoso "but the number of seconds in a minute can be 60, or sometimes 61 or 59."
21:12 pmichaud yes, I did note that above.
21:12 TimToady there are no minutes in TAI
21:12 frettled that's secondary
21:12 frettled ;)
21:13 * frettled imagines people writhing around in pain, groaning «Ze puns!  Ze puns!»
21:13 ruoso my point is: we don't need to explain much, except that we work with UTC as spec and take care of leap seconds
21:13 TimToady no days, either, but we can be reasonably certain that NTP will have "fixed" the clock by the end of Jan 1
21:14 pmichaud ruoso: why not work with TAI as spec, then?  It has the advantage of being much more continuous than UTC
21:14 TimToady and it'd be nice if we had a clue about how fast it fixes it
21:14 TimToady old BSD used to change the clock by 10% till the time was adjusted, for instance
21:14 pmichaud either way we have to take care of leap seconds
21:14 nbrown joined #perl6
21:14 ruoso in my experience people usually mess up when they work with epoch times
21:15 TimToady define "mess" that does not put the blame on inaccurate civil time
21:15 ruoso like: $time += 86400 while day_of_month($time) != 1;
21:15 pmichaud that's from a misconception that a "day" is 86400 seconds
21:15 pmichaud which is false even from a UTC perspective
21:15 ruoso precisely...
21:15 TimToady but true from the typical Unix box :)
21:16 ruoso that's why I mean not using epoch, but a full instant spec
21:16 frettled :)
21:16 ruoso TimToady, nah... most machines do use timezone configs nowadays
21:16 TimToady Perl 6 should just fail to compile any program containing 86400
21:16 ruoso heh
21:16 huf YES
21:16 pmichaud what about programs that are checking to see if your program is using 86400?  ;-)
21:17 TimToady those should fail to fail
21:17 ruoso I'm not arguing against TAI
21:17 moritz_ pmichaud: you should know how to write a regex that matches 86400 and doesn't contain it as a substring ;-)
21:17 ruoso I'm arguing to promote the use of ISO8601 timestamps instead of epoch times
21:17 PerlJam is that like an inverse quine?
21:18 iblechbot joined #perl6
21:18 moritz_ PerlJam: something along these lines, yes ;-)
21:18 TimToady you're not arguing against epoch times, you're arguing against epoch durations
21:18 ruoso specially because ISO8601 takes timezones into account
21:19 ruoso I'm arguing against epoch math
21:19 ruoso (for most of their uses)
21:20 TimToady sure, civil time needs to be calculated its own way, since += day isn't a constant
21:20 pmichaud this reminds me very much of the problem of calculating "the length of a string"
21:20 ruoso pmichaud, precisely
21:20 frettled hehe
21:20 ruoso my point is exactly the same as why a string doesn't have a encoding
21:20 TimToady violent agreement
21:20 frettled My agreement is merely violet.
21:21 ruoso TimToady, yes and no...
21:21 ruoso I'm talking about user's education
21:21 TimToady nevertheless, if your string doesn't have a canonical encoding, you're hosed
21:21 Juerd moritz_: I've rebooted feather2 and it works again now.
21:21 payload joined #perl6
21:21 TimToady TAI is our canonical encoding
21:21 ruoso TimToady, but that's hidden inside the implementation for strings
21:22 TimToady Instants and Durations are TAI time
21:22 Juerd moritz_: Rebooting again, after reconfiguring libc6
21:22 PerlJam Juerd++
21:22 __ash__ is there a list of valid --trace=[flags] anywhere?
21:22 Juerd moritz_: echo 'hwcap 0 nosegneg' > /etc/ld.so.conf.d/libc6-xen.conf && ldconfig
21:22 pmichaud __ash__: they're the parrot trace flags
21:22 pmichaud 1 is "all opcodes"
21:22 pmichaud 4 is "subroutine entry/exits"
21:22 pmichaud those are the only two I've ever found useful.
21:22 __ash__ oh, okay, got it
21:23 Juerd moritz_: Done, ready :)
21:23 pmichaud it's also often useful to do   Q:PIR { trace 1 }; ...; Q:PIR { trace 0 };
21:23 ruoso TimToady, TAI doesn't store the timezone originally used
21:24 TimToady then don't use it to store timezones
21:25 ruoso but if the standard Instant is TAI, the default is to loose the tz info
21:25 ruoso (which is almost the same mistake Java API did with the Date type)
21:27 ruoso (and is analogous to saying "every string is utf8")
21:27 frettled If you need to store a specific instant in relation to local time, it seems reasonable to me that you do not store an Instant, but instead store a different type.
21:28 frettled That is, we can provide another mechanism for storing that instant.  That mechanism can be to store an ISO 8601 time _and_ an Instant.
21:28 ruoso frettled, ISO8601 *is* an Instant
21:29 ruoso it's just a fully-qualified instant
21:30 PerlJam ruoso: But I wanted a femto-second sized instant!
21:30 TimToady PerlJam: sorry, your instant will be off by an hour because the timezone changed
21:30 frettled ruoso: ISO 8601 is presentation, not representation
21:31 ruoso frettled, sure, but it has an associated data model
21:31 frettled (strictly speaking, ISO 8601 is considered representation, but …)
21:32 frettled Anyway, the point is: store the time both as TAI and UTC + time zone spec, if knowing the specific point in time is important.
21:33 ruoso frettled, you don't need to store both at the same tiem
21:33 ruoso they are easily convertable
21:33 TimToady spacetime is a unity in relativity, but for most purposes we'd like to track them separately in Perl 6
21:34 frettled ruoso: except that, as you pointed out, if you don't store time zone info, you lose that.
21:34 ejs joined #perl6
21:34 PerlJam If the user needs to know the provenance of the time information, that's one thing, but Perl often shouldn't except to make a convient representation to the user :)
21:34 ruoso frettled, you could as well store TAI+TZ
21:34 frettled I must admit that I was a bit quick at answering, yes, TAI + TZ would probably do it.
21:34 TimToady crap
21:35 frettled TimToady: hmm?
21:35 TimToady sorry, my finger slipped :)
21:35 ruoso loosing the TZ info in the default Instant type seems like a mistake to me
21:35 TimToady it's not
21:35 ruoso a mistake Java API did
21:36 _timbunce joined #perl6
21:36 frettled ruoso: it's only a mistake if you care about TZ info when you want to store a point in time.
21:36 xomas_ joined #perl6
21:36 TimToady the mistake is to assume Instant has a location in the first place
21:36 ruoso which is true in so many cases for it to be ignored
21:36 frettled ruoso: from my point of view, this is a case for subclassing.
21:36 frettled or a role
21:37 frettled Let's call that a «localized instant».
21:37 TimToady call it a spacetime
21:37 ruoso TimToady, an Instant carries more semantics than the number of seconds since something happened
21:37 frettled I know that this might be important to people.
21:37 PerlJam frettled: sounds like "a local representation of this TAI time" to me
21:37 ruoso PerlJam, it's not
21:38 frettled no?
21:38 pmichaud in the U.S.,  5:30 CDT and 6:30 EDT   are the "same instant"  (modulo various civil-time distortions)
21:38 TimToady call it a stardate :)
21:38 frettled heh
21:38 pmichaud it seems weird that an identical instant would have multiple representations.
21:38 TimToady but basic time is a line, darnit
21:38 ruoso pmichaud, but for several semantic concerns the same atomic instant in Japan is not the same as in the US
21:39 pmichaud but it is.
21:39 PerlJam TimToady: if perl is to be a 100-year (or more!) language, ten we might have to rethink this time stuff at some point ;)
21:39 TimToady at some instant, you mean
21:39 frettled Stardate 2009.251, Ensign's log …
21:39 TimToady we could just redefine 100 years
21:39 ruoso pmichaud, for a *lot* of cases, the timezone implies a different *date*
21:39 PerlJam at some chronomic resonance.
21:41 * ruoso really needs to go, or else his car will get locked into the park...
21:41 * ruoso later &
21:42 frettled Anyway, I think it would be reasonable to provide a basic type for just TAI, and one that allows you to store some localization (spacetime?  perhaps) data in addition to that.
21:42 TimToady that seems like a reasonable decomposition to me; I don't know why ruoso wants to mix them up
21:43 TimToady for most purposes we can neglect relativity
21:44 frettled Yep.
21:44 frettled And if we should need to support relativity, I think adding a library or whatchamacallit would be fine -- when we need to do so.
21:45 TimToady gives localtime a new meaning
21:46 TimToady bbl &
21:46 PerlJam It's good to have physicists in the family in any case  ;)
21:46 frettled :D
21:46 frettled I'll take masak's hint and head for home & bed now, good night!
21:46 PerlJam g'night frettled
21:47 snearch joined #perl6
21:48 * PerlJam wanders off too
21:48 * PerlJam &
21:53 tak11 joined #perl6
22:13 cmv joined #perl6
22:15 frew_ joined #perl6
22:18 __ash__ joined #perl6
22:18 mrsaturn joined #perl6
22:18 mrsaturn rakudo: "hello, everyone".say;
22:19 p6eval rakudo 446d49: OUTPUT«hello, everyone␤»
22:22 sm` joined #perl6
22:23 mrsaturn I like @array.any more than any(@array)
22:29 cognominal joined #perl6
22:31 zamolxes joined #perl6
22:45 TimToady mrsaturn: it's likelier to be efficient too, my gut tells me
22:45 TimToady but the other reads better in English
22:46 mrsaturn I still like @array.any. But I guess any(@array) does make slightly more sense
22:48 Limbic_Region joined #perl6
22:49 mrsaturn is the p6eval bot written in perl?
22:51 ruoso joined #perl6
23:04 patspam joined #perl6
23:16 freenose joined #perl6
23:22 sm` joined #perl6
23:22 hercynium joined #perl6
23:23 _tim__ joined #perl6
23:26 ruoso TimToady, I'm arguing about the core type used to represent time instants (assuming we have just one) and the ramifications of that choice...
23:27 TimToady Instant is a Real
23:27 TimToady build whatever you like on top of that
23:30 ruoso In that case, can we consider a more information system's friendly type (i.e.: a port of Perl 5 DateTime module) to be core?
23:30 TimToady define "core"
23:30 nErVe joined #perl6
23:31 ruoso as in "built-in"
23:31 TimToady we will not make it difficult to deal with civil time :)
23:31 ruoso is that a yes?
23:31 TimToady and as far as I'm concerned, Temporal::DateTime is about 2x too long a name
23:32 TimToady DateTimes are a form of spacetime, and depend on location as well as instant
23:32 ruoso I think p5 DateTime is a very well succeeded implementation to be ported as-is
23:32 TimToady note that location of many computers is changing from instant to instant though :)
23:32 TimToady I suspect it assumes a fixed-location computer...
23:33 ruoso DateTime->now(time_zone => 'local') # solves that
23:33 TimToady you mean it reads it from the GPS? :)
23:33 ruoso well, some computers do update the tz info from gps data
23:33 Juerd Is feather user shay on IRC?
23:33 ruoso openmoko phones are one example
23:34 TimToady Juerd: not that I know of
23:34 ruoso (although it does it using GSM, not GPS)
23:34 * Juerd will email him/her then
23:34 TimToady I expect that GPSs will eventually be so cheap they'll just be built into to almost all devices
23:34 Juerd I think setting up one ssh connection per second is somewhat superfluous :)
23:35 TimToady maybe shay is trying to read the atomic time from somewhere :)
23:35 ruoso anyway, I think it should be ok if we have a Instant and a DateTime built-in types
23:35 ruoso where one is TAI, and the other is TZ-aware
23:35 TimToady I've been wanting to go in for some time and s:g /Temporal::/  :)
23:36 TimToady er s:2nd[/] = '//'
23:36 drbean joined #perl6
23:36 TimToady DateTime certainly needs to be location aware, since civil time is location aware
23:36 Juerd "  :)\ner s:2nd["syntax error...? :)
23:37 ruoso TimToady, (s:g/Temporal::/)++
23:38 ruoso but I'd still rework its API looking at p5 DateTime, which is currently the de-facto standard type
23:39 TimToady well, anything related to "civic" will need continual redesign as the goverments redefine civilization
23:39 TimToady I'm assuming the defintion of TAI won't drastically change by government whim :)
23:40 ruoso physicists whim is much more stable after all
23:40 ruoso ;)
23:40 TimToady we might, possibly, prefer someday to go with "local atomic time", after every device gets an atomic precision clock
23:41 TimToady then we'll have to deal with relativity and clock skew :)
23:41 TimToady but I think we can stick with consensus atomic time for a few decades yet
23:42 ruoso although the concern about during-process ntp adjustments is probably valid
23:42 TimToady it would be nice to be able to tap into ntp's decisions to estimate the CPU clock's inaccuracy
23:43 Tene TimToady: tell ntp to use a drift file
23:43 phenny Tene: 21:00Z <masak> tell Tene that I just pushed a failing test to the Web.pm repo. due to general tiredness, I'll have to continue this foray tomorrow. if you can do something with what's there already, great. if not, I'll see to it tomorrow.
23:43 TimToady and I'm sure ntp has a very good notion in its configuration as to what time model the OS/cpu uses
23:43 TimToady whether adjtime is supported, and such
23:45 nErVe joined #perl6
23:46 TimToady it might be useful to have a daemon with a hi-res clock running across leapsecond boundaries to see how the system is responding, assuming the hi-res clock is in fixed ticks, and doesn't break at the discontinuity
23:48 * ruoso .oO( how does one set a default value for a named parameter in a signature?
23:48 TimToady if no hi-res clock is available, and "cpu" time jumps by 2 seconds sometime due to ntp adjustement, then I suppose that second will just be off by up to a second
23:48 TimToady :name($var) = "default"
23:48 TimToady or :$var = "default"
23:48 TimToady by "named" do you mean "named-only"?
23:49 TimToady since all parameters are potentially named if they have an identifier
23:49 ruoso named-only, yeah
23:52 TimToady basically, we have a set of linear mappings between CPU time and TAI, and some discontinuities that can (hopefully) be discovered to the nearest practical instant
23:54 TimToady maybe a drift file already contains the necessary info # not an NTP geek
23:54 TimToady but there are also some events at the discontinuities that may need to be handled somehow
23:56 ruoso Rat is narrower than Num, right?
23:56 ruoso so it should probably be better to use Num in the API definition....
23:59 * ruoso considering keeping Date and Time inner types inside the DateTime package
23:59 ruoso but maybe not

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs