Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-09-27

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 crythias serious question: In the operator section of the manual, what does >>: - converts (decimal) numbers to another base, number of base follows after the ":"<< mean?
00:03 crythias I read it to say 10:2 outputs 1010 or something.
00:06 quietfanatic Do you mean in S03?  I can't find anythig like that there.
00:06 crythias no. I mean something else. Sorry. I know it's not in S03... now...
00:08 crythias http://www.perlfoundation.org/perl6/index.cgi?perl_table_index
00:10 quietfanatic Okay, I see.
00:11 quietfanatic That's probably talking about :16(FACE) and kin
00:12 quietfanatic rakudo: :16(FACE)
00:13 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub FACE␤»
00:13 quietfanatic rakudo: :16<FACE>
00:13 p6eval rakudo 834929:  ( no output )
00:13 quietfanatic rakudo: say :16<FACE>
00:13 p6eval rakudo 834929: OUTPUT«64206␤»
00:13 quietfanatic Okay, it takes a string in angles or an expression in parens.
00:18 justatheory joined #perl6
00:19 crythias I'm just curious how I'd guess that from the english statement?
00:24 quietfanatic It doesn't say what kind of operator it is.
00:42 TiMBuS joined #perl6
00:43 payload joined #perl6
00:45 dolmen rakudo: say (1/7)
00:45 p6eval rakudo 834929: OUTPUT«0.142857142857143␤»
00:45 dolmen rakudo: say (1/7).perl
00:45 p6eval rakudo 834929: OUTPUT«1/7␤»
00:45 dolmen rakudo: say (1/7).WHAT
00:45 p6eval rakudo 834929: OUTPUT«Rat()␤»
00:45 dolmen rakudo: say (7*(1/7)).WHAT
00:45 p6eval rakudo 834929: OUTPUT«Rat()␤»
00:45 dolmen rakudo: say (7*(1/7))
00:45 p6eval rakudo 834929: OUTPUT«1␤»
00:46 dolmen rakudo: say (7*(1/7)).WHAT
00:46 p6eval rakudo 834929: OUTPUT«Rat()␤»
00:46 dolmen rakudo: say (7*(1/7)).^methods
00:46 p6eval rakudo 834929:
00:46 p6eval ..OUTPUT«StrnewpredsecnudenumeratorsuccNumdenominatorperlrindexsqrtasinintatanhcoshcosecgrepvaluescharsrootsreverseisaucfirstkvsamecasetancoscapitalizefmtbytesflipdoesp5choplcasinhacotanreducecotanhchracotanh:d:e:fcombfloorasechatanacosroundchoptanhsplitmatchacoshwordscancotanatan2lcfirstuc…
00:46 dolmen rakudo: say (7*(1/7)).Num
00:46 p6eval rakudo 834929: OUTPUT«1␤»
00:46 dolmen rakudo: say (7*(1/7)).Num.WHAT
00:46 p6eval rakudo 834929: OUTPUT«Num()␤»
00:49 nsh joined #perl6
00:49 sbp joined #perl6
00:51 nsh_ joined #perl6
00:55 Whiteknight joined #perl6
01:33 rhr joined #perl6
01:52 awwaiid joined #perl6
02:34 wormphlegm joined #perl6
02:41 jaldhar joined #perl6
03:06 xomas_ joined #perl6
03:21 pugs_svn r28436 | jimmy++ | [zh-cn/syn/]deleted old file.
03:37 crythias left #perl6
03:39 jaldhar joined #perl6
03:47 JimmyZ joined #perl6
03:49 diakopter rakudo: definition
03:49 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub definition␤»
03:49 diakopter rakudo: non-existent
03:49 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub non-existent␤»
03:50 quietfanatic rakudo: ロ
03:50 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub ロ␤»
03:51 quietfanatic rakudo: ー
03:51 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub ー␤»
03:52 quietfanatic rakudo: suь
03:52 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub suь␤»
03:53 quietfanatic rakudo: ѕub
03:53 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub ѕub␤»
03:53 quietfanatic std: ѕub
03:53 p6eval std 28436: OUTPUT«Undeclared routine:␤   ѕub used at line 1␤ok 00:01 95m␤»
04:07 alester joined #perl6
04:08 diakopter rakudo: lapsarian
04:08 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub lapsarian␤»
04:08 diakopter ORLY?  well they all must've been raptured away.
04:17 diakopter or not.
04:19 diakopter vijs: say " lt","a" lt "b" lt "c", "a" lt "a" lt "b"," le","a" le "b" le "b", "a" le "b" le "a"," gt","c" gt "b" gt "a", "c" gt "c" gt "b"," ge","b" ge "b" ge "a", "c" ge "b" ge "c"," eq","a" eq "a" eq "a", "a" eq "b" eq "b"," ne","a" ne "b" ne "a", "a" ne "a" ne "b"
04:19 p6eval vijs 28436: OUTPUT« lt10 le10 gt10 ge10 eq10 ne10␤»
04:47 molaf joined #perl6
04:54 mberends joined #perl6
05:00 JimmyZ_ joined #perl6
05:01 jaldhar joined #perl6
05:18 * mberends looks for diakopter
05:18 alester joined #perl6
05:20 ihrd joined #perl6
05:20 xomas_ joined #perl6
05:22 ihrd left #perl6
05:25 justatheory joined #perl6
05:27 charsbar joined #perl6
05:29 iblechbot joined #perl6
05:38 lucs joined #perl6
06:23 mikehh rakudo (834929c) builds on parrot r41511 - make test / make spectest_smolder (up to 28436 -> #28158) PASS - Ubuntu 9.04 amd64
06:25 patspam joined #perl6
06:40 icwiener joined #perl6
06:58 Rugxulo joined #perl6
07:04 agentzh joined #perl6
07:08 zamolxes joined #perl6
07:32 frew__ joined #perl6
07:43 abra joined #perl6
07:59 Zloyrusskiy joined #perl6
08:13 mberends bad news for Cheese Speleology (btw, love that term ;) : ./proto test <project> fails on many, many projects
08:59 am0c joined #perl6
09:00 Zloyrusskiy joined #perl6
09:06 moritz_ vijs: say 3 if 1 < 2
09:06 p6eval vijs 28436: OUTPUT«3␤»
09:06 moritz_ vijs: say 3 if 1 < 2 < 4
09:06 p6eval vijs 28436: OUTPUT«3␤»
09:06 moritz_ vijs: say 3 if 1 < 2 < 0
09:06 p6eval vijs 28436:  ( no output )
09:18 ejs joined #perl6
09:32 Jedai joined #perl6
09:49 ShaneC joined #perl6
09:51 ShaneC is it possible to get at environmental variables in rakudo right now?
09:52 moritz_ ShaneC: yes
09:52 moritz_ rakudo: say %*ENV<PATH>
09:52 p6eval rakudo 834929: OUTPUT«/usr/local/bin:/usr/bin:/bin:/usr/games␤»
09:52 ShaneC thanks
09:53 moritz_ you're welcome
10:03 am0c joined #perl6
10:23 meppl joined #perl6
10:33 pugs_svn r28437 | jimmy++ | [zh-cn/syn/S02-bits.pod]added Chinese translation to S02, hadn't do much work.
10:50 Woodi hi ppls, can i ask why so many different p6 implementations ? haskel and js lastly...
10:53 diakopter mberends: hi!
10:53 mberends diakopter: rehi!
10:53 diakopter thanks for all the operators..
10:54 mberends I tried to proceed to the x operator, but got stuck :(
10:54 diakopter how far did you get
10:55 mberends the js method was to be called do_Replication according the error message when it's missing, but adding that did not work
10:55 diakopter oh...
10:56 diakopter the do_ prefix is only for ones that are 'pre-resolved'
10:56 mberends also, the error messages mentioned my last additions, so I thought I might have not done them quite right ..
10:56 mberends diakopter: I get it
10:57 diakopter so you'd have to add a function to interp.js
10:57 mberends btw, it would be easy to stringify "True" and "False", any reason why not?
10:57 diakopter the spec is to stringify them to 1,0
10:58 mberends ok, then Elf is wrong
10:58 Muse\ joined #perl6
10:59 diakopter Replication would a function on the 'disp' ("bytecode" dispatch) object
11:00 mberends I have to go away for a few hours, but I'm looking forward to more vivjs hacking this euro-evening. Leave Replication to me as a nice yak to shave, it should be away from your critical path.
11:00 diakopter Replication:function(){ switch(this.phase) { case 0: /* init phase; generate/return next continuation */; case 1: /* finalize/process results */ } },
11:00 mberends ooh :)
11:00 diakopter that's the general form of the expression "node type" handlers in interp.js
11:01 diakopter they always return an array, either 1 or 2 entries
11:01 diakopter 1 entry if they're _done_; two if they're still to be considered "inside"
11:02 diakopter ttyl; have fun with Replication
11:02 mberends I'm not sure exactly what "inside" means, but "the source code is the documentation"
11:03 diakopter the general solution would be to generate a Concatenation node iteratively
11:03 diakopter (like __NIBBLER does, except x times)
11:03 mberends yep, got as far as that yesterday, but could not find the hook
11:03 diakopter the continuation returning model is there to avoid stack overflow in JS
11:04 mberends ok
11:04 diakopter so "inside" means "keep it on the stack"
11:04 diakopter aka, assign this node as the .invoker of whatever node it returns, if it returned 2
11:05 diakopter return [this.do_next, this]; // what that means
11:05 mberends ok, that rings a bell. must go now, will backlog later &
11:05 diakopter return [this.invoker]; // the continuation node is done; aka "return" from a non-trampolined/stackless function call
11:05 diakopter l8r
11:06 * mberends *thinks* he groks most of the above ;)
11:07 * diakopter still hacking on Test.pm.js
11:08 Woodi diakopter: maybe you can explain why p6 in js is coming ? just for fun ?
11:10 diakopter Woodi: yep, something like that
11:10 Woodi and this is only one motivation ? do not tell if it's secret :)
11:10 diakopter it's not secret
11:11 diakopter I'm spending my time on Perl 6 because it's challenging to me
11:11 diakopter and extremely fun to be involved in the community
11:11 Woodi i looked on p6 operators list... no other language have something like this :)
11:12 diakopter the reason I chose JavaScript is that I'm excited about the performance of newer JS engines such as V8
11:12 Woodi i think it will scary new users like "ugly regexps" in p5...
11:13 Woodi how V8 compares to p5 or python ?
11:14 Woodi perfirmance i mean
11:14 diakopter well
11:14 Woodi ok :)
11:14 Woodi good hacking :)
11:15 diakopter I'd point you to the alioth language shootout game
11:15 Woodi k, i will check it
11:19 diakopter where the JS programs on V8 were dominating
11:19 diakopter until a recent upgrade (which made readline() on V8 conform to the Tracemonkey readline())
11:20 diakopter which broke some of my microbenchmark programs on that site which were tailored to V8's readline
11:20 diakopter I really need to post updated versions of those programs
11:20 diakopter in regex-dna, JavaScript/V8 was the fastests of *all* the languages, including C/C++
11:21 diakopter I don't think Python beat it on any
11:21 diakopter Perl beat it on 1, I think
11:21 abra joined #perl6
11:23 ejs1 joined #perl6
11:27 diakopter Woodi: see above
11:31 TiMBuS why cant google get the v8 team to write a jit for androids VM :(
11:31 diakopter TiMBuS: it has it, I thought
11:31 TiMBuS nope
11:31 TiMBuS dalvik runs painfully slow
11:32 diakopter what JS engine does android use?
11:32 diakopter I thought it used chrome/v8
11:33 TiMBuS oh, no not for the browser
11:33 TiMBuS i mean the VM the entire phone uses
11:34 TiMBuS im not sure what the browser uses. probably not v8
11:34 diakopter why wouldn't it; there's a version that emits arm
11:36 masak joined #perl6
11:36 masak oh hai, #perl6
11:36 colomon o?
11:36 colomon o/
11:36 masak :)
11:37 TiMBuS i dunno diakopter, it doesnt seem to have it tho..
11:37 masak interesting how the question mark actually looks like an arm scratching one's head.
11:38 * diakopter launches LiveAndroid in vmware
11:39 colomon if we could standardize o? as head scratching, it could save me a lot of typing here...
11:39 TiMBuS but more to the point: dalvik needs a jit. the iphone just puts my phone to shame in the speed department atm
11:40 diakopter colomon: :)
11:43 diakopter Woodi: no; I was wrong on that; Python/Perl beat JS/V8 on pidigits, since both of those use GMP; JS/V8 emulates bigints in pure JS
11:45 diakopter interestingly, the JS/V8 edition of pidigits is roughly 32x slower than the python edition
11:47 diakopter Woodi: I just uploaded the fixed regex-dna.v8; check the charts in a day or two, and you'll be impressed
11:48 Woodi diakopter: i checked on alioth and it's sad that perl is far far down..
11:49 Woodi implementing jit like in v8 into parrot would be nice
11:50 diakopter v8 doesn't really JIT; it immediately compiles all JS code directly to architecture-specific machine code, linked to its C++ runtime
11:50 * Woodi just installed Chrome
11:50 Woodi diakopter: yes, i mean compilation to native + "loops inlining"
11:51 Woodi diakopter: looks that inlining works better then optimisations in gcc ;)
12:11 Whiteknight joined #perl6
12:11 ejs1 left #perl6
12:13 masak rakudo: role Maybe[::T] { has T $!value; has Bool $.has-value; method just(T $value) { self.bless(*, :$value, :has-value(True)) }; method nothing { self.bless(*, :has-value(False)) }; method value { die unless $.has-value; $!value } }; my Maybe[Int] $m1 .= just(5); given $m1 { when .has-value { say .value } }
12:13 p6eval rakudo 834929: OUTPUT«5␤»
12:13 masak Haskell in Perl 6.
12:22 pugs_svn r28438 | Kodi++ | [t/spec/S04-statements/try.t] Moved tests of CATCH blocks to
12:22 pugs_svn r28438 | /t/spec/S04-exception-handlers/catch.t and removed uses of try
12:22 pugs_svn r28438 | from them (try is redundant if the block thus prefixed contains a
12:22 pugs_svn r28438 | CATCH).
12:22 pugs_svn r28438 |
12:22 pugs_svn r28438 | [t/spec/S04-exception-handlers/catch.t] Added some more tests.
12:23 masak phenny: tell mberends that I still have plans for a few changes in Temporal. my idea is to evolve the spec, the test suite and Rakudo at the same time in a sort of fait-accompli. really only blocking on sufficiently long string of consecutive tuits.
12:23 phenny masak: I'll pass that on when mberends is around.
12:25 carlin rakudo: my $s = IO::Socket::INET.new; $s.open('127.0.0.1', 80); my $c = $s.accept();
12:25 p6eval rakudo 834929: OUTPUT«Null PMC access in isa()␤in Main (/tmp/ot3MSEq8Ix:0)␤»
12:31 NorwayGeek joined #perl6
12:38 moritz_ Kodi++
12:41 abra joined #perl6
12:41 iblechbot joined #perl6
12:42 pugs_svn r28439 | moritz++ | [t/spec/S04-exception-handlers/catch.t] fixed a few syntax errors. Also sting appending is ~=, not =~
12:43 dalek rakudo: a61b17f | moritz++ | t/harness:
12:43 dalek rakudo: [t/harness] only provide extra_properties when we use ::Archive
12:43 dalek rakudo: This unbreaks 'make $path_to_one_file.t'
12:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a61b17f0eeb06ad4370fc08af33b75c4e2fd985f
12:48 dalek rakudo: 0331d60 | moritz++ | docs/ChangeLog:
12:48 dalek rakudo: [docs] ChangeLog updates
12:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0331d6030f8f07e8dc0c31ff54b191f10e21a4aa
12:53 masak rakudo: saharan-climate-in-antarctica-but-we're-working-on-it
12:53 p6eval rakudo 834929: OUTPUT«Could not find non-existent sub saharan-climate-in-antarctica-but-we're-working-on-it␤»
12:54 nihiliad joined #perl6
12:55 masak phenny: tell mberends that as for the Cheese Speleology and the many failing tests, that's actually good news. looking forward to setting up the regular smoker and seeing people start to care about all-green status and other reasons for pride.
12:55 phenny masak: I'll pass that on when mberends is around.
12:59 * moritz_ wants command line completion for ./proto install s<tab>
13:00 masak moritz_: that's not very far-fetched, you know.
13:00 moritz_ masak: I know
13:00 masak I'm not saying I personally know how to extend the bash tab completer, but it can definitely be done.
13:00 * jnthn keeps wishing more things did that...
13:02 JimmyZ joined #perl6
13:02 masak tab completion is like a slow drug... :)
13:02 masak before you know it, you want it everywhere.
13:02 * jnthn didn't try slow drugs yet
13:02 jnthn ;-)
13:02 masak and when you don't get it, you get very cranky.
13:03 masak jnthn: still on those fast drugs, are you? :P
13:03 * jnthn wishes irssi tab completation was smart enough to finish whole sen<tab>
13:03 masak (scnr)
13:04 jnthn (Korean Food)++ # making up for the pouring rain all day
13:04 masak we have sunshine here, but sadly no Koeran Food.
13:04 masak though I did read some Korean news this morning.
13:05 masak people are being reunited across the North/South border.
13:05 masak 59 years after the split.
13:05 jnthn Aye, I read that one too.
13:06 masak as topsy-turvy as this world seems sometimes, it's nice to watch the positive developments between N/S Korea, and between Mainland China and Formosa.
13:07 jnthn When they're positive ones, yes.
13:07 masak they're a great lot more positive than in the past 60 years.
13:08 masak overall.
13:08 jnthn Yes, true.
13:08 jnthn I hope that'll be sustained rather than a blip.
13:08 masak mm.
13:09 moritz_ Installing proto...sh: -c: line 0: unexpected EOF while looking for matching `''
13:09 * jnthn tries to work out masak's use of Formosa rather than Taiwan
13:10 moritz_ I get that for some projects I want to install
13:11 pugs_svn r28440 | jimmy++ | [Spec]added C<...> format for Unicode code point number.
13:11 jnthn WikiPedia only says "also known as"...well, I knew that much. :-)
13:11 masak jnthn: actually, I have no preferences as to the name. I find "Formosa" a very pretty name. and it's far away from all debates about whose island it is.
13:12 jnthn The second bit is what I was wondering about more.
13:15 masak jnthn: about a year ago, I wrote a small essay on the PRC/RoC relations. I find it enormously fascinating.
13:15 jnthn masak: Published anywhere, or private?
13:16 masak jnthn: not published, as far as I know. but it's probably in Swedish. I'll check.
13:17 masak how unfair. mberends creates a bug in a branch, and GitHub sends me an issue ticket. :P
13:17 moritz_ masak: he ;-)
13:21 cognominal I see there is zh-tw and a zh-cn, what's the difference? the speak a different language?
13:21 arthur-- joined #perl6
13:21 cognominal or is that more like en-en and en-us?
13:21 masak cognominal: from what I understand, the two variaties of Mandarin are still mutually understandable.
13:22 masak cognominal: but the biggest difference is in the sets of hanzi used.
13:22 masak (characters)
13:22 masak cognominal: Taiwan uses the traditional variety, Mainland uses a simplified script.
13:22 JimmyZ hello masak, could you see my pm?
13:22 masak JimmyZ: reading it now.
13:22 JimmyZ thanks.
13:23 cognominal masak: interesting
13:23 masak JimmyZ: if you don't highlight me, it might take me a while to notice it. :)
13:23 JimmyZ ;)
13:23 cognominal somehow a dictature may help for a deep language reform
13:23 masak cognominal: yes, and not very surprising. the simplified hanzi are, after all, a communist invention.
13:23 masak cognominal: but there was some surprising news a while ago that Taiwan might switch too.
13:31 jnthn masak: (swedish) so at the end of it, do you hope for a bra slut? ;-)
13:32 masak *rimshot*
13:32 masak others: sv:'bra slut' means en:'good ending'. :)
13:34 NorwayGeek joined #perl6
13:37 masak yet another Twitter spambot tweeting the cranky-editorial thing. :)
13:37 masak for some reason, that amuses me.
13:40 * jnthn ponders joining Twitter now and then
13:41 cognominal what scares me is that if programs that learn english by statical analysis will get a more and more skewed view bty analyzing output from bots. There will be probably some strange attractor at work but the result will not be prestty.
13:41 cognominal worse, they could try to learn from my broken english.
13:42 cognominal jnthn, a blizkost twitter channel would be nice.
13:43 moritz_ jnthn: sometimes I ponder that too. And then I remember that IRC is a large enough time sink already :)
13:43 mauke joined #perl6
13:44 jnthn Yeah
13:44 masak everything's time sinks. that's how time works.
13:45 huf where's it all coming from then?
13:45 cognominal ...that's how time sucks
13:48 Woodi can i compile rakudo_2009_09 with parrot-1.4 ?
13:48 moritz_ Woodi: no
13:49 moritz_ Woodi: the rakudo 2009-09 release needs parrot-1.6
13:49 moritz_ the 2009-08 release needs parrot-1.5
13:49 moritz_ etc.
13:49 Woodi ok, thanx
14:01 am0c joined #perl6
14:02 diakopter std: role Maybe[::T] { has T $!value; has Bool $.has-value; method just(T $value) { self.bless(*, :$value, :has-value(True)) }; method nothing { self.bless(*, :has-value(False)) }; method value { die unless $.has-value; $!value } }; my Maybe[Int] $m1 .= just(5); given $m1 { when .has-value { say .value } }
14:02 p6eval std 28440: OUTPUT«Potential difficulties:␤  Possible obsolete use of .= as append operator; in Perl 6 please use ~= instead at /tmp/5g1xHDgf9h line 1:␤------> [32malue; $!value } }; my Maybe[Int] $m1 .= [33m⏏[31mjust(5); given $m1 { when .has-value { s[0m␤ok 00:02 104m␤»
14:03 diakopter std: role Maybe[::T] { has T $!value; has Bool $.has-value; method just(T $value) { self.bless(*, :$value, :has-value(True)) }; method nothing { self.bless(*, :has-value(False)) }; method value { die unless $.has-value; $!value } }; my Maybe[Int] $m1 .= just(5); given $m1 { when .has-value { say .value } }
14:03 p6eval std 28440: OUTPUT«Potential difficulties:␤  Possible obsolete use of .= as append operator; in Perl 6 please use ~= instead at /tmp/eoQYDlCNtZ line 1:␤------> [32malue; $!value } }; my Maybe[Int] $m1 .= [33m⏏[31mjust(5); given $m1 { when .has-value { s[0m␤ok 00:02 104m␤»
14:04 * masak wonders why STD.pm's .= warning triggers on that piece of code
14:04 * diakopter doesn't know either
14:04 jnthn Not sure what heuristic it's using.
14:05 masak if only the source was published online somewhere!
14:06 [particle] joined #perl6
14:06 masak oh, there's my sarcasm hat. on my head. I wondered where'd it'd got to.
14:07 * masak reads STD.pm source
14:07 masak aha! it suppresses the warning if the .= is before a 'new'.
14:08 masak but since the Maybe code uses custom 'new' methods, it warns.
14:08 moritz_ maybe it should only warn if the following is string literal
14:08 masak seems to me it should check whether it's in a 'my' (or similar) declaration instead.
14:08 masak maybe.
14:09 jnthn well
14:09 jnthn if the following is not a sub call of some kind.
14:09 jnthn (that gets transformed to a method call)
14:11 c9s_ joined #perl6
14:11 abra_ joined #perl6
14:16 mberends phenny, I've seen all the messages, thanks
14:16 phenny mberends: 12:23Z <masak> tell mberends that I still have plans for a few changes in Temporal. my idea is to evolve the spec, the test suite and Rakudo at the same time in a sort of fait-accompli. really only blocking on sufficiently long string of consecutive tuits.
14:16 phenny mberends: 12:55Z <masak> tell mberends that as for the Cheese Speleology and the many failing tests, that's actually good news. looking forward to setting up the regular smoker and seeing people start to care about all-green status and other reasons for pride.
14:17 jnthn bot fails at intelligence. News at 11.
14:17 * masak hugs phenny
14:18 moritz_ hugme: hug phenny
14:18 * hugme hugs phenny and blushes
14:18 jnthn hugme: hug phenny
14:18 * hugme hugs phenny
14:19 jnthn .oO( Oh great, now I get to try and work out how to make phenny blush )
14:19 jnthn phenny: hug moritz_
14:19 jnthn erm
14:19 jnthn hugme: hug moritz_
14:19 moritz_ :-)
14:19 * hugme hugs moritz_
14:19 jnthn hugme: hug moritz_
14:19 * hugme hugs moritz_ and blushes
14:19 jnthn ah
14:19 moritz_ jnthn: it's a random feature
14:19 mberends jnthn: hug Pugs
14:19 jnthn hugme: hug Pugs
14:19 * hugme hugs Pugs
14:19 abra joined #perl6
14:19 pugs_svn r28441 | jimmy++ | [zh-cn/syn/S02-bits.pod]added a bit translation, masak++ for helping me.
14:20 jnthn moritz_: cute :-)
14:24 JimmyZ_ joined #perl6
14:24 Lorn joined #perl6
14:31 Psyche^ joined #perl6
14:34 mberends masak: [Temporal] great, I'm also preparing to climb in, but not as a Spec author, just an implementer
14:34 masak mberends: if you want, we could pool our resources, for great justice.
14:35 mberends masak: [Cheese Speleology] +1, "./proto test all" is not far off, and the nagging of project authors to clear their bitrot can increase
14:35 masak I already have a git repo; I could prep it with the ideas I have about Temporal, and you can help me implement it. :)
14:35 mberends ok
14:36 masak mberends: did you see the moritzbug for './proto install svg-match'?
14:36 mberends the one about Test.pm?
14:37 moritz_ the one about shell escapes causing an error
14:37 moritz_ see the issue list
14:39 mberends moritz_, where is the issue list?
14:39 alester joined #perl6
14:39 masak mberends: http://github.com/masak/proto/issues
14:39 jan joined #perl6
14:41 mberends ah thanks, will reproduce locally and (hopefully) fix. Only in installed-modules branch, though.
14:42 mberends must go again, will backlog l8r &
14:48 Zloyrusskiy joined #perl6
14:58 rfordinal3643 joined #perl6
15:02 rfordinal3643 left #perl6
15:16 JimmyZ joined #perl6
15:20 s1n_mini joined #perl6
15:23 alester joined #perl6
15:23 NorwayGeek joined #perl6
15:28 __ash__ joined #perl6
15:37 justatheory joined #perl6
15:42 masak standard Perl 6 object creation doesn't catch typos in attribute names.
15:43 masak you might think I'm irritatedly pointing this out after vainly trying for half an hour to understand a logical bug caused by such a typo.
15:43 masak but actually, that's not the case.
15:43 masak I just happened to think about it after reading A12, and while producing a class hierarchy for Squerl.
15:44 masak isn't that one of the main complaints of many Perl 5 OO approaches, that they don't catch typos in attribute names?
15:47 masak rakudo: say "OH HAI".Str
15:47 p6eval rakudo 0331d6: OUTPUT«Str()<0x2b28ca8bccb0>␤»
15:47 masak couldn't it be argued that the stringification of a Str should be that Str?
15:47 masak hm, or maybe not.
15:48 masak rakudo: say ~'OH HAI'
15:48 p6eval rakudo 0331d6: OUTPUT«OH HAI␤»
15:48 jnthn I'm a little surprised by that.
15:48 masak maybe that's the ultimate difference between ~ and .Str, that the former only calls the latter if self !~~ Str
15:49 ejs1 joined #perl6
15:49 masak if that's the case, then I have a new Best Practice for Perl 6: use only ~ inside custom .Str methods! :)
15:50 masak it's shorter, and it DTRT.
15:53 pugs_svn r28442 | jimmy++ | [zh-cn/syn/S02-bits.pod]added translation for Whitespace and Comment, which most is done.
15:57 __ash__ do you have to override '~' differently than .Str?
15:57 phenny __ash__: 25 Sep 08:33Z <jnthn> tell __ash__ yes, it's fine if you do that. :-)
15:58 moritz_ no
15:58 moritz_ rakudo: class A { method Str { 'foo' } }; say 'bar' ~ A.new() ~ 'baz'
15:58 p6eval rakudo 0331d6: OUTPUT«barfoobaz␤»
15:59 __ash__ cool, got ya
16:06 masak the reason for the Best Practice, unless that's not already obvious from the above, is that ~ probably Does What You Mean more often than Str.
16:07 masak in an AST-like hierarchy of types, it might not always be possible to predict when one'll get a Str and when not. using ~ avoids unpleasant surprises.
16:07 mauke left #perl6
16:15 mikehh rakudo (0331d60) builds on parrot r41528 - make test / make spectest_smolder (up to 28442 -> #28189) PASS - Ubuntu 9.04 amd64
16:22 synth^3 joined #perl6
16:25 jrtayloriv joined #perl6
16:55 payload joined #perl6
17:00 rhr_ joined #perl6
17:06 abra_ joined #perl6
17:19 am0c__ joined #perl6
17:24 sparc joined #perl6
17:28 Woodi hi ppls, it is possible rakudo build not finish in 4h on Pentium 3, 700 Mhz ?
17:28 moritz_ Woodi: is parrot already built?
17:28 Woodi yes, 1.6
17:29 Woodi now "work" on generating src/gen_setting.pm...
17:29 moritz_ is it swapping?
17:30 Woodi no i think, just 50% mem sometimes 60%
17:31 moritz_ well, the build is not fast, and compiling src/gen_setting.pm is the slowest step, but... 4h is a bit much
17:31 moritz_ on a 3 GHz machine (or so) it takes about 100s to build rakudo
17:32 moritz_ rakudo: say 3e9 / 700e6 * 100 / 60 # time in minutes it should take, by crude estimation
17:32 p6eval rakudo 0331d6: OUTPUT«7.14285714285714␤»
17:33 pugs_svn r28443 | Kodi++ | [docs/feather/syn_index.html] Added an id attribute so the main table can be bookmarked.
17:33 __ash__ joined #perl6
17:34 pmurias joined #perl6
17:35 moritz_ http://nermal.org/misc/javascript.jpg
17:35 Woodi nice desk :)
17:36 ejs joined #perl6
17:36 moritz_ not mine ;-)
17:36 __ash__ moritz_: don't you love javascripts magic ';'
17:37 moritz_ maybe I'd love JS if most compilers implemented the standard, nothing more and nothing less
17:37 NorwayGeek joined #perl6
17:38 Woodi maybe it can be swapping...
17:39 moritz_ what operation system do you use?
17:39 Woodi Debian of course
17:39 moritz_ oh # just actually associated the nick ;-)
17:40 Woodi nah, just incidentally
17:40 Woodi s/y/i/
17:42 __ash__ moritz_: which standard? most implement the basic JS standard, but then there is a separate DOM standard, only FF really goes above and beyond that with the 'new stuff' (like generators or the let statement in FF3.0)
17:43 moritz_ __ash__: isn't there an ECMA standard?
17:43 moritz_ __ash__: for example firefox allows trailing comma in lists, other compilers die when they see that
17:43 __ash__ yeah, even IE6 follows the ECMA-262 3rd edition
17:44 moritz_ very annoying, and cost me hours of debugging time (being used to perl, mostly)
17:44 __ash__ thats firefox being non-strict with the standard
17:44 moritz_ and that's part of my complaints, yes
17:44 __ash__ FF can be put into a strict mode
17:45 moritz_ how?
17:47 __ash__ one sec, i forget
17:51 __ash__ you need to take FF out of quirksmode, just add a strict doctype and it should be in strict mode
17:52 eiro joined #perl6
17:54 moritz_ so when the Render Mode is "Standards compliance mode" the JS should also be strict?
17:55 __ash__ it is more strict, but it still lets you do a = [1, ];
17:55 __ash__ i could of sworn there was a way to make it throw an error for that, hmmm
17:56 moritz_ anyway, I just compiled and installed v8, in the hope that it checks a bit more strictly
17:56 moritz_ dammit, it does not
17:56 moritz_ d8> a = [1, ];
17:56 moritz_ 1
17:57 pmurias joined #perl6
17:58 diakopter mberends: hi
17:58 __ash__ moritz_:  what happens if you do "use strict"; in v8?
17:58 __ash__ does it change that behavior?
17:59 moritz_ __ash__: use strict; is a parse error
17:59 __ash__ you need quotes around it
17:59 __ash__ "use strict";
18:00 __ash__ if it has that feature, it might not, i think spidermonkey does, but i don't know about v8
18:01 moritz_ __ash__: still doesn't complain
18:03 Whiteknight joined #perl6
18:03 __ash__ well, i am not sure how to check for that one then
18:04 mberends diakopter: rehi, just got back here. how's things with you?
18:04 eiro joined #perl6
18:05 diakopter good
18:05 moritz_ hm, is there a nice command line checker for javascript? (static code analysis, like Perl::Critic or so)
18:06 mberends it's a bit distracting here, but I'm gonna attempt operator <x>
18:09 pmurias moritz_: you mean a syntax checker or a style checker?
18:10 moritz_ pmurias: both ;-)
18:10 moritz_ pmurias: a strict syntax checker would be a good start
18:15 __ash__ moritz_: http://www.jslint.com/rhino/index.html try hat if you want, it might work with v8, but it says it works with rhino
18:15 __ash__ jslint is what a lot of people use, but it is really strict about some things that people consider more of a style thing
18:16 __ash__ although in javascript a lot of times bad style = broken code, but thats not strictly tue
18:16 __ash__ s/tue/true
18:17 moritz_ v8 compiles it, but the style of passing arguments from the command line seems to be different :(
18:18 moritz_ another reason not to like js :/
18:19 pmurias joined #perl6
18:22 diakopter :P
18:23 diakopter what're the command line arg styles differences
18:23 diakopter I thought it was d8 --nodebugger -- arg1 arg2
18:24 diakopter and they appear in the toplevel Arguments object, named arguments
18:24 moritz_ $ d8 jslint.js  foo.js
18:24 moritz_ Usage: jslint.js file.js
18:24 diakopter d8 jslint.js -- foo.js
18:25 diakopter I'm fairly sure it's the same in rhino
18:25 moritz_ diakopter: thanks
18:25 moritz_ $ d8 jslint.js --  foo.js
18:25 moritz_ Uncaught: "ReferenceError: readFile is not defined", jslint.js line 515 column 7
18:25 diakopter ha
18:25 * moritz_ runs away screaming
18:26 diakopter yeah it's written for rhino
18:26 diakopter do this:
18:26 moritz_ all the way to rhino :)
18:26 diakopter d8 --nodebugger -e 'var readFile=read' jslint.js -- foo.js
18:27 moritz_ diakopter++ # my hero, that seems to work
18:27 diakopter usually google v8 team tries to match rhino
18:29 * diakopter does everything possible to steer moritz_ away from jvm :)
18:29 moritz_ diakopter: don't worry, it's not on my list of worthy targets right now
18:29 diakopter I mean rhino
18:30 diakopter s/rhino/rhino and tracemonkey and webkit's jsc[.exe]/
18:31 diakopter oops, that subsitution was for the line about the google v8 team matching rhino
18:32 diakopter moritz_: the --nodebugger switch makes d8 somewhat more efficient, or so I've been told
18:33 diakopter (obviously, b/c the debugger is disabled)
18:34 pmurias joined #perl6
18:37 diakopter __ash__: actually IE is the one that doesn't match the ECMA-262 3rd ed standard.  "Array elements may be elided at the beginning, middle or end of the element list. Whenever a comma in
18:37 diakopter the element list is not preceded by an AssignmentExpression (i.e., a comma at the beginning or after
18:37 diakopter another comma), the missing array element contributes to the length of the Array and increases the index
18:37 diakopter of subsequent elements. Elided array elements are not defined."
18:37 __ash__ ah, well shame on them then
18:38 __ash__ *never uses IE unless my boss at work forces me to check our sites in it*
18:38 moritz_ so a = [1, ]; should create an array of length 2 in js?
18:38 diakopter sec
18:39 moritz_ it does not in v8
18:39 __ash__ no, length 1 according to the JS spec, empty spots don't extend the size of the arrayyyy
18:39 __ash__ array*
18:39 moritz_ ok
18:39 moritz_ but [1, , 2] is length 3
18:40 moritz_ (also in v8)
18:42 diakopter it says "Array elements may be elided at the ... end of the element list.... Elided elements are not defined.", *but* only contributed to the length of the array if the elided element is not the last one. :)
18:43 diakopter so, a trailing comma is "valid" ES3, but shouldn't contribute to the array length.
18:43 diakopter but it's not valid JSON :)
18:43 diakopter JSON is a bit more strict
18:43 moritz_ I noticed that.
18:44 diakopter the ES5 standard (to be declared officially finalized by ECMA *TOMORROW*) states it more explicitly that the *last* trailing comma doesn't contribute to the length.
18:44 diakopter wait, or was it last Monday
18:45 icwiener_ joined #perl6
18:51 masak joined #perl6
18:57 rml` joined #perl6
19:10 molaf joined #perl6
19:10 molaf joined #perl6
19:12 mberends masak, could you do some Temporal musing in temporal-flux-perl6syn within a few days? Maybe your blue-sky use cases. See also perldoc DateTime ;)
19:12 masak oh, I see also a lot of things. :)
19:12 masak but yes, I can.
19:12 masak I think I will have tuits coming up.
19:13 mberends I think autarch++ got it pretty much right already
19:15 masak I think so, too.
19:15 masak what I mostly want to add is convenience.
19:15 masak of the sort that I imagine autarch would oppose, from what I read of his changes.
19:15 mberends yep. easy constructors.
19:15 masak aye.
19:16 moritz_ hugme: list projects
19:16 hugme moritz_: I know about json, november, perl6-examples, proto, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte
19:16 masak that's why I want a working implementation (and tests) backing me up showing that the features I want to add are both realistic and convenient.
19:17 moritz_ hugme: show temporal-flux-perl6syn
19:17 hugme moritz_: the following people have power over 'temporal-flux-perl6syn': TimToady, [particle], masak, moritz_, pmichaud. URL: http://github.com/masak/temporal-flux-perl6syn/
19:19 Tene hi masak
19:20 masak Tene: oh hai. I'm writing up a Web.pm weekly post.
19:20 Tene masak: I'm traveling this week, so I have free evenings. :)
19:20 masak cool.
19:20 Tene masak: what's my next priority for web stuff?  Mysql?
19:21 masak that would be nice, yes.
19:22 masak I think I will successively take steps backwards in the coming weeks, to try to bring an overview to the whole project, and see if we can wrap it up nicely.
19:22 Tene masak: I've been working on plumage, so we can get sql libs available that way, instead of shipped with Parrot.
19:22 masak that sounds ideal.
19:22 Tene as parrot wants to ship no unnecessary libs.
19:22 masak nod.
19:23 masak I see no problem with doing things the way they're planned to be sooner rather than later. :)
19:24 Tene plumage right now can... invoke "svn co" or "git clone", if you have a metadata file... and that's all. :P
19:24 Tene so it's got a ways to go
19:24 masak :)
19:25 Tene but, I'll keep you updated.  might work on squerl.
19:25 Tene sqerl?
19:25 Tene spellingql?
19:27 masak squerl :)
19:27 masak which can still be renamed, if someone has a better suggestion. :)
19:28 Tene masakql!
19:28 masak :P
19:28 masak that might be fine... until someone finds the first bug. :/
19:28 Tene masql -- the 'l' is silent.
19:29 moritz_ masaklqbug?
19:29 masak did you guys notice the "better" in my sentence? :P
19:30 Tene tt#1: masak doesn't wash my dishes.
19:30 masak that's a TODO. known issue.
19:31 mberends esskewl!
19:32 masak would go well with LolDispatch and OmgBlog, I guess...
19:33 masak but I'm not sure how I could explain it to the Sequel people. :)
19:35 abra joined #perl6
19:35 masak by the way, the reporting of line numbers in Rakudo is slightly less than awesome.
19:35 masak sometimes the numbering is off by a few lines. sometimes the number is simply 0.
19:35 moritz_ primarily it's missing way too often
19:36 Tene I was pondering earlier "A Lolcat's guide to Perl 6"
19:36 moritz_ Tene: that would be kew^WAwesom^WGrand!
19:41 frew__ joined #perl6
19:43 rhr joined #perl6
19:43 pmurias_ joined #perl6
19:45 pmurias_ joined #perl6
19:46 pmurias diakopter: do you intend to make vivjs a compiler? (I could help with it)
19:50 sjohnson perhaps the perl6 mascot => lolcat
19:51 molaf joined #perl6
19:52 moritz_ rakudo: class DualVar { has $.Str; has $.Num }; say DualVar( Str => 'a', Num => 3.4);
19:52 p6eval rakudo 0331d6: OUTPUT«invoke() not implemented in class 'DualVar'␤in Main (/tmp/w4YbVCPajp:0)␤»
19:52 moritz_ rakudo: class DualVar { has $.Str; has $.Num }; say DualVar.new( Str => 'a', Num => 3.4);
19:52 p6eval rakudo 0331d6: OUTPUT«a␤»
20:15 masak oh, and I'm starting to appreciate the separation between $_ and self.
20:15 masak it's often quite handy.
20:16 moritz_ rakudo: say 'aaaa' ~~ m/a**3..*/
20:16 p6eval rakudo 0331d6: OUTPUT«aaaa␤»
20:17 mberends pmurias, surely V8 is a compiler, we just have to figure out how to save the binary?
20:20 masak rakudo: sub foo(Pair *@a) {}; foo
20:20 p6eval rakudo 0331d6: OUTPUT«Parameter type check failed; expected Pair, but got List for @a in call to foo␤in sub foo (/tmp/Onbpf7hlpV:1)␤called from Main (/tmp/Onbpf7hlpV:0)␤»
20:20 masak I'd argue that the above should work.
20:20 pmurias mberends: js can run in browsers
20:22 masak rakudo: sub foo(Int *@a) {}; my Int @b; foo(|@b)
20:22 p6eval rakudo 0331d6: OUTPUT«Parameter type check failed; expected Int, but got List for @a in call to foo␤in sub foo (/tmp/eG74o3tlj9:1)␤called from Main (/tmp/eG74o3tlj9:0)␤»
20:22 masak perhaps a clearer example.
20:22 s1n_mini joined #perl6
20:22 * masak submits rakudobug
20:30 NorwayGeek joined #perl6
20:37 hanekomu joined #perl6
20:46 moritz_ pmichaud: currently rakudo.org attracts way too much comment spam - something must be done. Even disabling comments entirely woudl be better than what we have now.
20:47 masak rakudo.org has comments?
20:47 moritz_ 90% spam
20:48 moritz_ actually not anymore, because I just deleted a lot of them
21:08 masak oh no, an action-at-a-distance syntax error!
21:08 masak I'm starting to feel I'm not meant to be blogging my progress today.
21:15 pmurias joined #perl6
21:20 masak sleep &
21:51 __ash__ joined #perl6
21:53 jaldhar joined #perl6
22:05 scottp joined #perl6
22:06 scottp Hey team. Anyone know of a good reference on the net on "Why use Perl6" - I am trying to find a short reason to add to a talk.
22:07 Juerd scottp: "It's fun."
22:08 icwiener joined #perl6
22:21 hanekomu_ joined #perl6
22:25 scottp I think it is a missing topic from perl6.org - for me it is just obvious: and "It's fun" is right up there. But it is not obvious to others.
22:25 pmurias_ joined #perl6
22:30 tak11 joined #perl6
22:44 ihrd joined #perl6
22:51 japhb Linguistics question: When changing prose (in this case, descriptions from function documentation) from "Returns foo" to "Return foo", what attribute of the verb is altered?
22:59 Juerd Depends on context.
23:00 Juerd Mood, number, or person.
23:00 japhb Oh?
23:00 japhb Mood I think was the one I was looking for.
23:01 japhb Thanks, Juerd.
23:02 Juerd np
23:16 ihrd left #perl6
23:20 zerhash joined #perl6
23:24 diakopter pmurias_: I don't know
23:24 diakopter how would it look
23:24 diakopter pmurias: how would it look
23:26 pmurias diakopter: you mean the emitted code? or the compiler?
23:26 diakopter either/both
23:26 scottp How about this as a one liner intro: "Perl 6 is fun. It's here now. It's fully functional. It has a fantastic, open and fun community. It's ready to use now. "
23:26 diakopter mberends: hi
23:28 pmurias i'm thinking of using smopish tricks to get stacklessness
23:29 pmurias we could have a polymorphic runloop like while(1) {interpreter.continuation.eval()}
23:30 ihrd1 joined #perl6
23:30 pmurias and use a switch statement to resume in the right place in the continuation
23:31 diakopter pmurias: that's exactly what it's doing now..
23:31 pmurias diakopter: you have seen how yeast code looks like?
23:32 diakopter pmurias: nope
23:32 diakopter what is yeast code
23:33 pmurias the stuff mildew emits out using the --yeast option
23:33 diakopter pmurias: seriously though, interp() in interp.js is a polymorphic runloop
23:33 diakopter and each of its continuations use their .phase property to move among phases
23:34 pmurias diakopter: i've seen interp(), it's quite similiar
23:34 diakopter pmurias: however, it could be streamlined/optimized a bit by assigning the disp[this.T] function directly to the node as an .eval() method, like you say
23:35 diakopter which would optimize long-running code a good bit
23:35 pmurias the difference is that instead of having a continuation for each ast node we would have a continuation for a block of code
23:35 ihrd1 left #perl6
23:35 diakopter pmurias: OH, I see... good idea.. generate the methods
23:36 diakopter the only problem is the JS stack
23:36 diakopter well, the real work of the compiler would be to detect/generate those continuation points in each function
23:36 ihrd2 joined #perl6
23:37 lisppaste3 pmurias pasted "a bit of --yeast code" at http://paste.lisp.org/display/87814
23:37 ihrd2 left #perl6
23:38 diakopter ok
23:38 pmurias diakopter: by default every method call generates a continuation point
23:39 diakopter oh, cool.
23:39 pmurias but if we now that a method doesn't need to the stack we can skip it
23:41 diakopter pmurias: sounds good... feel free to work on it; I'm not opposed to using eval() on generated JS if it's faster than keeping it in the "native" loop
23:42 diakopter right now I'm gonna get back to Test.pm functionality... it's trickier than I anticipated.  I still think I can have it done soon (today).
23:47 quietfanatic rakudo: eval (sub ѕub ($ѕub, $sub) { $ѕub.(&substr[0], $sub) }, &ѕub) ~ (ѕub sub ($sub, $ѕub) { $ѕub.($sub,  $ѕub.comb) }, &ѕub); say $!
23:47 p6eval rakudo 0331d6: OUTPUT«Could not find non-existent sub ѕubstr␤»
23:54 quietfanatic A hint: this works too.
23:54 quietfanatic rakudo: eval (sub ѕub ($ѕub, $sub) { $ѕub.(&substr[0], $sub) }) ~ (ѕub sub ($sub, $ѕub) { $ѕub.($sub,  $ѕub.comb) }, &ѕub); say $!
23:54 p6eval rakudo 0331d6: OUTPUT«Could not find non-existent sub ѕubstr␤»
23:56 diakopter std: eval (sub ѕub ($ѕub, $sub) { $ѕub.(&substr[0], $sub) }, &ѕub) ~ (ѕub sub ($sub, $ѕub) { $ѕub.($sub,  $ѕub.comb) }, &ѕub); say $!
23:56 p6eval std 28443: OUTPUT«ok 00:02 130m␤»
23:56 diakopter std: (sub ѕub ($ѕub) { $ѕub.(&substr[0], $sub) }, &ѕub)
23:56 p6eval std 28443: OUTPUT«Potential difficulties:␤  Variable $sub is not predeclared at /tmp/9t76vNYzTP line 1:␤------> [32m(sub ѕub ($ѕub) { $ѕub.(&substr[0], $sub[33m⏏[31m) }, &ѕub)[0m␤ok 00:03 130m␤»
23:57 diakopter WIN
23:57 scottp joined #perl6
23:57 quietfanatic Well, I all but gave that trick away last night.

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

Perl 6 | Reference Documentation | Rakudo