»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:05 colomon left 00:07 yinyin joined 00:23 f00li5h left 00:24 f00li5h joined, ash_ left 00:26 rv2733 left 00:27 PZt joined, slavik left 00:32 meppel left 00:34 f00li5h left, f00li5h joined 00:39 colomon joined 00:48 ruoso left 00:57 wknight8111 left
sorear TimToady: In your crystal ball, do you see all P6 implementations convergin on STD.pm? 00:58
diakopter the divining rod dragged me there eventually 01:03
TimToady sorear: more or less, but STD also converges with the implementations sometimes 01:06
most of the implementation differences will be in what is emitted by the emitters 01:07
and on how they map the disputable semantics onto their underlying VMs
the specs can nail down desired semantics to some extent, but cannot be perfect 01:08
and it would perhaps be inadvisable to make them perfect, because then they'd be very brittle 01:09
01:09 holli joined 01:10 holli_ left
sorear To me, 'disputable' connotes mistakes in the spec, places where it should be clearer 01:13
I presume the intent is more like C undefined behavior
"making this do anything sane would be insane, even detecting it is Really Hard, so ... if you do this, you get to keep the pieces" 01:14
01:15 drake1 joined
drake1 hello, how should I tag a perl5 program to void ambiguous interpreter selction? 01:16
diakopter shebang? 01:17
drake1 yes
but perl5 is installed under perl
just updated the C.S.L.O.T www.gangsterfreak.com/software#cslot but I don't know how to set the specific version 01:18
diakopter I think the only one that installs as "perl6" is rakudo 01:19
drake1 ok so not completely vulnerable
diakopter but others will too, I'm sure, so an "alternatives" system would develop...
drake1 I thought a use perl5; or something like that 01:20
to also be compatible with perl6 as a perl5 program
diakopter actually perl5-mode is the default 01:22
drake1 oh perfect
I love that one
perl5 or the gentle crash 01:23
actually coded too much C lately to remember the length and substr func 01:25
diakopter I didn't mean to imply that any of the other implementations install (or ever will install) as "perl"
drake1 good point 01:26
maybe a system "perl -v|grep 5" || die "wrong version"
but I don't know, other version might just work 01:28
at least without the ``my'' declarations
01:30 TiMBuS left 01:36 felipe joined 01:40 plobsing joined 01:57 Psyche^ joined 02:00 Patterner left, Psyche^ is now known as Patterner 02:06 mdxi left
drake1 damn, gotta write a C.S.L.O.T Daily with Cron. Bye 02:15
02:15 drake1 left 02:17 agentzh joined 02:32 meppl joined 02:35 stephenlb left 02:36 REPLeffect left
diakopter triumph. 02:40
strongly typed, named args & binding.
on named subs. 02:41
haven't worked on anonymous subs yet. subs as variables and return lvalue binding remain
perlesque: my int $a = 2; sub foo (int $b, int $c) { System::Console.WriteLine($b) }; foo(55, 3); 02:46
p6eval perlesque: OUTPUT«55␤»
diakopter hence, say. 02:47
whee. trampolined cps on the clr. 02:48
02:49 unixbomber joined
spinclad sweet! 02:49
perlesque: sub foo($ret, $a) { my $b = $a + 1; $ret($b) }; foo(1f, 1); 1f($v): System::Console.WriteLn($v); 02:51
p6eval perlesque: OUTPUT«parsefail␤»
diakopter all variables are strongly typed 02:52
plus, this isn't a Perl 6 implementation 02:53
spinclad perlesque: sub foo((int ->) $ret, int $a) { my $b = $a + 1; $ret($b) }; foo(1f, 1); 1f(int $v): System::Console.WriteLn($v);
p6eval perlesque: OUTPUT«parsefail␤»
diakopter this isn't a Perl 6 implementation
spinclad perlesque: sub foo((int ->) $ret, int $a) { my int $b = $a + 1; $ret($b) }; foo(1f, 1); 1f(int $v): System::Console.WriteLn($v);
p6eval perlesque: OUTPUT«parsefail␤»
spinclad no, i'm just pretending it has my fantasy feature 02:54
diakopter what's that
I mean, what's your fantasy feature 02:55
spinclad let's see: 1) subs as variables, 2) strong typing for subs, 3) subs include a return sub parameter or they don't return, 4) labels as subs 02:57
return(values) is $return(values)
so cps 02:58
02:58 pausenclown joined
diakopter what do you mean by "or they don't return" 02:58
pausenclown rakudo: my $c = -> $x { say $x }; $c(1); 02:59
p6eval rakudo 2ec0e4: OUTPUT«1␤»
spinclad take the 1f(int $v): label: as a sub it doesn't take a $return param, so it's a returnless continuation
but this conflicts with the syntax for calling builtins, which already take an unwritten continuation, so everything can't be explicit, as in my fantasy. 03:01
anyway, just playing
diakopter oh :)
03:05 pausenclown left 03:09 lue joined
lue hello! 03:09
spinclad hi lue 03:10
03:10 kurt_h joined 03:11 kurt_h left 03:27 mariano left
sorear lue: Why did you put fake information in the pugs AUTHORS file? :/ 03:28
a pseudonym is one thing, but LUE is not a registered CPAN ID
lue Are you saying I have to be on CPAN to be in the AUTHORS file? 03:29
sorear no
you'll notice that lots of people have no CPAN ID listed
these are the people who don't have them
lue Well, I edited that list so long ago :) 03:32
03:43 justatheory left 03:46 meppel joined 03:49 meppl left, meppel is now known as meppl 03:50 mdxi joined
sjohnson y0 dudes 04:04
04:05 _jaldhar_ left, _jaldhar_ joined
meppl dont copy that floppy: www.youtube.com/watch?v=up863eQKGUI 04:05
lue oh no not that! /o\ ( I hear they're remaking that for today's culture :( ) 04:06
meppl ^^ 04:07
lue horrid rhyme involving "downloads". hm... 04:10
rakudo: say 500*1.618 # please let 1.618 be the golden ratio :) 04:14
p6eval rakudo 2ec0e4: OUTPUT«809␤»
04:18 sorear left 04:19 sorear joined 04:23 am0c joined 04:26 mikelifeguard joined
TimToady rakudo: (1,1,-> $a, $b { say $b / $a; $a + $b } ... *).batch(50) 04:28
p6eval rakudo 2ec0e4:
..OUTPUT«1␤2␤1.5␤1.66666666666667␤1.6␤1.625␤1.61538461538462␤1.61904761904762␤1.61764705882353␤1.61818181818182␤1.61797752808989␤1.61805555555556␤1.61802575107296␤1.61803713527851␤1.61803278688525␤1.61803444782168␤1.61803381340013␤1.61803405572755␤1.61803396316671␤1.6180339985218␤1.61803398…
TimToady interesting that you can't start that one at 0,1,1 04:30
lue ooh, pretty numbuuurrrrssss... O.o
TimToady by the end of .batch(50) it converges on 1.61803398874989 04:31
lue I'm guessing batch(*) would break it :) 04:33
but that's a pretty exact number anyway :)
TimToady rakudo: (1,1,-> $a, $b { say $b / $a; $a + $b } ... *).eager
p6eval rakudo 2ec0e4: 04:34
..OUTPUT«1␤2␤1.5␤1.66666666666667␤1.6␤1.625␤1.61538461538462␤1.61904761904762␤1.61764705882353␤1.61818181818182␤1.61797752808989␤1.61805555555556␤1.61802575107296␤1.61803713527851␤1.61803278688525␤1.61803444782168␤1.61803381340013␤1.61803405572755␤1.61803396316671␤1.6180339985218␤1.61803398…
TimToady and the integers are still exact at the end of .batch(20), even in floaters
lue
.oO(Quick, get to Deep Thought and get it to calculate the golden ratio w/ P6! (or a quantum computer, if you're looking to be cheap :P))
04:35
TimToady 12586269025 / 7778742049
04:35 mikelifeguard left
lue I find it amusing that Python 3 can supported integers as big as memory allows, but not decimals. Is P6 the same way? 04:36
TimToady define "decimals"
pugs: say 2**4**8**16 04:37
p6eval pugs: OUTPUT«Inf␤»
TimToady pugs: say 2**4**8
p6eval pugs: OUTPUT«200352993040684646497907235156025575044782547556975141926501697371089405955631145308950613088093334810103823434290726318182294938211881266886950636476154702916504187191635158796634721944293092798208430910485599057015931895963952486337236720300291696959215610876494888925409080591145…
TimToady do you mean decimal places?
after the point?
lue yes 04:38
TimToady pugs: say 42 / 2**4**8
p6eval pugs: OUTPUT«0␤»
04:38 broquaint left
TimToady pugs: say 41 / 2**4**8 04:38
p6eval pugs: OUTPUT«0␤»
lue I don't want to call them fractions, because then people think of 1/2 .
TimToady rakudo: say 1 / 2222222222222222222222222222222222222222222222222222 04:39
p6eval rakudo 2ec0e4: OUTPUT«2.85078665381638e-19␤»
TimToady rakudo: say (1 / 2222222222222222222222222222222222222222222222222222).perl
04:39 broquaint joined
p6eval rakudo 2ec0e4: OUTPUT«1/3507803709763019662␤» 04:39
TimToady heh 04:40
rakudobug
pugs: say (1 / 2222222222222222222222222222222222222222222222222222).perl
p6eval pugs: OUTPUT«1/2222222222222222222222222222222222222222222222222222␤»
TimToady I'm sure someone will figure out how to print out FatRats to their full precision, if you want that 04:41
however, if your FatRat is already taking all of memory, it might not have the room to calculate the next digit. :) 04:42
lue
.oO( the book "Math with Perl 6" is becoming more possible by the hour )
that's why you get a Deep Thought (2nd best is Quantum) Computer. 04:44
rakudo: say "3507803709763019662".fmt('%x') 04:48
p6eval rakudo 2ec0e4: OUTPUT«30ae38e38e38e600␤»
lue rakudo: say "3507803709763019662".fmt('%b') # explosion!
p6eval rakudo 2ec0e4: OUTPUT«11000010101110001110001110001110001110001110001110011000000000␤»
sorear lue: you hate haskell, yet you love precisely the features P6 stole from Haskell? I don't understand you
lue I don't recall saying I hate haskell...
Trashlord change name of mystic spiral to something something explosion 04:50
TimToady also, there have been rat packages since before Haskell was a twinkle in anyone's eye
lue
.oO( I managed to contradict myself without knowing it? I must be getting good at this :) )
04:51
lue thinks of IETF's latest April Fools joke, where packets have moods, as defined by smileyes... 04:52
TimToady but do they have mood rings? 04:53
lue not yet. ( the following packets being sent to the server are frustrated and have the evil bit set :) )
TimToady I read that as PackRats 04:54
lue IETF, by the way, does accept April Fools RFCs (with a deadline and all that) 04:55
TimToady wonders if Rakudo * constitutes "rough consensus and working code" 04:57
lue if not, the MDFL (of course Rakudo Death Star) will convince them otherwise... 05:00
goodnight moon (btw, MDFL stands for *malevolent* dictator for life) 05:05
05:08 jonasbn joined 05:19 molaf joined 05:27 awwaiid_ joined, xinming_ joined 05:28 dj_goku_ joined 05:29 Koven joined, s1n1 joined, jrockway_ joined 05:34 dj_goku left, ascent_ left, Kovensky left, xinming left, mj41 left, jrockway left 05:36 eternaleye left 05:39 ascent_ joined, mj41 joined 05:43 kaare joined 05:44 kaare is now known as Guest16269 05:55 eternaleye joined 05:57 fridim joined 06:00 Trashlord left 06:07 uniejo joined 06:08 molaf left
moritz_ good morning 06:49
07:01 M_o_C joined 07:10 kfo_ joined
diakopter hi 07:11
moritz_ diakopter: I see that perlesque is making good progress... nice! 07:13
diakopter thanks :)
moritz_ diakopter: do you plan to write a perlesque emitter for Perlito?
diakopter no, but it'd be a cool idea for someone else to write one, and I'd help him/her
moritz_ do you plan to add untyped variables at some point? 07:14
diakopter no
moritz_ or an Any type?
diakopter nope
07:14 kfo left, kfo_ is now known as kfo
diakopter that would fall under the category of Perl 6 07:14
I will write an Any type *in* perlesque at some point soon, though 07:16
as part of creating the runtime that viv can target
I'd like STD to compile itself to perlesque, so that means I get to write a perlesque emitter for viv 07:17
07:17 ejs joined
moritz_ do you already have (plans for) a grammar engine? 07:17
diakopter STD
I want STD to compile itself to perlesque 07:18
moritz_ the grammar engine that STD uses is written in Perl 5
do you want to use that?
diakopter oh, Cursor?
moritz_ yes
diakopter that's a small part of the grammar engine imho 07:19
moritz_ afk, will backlog
diakopter but yes, that will need ported to C# or perlesque
but I expect it to be a direct port 07:20
not line-for-line, but functionally equivalent
so that STD doesn't need changed to adapt
07:22 ejs left 07:24 ejs joined
sorear one thing I'd like to try and do is port Cursor to Perl 6 07:28
then we can use viv to bootstrap
07:28 iblechbot joined
diakopter that's the goal 07:28
but you can't bootstrap the whole VM 07:29
so the question is where to draw the line
I mean, is it bootstrapped only when every single bytecode instruction was emitted by a routine written in the target language? 07:30
there's a kernel somewhere
sorear it's bootstrapped when I can stop caring about C# code
diakopter ah 07:31
well that's never going to happen, but Reflector is glad to disassemble CIL to any number of languages for you :P
sorear (also, "there has to be a kernel somewhere" is not quite true - many FORTH implementations are completely bootstrapped, the compiler generates native code and then a memory dump is done to generate the executable) 07:32
diakopter (VB, Delphi, Oxygene, Boo)
sorear though you'd be insane to try this with p6 07:33
diakopter yes.
:)
s/this with//
sorear trying p6 is not insane
it's the future, man!
diakopter tongue-in-cheek
sorear I suppose
mathw What's perlesque? 07:34
sorear you heard that Perl 6 isn't going to come until after 2038, right?
diakopter yeah
sorear mathw: NQP for the CLR
diakopter ish
it's not really for human-writing 07:35
sorear closer to POST then? 07:36
diakopter it's more of an assembly/target language for a viv emitter, or a rakudo/nqp emitter..
yeah, but it is meant for human-reading
perlesque: loop (my int $a=7;$a<100;$a+=1) { if (($a%2)==0) {next} elsif ($a>55) {last}; System::Console.WriteLine($a) }
p6eval perlesque: OUTPUT«7␤9␤11␤13␤15␤17␤19␤21␤23␤25␤27␤29␤31␤33␤35␤37␤39␤41␤43␤45␤47␤49␤51␤53␤55␤»
diakopter it's fully strongly typed 07:37
meant to be the fully-strongly-typed subset of Perl 6
native types
sorear: actually I don't think bootstrapping really is a feasible goal, within a few decades. Not really worth making sacrifices for now, anyway. 07:38
07:39 gfx joined
diakopter the task of fully implementing is just that big. 07:39
sorear there are degrees of bootstrap...
mathw interesting
I assume it's part of a plan for Perl 6 on CLR?
diakopter yep 07:40
mathw \o/
sorear so how is mono doing these days
mathw pretty well by the looks of it
diakopter 2.6 seems great
sorear excellent
mathw although they're bound to be a bit bummed out by the new iPhone SDK that seems to ban MonoTouch
sorear last I saw of it, it was considered a joke
mathw I wrote a project in it once
using gtk-sharp for the UI 07:41
very nice
sorear mathw: specifically banning mono, or just because it's not C/C++/ObjC?
mathw sorear: the latter
diakopter to those people who needs parts that are NYI, yeah it's a joke
mathw the effect is much the same, though
diakopter but a huge amount is implemented
unfortunately perlesque causes mono 2.4 to SIGABRT 07:42
mathw :(
diakopter hence needing 2.6
07:42 lest_away is now known as lestrrat
diakopter it doesn't take that long to build; 15-20 min for me. 07:42
8 seconds to build sprixel/perlesque.
actually, 8 seconds to build sprixel.exe 07:43
1 second _on every execution_ to build the perlesque parser/compiler from the grammar
sorear: imho it can be argued that my use of "C#" in sprixel is hardly C# at all
I use lambda expressions (closures) everywhere, and oodles of static routines 07:44
and many of the codegen routines are twice deferred.
they're code-gen-gen routines, if you catch my drift 07:45
perlesque: loop (my int $a=0;$a<10000000;$a+=1) {};System::Console.WriteLine($a) 07:48
p6eval perlesque: OUTPUT«10000000␤»
diakopter that's pretty quick for a trampolined continuation-passing-style runtime
08:03 meppl left, arthur-_ joined
diakopter perlesque: loop (my int $a=0;$a<10000000;$a+=1) {};System::Console.WriteLine($a) 08:05
p6eval perlesque: OUTPUT«10000000␤» 08:06
mathw so, functional-style
diakopter perlesque: loop (my int $a=0;$a<100000000;$a+=1) {};System::Console.WriteLine($a)
p6eval perlesque: OUTPUT«100000000␤»
diakopter perlesque: loop (my int $a=0;$a<1000000000;$a+=1) {};System::Console.WriteLine($a)
p6eval perlesque: OUTPUT«1000000000␤»
diakopter yes
meta-meta-programming
mathw nice
where's the source code?
diakopter csmeta.org 08:07
cs means csharp I think
sorear I've got this sinking feeling like all the work I've put into Parrot is wasted 08:09
08:09 am0c left
mathw nonsense 08:11
we're after multiple implementations here
diakopter as a collective, sure 08:13
but as individuals, generally, to each his own
or in my case, to each his 12 08:14
mathw yes :) 08:26
but my point was that sorear hasn't wasted his investment in Parrot
08:29 jonasbn left, jonasbn joined 08:36 yinyin left, yinyin joined 08:38 masak joined
masak oh hai, #perl6 08:38
moritz_ stumbles in 08:39
masak rakudo: multi foo(Int $a) { say "int" }; multi foo(Str $a) { say "str" }; &foo.wrap({ say "before"; nextsame }); foo(42); foo("OH HAI") 08:41
p6eval rakudo 2ec0e4: OUTPUT«Method 'wrap' not found for invocant of class 'Perl6MultiSub'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak a MultiSub is a Routine, is it not?
S06:2484 asserts that "Every C<Routine> object has a C<.wrap> method."
mathw That's what I thought 08:54
Speculation: rakudobug
moritz_ alpha: multi foo(Int $a) { say "int" }; multi foo(Str $a) { say "str" }; &foo.wrap({ say "before"; nextsame }); foo(42); foo("OH HAI") 08:55
p6eval alpha 30e0ed: OUTPUT«Method 'wrap' not found for invocant of class 'Perl6MultiSub'␤in Main (file src/gen_setting.pm, line 324)␤»
mathw hmm
masak looks more like a TODO. 09:05
masak frowns at arstechnica.com/open-source/news/20...leased.ars 09:09
moritz_ oh wow 09:11
they didn't notice that there were more 5.* releases since the announce of Perl 6
like 5.8.* and 5.10.{0,1} 09:12
09:12 Koven is now known as Kovensky
masak here's a clear example of when someone's narrative will damage things, regardless of the facts. neither Perl 5 nor Perl 6 will benefit from that kind of spin. 09:13
moritz_ speaking of spin...
I had this great idea of writing a Perl 6 article for LWN, to coincide with the Rakudo * release
but seing how $work, book and Date.pm suck up my time, I don't think I'll manage that 09:14
would somebody like to give it a shot?
lwn.net/op/AuthorGuide.lwn 09:15
masak it sounds tempting, but I should probably not put more things on my plate either right now...
moritz_ quite understandable
m6locks activestate should jump in actively to start implementing perl6 09:16
masak sure, as long as they do it within the existing open-source structure.
09:16 dakkar joined
moritz_ doesn't think that this fits activestate's business model 09:17
m6locks why not? they'll get dollars out of it, they lose nothing if activeperl6 will be the most used perl6 implementation ever 09:18
masak for once, the comments mostly make up for the meanness of the arstechnica article. 09:19
m6locks i agree that the article is a bit harsh on perl6 09:20
Anticipating what could be a very long wait for Perl 6, the Perl 5 developers have overhauled the date functions in 5.12 so that it can handle dates that are further in the future than 2038. 09:21
lol?
(implying that perl6 will be in use after 2038)
masak gee, I hope so :) 09:22
09:23 bacek joined 09:24 am0c joined
moritz_ m6locks: ActiveState's business model is not to write compilers, but distributions, IDEs, support etc. 09:25
09:27 arthur-- joined 09:28 unixbomber left, unixbomber joined
m6locks but they do have lots of perl-developers there, and the guy interviewed in that article seems to be perldev from activestate 09:28
moritz_ I never doubted that 09:29
I just want to point out that writing a compiler is quite different in scope than writing an IDE, or maintaining a distribution
m6locks i'm not entirely sure they will have to write a compiler from scratch 09:30
moritz_ I don't know many companies that actually make money seliing compilers
m6locks with those new features of perl 5.12
moritz_ those features don't make the vm sufficent to run Perl 6 09:31
09:31 arthur-_ left
m6locks the perl5 vm? 09:31
moritz_ right
m6locks might be, perl6 has lots of features :) 09:32
moritz_ I've talked with Nicholas Clark about that recently 09:33
I think he should know :-)
m6locks was he like "we'll stick to perl5 forever" 09:37
09:37 IllvilJa left
masak it's not about Perl 5 *or* Perl 6. never was. 09:38
09:39 gfx left
masak admittedly, the version numbers give the a priori impression that it might be, and that 6 might be a gradual, backwards-compatible continuation of 5. but it isn't, and the two are meant to co-exist, or at least each have separate strengths and niches. 09:41
moritz_ m6locks: no. He just said that making Perl 6 run on the perl5 vm was a monsterous task, and not something he's going to do
m6locks oh ok 09:42
09:50 snarkyboojum joined
masak snarkyboojum! \o/ 09:53
snarkyboojum: I did some Yapsi work yesterday.
snarkyboojum masak! o/
masak: w00t
snarkyboojum does git pull
masak holdhold, I'll push first :)
snarkyboojum oh :)
masak there. 09:54
I accidentally pushed a commit that I haven't finished yet, but that's probably OK.
the main work is in fleshing out the runtime tests a bit.
snarkyboojum ah v. cool 09:55
09:55 IllvilJa joined
snarkyboojum I had added a test for say say locally as well 09:55
masak :) 09:56
also, I decided to add another deprecate-as-soon-as-possible SIC op, namely 'inc' for incrementing of variables.
because Tardis uses it.
snarkyboojum ah.. to get Tardis running on yapsi asap?
masak nod. it's very doable now. just need to provide a custom Yapsi runtime for Tardis. 09:57
similarly, lid is very LHF right now.
(the coverage tool)
snarkyboojum lid is quite the memorable name :)
masak :) 09:58
I tend to gravitate towards memorable names and puns.
except for my project 'pun', which is not a pun :)
moritz_ it's just the abbreviation for the German project title: "-p und -n" :-) 09:59
masak actually, I think the README states that it's not that either :P
yup :) github.com/masak/pun/blob/master/README
moritz_: you're gravely misinformed :P
moritz_ doesn't believe in READMEs 10:00
masak should really restore that project to a working state
it's kinda neat, and I've actually used it sometimes.
ah well, one of the non-meanings of pun is "probably ultimately neglected", so... :) 10:03
snarkyboojum: currently debugging a Null PMC access triggered by the program 'my $a = 42; say ++$a' 10:04
snarkyboojum masak: I'm going to continue integrate yapsi into tardis 10:05
integrating
masak excellent.
snarkyboojum had already pottered around doing it a few weeks ago
10:06 mikehh joined
hejki lwn.net/Articles/382548/ 10:07
10:13 agentzh left 10:14 agentzh joined
snarkyboojum masak: what should tardis run now? SIC? 10:15
masak aye. the output from the Yapsi compiler. 10:16
same as in Yapsi's t/runtime.t
snarkyboojum so Tardis.pm changes completely?
10:16 xinming joined
masak pretty much. it gains Yapsi as a dependency. 10:16
snarkyboojum I see
10:17 yinyin left 10:20 xinming_ left
masak lunch & 10:22
10:27 rv2733 joined 10:33 agentzh left 10:51 quietfanatic left
masak snarkyboojum: actually, it strikes me as unnecessary to make a whole new runtime for Tardis. what we'd want is more something akin to hooks in the Yapsi::Runtime class. 10:55
*lol* -- on the first attempt, incrementing an uninitialized variable gave the result 'Anz()' in Yapsi :) 10:57
snarkyboojum heh 11:00
masak: yeah, looks like some plumbing changes to get Tardis using Yapsi 11:01
masak tell me more :)
std: ++42 11:07
p6eval std 30391: OUTPUT«ok 00:01 109m␤»
jnthn o/ 11:08
jnthn back from Moscow.
(Already. :-()
masak jnthn!
jnthn masak!
masak \o/ 11:09
jnthn: good. then you can fix all the new bugs I've discovered. after you do named enums. :P 11:10
jnthn I thought *you* were doing named enums. :P 11:11
ENOTMASAKISTIKENOUGH ;-)
masak 'tike'?
jnthn: I was, until you told me that there was a Parrot-related blocker that you couldn't easily explain... 11:12
jnthn ...tik enou...
masak: Ah, yeah. 11:13
That "fun".
masak oh.
11:13 lestrrat is now known as lest_away
jnthn looks at his pile of "difficult Rakudo things to work on" 11:14
masak is it reasonable for '++42' to go through parse, but not to compile? 11:18
ditto '42 = 5' 11:19
I know Rakudo can compile it, but it seems I'm not able to compile that with Yapsi.
jnthn Why'd it not compile? 11:20
I mean, sure you could catch it with some static analysis.
masak because we don't have a SIC instruction that can store something in a constant.
jnthn is confused
masak also, because ++ doesn't compile down to a subcall yet.
jnthn It should compile down to &pref...oh.
Well, yes, if you cheat you'll have issues now and then. :-) 11:21
masak right. we cheat, and thus we discover the error earlier.
jnthn ;-)
It's *probably* not a problem to fail at compile time, if you can be sure it'd also fail at runtime (which you probably can) 11:22
moritz_ masak: I think it's entirely reasonable to die at compile time
masak rakudo: my $a = 42; ++$a = ++$a; say $a # :)
p6eval rakudo 2ec0e4: OUTPUT«44␤» 11:23
jnthn It'd find it weird to fail at parse time though. More a later pass (like code-gen.)
masak right. it is. 11:24
it passes parse time.
jnthn OK.
moritz_ btw when somebody overloads postfix:<++> for a certain time, it shouldn't die anymore at ompile time
jnthn Oh, I don't think you even wrote parse anyway. :-)
moritz_ s/time/type/
jnthn moritz_: Yeah. But since masak's engine doesn't support that yet, it can't have that failure mode. ;-) 11:25
masak we don't have types yet.
we're basically throwing in 'say' and '++' so that we can play with things prematurely. :) 11:26
frettled masak: do you need a … typewriter?
11:26 frettled sets mode: +o masak
masak frettled: clearly you should be the one to work on 'pun' :P 11:26
frettled :D
jnthn masak: Well, +1 for pragmatic implementation. 11:27
masak -Ofun
11:28 iblechbot left
masak my $foo; $foo<bar> = 42; # expected to autovivify? 11:28
moritz_ yes
masak where's the magic? in the Any type? 11:29
in Mu?
Cool?
moritz_ in the Any type object
masak ok, makes sense.
my Int $foo; $foo<bar> = 42; # what about this? 11:30
moritz_ error
masak why?
doesn't the Int type object inherit from the Any type object?
moritz_ because $int doesn't have a postcircumfix:{ } 11:31
unless it's a submethod
masak submethods can't be called from the outside, can they?
jnthn Sure they can.
But only if you're calling on the msot derived class. 11:32
masak ah.
11:33 _jaldhar_ left, _jaldhar_ joined 11:34 clintongormley joined, hafterj joined
masak when I run mismatching Parrot/PIR versions, Parrot doesn't say "oops, incompatible versions, buddy". 11:41
it says "compiler returned NULL ByteCode '/Users/masak/gwork/yapsi/lib/Yapsi.pir' - The opcode 'set_signature_elem_p_ic_sc_ic_p_p_p_p_p_p' (set_signature_elem<10>) was not found. Check the type and number of the arguments"
LTA.
11:42 payload1 joined
jnthn Which is why we probably should try and get people using --target=pbc instead... 11:43
Well, or create it if it doesn't exist.
May well not do.
Anyway, bytecode files are versioned.
masak seems it exists, but doesn't work. 11:44
jnthn Patches welcome. :-)
(or tickets...which I figure are more likley... ;-))
masak submits rakudobug
this is the first time I hear the sentiment expressed that PBC is preferrable to PIR 11:45
everyone's been all "oh, PIR is fast" so far.
jnthn Well
PIR to PBC is relatively fast.
And works. 11:46
So the motivation to change is fairly low so far.
11:48 pausenclown joined 11:49 pmurias joined
takadonet morning all 11:54
masak takadonet: \o
www.developpez.net/forums/d845096/a...-poursuit/
takadonet french :) 11:55
masak gives a better slant of things than arstechnica.
'Pourtant, le travail en cours sur Perl 6 est prometteur et bien engagé. Mais Perl 6 Rakudo ne deviendrait une alternative sérieuse à son grand frère que dans quelques années, selon certains experts.'
I'd say that's pretty spot on.
(except that 'big brother' should be 'big sister') 11:56
11:56 stepnem left 11:59 payload1 left
moritz_ la Perl? :-) 11:59
11:59 snarkyboojum left 12:00 stepnem joined
masak ah, maybe there's a grammatical-gender thing involved, yes. 12:00
12:01 snarkyboojum joined
pausenclown The french are very cautious with their language. At least they call it Perl and not Language Extracteur Practicale 12:03
12:03 hafterj left
masak we should all be grateful. 12:03
pausenclown note my french is horrible. 12:04
12:04 envi^home joined
pausenclown what does 'que dans' mean? 12:05
masak I read it as 'until in' in this context.
as in "won't become a serious alternative to its big brother until in a few years" 12:07
pausenclown If so the OP may be right. Perl6 will be the first language to be released (read production) at legal age =) 12:08
$release = 18|21; # ^^
masak the only way we'll reach "production-ready", whatever that is, is to pass through all intervening stages. we can only do that with people who care about Rakudo and Perl 6 becoming a reality. 12:10
moritz_ feels mentioned 12:11
takadonet I just need a few more spec working and I will be able to code up a storm!
colomon I was just looking at the mandelbrot crashes again. I keep thinking one of the memory fixes will make the crash go away, and they keep persisting. :( 12:12
pausenclown masak: i'm afraid my level of expetise isn't high enough for compiler hacking, but i'm willing to be an early adopter. 12:14
takadonet pausenclown: We are in the same boat 12:15
pausenclown i mean, a whole new CPAN and the namespaces are virgin playground 12:16
masak early adopters are extremely important.
pausenclown takadonet: i hope you brought your own food with you =) 12:17
takadonet pausenclown: I have
and beer!
moritz_ colomon: so it's likely a genuine memory corruption, not due to overly much memory usage 12:20
colomon moritz_: either memory corruption or just some logic flaw in parrot/rakudo that only crops up after enough looping. 12:21
let me try to throw some tools at it and see what I get.
12:25 jonasbn left
masak snarkyboojum: I just refactored Yapsi to not barf warnings in the tests. 12:29
12:31 ejs left 12:32 ruoso joined
IllvilJa o/ everyone 12:36
masak oh hai thou ill of wills.
IllvilJa masak: interesting point regarding communities and the general (far too often outright disgusting) attitude in some forums/communities etc... 12:37
masak thanks.
maybe nerd rage is connected somehow to word rage.
or other types of language rage.
IllvilJa I do actually stay away from certain projects/communities due to some ppl stubborn refusal of behaving like grown ups. 12:38
masak there seems to be a disappointing correlation between people becoming indispensible and people becoming very rude. 12:39
IllvilJa The perl6 community is thankfully free from the plague called 'n00bophobia'.
pmichaud good morning, #perl6 12:40
IllvilJa masak: yes, that seem to be the case :-/.
masak pmichaud: morning!
jnthn o/ pmichaud
moritz_ \o
moritz_ tries to understand rotating Stokes vectors in Poincare-Spheres 12:41
12:43 JimmyZ joined
takadonet pmichaud: morning! 12:44
how are you doing today sir?
12:44 plobsing left
CokeBot9000 pmichaud, jnthn, moritz, masak, ~~ 12:45
masak fun topic for a summer project for someone: taking John Gruber's Markdown and porting it to Perl 6 grammars. showing how much smaller and more maintainable it becomes :) daringfireball.net/projects/markdown/
12:47 pausenclown left
masak the code is pretty fine already, mind. but it's a lot of scattered regexes everywhere, just like many markup parsers out there. 12:47
12:47 iblechbot joined
jnthn masak: Somebody iirc already wrote support for that in Parrot 12:47
And I think use PCT and thus have a Perl 6 grammar already.
I may be mis-remembering though.
masak it does sound familiar.
jnthn masak: github.com/fperrad/markdown/blob/ma...grammar.pg 12:49
Looks like a little protoregex lurve could sweeten it up too.
masak indeed. 12:50
12:50 SmokeMachine joined
masak and those {*} thingies are so 2009 :) 12:51
still, it is already an improvement over the Perl 5 code.
takadonet masak: Perl 6 Grammar does not use " {*} " anymore right? 12:52
12:57 ejs joined
masak correct; they've been deprecated. 12:58
12:59 JimmyZ_ joined
masak rakudo: multi foo(Int $x) { say "int" }; foo(42); { multi foo(Int $x where { $_ > 20 }) { say "high int" }; foo(42) }; foo(42) 13:00
p6eval rakudo 2ec0e4: OUTPUT«int␤high int␤int␤»
masak jnthn++
13:00 JimmyZ left
jnthn Something that works! 13:00
:-)
13:00 JimmyZ_ is now known as JimmyZ
masak I think I'm getting the hang of multi semantics... 13:01
jnthn Ahhh...duty free. :-)
@drink-selection.push($nemiroff)
masak can I cast an object to a less derived type at runtime? is that what .bless is for? 13:03
pmurias masak: why would you want to do such a thing?
masak because I'm a bad, bad person.
pmichaud an object will already be an instance of its less-derived types.
masak yes, of course. 13:04
that doesn't answer my question.
pmichaud No, I don't think that's what .bless is for. 13:05
jnthn I'm not sure whether you can re-bless.
If you try in Rakudo, it certainly won't do anything useful. 13:06
masak blessing to a more derived class might even be useful at times.
jnthn Perhaps, but I'm not 100% sure if that's what bless should do.
masak what *should* bless do? 13:07
jnthn Take a candidate and dribble holy water onto it.
Also call BUILDALL, iirc.
iirc, but read the code for a better answer, bless doesn't do much in Rakudo, and CREATE does much of the Real Work. 13:08
pmurias masak: the proper way to due the casting would be to create a new less/more derived object using the data from the old one
masak I'm reading the spec.
jnthn Huh, who reads that.
;-)
CokeBot9000 pmichaud, jnthn, moritz, masak: did you see Allison's post on TT #389? Is that something that you really really need in 2.3 or is it ok to put it in immediately after? 13:09
moritz_ can you actually call a submetod via $obj.ActualType::submethod()?
pmichaud CokeBot9000: after. 13:10
jnthn moritz_: I suspect that would work.
Since it dispatches based upon how a dispatch by ActualType would look. 13:11
CokeBot9000 pmichaud: perfect. danke.
jnthn Try it. ;-)
moritz_ rakudo: class A { submethod b { say "b" } }; class B is A { }; say B.new.b
p6eval rakudo 2ec0e4: OUTPUT«Method 'b' not found for invocant of class 'B'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: class A { submethod b { say "b" } }; class B is A { }; say B.new.A::b
pmichaud the TT #389 fix removes some namespace pollution that causes errors
p6eval rakudo 2ec0e4: OUTPUT«b␤1␤»
moritz_ jnthn++
and rakudo++
pmichaud but the lack-of-fix doesn't impede things from working
13:16 pmurias left
masak what does one have between the call to CREATE and the call to bless? the thing called the 'candidate object'? 13:17
and if it's already called on $class.CREATE, why do we also need to bless it? 13:18
bless doesn't do at all the same as in Perl 5, does it?
colomon (BTW, I started valgrinding mandelbrot-color.pl 501 an hour ago, and it's still running now.)
jnthn CREATE gives you something that doesn't have any of the init done (e.g. the whole BUILDALL stuff).
dalek p-rx: 210c0b7 | pmichaud++ | src/HLL/Actions.pm:
Avoid global-namespace lookup of quotemod_check (TT #389).
13:19
p-rx: c7127ad | pmichaud++ | src/stage0/ (3 files):
Update bootstrap.
masak jnthn: so it's an "empty object" of that class? 13:20
13:20 pausenclown_ joined
moritz_ s/empty/unitialized/ in my understanding 13:20
jnthn what moritz_ said
masak right.
and 'bless' really means something more like 'run all initializers'.
moritz_ I'm not sure that's how it's meant to be 13:21
masak it doesn't have much to do with transforming the object into a given class, because it's already of that class.
moritz_ masak: are you familiar with the Perl 5 object model?
masak to the extent it has one, yes. 13:22
moritz_ there bless means "associate with the class", and CREATE is what the user does himself by creating a new hashref or other ref
masak *nod* 13:23
jnthn Some of what Rakudo currently has in CREATE should *maybe* be in bless.
masak it intrigues me that CREATE is supposed to take a :repr parameter which can be 'P6Hash'.
jnthn Yeah, smop has thought that area out a bunch. 13:24
PerlJam greetings #perl6-lings 13:30
moritz_ \o it's PerlJam 13:32
pmichaud PerlJam: \o
masak o.O/
JimmyZ \o
masak JimmyZ: 你好呢! 13:33
PerlJam It's a little weird, but after being sick for 2 days it's quite comforting to (virtually) see you all again :)
masak PerlJam: welcome back! 13:34
moritz_ you must have been really sick if that prevented you from IRCing - glad you feel better now
JimmyZ masak:好啊
masak JimmyZ: 你最近怎么了? 13:36
CokeBot9000 wonders if he can make unicode work in screen on putty.
(works fine attaching to the screen from osx Terminal...) 13:37
masak that, or learn to read the mojibake right off :)
13:38 rgrau joined
moritz_ CokeBot9000: Click on the icon, Change Settings -> Window -> Translation -> UTF-8 13:38
CokeBot9000 moritz_: I already had it that way, mortiz_.
13:39 slavik joined
CokeBot9000 AHAH. 13:39
JimmyZ masak: 忙,呵呵
CokeBot9000 screen -d -r -U did it.
CokeBot9000 does the happy unicode dance. 13:40
moritz++
masak is that anything like the happy unicorn dance? 13:41
CokeBot9000 CHARLIE!
JimmyZ screen -rdU
slavik candy mountain!
CokeBot9000 slavik++
13:42 dalek left
slavik I work with someone named Charlie ... 13:42
omfg ... where's the doctor?
13:42 dalek joined
masak JimmyZ: 我也很忙。忙得快乐。^_^ 13:42
CokeBot9000 moritz_: Благодаря 13:43
JimmyZ masak: Great to see your new spec for Date 13:44
slavik ooh, where is it?
masak um, but I'm the DateTime guy. :)
moritz_++ did Date. :)
slavik lol?
moritz_ and I didn't spec it yet :-)
JimmyZ moritz_++ too. 13:45
masak and mberends++
moritz_ just implemented Date
slavik I'd like to see the spec that involved me getting kicked
masak slavik: svn.pugscode.org/pugs/docs/Perl6/Sp...mporal.pod
slavik ty
moritz_ when did slavik get kicked? 13:46
masak and sorry for kicking you... :/ I got ticked of by all the talk about internet beats.
slavik heh
moritz_: basically, I said "screw the world, keep track of UTC"
moritz_ :-)
slavik or something of that sort
pausenclown_ initiates vote kick 13:47
applicant: moritz
reason: noob
=)
masak moritz_: here: irclog.perlgeek.de/perl6/2010-04-04#i_2194097
moritz_ /kick pausenclown_ noobophobia
masak it was arnsholt, slavik and lue, IIRC.
slavik but honestly, I still think that should be the case simply because, for example, russia redid their time zones and now have 8 zones instead of 11 ...
masak slavik: I'm aware of the issue. it's a factor already. I haven't finished thinking about how to do. 13:48
slavik masak: that's why I think the timezone stuff (tzdate?) should be separate from core
masak it will be. 13:49
slavik core should know leap years and gregorian calendar but in UTC
masak that's part of the plan.
we do want to spec the machinery, however, so that non-core time zones can be glued onto the core classes.
slavik right
ahh, I see
masak same thing for locales and funny calendars.
slavik I guess I was arguing the wrong topic ... 13:50
pausenclown_ rakudo: class B { }; class A { has Int @.x }; my $a = A.new; $a.x[0] = 1; $a.x[1]=B.new 13:53
p6eval rakudo 2ec0e4: ( no output )
pausenclown_ shouldnt that croak?
masak yes, but typed attrs NYI in master. 13:54
pausenclown_ ah, ok.
and...
in a case like class B { }; class A { has Int %.x }; my $a = A.new; $a.x<foo> = 1; $a.x<bar>=B.new 13:55
the type trait only applies to the values right? what if i want to restrict the keys to say, Date objects? 13:56
btw, 13:58
masak++ # shedding lights into the pit of Perl6 POD
13:58 molaf joined
masak pausenclown_: has %.x{Date} 13:58
also NYI :) 13:59
pausenclown_ are you in a mood to guess the YI ratio of rakudo? 14:00
pmichaud ...what would we use for the denominator? 14:01
[particle] NaN
PerlJam that makes guessing easy then 14:02
[particle] perl 6 makes the easy things easy
PerlJam :-)
masak pausenclown_: I'd guess that kind of typing would land when someone takes a closer look at S09. that may or may not be this summer. 14:04
rakudo: my %h; %h{"foo" & "bar"} = 5; say %h.perl 14:06
p6eval rakudo 2ec0e4: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)␤»
PerlJam notes that the twiiterverse had some interesting reactions to the Perl 5.12 release in relation to Perl 6.
s/twiit/twitt/
masak I thought of having an interesting reaction too, but I decided not to. 14:07
14:08 iblechbot left
PerlJam I can't fathom the ones that said effectively, "if they're still making Perl 5 releases, why bother with Perl 6?" 14:08
14:08 JimmyZ left
takadonet "why bother with C++ when they are still releasing C?" 14:09
CokeBot9000 takadonet: that's actually an excellent question. :) 14:12
[particle] twitter... interesting... huh?
huf PerlJam: choice is baaad, mmmkay? just ask karl pilkington 14:13
pausenclown_ rakudo: class A { has $!x; method x { say self.x + 1 } }; my $a = A.new( x => 1 ); $a.x;
p6eval rakudo 2ec0e4: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
pausenclown_ how to disambguate self.x? 14:14
masak $!x
pausenclown_ rakudo: class A { has $!x; method x { say self!x + 1 } }; my $a = A.new( x => 1 ); $a.x;
p6eval rakudo 2ec0e4: OUTPUT«Method '!x' not found for invocant of class 'A'␤current instr.: 'perl6;A;x' pc 428 (EVAL_1:177)␤»
masak no, you're not listening :) 14:15
pausenclown_ NYI?
PerlJam slippery sublties of syntax
masak pausenclown_: no, you're just not listening.
pausenclown_ rakudo: class A { has $!x; method x { say $!x + 1 } }; my $a = A.new( x => 1 ); $a.x; 14:16
p6eval rakudo 2ec0e4: OUTPUT«2␤»
masak self!x would still be a (private) method.
pausenclown_ rakudo: class A { has $!x; has $.y = 99; method x { say $!x + $.y } }; my $a = A.new( x => 1 ); $a.x;
p6eval rakudo 2ec0e4: OUTPUT«100␤»
pausenclown_ mmh 14:17
so whats the diff between $. and self. ?
masak basically, the $.y in the 'has' declaration gives you a $!y and a method.
and $.y everywhere else is always a method call.
equivalent to 'self.y in item context'.
14:17 Guest16269 left
masak @.y is equiv to 'self.y in list context', etc. 14:18
somewhat related: use.perl.org/~masak/journal/39709
pausenclown_ i had to read that 3 times but i think your saying 'has' ing a public attribute generates a private method and accessors 14:21
jnthn s/private//
has $.x # like has $!x; method x() { $!x } 14:22
masak the method is the accessor.
dalek kudo: 0f1a5cd | pmichaud++ | src/Perl6/Actions.pm:
Avoid direct-namespace lookup of HLL::Grammar::quotemod_check.

