»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
mberends good morning Su-Shee_ 04:24
sorear good * #perl6 05:52
mberends good evening sorear 05:53
tadzik good day 06:26
mberends morning tadzik
tadzik what a wonderful week it is 06:29
sorear how so? 06:29
mberends: I hear you're having goto issues *lure* *lure* 06:30
tadzik sorear: I passed my driving exam, plus I'm going for probably the most exciting holidays I've had for months, maybe even counting the holiday season. And they will be Perl6-related 06:31
mberends sorear: it's a nasty itch. My sekrit project lures me stronger, though.
sorear out 06:32
tadzik so, I don't mind how things are :)
mberends tadzik: congrats on the driving license. Now only two more sleeps, and then the mini P6 hackathon really begins :) 06:33
tadzik aye :) 06:40
mberends donri: inventing toy languages on Parrot is exactly why pmichaud++ made the Parrot Compiler Toolkit. 07:53
donri Yea :) 07:54
moritz_ not just toy languages
donri Basing the syntax of a bastardization of Python + LISP + Haskell and some Perl 6, can you imagine 07:55
donri i.imgur.com/6mIxi.png hooray making a vim syntax file before anything else 07:57
mberends I think Perl 6 is doomed to remain a toy language unless we can make at least one implementation that people outside of its developer circle choose to use on a large scale. 07:58
donri Agreed. That day is not doomed to not come, I would think, but might take years. 07:59
mberends aye
tadzik ie eleven years? :) 08:03
mberends a hundred years was (I hope jokingly) posited as the expected lifetime of Perl 6, so we have plenty of wiggle room. The greatest danger is that alternative projects lure away most of the developers before that chosen-by-ousiders implementation is delivered. 08:08
donri You mean in a hundred years it will be obsoleted? 08:11
With the singularity just around the corner I'm not so sure ;) 08:12
mberends donri: I am sure that a hundred years will see such unimaginable changes in computer architecture that there will be many currently unanticipated new language requirements. 08:13
donri Exactly
donri Maybe the nanoclouds will run Erlang because of the heavy dependency on communication 08:14
mwahahah
mberends looks for his Erlang manual and realises he doesn't have one 08:15
mberends it's sunny but freezing here in NL. sunny++ freezing-- 08:23
donri slightly-too-cold++ > slightly-too-hot-- 08:27
mberends jnthn would agree with you, but having lived in Africa, I like it hot 08:28
donri I like boys hot but weather is best served cold. :) 08:29
jnthn mberends: Sounds like nice weather. ;) 08:56
morning all, btw :)
moritz_ \o 08:59
tadzik o/ 10:32
moritz_ it's quiet in here. 14:05
donri lies, moritz_ just spoke 14:06
moritz_ I spoiled it!
donri have you no shame
pmurias sorear: ping 14:34
phenny: tell sorear could you explain what does newrwlist var do exactly? 14:35
phenny pmurias: I'll pass that on when sorear is around.
PerlJam greetings 14:59
moritz_ o/
takadonet morning all 15:15
PerlJam good morning takadonet
sorear phenny: tell pmurias Do you know the difference between [1,2,3] and @([1,2,3]) ? newrwlistvar is exactly like newscalar, but gives the result the flattening bit. 15:23
phenny sorear: I'll pass that on when pmurias is around.
sorear: 14:35Z <pmurias> tell sorear could you explain what does newrwlist var do exactly?
takadonet pyrimidine: ping 15:32
sorear good * #perl6 15:41
takadonet sorear: yo 15:42
pmurias sorear: hi 15:55
phenny pmurias: 15:23Z <sorear> tell pmurias Do you know the difference between [1,2,3] and @([1,2,3]) ? newrwlistvar is exactly like newscalar, but gives the result the flattening bit.
sorear phenny: hi 16:13
pmurias: hi
pmurias sorear: i found a bug in niecza, commiting test for it.. 16:14
dalek ecza: 345f499 | pmurias++ | / (2 files):
[cl-backend] added division
16:15
ecza: e477540 | pmurias++ | t/bug.t:
added test for bug
pmurias sorear: SAFE.pm6 has a 1/0, that's not valid Perl 6
rakudo: say 1/0
p6eval rakudo 74dcce: OUTPUT«Inf␤»
pmurias or is it?
pugs: 1/0
p6eval pugs: OUTPUT«*** Illegal division by zero␤ at /tmp/786Eb9JH0S line 1, column 1 - line 2, column 1␤»
plobsing rakudo: say (1/0).perl 16:16
p6eval rakudo 74dcce: OUTPUT«1/0␤»
sorear pmurias: niecza's handling of numbers is quite wrong; but there have been more important things to worry about :/ 16:17
pmurias sorear: see the bug 16:18
sorear: it seems the pseudo-inlining pass turns some infix:<=> calls in constants incorrectly
sorear pmurias: = in constants is syntactically special 16:19
niecza: sub infix:<=>($,$b) { say $b }; constant quux = 1; my $a; $a = 2; 16:20
p6eval niecza v3-26-g77a9821: OUTPUT«2␤»
sorear looks right to me
that's not pseudo-inlining at work - it's special-cased in STD and in the actions
sorear pugs: sub infix:<=>($,$b) { say $b }; constant quux = 1; 16:21
p6eval pugs: OUTPUT«*** ␤ Unexpected "$,$"␤ expecting formal parameter or ")"␤ at /tmp/X5YKhdECge line 1, column 15␤»
sorear pugs: sub infix:<=>($a,$b) { say $b }; constant quux = 1;
p6eval pugs: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/PrnWzqQyiy line 1, column 48␤»
pmurias sorear: other thing, all the bif_* opcodes take containers as arguments, once we have an container removal optimalisation pass that will have to change 16:50
pyrimidine takadonet: pong 16:54
sorear phenny: tell TimToady pmurias and I disagree on what sub infix:<=>($,$a) { say $a }; constant foo = 5; # should do 16:57
phenny sorear: I'll pass that on when TimToady is around.
sorear pmurias: I'm still waiting for a revelation on container removal. As long as post-declared subs can have is rw arguments, I don't think it's feasable. 16:58
pmurias sorear: i don't have a strong opinion on that
jnthn sorear: Looking at STD and pondering implementation sanity, I agree with your interpretation. 17:00
pmurias sorear: we will need a proper optimalisation framework to do that 17:01
that is something hoopl based rather then adhoc code transformations
sorear nothing whole program can be reasonably done here 17:02
we need something fairly fast and sub-at-a-time, because as soon as a named sub is closed it can potentially be called 17:03
I asked TimToady earlier about sub...sub...sub... BEGIN { eval "sub" ~ (0..9).pick }
totally legit 17:04
pmurias hm?
jnthn hopes that can be relaxed for 6.0.0 17:05
pmurias you mean using eval to generate a sub name?
jnthn pmurias: No, calling subs in the current compilation unit in a BEGIN 17:06
If they're outside of the BEGIN itself, of course.
sorear in general, every time a BEGIN block is seen, all previous subs need to be callable 17:07
that includes implicit BEGINs in use, constant, enum, subset, etc 17:08
jnthn Easy to say, total nuisance to do.
jnthn Guess we'll end up needing to, though. :/ 17:09
pmurias we can do the optimalisations after the last BEGIN 17:15
the optimiser doesn't have to be fast, if the optimiser takes 30sec to make the setting or a commonly used module a few times faster it's worth it
sorear: how can i compile SAFE.pm6 without a setting? 17:18
sorear pmurias: on-stack replacement is a hard problem 17:26
theoretically, we should wait until the end of the MAIN CHECK to do sensitive optimizations 17:28
I'm not really sure how this should work
it's SAFE.setting, and it *is* a setting 17:29
I think you can just use -Bxxx -C SAFE
pmurias i want to run SAFE.setting with -Bclisp
and i don't want it to load lib/SAFE.setting 17:30
sorear: my understanding is that we will do whole program optimalisations once to program is safe to disk as .nam
sorear you don't need to do anything special - SAFE.setting is special cased to not load itself at NieczaFrontendSTD:497
pmurias in order to support calling subs out of BEGIN we will need to change our model to constructing the program picewise and then serialising it 17:34
pmurias sorear: the psuedo-inliner doesn't handle the insides of infix:</> if i do that 17:37
sorear: would you mind the optimiser being in haskell (so that we don't need to rewrite hoopl) 17:39
sorear pmurias: what do you mean? -C CORE and -C SAFE work fine, they're used in the Makefile 17:53
pmurias: yes, I oppose Haskell componenets. I just got done getting rid of all the Perl 5 components - I'm now quite pleased that the compiler can run in a single process 17:55
pmurias bjj& 17:57
sorear bjj? 17:57
mberends lue: are you working on the P6 to GCC project you blogged about? (rdstar.wordpress.com/2011/01/22/so...6-on-gcc/) I highly recommend Andy Shitov's Boost/Spirit based "Personal Perl 6 compiler" as a proof of concept. Demo: perl6.ru/p6c Russian talk: talks.shitov.ru/ppt/kzpw2009/inside...mpiler.pdf Source (in Subversion): svn://svn.shitov.ru/p6c 19:10
tadzik wklej.org/id/485775/ -- wouldn't that fix this and that? 19:39
moritz_ tadzik: try it :-) 19:40
tadzik hmm
it probably won't break anything :) I'll see if it works and maybe commit
masak lol hi zebras 19:42
tadzik hmm, seems that nqp can't parse "if 5 && 7 > 5" 19:43
hai masak!
or it can
moritz_ nqp: say(3) if 5 && 7 > 5;
p6eval nqp: OUTPUT«3␤»
moritz_ nqp-rx: say(3) if 5 && 7 > 5; 19:44
nqprx: say(3) if 5 && 7 > 5;
p6eval nqprx: OUTPUT«3␤»
moritz_ nqprx: if 5 && 7 > 5 { say('OH YES') };
p6eval nqprx: OUTPUT«OH YES␤»
moritz_ doesn't see the problem
tadzik it's just me forgotting to use say with parens :)
forgetting I think
moritz_ I do that all the time too 19:45
tadzik but the patch doesn't parse for some reason
ooh, I see it 19:46
...why two underscores? :(
it won't fit in my vim now
yay, it works! 19:52
masak std: my $______ 19:58
p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
masak oh the obfuscation possibilities.
tadzik std: my $__\o/ 20:00
p6eval std 4608239: OUTPUT«===SORRY!===␤Confused at /tmp/viSNab8iqx line 1:␤------> my $__\⏏o/␤ expecting any of:␤ postfix␤ postfix_prefix_meta_operator␤Parse failed␤FAILED 00:01 120m␤»
jnthn std: ::_______
p6eval std 4608239: OUTPUT«ok 00:01 118m␤»
masak std: ::__::__::__ 20:01
p6eval std 4608239: OUTPUT«ok 00:01 118m␤»
dalek kudo: af66096 | tadzik++ | src/Perl6/Module/Loader.pm:
When loading a module, don't use .pir if it's older than the .pm
tadzik yay, my 17th commit :)
jnthn tadzik++ :D 20:11
masak I can't believe we didn't have that one already. tadzik++
jnthn That'll save some confusion. :)
tadzik like with last Test.pm update 20:15
I wonder how many # XXX LHF live in the source tree
moritz_ ack for the rescue
tadzik almost a quarter of a percent of commits are mine :P 20:16
flussence for variable name obfuscation, PHP probably wins: $£€¥  = 1; 20:18
.u  
phenny U+00A0 NO-BREAK SPACE ( )
U+0020 SPACE ( )
plobsing jnthn: is it worth converting Zavolaj to use the new Parrot pointer types (old ones are deprecated), or will nom be bringing larger changes here? 20:24
jnthn Zavolaj is worth updating. 20:27
nom may enable a bunch of stuff but Zavolaj will certainly go on existing beyond it.
(e.g. nom may help Zavolaj be better, but isn't a replacement for it.) 20:28
plobsing but will my changes just get swallowed up in a sea of nom changes in a couple of weeks (a case where I'd classify it as "not worth it")
basically, how much does nom change the inner workings of Zavolaj? 20:29
jnthn Zavolaj mostly works off signature and object introspection. The APIs for those will change little so far as Zavolaj is concerned. 20:31
plobsing OK 20:32
jnthn So ti's certainly worth it.
*it's
mberends \o/ zavolaj updates! 20:42
dalek ecs: e1c674c | (Dave Whipp)++ | S32-setting-library/Numeric.pod:
Add conjugate method (for RT 76602)
22:23
dwhipp I was able to push directly to perl6/specs, but rakudo/rakudo.git is denied. Should I fork and send a pull request, or can I get a commit bit for rakudo (or should I be editing a different branch)? 22:53
tadzik you might not have a commit bit to rakudo 22:58
people like Pull Requests, I observed
dwhipp I think I have commit bit for specs and tests, but not rakudo itself. Pull requests aren't hard though 23:01