»ö« | 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«121.51.666666666666671.61.6251.615384615384621.619047619047621.617647058823531.618181818181821.617977528089891.618055555555561.618025751072961.618037135278511.618032786885251.618034447821681.618033813400131.618034055727551.618033963166711.61803399852181.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«121.51.666666666666671.61.6251.615384615384621.619047619047621.617647058823531.618181818181821.617977528089891.618055555555561.618025751072961.618037135278511.618032786885251.618034447821681.618033813400131.618034055727551.618033963166711.61803399852181.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«791113151719212325272931333537394143454749515355» | ||
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«inthigh intint» | ||
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«b1» | ||
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 valuecurrent 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 exceededcurrent 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 1Check failedFAILED 00:01 107m» | ||
TimToady | std: DateTime | ||
p6eval | std 30392: OUTPUT«===SORRY!===Undeclared name: 'DateTime' used at line 1Check failedFAILED 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 &Intcurrent 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 1current 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-infixUndeclared routine: 'std' used at line 1Parse failedFAILED | ||
..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
|