»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
jnthn morning 00:01
TimToady o/
zerhash: the download button on perl6.org will get you to a How to download rakudo page
zerhash ya i see 00:02
thanks
TimToady zerhash++ for diving in 00:03
zerhash :D
zerhash installs rakudo
zerhash waits for a puff of smoke to come from machine 00:04
TimToady for expert help on rakudo ask jnthn and pmichaud
you'll note the jnthn is not in the western hemisphere :) 00:05
zerhash ok 00:06
jnthn spans Eurasia. 00:07
;)
zerhash so i install rakudo. then the pugs test sweet should work
rakudo devs work around our tests
TimToady you probably want 'make spectest' 00:08
zerhash in pugs? or rak?
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.
Rakudo.
After make, make test will run a few small sanity tests (enough to be sure the test harness will compile and run).
00:08 rhr left
jnthn Then make spectest runs thousands of tests. :-) 00:09
00:09 vmbrasseur left
zerhash ok i see how it works 00:10
svn co of pugs spec test
where is the rakudo chan?
TimToady mostly here, some in #parrot on irc.perl.org
but the perl6 aspects, here 00:11
any of the implementations are welcome to hang out here
00:13 rhr joined
colomon Errr.... building Rakudo with a fresh git clone (and --gen-parrot) is failing for me at the moment. 00:28
lisppaste3 colomon pasted "Error message with latest git clone and --gen-parrot" at paste.lisp.org/display/86734 00:29
colomon commit 01ae3fae981eed2ecd8a75c94a72c119340044cf 00:30
00:31 hudnix joined
jnthn colomon: Ooh, a Parrot build error. 00:31
What platform?
colomon OS X
BTW, git++. 00:32
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
jnthn colomon: Am asking on #parrot 00:34
colomon Thank you.
jnthn colomon: May be result of the profiling branch merge...
colomon Oooo, parrot has profiling now?
TimToady apparently not on your machine :P 00:37
jnthn I believe so - I didnt yet try it.
jnthn afk for a bit 00:44
colomon Looks like it's building just fine on my 64-bit Linux machine... 00:51
00:55 baest left
colomon But make test fails? 00:56
TimToady fails t/01-sanity/07-simple-multisubs.t on my machine 00:58
Ubunto 64-bit
colomon Failed t/00-parrot/03-op-logic and t/01-sanity/08-say the second time through. 00:59
Five different tests the first time through, including t/01-sanity/07-simple-multisubs. 01:00
Weird, I didn't do anything in between, just ran make test again.
TimToady passed everything 2nd time
obviously something intermittent
colomon cue twilight zone music.... 01:01
TimToady and mine was just a realclean, not fresh checkout, btw
realclean/git/etc.
colomon Mine was a fresh checkout.
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:02
TimToady failed multisubs again 01:04
colomon Errrr... there is no t/spec directory? 01:05
TimToady not in that directory, try parent or grandparent 01:06
01:07 nbrown left, nbrown joined
colomon I'm talking from the rakudo directory: rakudo/t/spec isn't there. 01:07
TimToady strange 01:08
I have one here
colomon There's no spec directory anywhere in my rakudo tree. (I haven't run make spectest in this fresh build yet.)
TimToady git failure?
colomon No, there's no rakudo/t/spec on github, either. 01:09
TimToady svn failure?
bypassed the svn co from pugs somehow?
colomon That would be make spectest, no? This is just make test that is causing problems.
TimToady well, fudgeall is a pugs repo dependency 01:10
colomon Why would make test mess with it?
TimToady sees a fudge directive maybe? 01:11
doesn't look like it 01:13
colomon yeah
TimToady how are you running the test "standalone"?
some prove variant? 01:14
colomon make t/00-parrot/03-op-logic.t
TimToady that may be supplying the fudgeall
colomon It works for the spectests, so I just assumed.
TimToady it's strange to tell make to make something that's already there
01:15 tak11 left
colomon So it may not even be related to our intermittent bug? 01:15
TimToady I'd guess not
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:18
TimToady you mean spectest? 01:19
colomon No, that's what I saw on all five errors from my latest "make test". 01:20
TimToady haven't seen that
sounds like you have an old Test module out there somewhere 01:21
the 'plan *' is fairly recent, I think
colomon The tests that are failing don't use test at all.
say '1..24';
(for instance)
(I mean, don't use "Test.pm" at all -- it's hand-coded standard perl test format.) 01:23
01:24 frew__ left, frew__ joined
TimToady très étrange 01:25
01:26 ysth joined 01:27 Whiteknight left
ysth Do the stubby exception generators (.../!!!/???) take optional lists or single arguments? 01:28
TimToady they are listops
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
ysth excellent. 01:29
TimToady basically, they're just fail, die, and warn with different default messags
01:29 asciiville joined
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
allbery_b (...) means "this is a placeholder" 01:32
01:35 sri_kraih left
TimToady maybe "Implementation stub executed" or some such 01:36
01:36 sri_kraih joined, sri_kraih left
TimToady but Unimplemented would be fine 01:36
01:37 sri_kraih joined
araujo hello all 01:40
TimToady \o 01:41
araujo hola TimToady :)
01:48 pdcawley left, pdcawley_ is now known as pdcawley
araujo gets to package his code for this summer of code 01:50
Ryan52 araujo: package for what? 01:51
araujo Ryan52, to submit the code
Ryan52 ah. fun. :)
araujo: what was your project?
asciiville or even Implementedless :) 01:52
araujo socghop.appspot.com/student_project...4023180742
Ryan52, that one
(non perl6 related) 01:53
TimToady asciiville: lol
asciiville there's more than one way to say it :)
TimToady Insufficiently unimplementednessless
Ryan52 araujo: ah, cool!
asciiville those are definitely great messages 01:54
araujo Ryan52, :D 01:55
asciiville i'm guessing unimplementednessless is causing Merriam Websters parser to bork 01:56
araujo surely would have lot of problems pronouncing that word 01:59
asciiville i had problems typing it...
araujo still needs to polish his english pronunciation
Ryan52 araujo: I'm a native english speaker, and I still can't say it :P 02:00
araujo haha
asciiville it would be a great module on CPAN, ACME::UnImplementedNessLess 02:01
could just print out a warning, that is all
araujo you can do it ... people would start referring to it as an acronym I bet ...... UINL
or something like that....
asciiville it could be like a Mock Object or something 02:02
colomon std: @foo >>->> @bar;
p6eval std 28205: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/OI0kuLsQeg line 1:␤------> @foo >>⏏->> @bar;␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard
..stopper␤ terminat…
colomon std: my @foo; my @bar; say @foo >>->> @bar; 02:03
p6eval std 28205: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/ixTjEndH8K line 1:␤------> my @foo; my @bar; say @foo >>⏏->> @bar;␤ expecting any of:␤ bracketed infix␤ infix stopper␤
.. stan…
TimToady hmm 02:04
asciiville colomon: are those super-hyperoperators? >>->>
colomon asciiville: They are some kind of hyperoperators, not sure the exact term.
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".
TimToady std: @_ »-» 1
p6eval std 28205: OUTPUT«Potential difficulties:␤ Variable @_ is not predeclared at /tmp/2KKL7lWu0u line 1:␤------> @_⏏ »-» 1␤ok 00:02 38m␤» 02:06
TimToady std: @_ >>->> 1
p6eval std 28205: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/zl9dhSGdtd line 1:␤------> @_ >>⏏->> 1␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤
..terminator␤Oth…
TimToady bug
colomon std: my @foo; my $bar; say @foo >>->> $bar;
p6eval std 28205: OUTPUT«===SORRY!===␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/kCZgw8hQLF line 1:␤------> my @foo; my $bar; say @foo >>⏏->> $bar;␤ expecting any of:␤ bracketed infix␤ infix stopper␤
.. stan…
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
asciiville there's an I18N just for Texas?
TimToady oh, it's seeing the -> in the middle
colomon So I just need to get away from Texas... useful tip! 02:08
asciiville gotta get to Texas someday myself
colomon TimToady: Do you want me to submit that one "officially"? 02:09
TimToady std bugs don't have a mechanism 02:10
I'll just remember it :)
and probably fix it tonight 02:11
colomon TimToady++
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
asciiville or optionally, lack-of-unimplementationnessless 02:15
02:16 alester joined
ysth thanksw 02:17
02:20 ihrd left
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:21 kborer left
asciiville sometimes it works, sometimes it don't 02:23
actual question: is it better to inline PIR for functionality not yet available in rakudo? 02:25
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:27
02:29 zpmorgan joined 02:30 justatheory left 02:38 colomon left
pmichaud fwiw, it's okay to submit STD bugs to the rakudobug queue. We just mark them as [spec] 02:38
(and the rakudobug queue is officially 'perl6' anyway :-) 02:39
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
pugs_svn r28206 | lwall++ | [STD] fix colomon++'s bug on >>->> parsing 02:40
asciiville pm: good point. i wondered if there were any performance benefits as well 02:41
pmichaud hard to say yet 02:43
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:44
sorry about the broken English :) 02:45
pmichaud well, Rakudo knows how to load .pir also
(and .pbc) 02:46
02:52 alester left
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:56
But maybe that's just honoring perl's roots 02:57
03:00 SmokeMachine joined
ysth hmm, now I can't find "sed-like" there. It just gives a description and says "as in B<sed>" 03:05
03:25 sri_kraih_ joined 03:29 alester joined 03:41 sri_kraih left, sri_kraih_ is now known as sri_kraih 03:43 mepplock joined 03:58 meppl left 03:59 mepplock is now known as meppl 04:12 zloyrusskiy joined 04:26 frew__ left, meppl left 04:37 Zloy_Russkiy joined, Zloy_Russkiy left 04:45 asciiville left 04:48 nihiliad left 05:02 sevvie_ joined 05:06 sevvie left, sevvie_ is now known as sevvie 05:08 wayland76 joined 05:10 KatrinaTheLamia joined, SmokeMachine left
Tene :( no masak 05:12
05:13 mj41_ joined
jnthn 'tis a little early for masak. 05:13
05:13 wayland joined
Tene yeah, but I was gonna have him tell me what to do for sqlite. 05:14
05:14 wayland76 left
jnthn aww. 05:14
05:14 wayland is now known as wayland76
Tene FINE ILL JUST DO IT MYSELF 05:18
First I need to move it somewhere where it actually gets installed or something
or maybe japhb has a better option for me... 05:19
05:19 wayland joined 05:20 broquaint left
Tene hides irc. 05:21
wayland checks the hides to see if they're tan :) 05:23
05:28 mj41 left 05:32 synth left 05:34 finanalyst joined 05:39 cmv left
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.
Tene phenny: thanks
05:44 wayland76 left, meppl joined
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) 05:52
05:54 kidd left
moritz_ good morning 06:07
Tene hi moritz.
moritz_ spinclad: class Foo; is increadibly handy, you shouldn't just steal the syntax
Tene jnthn: do you have any idea what this "positional inside named args at position 3" stuff is? 06:09
oh... nm
>.>
that's what I got for calling a sub with too many args. 06:10
jnthn Tene: Aye, it usually means something like that. :-) 06:12
moritz_ usually sees that from method calls
because methods have an implict *%_
06:14 masak joined
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.
Tene hi masak
jnthn \o
masak note: masak is up early today. :)
Tene masak: give me just a sec, and I'll have something nice for you.
masak \o/
06:18 azawawi joined
azawawi hi 06:18
masak azawawi: morning! 06:19
Tene masak: finished for now, pushing... 06:21
masak std: loop { say "OH HAI"; last } while 1
p6eval std 28206: ( no output )
masak std: loop { say "OH HAI"; last } while 1
p6eval std 28206: ( no output )
jnthn std: alive 06:22
Tene masak: github.com/tene/perl6-sqlite/tree/master
p6eval std 28206: OUTPUT«Undeclared routine:␤ alive used at 1␤ok 00:02 36m␤»
jnthn std: loop { say "OH HAI"; last } while 1
p6eval std 28206: OUTPUT«===SORRY!===␤Missing semicolon or comma after block at /tmp/Jy1DGIRCd0 line 1:␤------> loop { say "OH HAI"; last } ⏏while 1␤ expecting any of:␤ infix stopper␤ statement␤Undeclared routine:␤ while used at 1␤FAILED 00:04 37m␤»
masak Tene: looking.
Tene masak: it *really* needs to be cleaned up... abstracted...
masak adds to the ticket that STD appears to do the right thing nowadays.
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.
Tene masak: you are 'masak' on github?
masak their abstraction is called 'dataset' and it's right in many ways IMO.
Tene: I am.
Tene sequel.rubyforge.org/ -- this Sequel? 06:24
masak that one.
Tene Yes, I can do that.
masak I spent some time yesterday reading source.
Tene: should we start a separate repo for that one? I think we should.
suggested name of port: Squirrel.
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
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
phenny moritz_: I'll pass that on when colomon is around.
masak Tene: if you don't stop me, I'll probably start working on Squirrel today.
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
masak \o/
hugme: hug Tene
hugme hugs Tene
moritz_ DBDI is still in the stage of trying to translate java classes and interfaces to Perl 6 classes and role definitions
jnthn Squirrel?
Tene masak: So go make your squirrel, and show me the API that is needed for SQLite3 driver for it...
and I'll do that tomorrow.
masak excellent.
Tene So whatever you get specced for it, I'll implement.
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 ;-)
Tene Tomorrow during my day/evening, unless something comes up.
masak jnthn: are you asking about the choice of name, or the scope of the project?
Tene: that sounds good.
jnthn masak: What is the project? :-) 06:28
Tene jnthn: port of sequel.rubyforge.org/
masak jnthn: a port of Ruby's Sequel. sequel.rubyforge.org/ 06:29
EMASAKTOOSLOW
moritz_ opens masakbug: make masak++ 20% faster
Tene 30%!
I have some significant masak needs. 06:30
masak you know what they say... first make it run, then make it right...
06:30 rfordinal3643 left
Tene Then make 30 subclasses. 06:30
masak
.oO( serious threading problems... )
06:31
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.
I've got it queued up in my firefox tabs for evaluation...
masak is rt.perl.org/rt3/Ticket/Display.html?id=63510 invalid? I suspect it is.
jnthn ah, cool
cotto moritz_, noted 06:33
Tene anyone here want threading in rakudo soon enough to ask me to bump its priority up?
jnthn NPMCA sucks.
Tene: It'd be a Cool To Have.
Tene OK. 06:34
jnthn At least, it'd open some doors.
Tene I'll fork a thread to work on that while I work on SQLite. :)
moritz_ Tene: iirc it was blocking on TT #757 - that ticket now has patches that claim to solve it
Tene moritz_: yes, so as long as they are good patches and there are no additional blockers...
then it should be easy. 06:35
jnthn
.oO( I can haz async? )
moritz_ well, I have no idea if the patches are good - but I can hope ;-) 06:36
06:37 moritz_ sets mode: +oo Tene masak
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 alester left, nsh left
jnthn feels weird watching the day end in the US and the day start in Europe. 06:38
06:39 nsh joined, sevvie left 06:40 xinming joined, ewilhelm left, ewilhelm joined, orafu left 06:41 orafu joined 06:42 azawawi left 06:44 DakeDesu joined 06:45 KatrinaTheLamia left 06:51 charsbar joined 06:53 sharada joined
masak rakudo: say "abc" ~~ m ☃.(.).☄ 07:01
p6eval rakudo 446d49: OUTPUT«abc␤»
07:01 azawawi joined
masak no need for that Snowman::Comet module just yet... 07:01
azawawi moritz_: i figured out a fix to rt.perl.org/rt3//Public/Bug/Display...l?id=68746 on win32
moritz_: any commit bits? :)
moritz_ azawawi: no, you need to submit a patch 07:02
jnthn masak: Some bugs will be a shame to fix ;-)
azawawi moritz_: np 07:03
07:06 sparc left
moritz_ azawawi: just stumbled upon perlpilot.blogspot.com/2009/09/thin...padre.html 07:07
07:08 pdcawley left
azawawi moritz_: thanks... 07:08
zamolxes >
>
lambdabot not an expression: `'
zamolxes >
> Cosmin Capataneanu
lambdabot Not in scope: data constructor `Cosmin'Not in scope: data constructor `Capa...
zamolxes > Unit Director
lambdabot Not in scope: data constructor `Director'
zamolxes >
> Adresa:
lambdabot <no location info>: parse error (possibly incorrect indentation)
zamolxes > P-ta Alba Iulia nr.8, bl. i7, sc.3, et.2, ap.50-52, sector 3, Bucuresti
lambdabot <no location info>: parse error on input `,'
07:08 zamolxes left
masak aww, I wanted to use my op bit... :/ 07:09
07:10 zamolxes joined
zamolxes :( 07:10
so sorry
moritz_ in soviet russia op bits use you ;-)
masak hugme: hug zamolxes 07:11
hugme hugs zamolxes
moritz_ happens to the best of us too
masak aye.
wayland ...and I'm living proof of that (cough cough :) )
zamolxes :) 07:12
masak rt.perl.org/rt3/Ticket/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
masak zamolxes: Linux, eh? 07:14
zamolxes hrm, or something, don't thing I had a reason to scroll
yep
masak dangerous stuff.
07:14 rfordinal joined
wayland That's why I'm trying to replace my scroll wheel with a SpaceNavigator 3D mouse 07:16
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)␤»
masak jnthn: you wondered if I wanted something in particular fixed... the above, while not high-prio, is sufficiently annoying. 07:18
rt.perl.org/rt3/Ticket/Display.html?id=68116
jnthn eww 07:19
yes, that is annoying.
azawawi fixed rt.perl.org/rt3/Ticket/Display.html?id=68746 07:24
07:25 rgrau joined
moritz_ as long as nobody has paths with backslashes on linux... ;-) 07:25
azawawi: I'll test it later on, and commit + push if it doesn't break anything on linux (don't think it will) 07:26
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:27
07:28 broquaint joined 07:30 rfordinal left
azawawi moritz_: can u please fix my CREDITS entry in Rakudo like this gist.github.com/182771 ? 07:32
07:33 iblechbot joined
moritz_ aye 07:35
azawawi moritz_: thx 07:36
moritz_: perl6 --version does not show any useful information. 07:42
moritz_ azawawi: I know, we have two tickets open for that already 07:43
masak it's on my April list, soon to be published. 07:46
jnthn The April List
masak 34 bugs on there right now, but I'm still culling. 07:47
jnthn will be curious to see it
34 isn't so bad.
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.
dalek kudo: a0c8a44 | moritz++ | C (2 files):
[build] fix \ to / in paths passed to parrot's Configure.pl
07:48
07:49 rbaumer left 07:54 timbunce joined
wayland Am I innocent enough? :) 08:00
(afk food &)
08:03 azawawi left 08:07 agentzh joined 08:17 Guest98709 is now known as bionoid 08:32 cmv joined 08:35 cognominal joined 08:39 rbaumer joined 08:40 agentzh left 08:57 cmv left, ejs joined 08:58 barney joined 09:05 frederico joined 09:13 rgrau left 09:16 drbean_ joined
wayland ooh, tim bunce. Maybe we'll get some DBI 2 soon :) 09:16
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:17
moritz_ timbunce: good news, pmichaud++ is working on getting stub class declarations working properly, that might make things easier for us 09:18
09:18 agentzh joined 09:20 drbean left
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
but doing two passes would avoid that
wayland timbunce: No pressure -- I'm just getting pre-excited :)
timbunce :)
wayland Do we get stub roles with stub classes?
Or is that a separate problem? 09:21
wayland would like stub roles, if that means role foo {...}
jnthn Probably same kinda problem. 09:23
Though little different I guess.
09:30 azawawi joined
azawawi moritz_: is Safe and Test going to be bundled with rakudo's parrot_install in the future? 09:30
09:31 rblasch joined 09:41 jaffa8 joined 09:44 azawawi left 09:54 sharada left 10:04 carlin left 10:05 carlin joined 10:12 fredrecsky joined, frederico left 10:13 iblechbot left 10:17 dakkar joined 10:30 carlin left 10:31 agentzh left
moritz_ azawawi: probably yes 10:34
10:35 pmurias joined 10:38 colomon joined 10:43 azawawi joined
azawawi moritz_: ahmadzawawi.blogspot.com/2009/09/up...6-pdx.html 10:43
pmurias ruoso: hi 10:44
ruoso hi pmurias 10:51
10:52 carlin joined
ruoso commute & 10:54
10:54 ruoso left, azawawi left 10:58 athaba joined 11:00 zostay_ joined
athaba hi, how do I use BigInts and BigNums with perl6/rakudo? 11:00
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
athaba okay, thanks 11:03
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
11:07 cmv joined
colomon athaba: have a vague memory there is a "repeat" command... 11:08
but it doesn't do what I was thinking.
athaba yeah, it's even more complex 11:09
moritz_ you have to use map or for
the X.times is ruby :-)
but 'for ^N { block }' is not really much to write 11:10
colomon Could you do something like { ... } xx 10?
athaba yes, I know. I hoped for perl6 offering something similar
colomon moritz_: I was assuming it was an efficiency issue ... create a big list with for ^N if N is large.
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
wayland seen Matt-W
phenny: seen Matt-W
colomon moritz_: sure, but the horrible efficiency issues are here today! ;)
moritz_ @seen Matt-W 11:12
lambdabot Unknown command, try @list
wayland That's what lambdabot says to me too 11:14
Maybe lambdabot has bitrot
11:28 sm^^^ joined 11:30 zamolxes left 11:31 sm` left 11:32 wayland is now known as wayland76 11:41 fredrecsky left
Matt-W Hello 11:52
frettled H-h… hello?
Matt-W What lambdabot should have said is "Matt-W will return in 40 minutes", but it's not that clever 11:53
11:53 sharada joined
frettled Nor is it prescient, apparently. 11:53
carlin ENOPRECOGNITION 11:55
Matt-W That's probably a good thing, all told
frettled Besides, it's NYI in Rakudo.
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
carlin it would probably respond; ENOIDEA 11:58
or 42
12:00 tak11 left 12:09 _timbunce joined 12:10 takadonet joined
takadonet morning all 12:10
moritz_ good localtime takadonet
takadonet hehe 12:11
12:17 meppl left
frettled moritz_: localtime NYI, please use gmtime. 12:19
Good gmtime, takadonet :D
12:24 DakeDesu is now known as KatrinaTheLamia 12:28 timbunce left, _timbunce is now known as timbunce 12:29 hudnix left
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:31
12:40 ruoso joined 12:41 azawawi joined
azawawi hi 12:41
spinclad moritz_: re class Foo; to eof incredibly useful: more so than class Foo { #`[rest of file here] } ? 12:44
i'm surprised, then. 12:45
hi, azawawi 12:46
moritz_ spinclad: yes
spinclad: basically because it allows you not to indent the body of the class 12:47
and still have each closing } on an indetion level of its own
spinclad there is that, true. a matter of layout then. 12:48
moritz_ aye 12:50
and it does matter a lot to me to have my code laid out properly
spinclad 'use an editor that does it for you.' <-- note: i don't endorse this argument
moritz_ that's not related to it at all
my editor does it properly
but you still ahve one more level of indenting 12:51
which basically carries no information, but if you leave it out it's still confusing
spinclad and it's _because_ it runs to eof that it carries no information on each line 12:52
moritz_ aye 12:53
anyway, I strongly recommend writing usable Perl 6 code
it gives you some perspectives of the language that you don't notice by just thinking about it 12:54
(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 { }.
pmurias what should a RELEASE/REFERENCE do on the p5 interpreter? (it's destroyed manualy) 12:56
ruoso: ^^
PerlJam good morning fellow #perl6 denizens 13:03
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:05
azawawi PerlJam: hi there 13:07
masak: el-pingo 13:10
masak azawawi: ka-powng.
azawawi masak: im trying november on win32 as i promised before :) 13:11
masak azawawi: cool!
frettled: I have plans, but not written down anywhere. I could write them down, or we could discuss them here.
azawawi masak: a lot of the docs are outdated a bit (when rakudo was inside parrot)
masak: commit bit please 13:12
13:12 KyleHa joined
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.
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
spinclad yes
moritz_ KyleHa: IMHO it's not a problem
we have a syntax for it
masak azawawi: the repository belongs to viklund. ping, viklund.
moritz_ and since yesterday it's also specced
KyleHa s/problem/discussion/
moritz_ before it was just in TimToady's head, and maybe implied here and there
masak azawawi: that sounds vaguely intriguing. 13:15
moritz_ hugme: hug azawawi
hugme hugs azawawi
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.
azawawi hugme: help :) 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;'
hugme azawawi: 'hugme: (add $who to $project | list projects | show $project | hug $nickname)'
frettled masak: not to mention a bit too complicated, perhaps. :)
moritz_ hugme: show json
hugme moritz_: the following people have power over 'json': masak, moritz_, viklund. URL: github.com/moritz/json/
azawawi hugme: list projects
hugme azawawi: I know about these projects: json, perl6-examples, proto, svg-matchdumper, svg-plot, tufte
masak frettled: I haven't thought about simplifications, but I do have a use case which I focus quite heavily upon. 13:17
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
p6eval rakudo 446d49: OUTPUT«Confused at line 2, near "(:date(\u200bTe"␤in Main (src/gen_setting.pm:3469)␤»
masak frettled: yep.
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.
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
frettled yeah, that one is a bit of a bother. 13:20
azawawi masak: pinged viklund
masak: thanks
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.
masak who's that? :) and how did you insult him?
azawawi masak: i already emailed him...
moritz_ the DateTime author
masak azawawi: excellent.
moritz_: aha. 13:22
PerlJam frettled++ accidentally insulting Dave Rolsky :)
PerlJam looks around to see if autarch is on channel 13:23
frettled hehe 13:24
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. :)
PerlJam frettled: is one order of magnitude acceptable?
frettled masak: Supporting simple date and time calculation is also important, but it shouldn't affect the performance part.
PerlJam: not for my uses
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.
PerlJam aye.
PerlJam resembles said sysadmin
frettled :)
hugme: hug PerlJam 13:27
hugme hugs PerlJam
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:28
I can live with a slightly slower execution speed if I win in writability, readability and maintenance 13:30
(even for real-time stuff as long as "real-time" means "soon enough" :)
13:32 azawawi left, frew__ joined
frettled mm 13:32
PerlJam: Dave Rolsky provided me with a benchmarking script for performance, BTW, which I modified to this: jani.at.ifi.uio.no/tmp/dt-bench 13:34
13:38 agentzh joined
PerlJam runs it 13:39
13:42 frew__ left, colomon left 13:44 drbean_ left 13:52 ejs left, colomon joined
masak frettled: I have a repository on github for the Temporal.pm refactor, but I see I've only pushed one commit to it: github.com/masak/temporal-flux-perl...9785fd9f01 13:55
I also have a local Rakudo branch where I try to implement what I spec. 13:56
13:56 M_o_C joined
frettled Ah! 13:58
That's nice.
13:59 timbunce left
masak I'd like for Temporal::DateTime.new('2010-04-01') to work. 13:59
IIRC, I ran into some slight problems implementing that.
I should try it again soon.
14:01 timbunce joined
moritz_ actually we could offer a Temporal::Date which only deals with dates, not times 14:06
that's much simpler
and often does the job too
moritz_ is quite fond of Perl 5's Date::Simple
14:10 justatheory joined
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
moritz_: but yes, I agree. and it probably wouldn't be too difficult.
14:11 colomon left 14:14 jhorwitz joined 14:17 zpmorgan left
frettled moritz_: It's simpler except when it isn't :) 14:18
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
and that's needed for Temporal::Date
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 cognominal left
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:21
So the leap second part probably needs to be pretty close to the core. 14:22
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.
Fortunately, we know _when_ the leap seconds are supposed to inserted related to UT1 (IIRC), so it should be manageable. 14:25
masak: yes, me too 14:26
Tene hi masak 14:28
masak good day, Tene. 14:29
14:29 cognominal joined
ruoso pmurias, hmm... conceptually we could make a refcount for the interpreter itself, and destroy it in the end... 14:29
14:41 alester joined 14:45 pmurias left 14:48 mikehh joined, carlin left 14:50 chez joined, sevvie_ is now known as sevvie 14:51 nihiliad joined
chez ?eval say "hello!" 14:51
masak perl6: say "hello!"
p6eval elf 28206, pugs, rakudo 446d49: OUTPUT«hello!␤»
14:51 Psyche^ joined 14:52 finanalyst left
chez does the bot support private messages ? 14:52
masak aye.
chez thanks I'm afraid of spamming the channel :p
masak chez: I've also heard that there are offline versions of each implementation :) 14:53
chez hey erm what implementation is this ?
14:53 Patterner left, Psyche^ is now known as Patterner
masak all of them. Elf, Pugs, and Rakudo. 14:54
chez oh
masak (those are the one represented by p6eval)
s/one/ones/
for download, I'd recommend Rakudo.
chez how do I test something with pugs only ?
14:54 Zloy_russkiy joined
chez yeah I have rakudo on my pc 14:54
masak pugs: say "OH HAI"
p6eval pugs: OUTPUT«OH HAI␤»
chez thanks
masak np.
14:57 patspam joined 15:00 cognominal left
chez my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99); 15:02
does the above line look valid ?
masak does to me. 15:04
chez because I've not been able to get it running on any of the implementations
masak perl6: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99); say @s.perl
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
..pugs: OUTPUT«*** ␤ Unexpected "@s"␤ expecting "=", operator, ")", context, ":" or "("␤ at /tmp/QU2I8ES51K line 1, column 4␤»
..elf 28206: OUTPUT«syntax error at (eval 125) line 3, near "(for"␤ at ./elf_h line 5881␤»
masak chez: no, they probably don't implement that yet.
PerlJam std: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99);
p6eval std 28206: OUTPUT«ok 00:02 38m␤»
15:05 rfordinal joined
chez ah 15:06
PerlJam chez: that's how you know if it's syntactically valid.
chez thanks
15:08 iblechbot joined 15:15 [particle]1 joined 15:16 [particle] left, [particle]1 is now known as [particle] 15:18 cognominal joined 15:37 jrtayloriv left 15:39 Zloy_russkiy left
moritz_ but rakudo doesn't do list comprehensions yet 15:39
afk 15:40
masak neither do Pugs or Elf, it seems.
15:45 carlin joined, agentzh left
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␤»
TimToady masak: ss/fixed until April/fixed before April/ # or 'by April' 15:48
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␤»
carlin Hmm. Here the REPL just quitely dies.
masak TimToady: gracias. my non-nativeness shines through. :) 15:50
TimToady well, all languages are weird 15:51
masak
TimToady but to me, 'until' implies fixing something continuously up to that point
masak yes, I see that reading now.
TimToady and then in April we'll give up gixing them :)
masak fixed. TimToady++
TimToady gixed
masak :P 15:52
15:58 carlin left 15:59 cognominal left 16:01 jaldhar left
pmichaud good morning, #perl6 16:03
jnthn oh hai pmichaud
TimToady ö/
16:04 jrtayloriv joined
masak greetings, pmichaud 16:04
16:04 barney left
M_o_C What are the two dots for, TimToady? Some camelia related thing? 16:05
pmichaud TimToady now has a crown? ;-)
aha! we need to sell Camelia "bug antenna" that people can wear at conferences :-P 16:06
masak or tiny antennae.
M_o_C More like attachable antennas :D
pmichaud kind of like the BSD horns :-)
16:06 cognominal joined 16:13 masak left 16:14 cognominal left 16:15 payload joined 16:19 alester left 16:20 colomon joined
TimToady std: @*foo >>->> 1 16:20
p6eval std 28206: OUTPUT«ok 00:03 38m␤» 16:21
TimToady colomon++
pugs_svn r28207 | colomon++ | [t/spec] Skip/todo now-broken tests after the div patch. 16:22
16:29 zamolxes joined 16:37 cmv left 16:38 chez left
dalek kudo: 9c449f6 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 436 files, 14273 (69.3% of 20599) pass, 0 fail
16:40
jnthn Wow, over 14,000 :-) 16:45
pmichaud yes, but we're also back below 70% :-) 16:46
jnthn aww
pmichaud I've decided to re-run the statistics since the August release
jaffa8 you know guys, I am really surprised that you can keep it up doing what you do.
pmichaud I think it'll be a bit more accurate
jaffa8: I'm surprised also :) 16:47
jaffa8 this thing is not finished in one day. 16:48
I am surprised that you are surprised.
TimToady we can't keep up what we're doing, but we do it anyway :) 16:59
but everyone has to find their own tortoise/hare balance point
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
which says something about inheritance :) 17:01
.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 ;)
TimToady I dunno, when we fall back in autumn I get an extra hour of sleep...
17:03 sri_kraih left
PerlJam Just apply the axiom of choice on your time slices and your sleeping/waking schedule will work itself out :) 17:04
(and pick finer grained slices perhaps)
TimToady especially if you don't believe in it
takadonet one day this will all be over...
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
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
TimToady Perl 4 is stable 17:07
PerlJam drops a pebble in the meme pool intiating more ripples of nuance
huf isnt it pretty rare tho?
PerlJam TimToady: you should chide Allison for trying to destabilize Perl 1. 17:08
17:19 sri_kraih joined 17:20 rblasch left 17:22 Zloy_russkiy joined 17:29 cdarroch joined 17:48 payload left 17:49 frederico left
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
..`_UNIT'␤…
..rakudo 446d49: OUTPUT«Confused at line 2, near "!"␤in Main (src/gen_setting.pm:3469)␤»
..pugs: OUTPUT«*** ␤ Unexpected "!"␤ expecting "_", fraction, exponent, term postfix, operator, ":" or ","␤ at /tmp/NKVd5uPvoM line 1, column 7␤»
colomon rakudo: sub postfix:<!>($n) { [*] 1..$n; }; say 10!; 17:57
PerlJam rakudo: sub infix:<!>($n) { return [*] 1..$n }; say 10!;
oops
colomon++
dunno why I typed infix
p6eval rakudo 446d49: OUTPUT«3628800␤»
rakudo 446d49: OUTPUT«Confused at line 2, near "!;"␤in Main (src/gen_setting.pm:3469)␤»
17:57 alester joined, stephenlb joined
colomon I was faster typing because I left off the "return". ;) 17:57
charsbar aha, thanks, colomon++
PerlJam alester++ thanks for the new ack :)
17:57 sm^^^ left 17:58 sm` joined
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...
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...
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:01
pmichaud charsbar: postfix:<!> is not part of the default library, no 18:03
charsbar: however, postfix:<!> can be defined in Rakudo and it does work
charsbar pmichaud: ok, thanks
18:05 rblasch joined
colomon I almost think it's worth more to leave it out so defining it can be an example! 18:05
moritz_ colomon: aye ;-) 18:06
18:07 arthur-_ joined
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:07
18:09 azawawi joined, __ash__ joined 18:11 rbaumer left 18:12 rfordinal left 18:13 gbacon joined
TimToady colomon: note that Int is defined to be bignum already 18:14
18:15 M_o_C left
TimToady it's just nyi 18:15
__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:16
18:16 sjn left
moritz_ __ash__: please try to cd parrot; svn up; make 18:17
18:17 M_o_C joined
pmichaud I think Rakudo might be currently tied to a version of Parrot that fails to build on OS X 18:17
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
__ash__ parrot with the latest revision builds 18:19
i am building rakudo, then i'll run tests, one sec
moritz_ I'll spectest, if it passes I'll bump the parrot revision
pmichaud moritz++
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:21
18:22 pmurias joined
__ash__ is there a coverage tool for perl6 yet? 18:23
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.
colomon TimToady: I know, I am eagerly awaiting bignum support so I can play around with those Project Euler number theory problems. :) 18:26
18:26 nbrown left
__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 ;)
colomon pmurias: Don't think I haven't thought about it!
With operators working, it should be possible. 18:28
Tene TimToady: Why is ' not allowed at the end of an identifier?
colomon But it's not like I have a shortage of Perl 6 projects at the moment.
arnsholt Take the Perl 5 bidnum modules and port them? =)
18:30 nbrown joined
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:30
pmurias Tene: do you need a ' at the end for anything? 18:31
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␤»
..rakudo 446d49: OUTPUT«Symbol '$foo'bar' not predeclared in <anonymous> (/tmp/pHXoV8bZ2p:2)␤in Main (src/gen_setting.pm:3469)␤»
..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'␤
..STD_red/s…
18:32 rbaumer joined
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'␤
..STD_red…
..rakudo 446d49: OUTPUT«123␤»
..pugs: OUTPUT«*** ␤ Unexpected "'"␤ expecting word character, "?", "!", trait, "=", infix assignment, term postfix or operator␤ at /tmp/YoRjz5eCD6 line 1, column 8␤»
Tene pmurias: It might be kinda neat to be able to say, like, my $a' = f($a);
colomon That is a common math idiom.
moritz_ M_o_C, alester: groups.google.com/group/de.comp.lan...6c0b3b253# (it's German though, as the de. implies ;-) 18:33
pmurias math identifier are bad
Tene bad?
pmurias * identifiers
alester ARGH
pmurias they are all one lettered
ruoso std: my $a; sub foo {...}; my $a' = foo($a); 18:37
p6eval std 28207: OUTPUT«===SORRY!===␤Confused at /tmp/5qo9G1SJhP line 1:␤------> my $a; sub foo {...}; my $a⏏' = foo($a);␤ expecting any of:␤ POST␤ bracketed infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ shape definition␤
..standard stopper␤ statement m…
ruoso std: my $a; sub foo {...}; my $a'b = foo($a);
p6eval std 28207: OUTPUT«ok 00:03 38m␤»
colomon pmurias: but in a lot of math programming contexts, one letter is all that is needed to clearly express what is going on.
ruoso yeah... you cannot finish the name with the special char
18:38 mberends joined
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_ ;)
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
moritz_ colomon: did you reconfigure (or clean) rakudo after that? 18:43
18:43 finanalyst joined
colomon No. How would I reconfigure? (And do I need to make install parrot?) 18:43
moritz_ in rakudo, do a rm -rf parrot_install/* 18:44
then cd parrot
make install install-dev
cd ..
18:44 rblasch left
moritz_ perl Configure.pl && make -j 3 install 18:44
__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
18:45 __ash__ left
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
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:47 nbrown left
M_o_C ...beware that rakudo will prefer *.pm files over the according *.pir variants. 18:48
<EOF> ;)
pmichaud actually, rakudo prefers *.pir over *.pm
otherwise Test.pir would never get used
M_o_C True, my mistake, he got it right. Sorry. 18:49
18:49 nbrown joined
moritz_ if that's of general interest I can turn that into a blog post. 18:49
(in English)
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:50
mberends has just resumed work on the proto installed-modules branch :) 18:51
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.
moritz_ M_o_C: yes, you did (afaict :) 18:53
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
if we do, we need to make the refcounting
18:55 nbrown left
azawawi moritz_: could u apply this small rakudo patch to ignore some win32 files, gist.github.com/183146 ? 18:57
18:57 nbrown_ joined, nbrown_ is now known as nbrown
moritz_ azawawi: I'm off to cook some lunch, but I'll do later on 18:58
azawawi moritz_: thanks 18:59
19:00 Guest93158 left 19:01 nbrown left, nbrown joined 19:02 azawawi left
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:04
moritz_ my spectest just finished - lots more "Non-zero wait status: 11" 19:05
about 50 or so, I'd gues
ss
dalek kudo: ef31fec | moritz++ | .gitignore:
add some windows specific files to .gitignore, azawawi++
19:06
kudo: 62879bb | moritz++ | :
Merge branch 'master' of [email@hidden.address]
19:12 nbrown left, masak joined
masak time for some fun with databases! 19:12
19:13 lmc joined 19:14 nbrown joined 19:21 finanalyst left 19:22 __ash__ joined 19:25 iblechbot left
Tene yay masak! 19:27
19:27 hugme left
masak yay Tene! 19:28
I'll now begin my exploration of Squirrel-space.
Tene Mysteeeeerious! 19:30
moritz_ over the weekend I did quite some SVG::Plot hacking 19:31
and as I added legend boxes to the lines plots I noticed that the code became more and more unmaintainable 19:32
mostly the positioning code
pmurias ruoso: will we use the p5 undef as the p6 undef?
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
s/^/I realized /
and then I looked at the scruffy code again
and noticed that that's exactly what the Scruffy::Components are ;-) 19:34
19:34 Zloy_russkiy left
moritz_ so my motivation for porting scruffy to Perl 6 has just increased 19:35
masak Tene: I started by porting the Short Example in the Sequel README.pod: github.com/masak/web/blob/2a3469525...el-example 19:40
I think the functionality needed to make that run won't be too difficult to implement.
maybe I'll get there in the next 24 hours or so. 19:41
moritz_++
Tene: the syntax on lines 5-9 might well change once we have macros and modifiable grammars. 19:42
now... what's the Simplest Thing That Could Possibly Work? 19:46
moritz_ say "hello, world";
masak I keep thinking I want to redo the exercise from last week, but with Sequel/Squirrel underpinnings.
i.e. use Text::CSV as a backend. 19:47
then Tene could take a look at how I did that, and hook up sqlite similarly.
masak re-reads last Web.pm blog post
19:47 nbrown left
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
moritz_ colomon: could you please nopaste the summary of the failed tests? 19:50
19:50 takadonet left
lisppaste3 colomon pasted "OS X failures with latest parrot and --gen-parrot" at paste.lisp.org/display/86772 19:51
19:51 jan_ joined 20:00 cmv joined
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)␤»
masak that'll never work, will it?
std: class A {}; multi infix:<<< << >>>(A $a, $b) { "Feed $b into $a" }; say A << 42
p6eval std 28207: OUTPUT«===SORRY!===␤(Possible runaway string from line 1)␤Malformed block at /tmp/n0yZN0IkUs line 1 (EOF):␤------> , $b) { "Feed $b into $a" }; say A << 42⏏<EOL>␤ expecting escape␤Other potential difficulties:␤ Variable $a is not predeclared at
../tm…
masak right.
std++ # nLTA 20:11
20:12 kidd joined, rapacity joined
pmichaud I'll try latest parrot on my system. 20:12
masak hm, this CSV idea of mine might not be very good after all... :/ 20:13
perhaps better to write tests and then make these pass for sqlite instead.
20:15 patspam left 20:16 patspam joined 20:17 sevvie_ joined
Tene masak: even failing tests are helpful. 20:18
20:18 meppl joined
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 sevvie left
Tene Yes. 20:19
20:19 sevvie_ is now known as sevvie
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.
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.
Tene rakudo: class A { multi postcircumfix:<{ }> { say 'omg lol' } }; my A $a .= new(); my $x = $a{'hi'}; 20:20
p6eval rakudo 446d49: ( no output )
Tene masak: Heh.
masak so I'll go for the sqlite for now.
Tene masak: pm says we can't get the $db<items> thing working yet, but maybe soon.
masak ya, I saw. 20:21
workaround is a method for now. no prob.
Tene well, I guess we could play with trying to bless a hash or something...
but I wouldn' tbe too hopeful.
TimToady std must've parsed that as say A < < 40
Tene masak: I'd be inclined to just make create_table return an object. 20:22
and also have, say, a table method... which is what you just said.
pmichaud I might be able to get postcircumfix:<{ }> working rsn
(but don't wait for me on that... lots of stuff on my plate this week)
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
pmichaud frettled: yes.
mberends frettled: no
masak Tene: I think I have a pretty good grasp of Sequel internals already. 'Dataset' is the cool tech in Sequel.
pmichaud frettled: see also 'autarch' :) 20:24
masak frettled: mine isn't religious... it's more of a science fiction relationship.
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
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.
pmichaud frettled: I'll find a better ref -- one moment
masak pmichaud: you mean before or after I'm done with my rewrite? :)
Tene: oki. almost done writing first test file. 20:26
PerlJam masak: working code trumps all bike-shedding :)
masak PerlJam: that's why I was working on a Rakudo branch in parallel.
it was a really good plan. then I ran out of tuits. 20:27
PerlJam no plan survives lack of tuits.
frettled :) 20:28
PerlJam just realized he's been walking around all day with a 3cm thorn stuck in his shoe
frettled good thing it was only the shoe
PerlJam (honestly I've been sitting most of the day :)
pmichaud frettled: www.nntp.perl.org/group/perl.perl6....30780.html
autarch == "Dave Rolksy" 20:29
but that thread also points out people who have strong interests in date/time :)
frettled pmichaud: aha, that was implied in a discussion earlier today, but I didn't quite get it.
masak 'should not handle [...] string parsing'. uh oh.
PerlJam masak: again, working code ... 20:30
masak aye. will do.
pmichaud afk for a bit
masak actually, I don't think it'll be that hard. Perl 6 is pretty good at parsing stuff.
PerlJam masak: DateTime.new(:year(2010), :month(10), :day(28)) is quite annoying IMHO
masak nod.
I know!
moritz_ aye
I do think that parsing "Tue Sep 8 22:31:36 CEST 2009" might be a bad idea though 20:31
PerlJam indeed
(at least initially :) 20:32
masak moritz_: I'm planning to parse large parts of ISO 8601.
the nice thing about that standard is that it's both well-defined and degrades nicely according to human expectations. 20:33
thus, '2010' is a valid date.
'2010-04' too.
moritz_ I've often been pleasantly suprised how much thoughts most ISO and RFC authors have put into their subject 20:34
(same for SVG btw)
masak verily. 20:35
not all committees are rotten.
M_o_C Which are? ;) 20:36
moritz_ many administrative I've dealt with
[particle] 802.11
M_o_C Hm, ok, my thoughts were stuck with software-world so nevermind :x
s/with/in/ 20:37
frettled Okay, I've read the discussion from February (rather quickly).
From what I can see, the leap second problem is taken rather lightly, as is usability. 20:38
masak: let's do something, show it to people, and see what happens. :)
masak frettled: you're on :)
did I give you a commit bit already?
moritz_ (is there another repo I should add to hugme? ;-) 20:39
pmurias moritz_: the xpath spec seems to be pretty badly written
masak moritz_: please.
moritz_ masak: uhm, which one?
masak moritz_: github.com/masak/temporal-flux-perl6syn
moritz_ ok
who should be able to hand out commit bits?
same as perl6-examples?
masak moritz_: sure.
frettled: it's 'jani' on github, right? 20:40
frettled masak: yep 20:41
masak: I think you gave me a commit bit to some project or other, but I don't quite recall now :)
masak frettled: consider yourself commitbitted.
.oO( 'commitbitten'? )
frettled heh, yes, the latter :D 20:42
moritz_ ssh: connect to host feather2.perl6.nl port 22: No route to host
that's bad.
masak hugme: hug frettled
ENOHUGME
frettled hugs masak without intermediate hugmes.
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 frettled sets mode: +o masak
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
masak frettled: did I mention I'm allergic to speccing by means of class definitions?
frettled TimToady: how do we get them from the OS?
masak: hehe
masak: (no, you didn't) 20:44
TimToady if the OS is inaccurate, it must be sterilized
masak I'd like that to go away in the process.
frettled The OS is probably adjusted by NTP, and doesn't know anything about TAI or whatever.
masak there's nothing wrong with talking about the methods in prose, or listing them a la S29.
frettled mm
masak but having actual implementation code in the methods _is_ wrong, by me.
frettled definitively
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
but atomic seconds are the gold standard
masak TimToady++ # pragmTAIc
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.
Tene TimToady: What's the reason for forbidding ' at the end of identifiers?
20:45 nbrown left
mikehh rakudo (62879bb) builds on parrot r41161 - make test / make spectest (up to 28207) PASS - Ubuntu 9.04 i386 (g++) 20:46
20:46 hercynium joined
mikehh rakudo - t/spec/S03-operators/arith.rakudo - TODO passed: 131 20:46
rakudo - t/spec/S12-attributes/class.rakudo and t/spec/S14-roles/basic.rakudo - Non-zero wait status: 11 (Segfault after passing tests)
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
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?)
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.
TimToady or, at least, where they were N milliseconds ago...
frettled PerlJam: SMOP :D
pmichaud if keeping dates, might as well keep times.
frettled pmichaud: yes, that's a matter of future-proofing it.
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_
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
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
frettled PerlJam: oh, yes, considering that $country changes their timezone whateverness occasionally 20:49
TimToady it's a complete double standard
ruoso can't really see many cases where UTC and local time zones won't be enough...
frettled so the new package should be called DoubleStandard, and when we want to access a time, we need: DoubleStandard::Date::Time.new()
*g,d&r*
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
ruoso but the hardware clock doesn't know about leap seconds
frettled the hardware clock doesn't, but when the system sets the hardware clock according to leap seconds, _something_ happens.
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.
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
TimToady if the atomic clock varies, then sure :)
PerlJam frettled: in whose frame of reference?
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
frettled ruoso: yes, because we just synchronize our watches occasionally
ruoso is there any DateTime lib that cares about leap seconds ni UTC?
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?
:-)
pmichaud it's also considered by gps navigators, iiuc
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
PerlJam ruoso: 'tis true.
TimToady ruoso: correct
frettled ruoso: Yes, currently, that is true.
But that assumption is not future proof.
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
ruoso TimToady, but our computers currently only have UTC idea of time
TimToady it would be better to converge on that than on sloppy civil time
screw our computers currently
pmichaud PerlJam: "nuke ourselves" means we just get a new definition of atomic time :)
TimToady if they're gonna be that inaccurate, I don't mind the inaccuracy of guessing TAI and backtranslating to UTC 20:56
but I want Perl 6's *idea* of time to be uniform
frettled quite!
TimToady atomically speaking
pmichaud TimToady: implementations are allowed to cheat, yes?
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
TimToady to the extent that they have to, sure, but the legal fiction is that it's TAI
ruoso TimToady, the easiest way to do that is to avoid epochs at all
pmichaud TimToady: that works for me :)
frettled PerlJam: :)
TimToady ruoso: the easiest way is to not think about it at all :P
pmichaud I'm all in favor of legal fictions. Perl 6 is full of them. We'll probably get sued over them.
masak got the test to fail
Tene: still there? 20:58
frettled pmichaud: good grief ;)
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
pmichaud something I did broke "make spectest" on my system
as in, "make spectest" itself failed in TAP/Multiplexer.pm line 139
pmichaud tries again.
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
assuming the translation is accurate, of course
ruoso TimToady, that was just a silly way to represent "cast to instant"...
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.
phenny masak: I'll pass that on when Tene is around.
masak good night, people.
21:00 zamolxes left 21:01 masak left
frettled good night, masak (I consider you people, too) 21:01
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
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.
pmichaud: yup
TimToady ruoso: it's a Rat number of TAI seconds, as accurate as you care to make it 21:04
so we're just using the TAI epoch implicitly 21:05
PerlJam "What time is it?" "8:30 epsilon 1500 seconds"
pmurias frettled: do os'es take leap seconds into account?
pmichaud where "epsilon 1500 seconds" == "ish" 21:06
TimToady varies
PerlJam pmichaud: many do
oos
pmurias: many do
frettled pmurias: NTP takes care of it for many of them
pmurias: so it depends on whether you consider ntpd to be part of the OS or not
TimToady where "takes care" means "papers over the difficulty"
pmichaud regardless, we *know* the OS doesn't have the correct time :-)
rephrase
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
pmichaud right, but our HLL isn't limited in its knowledge of time to the time source 21:07
HLLs are all about putting abstractions over OS, library, and hardware :) 21:08
even if we said "Perl keeps its time in UTC", the answer to ruoso's question would still be "duration of 2"
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 :)
pmichaud moritz_: abstractions over OS, library, and hardware increase the -Ofun for larger numbers of people :)
moritz_ ;-)
pmichaud and for some of us, building those abstractions are our strange notion of -Ofun
moritz_ pmichaud: that sounds like a side, not a goal ;-)
pmichaud ah
I'll rephrase then.
HLLs are about putting abstractions over OS, library, and hardware 21:10
*Perl 6* is about doing it with a lot of -Ofun
ruoso I think bottom line is, Perl doesn't need to "keep its time"... it's just "aware of leap seconds"
(which will probably make its time calculations to deviate from most datetime libraries currently implemented'
pmichaud we should probably make a library that emulates the behavior of "most datetime libraries", or people's notions of "civil time" 21:11
but Perl 6 should probably use TAI as its standard
ruoso pmichaud, but note that UTC includes the leap seconds itself
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
frettled mm
ruoso "but the number of seconds in a minute can be 60, or sometimes 61 or 59."
pmichaud yes, I did note that above.
TimToady there are no minutes in TAI
frettled that's secondary
;)
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
TimToady no days, either, but we can be reasonably certain that NTP will have "fixed" the clock by the end of Jan 1
21:13 nbrown left
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
old BSD used to change the clock by 10% till the time was adjusted, for instance
pmichaud either way we have to take care of leap seconds
21:14 nbrown joined
ruoso in my experience people usually mess up when they work with epoch times 21:14
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;
pmichaud that's from a misconception that a "day" is 86400 seconds
which is false even from a UTC perspective
ruoso precisely...
TimToady but true from the typical Unix box :)
ruoso that's why I mean not using epoch, but a full instant spec 21:16
frettled :)
ruoso TimToady, nah... most machines do use timezone configs nowadays
TimToady Perl 6 should just fail to compile any program containing 86400
ruoso heh
huf YES
pmichaud what about programs that are checking to see if your program is using 86400? ;-)
TimToady those should fail to fail 21:17
ruoso I'm not arguing against TAI
moritz_ pmichaud: you should know how to write a regex that matches 86400 and doesn't contain it as a substring ;-)
ruoso I'm arguing to promote the use of ISO8601 timestamps instead of epoch times
PerlJam is that like an inverse quine?
21:18 iblechbot joined
moritz_ PerlJam: something along these lines, yes ;-) 21:18
21:18 jaffa8 left
TimToady you're not arguing against epoch times, you're arguing against epoch durations 21:18
ruoso specially because ISO8601 takes timezones into account
I'm arguing against epoch math 21:19
(for most of their uses)
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"
ruoso pmichaud, precisely
frettled hehe
ruoso my point is exactly the same as why a string doesn't have a encoding
TimToady violent agreement
frettled My agreement is merely violet.
ruoso TimToady, yes and no... 21:21
I'm talking about user's education
TimToady nevertheless, if your string doesn't have a canonical encoding, you're hosed
Juerd moritz_: I've rebooted feather2 and it works again now.
21:21 payload joined
TimToady TAI is our canonical encoding 21:21
ruoso TimToady, but that's hidden inside the implementation for strings
TimToady Instants and Durations are TAI time 21:22
Juerd moritz_: Rebooting again, after reconfiguring libc6
PerlJam Juerd++
__ash__ is there a list of valid --trace=[flags] anywhere?
Juerd moritz_: echo 'hwcap 0 nosegneg' > /etc/ld.so.conf.d/libc6-xen.conf && ldconfig
pmichaud __ash__: they're the parrot trace flags
1 is "all opcodes"
4 is "subroutine entry/exits"
those are the only two I've ever found useful.
__ash__ oh, okay, got it
Juerd moritz_: Done, ready :)
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:23 dakkar left
TimToady then don't use it to store timezones 21:24
ruoso but if the standard Instant is TAI, the default is to loose the tz info 21:25
(which is almost the same mistake Java API did with the Date type)
(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.
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
it's just a fully-qualified instant 21:29
PerlJam ruoso: But I wanted a femto-second sized instant! 21:30
21:30 jhorwitz left
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
ruoso frettled, sure, but it has an associated data model 21:31
frettled (strictly speaking, ISO 8601 is considered representation, but …)
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:32
21:33 lmc left
ruoso frettled, you don't need to store both at the same tiem 21:33
they are easily convertable
TimToady spacetime is a unity in relativity, but for most purposes we'd like to track them separately in Perl 6
frettled ruoso: except that, as you pointed out, if you don't store time zone info, you lose that. 21:34
21:34 ejs joined
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
frettled I must admit that I was a bit quick at answering, yes, TAI + TZ would probably do it.
TimToady crap
frettled TimToady: hmm? 21:35
TimToady sorry, my finger slipped :)
ruoso loosing the TZ info in the default Instant type seems like a mistake to me
TimToady it's not
ruoso a mistake Java API did
21:36 _timbunce joined
frettled ruoso: it's only a mistake if you care about TZ info when you want to store a point in time. 21:36
21:36 xomas_ joined
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
frettled ruoso: from my point of view, this is a case for subclassing.
or a role
Let's call that a «localized instant». 21:37
TimToady call it a spacetime
ruoso TimToady, an Instant carries more semantics than the number of seconds since something happened
frettled I know that this might be important to people.
PerlJam frettled: sounds like "a local representation of this TAI time" to me
ruoso PerlJam, it's not
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)
TimToady call it a stardate :)
frettled heh
21:38 _timbunce is now known as tb841
pmichaud it seems weird that an identical instant would have multiple representations. 21:38
21:38 tb841 is now known as tim
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 tim is now known as _tim_
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 _tim_ is now known as _tim__
TimToady at some instant, you mean 21:39
frettled Stardate 2009.251, Ensign's log …
TimToady we could just redefine 100 years
ruoso pmichaud, for a *lot* of cases, the timezone implies a different *date*
PerlJam at some chronomic resonance.
ruoso really needs to go, or else his car will get locked into the park... 21:41
ruoso later &
21:41 ruoso left
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
for most purposes we can neglect relativity 21:43
frettled Yep. 21:44
And if we should need to support relativity, I think adding a library or whatchamacallit would be fine -- when we need to do so.
TimToady gives localtime a new meaning 21:45
bbl & 21:46
PerlJam It's good to have physicists in the family in any case ;)
frettled :D
I'll take masak's hint and head for home & bed now, good night!
PerlJam g'night frettled
21:47 snearch joined
PerlJam wanders off too 21:48
PerlJam &
21:50 mberends left 21:52 tak11 joined 21:54 timbunce left 21:56 snearch left 22:00 patspam left 22:11 cmv left 22:13 cmv joined 22:14 __ash__ left 22:15 frew_ left, frew_ joined, sharada left, ejs left 22:18 __ash__ joined, mrsaturn joined
mrsaturn rakudo: "hello, everyone".say; 22:18
p6eval rakudo 446d49: OUTPUT«hello, everyone␤» 22:19
22:19 KyleHa left 22:21 sm` left 22:22 sm` joined
mrsaturn I like @array.any more than any(@array) 22:23
22:28 hercynium left 22:29 cognominal joined 22:30 athaba left 22:31 zamolxes joined, iblechbot left
TimToady mrsaturn: it's likelier to be efficient too, my gut tells me 22:45
22:45 alester left
TimToady but the other reads better in English 22:45
22:45 _tim__ left
mrsaturn I still like @array.any. But I guess any(@array) does make slightly more sense 22:46
22:47 nbrown left 22:48 Limbic_Region joined
mrsaturn is the p6eval bot written in perl? 22:49
22:51 ruoso joined 23:02 Limbic_Region left 23:04 patspam joined 23:10 __ash__ left 23:15 pmurias left 23:16 freenose joined 23:19 sm` left 23:22 sm` joined, hercynium joined 23:23 _tim__ joined
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:26
TimToady Instant is a Real 23:27
build whatever you like on top of that
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
ruoso as in "built-in" 23:30
TimToady we will not make it difficult to deal with civil time :) 23:31
ruoso is that a yes?
TimToady and as far as I'm concerned, Temporal::DateTime is about 2x too long a name
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
TimToady note that location of many computers is changing from instant to instant though :)
I suspect it assumes a fixed-location computer...
ruoso DateTime->now(time_zone => 'local') # solves that 23:33
TimToady you mean it reads it from the GPS? :)
ruoso well, some computers do update the tz info from gps data
Juerd Is feather user shay on IRC?
ruoso openmoko phones are one example
TimToady Juerd: not that I know of
ruoso (although it does it using GSM, not GPS) 23:34
Juerd will email him/her then
TimToady I expect that GPSs will eventually be so cheap they'll just be built into to almost all devices
Juerd I think setting up one ssh connection per second is somewhat superfluous :)
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
where one is TAI, and the other is TZ-aware
TimToady I've been wanting to go in for some time and s:g /Temporal::/ :)
er s:2nd[/] = '//' 23:36
23:36 drbean joined
TimToady DateTime certainly needs to be location aware, since civil time is location aware 23:36
Juerd " :)\ner s:2nd["syntax error...? :)
ruoso TimToady, (s:g/Temporal::/)++ 23:37
but I'd still rework its API looking at p5 DateTime, which is currently the de-facto standard type 23:38
TimToady well, anything related to "civic" will need continual redesign as the goverments redefine civilization 23:39
I'm assuming the defintion of TAI won't drastically change by government whim :)
ruoso physicists whim is much more stable after all 23:40
;)
TimToady we might, possibly, prefer someday to go with "local atomic time", after every device gets an atomic precision clock
then we'll have to deal with relativity and clock skew :) 23:41
23:41 nihiliad left
TimToady but I think we can stick with consensus atomic time for a few decades yet 23:41
ruoso although the concern about during-process ntp adjustments is probably valid 23:42
23:42 nErVe left
TimToady it would be nice to be able to tap into ntp's decisions to estimate the CPU clock's inaccuracy 23:42
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.
TimToady and I'm sure ntp has a very good notion in its configuration as to what time model the OS/cpu uses
whether adjtime is supported, and such
23:45 nErVe joined
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:46
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
:name($var) = "default"
or :$var = "default"
by "named" do you mean "named-only"?
since all parameters are potentially named if they have an identifier 23:49
ruoso named-only, yeah
23:50 M_o_C left
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:52
maybe a drift file already contains the necessary info # not an NTP geek 23:54
but there are also some events at the discontinuities that may need to be handled somehow
23:55 Hale-Bopp left
ruoso Rat is narrower than Num, right? 23:56
so it should probably be better to use Num in the API definition....
23:57 meppl left
ruoso considering keeping Date and Time inner types inside the DateTime package 23:59
but maybe not