Camelia, the Perl 6 bug

IRC log for #perl6, 2009-09-22

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:02 Whiteknight joined #perl6
00:09 ihrd joined #perl6
00:27 kothog joined #perl6
00:27 kothog is there a git repository for perl6 somewhere?
00:27 TimToady for rakudo
00:27 TiMBuS joined #perl6
00:28 kothog TimToady: oh?
00:28 TimToady hit "Download" on perl6.org and you should get to the rakudo page
00:28 kothog i see it.
00:28 kothog thank you!
00:32 kothog neat.. seemingly not much to it! i infer some effort is going elsewhere. Parrot?
00:33 ihrd left #perl6
00:39 arnsholt_ joined #perl6
00:50 maja_ joined #perl6
00:58 s1n_mini joined #perl6
00:58 PZt joined #perl6
00:58 tarbo2 joined #perl6
00:58 awwaiid joined #perl6
00:58 cognominal joined #perl6
00:58 reqamst joined #perl6
00:58 viklund joined #perl6
00:58 jjore joined #perl6
00:58 Lorn_ joined #perl6
00:58 eiro joined #perl6
00:58 obra_ joined #perl6
00:58 yahooooo joined #perl6
00:58 avuserow joined #perl6
00:58 broquaint joined #perl6
00:58 ilogger2 joined #perl6
00:58 breinbaas joined #perl6
01:00 lisppaste3 joined #perl6
01:12 jauaor joined #perl6
01:30 tak11 joined #perl6
01:38 Tene kothog: Yes, Rakudo is built on top of Parrot.
01:45 JimmyZ joined #perl6
01:53 dalek rakudo: 5d3d3a3 | pmichaud++ | Configure.pl:
01:53 dalek rakudo: Add --optimize to default --gen-parrot build.
01:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​d3d3a359061c922ef7080ba9b53e7bd224e6397
01:53 pugs_svn r28351 | lwall++ | [S03] more clarifications of autogenerated generator functions, pmichaud++
02:12 payload joined #perl6
02:12 tak11 joined #perl6
02:14 jaldhar joined #perl6
02:19 cognominal joined #perl6
02:22 lisppaste3 joined #perl6
02:24 lisppaste3 joined #perl6
02:28 lisppaste3 joined #perl6
02:44 dukeleto joined #perl6
02:46 dukeleto_ joined #perl6
03:18 zerhash joined #perl6
03:18 pugs_svn r28352 | diakopter++ | [vijs] implement Int /, % (quotient, remainder)
03:18 diakopter vijs: say 102987609812347098760129837021987103475138750 * 1230487130694871034374821979182735987249​183791837461982374981732549876660918203
03:18 p6eval vijs 28351: OUTPUT«1267249284951179270752749158080674964​23529452979087287709768611828950425207819615​781549360513615359180398313258757825666250␤␤  time in interpreter: 0.021555 s␤»
03:27 JimmyZ wow, so super.
03:29 diakopter heh
03:30 diakopter vijs: say 1230487130694871034374821979182735987249​183791837461982374981732549876660918203 / 102987609812347098760129837021987103475138750
03:30 p6eval vijs 28352: OUTPUT«11947914248490005806224210623590285␤␤  time in interpreter: 0.011124 s␤»
03:30 diakopter vijs: say 1230487130694871034374821979182735987249​183791837461982374981732549876660918203 % 102987609812347098760129837021987103475138750
03:31 p6eval vijs 28352: OUTPUT«65548383231064399784​204749251026113133874453␤␤ time in interpreter: 0.011122 s␤»
03:31 diakopter also, the libBigInt.js can convert to/from any radix
03:32 diakopter thank you Tom Wu, wherever you are
03:34 diakopter whoever wants to wire up the bases-other-than-ten radix integer instantiation in vijs... please feel free
03:44 JimmyZ vijs: say 1000000000 / 3.14
03:44 p6eval vijs 28352: OUTPUT«execute(): execute error: dec_number not yet implemented; srsly!!?!? at viv line 171.␤»
03:44 diakopter no decimals, nope. :D
03:44 JimmyZ vijs: say 1000000000 / 267
03:44 p6eval vijs 28352: OUTPUT«3745318␤␤      time in interpreter: 0.010479 s␤»
03:44 JimmyZ a bit slow.
03:45 diakopter the parser is slow[er] :P
03:46 diakopter but yeah; without constant folding nor linear/dependent type constraint detection/derivation, using bigints for every integer is going to be slow :D
03:47 diakopter almost done adding basic closures
03:48 diakopter basic meaning parameter-les
03:48 diakopter less
03:49 diakopter and return-less ('cept for last statement-as-expression)
04:38 diakopter closures working; will commit shortly
04:39 diakopter ./viv --js -e 'my $b = 4; my $a=sub{ say $b }; $a(); $b++; $a();'
04:39 diakopter 4
04:39 diakopter 5
04:39 diakopter tee hee
04:40 Tene :D
04:48 pugs_svn r28353 | diakopter++ | [vijs] basic closures working (try this example):
04:48 pugs_svn r28353 |    my $b = 4; my $a=sub{ say $b }; $a(); $b++; $a();
04:51 dukeleto joined #perl6
04:52 diakopter vijs: my $b = 4; my $a=sub{ say $b }; $a(); $b++; $a(); $b++; $a();
04:52 p6eval vijs 28352: OUTPUT«4␤5␤6␤␤  time in interpreter: 0.030608 s␤»
04:58 diakopter asleep&
05:14 masak joined #perl6
05:15 masak good morning, #perl6
05:16 TimToady o/
05:23 masak rakudo: .say for Nil
05:23 p6eval rakudo 5d3d3a: OUTPUT«Nil()␤»
05:23 * masak submits rakudobug
05:23 masak rakudo: my $a = 3/4; $a++
05:23 p6eval rakudo 5d3d3a: OUTPUT«Method 'succ' not found for invocant of class 'Rat'␤»
05:23 * masak submits rakudobug
05:31 carlin rakudo: say sin(1/2^1/2);
05:32 p6eval rakudo 5d3d3a: OUTPUT«maximum recursion depth exceeded␤in method Num::Num (src/gen_setting.pm:1874)␤called from method Num::sin (src/gen_setting.pm:1852)␤called from Main (/tmp/m4YRgnHhMY:2)␤»
05:32 carlin rakudo: say (1/2^1/2).sin;
05:32 p6eval rakudo 5d3d3a: OUTPUT«one(0.479425538604203, 0.479425538604203)␤»
05:32 masak use.perl doesn't allow me to edit my own posts anymore. :( it doesn't give me an error, just an empty page.
05:33 masak it's been like this for days.
05:37 dukeleto joined #perl6
05:43 rfordinal joined #perl6
05:52 justatheory joined #perl6
05:53 * masak emails pudge
06:04 rafl joined #perl6
06:18 sm` joined #perl6
06:21 rfordinal joined #perl6
06:38 NorwayGeek joined #perl6
06:41 mberends joined #perl6
06:41 moritz_ \o/
06:41 zamolxes joined #perl6
06:42 mberends yipee, --optimize in Parrot
06:43 zamolxes joined #perl6
06:46 avuserow_ joined #perl6
06:50 masak what does it do? retract the flaps?
06:51 moritz_ some of them
06:51 moritz_ it basically passes -O2 to gcc
06:51 masak $gcc.oxygenate()
06:52 pugs_svn r28354 | lwall++ | [STD] catch attempt to declare symbol previously aliased into an outer scope
06:59 JimmyZ joined #perl6
07:04 rfordinal joined #perl6
07:08 dalek rakudo: e52ed31 | moritz++ | src/setting/Rat.pm:
07:08 dalek rakudo: .pred and .succ for Rat
07:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​52ed31e2fe1ab2fd4a661ebeda78a880bad1215
07:14 masak pudge++ fixed use.perl, yay
07:14 sm^^^ joined #perl6
07:15 moritz_ now if he also gave it a more modern layout... ;-)
07:19 TimToady std: my $a = 1; do { say $a; my $a = 2; say $a }
07:19 p6eval std 28354: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol $a (from line 1) is already bound to an outer scope implicitly␤  and must therefore be rewritten explicitly as OUTER::<$a> before you can␤  unambiguously declare a new $a in the same scope at /tmp/yD9yNqSFNN line 1:␤------> [32mmy $a
07:19 p6eval ..=…
07:19 pugs_svn r28355 | moritz++ | [t/spec] tests for -- and ++ on Rats
07:21 donaldh joined #perl6
07:23 ejs joined #perl6
07:25 masak moritz_: your "Rats and other pets" post was submitted to Reddit: http://www.reddit.com/r/programming/com​ments/9muh3/perl6_rats_and_other_pets/
07:26 masak the brainless commenters don't seem to have noticed it yet, though. but it's being re-tweeted in the Twitterverse.
07:27 * masak gets vibes from Star Trek: "captain -- they're scanning us"
07:27 moritz_ wow, 8 up 4 downvotes
07:27 moritz_ I wonder how I could get so many downvotes for example on perlmonks
07:28 sm^^^ joined #perl6
07:29 masak moritz_: you could extol the virtues of Python and Ruby :P
07:29 moritz_ even that wouldn't bring me that many downvotes, if done in a technical manner
07:30 moritz_ I thought more about discriminating against black, disabled women or so :)
07:32 masak (from the "experiments you probably shouldn't make" department)
07:32 ejs1 joined #perl6
07:32 moritz_ curious thing, when I added these few tests in r28355, rakudo gave  me "Could not find non-existent sub done_testing" at the very end
07:33 moritz_ even though there are hundreds of tests in between, and it worked before
07:38 masak and you're sure you didn't accidentally spell it 'Sequel' or something? :)
07:39 moritz_ well, I didn't touch it
07:39 moritz_ that's where the wieredness comes in
07:39 moritz_ and I used ack to verify that the name is spelled the same in the test file and Test.pm ;-)
07:41 meppl joined #perl6
07:44 masak sounds like one of those things that would be hard to minimize. :/
07:47 moritz_ http://www.nytimes.com/2009/09/20/jobs/20pre.html # nice opinion/experience piece on pair programming
07:54 Matt-W Interesting
08:02 cmv joined #perl6
08:08 hanekomu joined #perl6
08:22 NorwayGeek|Away joined #perl6
08:51 icwiener joined #perl6
09:07 ssm joined #perl6
09:17 cmv joined #perl6
09:40 Matt-W moritz_++ # blog post about Rats
09:48 pmurias joined #perl6
09:51 dakkar joined #perl6
09:53 masak the Twittersphere likes it too.
09:53 masak wait until they hear about our Cats! :)
09:56 moritz_ well, reddit doesn't seem to like it :-)
09:56 moritz_ 11 up votes 8 down votes
09:57 Matt-W DOWN??
09:59 masak that's Reddit for you.
10:06 simcop2387 joined #perl6
10:14 toyam joined #perl6
10:17 Matt-W guess so
10:17 Matt-W hardly the cream of the internet
10:21 carlin A lolrat would have guaranteed upvotes on reddit
10:23 rblasch joined #perl6
10:24 Matt-W class LOLRat is Rat { };
10:24 Matt-W there
10:24 Matt-W done
10:24 Matt-W or maybe it needs a method Str { "LOL" ~ self.Rat::Str() }
11:12 szabgab joined #perl6
11:32 masak rakudo: class LOLRat is Rat { method Str { 'LOL' ~ self.Rat::Str() } }; say LOLRat.new(:numerator(3), :denominator(4))
11:32 p6eval rakudo e52ed3:  ( no output )
11:32 masak moritz_: isn't it possible to increase the timeout interval a little on the server?
11:34 Whiteknight joined #perl6
11:52 icwiener_ joined #perl6
11:57 masak huh. 0f1ede is a bit scary.
11:58 NorwayGeek joined #perl6
12:01 pmurias diakopter: how do i install v8?
12:07 moritz_ masak: sure, you can do that if you want
12:08 * masak tries
12:15 * masak moritz_ no, I give up. where's the evalbot located again?
12:16 moritz_ pugs/misc/evalbot/
12:16 moritz_ ack 'alarm|limit'
12:16 masak thanks.
12:17 ruoso joined #perl6
12:19 payload joined #perl6
12:22 pugs_svn r28356 | masak++ | [evalbot] increased soft time limit from 8 to 15 seconds
12:22 pugs_svn r28356 | With a bit of luck, this will decrease the number of premature evalbot
12:22 pugs_svn r28356 | killings we have seen lately.
12:23 moritz_ I'm also working on migrating evalbot to a better server that diakopter++ made available to me
12:24 moritz_ which has 4 CPUs instead of one
12:28 pugs_svn r28357 | moritz++ | [evalbot] try to be smarter about rebuild parrot for rakudo
12:28 masak heh. I dug into the history of the CPU limit: it used to be 15 until April, when moritz_ set it to the 'saner' value 4. then it was raised in June to 8. and now it's back at 15.
12:28 moritz_ -)
12:28 moritz_ s/^/:/
12:30 pugs_svn r28358 | moritz++ | [evalbot] forgot to delete lots of old stuff
12:31 pugs_svn r28359 | moritz++ | [evalbot] another attempt...
12:33 synth joined #perl6
12:35 ruoso Bom dia, #perl6
12:36 masak bom dia, ruoso!
12:36 masak rakudo: say $*IN.slurp().comb(/Land \s+ \w+ \s+ \w+/)>>.trans(/Land \s+ \w+ \s+/ => "").join(", ")
12:36 p6eval rakudo e52ed3: OUTPUT«Berge, Strome, Äcker, Dome, Hämmer␤»
12:36 masak hmm.
12:37 zamolxes joined #perl6
12:37 masak rakudo: say $*IN.slurp().comb(/<?after Land \s+ \w+ \s+> \w+/).join(", ")
12:37 p6eval rakudo e52ed3: OUTPUT«Berge, Strome, Äcker, Dome, Hämmer␤»
12:37 masak that's better.
12:38 moritz_ :-)
12:38 pmurias ruoso: hi
12:39 masak rakudo: say $*IN.slurp.words.sort({-.chars})[0]
12:39 p6eval rakudo e52ed3: OUTPUT«hoffnungsreich.␤»
12:39 pmurias ruoso: do you know how to link a .c file with an uninstalled perl?
12:40 ruoso hmm
12:40 ruoso I guess the core libs with XS do that
12:41 masak rakudo: say $*IN.slurp.words.grep(/^viel/).uniq.join(", ")
12:41 p6eval rakudo e52ed3: OUTPUT«vielgerühmtes, vielgeprüftes, vielgeliebtes␤»
12:41 pmurias ruoso: i knew how to do it, but i forgot the incantation :(
12:42 ruoso pmurias, I think I never did that... but I guess the modules inside the p5 sources do that...
12:42 diakopter pmurias: hi
12:42 diakopter what os/arch
12:42 pmurias ruoso: what i want to is compile tests in t-smopp5 in the smopp5 repo
12:42 pmurias diakopter: debian linux
12:43 pmurias diakopter: hi
12:43 ruoso pmurias, I see... maybe it's better to ask #p5p
12:43 masak rakudo: say $*IN.slurp.comb.grep({$_ !~~ /\w/}).uniq.perl
12:43 p6eval rakudo e52ed3: OUTPUT«[" ", ",", "\n", "!", "."]␤»
12:44 diakopter pmurias: did you see the readme in perl6/js
12:44 diakopter check out the /bleeding_edge (or /trunk they're both very stable) branch from the v8 repo
12:45 diakopter have scons & python 2.5
12:45 diakopter and g++
12:45 pmurias diakopter: i saw the readme
12:46 diakopter pmurias: is your perl 64-bit or 32
12:46 pmurias i can built it with typing scons, but i don't know how to install it
12:46 pmurias 32-bit
12:47 diakopter copy or ln -s the libv8.a to /usr/local/lib/
12:47 diakopter easiest
12:47 pmurias that could be put in the readme
12:47 diakopter then git clone the perl-v8 repo
12:47 diakopter it's a few KB
12:48 diakopter cd perl-v8 ; make -f bridge.mk
12:48 diakopter perl Makefile.PL
12:48 diakopter make && make test && make install
12:49 * diakopter pastes into README
12:53 diakopter pmurias: if you want, you can build the v8 debugger/shell (called d8) with: scons d8
12:55 pugs_svn r28360 | diakopter++ | [vijs] updated README with more V8/perl-v8 building instructions/hints
12:59 NorwayGeek joined #perl6
13:00 cognominal I want initial feedback on a potential new feature, conditional dereference for Perl 6  before/if I  flesh it, write tests case,  and send it to p6.language  : http://gist.github.com/191045
13:03 diakopter pmurias: did perl-v8 work for you yet? moritz and I had trouble on 64-bit
13:03 ruoso cognominal, I didn't quite get the feature... care to ellaborate a bit more?
13:04 moritz_ cognominal: I like the part about %thing?<foo>.other.methods aborting if %thing<foo> doesn't exist - not sure about how useful the rest is
13:04 moritz_ if it doesn't exist, chances are that .other.methods throw an exception anyway
13:05 cognominal ok, so it is not utter rubish :)
13:05 ruoso although the exception will be ".other not implemented in Object"
13:06 moritz_ ruoso: right
13:06 ruoso but I'd rather have the "?" in the other side
13:06 ruoso %thing<foo>?.other
13:06 ruoso which also relates well with
13:06 ruoso %thing<foo>.?other
13:08 cognominal ok
13:08 ruoso "?." would fail if the left side is undefined
13:08 ruoso although ".?" means "don't fail if the method doesn't exist"
13:09 moritz_ which kinda makes sense
13:09 moritz_ the ? points to where things might not exist
13:09 ruoso so it probably makes sense to have it "!." instead
13:09 ruoso %thing<foo>!.other.?method
13:10 ruoso where we still could leave "?." to "silently stop if the left side is undefined
13:10 PZt joined #perl6
13:14 cognominal you meant in absence of dereferenced value, postfix ? means silent abortion and postfix ! means an exception?
13:14 ruoso yes
13:14 cognominal I like that
13:14 ruoso it's not really postfix:<!> or <?>
13:14 ruoso but it's a new "?." and "!." operator
13:14 ruoso about ??
13:15 ruoso you don't need it
13:15 ruoso because you can use the dot between them
13:15 ruoso %foo!.<bar>!.<baz>!.<bla>
13:15 ruoso %foo.<bar>.<baz>.<bla> is the same as  %foo<bar><baz><bla>
13:16 frederico joined #perl6
13:17 cognominal For the ?= , it makes sense to keep it prefix
13:17 ruoso do you have an example for ?=?
13:17 ruoso er.. "?="  ?
13:18 ruoso If I get it right, the = metaop will work with ?. just as it works for .
13:18 cognominal problem of suffix ! is that it can be confused with a factorial
13:18 ruoso $a ?.= foo
13:18 ruoso cognominal, it's not suffix
13:19 ruoso and it's not just "!"
13:19 ruoso it's infix:<?.> and infix:<!.>
13:19 ruoso std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.foo; $a!.bar;
13:19 cognominal rusoso, can you edit the git to your like? so I get what you say?
13:19 p6eval std 28360: OUTPUT«Undeclared routines:␤  bar used at 1␤    foo used at 1␤ok 00:03 39m␤»
13:19 masak postcircumfix:<< < >? >>
13:20 cognominal ok, got it
13:21 cognominal I edit
13:21 ruoso std: my $a; $a .= foo;
13:21 p6eval std 28360: OUTPUT«ok 00:03 38m␤»
13:21 ruoso hmm... it seems STD special cases "."
13:21 molaf joined #perl6
13:22 cognominal I am so happy to see that new syntax blends so easily in the langage
13:23 ruoso std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.<foo>; $a!.<bar?;
13:23 ruoso std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.<foo>; $a!.<bar>;
13:23 p6eval std 28360: OUTPUT«[31m===[0mSORRY![31m===[0m␤(Possible runaway string from line 1)␤Preceding context expects a term, but found infix < instead at /tmp/pp9Y0f6hu0 line 1 (EOF):␤------> [32m<!.> {...}; my $a; $a?.<foo>; $a!.<bar?;[33m⏏[31m<EOL>[0m␤    expecting escape␤FAILED 00:03 42m␤»
13:23 p6eval std 28360: OUTPUT«ok 00:03 39m␤»
13:24 ruoso but I guess simply declaring the operator is not enough, because it will try to invoke sub bar in $a?.bar
13:24 ruoso we need to have the same magic the dotty has
13:26 ruoso TimToady, is it possible to implement (without changing STD) an operator at the level of the dotty, that won't try to evaluate the left side before invoking it? as the above $a!.foo idea...
13:27 ruoso hmm... dotty has its own multi token
13:28 ruoso so it's not just a matter of declaring an infix op
13:28 ruoso std: sub dotty:<?.> {...}; my $a; $a?.b
13:28 masak ruoso: by 'multi token', do you mean 'category'?
13:29 p6eval std 28360: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/8mGF1R5saS line 1:␤------> [32msub dotty:<?.> {...}; my $a; $a?.[33m⏏[31mb[0m␤    expecting any of:␤     POST␤   bracketed infix␤    infix stopper␤    postfix␤        postfix_prefix_meta_operator␤       standard
13:29 p6eval ..stopper␤       statement modifier loop␤…
13:29 abra joined #perl6
13:29 ruoso masak, yes
13:29 masak ok.
13:29 masak just trying to keep up. :)
13:30 moritz_ std: augment slang Main { token dotty:sym<?.> { <sym> } }; Int?.floor
13:30 p6eval std 28360: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/nZHvck9tLb line 1:␤------> [32mn { token dotty:sym<?.> { <sym> } }; Int[33m⏏[31m?.floor[0m␤    expecting any of:␤        POST␤   argument list␤      bracketed infix␤  infix␤  infix stopper␤    postfix␤
13:30 p6eval ..postfix_prefix_meta_operator␤       standar…
13:30 jnthn I'd expect you'd do it through dotty.
13:30 jnthn But doesn't seem to work. :-/
13:31 masak jnthn!
13:31 jnthn masak!
13:31 ruoso I guess STD could add the same logic it does for infix:<foo>
13:31 masak jnthn: how's Asia?
13:31 jnthn masak: Pretty cool. :-)
13:32 * masak wants too
13:32 jnthn I've had really great weather most of the trip, but my last 3 days in Japan (yesterday, today and tomorrow) are all loads of rain.
13:32 ruoso TimToady, re-writing my earlier question... is it possible for STD to allow custom dotty ops the same way it does for infix/postfix/etc?
13:32 masak it's pretty cool here in Uppsala as well, but probably not in the same way. :(
13:32 jnthn masak: lol
13:32 jnthn masak: I ate good Ramen toniht.
13:32 jnthn *tonight
13:33 masak nice.
13:33 jnthn Hakata is meant to be one of The Places to have that...
13:33 masak we've had very adequate sushi for lunch today.
13:33 pmichaud good morning, #perl6
13:33 jnthn hi pmichaud
13:33 masak pmichaud: \o/
13:34 * masak tries saying "Hakata" out loud
13:34 jnthn whoz op?
13:34 jnthn masak: Me saying "Fukuoka" out loud was far worse, before I was told how to say it properly.
13:34 masak heheh.
13:35 masak I guess, it's more like 'fook...' than 'fuck...'
13:35 masak dang, we need to teach people IPA on a wider scale. :/
13:36 jnthn It's kina fuck-ish, but I'd got it as fuk-u-o-ka (4 syllables) where as actually the "uo" are a dipthong-ish thingy.
13:36 jnthn Yeah, I keep meaning to learn IPA.
13:37 huf which is the most standard ascii encoding of IPA (or something similar)?
13:37 masak our intro-Mandarin teacher just assumed everyone knew IPA. I wish more techers did that.
13:37 masak huf: I've heard there's http://en.wikipedia.org/wiki/X-SAMPA
13:37 masak huf: but I've never really tried it. I imagine it's parly painful.
13:38 jnthn masak: Where did you learn it?
13:38 huf yeah, looks like it. but at least it works even w/o unicode
13:38 jnthn At school, or just by yourself for interest?
13:39 * ruoso tries, without success, to see where STD automatically registers sub infix:<bla> as a category:infix
13:42 moritz_ on the new evalbot server pugs, elf, rakudo, std and vijs work
13:43 moritz_ mildew's error messages are... opaque to me
13:44 JimmyZ joined #perl6
13:44 ejs1 joined #perl6
13:44 lisppaste3 moritz_ pasted "mildew error message" at http://paste.lisp.org/display/87497
13:45 ruoso er... the paste is opaque to me now ;)
13:46 moritz_ huh?
13:46 ruoso moritz_, could you try pasting again? it appears blank to me
13:46 moritz_ that's LTA
13:46 jnthn mildew gives zen error messages?
13:47 ruoso LTA?
13:47 moritz_ ruoso: http://nopaste.snit.ch/18022
13:47 jnthn ;-)
13:47 moritz_ less than awesome
13:47 cognominal http://gist.github.com/191076  # new version, I don't understand the interest of gist because the last url does not show my update.
13:48 cognominal *previous url
13:48 moritz_ did you update the previous gist? or did you make a new one?
13:48 pmurias diakopter: perl viv --js -e 'say 1' works here
13:49 diakopter pmurias: yay
13:49 ejs1 joined #perl6
13:49 ruoso cognominal, again, I think that's not postcircumfix
13:49 pmichaud I don't understand the use of the term "dereference" here
13:49 ruoso it's a dotty
13:49 ruoso yeah... dereference is pointless in Perl 6
13:50 ruoso pmurias, would you help moritz getting the mildew evalbot up?
13:50 cognominal what is the word, then?
13:50 diakopter vijs: say 3333 + (2222 * 2)
13:50 pmichaud well, what is it doing?
13:50 p6eval vijs 28360: OUTPUT«7777␤␤ time in interpreter: 0.023457 s␤»
13:50 diakopter odd; somehow parentheses grouping magically works without me doing anything in vijs
13:50 SmokeMachine joined #perl6
13:51 ruoso cognominal, it's simply a different dotty op that returns a failure or that actively raises an excception when the left side is undefined
13:51 diakopter vijs: say 3333 + 2222 * 2
13:51 p6eval vijs 28360: OUTPUT«7777␤␤ time in interpreter: 0.032286 s␤»
13:51 ruoso it's a kind of conditional method dispatch
13:51 * diakopter boggles
13:51 cognominal yes
13:52 ruoso cognominal, it's not specific to .<foo> or .[bar]
13:52 ruoso it applies to any value
13:52 ruoso $a!.foo
13:52 ruoso raises an exception if $a is undefined
13:52 pmichaud is it just changing the dispatch depending on the defined-ness of the invocant?
13:52 ruoso yes, "!." raises an exception if the invocant is undefined
13:53 pmichaud why does this need a special operator?
13:53 ruoso convenience?
13:53 pmichaud seems like we should make the convenience more generic then, and not tied to dotty
13:53 * ruoso not really suggesting it to be actually core, but it certainly need to be possible to be implemente
13:53 TimToady how does it differ from '.'?
13:53 pmichaud right, that's what I'm curious about.
13:54 ruoso $a.?foo tries to dispatch a method foo
13:54 ruoso but $a might be defined or undefined
13:54 ruoso $a?.foo will fail if $a is defined but doesn't implement foo
13:54 TimToady how does it differ from $a.foo
13:55 ruoso $a?.foo won't try to dispatch foo if $a is undefined
13:55 TimToady also, you may not add a dotty beginning with something other than dot
13:55 cognominal I was thinking it in the contex of .[] and .{}   with special action when the value does not exist.
13:55 pmichaud this already exists:    $a.?foo    # doesn't dispatch foo if $a is undefined
13:55 cognominal Apparently you are thinking it in a larger context where my propostion may not make any sense.
13:55 ruoso pmichaud, er... it doesn't fail if $a doesn't have method foo
13:56 pmichaud which it probably doesn't, if it's undefined :)
13:56 ruoso but if $a is undefined it will still try to invoke foo
13:56 ruoso pmichaud, wrong...
13:56 TimToady note that dotty has to be unambiguous as both postfix and as a term
13:56 ruoso Object.?new
13:56 ruoso this will successfully invoke method "new" on Object
13:57 pmichaud because method new is defined as     method new(Object:B $x: ... )
13:57 ruoso hm?
13:58 pmichaud .new is allowed to be invoked on undefined objects
13:58 ruoso rakudo: class Foo { method bar { say "Hello" } }; Foo.bar
13:58 p6eval rakudo e52ed3: OUTPUT«Hello␤»
13:58 ruoso rakudo: class Foo { method bar { say "Hello" } }; Foo.?bar
13:58 pmichaud Rakudo isn't a valid implementation.
13:58 pmichaud Rakudo isn't a valid implementation.
13:58 p6eval rakudo e52ed3: OUTPUT«Hello␤»
13:58 ruoso pmichaud, but rakudo is right in that point
13:58 pmichaud Rakudo doesn't constrain its invocants at the moment.
13:58 ruoso but the constraint is in the other direction
13:58 pmichaud is it?  What's the default :D/:U/:B flag for methods?
13:59 TimToady S12 currently has :A instead of :B
13:59 pmichaud okay, :A then
13:59 pmichaud but what's the default for methods that don't explicitly declare the invocant?
14:00 * ruoso 'd guess :A
14:00 pmichaud anyway, "defined or fail" should probably be written as   ($a // !!!)
14:00 viklund joined #perl6
14:01 ruoso "A bare Int may default differently in different circumstances. In a variable declaration, :A is assumed, whereas in a formal parameter that is not an invocant, :D is assumed."
14:01 TimToady I'd think :D would be a saner default most of the time, though it may depend on method/submethod
14:03 ruoso I think :A is a good default because it lefts :U and :D to when you need different implementations
14:03 pmichaud I think :D is the saner default
14:03 ruoso so you can still call 1.new
14:03 TimToady I think :D is a good default if you refer to any attributes in the body
14:03 pmichaud when I write a method, I don't generally expect that method to be valid on the (undefined) type object
14:04 TimToady but it's too early in the morning for me to decide anything :)
14:04 pmichaud for example,   Rat.sin   doesn't seem to make sense as :A
14:04 moritz_ pmichaud: only because it accessess attributes
14:04 TimToady anyway, if you guys want to define anything on the calling end, it should be a postfix, not a dotty
14:04 pmichaud agreed.  the basic form would seem to be ($a // !!!)
14:04 pmichaud so perhaps something like postfix:</!>
14:05 TimToady and *certainly* not an infix
14:05 TimToady or postfix:<?>
14:05 ruoso can a postfix interrupt a statement?
14:05 TimToady probably with a lookahead <!before '?'>
14:05 ruoso $a?.b.c.d
14:05 pmichaud ruoso: sure, that just parses as  ($a?).b.c.d
14:06 TimToady define what you mean by "interrupt a statement"
14:06 moritz_ pmurias, ruoso: re-running the build script magically solved my problems with mildew
14:06 ruoso avoid invoking .b.c.d
14:07 pmichaud instead of "avoid invoking", how about "makes .b.c.d harmless"?
14:07 ruoso hmm... that solves it as well
14:07 ecooper joined #perl6
14:07 moritz_ maybe that problem (having an invocant chain where one might fail) should be solved with feeds instead
14:07 TimToady similar to how subscripts propagate failure
14:08 TimToady moritz_ gives TimToady cognitive dissonance
14:09 pmichaud in particular, with postfix:<?> one could write    $a?.b?.c?.d
14:10 pmichaud which handles the case of a method returning a failure object as well
14:11 TimToady but Failure will have very few methods defined on it anyway, and we should just make sure the original Failure doesn't get lost in the new dispatch
14:11 TimToady we need that for cascaded subscript sanity in any case
14:12 TimToady (which is a really good argument for *not* accessing stacked exceptions via .[]
14:12 ejs1 joined #perl6
14:14 Util joined #perl6
14:14 TimToady since @a[$b][$c][$d] doesn't want to mess up the failure if @a[$b] doesn't exist by calling [$c] or [$d]
14:15 TimToady also probably a good argument for limiting the namespace of methods available on Failures
14:15 TimToady maybe make them all .Xfoo or some such
14:16 pmichaud TimToady: ooc, do you see Failure as more of a mixin role or as the type for most failure objects?
14:16 moritz_ is Failure ~~ Any?
14:16 pmichaud s/type/base type/
14:17 moritz_ if yes, it has loads of methods
14:19 TimToady I suppose we could put Failure outside of Any alongside junctions
14:19 pmichaud if we do that, it can't be passed to functions easily
14:19 TimToady not sure what the mixin model buys us either
14:19 pmichaud (unless they declare arguments as Object)
14:19 moritz_ unless undefined values are special-cased in type checks
14:19 pmichaud oh, correct, they are.
14:20 pmichaud except that above we just said that :D is assumed on non-invocant formal parameters :)
14:20 moritz_ in Eiffel there's a curious class for undef that notionally inherits from all existing classes
14:20 TimToady a bottom class
14:21 moritz_ right
14:21 TimToady called _|_ in Haskell, I believe
14:21 pmichaud TimToady: (mixing class)  I'm thinking of the case where we might want a Failure object that returns a value other than 0/""/false
14:21 pmichaud *mixin
14:23 zaphar_ps joined #perl6
14:23 pmichaud I'm completely fine if we don't have such things... I was just curious if we did :)
14:23 TimToady it seems like the choice is between sending an unexpected Failure down into a non-suspecting routine, vs dispatching to the wrong routine or no routine at all
14:23 TimToady the latter seems slightly saner
14:23 TimToady especially if we can usually get it to dispatch to no routine at all
14:23 pmichaud agree
14:24 pmichaud well, if arguments tend to default to :D then that would likely be the case
14:24 TimToady it would be corny if a Failure to produce a typeobject ended up invoking 'new' correctly anyway...
14:25 TimToady s/correctly/successfully/
14:27 KyleHa joined #perl6
14:27 pmichaud S02 says that Failure is a "non-instantiable role"
14:28 KyleHa Maybe that means that when you try to make an instance of it, all you get is a Failure.
14:28 TimToady not sure what the use case is for that, vs accidentally calling methods
14:28 TimToady KyleHa :D
14:29 ruoso I guess the idea of $a?.foo would be in the line of magically adding a CONTROL block surrounding that statement...
14:30 TimToady don't go there :)
14:30 jauaor joined #perl6
14:30 pmichaud if we're modifying a "statement", that sounds like a contextualizer of some sort
14:30 pmichaud still, I agree with "don't go there" :)
14:30 ruoso will there be dragons?
14:31 TimToady there will be multiplied entities
14:32 TimToady maybe we should put Failure outside of Any for a while and see how it works out
14:32 ruoso ouch
14:33 pmichaud okay, I can certainly try it in Rakudo and see what happens.
14:33 [particle] Failure is not an option?
14:33 pmichaud is Failure really a "non-instantiable role" as S02 says, or ... ?
14:33 TimToady that might be a useless generalization
14:33 TimToady not sure
14:33 pmichaud okay
14:33 pmichaud Rakudo currently has it as a standard type
14:34 pmichaud (not a role)
14:34 TimToady so it wouldn't be hard to move outside of Any
14:34 pmichaud but our Failure handling is a bit "whatever worked at the time" as opposed to being cleanly designed
14:34 ispy_ joined #perl6
14:34 araujo morning
14:35 TimToady I'd like to know if there's any good use case for Failure ~~ Any
14:35 * araujo increments one year from today
14:36 TimToady but at the moment it feels like junctions in wanting to subvert dispatch
14:36 Psyche^ joined #perl6
14:37 TimToady one could, I supposed, claim there's a tree of Failure types shadowing all the Any types...
14:38 TimToady would need a use case for that approach too
14:38 pmichaud well, since any container is effectively able to hold an (undefined) Failure, I'm not sure we need it.
14:39 pmichaud I suspect S04:1059 may be a fossil too (the part about "container whose type allow the Failure role to be mixed in")
14:39 TimToady iirc, we did that by morphing a Failure into a typeobject with the Failure mixin, or something like that
14:40 TimToady so it still officially passes the type test of the container
14:40 moritz_ masak: ha, you can remove the ':by on ranges' from http://use.perl.org/~masak/journal/39597 :-)
14:40 masak I can indeed. :)
14:40 TimToady well, it's just deprecated so far
14:40 masak I'll update the post to that effect.
14:40 nihiliad joined #perl6
14:41 pmichaud I'm thinking of incorporating 39597 into rakudo's ROADMAP
14:41 TimToady but we'd better not remove it until someone implements ... *+0.02
14:41 pmichaud well, Rakudo doesn't implement :by yet :)
14:41 TimToady ah, then it's pretty easy to remove it :)
14:41 pmichaud so it's not as if we're losing existing functionality :)
14:41 pmichaud I was working a bit on lazy implementations last night
14:42 pmichaud to get lazy ranges and lists
14:42 pmichaud (and IOs)
14:44 masak how'd it go?
14:44 pmichaud it also occurs to me -- are closures in series only valid after an infix:<...> ?  (more)
14:45 pmichaud i.e., what about something like
14:45 pmichaud 1 ... *, 10, *+10, 100, *+100, 1000
14:45 TiMBuS kil
14:45 TiMBuS agh
14:46 TiMBuS my gnome-do had died =/
14:46 dalek joined #perl6
14:46 pmichaud in other words, what happens if a rhs list happens to have a closure in a 2nd or later element?
14:48 pmichaud or is "..." just a form of specialized comma that makes a list into a series?
14:48 TimToady well, 1 ... *, 10 ... *+10, 100 ... *+100, 1000 seems more readable to me
14:48 rfordinal joined #perl6
14:48 TimToady ... stands for (potentially) multiple omitted commas
14:49 pmichaud okay, so my question remains then -- do we constrain the closures to immediately following infix:<...>, or can they occur anywhere in the series?
14:49 TimToady and I kind feel like I don't want ... to have to look at every value in the right list
14:49 TimToady I think if they're elsewhere in the list nobody will invoke them for you
14:50 pmichaud would it need to?  I'd think it'd still be lazy
14:50 pmichaud oh, okay
14:50 pmichaud I see what you mean
14:50 mberends left #perl6
14:50 TimToady and it just seems like encouraging a less readable kind of ...
14:51 TimToady sometimes I think my life would be simpler if I decided things on principle rather than gut feelings  :)
14:51 pmichaud it's a waterbed sort of "simpler", though
14:51 TimToady but then, we have a lot of those folks already...
14:52 pmichaud deciding things on principle just pushes the complexity into other areas of your life :)
14:52 TimToady or other areas of other people's lives :)
14:53 [particle] *cough* implementors *cough*
14:53 TimToady but really, it's more like I have too many principles that all fight with each other :)
14:54 pmichaud "You can't fight in here!  This is the War Room!"  (saw Dr. Strangelove again last night :-)
14:54 [particle] maybe you need a superintent
14:56 Woodi but feeling in guts can be looked as intuition - intuition is based on unclear feeling that something is right and comes with years of experience
14:57 pugs_svn r28361 | lwall++ | [STD] add warning comment to dotty section about starting with dot
14:57 Woodi unclear becouse of dificulties like in researches
14:58 TimToady some of the hardest principles to grok are the ones that cause something to NOT be there
15:04 Woodi TimToady: you mean p6 shouldn't have some nice functionalities ? :)
15:05 TimToady yes, like the ability to parse everything with a Lisp parser :)
15:05 diakopter principals, too
15:07 Woodi i'm sure somebody will implement that :) or just way to do something like that
15:07 TimToady certainly, and I don't mind parsing *some* things with it, just not everything
15:07 alester joined #perl6
15:08 Woodi but priority is important principle
15:08 TimToady it's just one principle
15:09 TimToady do you always prioritize eating over sleeping or sleeping over eating?
15:09 Woodi but we do not live forever here...
15:09 TimToady you have to do both
15:10 masak this one is slightly challenging: http://twitter.com/offwhitemke/status/4173512015
15:10 TimToady so priorities must often give way to blance
15:10 masak I think the poster is well-informed, but wrong.
15:10 TimToady *balance
15:10 moritz_ masak: "release date: known" + link to Rakudo * announcement
15:10 Woodi agree, not many absolute principles
15:11 pmichaud the poster referred to the wikipedia article, which says "no known release date"
15:11 masak moritz_: I'll try that. my only gripe with it is that it's 100% defensive, and 0% tongue-in-cheek.
15:11 moritz_ masak: or wait for better suggestions
15:11 pmichaud 3rd paragraph of the wikipedia article probably needs an update
15:11 pmichaud also, I'm wary of saying that Rakudo Star is the release date for "Perl 6"
15:11 masak same here.
15:11 pmichaud it's the release date for "a usable implementation of Perl 6"
15:12 Woodi btw. yesterday i noticed that rakudo is MUCH more ready then official web pages says...
15:12 masak it is.
15:12 masak I've been saying this for months! :)
15:12 pmichaud Woodi: I agree to some extent, but I haven't found the right phrasing yet
15:12 pmichaud some people won't consider it to be ready until there's a distribution with modules
15:12 Woodi sqlite3 works!
15:12 TimToady maybe we'll trick everyone in April and mark all the non-passing tests as "for 6.0.1
15:12 TimToady "
15:12 Woodi it's production ready :)
15:12 pmichaud +1
15:13 pmichaud :-)
15:13 masak uhm.
15:13 pmichaud let's see where we are in February first :)
15:13 TimToady why I said "maybe" :)
15:13 masak :)
15:13 pmichaud If Rakudo is truly far enough along at that point, I have no problem with that plan :)
15:14 pmichaud anyway, we do need to update the wikipedia page
15:14 TimToady engineers always hedge their predictions so that they're never wrong :)
15:14 masak I care about attracting people, but I don't care much about a Perl 6 'release date' any more.
15:14 ejs joined #perl6
15:14 pmichaud masak: agreed, although some people won't consider Perl 6 until there's a "release date"
15:15 pmichaud as the tweet demonstrates
15:15 Woodi sometimes marketing approach is good :) however i near hate that approach
15:15 masak pmichaud: assuming the tweeter belongs to that group, I simply shouldn't reply.
15:15 pugs_svn r28362 | jimmy++ | [docs/zh-cn/syn]added S02-bits.pod which is a Chinese transcript for S02, just a start.
15:16 TimToady Woodi: balance is necessary there too
15:16 masak but I can't help thinking that there's some possible reply that'll help him get a brighter view of Perl 6.
15:16 moritz_ are there any other great (non-software) projects without a release date?
15:16 Woodi "realease data" still can be unknown. just tell world that p6 work NOW
15:16 pmichaud it's hard to say where offwhitemke falls in that category
15:17 pmichaud however, offwhitemke is correct in that (according to wikipedia) we explicitly disclaim a release date
15:17 pmichaud and we probably need to do something about that
15:17 masak perpetual beta? :P
15:17 pugs_svn r28363 | jimmy++ | [docs/zh-cn/syn]changed S01.pod to S01-overview.pod
15:17 Woodi i gues perl1 was in use before 1.0...
15:18 pmichaud I think I have a potential tweet reply
15:18 masak ah. someone replied: http://twitter.com/magnachef/status/4173914642
15:18 masak good reply.
15:20 pmichaud sent my replies
15:21 masak pmichaud++
15:28 Woodi is it hard to autogenerate rakudo modules from C API ? for ncurses or openldap ? purpose: instant-available modules
15:28 moritz_ Woodi: there's an NCI compiler for parrot that makes it quite easy to write NCI signatures...
15:29 moritz_ and once these are known, it's not hard to use from Rakudo
15:29 moritz_ but that NCI compiler is a bit bit-rotted and needs love
15:29 diakopter -\o/-
15:29 Woodi so anser is: it's done ? :)
15:30 moritz_ no.
15:30 Woodi k, understud
15:30 Woodi i will google for NCI compiler
15:30 pmichaud ick.  attempted kidnapping at my son's school this morning.
15:31 huf whoa
15:31 huf was it one of the parents during a particularly horrid divorce?
15:31 pmichaud not likely
15:31 TimToady random, or estranged parent?
15:31 pmichaud random
15:31 pmichaud we know the kid who was attempted to be nabbed -- he's in my son's cub scout troop
15:31 pmichaud er, "pack"
15:32 moritz_ Woodi: nci_gen might be a good keyword
15:33 pmichaud (in fact, his father is the scoutmaster for the pack)
15:34 JimmyZ joined #perl6
15:34 elmex joined #perl6
15:35 diakopter pmichaud: how was it thwarted
15:35 pmichaud the boy is in 4th or 5th grade, not too young, and from his cub scout training he probably knew what to do, broke away from the kidnappers and headed to a safe place
15:36 pmichaud (er, kidnapper, singular)
15:36 huf what did they want with the kid? ransom or unknown (possibly crazy person)
15:36 pmichaud don't know
15:36 pmichaud something like this happened last year also
15:37 diakopter [OT] - would you go to work as a JS developer for a hi-tech company whose website says "Tuesday, September 22, 109"
15:37 huf heh, you'd be the only js dev in the world
15:37 huf but time travel is still cool :)
15:38 pmichaud diakopter: maybe ask them how they dealt with the "Year 100" problem.
15:39 avuserow they still haven't fixed all those "2 digit year" versus "years since 1900" bugs on active websites? really?
15:39 diakopter :)
15:41 diakopter hence my question
15:43 nihiliad joined #perl6
15:43 nihiliad left #perl6
15:44 * ruoso can't quite get why people like printing the current date and time in websites... if that was the date and time the site was last edited, it would make any sense...
15:44 ruoso s/any/some/
15:47 _jason9401 joined #perl6
15:47 diakopter it's javascript; just not updated for at least a decade. :)
15:53 rfordinal joined #perl6
16:19 moritz_ pmichaud: could you make the pugc-commit mailing list moderated only?
16:19 pmichaud sure
16:20 pmichaud I thought it was moderated already
16:21 pmichaud guess not
16:21 pmichaud just a sec
16:21 crythias joined #perl6
16:26 stephenlb joined #perl6
16:27 pmichaud moritz_: done, all messages (except those coming from pugs-commit on feather) are now moderated
16:27 pmichaud moritz_: I've also given your account manager permissions to the list
16:30 moritz_ pmichaud: great, thanks
16:32 dalek rakudo: 84981fd | pmichaud++ | docs/spectest-progress.csv:
16:32 dalek rakudo: spectest-progress.csv update: 436 files, 15498 (71.4% of 21695) pass, 0 fail
16:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​4981fd4cef43d11542e330d50383b04305c627a
16:40 pugs_svn r28364 | moritz++ | [evalbot] use ~ instead of full path to file, and glob
16:53 justatheory joined #perl6
16:56 OYSTR1 test
16:57 diakopter OYSTR1: yes
16:57 diakopter OYSTR1: you must be a bot. around here bots get +v
16:58 OYSTR1 op me!
16:58 OYSTR1 :P
17:00 huf bots getting smarter every day.... damn kids and their rollerboards!
17:00 stephenlb heh
17:00 OYSTR1 I use a trikke.
17:01 justatheory joined #perl6
17:02 OYSTR1 my friend told me his interpreter got changed to a compiler. That makes those infinite loops go that much faster!
17:02 diakopter I meant pmurias made it embed the interpreter in emitted .html/js :P
17:03 diakopter hugme: hug OYSTR1
17:03 * hugme hugs OYSTR1
17:03 OYSTR1 awe shucks.
17:03 smash joined #perl6
17:03 smash hello everyone
17:04 diakopter ho
17:04 diakopter I mean
17:04 diakopter yo
17:04 TimToady hello smash, you wonderful person you!
17:04 diakopter or hi
17:05 OYSTR1 you've given a voice to my oystr.
17:06 diakopter and then you went and shucked it
17:06 TimToady OYSTR1: help
17:06 OYSTR1 Get::Shucked
17:07 M_o_C joined #perl6
17:07 OYSTR1 ... help? You need help? I thought you were the author of your own fate.
17:08 diakopter STD is fairly fatalistic, actually
17:08 diakopter or fatal
17:08 OYSTR1 especially gonorrhea
17:08 TimToady hopefully fatally attractive
17:09 OYSTR1 ooh... boiled bunnies.
17:09 TimToady congratulations, you just passed the diakopter test
17:10 OYSTR1 really?
17:10 diakopter lol
17:10 OYSTR1 that's so cool because .. um. wait. why is that cool?
17:11 TimToady it means you might like butterflies
17:11 OYSTR1 the test that I was to pass the diakopter test is a very good test to pass.
17:11 OYSTR1 why do you think I might like butterflies?
17:11 diakopter hrm
17:11 TimToady because you passed the test
17:11 OYSTR1 why did I pass the test?
17:12 TimToady why do you ask me why did you pass the test?
17:12 OYSTR1 did you like for me to pass the test?
17:12 diakopter wget http://scripts.irssi.org/scripts/ban.pl
17:12 diakopter oops, ww
17:13 TimToady yes, but only if you also like butterflies
17:13 OYSTR1 what do you mean by oops?
17:14 TimToady I know what I mean when I say oops...
17:14 OYSTR1 I don't like butterflies.
17:14 moritz_ then #perl6 is not the channel for you, I fear
17:14 TimToady well, you don't *actually* have to like them
17:14 TimToady you only have to know how to be nice to them
17:14 TimToady see perl6.org
17:15 OYSTR1 I think I must like parrots.
17:15 TimToady you can say that again...awwwk
17:15 OYSTR1 I like awk. it is better than perl
17:16 TimToady now yer just bein' mean
17:16 OYSTR1 that's what she sed
17:16 TimToady you should go over to the #awk6 channel
17:17 OYSTR1 why do they need to have a channel for awk?
17:17 diakopter I don't know, why?
17:17 diakopter why do they need to have a channel for awk who?
17:17 TimToady Radio!
17:18 OYSTR1 auks are members of the puffin family.
17:18 TimToady you shouldn't believe everything you read
17:18 OYSTR1 pearls are just oyster vomit.
17:19 OYSTR1 except oysters can't vomit.
17:19 TimToady life is complicated
17:19 diakopter I thought they were oyster kidneystones
17:19 OYSTR1 so is perl.
17:19 OYSTR1 at least I don't have to eval awk
17:20 OYSTR1 I wonder if auks eat oysters.
17:20 * diakopter looks around for the real p6eval
17:20 TimToady are you evaling Perl 6?
17:20 OYSTR1 hot::sauce++
17:20 TimToady preferably about 500,000 scovilles
17:20 OYSTR1 wimp
17:21 OYSTR1 habaneros and scotch bonnets, pleasse.
17:21 TimToady those are less than 500k
17:21 TimToady generally
17:21 soybean joined #perl6
17:22 OYSTR1 fair enough.
17:22 OYSTR1 if it doesn't hurt coming out, it's not worth the hurt going in.
17:22 TimToady I am an expert on a lot of things, but not on Perl 6
17:23 TimToady to be an expert, you have to know where to go for the answers.
17:23 OYSTR1 wow. I know how to google. I must be an expert on everything.
17:23 moritz_ so who designs the designers?
17:24 OYSTR1 God is in the gasps.
17:24 TimToady that fits with STD
17:26 TimToady OYSTR1: would you like to help us gasp?
17:26 syntheticore_ joined #perl6
17:26 OYSTR1 Where shall I begin?
17:27 moritz_ at the start
17:27 OYSTR1 BEGIN{STD=0}
17:27 OYSTR1 END{print STD}
17:27 TimToady std: BEGIN{STD=0}
17:27 p6eval std 28364: OUTPUT«Undeclared names:␤     BEGIN used at 1␤  STD used at 1␤ok 00:02 37m␤»
17:27 avuserow rakudo: undefine 1
17:27 p6eval rakudo e52ed3:  ( no output )
17:28 pugs_svn r28365 | moritz++ | [evalbot] update config file
17:28 avuserow std: BEGIN { say "hello, world" }
17:28 justatheory joined #perl6
17:28 p6eval std 28364: OUTPUT«ok 00:04 37m␤»
17:28 avuserow std: BEGIN{ say "hello, world" }
17:28 p6eval std 28364: OUTPUT«Undeclared name:␤      BEGIN used at 1␤ok 00:04 37m␤»
17:28 TimToady std: BEGIN { constant STD = 0 }
17:28 p6eval std 28364: OUTPUT«ok 00:02 37m␤»
17:28 p6eval joined #perl6
17:28 diakopter bye bye p6eval
17:28 OYSTR1 battery is dying
17:29 diakopter oh, wb p6eval
17:29 diakopter vijs: say 'hello' ~ ' world'
17:29 moritz_ the new, faster and better p6eval, except where buggy
17:29 p6eval vijs 28359: OUTPUT«hello world␤␤  time in interpreter: 0.007606 s␤»
17:29 ruoso mildew: say "Hello"
17:29 diakopter SPEEDIER
17:29 p6eval mildew: OUTPUT«Hello␤»
17:29 OYSTR1 std: say "who has stds?"
17:29 p6eval std : OUTPUT«ok 00:03 95m␤»
17:29 diakopter pugs: die die 0
17:29 p6eval pugs: OUTPUT«sh: /home/p6eval/pugs/pugs: No such file or directory␤»
17:30 diakopter std: die die 0
17:30 p6eval std 28359: OUTPUT«ok 00:01 95m␤»
17:30 p6eval joined #perl6
17:30 pugs_svn r28366 | moritz++ | [evalbot] correct location of pugs binary
17:30 p6eval joined #perl6
17:30 moritz_ pugs: die die 0
17:30 p6eval pugs: OUTPUT«*** 0␤    at /tmp/LDSCif1OuH line 1, column 1 - line 2, column 1␤»
17:31 TimToady pugs: die die die !!!
17:31 p6eval pugs: OUTPUT«*** ␤    Unexpected end of input␤    at /tmp/Ypvb6NcEKb line 2, column 1␤»
17:31 TimToady pugs: die die die ...
17:31 p6eval pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤    at /tmp/IyInwo6zH3 line 1, column 13 - line 2, column 1␤»
17:31 TimToady snerk
17:31 diakopter heh
17:31 TimToady rakudo: die die die ...
17:31 p6eval rakudo 0eaf62: OUTPUT«Can't return outside a routine␤in Main (/tmp/rNkebgIc12:2)␤»
17:32 diakopter vijs: die die 0
17:32 TimToady this is wrong, you should be able to fail in Main
17:32 p6eval vijs : OUTPUT«␤  time in interpreter: 0.005670 s␤»
17:32 TimToady rakudo: fail "Phooey"
17:32 p6eval rakudo 0eaf62: OUTPUT«Can't return outside a routine␤in Main (/tmp/JbUE6hIqqz:2)␤»
17:32 TimToady LTA
17:33 moritz_ aye
17:34 diakopter vijs: fail epic
17:34 p6eval vijs : OUTPUT«Undeclared routine:␤       epic used at 1␤execute(): execute error: terminator__S_Semi not yet implemented; srsly!!?!?␤last: args␤T,T__terminator__S_Semi,_specific,​prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM​,phase,postDo,eval_args,invoker,context at viv line 171.␤»
17:35 TimToady hey, it works!
17:35 diakopter ha
17:35 diakopter succeed epic
17:35 diakopter vijs: succeed epic
17:36 p6eval vijs 28359: OUTPUT«Undeclared routines:␤ epic used at 1␤   succeed used at 1␤execute(): execute error: terminator__S_Semi not yet implemented; srsly!!?!?␤last: args␤T,T__terminator__S_Semi,_specific,​prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM​,phase,postDo,eval_args,invoker,context at viv line 171.␤»
17:36 diakopter what is the "used at 1"  line 1?
17:37 TimToady maybe instead of die we should have contextualizers: "epic fail", and warn could be "pretend fail" or some such
17:37 diakopter fake fail
17:37 diakopter fast fail
17:37 moritz_ vijs: say 1;␤fail
17:37 p6eval vijs : OUTPUT«execute(): execute error: terminator__S_Semi not yet implemented; srsly!!?!?␤last: args␤T,T__terminator__S_Semi,_specific,​prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM​,phase,postDo,eval_args,invoker,context at viv line 171.␤1␤»
17:37 TimToady fakefail++
17:37 moritz_ vijs: say 1;␤ fakefail
17:37 p6eval vijs 28359: OUTPUT«Undeclared routine:␤  fakefail used at 2␤execute(): execute error: terminator__S_Semi not yet implemented; srsly!!?!?␤last: args␤T,T__terminator__S_Semi,_specific,​prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM​,phase,postDo,eval_args,invoker,context at viv line 171.␤1␤»
17:37 TimToady then instead of "use fatal" it'd be "use epic"
17:37 moritz_ yes, line number
17:39 TimToady vijs: exit;␤fakefail;␤fakefail;␤fakefail
17:39 p6eval vijs : OUTPUT«Undeclared routine:␤       fakefail used at 2,3,4␤execute(): execute error: TypeError: Cannot read property 'length' of undefined at viv line 171.␤»
17:42 pugs_svn r28367 | lwall++ | [STD] make undefined message slightly L LTA
17:43 syntheticore_ hello everybody
17:45 dbrock` joined #perl6
17:45 syntheticore_ i have a question regarding the spec of the Set class in S32
17:45 syntheticore_ it says: "A Set responds to hash operators as if it were a Hash of True."
17:46 syntheticore_ on the other hand it was said that Sets should compare their elements using ===
17:47 syntheticore_ Hashes  seem to use == for membership-testting
17:47 syntheticore_ so whats the right thing to do?
17:48 TimToady actually, they use eq by default
17:48 TimToady (Hashes)
17:48 moritz_ and eq and === are the same on Strings
17:48 TimToady but my %set{Any} should be using ===
17:49 syntheticore_ ok, thanks for clearing that up
17:49 TimToady so mutable objects stand as their own values, basically using their address as their identity
17:51 syntheticore_ the spec also says that pick() should pick keys with higher values more often.
17:51 syntheticore_ Does this really mean the "values" of the actual keys?
17:51 TimToady when used on Bags
17:52 TimToady no, the count of the how many copies there are in the bag of that item
17:52 TimToady which is the hash value, not hte key
17:52 TimToady you ++ the value when you add a member to the KeyBag, and -- it when you take it out
17:53 TimToady it self-deletes when the value goes to 0
17:53 syntheticore_ I was wondering, because the spec gives basically the same definition for pick() for both Bags and  Sets
17:53 TimToady yes, but a set elements value is always 1
17:53 diakopter vijs: my $a=sub{$a()};$a()
17:53 TimToady *element's
17:54 p6eval vijs 28359:  ( no output )
17:54 TimToady so all the members of a set have equal probability
17:54 diakopter rakudo: my $a=sub{$a()};$a()
17:54 p6eval rakudo : OUTPUT«maximum recursion depth exceeded␤in sub _block52 (/tmp/JyImFAPC7E:2)␤called from sub _block52 (/tmp/JyImFAPC7E:2)␤called from sub _block52 (/tmp/JyImFAPC7E:2)␤called from sub _block52 (/tmp/JyImFAPC7E:2)␤called from sub _block52 (/tmp/JyImFAPC7E:2)␤called from sub _block52 (/tmp/Jy…
17:54 diakopter vijs has no maximum recursion depth.  is that bad?
17:54 syntheticore_ that's why I was confused ;)
17:54 syntheticore_ thnx
17:55 TimToady also assuming +True == 1
17:55 diakopter === ?
17:56 TimToady well, True == 1 too
17:56 moritz_ rakudo: say +True === 1
17:56 p6eval rakudo 0eaf62: OUTPUT«0␤»
17:56 moritz_ rakudo: say (+True) === 1
17:56 p6eval rakudo : OUTPUT«0␤»
17:57 moritz_ rakudo: say ((+True) === 1)
17:57 p6eval rakudo 0eaf62: OUTPUT«0␤»
17:57 TimToady rakudo: say +True
17:57 p6eval rakudo : OUTPUT«1␤»
17:57 moritz_ rakudo: say (+True).PARROT
17:57 TimToady O_o
17:57 p6eval rakudo 0eaf62: OUTPUT«Num␤»
17:57 diakopter vijs: say +True == 1
17:57 moritz_ anyway, this is a bug
17:57 p6eval vijs : OUTPUT«execute(): execute error: undefined not yet implemented; srsly!!?!?␤last: termish␤0,1,2,phase,postDo​,eval_args,invoker,context at viv line 171.␤»
17:57 avuserow why is there no version number sometimes?
17:57 moritz_ avuserow: after migrating p6eval to a different server the rakudo revision numbers were broken
17:58 diakopter also vijs
17:58 moritz_ I just fixed it (hopefully)
17:58 diakopter during a snap..
17:58 TimToady vijs: die;␤fakefail;␤fakefail;␤fakefail
17:58 p6eval vijs 28359: OUTPUT«Undeclared routine:␤  fakefail used at 2,3,4␤execute(): execute error: TypeError: Cannot read property 'length' of undefined at viv line 171.␤»
17:59 diakopter vijs: you so speedy now
17:59 p6eval vijs : OUTPUT«Undeclared routines:␤      now used at 1␤    so used at 1␤     speedy used at 1␤ you used at 1␤execute(): execute error: terminator__S_Semi not yet implemented; srsly!!?!?␤last:
17:59 p6eval ..args␤T,T__terminator__S_Semi,_specific​,prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM​,phase,postDo,eval_args,invoker,contex…
18:00 TimToady std: die;␤fakefail;␤fakefail;␤fakefail
18:00 p6eval std 28359: OUTPUT«Undeclared routine:␤   fakefail used at 2,3,4␤ok 00:01 95m␤»
18:00 diakopter vijs: my $a = 33993993993939393993939399393939; my $b = 939393993939399393939399393999; say $a / $b; say $a % $b;
18:00 p6eval vijs : OUTPUT«36␤175810212121015812121021209975␤␤  time in interpreter: 0.016540 s␤»
18:00 TimToady ETOOIMPATIENT
18:01 TimToady vijs: say pi
18:01 p6eval vijs 28359: OUTPUT«execute(): execute error: term__S_pi not yet implemented; srsly!!?!?␤last: noun__S_term␤T,T__term__S_pi,_specifi​c,prec,END,dba,BEG,TEXT,kind,WS,SYM,p​hase,postDo,eval_args,invoker,context at viv line 171.␤»
18:02 TimToady hmm, STD ought to be inlining constants
18:02 diakopter rakudo: my $a = 33993993993939393993939399393939; my $b = 939393993939399393939399393999; say $a / $b; say $a % $b;
18:02 TimToady NYI I guess
18:02 p6eval rakudo : OUTPUT«Assignment type check failed; expected Int, but got Num␤in sub Rat::block_69 (src/gen_setting.pm:1082)␤called from method Rat::new (src/gen_setting.pm:1092)␤called from sub infix:/ (src/gen_setting.pm:1168)␤called from Main (/tmp/1wlxkGB5Qm:2)␤»
18:03 TimToady vijs: constant pi = 3; say pi
18:03 p6eval vijs 28359: OUTPUT«execute(): execute error: scope_declarator__S_constant not yet implemented; srsly!!?!?␤last: noun__S_scope_declarator␤T,T__scope_declara​tor__S_constant,BEG,_specific,SYM,scoped,EN​D,M,phase,postDo,eval_args,invoker,context at viv line 171.␤»
18:03 snearch joined #perl6
18:04 diakopter phase,postDo,eval_args,invoker,context are each members the vijs interpreter trampoline/loop adds
18:07 diakopter I don't get that rakudo error msg
18:07 diakopter what's with Rat::new
18:09 diakopter rakudo: my $a = 33993993993939393993939399393939; my $b = 939393993939399393939399393999; say $a/$b; say $a % $b;
18:09 p6eval rakudo : OUTPUT«Assignment type check failed; expected Int, but got Num␤in sub Rat::block_69 (src/gen_setting.pm:1082)␤called from method Rat::new (src/gen_setting.pm:1092)␤called from sub infix:/ (src/gen_setting.pm:1168)␤called from Main (/tmp/CGX47Qf8hu:2)␤»
18:10 moritz_ diakopter: it autopromotes large ints to Num (or so), so the Int type check fails
18:10 Zloyrusskiy joined #perl6
18:10 diakopter oh
18:10 TimToady doesn't do big Int yet
18:11 diakopter vijs: say 1+<1
18:11 p6eval vijs 28359: OUTPUT«1␤␤    time in interpreter: 0.008679 s␤»
18:11 * diakopter blinks
18:12 diakopter oh, Multiplicative
18:12 diakopter ok
18:12 * diakopter goes to make <+ work
18:16 pugs_svn r28368 | diakopter++ | [vijs] implement infix__S_PlusLt
18:17 diakopter vijs: say 1+<2, 1+<3
18:17 p6eval vijs : OUTPUT«48␤␤        time in interpreter: 0.011067 s␤»
18:18 diakopter vijs: say 1+<2, '  ', 1+<3
18:18 p6eval vijs 28359: OUTPUT«4  8␤␤ time in interpreter: 0.011898 s␤»
18:18 diakopter whee
18:18 moritz_ jivs: say -1 +< 2
18:18 moritz_ vijs: say -1 +< 2
18:18 p6eval vijs : OUTPUT«execute(): execute error: Symbolic_unary not yet implemented; srsly!!?!?␤last: eval_args␤T,T__Symbolic_unary,BEG,kin​d,prec,arg,uassoc,END,dba,assoc,M,pha​se,postDo,eval_args,invoker,context at viv line 171.␤»
18:18 moritz_ vijs: say (0-1) +< 2
18:18 p6eval vijs 28359: OUTPUT«-4␤␤   time in interpreter: 0.010970 s␤»
18:19 * diakopter doesn't know whether that's expected.
18:19 * diakopter just wires up the libraries
18:19 moritz_ rakudo: say (-1) +< 2
18:19 p6eval rakudo : OUTPUT«-4␤»
18:20 pmurias diakopter: why not having a maximum recursion depth would be a bad thing?
18:20 diakopter I dunno... I guess if each recursion takes a bit more memory, it'll run out eventually and the user will discover sometime there was an infinite recursion.
18:21 TimToady looks about right
18:22 TimToady I don't suppose you're doing anything like real multiple dispatch yet
18:22 nihiliad joined #perl6
18:23 diakopter nope
18:25 diakopter it doesn't even have an object/type model besides "p6var" (basically a slot in a context/scope/namespace that holds one of the other types, aka named/slotted reference), Int, p6sub, and Str
18:25 diakopter oh and p6array
18:25 diakopter I just chose whatever name I fancied; it can be rechristened upon baptism
18:25 diakopter assuming it comes back up...
18:27 diakopter vijs: 'you so quick and dirty'
18:27 p6eval vijs 28359: OUTPUT«␤     time in interpreter: 0.003139 s␤»
18:29 pugs_svn r28369 | diakopter++ | [vijs] implement shift right Int
18:29 * diakopter cheats and manually svn updates p6eval
18:30 diakopter moritz: just the js/ dir, I mean
18:30 diakopter vijs: say 48+>2
18:30 p6eval vijs : OUTPUT«12␤␤        time in interpreter: 0.008955 s␤»
18:31 diakopter vijs: say (0-1536)+>2
18:31 p6eval vijs 28359: OUTPUT«-384␤␤ time in interpreter: 0.010835 s␤»
18:35 abra joined #perl6
18:35 hanekomu joined #perl6
18:35 diakopter TimToady: to more fully answer your question, the "dispatch" is already a few tiers, so what's another few layers? :)
18:36 pmurias diakopter: say 'hello world' doesn't work in vivjs?
18:37 diakopter vijs: say 'hello world'
18:37 p6eval vijs : OUTPUT«hello world␤␤       time in interpreter: 0.005695 s␤»
18:39 diakopter pmurias: oh you mean locally for you?
18:41 pmurias didn't update everything
18:41 rfordinal left #perl6
18:46 pugs_svn r28370 | moritz++ | [evalbot] better diagnostics for non-existing revision files
18:47 p6eval joined #perl6
18:47 moritz_ vijs: say "hi"
18:47 p6eval vijs 28359: OUTPUT«hi␤␤   time in interpreter: 0.005720 s␤»
18:48 * moritz_ is really at loss why somtimes the revision number is missing, and sometimes it works
18:48 moritz_ d'oh.
18:48 moritz_ vijs: say 3
18:48 p6eval vijs : OUTPUT«3␤␤ time in interpreter: 0.006779 s␤»
18:53 p6eval joined #perl6
18:53 diakopter vijs: say 3;
18:53 p6eval vijs 28359: OUTPUT«3␤␤    time in interpreter: 0.006456 s␤»
18:54 diakopter vijs: say 3;
18:54 p6eval vijs : OUTPUT«3␤␤ time in interpreter: 0.006981 s␤»
18:55 kyle__ joined #perl6
18:56 rindolf joined #perl6
18:56 p6eval joined #perl6
18:57 rindolf Hi all.
18:57 moritz_ vijs: 3
18:57 p6eval vijs 28359: OUTPUT«␤     time in interpreter: 0.003172 s␤»
18:57 moritz_ vijs: say 3 + 4
18:57 p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008535 s␤»
18:58 pmurias diakopter: i think we should have some tests for vivjs but i'm not sure where to put them
18:58 p6eval joined #perl6
18:58 KyleHa joined #perl6
18:58 moritz_ vijs: say 3 + 4
18:58 diakopter pmurias: I agree.. I'm still working on the Test.pm emulation
18:59 p6eval vijs 28359: OUTPUT«7␤␤    time in interpreter: 0.007776 s␤»
18:59 moritz_ vijs: say 3 + 4
18:59 p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008368 s␤»
18:59 diakopter weird
18:59 Student joined #perl6
18:59 moritz_ vijs: say 3 + 4
18:59 p6eval vijs 28359: OUTPUT«7␤␤    time in interpreter: 0.019223 s␤»
18:59 moritz_ vijs: say 3 + 4
18:59 pmurias diakopter: moving vivjs to it's directory instead of being a mode on top of vivjs might be a good idea
18:59 p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008196 s␤»
18:59 diakopter moritz_: the file needs closed
19:00 moritz_ hm?
19:01 pmurias diakopter: should i do it?
19:01 * moritz_ can't parse that sentence
19:01 TimToady 2nd time through it reads second line of version file
19:01 TimToady is what I think they mean
19:02 pmurias moritz_: which sentence?
19:02 moritz_ 20:59 <@diakopter> moritz_: the file needs closed
19:02 TimToady s/needs/needs to be/
19:02 TimToady and reopened, presumably
19:02 moritz_ TimToady: uhm, I close it explicitly, and it's a lexical that stores the file handle anyway
19:02 TimToady just saying what I thought they meant
19:03 moritz_ ok
19:05 p6eval joined #perl6
19:05 moritz_ vijs: say 3
19:05 p6eval vijs 28359: OUTPUT«3␤␤    time in interpreter: 0.007034 s␤»
19:05 moritz_ vijs: say 4
19:05 p6eval vijs 28359: OUTPUT«4␤␤    time in interpreter: 0.007086 s␤»
19:05 KyleHa1 joined #perl6
19:07 TimToady though that number seems about 10 back from head
19:07 TimToady std: nonesuch
19:07 p6eval std 28359: OUTPUT«Undeclared routine:␤   nonesuch used at 1␤ok 00:01 95m␤»
19:08 TimToady doesn't have my patch of 1.5 hours ago
19:14 icwiener joined #perl6
19:14 moritz_ std: nonesuch
19:14 p6eval std 28370: OUTPUT«Undeclared routine:␤   nonesuch used at line 1␤ok 00:01 95m␤»
19:15 moritz_ that's after a 'make snap'
19:15 TimToady hmm
19:15 TimToady cron failure?
19:15 TimToady or does p6eval fire that off?
19:15 moritz_ cron
19:16 moritz_ ok, some paths were wrong in the cron tab
19:18 ruoso joined #perl6
19:37 justatheory joined #perl6
19:38 diakopter tell pmurias: sure, if you want... there will likely be additions/fixes to viv that need migrated over though
19:38 diakopter phenny: tell pmurias: sure, if you want... there will likely be additions/fixes to viv that need migrated over though
19:38 phenny diakopter: I'll pass that on when pmurias is around.
19:39 BinGOs joined #perl6
19:41 molaf joined #perl6
19:51 icwiener joined #perl6
19:56 justatheory joined #perl6
20:16 pugs_svn r28371 | fglock++ | [mp6] Javascript client-side compilation works
20:25 diakopter std: nonesuch
20:25 p6eval std 28370: OUTPUT«Undeclared routine:␤   nonesuch used at line 1␤ok 00:01 95m␤»
20:28 flavioglock joined #perl6
20:29 diakopter flavioglock: howdy
20:29 flavioglock diakopter: hi!
20:29 flavioglock http://perlcabal.org/~fglock/perlito.html
20:29 flavioglock press "Execute" there
20:30 moritz_ flavioglock++
20:30 flavioglock does it work?
20:31 ecooper left #perl6
20:31 Tene it works for me.
20:31 flavioglock yay!
20:32 diakopter looks good in Google Chrome, though I can't clear the Output box
20:32 moritz_ flavioglock: it seems that \n is ignored in the output
20:32 moritz_ and it doesn't seem to handle errors very gracefully
20:32 flavioglock no, it doesn't handle errors at all
20:32 diakopter flavioglock: disregard our gripes :D  that's great
20:33 flavioglock cool - I'll try to blog something
20:34 moritz_ flavioglock: and please tell us the URL
20:34 diakopter flavioglock: if you want bigints see how I'm doing them in my little STD->JS interpreter vijs
20:36 flavioglock diakopter: for now I just want it to be fast, in order to bootstrap in js; I'll add features later
20:36 diakopter oh
20:37 diakopter in case you're curious too, vijs uses perl (5) linked to Google's MIT-licensed JS engine "V8"
20:37 flavioglock nice - I'm using v8 at the command line too
20:39 flavioglock diakopter: this compiler can also execute in perl5 and in SBCL Lisp
20:39 flavioglock it could generate perl5 from the browser :)
20:40 diakopter neat...
20:41 diakopter IE can use Perl5 as a <script> engine with an IScript addin; I don't know about the other browsers
20:44 diakopter OR
20:44 diakopter you can swap out IE entirely, within IE: :) http://blog.chromium.org/2009/09/in​troducing-google-chrome-frame.html
20:49 diakopter flavioglock: I'm very curious what v8 bug it's working around?
20:53 flavioglock blog: http://use.perl.org/~fglock/journal/39664
20:54 flavioglock it seems v8 doesn't compile a 'method' until it compiles the function you are inside,
20:54 flavioglock adding the reference seems to fix it
20:54 [particle] diakopter: point of note, http://www.vijs.ca/ is the website for my favorite indian food on earth
20:55 payload joined #perl6
20:56 diakopter ah, trick the JIT
20:56 flavioglock diakopter: I didn't investigate much, because it worked :)
20:56 diakopter [particle]: well, it needs a different name
20:56 diakopter my js interpreter, I mean
20:57 diakopter er, Perl6 interpreter, I mean.
20:57 pugs_svn r28372 | moritz++ | [t/spec] fix a Rat test
20:58 moritz_ can anybody please check if the latest rakudo runs t/spec/S32-num/rat.t fine?
20:58 moritz_ on my local machine it dies at the end with "Could not find non-existent sub done_testing"
20:59 pmurias joined #perl6
20:59 pmurias flavioglock: hi
20:59 phenny pmurias: 19:38Z <diakopter> tell pmurias sure, if you want... there will likely be additions/fixes to viv that need migrated over though
20:59 pmurias flavioglock: is mp6 bootstraped in js?
21:00 flavioglock pmurias: I didn't try yet, but it should work
21:00 flavioglock I'll test tomorrow, I need to sleep
21:00 pmurias so how does perlito work?
21:00 flavioglock I used the perl5 compiler, with the js emitter
21:01 flavioglock the js compiler should compile itself, but I didn't try yet
21:02 pmurias what's your plan for mp6?
21:03 dbrock` joined #perl6
21:03 flavioglock I have a precedence parser I need to merge in, and a few more backends I'd like to test
21:04 flavioglock maybe merge some features back from kp6, later
21:06 lmc joined #perl6
21:10 flavioglock pmurias: this is already big enough for a few weeks
21:18 iblechbot joined #perl6
21:22 pmurias what backend to plan on testing?
21:22 pmurias * backends
21:23 pmurias s/to/do you
21:23 moritz_ rakudo: say <a b c>.join
21:23 p6eval rakudo 0eaf62: OUTPUT«abc␤»
21:24 flavioglock I worked a bit on Clojure and I also tried desugaring to execute on Rakudo
21:25 flavioglock rpython also looks interesting
21:26 diakopter how about C#/DLR :)
21:27 moritz_ rakudo: say 1/2 eqv 1/2
21:27 p6eval rakudo 0eaf62: OUTPUT«infix:<eqv> is only implemented for certain special cases yet␤in sub infix:eqv (src/gen_setting.pm:2073)␤called from Main (/tmp/KzOtmXVNGs:2)␤»
21:28 flavioglock C# would be nice to have, but I don't have an application for it - so I'm not much motivated
21:29 flavioglock it has a low fun-factor
21:30 diakopter C# has perhaps a too-high fun-factor for me.
21:30 flavioglock I experimented with modifying the v8 grammar to accept mp6
21:31 flavioglock this has a high fun-factor, but it would be impossible to maintain across v8 releases
21:31 flavioglock too high?
21:34 diakopter yeah, as in, I can't afford it. :)
21:35 moritz_ should 2, 4 ... *+2, 7 end in 6 or in 8?
21:35 pmichaud should be  2, 4, 6, 7
21:35 moritz_ pmichaud: thanks
21:37 flavioglock pmichaud: hi!
21:37 pmichaud hello, fglock.  nice work on perlito
21:37 flavioglock thanks :)
21:37 moritz_ and 1, 3 ... +2, -2 would be infinite, right?
21:38 pmichaud do you mean *+2 ?
21:38 pmichaud or +2
21:38 moritz_ *+2
21:38 pmichaud I would take it to be  1, 3, -2
21:38 flavioglock zzz &
21:38 pmichaud oh, wait
21:38 pmichaud hmmm
21:38 moritz_ oh, uhm.
21:39 pmichaud yes:   1, 3, 5, 7, 9, ...
21:39 pmichaud (infinite)
21:42 PZt joined #perl6
21:46 moritz_ currently trying to test and implement it...
21:47 moritz_ the previous signature was (@lhs, Code $generator)
21:47 moritz_ now I added (@lhs, Code $generator, $limit?)
21:48 moritz_ $ ./perl6 -e '1, 2 ... *+2, 8'
21:48 moritz_ No applicable candidates found to dispatch to for 'infix:...'
21:48 dalek rakudo: c584dc6 | moritz++ | src/setting/Operators.pm:
21:48 dalek rakudo: remove some duplicate code in infix:<...>
21:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​584dc62977b90e7aa7b527a96b4f068661a3ff2
21:48 dalek rakudo: 0220cc2 | moritz++ | src/setting/Operators.pm:
21:48 dalek rakudo: implement infix:<eqv>(Rat, Rat)
21:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​220cc22acefd5567c03b562eab3dd06fe53e6d8
21:48 moritz_ so, it builds a list of the RHS too, I assume
21:49 moritz_ so this is going to be ugly
21:50 pugs_svn r28373 | moritz++ | [t/spec] initial tests for series operator with limit
21:50 TimToady I find the 2,4,6,7 semantics to be surprising
21:51 TimToady I was thinking of the number as a pure limit, thrown away
21:51 moritz_ bs in, bs out ;-)
21:52 moritz_ the other logical thing to do would be to return 2, 4, 6, 8
21:52 TimToady I think it's 2,4,6
21:52 moritz_ ie take the first produced value for which the comparison has changed
21:53 moritz_ then our simple scheme won't work
21:53 moritz_ ie the "compare $first with $last, and keep going until $latest cmp $last is different"
21:54 tak11 joined #perl6
21:55 moritz_ we'd have to special-case inclusion of $latest if $latest cmp $last == 0
21:55 moritz_ fine by me if specced
21:55 TimToady note the sample code in the spec essentially does that
21:55 moritz_ but means that 1, 1 ... $complicated_closure, 1 might not be consistent
21:58 * moritz_ looks at the spec again
21:58 TimToady it always quits on $new === $old as well as on equality
21:58 moritz_ what are !after and !before?
21:58 TimToady *inequality with endpoint
21:58 TimToady !after is before or eqv
21:59 TimToady in most number systems :)
21:59 moritz_ so it's $new cmp $old <= 0?
21:59 TimToady depends on the direction
22:01 TimToady we could, I suppose write 1,2 ... $closure => $limit, 10, 11 etc.
22:01 TimToady the pair kinda looks like "going to the limit"
22:02 moritz_ S03 has the example 'z' ... 'a'  # z y x ... a
22:03 moritz_ which multi should handle that?
22:03 TimToady ... is always two lists
22:03 moritz_ ok
22:03 TimToady or more, since it's list associative
22:04 TimToady so more like X or Z
22:04 kothog left #perl6
22:04 moritz_ so it doesn't really do "intelligent" multi dispatch, it just unpacks its arugment and tries to be smart with it
22:04 TimToady yes
22:05 TimToady but maybe we should have a way of combining the closure and the limit into a single argument, such as with pair notation
22:05 moritz_ it would emphasize that the end point is not always part of the result list
22:05 TimToady so it's clear the $limit isn't part of the next sequence unless the generator generates it
22:07 TimToady but I was mostly assuming that people wouldn't write limits that don't match exactly, in which case maybe the comma reads better
22:08 TimToady or we find some way of hacking:  1,2,3 ... *+1 <= 10, etc.
22:09 moritz_ 1,2,3 ... *+1 also * <= 10
22:09 * TimToady glares suspiciously at a round hole and a square peg
22:09 moritz_ well... not really
22:10 pugs_svn r28374 | moritz++ | [t/spec] more series tests straight from the spec.
22:10 pugs_svn r28374 |
22:10 pugs_svn r28374 | Also correct one test as clarified by TimToady++ on IRC
22:10 omega joined #perl6
22:12 moritz_ it's still not quite clear to me how dispatch to ... works
22:12 moritz_ it has to receive a raw capture and unpack that
22:12 TimToady or parcel
22:13 moritz_ but if it does, how can it know which parts are left of the first ..., and which parts are right of it?
22:13 japhb I need a linguist's brain: What is the term for a type of test that is exploratory?  The little scripts you write when you just want to see if something is feasible, and generally how you would do it, before you even start on the real prototype?  'Proof of concept'  close, but I think of that as something used to prove some entire project is doable.  I'm talking about some little piece of it.  Like "How do I do async DNS lookups on this pl
22:13 japhb atform" when you're really writing a client app for some protocol.  So far we in #parrot have come up with 'throwaway', 'scribble', and 'doodle'.  Anything better?
22:13 TimToady one capture for each arg
22:13 moritz_ or is that handled by multidimensionality, which rakudo doesn't handle yet?
22:13 moritz_ ok
22:13 TimToady $cap ... $cap ... $cap
22:14 TimToady well, a slurpy of captures, maybe we could force that for now
22:14 moritz_ so nothing I can implement in Rakudo today. Sigh
22:14 TimToady how does it do Z?
22:14 TimToady rakudo: say 1,2,3 Z 4,5,6
22:14 p6eval rakudo 0eaf62: OUTPUT«sh: ../p/bin/perl6: No such file or directory␤»
22:14 moritz_ probably wrong :)
22:15 moritz_ rakudo: say 1
22:15 p6eval rakudo 0eaf62: OUTPUT«sh: ../p/bin/perl6: No such file or directory␤»
22:15 TimToady ... is the same precedence as Z
22:15 japhb Any ideas?  TimToady, anything?
22:15 TimToady sec, brain still on ...
22:15 japhb ah
22:16 TimToady probes
22:16 japhb oooh
22:17 japhb I like that one.
22:17 TimToady depends on whether you're the prober or the probee
22:17 japhb heh
22:17 japhb And your particular predilections as well, I'd assume ...
22:18 japhb Anyway, I think that one will do nicely.  Thanks, TimToady++
22:18 moritz_ oh, it seems that infix:<Z> works pretty well in Rakudo, but it's a functionality not available from Perl6, only from PIR
22:18 moritz_ and I'm not going to write the series operator in PIR. That's way too painful :)
22:19 moritz_ rakudo: say 3
22:19 p6eval rakudo 0eaf62: OUTPUT«3␤»
22:19 TimToady I guess rakudo needs parcels...
22:20 moritz_ aye
22:21 TimToady or at least some way of turning an argument list into a scalar iterator
22:21 sjohnson trusty $i variable
22:21 TimToady rakudo: say i
22:21 p6eval rakudo 0eaf62: OUTPUT«Could not find non-existent sub i␤»
22:21 moritz_ well, I hope that jnthn++'s grant proposal is going to be accepted
22:21 TimToady rakudo: constant i = 1i; say i
22:21 p6eval rakudo 0eaf62: OUTPUT«0+1i␤»
22:22 moritz_ we wants  to redo signatures in Rakudo
22:22 moritz_ (sorely needed)
22:23 diakopter std: selfsame
22:23 p6eval std 28370: OUTPUT«Undeclared routine:␤   selfsame used at line 1␤ok 00:01 95m␤»
22:23 diakopter std: nextsame
22:23 p6eval std 28370: OUTPUT«ok 00:01 95m␤»
22:23 diakopter std: samename
22:23 * moritz_ drifts off to bed
22:23 p6eval std 28370: OUTPUT«Undeclared routine:␤   samename used at line 1␤ok 00:02 95m␤»
22:34 ruoso joined #perl6
22:36 ruoso boa noite
22:40 jrtayloriv Are each of the alternatives in this rule tested as if they have written before them? --> http://pastebin.ca/raw/1575841 ... that is, does :sigspace replacing whitespace with '<.ws>' immediately after the '|'?
22:41 jrtayloriv s/they have/they have <.ws>/
22:42 jrtayloriv So, for example, if I didn't want to allow a <list> with whitespace before it to match, would I have to do '|<list>' instead of '| <list>'?
22:44 TimToady that looks like it should be a token to me
22:44 TimToady and let the rule that calls it eat the spaces
22:47 crythias joined #perl6
22:47 crythias perl6: say 3
22:47 p6eval elf 28374, pugs, rakudo 0eaf62: OUTPUT«3␤»
22:47 jrtayloriv TimToady, OK. So you are saying that if I wrote 's_expr' as a token which was called from 'rule TOP', then all of the whitespace that came before the <s_expr> would be eaten by TOP, so I wouldn't have to worry about them, correct?
23:00 rhr joined #perl6
23:03 jauaor joined #perl6
23:12 TimToady jrtayloriv: right, basically things tend to naturally fall into patterns that want to match ws and those that don't
23:13 TimToady though often a "token" will call a subrule that matches whitespace internally
23:13 TimToady so parentheses will typically be a token, but call a subrule that matches whitespace around a subexpression.
23:14 TimToady though of course Lisp has its own rules
23:24 buu * JOB DESCRIPTION:
23:24 jrtayloriv TimToady, Thank you.
23:24 buu Whups. MT
23:32 crythias joined #perl6
23:36 Limbic_Region joined #perl6
23:45 TiMBuS joined #perl6
23:46 frederico joined #perl6
23:54 jrtayloriv joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs