»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
00:02 Whiteknight joined 00:07 sm` left, zpmorgan left 00:09 ihrd joined 00:13 rfordinal left 00:20 jauaor left 00:27 rdice left, kothog joined, quietfanatic left
kothog is there a git repository for perl6 somewhere? 00:27
TimToady for rakudo
00:27 TiMBuS joined
kothog TimToady: oh? 00:28
TimToady hit "Download" on perl6.org and you should get to the rakudo page
kothog i see it.
thank you!
neat.. seemingly not much to it! i infer some effort is going elsewhere. Parrot? 00:32
00:33 ihrd left 00:39 arnsholt_ joined 00:48 felipe left, Gothmog_ left, BinGOs left, sm^^^ left, shachaf left, xinming left, jrockway left, ascent_ left, carlin left, spinclad left, athomason left, astinus left, szbalint left, baest left, huf left, edenc left, TimToady left, sunnavy left, cookys left, cosimo left, Ryan52 left, literal left, IRSeekBot left, c1sung left, Tene left, he_ left, krunen left, bigpresh_ left, jantore left, ruoso left, Patterner left, PacoLinux left, araujo left, lisppaste3 left, pnu left, gbacon left, Dr_Sunglasses left, yath left, hatseflats left, renormalist left, bionoid left, Juerd left, kent\n left, cxreg left, Eevee left, maja left, rhr_ left, arthur-_ left, ilbot2 left, frew_ left, Aisling left, charsbar left, Woody2143 left, michaelr left, rapacity left, r0bby left, payload left, leedo_ left, synth left, dukeleto left, meteorjay left, clkao left, integral left, Woodi left, yves left, blaze-x left, gabiruh left, kothog left, garron left, elmex left, buu left, rjh left, Infinoid left, christine left, dmpk2k left, solarion left, rafl left, japhb left, mj41_ left, ingy left, orafu left, jrtayloriv left, hudnix left, cotto left, zostay left, simcop2387 left, dalek left, wolverian left, silug left, stephenlb left, justatheory left, diakopter left, jan_ left, sri_ left, nothingmuch left, p6eval left, frettled left, jql left, mtve left, arnsholt_ left, Whiteknight left, mspauldi1g left, alester left, frederico left, hcchien left, kst left, zev left, avar left, mdxi left, KatrinaTheLamia left, sjohnson left, Intensity left, lucs left, pjcj left, Grrrr left, kcwu left, tylerni7 left, Rint left, Matt-W left, allbery_b left, moritz_ left, cls_bsd left, mikehh left, nbrown left, cmv left, drbean left, hugme left, buubot left, Caelum left, s1n left, BooK left, devin left, pugs_svn left, pmichaud left, ezra left, sbp left, phenny left, TiMBuS left, Confield left, NorwayGeek|Away left, toyam_ left, szabgab left, [particle] left, Helios- left, kolibrie left, Khisanth left, omega left, ewilhelm left, nsh left, JarJarBinks left, frodwith left, PerlJam left, Maddingue left, c9s left, tomaw_ left 00:55 arnsholt left 00:59 diakopter joined, maja_ joined, arnsholt_ joined, TiMBuS joined, kothog joined, sm^^^ joined, mikehh joined, ruoso joined, payload joined, mspauldi1g joined, Confield joined, nbrown joined, tomaw_ joined, cmv joined, japhb joined, leedo_ joined, bigpresh_ joined, NorwayGeek|Away joined, synth joined, mj41_ joined, Eevee joined, justatheory joined, he_ joined, dukeleto joined, Patterner joined, PacoLinux joined, alester joined, szabgab joined, shachaf joined, kent\n joined, drbean joined, ingy joined, frederico joined, orafu joined, [particle] joined, xinming joined, hcchien joined, jrtayloriv joined, jrockway joined, kst joined, Dr_Sunglasses joined, hudnix joined, araujo joined, jan_ joined, meteorjay joined, cotto joined, ascent_ joined, hugme joined, irc.freenode.net sets mode: +o diakopter, lucs joined, zev joined, zostay joined, rhr_ joined, clkao joined, arthur-_ joined, sri_ joined, carlin joined, avar joined, Woodi joined, integral joined, simcop2387 joined, ilbot2 joined, spinclad joined, frew_ joined, Helios- joined, athomason joined, mdxi joined, KatrinaTheLamia joined, nothingmuch joined, kolibrie joined, Khisanth joined, Aisling joined, sjohnson joined, Intensity joined, charsbar joined, yves joined, blaze-x joined, dalek joined, felipe joined, wolverian joined, p6eval joined, rapacity joined, gabiruh joined, pjcj joined, Woody2143 joined, astinus joined, lisppaste3 joined, garron joined, pnu joined, Gothmog_ joined, Grrrr joined, frettled joined, elmex joined, jantore joined, kcwu joined, cosimo joined, edenc joined, sunnavy joined, cookys joined, Ryan52 joined, irc.freenode.net sets mode: +v p6eval, IRSeekBot joined, literal joined, huf joined, Tene joined, c1sung joined, szbalint joined, baest joined, TimToady joined, BinGOs joined, buu joined, buubot joined, gbacon joined, krunen joined, michaelr joined, Caelum joined, tylerni7 joined, omega joined, yath joined, silug joined, devin joined, s1n joined, jql joined, hatseflats joined, BooK joined, Rint joined, Matt-W joined, ewilhelm joined, nsh joined, r0bby joined, dmpk2k joined, Infinoid joined, rafl joined, rjh joined, solarion joined, christine joined, mtve joined, allbery_b joined, moritz_ joined, cls_bsd joined, sbp joined, phenny joined, pugs_svn joined, irc.freenode.net sets mode: +ooov TimToady Matt-W moritz_ pugs_svn, ezra joined, pmichaud joined, JarJarBinks joined, PerlJam joined, Maddingue joined, c9s joined, frodwith joined, cxreg joined, bionoid joined, renormalist joined, Juerd joined, andreasg_ joined, irc.freenode.net sets mode: +ooo pmichaud PerlJam Juerd, nicomen joined, jnthn joined, Trey joined, irc.freenode.net sets mode: +o jnthn, s1n_mini joined 01:00 lisppaste3 left, lisppaste3 joined 01:12 jauaor joined 01:20 orafu left 01:25 payload left 01:30 tak11 joined
Tene kothog: Yes, Rakudo is built on top of Parrot. 01:38
01:43 s1n_mini left 01:45 JimmyZ joined 01:48 dukeleto left
dalek kudo: 5d3d3a3 | pmichaud++ | Configure.pl:
Add --optimize to default --gen-parrot build.
01:53
pugs_svn r28351 | lwall++ | [S03] more clarifications of autogenerated generator functions, pmichaud++
02:08 tak11 left 02:12 payload joined, tak11 joined 02:14 jaldhar joined 02:19 cognominal left, cognominal joined 02:21 lisppaste3 left 02:22 lisppaste3 joined, lisppaste3 left 02:24 lisppaste3 joined, lisppaste3 left 02:28 lisppaste3 joined 02:44 dukeleto joined 02:46 dukeleto_ joined 03:11 dukeleto left, dukeleto_ is now known as dukeleto 03:18 zerhash joined
pugs_svn r28352 | diakopter++ | [vijs] implement Int /, % (quotient, remainder) 03:18
diakopter vijs: say 102987609812347098760129837021987103475138750 * 1230487130694871034374821979182735987249183791837461982374981732549876660918203
p6eval vijs 28351: OUTPUT«126724928495117927075274915808067496423529452979087287709768611828950425207819615781549360513615359180398313258757825666250␤␤ time in interpreter: 0.021555 s␤»
JimmyZ wow, so super. 03:27
diakopter heh 03:29
vijs: say 1230487130694871034374821979182735987249183791837461982374981732549876660918203 / 102987609812347098760129837021987103475138750 03:30
p6eval vijs 28352: OUTPUT«11947914248490005806224210623590285␤␤ time in interpreter: 0.011124 s␤»
diakopter vijs: say 1230487130694871034374821979182735987249183791837461982374981732549876660918203 % 102987609812347098760129837021987103475138750
p6eval vijs 28352: OUTPUT«65548383231064399784204749251026113133874453␤␤ time in interpreter: 0.011122 s␤» 03:31
diakopter also, the libBigInt.js can convert to/from any radix
thank you Tom Wu, wherever you are 03:32
whoever wants to wire up the bases-other-than-ten radix integer instantiation in vijs... please feel free 03:34
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.␤»
diakopter no decimals, nope. :D
JimmyZ vijs: say 1000000000 / 267
p6eval vijs 28352: OUTPUT«3745318␤␤ time in interpreter: 0.010479 s␤»
JimmyZ a bit slow.
diakopter the parser is slow[er] :P 03:45
but yeah; without constant folding nor linear/dependent type constraint detection/derivation, using bigints for every integer is going to be slow :D 03:46
almost done adding basic closures 03:47
basic meaning parameter-les 03:48
less
and return-less ('cept for last statement-as-expression) 03:49
03:56 synth left 04:08 justatheory left 04:11 ruoso left 04:28 tak11 left
diakopter closures working; will commit shortly 04:38
./viv --js -e 'my $b = 4; my $a=sub{ say $b }; $a(); $b++; $a();' 04:39
4
5
tee hee
Tene :D 04:40
04:47 dukeleto left
pugs_svn r28353 | diakopter++ | [vijs] basic closures working (try this example): 04:48
r28353 | my $b = 4; my $a=sub{ say $b }; $a(); $b++; $a();
04:51 dukeleto joined
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␤»
diakopter asleep& 04:58
05:04 sm^^^ left 05:11 jauaor left 05:14 masak joined
masak good morning, #perl6 05:15
TimToady o/ 05:16
05:16 cmv left
masak rakudo: .say for Nil 05:23
p6eval rakudo 5d3d3a: OUTPUT«Nil()␤»
masak submits rakudobug
rakudo: my $a = 3/4; $a++
p6eval rakudo 5d3d3a: OUTPUT«Method 'succ' not found for invocant of class 'Rat'␤»
masak submits rakudobug
carlin rakudo: say sin(1/2^1/2); 05:31
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
05:32 dukeleto left
carlin rakudo: say (1/2^1/2).sin; 05:32
p6eval rakudo 5d3d3a: OUTPUT«one(0.479425538604203, 0.479425538604203)␤»
masak use.perl doesn't allow me to edit my own posts anymore. :( it doesn't give me an error, just an empty page.
it's been like this for days. 05:33
05:37 dukeleto joined 05:43 rfordinal joined 05:52 justatheory joined 05:53 justatheory left
masak emails pudge 05:53
05:54 JimmyZ left 06:04 rafl left, rafl joined 06:13 NorwayGeek|Away left 06:18 sm` joined 06:21 rfordinal left, rfordinal joined 06:38 NorwayGeek joined 06:39 rfordinal left 06:41 mberends joined
moritz_ \o/ 06:41
06:41 zamolxes joined
mberends yipee, --optimize in Parrot 06:42
06:42 zamolxes left 06:43 zamolxes joined 06:46 avuserow_ joined
masak what does it do? retract the flaps? 06:50
moritz_ some of them 06:51
it basically passes -O2 to gcc
masak $gcc.oxygenate()
pugs_svn r28354 | lwall++ | [STD] catch attempt to declare symbol previously aliased into an outer scope 06:52
06:57 avuserow left 06:59 JimmyZ joined 07:04 rfordinal joined
dalek kudo: e52ed31 | moritz++ | src/setting/Rat.pm:
.pred and .succ for Rat
07:08
masak pudge++ fixed use.perl, yay 07:14
07:14 sm^^^ joined
moritz_ now if he also gave it a more modern layout... ;-) 07:15
TimToady std: my $a = 1; do { say $a; my $a = 2; say $a } 07:19
p6eval std 28354: OUTPUT«===SORRY!===␤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:␤------> my $a
..=…
pugs_svn r28355 | moritz++ | [t/spec] tests for -- and ++ on Rats
07:21 donaldh joined 07:23 ejs joined
masak moritz_: your "Rats and other pets" post was submitted to Reddit: www.reddit.com/r/programming/commen...ther_pets/ 07:25
07:25 sm^^^ left
masak the brainless commenters don't seem to have noticed it yet, though. but it's being re-tweeted in the Twitterverse. 07:26
masak gets vibes from Star Trek: "captain -- they're scanning us" 07:27
moritz_ wow, 8 up 4 downvotes
I wonder how I could get so many downvotes for example on perlmonks
07:28 sm^^^ joined
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
I thought more about discriminating against black, disabled women or so :) 07:30
07:31 sm` left
masak (from the "experiments you probably shouldn't make" department) 07:32
07:32 ejs1 joined
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:32
even though there are hundreds of tests in between, and it worked before 07:33
masak and you're sure you didn't accidentally spell it 'Sequel' or something? :) 07:38
moritz_ well, I didn't touch it 07:39
that's where the wieredness comes in
and I used ack to verify that the name is spelled the same in the test file and Test.pm ;-)
07:39 ejs left 07:41 meppl joined
masak sounds like one of those things that would be hard to minimize. :/ 07:44
moritz_ www.nytimes.com/2009/09/20/jobs/20pre.html # nice opinion/experience piece on pair programming 07:47
Matt-W Interesting 07:54
07:57 PZt left 08:02 cmv joined 08:08 maja_ left, cmv left, hanekomu joined 08:22 NorwayGeek|Away joined, NorwayGeek left 08:50 simcop2387 left 08:51 icwiener joined 09:01 sm^^^ left 09:07 ssm joined 09:17 cmv joined 09:38 NorwayGeek|Away left
Matt-W moritz_++ # blog post about Rats 09:40
09:48 pmurias joined 09:50 szabgab left 09:51 dakkar joined
masak the Twittersphere likes it too. 09:53
wait until they hear about our Cats! :)
moritz_ well, reddit doesn't seem to like it :-) 09:56
11 up votes 8 down votes
Matt-W DOWN?? 09:57
masak that's Reddit for you. 09:59
10:04 JimmyZ left 10:06 simcop2387 joined 10:14 toyam joined
Matt-W guess so 10:17
hardly the cream of the internet
carlin A lolrat would have guaranteed upvotes on reddit 10:21
10:23 rblasch joined
Matt-W class LOLRat is Rat { }; 10:24
there
done
or maybe it needs a method Str { "LOL" ~ self.Rat::Str() }
10:24 astinus left 10:39 payload left 10:46 toyam left 11:00 gabiruh left 11:12 szabgab joined 11:15 zamolxes left
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 )
masak moritz_: isn't it possible to increase the timeout interval a little on the server?
11:34 Whiteknight joined 11:52 icwiener_ joined 11:56 icwiener_ left
masak huh. 0f1ede is a bit scary. 11:57
11:58 NorwayGeek joined
pmurias diakopter: how do i install v8? 12:01
moritz_ masak: sure, you can do that if you want 12:07
12:07 icwiener left
masak tries 12:08
12:15 Dr_Sunglasses left
masak moritz_ no, I give up. where's the evalbot located again? 12:15
moritz_ pugs/misc/evalbot/ 12:16
ack 'alarm|limit'
masak thanks.
12:17 ruoso joined 12:19 payload joined
pugs_svn r28356 | masak++ | [evalbot] increased soft time limit from 8 to 15 seconds 12:22
r28356 | With a bit of luck, this will decrease the number of premature evalbot
r28356 | killings we have seen lately.
moritz_ I'm also working on migrating evalbot to a better server that diakopter++ made available to me 12:23
which has 4 CPUs instead of one 12:24
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.
moritz_ -)
s/^/:/
pugs_svn r28358 | moritz++ | [evalbot] forgot to delete lots of old stuff 12:30
r28359 | moritz++ | [evalbot] another attempt... 12:31
12:33 synth joined
ruoso Bom dia, #perl6 12:35
masak bom dia, ruoso! 12:36
rakudo: say $*IN.slurp().comb(/Land \s+ \w+ \s+ \w+/)>>.trans(/Land \s+ \w+ \s+/ => "").join(", ")
p6eval rakudo e52ed3: OUTPUT«Berge, Strome, Äcker, Dome, Hämmer␤»
masak hmm.
12:37 zamolxes joined
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␤»
masak that's better.
moritz_ :-) 12:38
pmurias ruoso: hi
masak rakudo: say $*IN.slurp.words.sort({-.chars})[0] 12:39
p6eval rakudo e52ed3: OUTPUT«hoffnungsreich.␤»
pmurias ruoso: do you know how to link a .c file with an uninstalled perl?
ruoso hmm 12:40
I guess the core libs with XS do that
masak rakudo: say $*IN.slurp.words.grep(/^viel/).uniq.join(", ") 12:41
p6eval rakudo e52ed3: OUTPUT«vielgerühmtes, vielgeprüftes, vielgeliebtes␤»
12:41 Whiteknight left
pmurias ruoso: i knew how to do it, but i forgot the incantation :( 12:41
ruoso pmurias, I think I never did that... but I guess the modules inside the p5 sources do that... 12:42
diakopter pmurias: hi
what os/arch
pmurias ruoso: what i want to is compile tests in t-smopp5 in the smopp5 repo
diakopter: debian linux
diakopter: hi 12:43
ruoso pmurias, I see... maybe it's better to ask #p5p
masak rakudo: say $*IN.slurp.comb.grep({$_ !~~ /\w/}).uniq.perl
p6eval rakudo e52ed3: OUTPUT«[" ", ",", "\n", "!", "."]␤»
diakopter pmurias: did you see the readme in perl6/js 12:44
check out the /bleeding_edge (or /trunk they're both very stable) branch from the v8 repo
have scons & python 2.5 12:45
and g++
pmurias diakopter: i saw the readme
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
32-bit
diakopter copy or ln -s the libv8.a to /usr/local/lib/ 12:47
easiest
pmurias that could be put in the readme
diakopter then git clone the perl-v8 repo
it's a few KB
cd perl-v8 ; make -f bridge.mk 12:48
perl Makefile.PL
make && make test && make install
diakopter pastes into README 12:49
pmurias: if you want, you can build the v8 debugger/shell (called d8) with: scons d8 12:53
12:55 viklund left
pugs_svn r28360 | diakopter++ | [vijs] updated README with more V8/perl-v8 building instructions/hints 12:55
12:59 NorwayGeek left, NorwayGeek joined
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 : gist.github.com/191045 13:00
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?
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
if it doesn't exist, chances are that .other.methods throw an exception anyway
cognominal ok, so it is not utter rubish :) 13:05
ruoso although the exception will be ".other not implemented in Object"
moritz_ ruoso: right 13:06
ruoso but I'd rather have the "?" in the other side
%thing<foo>?.other
which also relates well with
%thing<foo>.?other
cognominal ok 13:08
ruoso "?." would fail if the left side is undefined
although ".?" means "don't fail if the method doesn't exist"
moritz_ which kinda makes sense 13:09
the ? points to where things might not exist
ruoso so it probably makes sense to have it "!." instead
%thing<foo>!.other.?method
where we still could leave "?." to "silently stop if the left side is undefined 13:10
13:10 PZt joined 13:12 frederico left
cognominal you meant in absence of dereferenced value, postfix ? means silent abortion and postfix ! means an exception? 13:14
ruoso yes
cognominal I like that
ruoso it's not really postfix:<!> or <?>
but it's a new "?." and "!." operator
about ??
you don't need it 13:15
because you can use the dot between them
%foo!.<bar>!.<baz>!.<bla>
%foo.<bar>.<baz>.<bla> is the same as %foo<bar><baz><bla>
13:16 frederico joined
cognominal For the ?= , it makes sense to keep it prefix 13:17
ruoso do you have an example for ?=?
er.. "?=" ?
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
ruoso $a ?.= foo
cognominal, it's not suffix
and it's not just "!" 13:19
it's infix:<?.> and infix:<!.>
std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.foo; $a!.bar;
cognominal rusoso, can you edit the git to your like? so I get what you say?
p6eval std 28360: OUTPUT«Undeclared routines:␤ bar used at 1␤ foo used at 1␤ok 00:03 39m␤»
masak postcircumfix:<< < >? >>
cognominal ok, got it 13:20
I edit 13:21
ruoso std: my $a; $a .= foo;
p6eval std 28360: OUTPUT«ok 00:03 38m␤»
ruoso hmm... it seems STD special cases "."
13:21 molaf joined
cognominal I am so happy to see that new syntax blends so easily in the langage 13:22
ruoso std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.<foo>; $a!.<bar?; 13:23
std: sub infix:<?.> {...}; sub infix:<!.> {...}; my $a; $a?.<foo>; $a!.<bar>;
p6eval std 28360: OUTPUT«===SORRY!===␤(Possible runaway string from line 1)␤Preceding context expects a term, but found infix < instead at /tmp/pp9Y0f6hu0 line 1 (EOF):␤------> <!.> {...}; my $a; $a?.<foo>; $a!.<bar?;⏏<EOL>␤ expecting escape␤FAILED 00:03 42m␤»
std 28360: OUTPUT«ok 00:03 39m␤»
ruoso but I guess simply declaring the operator is not enough, because it will try to invoke sub bar in $a?.bar 13:24
we need to have the same magic the dotty has
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:26
hmm... dotty has its own multi token 13:27
so it's not just a matter of declaring an infix op 13:28
std: sub dotty:<?.> {...}; my $a; $a?.b
masak ruoso: by 'multi token', do you mean 'category'?
p6eval std 28360: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/8mGF1R5saS line 1:␤------> sub dotty:<?.> {...}; my $a; $a?.⏏b␤ expecting any of:␤ POST␤ bracketed infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard 13:29
..stopper␤ statement modifier loop␤…
13:29 abra joined
ruoso masak, yes 13:29
masak ok.
just trying to keep up. :)
moritz_ std: augment slang Main { token dotty:sym<?.> { <sym> } }; Int?.floor 13:30
p6eval std 28360: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/nZHvck9tLb line 1:␤------> n { token dotty:sym<?.> { <sym> } }; Int⏏?.floor␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ infix␤ infix stopper␤ postfix␤
..postfix_prefix_meta_operator␤ standar…
jnthn I'd expect you'd do it through dotty.
But doesn't seem to work. :-/
masak jnthn! 13:31
jnthn masak!
ruoso I guess STD could add the same logic it does for infix:<foo>
masak jnthn: how's Asia?
jnthn masak: Pretty cool. :-)
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.
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?
masak it's pretty cool here in Uppsala as well, but probably not in the same way. :(
jnthn masak: lol
masak: I ate good Ramen toniht.
*tonight
masak nice. 13:33
jnthn Hakata is meant to be one of The Places to have that...
masak we've had very adequate sushi for lunch today.
pmichaud good morning, #perl6
jnthn hi pmichaud
masak pmichaud: \o/
masak tries saying "Hakata" out loud 13:34
jnthn whoz op?
masak: Me saying "Fukuoka" out loud was far worse, before I was told how to say it properly.
masak heheh.
I guess, it's more like 'fook...' than 'fuck...' 13:35
dang, we need to teach people IPA on a wider scale. :/
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
Yeah, I keep meaning to learn IPA.
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.
huf: I've heard there's en.wikipedia.org/wiki/X-SAMPA
huf: but I've never really tried it. I imagine it's parly painful.
jnthn masak: Where did you learn it? 13:38
huf yeah, looks like it. but at least it works even w/o unicode
jnthn At school, or just by yourself for interest?
ruoso tries, without success, to see where STD automatically registers sub infix:<bla> as a category:infix 13:39
13:41 ejs1 left
moritz_ on the new evalbot server pugs, elf, rakudo, std and vijs work 13:42
mildew's error messages are... opaque to me 13:43
13:44 JimmyZ joined, ejs1 joined
lisppaste3 moritz_ pasted "mildew error message" at paste.lisp.org/display/87497 13:44
ruoso er... the paste is opaque to me now ;) 13:45
moritz_ huh? 13:46
ruoso moritz_, could you try pasting again? it appears blank to me
moritz_ that's LTA
jnthn mildew gives zen error messages?
ruoso LTA? 13:47
moritz_ ruoso: nopaste.snit.ch/18022
jnthn ;-)
moritz_ less than awesome
cognominal gist.github.com/191076 # new version, I don't understand the interest of gist because the last url does not show my update.
*previous url 13:48
moritz_ did you update the previous gist? or did you make a new one?
13:48 ejs1 left
pmurias diakopter: perl viv --js -e 'say 1' works here 13:48
diakopter pmurias: yay 13:49
13:49 ejs1 joined
ruoso cognominal, again, I think that's not postcircumfix 13:49
pmichaud I don't understand the use of the term "dereference" here
ruoso it's a dotty
yeah... dereference is pointless in Perl 6
pmurias, would you help moritz getting the mildew evalbot up? 13:50
cognominal what is the word, then?
diakopter vijs: say 3333 + (2222 * 2)
pmichaud well, what is it doing?
p6eval vijs 28360: OUTPUT«7777␤␤ time in interpreter: 0.023457 s␤»
diakopter odd; somehow parentheses grouping magically works without me doing anything in vijs
13:50 SmokeMachine joined
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
p6eval vijs 28360: OUTPUT«7777␤␤ time in interpreter: 0.032286 s␤»
ruoso it's a kind of conditional method dispatch
diakopter boggles
cognominal yes
ruoso cognominal, it's not specific to .<foo> or .[bar] 13:52
it applies to any value
$a!.foo
raises an exception if $a is undefined
pmichaud is it just changing the dispatch depending on the defined-ness of the invocant?
ruoso yes, "!." raises an exception if the invocant is undefined
pmichaud why does this need a special operator? 13:53
ruoso convenience?
pmichaud seems like we should make the convenience more generic then, and not tied to dotty
ruoso not really suggesting it to be actually core, but it certainly need to be possible to be implemente
TimToady how does it differ from '.'?
pmichaud right, that's what I'm curious about.
ruoso $a.?foo tries to dispatch a method foo 13:54
but $a might be defined or undefined
$a?.foo will fail if $a is defined but doesn't implement foo
TimToady how does it differ from $a.foo
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 zamolxes left
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 abra left
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
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
pmichaud, wrong...
TimToady note that dotty has to be unambiguous as both postfix and as a term
ruoso Object.?new
this will successfully invoke method "new" on Object
pmichaud because method new is defined as method new(Object:B $x: ... ) 13:57
ruoso hm?
pmichaud .new is allowed to be invoked on undefined objects 13:58
ruoso rakudo: class Foo { method bar { say "Hello" } }; Foo.bar
p6eval rakudo e52ed3: OUTPUT«Hello␤»
ruoso rakudo: class Foo { method bar { say "Hello" } }; Foo.?bar
pmichaud Rakudo isn't a valid implementation.
p6eval rakudo e52ed3: OUTPUT«Hello␤»
ruoso pmichaud, but rakudo is right in that point
pmichaud Rakudo doesn't constrain its invocants at the moment.
ruoso but the constraint is in the other direction
pmichaud is it? What's the default :D/:U/:B flag for methods?
TimToady S12 currently has :A instead of :B 13:59
pmichaud okay, :A then
but what's the default for methods that don't explicitly declare the invocant?
ruoso 'd guess :A 14:00
pmichaud anyway, "defined or fail" should probably be written as ($a // !!!)
14:00 viklund joined
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
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
ruoso so you can still call 1.new
TimToady I think :D is a good default if you refer to any attributes in the body
pmichaud when I write a method, I don't generally expect that method to be valid on the (undefined) type object
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
moritz_ pmichaud: only because it accessess attributes
TimToady anyway, if you guys want to define anything on the calling end, it should be a postfix, not a dotty
pmichaud agreed. the basic form would seem to be ($a // !!!)
so perhaps something like postfix:</!>
TimToady and *certainly* not an infix 14:05
or postfix:<?>
ruoso can a postfix interrupt a statement?
TimToady probably with a lookahead <!before '?'>
ruoso $a?.b.c.d
pmichaud ruoso: sure, that just parses as ($a?).b.c.d
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
ruoso avoid invoking .b.c.d
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
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
moritz_ gives TimToady cognitive dissonance 14:08
pmichaud in particular, with postfix:<?> one could write $a?.b?.c?.d 14:09
which handles the case of a method returning a failure object as well 14:10
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
we need that for cascaded subscript sanity in any case
14:12 ejs1 left
TimToady (which is a really good argument for *not* accessing stacked exceptions via .[] 14:12
14:12 ejs1 joined 14:14 Util joined
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:14
also probably a good argument for limiting the namespace of methods available on Failures 14:15
maybe make them all .Xfoo or some such
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?
pmichaud s/type/base type/
moritz_ if yes, it has loads of methods 14:17
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
TimToady not sure what the mixin model buys us either
pmichaud (unless they declare arguments as Object)
moritz_ unless undefined values are special-cased in type checks
pmichaud oh, correct, they are.
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
TimToady a bottom class
moritz_ right 14:21
TimToady called _|_ in Haskell, I believe
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
*mixin
14:23 zaphar_ps joined
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
the latter seems slightly saner
especially if we can usually get it to dispatch to no routine at all
pmichaud agree
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...
s/correctly/successfully/ 14:25
14:25 NorwayGeek is now known as NorwayGeek|Away 14:26 ejs1 left 14:27 KyleHa joined
pmichaud S02 says that Failure is a "non-instantiable role" 14:27
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
KyleHa :D
ruoso I guess the idea of $a?.foo would be in the line of magically adding a CONTROL block surrounding that statement... 14:29
TimToady don't go there :) 14:30
14:30 jauaor joined
pmichaud if we're modifying a "statement", that sounds like a contextualizer of some sort 14:30
still, I agree with "don't go there" :)
ruoso will there be dragons?
TimToady there will be multiplied entities 14:31
maybe we should put Failure outside of Any for a while and see how it works out 14:32
ruoso ouch
pmichaud okay, I can certainly try it in Rakudo and see what happens. 14:33
[particle] Failure is not an option?
pmichaud is Failure really a "non-instantiable role" as S02 says, or ... ?
TimToady that might be a useless generalization
not sure
pmichaud okay
Rakudo currently has it as a standard type
(not a role) 14:34
TimToady so it wouldn't be hard to move outside of Any
pmichaud but our Failure handling is a bit "whatever worked at the time" as opposed to being cleanly designed
14:34 ispy_ joined
araujo morning 14:34
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:35 ispy_ left
TimToady but at the moment it feels like junctions in wanting to subvert dispatch 14:36
14:36 Psyche^ joined, avuserow_ is now known as avuserow
TimToady one could, I supposed, claim there's a tree of Failure types shadowing all the Any types... 14:37
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.
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
so it still officially passes the type test of the container 14:40
moritz_ masak: ha, you can remove the ':by on ranges' from use.perl.org/~masak/journal/39597 :-)
masak I can indeed. :)
TimToady well, it's just deprecated so far
masak I'll update the post to that effect.
14:40 nihiliad joined
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
pmichaud well, Rakudo doesn't implement :by yet :)
TimToady ah, then it's pretty easy to remove it :)
pmichaud so it's not as if we're losing existing functionality :)
14:41 JimmyZ left
pmichaud I was working a bit on lazy implementations last night 14:41
to get lazy ranges and lists
(and IOs) 14:42
masak how'd it go? 14:44
pmichaud it also occurs to me -- are closures in series only valid after an infix:<...> ? (more)
i.e., what about something like 14:45
1 ... *, 10, *+10, 100, *+100, 1000
TiMBuS kil
agh
my gnome-do had died =/ 14:46
14:46 dalek left, dalek joined
pmichaud in other words, what happens if a rhs list happens to have a closure in a 2nd or later element? 14:46
14:47 rfordinal left
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
TimToady ... stands for (potentially) multiple omitted commas 14:48
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
I think if they're elsewhere in the list nobody will invoke them for you
pmichaud would it need to? I'd think it'd still be lazy 14:50
oh, okay
I see what you mean
14:50 mberends left
TimToady and it just seems like encouraging a less readable kind of ... 14:50
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
TimToady but then, we have a lot of those folks already...
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:52 TiMBuS left, Patterner left, Psyche^ is now known as Patterner
[particle] *cough* implementors *cough* 14:53
TimToady but really, it's more like I have too many principles that all fight with each other :)
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:55 molaf left
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:56
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
TimToady some of the hardest principles to grok are the ones that cause something to NOT be there 14:58
Woodi TimToady: you mean p6 shouldn't have some nice functionalities ? :) 15:04
TimToady yes, like the ability to parse everything with a Lisp parser :) 15:05
diakopter principals, too
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 rfordinal left, alester left, alester joined
Woodi but priority is important principle 15:08
TimToady it's just one principle
do you always prioritize eating over sleeping or sleeping over eating? 15:09
Woodi but we do not live forever here...
TimToady you have to do both
15:10 arnsholt_ is now known as arnsholt
masak this one is slightly challenging: twitter.com/offwhitemke/status/4173512015 15:10
TimToady so priorities must often give way to blance
masak I think the poster is well-informed, but wrong.
TimToady *balance
moritz_ masak: "release date: known" + link to Rakudo * announcement
Woodi agree, not many absolute principles
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.
moritz_ masak: or wait for better suggestions
pmichaud 3rd paragraph of the wikipedia article probably needs an update
also, I'm wary of saying that Rakudo Star is the release date for "Perl 6"
masak same here.
pmichaud it's the release date for "a usable implementation of Perl 6"
Woodi btw. yesterday i noticed that rakudo is MUCH more ready then official web pages says... 15:12
masak it is.
I've been saying this for months! :)
pmichaud Woodi: I agree to some extent, but I haven't found the right phrasing yet
some people won't consider it to be ready until there's a distribution with modules
Woodi sqlite3 works!
TimToady maybe we'll trick everyone in April and mark all the non-passing tests as "for 6.0.1
"
Woodi it's production ready :)
pmichaud +1
:-) 15:13
masak uhm.
pmichaud let's see where we are in February first :)
TimToady why I said "maybe" :)
masak :)
pmichaud If Rakudo is truly far enough along at that point, I have no problem with that plan :)
anyway, we do need to update the wikipedia page 15:14
TimToady engineers always hedge their predictions so that they're never wrong :)
masak I care about attracting people, but I don't care much about a Perl 6 'release date' any more.
15:14 ejs joined
pmichaud masak: agreed, although some people won't consider Perl 6 until there's a "release date" 15:14
as the tweet demonstrates 15:15
Woodi sometimes marketing approach is good :) however i near hate that approach
masak pmichaud: assuming the tweeter belongs to that group, I simply shouldn't reply.
pugs_svn r28362 | jimmy++ | [docs/zh-cn/syn]added S02-bits.pod which is a Chinese transcript for S02, just a start.
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.
moritz_ are there any other great (non-software) projects without a release date?
Woodi "realease data" still can be unknown. just tell world that p6 work NOW
pmichaud it's hard to say where offwhitemke falls in that category
however, offwhitemke is correct in that (according to wikipedia) we explicitly disclaim a release date 15:17
and we probably need to do something about that
masak perpetual beta? :P
pugs_svn r28363 | jimmy++ | [docs/zh-cn/syn]changed S01.pod to S01-overview.pod
Woodi i gues perl1 was in use before 1.0...
pmichaud I think I have a potential tweet reply 15:18
masak ah. someone replied: twitter.com/magnachef/status/4173914642
good reply.
pmichaud sent my replies 15:20
masak pmichaud++ 15:21
15:25 cmv left
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...
and once these are known, it's not hard to use from Rakudo 15:29
but that NCI compiler is a bit bit-rotted and needs love
diakopter -\o/-
Woodi so anser is: it's done ? :)
moritz_ no.
Woodi k, understud 15:30
i will google for NCI compiler
pmichaud ick. attempted kidnapping at my son's school this morning.
huf whoa 15:31
was it one of the parents during a particularly horrid divorce?
pmichaud not likely
TimToady random, or estranged parent?
pmichaud random
we know the kid who was attempted to be nabbed -- he's in my son's cub scout troop
er, "pack"
moritz_ Woodi: nci_gen might be a good keyword 15:32
pmichaud (in fact, his father is the scoutmaster for the pack) 15:33
15:34 JimmyZ joined, elmex left, elmex joined
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
(er, kidnapper, singular)
huf what did they want with the kid? ransom or unknown (possibly crazy person) 15:36
pmichaud don't know
something like this happened last year also
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
but time travel is still cool :)
pmichaud diakopter: maybe ask them how they dealt with the "Year 100" problem. 15:38
avuserow they still haven't fixed all those "2 digit year" versus "years since 1900" bugs on active websites? really? 15:39
diakopter :)
hence my question 15:41
15:43 nihiliad left, nihiliad joined, nihiliad left
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
s/any/some/
15:47 _jason9401 joined
diakopter it's javascript; just not updated for at least a decade. :) 15:47
15:53 rfordinal joined 16:05 _jason9401 left
moritz_ pmichaud: could you make the pugc-commit mailing list moderated only? 16:19
16:19 JimmyZ left
pmichaud sure 16:19
I thought it was moderated already 16:20
guess not 16:21
just a sec
16:21 crythias joined 16:22 crythias is now known as OYSTR1 16:26 stephenlb joined 16:27 masak left, KyleHa left
pmichaud moritz_: done, all messages (except those coming from pugs-commit on feather) are now moderated 16:27
moritz_: I've also given your account manager permissions to the list
moritz_ pmichaud: great, thanks 16:30
dalek kudo: 84981fd | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 436 files, 15498 (71.4% of 21695) pass, 0 fail
16:32
pugs_svn r28364 | moritz++ | [evalbot] use ~ instead of full path to file, and glob 16:40
16:53 justatheory joined, justatheory left
OYSTR1 test 16:56
diakopter OYSTR1: yes 16:57
OYSTR1: you must be a bot. around here bots get +v
OYSTR1 op me! 16:58
:P
huf bots getting smarter every day.... damn kids and their rollerboards! 17:00
stephenlb heh
OYSTR1 I use a trikke.
17:01 justatheory joined
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
hugme: hug OYSTR1 17:03
hugme hugs OYSTR1
OYSTR1 awe shucks.
17:03 smash joined
smash hello everyone 17:03
diakopter ho 17:04
I mean
yo
TimToady hello smash, you wonderful person you!
diakopter or hi
17:04 ChanServ sets mode: +v OYSTR1
OYSTR1 you've given a voice to my oystr. 17:05
diakopter and then you went and shucked it 17:06
TimToady OYSTR1: help
OYSTR1 Get::Shucked
17:07 M_o_C joined
OYSTR1 ... help? You need help? I thought you were the author of your own fate. 17:07
diakopter STD is fairly fatalistic, actually 17:08
or fatal
OYSTR1 especially gonorrhea
TimToady hopefully fatally attractive
OYSTR1 ooh... boiled bunnies. 17:09
17:09 ChanServ sets mode: -v OYSTR1
TimToady congratulations, you just passed the diakopter test 17:09
OYSTR1 really? 17:10
diakopter lol
OYSTR1 that's so cool because .. um. wait. why is that cool?
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.
why do you think I might like butterflies?
diakopter hrm
TimToady because you passed the test
OYSTR1 why did I pass the test?
TimToady why do you ask me why did you pass the test? 17:12
OYSTR1 did you like for me to pass the test?
diakopter wget scripts.irssi.org/scripts/ban.pl
oops, ww
TimToady yes, but only if you also like butterflies 17:13
OYSTR1 what do you mean by oops?
TimToady I know what I mean when I say oops... 17:14
OYSTR1 I don't like butterflies.
moritz_ then #perl6 is not the channel for you, I fear
TimToady well, you don't *actually* have to like them
you only have to know how to be nice to them
see perl6.org
OYSTR1 I think I must like parrots. 17:15
TimToady you can say that again...awwwk
OYSTR1 I like awk. it is better than perl
TimToady now yer just bein' mean 17:16
OYSTR1 that's what she sed
TimToady you should go over to the #awk6 channel
OYSTR1 why do they need to have a channel for awk? 17:17
diakopter I don't know, why?
why do they need to have a channel for awk who?
TimToady Radio!
OYSTR1 auks are members of the puffin family. 17:18
TimToady you shouldn't believe everything you read
OYSTR1 pearls are just oyster vomit.
except oysters can't vomit. 17:19
TimToady life is complicated
diakopter I thought they were oyster kidneystones
OYSTR1 so is perl.
at least I don't have to eval awk
I wonder if auks eat oysters. 17:20
diakopter looks around for the real p6eval
TimToady are you evaling Perl 6?
OYSTR1 hot::sauce++
TimToady preferably about 500,000 scovilles
OYSTR1 wimp
habaneros and scotch bonnets, pleasse. 17:21
TimToady those are less than 500k
generally
17:21 soybean joined
OYSTR1 fair enough. 17:22
if it doesn't hurt coming out, it's not worth the hurt going in.
TimToady I am an expert on a lot of things, but not on Perl 6
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.
moritz_ so who designs the designers?
OYSTR1 God is in the gasps. 17:24
TimToady that fits with STD
17:25 rblasch left
TimToady OYSTR1: would you like to help us gasp? 17:26
17:26 payload left, justatheory left, syntheticore_ joined
OYSTR1 Where shall I begin? 17:26
moritz_ at the start 17:27
OYSTR1 BEGIN{STD=0}
TimToady std: BEGIN{STD=0}
OYSTR1 END{print STD}
p6eval std 28364: OUTPUT«Undeclared names:␤ BEGIN used at 1␤ STD used at 1␤ok 00:02 37m␤»
avuserow rakudo: undefine 1
p6eval rakudo e52ed3: ( no output )
pugs_svn r28365 | moritz++ | [evalbot] update config file 17:28
avuserow std: BEGIN { say "hello, world" }
17:28 justatheory joined
p6eval std 28364: OUTPUT«ok 00:04 37m␤» 17:28
avuserow std: BEGIN{ say "hello, world" }
p6eval std 28364: OUTPUT«Undeclared name:␤ BEGIN used at 1␤ok 00:04 37m␤»
TimToady std: BEGIN { constant STD = 0 }
p6eval std 28364: OUTPUT«ok 00:02 37m␤»
17:28 p6eval left, p6eval joined
diakopter bye bye p6eval 17:28
OYSTR1 battery is dying
diakopter oh, wb p6eval 17:29
vijs: say 'hello' ~ ' world'
moritz_ the new, faster and better p6eval, except where buggy
p6eval vijs 28359: OUTPUT«hello world␤␤ time in interpreter: 0.007606 s␤»
ruoso mildew: say "Hello"
diakopter SPEEDIER
p6eval mildew: OUTPUT«Hello␤»
OYSTR1 std: say "who has stds?"
p6eval std : OUTPUT«ok 00:03 95m␤»
diakopter pugs: die die 0
p6eval pugs: OUTPUT«sh: /home/p6eval/pugs/pugs: No such file or directory␤»
diakopter std: die die 0 17:30
p6eval std 28359: OUTPUT«ok 00:01 95m␤»
17:30 p6eval left, p6eval joined, p6eval left
pugs_svn r28366 | moritz++ | [evalbot] correct location of pugs binary 17:30
17:30 p6eval joined
moritz_ pugs: die die 0 17:30
p6eval pugs: OUTPUT«*** 0␤ at /tmp/LDSCif1OuH line 1, column 1 - line 2, column 1␤»
TimToady pugs: die die die !!! 17:31
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ at /tmp/Ypvb6NcEKb line 2, column 1␤»
TimToady pugs: die die die ...
p6eval pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure␤ at /tmp/IyInwo6zH3 line 1, column 13 - line 2, column 1␤»
TimToady snerk
diakopter heh
TimToady rakudo: die die die ...
p6eval rakudo 0eaf62: OUTPUT«Can't return outside a routine␤in Main (/tmp/rNkebgIc12:2)␤»
diakopter vijs: die die 0 17:32
17:32 jaldhar left
TimToady this is wrong, you should be able to fail in Main 17:32
p6eval vijs : OUTPUT«␤ time in interpreter: 0.005670 s␤»
TimToady rakudo: fail "Phooey"
p6eval rakudo 0eaf62: OUTPUT«Can't return outside a routine␤in Main (/tmp/JbUE6hIqqz:2)␤»
TimToady LTA
moritz_ aye 17:33
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.␤»
TimToady hey, it works! 17:35
diakopter ha
succeed epic
vijs: succeed epic
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?
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
fast fail
moritz_ vijs: say 1;␤fail
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␤»
TimToady fakefail++
moritz_ vijs: say 1;␤ fakefail
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␤»
TimToady then instead of "use fatal" it'd be "use epic"
moritz_ yes, line number
17:39 OYSTR1 left
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.␤»
pugs_svn r28367 | lwall++ | [STD] make undefined message slightly L LTA 17:42
syntheticore_ hello everybody 17:43
17:45 dbrock` joined
syntheticore_ i have a question regarding the spec of the Set class in S32 17:45
it says: "A Set responds to hash operators as if it were a Hash of True."
on the other hand it was said that Sets should compare their elements using === 17:46
Hashes seem to use == for membership-testting 17:47
so whats the right thing to do?
TimToady actually, they use eq by default 17:48
(Hashes)
moritz_ and eq and === are the same on Strings
TimToady but my %set{Any} should be using ===
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
syntheticore_ the spec also says that pick() should pick keys with higher values more often. 17:51
Does this really mean the "values" of the actual keys?
TimToady when used on Bags
no, the count of the how many copies there are in the bag of that item 17:52
which is the hash value, not hte key
you ++ the value when you add a member to the KeyBag, and -- it when you take it out
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
TimToady yes, but a set elements value is always 1
diakopter vijs: my $a=sub{$a()};$a()
TimToady *element's
p6eval vijs 28359: ( no output ) 17:54
TimToady so all the members of a set have equal probability
diakopter rakudo: my $a=sub{$a()};$a()
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…
diakopter vijs has no maximum recursion depth. is that bad?
syntheticore_ that's why I was confused ;)
thnx
TimToady also assuming +True == 1 17:55
diakopter === ?
TimToady well, True == 1 too 17:56
moritz_ rakudo: say +True === 1
p6eval rakudo 0eaf62: OUTPUT«0␤»
moritz_ rakudo: say (+True) === 1
p6eval rakudo : OUTPUT«0␤»
moritz_ rakudo: say ((+True) === 1) 17:57
p6eval rakudo 0eaf62: OUTPUT«0␤»
TimToady rakudo: say +True
p6eval rakudo : OUTPUT«1␤»
moritz_ rakudo: say (+True).PARROT
TimToady O_o
p6eval rakudo 0eaf62: OUTPUT«Num␤»
diakopter vijs: say +True == 1
moritz_ anyway, this is a bug
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.␤»
avuserow why is there no version number sometimes?
moritz_ avuserow: after migrating p6eval to a different server the rakudo revision numbers were broken
diakopter also vijs 17:58
moritz_ I just fixed it (hopefully)
diakopter during a snap..
TimToady vijs: die;␤fakefail;␤fakefail;␤fakefail
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.␤»
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:
..args␤T,T__terminator__S_Semi,_specific,prec,END,dba,assoc,TEXT,BEG,kind,WS,SYM,phase,postDo,eval_args,invoker,contex…
TimToady std: die;␤fakefail;␤fakefail;␤fakefail 18:00
p6eval std 28359: OUTPUT«Undeclared routine:␤ fakefail used at 2,3,4␤ok 00:01 95m␤»
diakopter vijs: my $a = 33993993993939393993939399393939; my $b = 939393993939399393939399393999; say $a / $b; say $a % $b;
p6eval vijs : OUTPUT«36␤175810212121015812121021209975␤␤ time in interpreter: 0.016540 s␤»
TimToady ETOOIMPATIENT
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,_specific,prec,END,dba,BEG,TEXT,kind,WS,SYM,phase,postDo,eval_args,invoker,context at viv line 171.␤»
TimToady hmm, STD ought to be inlining constants 18:02
diakopter rakudo: my $a = 33993993993939393993939399393939; my $b = 939393993939399393939399393999; say $a / $b; say $a % $b;
TimToady NYI I guess
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)␤»
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_declarator__S_constant,BEG,_specific,SYM,scoped,END,M,phase,postDo,eval_args,invoker,context at viv line 171.␤»
18:03 snearch joined
diakopter phase,postDo,eval_args,invoker,context are each members the vijs interpreter trampoline/loop adds 18:04
I don't get that rakudo error msg 18:07
what's with Rat::new
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)␤»
moritz_ diakopter: it autopromotes large ints to Num (or so), so the Int type check fails 18:10
18:10 Zloyrusskiy joined
diakopter oh 18:10
TimToady doesn't do big Int yet
diakopter vijs: say 1+<1 18:11
p6eval vijs 28359: OUTPUT«1␤␤ time in interpreter: 0.008679 s␤»
diakopter blinks
oh, Multiplicative 18:12
ok
diakopter goes to make <+ work
18:16 Util left
pugs_svn r28368 | diakopter++ | [vijs] implement infix__S_PlusLt 18:16
diakopter vijs: say 1+<2, 1+<3 18:17
p6eval vijs : OUTPUT«48␤␤ time in interpreter: 0.011067 s␤»
diakopter vijs: say 1+<2, ' ', 1+<3 18:18
p6eval vijs 28359: OUTPUT«4 8␤␤ time in interpreter: 0.011898 s␤»
diakopter whee
moritz_ jivs: say -1 +< 2
vijs: say -1 +< 2
p6eval vijs : OUTPUT«execute(): execute error: Symbolic_unary not yet implemented; srsly!!?!?␤last: eval_args␤T,T__Symbolic_unary,BEG,kind,prec,arg,uassoc,END,dba,assoc,M,phase,postDo,eval_args,invoker,context at viv line 171.␤»
moritz_ vijs: say (0-1) +< 2
p6eval vijs 28359: OUTPUT«-4␤␤ time in interpreter: 0.010970 s␤»
diakopter doesn't know whether that's expected. 18:19
diakopter just wires up the libraries
moritz_ rakudo: say (-1) +< 2
p6eval rakudo : OUTPUT«-4␤»
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.
TimToady looks about right 18:21
I don't suppose you're doing anything like real multiple dispatch yet 18:22
18:22 nihiliad joined
diakopter nope 18:23
18:23 hanekomu left
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
oh and p6array
I just chose whatever name I fancied; it can be rechristened upon baptism
assuming it comes back up...
vijs: 'you so quick and dirty' 18:27
p6eval vijs 28359: OUTPUT«␤ time in interpreter: 0.003139 s␤»
pugs_svn r28369 | diakopter++ | [vijs] implement shift right Int 18:29
diakopter cheats and manually svn updates p6eval
moritz: just the js/ dir, I mean 18:30
vijs: say 48+>2
p6eval vijs : OUTPUT«12␤␤ time in interpreter: 0.008955 s␤»
diakopter vijs: say (0-1536)+>2 18:31
p6eval vijs 28359: OUTPUT«-384␤␤ time in interpreter: 0.010835 s␤»
18:35 abra joined, hanekomu joined
diakopter TimToady: to more fully answer your question, the "dispatch" is already a few tiers, so what's another few layers? :) 18:35
pmurias diakopter: say 'hello world' doesn't work in vivjs? 18:36
diakopter vijs: say 'hello world' 18:37
p6eval vijs : OUTPUT«hello world␤␤ time in interpreter: 0.005695 s␤»
18:38 hanekomu left
diakopter pmurias: oh you mean locally for you? 18:39
pmurias didn't update everything 18:41
18:41 rfordinal left 18:42 snearch left
pugs_svn r28370 | moritz++ | [evalbot] better diagnostics for non-existing revision files 18:46
18:46 p6eval left 18:47 p6eval joined
moritz_ vijs: say "hi" 18:47
p6eval vijs 28359: OUTPUT«hi␤␤ time in interpreter: 0.005720 s␤»
18:47 moritz_ sets mode: +v p6eval
moritz_ is really at loss why somtimes the revision number is missing, and sometimes it works 18:48
d'oh.
vijs: say 3
p6eval vijs : OUTPUT«3␤␤ time in interpreter: 0.006779 s␤»
18:53 p6eval left, p6eval joined
diakopter vijs: say 3; 18:53
p6eval vijs 28359: OUTPUT«3␤␤ time in interpreter: 0.006456 s␤»
diakopter vijs: say 3; 18:54
p6eval vijs : OUTPUT«3␤␤ time in interpreter: 0.006981 s␤»
18:55 kyle__ joined 18:56 rindolf joined, p6eval left, p6eval joined
rindolf Hi all. 18:57
moritz_ vijs: 3
p6eval vijs 28359: OUTPUT«␤ time in interpreter: 0.003172 s␤»
moritz_ vijs: say 3 + 4
p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008535 s␤»
pmurias diakopter: i think we should have some tests for vivjs but i'm not sure where to put them 18:58
18:58 p6eval left, p6eval joined, KyleHa joined
moritz_ vijs: say 3 + 4 18:58
diakopter pmurias: I agree.. I'm still working on the Test.pm emulation
p6eval vijs 28359: OUTPUT«7␤␤ time in interpreter: 0.007776 s␤» 18:59
moritz_ vijs: say 3 + 4
p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008368 s␤»
18:59 ejs left
diakopter weird 18:59
18:59 Student joined
moritz_ vijs: say 3 + 4 18:59
p6eval vijs 28359: OUTPUT«7␤␤ time in interpreter: 0.019223 s␤»
moritz_ vijs: say 3 + 4
pmurias diakopter: moving vivjs to it's directory instead of being a mode on top of vivjs might be a good idea
p6eval vijs : OUTPUT«7␤␤ time in interpreter: 0.008196 s␤»
diakopter moritz_: the file needs closed
moritz_ hm? 19:00
pmurias diakopter: should i do it? 19:01
moritz_ can't parse that sentence
TimToady 2nd time through it reads second line of version file
is what I think they mean
pmurias moritz_: which sentence?
moritz_ 20:59 <@diakopter> moritz_: the file needs closed 19:02
TimToady s/needs/needs to be/
and reopened, presumably
moritz_ TimToady: uhm, I close it explicitly, and it's a lexical that stores the file handle anyway
TimToady just saying what I thought they meant
moritz_ ok 19:03
19:04 p6eval left 19:05 p6eval joined
moritz_ vijs: say 3 19:05
p6eval vijs 28359: OUTPUT«3␤␤ time in interpreter: 0.007034 s␤»
moritz_ vijs: say 4
p6eval vijs 28359: OUTPUT«4␤␤ time in interpreter: 0.007086 s␤»
19:05 KyleHa1 joined 19:06 Zloyrusskiy left
TimToady though that number seems about 10 back from head 19:07
std: nonesuch
p6eval std 28359: OUTPUT«Undeclared routine:␤ nonesuch used at 1␤ok 00:01 95m␤»
19:08 pmurias left
TimToady doesn't have my patch of 1.5 hours ago 19:08
19:11 ruoso left 19:14 icwiener joined
moritz_ std: nonesuch 19:14
p6eval std 28370: OUTPUT«Undeclared routine:␤ nonesuch used at line 1␤ok 00:01 95m␤»
moritz_ that's after a 'make snap' 19:15
TimToady hmm
cron failure?
19:15 soybean left
TimToady or does p6eval fire that off? 19:15
moritz_ cron
ok, some paths were wrong in the cron tab 19:16
19:18 ruoso joined 19:22 KyleHa left 19:28 syntheticore_ left, justatheory left 19:32 abra left 19:37 justatheory joined 19:38 justatheory left
diakopter tell pmurias: sure, if you want... there will likely be additions/fixes to viv that need migrated over though 19:38
phenny: tell pmurias: sure, if you want... there will likely be additions/fixes to viv that need migrated over though
phenny diakopter: I'll pass that on when pmurias is around.
19:39 BinGOs left, BinGOs joined 19:41 molaf joined 19:46 smash left 19:49 icwiener left 19:51 icwiener joined 19:56 justatheory joined 19:59 nihiliad left 20:05 PZt left 20:10 dbrock` left 20:13 rindolf left
pugs_svn r28371 | fglock++ | [mp6] Javascript client-side compilation works 20:16
diakopter std: nonesuch 20:25
p6eval std 28370: OUTPUT«Undeclared routine:␤ nonesuch used at line 1␤ok 00:01 95m␤»
20:28 flavioglock joined
diakopter flavioglock: howdy 20:29
flavioglock diakopter: hi!
perlcabal.org/~fglock/perlito.html
press "Execute" there
moritz_ flavioglock++ 20:30
flavioglock does it work?
20:31 ecooper left
Tene it works for me. 20:31
flavioglock yay!
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
and it doesn't seem to handle errors very gracefully
flavioglock no, it doesn't handle errors at all
diakopter flavioglock: disregard our gripes :D that's great
flavioglock cool - I'll try to blog something 20:33
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:35 ruoso left 20:36 dakkar left
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
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
diakopter: this compiler can also execute in perl5 and in SBCL Lisp 20:39
it could generate perl5 from the browser :)
diakopter neat... 20:40
IE can use Perl5 as a <script> engine with an IScript addin; I don't know about the other browsers 20:41
OR 20:44
you can swap out IE entirely, within IE: :) blog.chromium.org/2009/09/introduci...frame.html
20:44 kyle__ left
diakopter flavioglock: I'm very curious what v8 bug it's working around? 20:49
20:52 jauaor left
flavioglock blog: use.perl.org/~fglock/journal/39664 20:53
it seems v8 doesn't compile a 'method' until it compiles the function you are inside, 20:54
adding the reference seems to fix it
[particle] diakopter: point of note, www.vijs.ca/ is the website for my favorite indian food on earth
20:55 payload joined
diakopter ah, trick the JIT 20:56
flavioglock diakopter: I didn't investigate much, because it worked :)
diakopter [particle]: well, it needs a different name
my js interpreter, I mean
er, Perl6 interpreter, I mean. 20:57
pugs_svn r28372 | moritz++ | [t/spec] fix a Rat test
20:58 meppl left
moritz_ can anybody please check if the latest rakudo runs t/spec/S32-num/rat.t fine? 20:58
on my local machine it dies at the end with "Could not find non-existent sub done_testing"
20:59 pmurias joined
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
pmurias flavioglock: is mp6 bootstraped in js?
flavioglock pmurias: I didn't try yet, but it should work 21:00
I'll test tomorrow, I need to sleep
pmurias so how does perlito work?
flavioglock I used the perl5 compiler, with the js emitter
21:00 molaf left
flavioglock the js compiler should compile itself, but I didn't try yet 21:01
pmurias what's your plan for mp6? 21:02
21:02 icwiener left 21:03 dbrock` joined
flavioglock I have a precedence parser I need to merge in, and a few more backends I'd like to test 21:03
maybe merge some features back from kp6, later 21:04
21:06 lmc joined
flavioglock pmurias: this is already big enough for a few weeks 21:10
21:18 iblechbot joined
pmurias what backend to plan on testing? 21:22
* backends
s/to/do you 21:23
moritz_ rakudo: say <a b c>.join
p6eval rakudo 0eaf62: OUTPUT«abc␤»
flavioglock I worked a bit on Clojure and I also tried desugaring to execute on Rakudo 21:24
21:25 alester left
flavioglock rpython also looks interesting 21:25
diakopter how about C#/DLR :) 21:26
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)␤»
flavioglock C# would be nice to have, but I don't have an application for it - so I'm not much motivated 21:28
it has a low fun-factor 21:29
diakopter C# has perhaps a too-high fun-factor for me. 21:30
flavioglock I experimented with modifying the v8 grammar to accept mp6
this has a high fun-factor, but it would be impossible to maintain across v8 releases
too high? 21:31
diakopter yeah, as in, I can't afford it. :) 21:34
moritz_ should 2, 4 ... *+2, 7 end in 6 or in 8? 21:35
pmichaud should be 2, 4, 6, 7
moritz_ pmichaud: thanks
flavioglock pmichaud: hi! 21:37
pmichaud hello, fglock. nice work on perlito
flavioglock thanks :)
moritz_ and 1, 3 ... +2, -2 would be infinite, right?
pmichaud do you mean *+2 ? 21:38
or +2
moritz_ *+2
pmichaud I would take it to be 1, 3, -2
flavioglock zzz &
21:38 flavioglock left
pmichaud oh, wait 21:38
hmmm
moritz_ oh, uhm.
pmichaud yes: 1, 3, 5, 7, 9, ... 21:39
(infinite)
21:42 PZt joined 21:43 PZt left
moritz_ currently trying to test and implement it... 21:46
the previous signature was (@lhs, Code $generator) 21:47
now I added (@lhs, Code $generator, $limit?)
$ ./perl6 -e '1, 2 ... *+2, 8' 21:48
No applicable candidates found to dispatch to for 'infix:...'
dalek kudo: c584dc6 | moritz++ | src/setting/Operators.pm:
remove some duplicate code in infix:<...>
kudo: 0220cc2 | moritz++ | src/setting/Operators.pm:
implement infix:<eqv>(Rat, Rat)
moritz_ so, it builds a list of the RHS too, I assume
so this is going to be ugly 21:49
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
I was thinking of the number as a pure limit, thrown away 21:51
moritz_ bs in, bs out ;-)
the other logical thing to do would be to return 2, 4, 6, 8 21:52
TimToady I think it's 2,4,6
moritz_ ie take the first produced value for which the comparison has changed
then our simple scheme won't work 21:53
ie the "compare $first with $last, and keep going until $latest cmp $last is different"
21:54 tak11 joined
moritz_ we'd have to special-case inclusion of $latest if $latest cmp $last == 0 21:55
fine by me if specced
TimToady note the sample code in the spec essentially does that
moritz_ but means that 1, 1 ... $complicated_closure, 1 might not be consistent
moritz_ looks at the spec again 21:58
TimToady it always quits on $new === $old as well as on equality
moritz_ what are !after and !before?
TimToady *inequality with endpoint
!after is before or eqv
in most number systems :) 21:59
moritz_ so it's $new cmp $old <= 0?
TimToady depends on the direction
we could, I suppose write 1,2 ... $closure => $limit, 10, 11 etc. 22:01
the pair kinda looks like "going to the limit"
moritz_ S03 has the example 'z' ... 'a' # z y x ... a 22:02
which multi should handle that? 22:03
TimToady ... is always two lists
moritz_ ok
TimToady or more, since it's list associative
22:04 M_o_C left
TimToady so more like X or Z 22:04
22:04 kothog left
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
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
TimToady so it's clear the $limit isn't part of the next sequence unless the generator generates it
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:07
22:08 KyleHa1 left
TimToady or we find some way of hacking: 1,2,3 ... *+1 <= 10, etc. 22:08
moritz_ 1,2,3 ... *+1 also * <= 10 22:09
22:09 omega left
TimToady glares suspiciously at a round hole and a square peg 22:09
moritz_ well... not really
pugs_svn r28374 | moritz++ | [t/spec] more series tests straight from the spec. 22:10
r28374 |
r28374 | Also correct one test as clarified by TimToady++ on IRC
22:10 omega joined
moritz_ it's still not quite clear to me how dispatch to ... works 22:12
it has to receive a raw capture and unpack that
TimToady or parcel
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
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?
TimToady one capture for each arg
moritz_ or is that handled by multidimensionality, which rakudo doesn't handle yet?
ok
TimToady $cap ... $cap ... $cap
well, a slurpy of captures, maybe we could force that for now 22:14
moritz_ so nothing I can implement in Rakudo today. Sigh
TimToady how does it do Z?
rakudo: say 1,2,3 Z 4,5,6
p6eval rakudo 0eaf62: OUTPUT«sh: ../p/bin/perl6: No such file or directory␤»
moritz_ probably wrong :)
rakudo: say 1 22:15
p6eval rakudo 0eaf62: OUTPUT«sh: ../p/bin/perl6: No such file or directory␤»
TimToady ... is the same precedence as Z
japhb Any ideas? TimToady, anything?
TimToady sec, brain still on ...
22:15 iblechbot left
japhb ah 22:15
TimToady probes 22:16
japhb oooh
I like that one. 22:17
TimToady depends on whether you're the prober or the probee
japhb heh
And your particular predilections as well, I'd assume ...
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
and I'm not going to write the series operator in PIR. That's way too painful :)
rakudo: say 3 22:19
p6eval rakudo 0eaf62: OUTPUT«3␤»
TimToady I guess rakudo needs parcels...
moritz_ aye 22:20
TimToady or at least some way of turning an argument list into a scalar iterator 22:21
sjohnson trusty $i variable
TimToady rakudo: say i
p6eval rakudo 0eaf62: OUTPUT«Could not find non-existent sub i␤»
moritz_ well, I hope that jnthn++'s grant proposal is going to be accepted
TimToady rakudo: constant i = 1i; say i
p6eval rakudo 0eaf62: OUTPUT«0+1i␤»
moritz_ we wants to redo signatures in Rakudo 22:22
(sorely needed)
diakopter std: selfsame 22:23
p6eval std 28370: OUTPUT«Undeclared routine:␤ selfsame used at line 1␤ok 00:01 95m␤»
diakopter std: nextsame
p6eval std 28370: OUTPUT«ok 00:01 95m␤»
diakopter std: samename
moritz_ drifts off to bed
p6eval std 28370: OUTPUT«Undeclared routine:␤ samename used at line 1␤ok 00:02 95m␤»
22:34 ruoso joined
ruoso boa noite 22:36
jrtayloriv Are each of the alternatives in this rule tested as if they have written before them? --> pastebin.ca/raw/1575841 ... that is, does :sigspace replacing whitespace with '<.ws>' immediately after the '|'? 22:40
s/they have/they have <.ws>/ 22:41
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:42
TimToady that looks like it should be a token to me 22:44
and let the rule that calls it eat the spaces
22:47 crythias joined
crythias perl6: say 3 22:47
p6eval elf 28374, pugs, rakudo 0eaf62: OUTPUT«3␤»
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?
22:49 pmurias left, crythias left 23:00 rhr joined, SmokeMachine left 23:03 jauaor joined 23:05 rhr_ left, frederico left
TimToady jrtayloriv: right, basically things tend to naturally fall into patterns that want to match ws and those that don't 23:12
though often a "token" will call a subrule that matches whitespace internally 23:13
so parentheses will typically be a token, but call a subrule that matches whitespace around a subexpression.
though of course Lisp has its own rules 23:14
buu * JOB DESCRIPTION: 23:24
jrtayloriv TimToady, Thank you.
buu Whups. MT
23:32 crythias joined 23:36 Limbic_Region joined 23:45 TiMBuS joined 23:46 frederico joined 23:49 frederico left 23:54 jrtayloriv left, jrtayloriv joined