a different HLL-root.
pausenclown_ yeah. i meant private attribute 14:23
masak in that case, *nod*
14:23 snarkyboojum_ joined
masak and not accessor*s*. one method does both the r and the w. 14:23
at least if you do 'has $.y is rw;'
14:24 JimmyZ joined
IllvilJa action considers the case of sentient perl6 objects who use 'have' instead of 'has' ;-) 14:24
14:24 uniejo left
IllvilJa considers the case of sentient perl6 objects who use 'have' instead of 'has' ;-) 14:24
(you are too distracted when you even fail using an IRC channel properly) 14:25
14:25 snarkyboojum left, snarkyboojum_ is now known as snarkyboojum 14:27 ejs left
CokeBot9000 is glad to see schwern's tweet. 14:29
masak aye. schwern++
PerlJam indeed, schwern++ 14:31
14:33 justatheory joined, nihiliad joined
masak can't stop laughing at cats on YouTube using the iPad 14:33
14:43 am0c left
masak is the Selector of S12 related to the Matcher os S29? 14:44
I don't see the Selector type defined anywhere in the spec.
14:45 JimmyZ_ joined
pugssvn r30392 | moritz++ | [t/spec] random unfudges for rakudo 14:45
14:48 JimmyZ left, JimmyZ_ is now known as JimmyZ 14:52 JimmyZ left 14:53 justatheory left
masak jnthn: OH NOES, the ashes from Iceland may keep coming for months or years. and NPW is in two weeks! :/ 14:54
IllvilJa iceland volcano ashes = nuclear winter lite 14:55
moritz_ masak: you need to take the boat :-) 14:56
masak last time I looked, that wasn't an economically viable alternative. 14:57
jnthn masak: We could swim.
;-)
TimToady espc since they burned it at the last viking funeral
IllvilJa NPW btw, what does that stand for? 14:58
pmichaud Nordic Perl Workshop
jnthn masak: Where'd you read the "may keep coming for months or years", btw?
PerlJam is mildly surprised to see "Practical Tips for Rakudo Star" for Oslo.pm
masak jnthn: my gleeful office mate told me.
jnthn Ah. 14:59
masak Nordic Perl Volcanoshop.
jnthn shoulda called his talk "Perl 6 Errupts"
PerlJam jnthn++ 15:00
TimToady is that about the mid-ocean rift between Perl 5 and Perl 6?
they're getting further apart by an inch or two a year :) 15:01
masak TimToady: that's OK, they'll collide on the other side :P
TimToady but that's enough for some fireworks
pmichaud jnthn: www.huliq.com/1/92709/iceland-volca...ace-closed
moritz_ that's why we need sorear++ madly hacking on Blizkost :-)
IllvilJa I thought perl5 and perl6 were more like the fault passing through San Francisco and the rest of California.
Instead of separating they just scratch each other, causing occasional quakes. 15:02
masak it's their fault, not ours! :P
PerlJam heh
TimToady well, in another <mumble> million years, LA will be north of SF.
pmichaud iirc, it's schwern's fault.
IllvilJa "OUR tectonic plate is standing still, it is YOUR that is moving and causing the quakes! STOP doing that!"
pmichaud I think it would be very hard to claim that Perl 6's tectonic plates are standing still. :-) 15:03
IllvilJa Does it even have a tectonic plate, or is it more like a storm on a gas giant like Jupiter?
PerlJam IllvilJa: in youre universe, what are the bits of perl 6 that perl 5 borrows? 15:04
IllvilJa "Perl6 - the red spot among programming languages" :-)
PerlJam: I have not really compared them.
I suspect Perl5 borrows shamelessly (and they should) anything that don't manages to run away in time. 15:05
More or less the same way Perl6 does, but with clunkier syntax (and duct tape and staples). 15:06
15:07 Trashlord joined
PerlJam I was just curious how you would characterize via plate tectonics the idea of keeping a feature on one plate, but at the same time conferring that feature to the other plate. 15:07
IllvilJa PerlJam: I think that question proves the point that an analogy never should be pushed too far. 15:08
:-)
TimToady well, historically, in real life, most cargo culters have lived on a different plate than the people they were cargo culting from. :)
PerlJam IllvilJa: perhaps. Or just that sufficient imagination has yet to be employed :) 15:09
masak .oO( anaolgies pushed into each other, causing meta-tectonic quakes... ) 15:11
PerlJam TimToady: many cargo culters didn't even have plates! 15:12
IllvilJa masak: you expressed a suitable definition of the concept "philosophy". 15:13
masak IllvilJa: I thought it felt familiar :)
IllvilJa Or perhaps the word I was looking for were "Innovation".
15:13 lest_away is now known as lestrrat
masak std: Proxy 15:17
p6eval std 30392: OUTPUT«ok 00:01 109m␤»
masak \o/
TimToady which types std recognizes is still completely arbitrary
PerlJam std: Fred
p6eval std 30392: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Fred' used at line 1␤Check failed␤FAILED 00:01 107m␤»
TimToady std: DateTime
p6eval std 30392: OUTPUT«===SORRY!===␤Undeclared name:␤ 'DateTime' used at line 1␤Check failed␤FAILED 00:01 107m␤» 15:18
masak 'Fred who?' -- 'Fred of snakes?'
TimToady Pythons?
masak if I want the key of a pair *not* to autoquote, what do I do?
TimToady quote it yerself 15:19
masak no, I mean
TimToady you want a function call?
there's always ()
masak if I really do want the Int type object as a key, and not "Int".
TimToady (Int) or, in theory, Int() 15:20
masak ah. thanks.
TimToady rakudo: say Int().WHAT
masak "parens only do grouping, yeah right..." :P
p6eval rakudo 0f1a5c: OUTPUT«Could not find sub &Int␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn TimToady: Hmm. What'd you expect that to do? 15:22
TimToady the parens group Int into a non-string :)
jnthn TimToady: I know Int(something) is meant to be a coercion. 15:23
TimToady I'd expect .() on a type object to be a coercion of Nil, which ends up returning the original type object
jnthn TimToady: Is empty parens after it just identity?
TimToady yes
jnthn OK.
masak that's a use of the word 'group' with which I wasn't previously familiar. :)
jnthn hadn't seen that before :-)
TimToady you should study group theory
masak 哈哈
TimToady it's one of the reasons I'm okay with type objects stringifying to Int() 15:24
pmichaud is Int() syntactic or .() on any protoobject?
my $x = Int; $x() # ?
masak o.O 15:25
pmichaud (I'd been assuming it's non-syntactic -- i.e., .() on a protoobject)
jnthn understood it as syntactic
masak too
TimToady the latter seems more general
pmichaud jnthn: it's just invoke on a protoobject
jnthn That is, TypeName(blah) is just sugar for blah.TypeName
15:25 snarkyboojum left
masak so type objects have a .() that returns self? 15:25
jnthn pmichaud: Well, it can be done that way too.
pmichaud they have a .() that does a coercion
Int('345') 15:26
TimToady may just Mu has a .() that does that
masak sure, why not.
jnthn It's just not the way I'd have expected it.
pmichaud jnthn: that's why I asked for the clarification -- it seemed you were heading down the syntactic trail
jnthn pmichaud: Aye, I thought based on some previous discussion on same topic.
I'm happy enough if it's non syntactic though. It's easier to implement that way. 15:27
TimToady STD parses it as a normal invoke, fwiw
jnthn method postcircumfix:<( )>(Mu:U: $to-coerce) { ... } or some such. 15:28
Probably Mu on the thing to coerce too.
I still need to do :U
TimToady hmm, Mu won't work
unless all types delegate to Mu
pmichaud jnthn: perhaps could cheat in the dispatcher for now
TimToady since any coercion .() would capture the dispatch 15:29
jnthn pmichaud: Well, the only reason at all :U is annoying is because it's not parsed as a special case...
Just as any old adverb on a variable name
pmichaud jnthn: oh, I might be able to do something with that (soon)
jnthn And that meant it was a bit less trivial to implement, and I was short on time, so I left it.
pmichaud some google alerts aren't what you want to see.... 15:30
=== Google Web Alert for: "patrick michaud" === 15:31
Obituary for Patrick Michaud Sr. - Redwood Chapel, Redwood City, CA
fortunately I'm not in CA
IllvilJa pmichaud: not a relative then?
pmichaud IllvilJa: not afaik
masak rakudo: { my &x = $^a; { &x($^b) }}.(&say).("OH HAI") # what am I missing? 15:32
p6eval rakudo 0f1a5c: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: '_block59' pc 441 (EVAL_1:187)␤»
jnthn Hmm
pmichaud masak the nested block is immediate
masak ah.
jnthn Oh. That'd doit.
masak rakudo: { my &x = $^a; -> $b { &x($b) }}.(&say).("OH HAI") 15:33
p6eval rakudo 0f1a5c: OUTPUT«OH HAI␤»
masak \o/
what made the outer block immediate, but not the inner one in my first example? 15:34
pmichaud I suppose one could argue that any block with placeholders can't be an immediate block.
masak I just don't understand the logic, I think.
maybe there is one.
pmichaud masak: I don't understand the question. The outer block isn't immediate.
15:34 meppl joined
masak oh, sorry. the other way around. 15:34
pmichaud it's not a bare block -- it has a method call on it.
masak oh, ok. 15:35
pmichaud The outer block isn't a bare block because of the method call.
The inner block is bare (to the scope of the outer block) 15:36
So the inner block is immediate.
masak right. I see it now.
thanks.
jnthn bbiab, systemka 15:37
pmichaud afk, lunch 15:41
15:42 envi^home left 15:56 molaf left
PerlJam Probably old news by now, but did you guys see this? www.nntp.perl.org/group/perl.cpan.w...sg819.html 16:01
16:02 molaf joined 16:03 ejs joined
masak didn't 16:04
moritz_ didn't either 16:05
but it's a good proposal
masak it looks good, yes. 16:06
actually, I'm happy that it's being considered/discussed at all.
but there also seems to be good ideas in there.
16:07 jhuni left
CokeBot9000 PerlJam++ 16:08
PerlJam I'm not surprised at the discussion (I figured it would come up eventually) but I'm mildly surprised at the tone. a few years ago there would have been more of a potassium-in-water kind of discussion 16:11
jnthn back 16:12
masak clearly we did something right :) 16:13
PerlJam yes.
particularly mst++ and masak++ I think
moritz_ PerlJam: I've sent a similar mail before, but with less concrete proposals, and probably to the wrong list 16:14
masak .oO( please look deeply into these spinning glasses... )
moritz_ the answer back then was "patches welcome, if they don't interupt anything for the Perl 5 crowd"
masak std: EMPTY 16:15
p6eval std 30392: OUTPUT«ok 00:01 109m␤»
CokeBot9000 std: std std!
p6eval std 30392: OUTPUT«===SORRY!===␤Negation metaoperator not followed by valid infix at /tmp/1p2iZCbzd2 line 1:␤------> std std!⏏<EOL>␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤Undeclared routine:␤ 'std' used at line 1␤Parse failed␤FAILED
..00:01 108m…
16:17 colomon left
masak food & 16:20
16:20 masak left 16:26 ggoebel joined
PerlJam There was another, longer thread in January: www.nntp.perl.org/group/perl.cpan.w...sg639.html 16:35
16:36 molaf left 16:44 justatheory joined, justatheory left, crazed joined 16:45 justatheory joined
crazed is rakudo still the go to compiler for perl6? 16:45
[particle] yes 16:46
crazed ok cool
rakudo in my repos yay 16:48
16:48 muixirt joined, stephenlb joined 16:49 xinming left
muixirt hi jnthn, plobsing pointed me some minutes ago to zavolaj 16:51
jnthn hi muixirt 16:52
lisppaste3 muixirt pasted "untitled" at paste.lisp.org/display/97824
muixirt jnthn: newbie question: what's the problem here :-)
jnthn muixirt: I don't know immediately. I'll have a look later on today. 16:53
It doesn't look specific to your example.
muixirt it's modeled after the win32-api-call.p6 example 16:54
diakopter jnthn: hi 16:57
I got me compile-time binder working for named subs. 16:58
jnthn muixirt: It may be that this one is broken too. 16:59
diakopter: Cool. :-)
muixirt: I gotta work on $other-thing right now, but I can check and patch it up later today.
muixirt jnthn: ok, thanks 17:00
17:01 ejs left 17:04 REPLeffect joined, espadrine joined 17:06 dakkar left, espadrine left 17:10 colomon joined
pugssvn r30393 | lwall++ | [S05] say what happens with negative quantifier ranges 17:47
17:49 rgrau` left, rgrau` joined
PerlJam TimToady: wicked 17:49
17:54 xabbu42 joined
PerlJam TimToady: does that mean the negative range values are zero-width matches? 17:54
TimToady no 17:55
PerlJam It just moves the Cursor?
TimToady yes 17:56
which should be trivial in the case of .
moritz_ and non-trivial in the case of patterns which allow varying length
PerlJam wonders if his spidey-sense is reversed. 17:59
17:59 xabbu42 left, xabbu42 joined
PerlJam normally, when presented with some new Perl 6 thing, my first reaction is "why?" or "I don't like it" or something until the construct grows on me and then I think it's the greatest thing ever like the '(' ~ ')' <stuff> syntax for instance 18:00
For this one, I just thought "cool"
:-)
18:04 Chillance joined 18:20 dual left 18:25 hercynium left 20:21 ilogger2 joined
pausenclown_ adds namespace support to XML::Parser 20:30
dalek ok: f9a8270 | moritz++ | src/ (2 files):
LaTeX does not seem to like non-breaking spaces, so substitute them by normal spaces
20:34
20:50 justatheory joined 21:10 ejs joined, Kyril joined
diakopter wonders what all the quiet is about 21:20
muixirt is breaking the silence 21:25
diakopter: tell how zavolaj works
jnthn muixirt: BTW, I've found a regression in Rakudo that I think broke Zavolaj. 21:26
muixirt hooray! 21:27
jnthn Working on a patch. 21:29
21:31 wknight8111 joined
jnthn muixirt: Works, spectesting. 21:33
21:33 lichtkind joined
lichtkind moritz_: did you edit german wikipedia perl article? 21:33
muixirt jnthn++ 21:35
listens to Lenny Dee R.A.W. before shell out a git pull :-)
moritz_ lichtkind: I might have, but it was at least 2 weeks agao 21:38
lichtkind moritz_: yes it has to be you because you saif last week to me "how many times .. its compiler" :)
moritz_ well, somebody has to keep the wiki honest :-) 21:41
lichtkind moritz_: honesty??? overrated
CokeBot9000 moritz_: oooh. I can ask people here to translate Rammstein lyrics for me!
lichtkind moritz_: sometimes we use words a bit differently you notices to my article where generally very good except the sentence where you dont seemed to get the ment with "the author" myself 21:42
moritz_: i loaded latest version of book 21:43
jnthn CokeBot9000: You, er, probably don't want to know what they mean. :-)
lichtkind CokeBot9000: which one?
yeah maybe jnthn is right
moritz_ lichtkind: sorry, I didn't understand what you mean by "get the meant with..." 21:44
21:44 frooh left
moritz_ *ment 21:44
CokeBot9000: there's not really anything worth translating in there
21:44 dhoss joined
moritz_ CokeBot9000: most are just... boring 21:44
21:45 frooh joined
jnthn <incest beastiality cannabalism USA-sucks ichwillficken>.pick # covers much of it... 21:46
lichtkind moritz_: yes there where missing words since i tried multithreading and reading cokebots post; i ment: except the sentence where you dont seemed to get what i ment with the words "the author" myself, because i cant say I on heise
m6locks jnthn: lol 21:48
jnthn I just patched Zavolaj in a couple of ways. 21:49
Most importantly, no "returns" declarations is taken to imply void now, and it actually gives a useful error message if the library is missing or the symbol couldn't be looked up in it.
As in, an error that actually mentions the name of the library and the symbol you were trying to look up. :-)
diakopter muixirt: I have no idea what zavolaj is. 21:50
jnthn But it's imperative! 21:52
;-)
diakopter: It's a Rakudo module that lets you do various bits of native library calling. 21:53
PerlJam diakopter: it's FFI for rakudo
dalek kudo: 3a1eb98 | jonathan++ | src/Perl6/Actions.pm:
We should only go looking for outer lexical candidates when introducing a lexical multi, not an our-scoped one. Fixes a regression.
21:56
kudo: 5fd0669 | jonathan++ | t/spectest.data:
Add a # icu marker for a test that seems to need it.
22:02
22:09 christine joined
muixirt smooches jnthn++, it works! 22:09
jnthn \o/ 22:10
22:11 ejs left
lisppaste3 muixirt annotated #97824 "untitled" at paste.lisp.org/display/97824#1 22:12
22:16 mearley joined, mearley left
muixirt is a little bit sobered because he doesn't know how to handle the power jnthn gave him ;-) 22:20
that's life 22:22
jnthn :-)
jnthn tries to fix the zen array slice stuff
22:32 pmurias joined
colomon jnthn++ 22:39
jnthn colomon: Appears I has a win. 22:40
Almost through the tests. :-)
colomon \o/
jnthn It fixes say "oh lol @bbq[]" too
Yay. array-interpolation.t runs completely unfudged now. :-) 22:43
colomon \o/
pmurias diakopter: perlesque will support coroutines? 22:44
colomon crazy fact: I've been prototyping in Perl 6 for work this week, and I haven't had any compiler issues at all with current Rakudo.
$work, I mean. 22:45
:)
22:45 pjcj joined
pmurias colomon: you're prototyping Perl 5 code in Perl 6? 22:45
colomon Target language is C++, actually
pugssvn r30394 | jnthn++ | [t/spec] Unfudge a bunch of array interpolation tests that Rakudo now passes.
pmurias C++ :( 22:46
colomon I'm afraid translating from Perl 6 to C++ will probably quadruple the number of lines of code... 22:47
jnthn Sure, but if prototyping the algorithm in Perl 6 gets you to those lines faster, I guess that's nice. :-)
diakopter pmurias: yes
and actually, full continuations 22:48
dalek kudo: 78faa0c | jonathan++ | src/Perl6/ (2 files):
Bring our parsing of array and hash subscripting in line with STD. This also unbreaks zen slices.
colomon jnthn: hopefully it means I can work out the fairly tricky algorithm more easily....
pmurias diakopter: will captures be handled by perlesque or does it expose a C# method call? 22:49
* C#ish
diakopter oh, that'll be 'above' the STD/viv level 22:50
the actual p6 runtime
since perlesque is just another VM layer over the CLR
(that provides slick compilation, runtime codegen, and continuations/closures) 22:51
22:51 pausenclown_ joined
pmurias does it run on linux? 22:51
diakopter pmurias: so basically, the perlesque code emitted by viv would build up the capture structures appropriately 22:52
yes
perlesque: loop (my int $a=0;$a<100000000;$a+=1) {};System::Console.WriteLine($a)
that's on linux
p6eval perlesque: OUTPUT«100000000␤»
diakopter it needs mono 2.6 22:54
pmurias perlesque could make a nice mildew target,if it took care of all the continuations support all the emitting a block as a giant switch stuff could be dropped 23:00
s/dropped/unessasary/
diakopter 'all the emitting a block as a giant switch stuff' in mildew?
pmurias: ^^ 23:02
pmurias switch () {case 1: stmt1; case 2: stmt2}
diakopter I know
do you mean the switching in mildew?
or in perlesque?
pmurias the mildew perlesque backend wouldn't have to emit anything like that 23:03
diakopter oh
pmurias it's a bit late for me so i don't express myself with full clearness
;)
diakopter I was confused b/c perlesque still has to do that for individual routines 23:04
but it's definitely not 1 giant one for the entire program.
pmurias in mildew it's not a giant one either
diakopter but only for routines that actually use that feature 23:05
23:05 TiMBuS joined
diakopter or are possibly recursive. 23:05
that's the only way I know of to implement continuations (to use instruction pointers/offsets) of some kind. 23:07
pmurias: what license is your software? (can I use your optimizer)
all of perlesque is MIT/BSD/MS-PL
pmurias mildew is Artistic 2 23:08
diakopter ok, which means it can be redistributed as MIT as long as it's not "named" the same.
23:09 ruoso joined, orafu joined
pmurias diakopter: it's not really a full optimiser, it can infer a bit of type info (i didn't get around to adding more rules yet) 23:10
diakopter: what i think would make more sense if instead of you forking the optimiser i just wrote a perlesque backend for mildew 23:11
diakopter oh
pmurias if Artistic 2 is a problem and ruoso agrees we could dual license mildew 23:14
diakopter no, it's not a problem, as I said above :) 23:16
the AL2 allows redistribution under any of the opensource.org licenses.
as long as the redistribution is not named the same as the original.
23:21 pmurias left
Kyril Should i bother learning Perl (5) or directly start learning Perl 6 ? 23:33
muixirt Kyril: depends on your goals 23:36
diakopter Kyril: yes, a very large portion of Perl 6 knowledge actually relies on very advanced Perl 5 knowledge, imho. 23:37
and an even larger portion relies on beginner-intermediate Perl 5 knowledge (like mine) 23:38
but other than that, they're very different languages :)
ruoso Perl 5 is much more documented than Perl 6, so learning Perl 5 might be easier then learning Perl 6
I mean, learning Perl 5 and then Perl 6 afterwards 23:39
Kyril muixirt, diakopter, ruoso : Alright, i will start by learning Perl 5 then, thanks 23:44
23:52 christine left 23:58 yinyin joined 23:59 Kyril left