»ö« | 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:00
hercynium joined,
rgrau left
00:07
meppl joined,
frzntoz left
00:08
frzntoz joined
00:09
yinyin joined
00:13
snarkyboojum left
00:15
alester joined
00:21
snarkyboojum joined
|
|||
dalek | kudo: 8b256a9 | (Solomon Foster)++ | src/core/operators.pm: Fix series operator bug in the initial elements of a series. |
00:31 | |
snarkyboojum | colomon o/ | 00:40 | |
colomon | \o | ||
00:45
lestrrat is now known as lest_away
|
|||
lue | anyone know of a nice list of P6 operators? | 00:48 | |
00:49
gfldex joined
|
|||
lue | rakudo: my @a=1,2,3,4; say [\+] @a | 00:50 | |
p6eval | rakudo ae2e81: OUTPUT«13610» | ||
colomon | lue: there was a really cool periodic table of operators that someone made, but it's hopelessly out of date now. | 00:54 | |
lue | I know, and I know it's out of date. There needs to be a list! | 00:55 | |
Don't ask me to make it because _the spec isn't clear at all_ :) | |||
00:57
TiMBuS left
|
|||
colomon | you don't want to look at the spec, you want to look at STD.pm. grep infix, prefix, postfix... | 00:57 | |
lue | ah. I'm writing a Kate syntax highlight file, and defining the operators _alone_ ought to be a complete nightmare :) | 00:58 | |
colomon | yes, this is why it was suggested you just figure out a way to tap into STD.pm | ||
I mean, Rakudo doesn't get the operators right yet.... | 01:00 | ||
lue | I'm not sure the syntax definition would allow that :/ | ||
My best route (short of entering them in manually) would be to write a script that "crawls" STD.pm, extracts, and automagically formats it to something I can paste into the XML... | 01:02 | ||
sorear | lue: basically every string is a valid operator | 01:03 | |
Perl 6 cannot be parsed with XML | |||
> sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2d6 | 01:04 | ||
rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2d6 | |||
p6eval | rakudo ae2e81: OUTPUT«Confused at line 11, near "say 2d6"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
sorear | rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2 d 6 | ||
p6eval | rakudo ae2e81: OUTPUT«2» | ||
sorear | rakudo: sub infix:<d>(Int $d, Int $s) { my $r = 0; for 1 .. $d { $r += $s.rand.floor }; $r }; say 2 d 6 | ||
p6eval | rakudo ae2e81: OUTPUT«3» | ||
lue | no, a P6 script that crawls STD.pm for inclusion into a syntax highlighting file. | ||
sorear | I challenge your syntax highlighting file to parse that | 01:05 | |
lue | what, the alphanumeric operator? That's what *Regular Expressions* are for! | 01:06 | |
sorear | the context sensitivity | ||
perl 6 cannot be parsed with regular expressions | |||
or even with a context free grammar | 01:07 | ||
lue | I'm not quite sure why you're telling me P6 is special and cannot be "parsed" by syntax highlighting. | ||
sorear | I'm not | 01:08 | |
I'm telling you kate sucks and can't parse arbitrary context sensitive languages | |||
snarkyboojum | rakudo: .say for 0,1, *+* ... 100 | ||
p6eval | rakudo ae2e81: OUTPUT«11123581321345589» | ||
diakopter | < lue> no, a P6 script that crawls STD.pm for inclusion into a syntax highlighting file. | ||
sorear | perl 6 and ocaml allow unrestricted definition of alphabetic infix operators | ||
diakopter | ^^^ but that's what STD.pm does | ||
snarkyboojum | hasn't updated quite yet I guess | ||
colomon | snarkyboojum: nope, 8b256a97a46de2772f743d377fd9491839296fc2 is latest. :) | 01:09 | |
sorear | snarkyboojum: what's it supposed to say? | ||
snarkyboojum | colomon: works on my local machine, so colomon++ :) | ||
sorear: start with 0 | |||
colomon | 0 1 1 2 3 5.... | ||
diakopter | lue: P6 *is* special, and cannot be [correctly] parsed by anything short of something identical to STD.pm | ||
STD.pm is not just a declarative grammar; it has many procedural/stateful elements | 01:11 | ||
lue | well, in the kate highlighting definition, there is a "dynamic" option, which does some remembering-related things, let me dbl-check | ||
sorear | BEGIN { *foo = rand(2) ? sub($) {} : sub(@) { } }; foo / 2; # this file is a syntax error in perl 5 50% of the time | 01:12 | |
diakopter | heh | ||
lue | "dynamic — if true, the context remembers strings/placeholders saved by dynamic rules. This is needed for HERE documents for example." | ||
01:13
lest_away is now known as lestrrat
|
|||
diakopter | ok. now multiply that stateful memory by about a googol-fold, and you've reached the complexity of Perl 6 grammars | 01:13 | |
lue | O.o | ||
it can't be that bad... can it? | |||
diakopter | yeah | 01:14 | |
because it's not upwardly bounded | |||
any grammar can install itself at parsetime | |||
and that grammar can make it even more infinitely complex.. | |||
lue | it feels like I'm trying to picture aleph/beth numbers higher that 0, but much worse :) | 01:15 | |
sorear | Devel::Declare is a standard feature in perl 6 | ||
lue thinks this can possibly be worse than looking into the Untempered Schism | |||
01:16
solu joined
|
|||
lue | well, I don't like not having P6 highlighting, the closest to P6 being (of course) Perl. | 01:17 | |
sorear tosses ε₀ at lue | |||
snarkyboojum | lue: I have P6 highlighting in vim | ||
:) | |||
lue | but I hate vim :( (er, s/hate/dislike/) | 01:19 | |
solu | is there a good windows IDE/Compiler for Perl 6? I'm using Padre, but it isn't working well.... | ||
And parrot wasn't working for me either, unfortunately | |||
lue | why is parrot not working? | 01:21 | |
diakopter | solu: afaik, Padre is the only one (and it uses Parrot) | 01:22 | |
solu | I can get it to install (I guess that's the problem -- I'm used to the Microsoft hand-holding of "here's the installer. use that and you'll have a working program) | ||
Okay, thanks, diakopter -- it's manageable, I guess. I can deal. | |||
snarkyboojum hasn't managed to get Padre going on OS X yet.. looking forward to trying it some time though | 01:23 | ||
lue has over the years come to dislike IDEs for reasons too long/forgotten to get into right now :) | 01:24 | ||
solu | hmm, well, thanks all. | ||
01:24
solu left
01:27
wknight81 left
01:31
p6eval left,
p6eval joined
|
|||
diakopter | perlesque: System::Console.WriteLine(43110); | 01:33 | |
p6eval | perlesque: OUTPUT«43110» | ||
diakopter | perlesque: Blargh.WriteLine(43110); | 01:34 | |
p6eval | perlesque: OUTPUT«Unhandled Exception: System.Exception: Typename Blargh doesn't exist!at Sprixel.Grammar.ResolveType (string) <0x001f3>at (wrapper dynamic-method) Sprixel.Grammar. (Sprixel.Matcher,Sprixel.UTF32String,int,uint,Sprixel.State) <0x0f5ba>at (wrapper delegate-invoke) | ||
..Sprixel.Func`6<S… | |||
lue | rakudo: System::Console.WriteLine(43110); | ||
p6eval | rakudo 8b256a: OUTPUT«Can not find sub System::Consolecurrent instr.: 'perl6;Perl6Exception;throw' pc 14818 (src/builtins/Seq.pir:41)» | ||
diakopter | lue: I don't think Rakudo will know about the .NET types | ||
lue | ah, that's what it is :) | 01:35 | |
diakopter | perlesque: my int $a = 7; $a += -442; System::Console.WriteLine($a); sub foo() { $a *= 5 }; foo(); foo(); System::Console.WriteLine($a); | 01:36 | |
p6eval | perlesque: OUTPUT«-435-10875» | ||
lue | .oO(Microsoft Visual Perl 6 .NET *shudder*) |
01:37 | |
diakopter | >:} | ||
it only knows about ints | 01:38 | ||
just a reminder: perlesque isn't intended to be Perl 6 | 01:41 | ||
it's just a small subset to be used as a target/assembly language for other implementations | |||
lue | .oO(Microsoft Visual Python .NET) |
||
diakopter | that already exists | ||
lue | diakopter: ok | ||
It does? /o\ | |||
diakopter | well, IronPython | 01:42 | |
std: my int $a = 7; $a += -442; ::System::Console.WriteLine($a); sub foo() { $a *= 5 }; foo(); foo(); ::System::Console.WriteLine($a); | 01:47 | ||
01:47
snarkyboojum left
|
|||
p6eval | std 30362: OUTPUT«ok 00:01 110m» | 01:47 | |
diakopter | afk& | ||
01:54
snarkyboojum joined
01:55
agentzh joined
01:56
Psyche^ joined
02:01
Patterner left,
Psyche^ is now known as Patterner
02:03
meppl left
02:08
jaldhar_ joined
02:09
_jaldhar left
02:21
eternaleye_ left
02:24
eternaleye joined
02:26
petdance joined
|
|||
lue | afk | 02:28 | |
03:22
petdance left
03:23
nihiliad left
03:39
petdance joined
03:41
petdance_ joined,
petdance left
|
|||
cotto | cj, ping | 03:42 | |
04:19
am0c joined
04:35
am0c left
04:53
am0c joined
04:57
frzntoz left
05:08
kaare joined
05:09
kaare is now known as Guest61322
|
|||
diakopter | perlesque: System::Console.WriteLine(33 % 2) | 05:15 | |
p6eval | perlesque: OUTPUT«1» | ||
diakopter | perlesque: System::Console.WriteLine(33 / 2) | ||
p6eval | perlesque: OUTPUT«16» | ||
diakopter | perlesque: System::Console.WriteLine(33 << 1) | ||
p6eval | perlesque: OUTPUT«66» | ||
diakopter | perlesque: System::Console.WriteLine(33 >> 1) | ||
p6eval | perlesque: OUTPUT«16» | ||
diakopter | perlesque: System::Console.WriteLine(33 << 4) | ||
p6eval | perlesque: OUTPUT«528» | ||
diakopter | perlesque: System::Console.WriteLine(33 << 8) | ||
p6eval | perlesque: OUTPUT«8448» | ||
sorear | perlesque: System::Console.WriteLine(System::Console.WHAT.perl) | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | it only knows ints | 05:16 | |
no other expressions | |||
it will never have a "WHAT" method | |||
it's not supposed to be Perl 6 | |||
System::Console.WriteLine(33 << 90) | 05:17 | ||
perlesque: System::Console.WriteLine(33 << 90) | |||
p6eval | perlesque: OUTPUT«-2080374784» | ||
diakopter | perlesque: System::Console.WriteLine(33 << -43) | ||
p6eval | perlesque: OUTPUT«69206016» | ||
diakopter | perlesque: System::Console.WriteLine(33 <<= -43) | 05:18 | |
p6eval | perlesque: OUTPUT«Unhandled Exception: System.InvalidOperationException: Operand of type 'TriAxis.RunSharp.Operands.IntLiteral' cannot be writtenat TriAxis.RunSharp.Operand.EmitSet (TriAxis.RunSharp.CodeGen,TriAxis.RunSharp.Operand,bool) <0x0009a>at TriAxis.RunSharp.Operands.Assignment.EmitGet | ||
..(T… | |||
diakopter | perlesque: 2 == 5 | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | perlesque: 2 = 5 | ||
p6eval | perlesque: OUTPUT«Unhandled Exception: System.InvalidOperationException: Operand of type 'TriAxis.RunSharp.Operands.IntLiteral' cannot be writtenat TriAxis.RunSharp.Operand.EmitSet (TriAxis.RunSharp.CodeGen,TriAxis.RunSharp.Operand,bool) <0x0009a>at TriAxis.RunSharp.Operands.Assignment.EmitGet | ||
..(T… | |||
diakopter | perlesque: my int $a = 31; $a <<= $a; System::Console.WriteLine($a) | 05:19 | |
p6eval | perlesque: OUTPUT«-2147483648» | ||
diakopter | perlesque: my int $a = 31; $a >>= ($a <<= 4); System::Console.WriteLine($a) | ||
p6eval | perlesque: OUTPUT«0» | ||
diakopter | perlesque: my int $a = 31; $a <<= ($a <= 4); System::Console.WriteLine($a) | 05:20 | |
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | perlesque: my int $a = 31; $a <<= ($a <<= 4); System::Console.WriteLine($a) | ||
p6eval | perlesque: OUTPUT«32505856» | ||
05:21
Guest61322 is now known as kaare_
05:22
rv2733 joined
|
|||
sorear | no 'say' ? | 05:22 | |
05:22
justatheory left
05:23
rv2733 left,
rv2733 joined
05:24
jonasbn joined
|
|||
hejki | w25 | 05:25 | |
.. | |||
05:25
yinyin left
|
|||
sorear | you should try to limit yourself to 20 channels | 05:26 | |
diakopter | heh | ||
:) | |||
hejki | ye.. i should | 05:31 | |
diakopter | perlesque: System::Console.WriteLine(4 > 2); | ||
p6eval | perlesque: OUTPUT«True» | ||
05:32
IllvilJa joined
|
|||
cotto | @seen cj | 05:38 | |
pugssvn | r30363 | diakopter++ | [evalbot] add perlesque p6eval target. NOT a Perl 6 implementation. Let me say that again: ditto. | 05:43 | |
05:48
snarkyboojum left
|
|||
diakopter | perlesque: my int $a = 1; my int $b = 5; my bool $c = $a == ($b / $b); System::Console.WriteLine($c); | 05:54 | |
p6eval | perlesque: OUTPUT«True» | ||
lue | goodnight moon | 05:55 | |
diakopter | goodnight stars | 05:56 | |
06:00
Trashlord left
06:07
uniejo joined
|
|||
dalek | kudo: 0334df6 | plobsing++ | src/binder/bind.c: use STRINGNULL tests where appropriate in bind.c PMCNULL for pmcs. In the past it didn't get a lot of use, most null strings simply being set to NULL. I have recently created a branch in parrot to use STRINGNULL more extensively. My changes cause problems in C code that erroneously assumes null parrot strings are NULL, such as rakudo's binder.c. Closes RT #74272. Signed-Off-By: Moritz Lenz [email@hidden.address] |
06:16 | |
06:27
snarkyboojum joined
06:32
drbean joined
06:50
ceco joined
06:52
ceco left
06:53
petdance_ left
07:11
szabgabx joined
07:15
iblechbot joined
07:28
fridim joined
07:46
yinyin joined,
payload joined
08:19
lollan joined
|
|||
lollan | ns identify amadou | 08:19 | |
08:20
lollan left,
lollan joined
08:39
masak joined,
Trashlord joined
|
|||
masak | oh hai, #perl6 | 08:40 | |
moritz_ | \o/ it's masak | ||
08:41
dakkar joined
|
|||
Trashlord | my brother's in the military, heh | 08:41 | |
and he's feeling terrible there | |||
that's all, thanks for hearing | |||
08:44
masak` joined
08:45
masak left
|
|||
Trashlord | hey masak` | 08:45 | |
masak` | oh hai. | 08:46 | |
masak` is on a bus | |||
Trashlord | LOL, awesome | ||
masak` | everything here is awesome, except perhaps the wifi. | ||
Trashlord | looks like | ||
it | |||
masak` | oh well, at least it carries bits... occasionally. | ||
08:47
masak` is now known as masak
|
|||
masak | someone want to help me with figuring out a workaround? | 08:47 | |
I have a method in a class, and I want to be able to pull out a reference to it and put it in a variable. | 08:48 | ||
jnthn | &ClassName::method | ||
Or use .^methods or .can (though latter may be a bit broken) | |||
Note the first of these relies on method being our-scoped. | |||
masak | jnthn! | ||
jnthn | masak! | ||
masak | yep, figgered it out here now too :) | 08:49 | |
rakudo: class A { our method foo { say "OH HAI" } }; my $bar = &A::foo; $bar(A.new) | |||
that works. | |||
p6eval | rakudo 0334df: OUTPUT«OH HAI» | ||
jnthn | Right. | ||
masak | .can is like totally b0rk. | ||
jnthn | Without the "our" it is has-scoped | ||
And won't work | |||
masak still doesn't grok teh has-scoped | |||
jnthn | masak: Means it only goes into the method table, nowhere else. | ||
masak | huh. strange name for that. | ||
has-scoped sounds like per-instance to me. | |||
jnthn | Well, it is only accessible through an instance in a sense. | 08:50 | |
masak | sure, but it's the same one for all of them. | ||
jnthn: no Russia? :/ | 08:51 | ||
08:51
masak` joined
|
|||
jnthn | masak: I will travel there tomorrow. | 08:51 | |
3 day event, so I can still be useful even if I have to go a little later than hoped. | 08:52 | ||
masak` | oh good. | ||
jnthn | I've somewhat improved since yesterday, though I'm glad I put off flying until tomorrow. | 08:53 | |
moritz_ | sick? | ||
jnthn | moritz_: Yeah, I seem to have caught...something... | ||
moritz_ | :( | ||
then get well soon! | |||
jnthn | moritz_: Woke up yesterday feeling awful, tried to go to the airport anyway, and almost collapsed at one point while on the way. Then realized that I really wasn't in shape for it. | 08:54 | |
Spent just about the whole yesterday asleep. | |||
After getting back. | |||
Still a bit mystified at what exactly I've managed to catch. | 08:55 | ||
08:55
masak left
08:57
masak`` joined,
masak`` is now known as masak,
cognominal left
|
|||
masak | sorry about my multiplicity... | 08:57 | |
jnthn | It's kinda appropriate for a bus. You wait ages for one and then a bunch come at once. ;-) | 08:58 | |
masak | :D | ||
take all(@buses); | |||
09:00
masak` left
|
|||
jnthn | Time for another nap. Back later. | 09:02 | |
masak | nap well, jnthn-san! | ||
moritz_ | jona-san :-) | 09:03 | |
masak scratches his head as to why the optable parser in GGE fails all tests under Rakudo master | |||
moritz_ | is the default 'new' method in classes a multi method? | 09:07 | |
09:07
clintongormley joined
|
|||
moritz_ | rakudo: class A { has $.a; multi method new ($){ } }; say A.new(:a<b>).a | 09:07 | |
p6eval | rakudo 0334df: OUTPUT«Any()» | ||
moritz_ | that bit me while writing Date.pm | 09:08 | |
09:08
drbean left
|
|||
moritz_ | not sure if it's allowed by spec or not | 09:08 | |
masak | er. | ||
you're returning nothing from the method? | 09:09 | ||
shouldn't you be getting Nil back? | |||
moritz_ | I'm not calling that method | ||
masak | ah, true. | ||
moritz_ | I think it's a bug | ||
masak | so do I. | ||
moritz_ | because either it finds the default method, then the initialization should work | ||
or it doesn't find the method, then it should die horribly | 09:10 | ||
masak | aye. | ||
seems kinda weird... | |||
moritz_ | rakudo: class A { has $.a }; say A.new(:a<b>).a | ||
masak | rakudo: class A { has $.a; multi method new ($){ say "OH HAI" } }; say A.new(:a<b>) | ||
p6eval | rakudo 0334df: OUTPUT«b» | ||
rakudo 0334df: OUTPUT«A()<0x5ebcbe8>» | |||
moritz_ | erm? | 09:11 | |
ah, that's the A object | |||
masak | mm. | ||
moritz_ | anyway, the presence of multi with different arity shouldn't kill initialization - unless it hides the default .new, in which case dispatch should fail | 09:12 | |
moritz_ repeats himself | |||
bad moritz_, no cookie | |||
m6locks | yes, i've had that same (bug) thing come up | 09:15 | |
09:16
drbean joined
|
|||
moritz_ | masak: did you submit? or shall I? | 09:21 | |
masak | moritz_: please do. | 09:23 | |
rakudo: my @a = "!", a => "1", b => "2", c => "3"; my ($name, %opts) = @a; say %opts.perl | |||
p6eval | rakudo 0334df: OUTPUT«{"a" => "1"}» | ||
masak submits rakudobug | |||
moritz_ | huh? | ||
masak | I'd expect all pairs to go in %opts. | 09:24 | |
they did in alpha. | |||
alpha: my @a = "!", a => "1", b => "2", c => "3"; my ($name, %opts) = @a; say %opts.perl | |||
p6eval | alpha 30e0ed: ( no output ) | ||
masak | huh. | 09:25 | |
I've traced the bug in GGE down to this. | |||
probably workaroundable. | |||
moritz_ submitted the new() bug | 09:26 | ||
masak | rakudo: my @a = "!", a => "1", b => "2", c => "3"; my %opts = @a[1..@a-1]; say %opts.perl | ||
p6eval | rakudo 0334df: OUTPUT«{"a" => "1", "b" => "2", "c" => "3"}» | ||
masak | yup :) | ||
interestingly, what emerges when I worked around that bug is not a plain of passing tests, but an interesting landscape of passing and failing ones. | 09:31 | ||
masak dives in | |||
09:31
cognominal joined
|
|||
moritz_ | probably one or two more bugs | 09:31 | |
masak | hopeably. | 09:33 | |
09:34
kensanata joined
09:38
masak left,
masak joined
09:39
envi^home joined
|
|||
masak | where I could use 'true' before, now I can't. | 09:39 | |
'so' doesn't work either. | |||
rakudo: class A { method true() { "OH HAI" } }; say ?A.new | |||
p6eval | rakudo 0334df: OUTPUT«1» | ||
masak | rakudo: class A { method so() { "OH HAI" } }; say ?A.new | ||
p6eval | rakudo 0334df: OUTPUT«1» | ||
masak | Bool works. | ||
rakudo: class A { method Bool() { "OH HAI" } }; say ?A.new | |||
p6eval | rakudo 0334df: OUTPUT«OH HAI» | ||
09:40
lollan left
|
|||
mathw | o/ masak | 09:42 | |
masak | \o | 09:43 | |
09:46
kensanata left
09:52
payload left
|
|||
masak | std: my $a; my $b; say "$a:$b" | 10:01 | |
p6eval | std 30363: OUTPUT«===SORRY!===Variable $a:$b is not predeclared at /tmp/zPk8fIH6vN line 1:------> my $a; my $b; say "$a:$b⏏"Check failedFAILED 00:01 109m» | ||
moritz_ | that looks rather bogus | 10:02 | |
rakudo: my $a; my $b; say "$a:$b" | |||
masak | I'm glad I'm not alone thinking that. | ||
p6eval | rakudo 0334df: OUTPUT«Symbol '$a:$b' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
moritz_ | uhm. | ||
masak | :) | ||
that's how I discovered it. | 10:03 | ||
10:04
masak` joined
|
|||
masak` subsequently gets bitten by the <-[t]> bug | 10:05 | ||
:( | |||
10:05
cotto_work left
|
|||
moritz_ | that's an ugly one | 10:05 | |
workaroundable with look-aheads | |||
sorear | what does $a:$b mean? | 10:06 | |
masak` | rakudo: say "foo" ~~ /\T+/ | ||
p6eval | rakudo 0334df: OUTPUT«foo» | ||
masak` | that works too :) | ||
moritz_ | masak`: except in the general case of composed character classes :/ | ||
masak` gets bitten by the lack of .trans | 10:07 | ||
hm. | |||
right. | |||
moritz_ | somebody worked on a patch for that, forgot who... | ||
masak` | here it should actually have been \T from the start :) | ||
10:07
masak left
10:08
masak` is now known as masak,
mikehh left
10:16
masak` joined
|
|||
masak | rakudo: "foo" ~~ /(oo)/; say $0.subst(/o/, "O", :g) | 10:16 | |
p6eval | rakudo 0334df: OUTPUT«Method 'subst' not found for invocant of class 'Regex;Match'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak` | I'd argue that the above should work. | ||
did the cool branch merge already? | 10:17 | ||
10:17
masak left,
masak` is now known as masak
10:18
mikehh joined,
masak` joined
|
|||
mathw | having connection problems? | 10:19 | |
masak` | I'm not, but the bus is. | ||
:) | |||
10:22
lestrrat is now known as lest_away,
masak left
10:23
masak` is now known as masak
10:24
fridim left
|
|||
masak | hm. getting worryingly roadsick. shutting down for a while. | 10:26 | |
10:26
masak left
10:29
cotto_work joined,
iblechbot left
10:33
cotto_work left
10:34
cotto_work joined
10:53
Sunil joined
10:54
Sunil left
10:55
lest_away is now known as lestrrat
11:01
quester_ joined,
jaldhar_ left
|
|||
pugssvn | r30364 | mberends++ | [Temporal.pod] remove invalid markup that may have blocked updating of the HTML version online, and minor cosmetic changes. | 11:01 | |
dalek | kudo: fd40e2a | (Martin Berends)++ | src/core/Temporal.pm: [core/Temporal.pm] explicitly create a DefaultFormatter where implicitly was not doing it |
||
11:01
mberends joined
11:02
yinyin left
11:03
agentzh left
11:05
jaldhar_ joined,
ruoso left
11:07
jaldhar_ left
11:09
jaldhar_ joined
|
|||
moritz_ | how well does Temporal/DateTime work in Rakudo these days? | 11:12 | |
mberends | not very well, still struggling with simple stringification | 11:14 | |
phenny | mberends: 10 Apr 22:26Z <moritz_> tell mberends yes, Date::Simple is my main source of inspiration | ||
moritz_ | then I need to ask more specifically... | ||
for my Date module I want to write the Date.today() constructor | |||
mberends | right | ||
moritz_ | can I construct a DateTime object with the current date, and extract YMD information? | 11:15 | |
mberends | I think that works with the rather long winded from_epoch(time) constructor | ||
moritz_ | rakudo: say DateTime.from_epoch(time) | 11:16 | |
p6eval | rakudo 0334df: OUTPUT«Could not find sub &DateTimecurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
moritz_ | not in Makefile.in by default? | ||
mberends | Temporal.pm is not yet in ... no | 11:17 | |
moritz_ | any objections to adding it? | ||
mberends | it's still not complete enough | ||
moritz_ | neither is anything else in Rakudo :-) | ||
mberends | I'm working on it right now :) | ||
if 'my $d=DateTime.from_epoch(time);say $d.ymd' is enough for you, it's fine to enable it in Makefile.in | 11:20 | ||
that works locally, so also do .year .month and .day | |||
moritz_ | that's enough for me | 11:21 | |
mberends | :-) ok, I have the change ready to commit | ||
pugssvn | r30365 | moritz++ | [util/smartlinks.pl] do not try to read pugs_version.h, which is gone with the wind | 11:23 | |
dalek | kudo: 077325a | (Martin Berends)++ | build/Makefile.in: [build/Makefile.in] add Temporal.pm back in following recent spec changes |
11:24 | |
mberends | the tests need some more checking before going in, because they are out of sync with the spec | 11:25 | |
moritz_ | mberends++ | 11:26 | |
mberends | the new spec will require lots of new tests, nice LHF fruit work | ||
F fruit? ah well.. | |||
moritz_ | LHH - low hanging hacking :-) | 11:27 | |
mberends | HDD - hubris driven development :-) | ||
moritz_ | I've tried to find out why S32/Temporal.html is not being updated | ||
so far my diagnosis revealed that it dies during processing S26 | 11:28 | ||
mberends | there was an invalid T< > in the markup, gone now | ||
moritz_ | since it tries to do that with whatever tool was available for parsing the previous S26 version | ||
and then dies horribly, and doesn't update any synospis > 26 | |||
mberends | ugh | 11:29 | |
perldoc Temporal.pod showed the bad markup | |||
moritz_ | but Text::SmartLinks is not so small, and requires more in-depth reading :/ | ||
colomon | moritz_++ # for investigating the spec html issues. | 11:30 | |
pugssvn | r30366 | moritz++ | [update-syn] try to build S32/*.pod files. Also remove smoke result cross linking | 11:36 | |
11:37
gabiruh left
11:39
rjorge joined
11:40
rjorge left,
Dot joined
11:41
gabiruh joined
11:45
charsbar_ joined
11:52
colomon left
11:53
quester_ left
11:56
takadonet joined
|
|||
takadonet | morning all | 11:56 | |
mberends | \o takadonet | 11:57 | |
moritz_ | that didn't work out :( | 12:01 | |
pugssvn | r30367 | moritz++ | [update-syn] another stab at S32/*.html generation | 12:05 | |
moritz_ | didn't work either :( | 12:07 | |
12:09
pmurias joined
|
|||
pugssvn | r30368 | moritz++ | yet another attempt to build S32/*.html files | 12:13 | |
12:13
colomon joined
12:14
pmurias left
|
|||
moritz_ declares victory | 12:16 | ||
takadonet | ?? | ||
colomon:welcome back | |||
mberends | \o/ pray tell what the problem was | ||
colomon | o/ | ||
moritz_ | mberends: szabgab refactored Text::SmartLink into a module of its own, and replaced the previous huge smartlinks.pl with a wrapper that calls that module | 12:17 | |
mberends | aha! | ||
moritz_ | that wrapper hardcoded the directory to the synopsis | ||
and even explicitly calling the wrapper with --pod-dir=... would not override that | 12:18 | ||
now I've changed the wrapper to call the "real" smartlinks.pl twice | |||
once for S01, S02 etc., and once for S32/ | 12:19 | ||
it's ugly as hell, but it does work | |||
colomon | \o/ | ||
12:20
Dot left
|
|||
cj | colomon: hmm? | 12:29 | |
cotto: (I mean) hmm? | 12:30 | ||
moritz_ | Juerd++ # setting up a stable feather | ||
dalek | kudo: 862d42c | (Martin Berends)++ | src/core/Temporal.pm: [core/Temporal.pm] update the now() constructor with timezone and DefaultFormatter |
12:34 | |
12:35
SmokeMachine joined
|
|||
moritz_ | Date.today() implemented | 12:45 | |
mberends++ | |||
mberends | rakudo: say DateTime.now.ymd | 12:46 | |
p6eval | rakudo 077325: OUTPUT«No candidates found to invokecurrent instr.: 'perl6;DateTime;now' pc 499947 (src/gen/core.pir:77056)» | ||
moritz_ | not yet updated | ||
mberends | :) | ||
12:51
masak joined
|
|||
masak | fun fact: I wanted to know whether C<srand> was spec'd, found it in S32/Numeric, and discovered that it has a sub form and a method form. :) | 12:52 | |
would anyone mind if I removed the method form? | |||
moritz_ wouldn't mind | |||
masak | two people in consensus. I'm doing it. | 12:53 | |
mberends | +1 | ||
moritz_ | I don't really like the srand() business at all; it's like a hidden global variable | ||
I'd like to seed it with a timestamp, and have PRNG objects for those who want different seeds | 12:54 | ||
(seeding on startup, that is) | |||
12:54
masak` joined
|
|||
diakopter | masak`: yo | 12:55 | |
I liked the method form | |||
moritz_ | 3.4.srand | ||
diakopter | oh well | ||
colomon | remove the method form, yes! | ||
masak` | diakopter: please explain. | ||
12:56
pmurias joined
|
|||
masak` | to me, 3.4.srand even looks slightly wrong from a data model perspective. | 12:56 | |
diakopter | wasn't the method form a shortcut for rand() * $invocant | ||
masak` | not sure why. | 12:57 | |
Juerd | masak`: Because you're not acting on 3.4 | ||
You're acting on the random number generator. | |||
12:57
M_o_C joined
|
|||
masak` | diakopter: we're talking about .srand, not .rand | 12:57 | |
Juerd: yes. thank you. | |||
diakopter | masak`: oh, ah | ||
missed that | |||
12:57
_Dot_ joined
|
|||
masak` | Juerd: perhaps the global variable that moritz_ mentioned becomes jarringly obvious then. | 12:57 | |
12:57
_Dot_ left
|
|||
Juerd | Yes. Just expose that :) | 12:58 | |
$*PRNG.seed = 3.4; | |||
masak` | I like that better. one loose sub fewer. | ||
Juerd | Or whatever the twigil would be. I still can't remember them. | ||
diakopter | some globals should live in namespaces other than the top, imho | ||
masak` | TimToady: what do you think? | ||
Juerd | diakopter: nimho. | 12:59 | |
masak` | diakopter: there's also things like PROCESS:: | ||
moritz_ | maybe it should be called $*RAND | ||
12:59
masak left
|
|||
moritz_ | PRNG doesn't read that well | 12:59 | |
diakopter | Juerd: I mean, some statics | ||
Juerd | If it can be categorized under one of the twigil things, there's little reason to put it in a namespace. | ||
moritz_: I can read it perfectly :P | |||
Juerd pronounces PRNG as prong and RNG as ring. Hmmm... | 13:00 | ||
moritz_ | otoh people might be tempted to think it's an actual random number, not a generator | ||
Juerd | Is it an iterator? :) | ||
masak` | while I'm at it, should I change all underscores in Temporal to dashes? :) | ||
moritz_ | masak`: please do | ||
masak` | seems even p6l mostly agrees that this is a good idea. | ||
13:00
masak` is now known as masak
|
|||
pugssvn | r30369 | masak++ | [S32/Numeric] removed method form of srand | 13:00 | |
r30369 | | |||
r30369 | Overwhelming consent on #perl6 about this. | |||
Juerd | "even p6l". :) | 13:01 | |
moritz_ | TimToady once mentioned that he wants underscores for low-level things | ||
Juerd | What's the difference between consent and consensus? | ||
masak is in a p6l-sour phase :) | |||
Juerd | moritz_: Is your current nickname low-level? | ||
moritz_ | or delibaretly ugly things, like MONKEY_TYPING; | ||
Juerd | moritz_: /nick moritz- ;) | ||
masak | moritz_: that is a very cute mnemonic! | ||
13:01
rgrau joined
|
|||
masak | "low-level" | 13:01 | |
Juerd | D"low_level" | 13:02 | |
moritz_ | Juerd: yep, it's not Unicode, so it's low level :-) | ||
Juerd | s/D// | ||
masak | Juerd: none, it's the same word with different spellings. :) | ||
moritz_ -> afternnoon nom | |||
masak | just as en:"immediate" and sv:"omedelbar" are the same word with different spellings. | ||
Juerd just nommed but wants moar. | |||
mberends | consent is permission, consensus is majority agreement | 13:03 | |
Juerd | masak: nl:"onmiddellijk" | ||
-lijk and -baar are more or less the same suffix. | |||
masak | mberends: now you're just making stuff up :P | ||
Juerd: yep. | |||
don't know about -ate in English, though. | |||
probably something from Latin. | |||
Juerd | -lijk is like -ly, -baar is like -able. | 13:04 | |
Sometimes they can be exchanged. | |||
If you do that for onmiddellijk, it starts to look like omedelbar. | |||
masak | aye. | ||
Juerd | The n in onmiddellijk is a big source of confusion, by the way. on- is like un-, and it looks like negation. | ||
13:05
dalek left
|
|||
arnsholt | masak: -ate is definitely Latin | 13:05 | |
Juerd | mediatus. | ||
13:06
masak` joined
|
|||
arnsholt | Yeah, probably | 13:06 | |
masak` | 'immediate' itself is 'without means', i.e. without things in the middle. directly from A to B. | ||
13:06
masak` left
|
|||
arnsholt | I was thinking of -tas for a moment, but that puts the a after the t, not before | 13:06 | |
pmichaud | good morning, #perl6 | 13:07 | |
13:07
masak` joined
|
|||
Juerd | masak: Oh, so there is negation. Hm. | 13:07 | |
13:07
masak` left
|
|||
mberends | \o pmichaud | 13:07 | |
arnsholt | Yeah, that's probably a good guess | ||
13:07
masak` joined
|
|||
mberends | masak`: are you editing Temporal.pod or shall I? | 13:08 | |
masak` | I'm on it. | ||
arnsholt | Although the in- prefix is ambiguous. It can be both negation and the preposition in ^^ | ||
13:09
masak left,
iblechbot joined
|
|||
colomon | pmichaud: o/ | 13:09 | |
masak` | arnsholt: classical example is 'impregnable', which can mean its opposite :) | ||
13:09
masak` is now known as masak,
dalek joined
|
|||
jnthn back for a bit | 13:10 | ||
masak | \o/ jnthn! | ||
pmichaud | jnthn: o/ | 13:11 | |
jnthn | hi pmichaud | 13:12 | |
masak | hi pmichaud | ||
pugssvn | r30370 | masak++ | [S32/Temporal] replaced underscores with dashes in method names | 13:13 | |
r30370 | | |||
r30370 | Also decided to go with 'timezone' rather than 'time_zone' or 'time-zone', | |||
r30370 | for a flurry of reasons. Saves a character; looks more like the rest of the | |||
r30370 | attributes; looks more like DateTime::TimeZone; emphasizes that it's one | |||
r30370 | concept and not two; it was already partly that way by mistake. ;-) | |||
pmichaud | I'm sure others have mentioned this already... what about hyphens and language interop? | ||
masak | haven't seen that mentioned. | ||
pmichaud | oh. | ||
masak | in *that* situation, I might consider a dashes-underscore equivalency rule. | 13:14 | |
jnthn | That's a little practical for a p6l thread. ;-) | ||
pmichaud | I prefer hyphens myself, but other languages talking to Perl libraries might object. :-) | ||
jnthn | Yeah, visually I like the hyphens too. | ||
masak | well, similar situations will occur all the time for similar things. | ||
mberends | hyphens in identifiers should be banned ;) | ||
masak | there has to be a broader solution anyway. | ||
pmichaud | wfm. | ||
masak | mberends: I had a feeling you didn't like them! :) | 13:15 | |
jnthn | I was really skeptical about them, until I tried writing code using them. | ||
masak | mberends: no Dashes::In::Mid-identifier; # oh wait... | ||
jnthn | And was like...oh huh...it's pretty. | ||
mberends | they're not Fortran-compatible ;) | ||
masak | neither are junctions. | 13:16 | |
CokeBot9000 | pmichaud: morning. | ||
pmichaud | CokeBot9000: good morning | 13:17 | |
arnsholt | jnthn: And "I'm using my shift key half as much as I used to" =) | ||
masak | jnthn: I just realized why there are so many Russian tweets about Perl 6 today... | 13:18 | |
pmichaud | masak: :-) | ||
13:18
mikehh left
|
|||
jnthn | masak: Heh. Are they positive? :-) | 13:18 | |
masak | "I feel a disturbance in the tweetosphere..." | ||
jnthn: think so. | |||
jnthn | So long as they aren't all like "Перл 6 гровно!". :-) | 13:19 | |
masak | apparently, there's something called #ritconf... | ||
:D | |||
arnsholt | "grovno"? | ||
jnthn | arnsholt: A non-complimentary adjective. | 13:20 | |
masak | must mean "groovy" or something... :> | ||
pmichaud | "groovy" as in "full of holes" as in "cheese"? | ||
arnsholt | jnthn: Right. Rather uncomplimentary I take it =) | ||
diakopter | grovelsome | ||
masak | pmichaud: ssh! let them discover it on their own. :) | 13:21 | |
diakopter | gravelly | ||
masak | twitter.com/lisitsky/status/12035629162 | ||
13:22
SmokeMachine left
|
|||
arnsholt | jnthn: Searching for "dictionary гровно" returns one match | 13:23 | |
You, in an IRC log from may of last year =p | |||
masak | maybe it belongs to a very narrow dialect :) | ||
jnthnese. | |||
arnsholt | ^^ | ||
jnthn | ;-) | 13:24 | |
Special word. ;-) | |||
arnsholt | So I gather | ||
masak | jnthn: it's funny how an imported h often becomes a g in Russian. | 13:25 | |
jnthn: I still haven't really figured out why. they do have h as well. | |||
jnthn | masak: Yeah. | ||
masak: The s/g/h/ "rule" works surprisingly often. | |||
masak | they're like, "let's s:g/h/г/ on all foreign words!" | 13:26 | |
jnthn | I'm not even sure if it's just imported stuff though. | ||
masak | maybe not. | ||
I've seen it mostly on Germanic words. | |||
words imported from Hermany :) | |||
jnthn | Slovak mnoho, Russian много. | 13:27 | |
masak | hm. | ||
jnthn | Which is just like "very"/"much" | ||
masak | *nod* | ||
jnthn | Or Slovak dlho and Russina длого (both meaning "far away") | ||
13:28
meppl joined
|
|||
masak tries out the 'dlh' cluster | 13:28 | ||
the re | |||
the Russians were wise to throw in an extra o there. | 13:29 | ||
arnsholt | Knowing, Czech and Slovakian, its probably them who threw it out =) | ||
Crazy, crazy vowel dropping =) | |||
masak | :) | 13:30 | |
13:34
mikehh joined
|
|||
diakopter | perlesque: my int $a = 4; if ($a < 1) { System::Console.WriteLine(5) } elsif ($a != 4) { System::Console.WriteLine(77); }else{ System::Console.WriteLine(2443) } | 13:34 | |
p6eval | perlesque: OUTPUT«2443» | ||
pugssvn | r30371 | mberends++ | [Temporal.t] apply floor() to seconds because they are now fractional | ||
13:36
masak left
|
|||
jnthn | perlesque: my int $a = 0; for 1..10000000 { $a++ }; say $a; | 13:36 | |
p6eval | perlesque: OUTPUT«parsefail» | ||
jnthn | wow, that's faster than Raku...oh, wait. :-) | ||
mberends | it *does* parsefail faster than Rakudo ! | 13:37 | |
jnthn | :-) | 13:38 | |
I'm sure if it knew how to parse that loop it'd manage it faster too, if it really is compiling those down to C# ints. | |||
diakopter | yep | 13:42 | |
it won't have for 1..10000000 { } | 13:43 | ||
but it will have loop (;;) | |||
13:43
ignacio_ joined
|
|||
jnthn | k | 13:46 | |
13:47
dalek left
13:48
dalek joined
13:50
kaare_ left
13:51
frzntoz joined
13:56
SmokeMachine joined
|
|||
arnsholt | The problem with implementing Prolog: you start using . instead of ; in your NQP code ^^ | 13:57 | |
14:00
pmurias left
14:04
colomon left
14:05
ruoso joined
14:08
NICK_ joined,
NICK_ is now known as Guest39570
14:09
Guest39570 left
|
|||
moritz_ | arnsholt: now you know how the people feel who try to implement Perl 6 in Perl 5 | 14:12 | |
arnsholt | Heh. That's a more insidious kind of messed up I suspect =) | ||
moritz_ | aye | 14:14 | |
you tend to write @a.push(...) in Perl 5 | |||
or $thing[$idx] in Perl 6 | |||
or... all these crazy, small differences | |||
if-statements without parenthesis | 14:15 | ||
jnthn | No comma after the map block is the one that gets me. | 14:16 | |
14:16
PacoLinux joined
|
|||
moritz_ | aye, that too | 14:16 | |
jnthn | (or grep or soft...) | ||
*sort | |||
arnsholt | What's the correct way to get the length of an array in NQP? | 14:20 | |
jnthn | +@array | 14:21 | |
Will work fine. | 14:22 | ||
arnsholt | I'd forgotten that operator. Thanks! | ||
14:23
frzntoz left
|
|||
moritz_ is kinda growing fond of NQP | 14:23 | ||
arnsholt | Yeah, me too | 14:24 | |
It's head and shoulders above C for actually doing stuff | |||
moritz_ | with the tight PIR integration you have lots of built-ins | ||
the only thing that regularly bites me is that assignment is not implemented, but at least that has a helpful error message | 14:25 | ||
arnsholt | Yeah. It's easily fixed | 14:26 | |
Is there a better way than "if $arg" to detect if an optional parameter actually was passed? | 14:27 | ||
14:27
M_o_C left
|
|||
moritz_ | pir::defined or pir::defined_ip iirc | 14:28 | |
diakopter | jnthn: and by "won't", I mean "won't ever" | ||
jnthn | diakopter: I figured. :-) | ||
diakopter | (I hope you saw where I said (several times) that perlesque is not meant to be a Perl 6; it's meant to be an assembly/target language for other implementations) | ||
moritz_ | nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } | 14:29 | |
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)» | ||
arnsholt | Heehee. I can haz ASTs. | ||
moritz_ | nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f() | ||
p6eval | nqp: OUTPUT«no» | ||
moritz_ | nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f(0) | ||
p6eval | nqp: OUTPUT«yes» | ||
moritz_ | nqp: sub f($x?) { if pir::defined($x) { say("yes") } else { say("no") } }; f(1) | ||
p6eval | nqp: OUTPUT«yes» | ||
moritz_ | arnsholt: that also works with false but defined values | ||
arnsholt | moritz_: Yeah, that was the ticket | 14:31 | |
jaffa4 | sprixel: 1+1 | 14:32 | |
p6eval | sprixel 30371: OUTPUT«Can't locate sprixelCORE.pad in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at Cursor.pm line 291.» | ||
jaffa4 | sprixel: 1+1; | ||
p6eval | sprixel 30371: OUTPUT«Can't locate sprixelCORE.pad in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at Cursor.pm line 291.» | ||
pmichaud | afk, doctor's visit | ||
jaffa4 | perlesque: 1+1 | 14:34 | |
p6eval | perlesque: ( no output ) | ||
jaffa4 | perlesque: 1+1; | ||
p6eval | perlesque: ( no output ) | ||
jaffa4 | perlesque: xxxx | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
jaffa4 | perlesque: "string" | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | :) | ||
jaffa4 | perlesque: my $a-"string"; | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | as I said yesterday, it knows about only ints so far | ||
literals, that is | |||
jaffa4 | perlesque: my int $a-"string"; | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | no string literals; SIGH | ||
jaffa4 | perlesque: my int $a=3; | ||
p6eval | perlesque: ( no output ) | ||
moritz_ | std: my $a-"string"; | 14:35 | |
p6eval | std 30371: OUTPUT«ok 00:01 108m» | ||
diakopter | again, no string literals | ||
oh | |||
moritz_ | diakopter: yes, I just thought it might parse-fail in a declaration | 14:36 | |
rakudo: my $z-"string" | |||
p6eval | rakudo 862d42: ( no output ) | ||
jaffa4 | perlesque: my int $a=3; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«3» | ||
jaffa4 | perlesque: my int $a=3*3+`; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«parsefail» | ||
jaffa4 | perlesque: my int $a=3*3+1; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«9» | ||
diakopter | oh, the expression parser also doesn't yet support associativity, | 14:37 | |
so you have to use parens | |||
moritz_ | but it probably just parses it as (my $a)-"string" (rakudo and STD, that is) | ||
jaffa4 | perlesque: my int $a=(3*3)+1; System::Console.WriteLine($a); | ||
14:37
colomon joined
|
|||
p6eval | perlesque: OUTPUT«10» | 14:37 | |
diakopter | correct :) | ||
(it will always choose right-associative) | 14:38 | ||
jaffa4 | perlesque: my int $a=(3*3)+1; $a+=1; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«11» | ||
jaffa4 | perlesque: my int $a=(3*3)+1; $a*=99; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«990» | ||
diakopter | (I don't know whether to fix that or not.... like I said, it's meant to be a target/assembly language, but human readable as Perlish | ||
) | |||
CokeBot9000 | (defined) you can use // in NQP. | 14:40 | |
moritz_ | that's very useful too | 14:41 | |
CokeBot9000 | my $foo := $bar // $default; | ||
arnsholt | Good point as well | ||
14:45
uniejo left
|
|||
cognominal | is $a = Any the Perl 6 equivalent of undef $a ? | 14:49 | |
14:50
jferrero joined
|
|||
CokeBot9000 | perl6.vim doesn't deal with POD6 yet, does it? | 14:50 | |
mberends | cognominal: defined( $a ); | 14:51 | |
moritz_ | CokeBot9000: there's a variable for enabling POD hilighting, but it's probably still out of date | 14:52 | |
cognominal: undefine($a) | |||
cognominal: my Int $x = Any; will throw a type error | |||
cognominal | thx | 14:54 | |
arnsholt | CokeBot9000: It handles parts of it at least | ||
14:57
arthur-_ left
15:14
nihiliad joined
15:16
kensanata joined
15:17
justatheory joined
|
|||
cotto | cj, please take a look at the feedback on your gsoc proposal and post your thoughts on it. | 15:22 | |
15:31
jonasbn left
15:40
szabgabx left
15:42
pmurias joined
|
|||
TimToady | rakudo: my Int $x = Nil; say $x.WHAT | 15:42 | |
p6eval | rakudo 862d42: OUTPUT«Type check failed for assignmentcurrent instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)» | ||
TimToady | that's supposed to work too | ||
jnthn | TimToady: Why, btw? Is Nil a special case for assignmnet, or...? | 15:44 | |
Also, is then: sub foo() { return; }; my Int $x = foo(); # also OK? | 15:45 | ||
moritz_ | what value is Nil supposed to return in item context? | ||
s/return/be/ | |||
CokeBot9000 | Is there a way (NQP) to refer to a particular proto regex? I have a few places where I have <EXPR=.some_rule> , and I'd like to be able to refer to some_rule:sym<foo> . will that jfw? | 15:48 | |
er, /should/ | |||
arnsholt | CokeBot9000: I've tried the same, and I think the solution is to factor out the stuff you want | 15:49 | |
15:49
ignacio_ left
|
|||
CokeBot9000 | (it appears to not like the embedded <>) | 15:49 | |
jnthn | CokeBot9000: As far as I know, no, you can't do that (I think not in Perl 6, even, rather than it just being an NQP restriction). | 15:51 | |
CokeBot9000: Factor out to some rule and then have the proto call that. | |||
TimToady | the currently specced semantics of Nil are described at S02:2113 | 15:52 | |
arnsholt | What jnthn said | ||
I think it's the right way to do it too | |||
CokeBot9000 | Thanks. | 15:54 | |
cj | cotto: okay | ||
mathw | argh | 15:56 | |
there's still discussion about hyphens and underscores | |||
mathw sings happy songs | |||
moritz_ | bikeshedding never ends. | 15:58 | |
cj | cotto: sounds good to me. I don't know about the GSoC rules, but I'll look about. I've talked with fglock a few times about using his tools to target the DLR. I'll touch base with Microsoft before I write up a response on that thread. Thanks for reviewing. | ||
snarkyboojum | rakudo: say Nil.defined | 16:00 | |
p6eval | rakudo 862d42: OUTPUT«0» | ||
snarkyboojum | rakudo: say ().defined | ||
p6eval | rakudo 862d42: OUTPUT«0» | ||
CokeBot9000 | jnthn, arnsholt: that approached worked easily. Danke. | ||
snarkyboojum | alpha: say Nil.defined | ||
p6eval | alpha 30e0ed: OUTPUT«0» | 16:01 | |
16:06
arthur-_ joined
|
|||
TimToady | if we need to, we can make Nil a special that returns (), rather than just an alias | 16:13 | |
*special value | 16:15 | ||
like NaN etc. | |||
but I'd like to see how far we can get with () === Nil | 16:16 | ||
16:17
f00li5h joined
|
|||
TimToady | I suppose it could be argued that the assignment behavior of Nil is just a degenerate case of Nil triggering a default upon binding | 16:19 | |
pmurias | ruoso: i'm rewriting the main mildew executable to use Bread::Board (inversion of control framework) | ||
TimToady | but if foo(Nil,1,2,3) triggers the default of the first argument, then that's a good reason to distinguish Nil from () | 16:20 | |
alternately, we make foo((),1,2,3) mean the same thing, and require something else like foo([],1,2,3) to explicitly pass an empty array | 16:21 | ||
have to think about that some more | 16:22 | ||
16:25
envi^home left
|
|||
jnthn | TimToady: *nod* | 16:26 | |
TimToady: Yeah, it feels like a special case, but it's trying to work out where to put the specialness. :-) | |||
ruoso | pmurias, Bread::Board++ very ellegant | 16:34 | |
pmurias | it even has some docs now | 16:35 | |
jnthn has been using IOC stuff over in the .Net world. Can be very nice. :-) | 16:37 | ||
16:38
M_o_C joined
|
|||
ruoso | TimToady, re () === Nil... I think it's pretty reasonable to think in an empty parcel as a "value", just like 1 so () would just be a syntactical synonim for Nil | 16:38 | |
the same way as 1 === 1 should just work | 16:39 | ||
rakudo: say 1 === 1; | |||
p6eval | rakudo 862d42: OUTPUT«1» | ||
ruoso | rakudo: say () === (); | 16:40 | |
p6eval | rakudo 862d42: OUTPUT«0» | ||
ruoso | IMNSHO, the above should return true | 16:41 | |
frettled | That seems sensible3 to me. | ||
TimToady | do you think ($x) === ($x) should return true? | ||
ruoso | I know it looks a damn hard challenge | ||
but ideally, I would think so | 16:42 | ||
frettled | That depends on whether you can reliably know whether there are any side effects that can change one $x and not the other. | ||
TimToady | or is a Parcel an internal object representing a particular set of argumetns | ||
jnthn | In ($x) === ($x) there is no Parcel though? | ||
ruoso | the Parcel points just to the name '$x' | ||
how so? | |||
you have two parcels | |||
jnthn | &infix:<,> is what makes a Parcel afaik. | 16:43 | |
TimToady | okay, ($x,$y) === ($x,$y) | ||
jnthn | Otherwise parens just group | ||
OK, in that case I agree we have two Parcels. :-) | |||
ruoso | the two parcels are identical and are read-only, in concept | ||
TimToady | unless a Parcel is a value type | ||
jnthn | I'm not sure on the answer. Clearly the "same type" constraint wins. | ||
ruoso | TimToady, that's what I was trying to mean | ||
jnthn | But beyond that it's whether identity otherwise returns the same. | ||
If we give it a .WHICH that can do the right thing, I guess we're fine. | 16:44 | ||
TimToady | arguably, value typing of parcels is kinda necessary to do certain optimizations where you know the type id of any given parcel in advance, and can just compare the type id of the parcel with the previous dispatch | ||
well, maybe it's not necessary | |||
ruoso | the challenge is how to get unrelated identical parcels to return the same .WHICH | 16:45 | |
TimToady | I guess the type id optimization relies on the type id being a value, even if the parcel it describes isn't | ||
jnthn wonders if we can form a .WHICH based on the .WHICH-s of the things inside the parcel. | |||
TimToady | that is, my question is to what extent type inference depends on value semantics of argument lists | 16:46 | |
moritz_ | @things».WHICH.join('|') | ||
frettled | hmm | 16:47 | |
TimToady | I mean, value semantics of parcel | ||
16:48
lisppaste3 joined
|
|||
ruoso | TimToady, the link from the Parcel to the thing inside it is symbolic | 16:50 | |
($x, $y, $z) is a symbolic reference in the parcel | |||
so ($x, $y, $z) is the same parcel even if the value of the inner variables changed | |||
TimToady | depends on what you mean by symbolic | ||
but yes, your point stands with the definition you're using :) | 16:51 | ||
ruoso | I mean it doesn't yet apply any context on how it is getting the variable, so it's just a "this will get '$x' from the lexical scope $foo) | ||
even if the value inside $x changed, the Parcel is the same | |||
(this is a requirement for "is ref" in the signature anyway) | |||
16:52
pmurias_ joined
|
|||
TimToady | yes, but a different $x in a different scope makes a !=== parcel, is what I'm saying, and I believe you are also saying | 16:52 | |
16:52
pmurias left
|
|||
ruoso | sure sure | 16:52 | |
TimToady | so not *that* definition of symbolic | ||
ruoso | yeah... yeah... it's the "tied to current scope" type of symbolic | 16:53 | |
TimToady | ($::('x'), $::('y'), $::('z')) *might* be the same parcel, with constant folding | ||
but ($::($mumble)) has to be considered unknowable | 16:54 | ||
(unless $mumble is a constant) | |||
ruoso | the thing is that $::($mumble) is a bvalue per se, and in this case is a unique bvalue | ||
I mean, this kind of indirection is generated at run-time | 16:55 | ||
TimToady | by unique I presume you mean (1,$::($mumble)) !=== (1,$::($mumble)) | ||
ruoso | exactly | ||
TimToady | since the act of reading $mumble could even change the value of $mumble, in theory | 16:56 | |
ruoso | but that's the definition of $::($mumble) anyway | ||
TimToady | and why we have it :) | ||
jnthn looks nervously at that one | |||
TimToady | jnthn: it's no worse than |@args | 16:57 | |
ruoso | jnthn, the key is at "this kind of indirection is resolved at runtime" | ||
so the language runtime will return a different object everytime you use it | |||
TimToady | or you must assume it will, more accurately | 16:58 | |
jnthn | ruoso: Sure, I think we're just not quite *that* lazy enough in Rakudo to promise that the !=== will hold. | ||
That is, if the act of reading it changed the identity, sure it will. | |||
ruoso | jnthn, I think the answer is in the use of the bvalues | ||
the bvalue provides this kind of "symbolic-lazyness" | 16:59 | ||
which is already required to | |||
jnthn | That may be what I'm missing then. | ||
That is, this is really nothing to do with parcels. | |||
ruoso | rakudo: my %a; my $b := %a<b><c><d>; say keys %a; $b = 1; say keys %a; | ||
p6eval | rakudo 862d42: OUTPUT«Method 'postcircumfix:<{ }>' not found for invocant of class 'Proxy'current instr.: '!postcircumfix:<{ }>' pc 13944 (src/builtins/Code.pir:120)» | ||
ruoso | rakudo: my %a; my $b := %a<b>; say keys %a; $b = 1; say keys %a; | 17:00 | |
p6eval | rakudo 862d42: OUTPUT«:= binding of variables not yet implementedcurrent instr.: '&die' pc 17293 (src/builtins/Junction.pir:404)» | ||
ruoso | meh | ||
17:00
pmurias_ left
|
|||
ruoso | anyway | 17:00 | |
bvalue is needed to implement the above code | |||
17:00
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
jnthn | Hmm, OK. pmichaud++ seemed to have "how to do binding in Rakudo" in his head, so I probably need to try and work out what he had it mind at some point when he's time to explain it to me. | 17:01 | |
17:01
dakkar left
|
|||
ruoso can't remember if the term bvalue ever got into the spec | 17:02 | ||
jnthn doesn't recall seeing it. | |||
17:02
jferrero left
|
|||
ruoso | TimToady, do you think it's something spec'able? or is it just implementation specific? | 17:02 | |
jnthn 's $0.02 is that we let at least two implementations do it that way and then spec it. | 17:03 | ||
It feels like something that could be spec'able, but maybe a little early to commit. | |||
ruoso shares the feeling | |||
TimToady | bvalues feel a lot like WHENCH objects to me | ||
WHENCE* | 17:04 | ||
ruoso | they do, in fact.... | ||
TimToady | some1 thu a WRENCH into mai speeler | ||
I don't wish to objectify WHENCHes... :) | |||
ruoso | TimToady, but bvalues don't commit the type | 17:05 | |
as WHENCE objects do | |||
TimToady | they do commit to being bvalues, so they aren't just bare closures | ||
more like a Whatever.WHENCE | 17:06 | ||
ruoso | TimToady, hmm... they're probably much closer to a closure then to a concrete type, I think | 17:07 | |
TimToady | well, they feel like a WHENCE with an underspecified type, which might be a smell | ||
ruoso | or they just a different type of Mu | ||
cj | diakopter: I've got a meeting with my doctor in 30 minutes, but after than I can take a call. | ||
ruoso | that you never reach to directly (unless by specialized ops) | 17:08 | |
whenever you touch it, it realizes itself into the actual value | |||
TimToady | how does it know what type of value to realize? | ||
or is it just lazy {...} | |||
ruoso | it doesn't... it just has a pointer to somewhere | ||
and that somewhere knows | 17:09 | ||
the thing is that it only queries that somewhere when it needs to be realized | |||
TimToady | is it just "run this code if you need to"? | ||
ruoso | it's a "lazy lookup" | ||
TimToady | that's more or less what lazy {...} is specced to do | ||
except maybe with LFETCH or some such | 17:10 | ||
17:10
ignacio_ joined
|
|||
ruoso | it is pretty much the same as lazy {...} yes | 17:10 | |
but we probably don't want to expose it as a real closure | 17:11 | ||
TimToady | certainly not with a normal closure type, in any case | ||
ruoso | because it might be a bare-metal-low-level-thingy | ||
TimToady | there's some kind of proxy, and code you call to "rw" bind it | ||
ruoso points to hash bvalue in smop | 17:12 | ||
TimToady | if Foo{...} can allow the whence to return a different type than Foo, maybe Mu{...} works | ||
ruoso | the hash bvalue is simply a lazy lookup that stores the key to be queried and the actual hash... | 17:13 | |
TimToady | but that seems like a type-theory breakage | ||
ruoso | only if we consider that the type has to be eagerly evaluated | ||
justatheory | TimToady: Sometimes I wish you wouldn't type "theory" so much. | ||
TimToady | theory theory theory theory theory | ||
justatheory | Dammit | 17:14 | |
toady toady toady toady toady toady | |||
ruoso 's IRC only highlights with the full name | |||
17:15
supernovus joined
|
|||
TimToady 's too | 17:15 | ||
ruoso | TimToady, that reminds me of something in the hype nowadays "eventual consistency" | ||
it doesn't break the type theory because when it get's realized, it will be sane | |||
justatheory | "theory" is my full nick on other servers. | ||
TimToady | but with a nested hash lvalue, each WHENCE merely invokes its predecessor key, it doesn't know about higher-up keys | 17:16 | |
ruoso | it's just that while it doesn't ¿collapse?, everything is undecidable | ||
TimToady | so %x<a><b><c> = makes a .WHENCE.WHENCE.WHENCE | ||
ruoso | yes (but I still call bvalue bvalue bvalue ;) | ||
TimToady | I'd still rather assume those are typed, with a possible wildcard, than assume they are unknowablely typed from the start | 17:17 | |
the later is unoptmizable | |||
*t *i | |||
ruoso | maybe we shouldn't expose it at all | ||
and just commit that the runtime may evaluate the symbolic lookups lazyly | 17:18 | ||
TimToady | *must* | ||
or we create keys accidentally | |||
like other languages | |||
ruoso | yeah... better yet... | ||
TimToady | well, WHENCE is lazy enough for me, and typed enough | ||
ruoso thinks it's too typed | 17:19 | ||
TimToady | bvalue doesn't feel typed enough to me | ||
an untyped hash knows it is of type Any | |||
we've got *plenty* of generic types in Perl 6 | |||
ruoso | of course that if any type inference can be made, the bvalue could commit to that | 17:20 | |
or maybe even "should" | |||
but I'm getting convinced we'd better not expose bvalue to the language | |||
I mean... besides the language using it | 17:21 | ||
TimToady | I think lazy typed values are the answer, and that they're already specced | ||
and the language already hides those from mere mortals appropriately | 17:22 | ||
ruoso | indeed.. | 17:23 | |
ruoso .oO( it's always nice to reach the "the spec is already correct" state) | 17:24 | ||
17:24
ignacio_ left
|
|||
TimToady | the spec doesn't even require the Foo to be instantiable; it can be a role that can't stand on its own | 17:24 | |
ruoso .oO( we probably need to create a "implementation strategies" side-doc ) | 17:25 | ||
TimToady | though for a proxy, you probably want something instantiable in the context of the structure | ||
ruoso | TimToady, but that thing don't need to be able to handle high-level semantics... | ||
TimToady | well, as long as the WHENCE returns something that smartmatches the Foo, we're probably fine | 17:26 | |
ruoso | it can realize itself when that semantic is required | ||
TimToady | biab & | ||
ruoso think it's probably the time to create a second documentation structure that is oriented to the implementation aspects instead of the usage aspects | 17:27 | ||
supernovus | Any ideas when rakudo master will support use Module :ALL; again? Currently any use of import tagsets in a use dies with something like: Confused at line 3, near "use PSpec " | ||
17:29
isBEKaml joined
|
|||
jnthn | supernovus: Not sure, but I don't think it'll be a use amount of work - the export side, AFAIK, already works. | 17:32 | |
Just fixing up the parsing and import code. | |||
Maybe I can look at it later this week | |||
17:33
REPLeffect left
17:34
kensanata left
|
|||
pugssvn | r30372 | pmurias++ | [mildew] started rewriting the mildew script to use Bread::Board | 17:37 | |
r30372 | (untill read it's called bread) | |||
17:37
pmurias joined
17:39
muixirt joined
|
|||
pmurias | ruoso: re doc stucture, you mean specing all the tiny details which are only visible to the user in rare circumstances but are important to the implementors | 17:42 | |
17:45
ignacio_ joined
|
|||
supernovus | jnthn: thanks, Rakudo is certainly moving forward quickly. :-) | 17:46 | |
17:46
REPLeffect joined
|
|||
jnthn | supernovus: Yes, I hoped to have quite a lot of coding time this week but so far only succeeded at being ill. (other folks)++ are writing patches though. \o/ | 17:47 | |
ruoso | pmurias, even in a higher-level, implementation strategies, such as the representation polymorphism, which is a requirement for any Perl 6 implementation | ||
or the strategy for the Polymorphic Eval, with its alternatives to interoperate Perl 6 with other languages | 17:48 | ||
then other things like "Implicit Threading" and "Implicit Event-based programming" | |||
and this list goes with "Multi-routine Dispatch" | 17:49 | ||
"nextsame, callsame et al" | |||
diakopter | jnthn: finished loop (;;) well, non-nested anyway. that's easy to add. | 17:51 | |
jnthn | \o/ | ||
diakopter | perlesque: my int $a; loop ($a = 1000000; $a > 0; $a -= 1) { if (($a % 100000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a); | 17:52 | |
p6eval | perlesque: OUTPUT«10000009000008000007000006000005000004000003000002000001000000» | ||
diakopter | perlesque: my int $a; loop ($a = 10000000; $a > 0; $a -= 1) { if (($a % 1000000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a); | 17:53 | |
p6eval | perlesque: OUTPUT«100000009000000800000070000006000000500000040000003000000200000010000000» | ||
diakopter | perlesque: my int $a; loop ($a = 100000000; $a > 0; $a -= 1) { if (($a % 10000000) == 0) { System::Console.WriteLine($a) } }; System::Console.WriteLine($a); | ||
p6eval | perlesque: OUTPUT«1000000009000000080000000700000006000000050000000400000003000000020000000100000000» | ||
diakopter | slows down a tad on 100 million; about 2 seconds | 17:54 | |
17:57
Alias joined
|
|||
TimToady | implementing the native types first--now there's a concept... :) | 17:57 | |
ruoso | TimToady, understanding the actual meaning of native vs non-native types in Perl 6 was probably the most important realization I made during SMOP design | 17:58 | |
and that's the kind of thing that gets scattered in the current spec... | 18:00 | ||
18:02
hercynium left
|
|||
diakopter | ruoso: ditto | 18:03 | |
it's a very important concept | |||
also, Cool vs. Any is very important | 18:04 | ||
jnthn | I expect that the native types stuff will be one of the big topics for Rakudo after Rakudo *. | ||
jnthn is always kinda happy when @other-implementation has been there first :-) | 18:05 | ||
ruoso .oO( "Perl 6 Implementors Handbook" ) | |||
diakopter | "Implementing Perl 6" would be several volumes | 18:06 | |
several shelves it included the mailings lists and irclogs | |||
well, "Designing & Implementing Perl 6" | |||
[particle] | sigh, the lusty lady is closing. | 18:07 | |
'perlesque' reminded me of that | |||
diakopter | heh | ||
purlesque: die in a fire | 18:08 | ||
"HALP!" | |||
jnthn | ...can we spec *that*? :-) | 18:09 | |
pugssvn | r30373 | pmurias++ | [mildew] breads reads the source in properly | 18:10 | |
diakopter | oh, that's with every-single-operation-is-its-own-basic-block. in other words, with with some better basic block separations, it would be ... much faster. | 18:11 | |
since its storing $a there as a field in an object of a class representing the current frame | 18:12 | ||
(and with good analysis, the whole frame's routine can be detected as a single basic block) | 18:13 | ||
jnthn: here's the disassembly of what it emits for that: perlesque.pastebin.com/5y64kwtU | 18:14 | ||
I have no idea whence the unused locals. Silly Reflector. | 18:17 | ||
jnthn | heh, no wonder it's fast. | 18:18 | |
diakopter | but it could be a lot faster.... | ||
oh look, visual studio 2010 released. | 18:19 | ||
(and .net 4) | 18:20 | ||
jnthn | Yeah! | 18:23 | |
Think I have to wait until after Russia to play with that though. :-) | |||
diakopter | aww, the time-travelling debugger costs $6k extra per user. | ||
jnthn | Can you get one copy and go into the future to get a license, when it's cheaper? | ||
diakopter | heh | 18:24 | |
CokeBot9000 | jnthn: ... nothing is cheaper in the future. | ||
18:26
supernovus left
|
|||
pugssvn | r30374 | pmurias++ | [mildew] breads supports -B and -C | 18:44 | |
muixirt | ruoso: w.r.t. native types vs. non-native types can you elaborate on that? | 18:48 | |
jnthn: why are native type difficult to implement? | 18:52 | ||
jnthn | muixirt: Partly it depends on your target platform. Parrot doesn't let you have native types stored in the lexpads or as object attributes, which has made that tricky for Rakudo to do earlier on. | 18:56 | |
pugssvn | r30375 | pmurias++ | [mildew] bread supports -Cdesugar | ||
jnthn | I think Parrot probably will get around to adding support for that sometime after Rakudo *, but also Rakudo will start to target additional backends. | 18:58 | |
muixirt | additional backends? | ||
18:58
masak joined
|
|||
masak | ahoy, #perl6 | 18:58 | |
jnthn | lolitsmasak | ||
muixirt: As in, generate code for more than one platform. | 18:59 | ||
Anyway, my feeling is that at a user level, native types would be a nice to have rather than a blocker for a lot of Perl 6 users. I imagine a lot of people will write programs without a single type annotation in them, and that's fine. :-) | 19:00 | ||
So I'm not especially worried we didn't get there yet. | |||
I'm very keen that we do get there in the months after R * though. | 19:01 | ||
muixirt | hi masak, is your yapsi project a serious attempt? | ||
masak | muixirt: as far as I know, yes. | 19:02 | |
it got temporarily put on hold by the Temporal changes. | |||
but as soon as I find snarkyboojum, I think we'll give it another go :) | |||
muixirt | jnthn: which platforms (for the backends) | ||
masak: I ask because of that special day it started :-) | 19:03 | ||
diakopter votes for mono 2.6 & .net 2/3.5 | |||
masak | muixirt: that was deliberate. :) I'm almost disappointed that more people haven't asked that question :) | ||
jnthn | muixirt: Undecided yet. Rakudo * has quite enough Difficult Things for me to worry about right now. :-) | 19:04 | |
19:04
justatheory left
|
|||
muixirt | ok | 19:05 | |
diakopter | mono 2.4 SIGABRTs on perlesque's CIL, or else I'd want to use that, since ubuntu includes mono 2.4 | 19:06 | |
19:06
pmurias left
19:07
snarkyboojum left
|
|||
muixirt | jnthn: one use for native types in rakudo would be that someone could write a perl6 compiler that capitalizes on that ;-) | 19:12 | |
19:14
hercynium joined
19:15
sundar_ joined
|
|||
cj | diakopter: o/ | 19:15 | |
diakopter: someone put an IV needle in my tire while I was at the doctor's. good times. | |||
19:15
sundar_ is now known as sundar
|
|||
cj | diakopter: but I'm home nao. in case you still want to talk about stuff and things. | 19:16 | |
mberends | masak: I could not get DateTime.new() to MMD on an Str parameter, so I'm (temporarily) putting that in another constructor called parse() that reads an ISO8601 string | ||
cj | diakopter: we're bundling up 2.6 now, btw | ||
diakopter: we == the debian mono team | 19:17 | ||
masak | mberends: good, as long as there's a comment explaining that we want to converge on the spec but can't. ;) | ||
cj | diakopter: also, if you've got a bug report we might be able to back-port a fix | ||
diakopter | cj: yeah, try saving/loading a DynamicAssembly from a LightweightFunction that's also generated at runtime by Reflection.Emit | 19:21 | |
SIGABRT | |||
cj | diakopter: code? :) | ||
diakopter: if you can get me a simple repro, I'll manage getting it fixed | |||
diakopter | :) I'll email you the .exe | 19:22 | |
jnthn | mberends: Ugh, nasty bug. | ||
cj | no .cs? | ||
mberends | yes, jnthn? | ||
diakopter | cj; it wouldn't help you; it's all .. um... "unreadable" (as pmurias enjoys labeling my code) | 19:23 | |
19:23
tewk left
|
|||
cj | ... then it needs to be reduced, I'd think | 19:23 | |
jnthn | mberends: That new one, I meant. | ||
diakopter | cj: I mean, if you can read code-gen-gen (twice deferred fluent codegen) without several days of getting accustomed to it... :D | 19:24 | |
cj: it's not that it needs reduced; someone just needs to run it with a debugger attached and back up from there | 19:25 | ||
mberends | jnthn: I'll try to reduce the MMD to problem to a test case, if possible | ||
diakopter | it would take forever to redue it | ||
jnthn | mberends: Thanks. I'll see when I can look at it. | ||
diakopter | reduce it | ||
jnthn | mberends: Expected to have plenty of time this week, but it ain't worked out like that. | ||
mberends | jnthn: get well quickly | 19:26 | |
jnthn | mberends: Trying! :-) | ||
cj | diakopter: well, if you can give me the .cs and the .exe/.dll, it will be a start | 19:27 | |
I'll see if I can do the debugging and get something pretty put together for the mono folks | 19:28 | ||
mberends | rakudo: DateTime.now.ymd.say | ||
p6eval | rakudo 862d42: OUTPUT«2010-04-12» | ||
mberends | rakudo: DateTime.now.hms.say | ||
p6eval | rakudo 862d42: OUTPUT«19:13:26» | ||
mberends | rakudo: DateTime.now.say | 19:29 | |
p6eval | rakudo 862d42: OUTPUT«2010-04-12T19:13:36+0000» | ||
19:30
ash_ joined
|
|||
diakopter | cj: just checkout svn from csmeta.org, and xbuild Sprixel.sln | 19:30 | |
jnthn | rakudo: DateTime.hms.victory.say | 19:31 | |
p6eval | rakudo 862d42: OUTPUT«Type objects are abstract and have no attributes, but you tried to access current instr.: 'perl6;DateTime;hms' pc 500419 (src/gen/core.pir:0)» | ||
mberends | :-( back to the drawing board | ||
jnthn | Can't believe there's no HMS Victory. | 19:32 | |
;-) | |||
mberends | oh, it should be case sensitive too ;) | ||
jnthn | .oO( Clearly Perl 6 *has* missed the boat ;-) ) |
19:33 | |
19:35
borup left
|
|||
diakopter | mberends: vv | 19:35 | |
jnthn | rakudo: DateTime.now.hms.WHAT.say | ||
diakopter | rakudo: Str.^''() | ||
p6eval | rakudo 862d42: OUTPUT«Str()» | ||
rakudo 862d42: OUTPUT«too many positional arguments: 2 passed, 1 expectedcurrent instr.: 'perl6;Mu;' pc 2617 (src/builtins/Mu.pir:524)» | |||
diakopter | rakudo: say DateTime.^''() | ||
p6eval | rakudo 862d42: OUTPUT«too many positional arguments: 2 passed, 1 expectedcurrent instr.: 'parrot;P6protoobject;' pc 508709 (src/gen/core.pir:80340)» | ||
diakopter | DateTime missed the Mu? | 19:36 | |
19:36
sundar_ joined,
sundar_ left,
sundar left
|
|||
mberends | diakopter: DateTime does not inherit from anything. yet. | 19:37 | |
ash_ | .^''() is that a bug? what is that calling? | ||
phenny | ash_: 07 Apr 14:52Z <[particle]> tell ash_ wikipedia has plenty of direct links for C3 info: en.wikipedia.org/wiki/C3_linearization | ||
diakopter | mberends: maybe that's a problem? | ||
maybe other things are assuming it's a Mu | |||
or Any | |||
ash_ | rakudo: say DateTIme.^parents | 19:38 | |
p6eval | rakudo 862d42: OUTPUT«Could not find sub &DateTImecurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
ash_ | rakudo: say DateTime.^parents; | ||
p6eval | rakudo 862d42: OUTPUT«Any()Mu()» | ||
diakopter | okiedokieartichokie | ||
jnthn | Any is the thing you inherit from by default. | ||
ash_ | unless you explicitly inherit from Mu? (i assume...) | 19:39 | |
rakudo: class Foo is Mu { ... }; say Foo.^parents; | |||
p6eval | rakudo 862d42: OUTPUT«Any()Mu()» | ||
ash_ | hmm | 19:40 | |
is there a way to remove any? if you want a very bare minimum object for some reason? | |||
TimToady | rakudo: grammar Foo {...}; say Foo.^parents | ||
jnthn | That looks like a bug. | ||
p6eval | rakudo 862d42: OUTPUT«Any()Mu()» | ||
jnthn | So does that. | ||
rakudo: class Foo is Mu { ... }; say Foo ~~ Any | |||
masak | rawr! | ||
p6eval | rakudo 862d42: OUTPUT«1» | ||
masak submits rakudobug | 19:41 | ||
jnthn | rakudo: grammar Foo { ... }; say Foo ~~ Grammar | ||
p6eval | rakudo 862d42: OUTPUT«0» | ||
jnthn | ... | ||
Huh. | |||
TimToady | should inherit from Cursor | ||
jnthn | Cursor rather than Grammar? OK. | 19:42 | |
TimToady | well, under the STD model | ||
ash_ | rakudo: grammar Foo { ... }; say Foo.^parents; # so thats wrong? | ||
p6eval | rakudo 862d42: OUTPUT«Any()Mu()» | ||
ash_ | Cursor(), Any(), Mu() is the right answer? | ||
diakopter | rakudo: class Foo does Mu { ... }; say Foo.^roles; | 19:43 | |
p6eval | rakudo 862d42: OUTPUT«» | ||
jnthn | ash_: Sounds like it. | ||
19:43
clintongormley left
|
|||
ash_ | diakopter: shouldn't that be an error? Mu's an object, not a role... | 19:43 | |
jnthn | TimToady: OK, that's probably a decent model to follow. ;-) | ||
.^roles asks what roles it does. | |||
So it's fine. | |||
diakopter | ash_: I don't know; I just fuzz 'em | 19:44 | |
jnthn: a class is allowed to "does" a class? | |||
ash_ | that makes it seem like 'does' and 'is' are interchangable.. | ||
jnthn | diakopter: Not directly | 19:45 | |
Though there's a specuative "inverse pun" thingy. | |||
bkeeler | It should inherit from Grammar; that's where parsefile is defined | ||
diakopter | jnthn: so it's not correct, then | ||
class Foo does Mu | |||
19:45
stephenlb joined
|
|||
jnthn | Oh | 19:46 | |
Erm | |||
19:46
uniejo joined
|
|||
diakopter | rakudo: role Foo is Int { ... }; say Foo.^parents; # likewise | 19:46 | |
jnthn | rakudo: class Foo is Mu { }; say Foo ~~ Any | ||
p6eval | rakudo 862d42: OUTPUT«Any()Mu()» | ||
rakudo 862d42: OUTPUT«0» | |||
jnthn | heh | ||
If you put ... in there, it's a stub. | |||
So it appears, it never gets around to doing a whole lot with it... | |||
diakopter | oh | ||
jnthn | That is, never actually constructs a class. | 19:47 | |
19:47
M_o_C left
|
|||
diakopter | rakudo: role Foo is Int { }; say Foo.^parents; # likewise | 19:47 | |
you mean role | |||
p6eval | rakudo 862d42: OUTPUT«Int()» | ||
jnthn | It probably should whine at you if you stub but then don't actually declare later. | ||
role Foo is Int is fine. | |||
diakopter | std: role Foo is Int { }; say Foo.^parents; # likewise | ||
p6eval | std 30375: OUTPUT«ok 00:02 109m» | ||
diakopter | ok | ||
jnthn | Even has a clearly spec'd meaning. :-) | 19:48 | |
ash_ | rakudo: class Foo does Mu { } | ||
p6eval | rakudo 862d42: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''current instr.: 'perl6;ClassHOW;add_composable' pc 4099 (src/metamodel/ClassHOW.pir:186)» | ||
ash_ | boom goes the dynamite | ||
sstd: class Foo does Mu { } | |||
std: class Foo does Mu { } | 19:49 | ||
p6eval | std 30375: OUTPUT«ok 00:01 106m» | ||
diakopter | std: role ::Foo does ::Foo { } | ||
p6eval | std 30375: OUTPUT«ok 00:01 107m» | ||
19:49
justatheory joined,
masak left
|
|||
diakopter | .. in theory | 19:49 | |
ash_ | is that right? can you 'inverse pun'? | ||
justatheory | wha? | ||
bastard | |||
diakopter | inbred | 19:50 | |
19:50
masak joined,
masak left,
tewk joined
|
|||
ruoso | muixirt, the thing is not with the native types per se, but with the realization on how flexible the non-native types are | 19:50 | |
I don't know if that's implemented in rakudo but: | 19:51 | ||
rakudo: class A { method ACCEPTS { 1 } }: my A $a .= new; say $a ~~ Int | |||
p6eval | rakudo 862d42: OUTPUT«Confused at line 11, near "class A { "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
ruoso | rakudo: class A { method ACCEPTS { 1 } }; my A $a .= new; say $a ~~ Int | ||
p6eval | rakudo 862d42: OUTPUT«0» | 19:52 | |
ruoso | rakudo: class A { method ^does { 1 } }; my A $a .= new; say $a ~~ Int | ||
p6eval | rakudo 862d42: OUTPUT«0» | ||
ruoso | rakudo: class A does Int { }; my A $a .= new; say $a ~~ Int | ||
p6eval | rakudo 862d42: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''current instr.: 'perl6;ClassHOW;add_composable' pc 4099 (src/metamodel/ClassHOW.pir:186)» | ||
ash_ | rosuo s/does/is/ | 19:53 | |
ruoso | Int is a role | ||
not a class | |||
diakopter | orly | ||
ruoso | *it is supposed to be, at least | ||
every built-in type is just a Role | |||
of course they have cached punned classes | |||
ash_ | i thought it was an object... hmmm | ||
ruoso | a Role is an Object | ||
ash_ | well, class i mean | 19:54 | |
ruoso | nope, precisely because that would get the type checks very confuse | ||
rakudo: class A { }; say A.HOW.WHAT | 19:55 | ||
p6eval | rakudo 862d42: OUTPUT«A()» | ||
ruoso | rakudo: class A { }; say A.HOW.HOW | ||
p6eval | rakudo 862d42: OUTPUT«P6metaclass()» | ||
muixirt | ok ruoso | 19:56 | |
19:57
uniejo left
|
|||
muixirt makes a straight face as if he understood everything | 19:58 | ||
ruoso | muixirt, putting it simple... an Int is any object that says so | 20:00 | |
you can only trust it | |||
you cannot assume its internal structures | |||
20:00
masak joined
|
|||
ruoso | you can only use the API | 20:01 | |
masak | hm -- use.perl.org/~fglock/journal/40310 | ||
I don't see where the subs are called. | |||
ruoso | the only objects that have it's internal structures pre-defined are the native ones | ||
20:01
pyrimidine joined
|
|||
masak | pyrimidine: \o | 20:01 | |
pyrimidine | o/ | ||
ruoso | rakudo: class Meta is P6metaclass { }; my $a = Meta.new; $a.add_method('foo',sub { say 'Foo' }); my $b = $a.new; say $b.foo | 20:02 | |
cj | diakopter: bugzilla.novell.com/show_bug.cgi?id=595900 | ||
p6eval | rakudo 862d42: OUTPUT«Could not find sub &substrcurrent instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)» | ||
ruoso | õ.O | ||
jnthn, any idea on why that happens? | 20:03 | ||
masak | that error seems to happen when some other errors want to happen sometimes. | 20:04 | |
jnthn | Yes. | ||
ash_ | rakudo: class Meta is P6metaclass { }; | ||
p6eval | rakudo 862d42: OUTPUT«Could not find sub &substrcurrent instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)» | ||
ash_ | it happens after that | ||
so... it probably has to do with P6metaclass | |||
jnthn | Nope | ||
ash_ | (my guess) | ||
ruoso | rakudo: class Meta is P6metaclass { | ||
oops | |||
rakudo: class Meta is P6metaclass { } | |||
p6eval | rakudo 862d42: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | 20:05 | |
rakudo 862d42: OUTPUT«Could not find sub &substrcurrent instr.: 'perl6;Signature;_block21845' pc 490150 (src/gen/core.pir:73836)» | |||
ruoso | oops (just noticed ash_ have just tried the same thing) | ||
jnthn | Issue in the changes to run the program in the lexical scope of the setting. | ||
Some fail that I think the test suite didn't quite get or something. | |||
masak | we had a no-such-trait bug the other day like that. | ||
ash_ | ah | ||
jnthn | I had a partial patch towards fixing that up. | ||
Unfortunately, I've completely forgotten what blocked me on it. | 20:06 | ||
masak | will Perl 6 have explicit support for the Singularity somehow? | ||
if it's to be a 20-year language, I guess it has to... | |||
[particle] | the singularity is perl 6 | 20:07 | |
20:07
hudnix joined
|
|||
masak | [particle]: oh, ok. | 20:08 | |
[particle]: is that spec'd somewhere? | |||
[particle] | yes, in S42. | 20:09 | |
20:10
REPLeffect left,
Teratogen joined
|
|||
Teratogen | when will there be a definitive version of Perl 6? | 20:11 | |
because we need it | |||
ruoso | jnthn, which methods can I call on P6metaclass ? | 20:12 | |
20:14
masak left
|
|||
jnthn | ruoso: You probably don't want to touch P6metaclass, but rather work with ClassHOW. | 20:14 | |
ruoso | hmm... | ||
jnthn | In theory P6metaclass knows about add_method, add_parent etc. | ||
justatheory | hrm? | 20:15 | |
jnthn | In practice ClassHOW gets the interface righter. | ||
justatheory | oh, n/m | ||
jnthn | justatheory: Sorry! | ||
justatheory | np | ||
I didn't see the "in" there | |||
moritz_ back, after *very* delicate nom | 20:17 | ||
ruoso | rakudo: class Meta is ClassHOW { method does { 1 } }; my $type = Meta.new(); say $type ~~ Int; | 20:18 | |
p6eval | rakudo 862d42: OUTPUT«0» | ||
ruoso | In theory, the above should have returned 1 | 20:19 | |
# hides | |||
justatheory | heh | ||
ruoso | jnthn, do we agree that it should've returned 1? | 20:20 | |
rakudo: class Meta is ClassHOW { method does { 1 } }; my $type = Meta.new(); $type.^add_method('foo',sub {'Foo'}); say $type ~~ Int; say $type.foo; | 20:24 | ||
p6eval | rakudo 862d42: OUTPUT«0Method 'foo' not found for invocant of class 'ClassToBe'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
ruoso | it seems meta-rakudo is NYI | ||
or maybe I'm just doing anything wrong | |||
moritz_ | ruoso: writable meta-rakudo is NYI - introspection does work pretty well | 20:25 | |
ruoso: uhm, you can't add a sub as a method | |||
ruoso | why? | 20:26 | |
moritz_ | because a sub is not a method | ||
and you try to call it as a method, afaict | |||
(and if it worked with a sub, it should take at least one positional param) | 20:27 | ||
jnthn | ruoso: (agree on 1) I'm not at all sure, but I'm still too tired and brain-busted from being ill to really think about anything hard. | ||
moritz_: No, it'll be fine to add, but it'll fail on the call. | |||
For the reason you stated - no invocant taken. | |||
ruoso: My first intution is "maybe not" though. | 20:28 | ||
20:28
synth13204234234 joined
|
|||
jnthn | Ask me again some other time. :-) | 20:28 | |
ruoso | heh... ok | ||
dalek | kudo: 9e39ecb | (Martin Berends)++ | src/core/Temporal.pm: [core/Temporal.pm] change '_' in identifiers to '-' as per spec change about to be written by masak++, and add a parse(StrISO8601) method |
||
20:29
REPLeffect joined
|
|||
pugssvn | r30376 | mberends++ | [Temporal.t] change '_' to '-' in names as per masak++'s future spec change, add 2 more tests | 20:29 | |
PerlJam | dashes++ | 20:31 | |
moritz_ | masak++ | 20:33 | |
20:35
elmex joined
|
|||
mathw | hyphens++ | 20:40 | |
something about them | |||
when you start using them | |||
it's hard to stop when coding in C++ | |||
ash_ | mathw: just overload - a lot :P | 20:42 | |
mathw | umm | ||
how about | 20:43 | ||
NO | |||
diakopter | lol | ||
20:43
REPLeffect left
|
|||
mathw | I'm already corrupted enough with C++ | 20:45 | |
I can't even write a simple HTML-generating library without using the CRTP | |||
jnthn | Yes, but have you currupted C++ enough? ;-) | ||
diakopter | cj: thanks | ||
mathw | jnthn: I'm not trying to corrupt C++, I'm trying to corrupt my colleagues | 20:46 | |
20:46
pmurias joined
|
|||
mathw | Actually I've been asked by my university to go and talk to the second-year group project teams about life after graduation | 20:46 | |
So maybe I can corrupt them, too | |||
I will have to mention Perl 6, of course | 20:47 | ||
pugssvn | r30377 | moritz++ | [t/spec] fudge S05-metasyntax/unknown.t for rakudo; correct a test | ||
r30378 | moritz++ | [t/spec] fudge context.t for rakudo | |||
pmurias | mathw: "in real life when trying to avoid work we usually hang out in the #perl6 channel" ;) | 20:49 | |
mathw | maybe I won't mention that bit :) | ||
jnthn | Huh? I've found hanging out here gives me *more* work. :-P | ||
mathw | and I can't blow too much trumpet as I don't actually *do* very much here | 20:50 | |
20:50
synth13204234234 left
|
|||
IllvilJa | pmurias: you made me realize I should close this chat window ASAP... :-) | 20:50 | |
20:50
synth13204234234 joined
|
|||
IllvilJa heads back to my humble coding at work... | 20:51 | ||
20:51
synth13204234234 is now known as synth
|
|||
dalek | kudo: b9aaa31 | moritz++ | t/spectest.data: two more passing test files |
20:52 | |
moritz_ thinks that people using CTCP ACTIONs should be forced to finish their sentences in the third person singular :-) | |||
pugssvn | r30379 | pmurias++ | [mildew] add a bit of pod to Mildew::Backend::Desugar | ||
colomon | \o/ | 20:53 | |
TimToady are of two minds about that. | |||
20:54
ruoso left
|
|||
mathw applauds TimToady's subject-verb agreement there | 20:54 | ||
TimToady | We are frequently amused, and occasionally amusing. | 20:55 | |
diakopter fails to think of a witty use of the royal we | |||
oh. | |||
Teratogen | Look, just answer me this one question. Will a definitive version of Perl 6 be out by this Christmas? | 20:56 | |
cj | diakopter: glad I could help. I'll keep you updated if we get a response from the mono team | ||
PerlJam | What's definitive? | ||
mathw | Rakudo * will be | ||
diakopter | cj: I joined the ticket | ||
cj | diakopter: well then. I'll let you monitor it yerself! ;) | ||
TimToady | Teratogen: it'll be outer this Christmas than last Christmas... | 20:57 | |
Teratogen | hey PerlJam | 20:58 | |
long time, no ascii | |||
21:01
REPLeffect joined
|
|||
cj | TimToady: "more outer"? | 21:03 | |
Teratogen | I would say that "definitive" means a version of Perl 6 that is ready for production use by the computing industry | ||
[particle] | teratogen: the answer is no. or yes. nobody here happens to know. | 21:04 | |
PerlJam | Teratogen: so ... if i happen to be using rakudo in production before christmas, does that count? | 21:05 | |
cj | ooh! I've gotten pretty good at telling the future... but usually I have to wait 'till after it happens... | ||
moritz_ | PerlJam: only if you are (in) the computing industry, whatever that may be | ||
mathw | goodnight everyone o/ | 21:06 | |
[particle] | cj: tell the future whatever you want, it doesn't listen to lessons from the past. | ||
cj | [particle]: are you sure? | ||
[particle] | why do i keep repeating mistkaes? | ||
PerlJam | [particle]: because you don't recognize them in time. | 21:07 | |
moritz_ | [particle]: because you learn by repetition | ||
Teratogen | so is any company doing production work/projects with Perl 6 yet? | ||
21:08
wknight8111 joined
|
|||
TimToady | Teratogen: you keep asking for yes/no answers to questions in fuzzy set logic... | 21:08 | |
Teratogen | I guess what I am trying to say is that we really need to get Perl 6 out the door | 21:09 | |
we are losing credibility =/ | |||
moritz_ | Teratogen: you are, not we | ||
[particle] | who's we? | ||
TimToady | nobody wants that more than the people working on it. | ||
cj | Teratogen: I think you need coffee cups to make statements like that | 21:10 | |
21:10
thowe joined
|
|||
CokeBot9000 | moritz_: "I know you are, but what am I?" ? | 21:10 | |
PerlJam | CokeBot9000: well ... who is "we"? (Have you seen Teratogen contribute to Perl 6?) | 21:11 | |
[particle] | there aren't enough people writing tests, using current releases of perl 6 versions, reviewing the perl 6 specs, implementing the compilers, writing books, or donating money to the cause. | ||
BinGOs | in other news perl-5.12.0 is close to release. | ||
[particle] | or, there are enough people, and it takes more time than you want. | ||
Teratogen | just get something out the door | ||
please | |||
thank you | |||
that is all | |||
=) | |||
TimToady | we are much more interested in integrity than credibility | 21:12 | |
[particle] | every month, there is a release of the rakudo perl 6 compiler | ||
cognominal | TimRoady++ | ||
[particle] | there has been for a long time. | ||
teratogen: why wait? try rakudo now. see if it meets your needs. learn. play. help. | 21:13 | ||
diakopter | by "something", I assume Teratogen means "something with 'stability' [as pm uses the term]" | 21:14 | |
[particle] | i wouldn't trust any perl 6 1.0 release to be stable | 21:15 | |
look what happened to smartmatch in perl 5.10.0 and 5.10.1 | |||
or binary compat in the 5.8 series | |||
continuous improvement is more important than arbitrary version numbers | 21:16 | ||
diakopter | that said, they're not merely arbitrary in connotation | ||
Teratogen | I guess Perl 6 will never get picked up and adopted the way the original Perl was | 21:17 | |
those days are over | |||
[particle] | perl 6 solves different problems than perl 5. we won't be porting matt's script archive to perl 6. | 21:18 | |
PerlJam | Teratogen: How do you think the "original Perl" was picked up and adopted? | ||
TimToady | Perl 1 invented its own ecological niche, which now has many competitors. Perl 6 is inventing its own new ecological niche. | ||
21:19
chromatic joined
|
|||
chromatic | You are all having a very silly discussion and I want in. | 21:19 | |
Teratogen | someone has to put their foot down and say "listen, we have to get a version of Perl 6 OUT THE DOOR" | 21:20 | |
japhb | A friend of mine was asking about the ability of Perl 6 for to recognize the arity of its block and feed the proper number of elements, and couldn't remember what it was called (a "succinct feature name" I believe he was looking for), and I drew a blank. Does that feature *have* a simple name? | ||
cognominal | Teratogen, that what rakudo stat is about | ||
chromatic | Point one: "in production" is a meaningless term. | ||
Point two: "out the door" is a meaningless term. | |||
TimToady | Teratogen: the correct place to put one's foot down is the accelerator pedal, which is what we're doing. | ||
japhb | Vroom Vroom | ||
chromatic | Point three: "stability" is nearly a meaningless term. | 21:21 | |
mberends | Teratogen: no, *those* days are over | ||
cognominal | there is a roadmap saying, we want that and that to say that a release is rakudo star. | ||
[particle] | some days, "is" is a meaningless term | 21:22 | |
PerlJam | besides ... telling people who are already working on something to hurry up is rarely productive. | ||
thowe | I feel I missed something before coming here that is fundamental to understading this conversation. | ||
[particle] | we won't stop innovating to release something that's incomplete | ||
we'll release incomplete things that get better as we keep innovating | |||
chromatic | We won't stop releasing to release something that's... well, I don't know how to finish this sentence. | ||
thowe | Oh. I think I'm up to speed now. | 21:23 | |
PerlJam | thowe: how fast are you going? | ||
Teratogen | so, a definitive version of Perl 6 will never be released, is that what you are telling me? | 21:24 | |
thowe gives all the perl6 devs a hug. | |||
japhb | I get the feeling I asked my question when there was too much being discussed .... | ||
cognominal | Teratogen, there has never been a definitive version of Perl 5. | 21:25 | |
21:25
hudnix left
|
|||
PerlJam | Teratogen: as soon as there's a definitive Perl 5 release. | 21:25 | |
cognominal | it keeps evolving | ||
japhb | Teratogen, there is no such thing as "a definitive version" of any computer software. That is for static media, and usually the term is abused even then | ||
21:25
diakopter joined
|
|||
cognominal | ...but suffers of massive ossification | 21:25 | |
japhb | "What seems to be the problem, Ossifer?" | ||
[particle] | Teratogen: perl 6 is a spec. there is currently more than one implementation, all in various states of lsl'definitiveness | ||
thowe | Teratogen, it seems you are being deliberately provocative. It serves no purpose. Have a beer and play with Rakudo. | 21:26 | |
[particle] | er, keyboard changed mappings mid-word there... non-definitiveness. | ||
thowe rubs Teratogen's shoulders | |||
it's OK. | |||
Teratogen | ok ok, I am just egging you guys on | ||
it's all in good fun =) | |||
PerlJam | It's all Jon Orwant's fault. | ||
TimToady mugs for the camera. | 21:27 | ||
PerlJam | Ever since he threw that cup people have thought that's all they need to do to "contribute" | ||
Teratogen | who wants to see pics of me and Randal Schwartz having lunch at H@@TERS? | ||
chromatic | It's hard to break one of those mugs. | ||
thowe | Nobody ever thinks about the janitorial staf... | ||
chromatic | Or the dents in the door. | ||
TimToady | Jon had to throw three or four before one broke. | 21:28 | |
[particle] | that door sounds like an auction item | ||
PerlJam | "I'm going to catalyst the Perl 6 devs by telling them to hurry up" | ||
er, catalyze | |||
cj | chromatic: :) | ||
japhb | I want mugs that strong. Maybe then my kids wouldn't constantly grab stuff off the counters and break it on the floor. | ||
chromatic | They only bounced off the floor when I tried. | 21:29 | |
TimToady | We want our mugs to have integrity, not credibility... :) | ||
[particle] | :) | ||
diakopter | nor smugness | ||
thowe | Doesn't credibility tend to result from integrity? | ||
TimToady | thowe: got it in one | ||
PerlJam | except that it's a function of time and people are impatient :) | 21:30 | |
If only we could get Chuck Norris hacking on Perl 6 ... | 21:31 | ||
diakopter | my people are dying, Senator | ||
thowe | some people are. I'm entertained and inspired by observing the process ATM. | ||
chromatic | People who aren't impatient to have noticed any of 27 previous releases aren't impatient enough for my taste. | ||
TimToady senses a disturbance in the farce... | |||
PerlJam | Immortals like TimToady are *too* patient for mere mortals. | 21:32 | |
m6locks | the farce is strong in this one | ||
diakopter | I didn't know parrots could harbor mitochlorians | 21:33 | |
TimToady | .oO(we made that run in under six parcels!!!) |
||
diakopter | that's no mono, that's a rakudo star. | 21:34 | |
er, space station. | |||
whatevs | |||
21:35
bacek joined
|
|||
bacek | o hai | 21:35 | |
seen jnthn | |||
diakopter | the ground flows with the blood of the !seen bots, which Ceiling Cat's Kitten slew in righteous judgment. | 21:36 | |
jnthn was around earlier today | |||
chromatic | Is anyone else around who understands the C of the binder? | 21:37 | |
We'll make Rakudo run faster if so. | 21:39 | ||
Offer valid today only. | |||
spinclad | i think that's mostly jnthn who's ailing today, but i've seen some others hit it with patches that seemed to work | ||
diakopter | I hate mail in rebates, tho | ||
jnthn | chromatic: I understand it most of the time... | ||
chromatic: Today I'm recovering from an ill and preparing to fly to Russia... :-/ | |||
cj | diakopter: I parsed that 'in' as a preposition | 21:40 | |
jnthn | chromatic: I can answer you something quickly. | ||
PerlJam | the only people who've touched the binder are chromatic, jnthn, and pmichaud | ||
jnthn | chromatic: But need sleep soonish. | ||
bacek cast dreams of immutable strings to jnthn | |||
chromatic | Tomorrow might be better then. We're not in a rush to merge, and it's likely a debugging session away. | 21:41 | |
jnthn | chromatic: OK, then that's probably more sensible. | ||
spinclad | jnthn: you fly today? | ||
jnthn | spinclad: Depends how you define today. | ||
In my timezone it's still tomorrow :-) | |||
In Moscow timezone it's today though. ;-) | 21:42 | ||
bacek | jnthn, don't drink too much warm vodka! | 21:43 | |
Better to freeze it before :) | 21:44 | ||
jnthn | bacek: Stricly vhilled vodka only! | ||
uh, chilled | |||
bacek | jnthn, счастливо долететь :) | 21:45 | |
jnthn | bacek: Спасибо! :-) | 21:46 | |
OK, bed. Night o/ | 21:48 | ||
21:57
iblechbot left
22:00
ignacio_ left
22:01
SmokeMachine left
22:07
justatheory left
22:08
kensanata joined,
payload joined
22:09
hanekomu joined
|
|||
diakopter | perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine($a) }; System::Console.WriteLine($a); foo(); System::Console.WriteLine($a); | 22:09 | |
p6eval | perlesque: OUTPUT«454» | ||
22:16
hanekomu left
22:21
hanekomu joined
22:25
snarkyboojum joined,
justatheory joined
22:26
TiMBuS joined
|
|||
cj | diakopter: is that doing what I think it's doing? | 22:26 | |
22:27
justatheory left
22:28
pyrimidine left,
nihiliad left
|
|||
muixirt | perlesque? | 22:32 | |
perl6: say "list of implementations" | 22:33 | ||
p6eval | elf 30379, pugs, rakudo b9aaa3: OUTPUT«list of implementations» | ||
diakopter | perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { (); }; | 22:34 | |
p6eval | perlesque: OUTPUT«parsefail» | ||
diakopter | perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); }; | ||
p6eval | perlesque: ( no output ) | ||
diakopter | cj: yeah it's invoking perlesque with that input | ||
cj | fancy | 22:35 | |
diakopter | perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); }; | ||
p6eval | perlesque: ( no output ) | ||
diakopter | perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); }; | ||
p6eval | perlesque: ( no output ) | ||
diakopter | hm | ||
perlesque: my int $a = 4; sub foo() { my int $a = 5; System::Console.WriteLine(4) }; sub bar() { foo(); }; bar() | |||
p6eval | perlesque: OUTPUT«4» | ||
diakopter | duh | ||
cj | I was thinking that looked okay ;) | ||
diakopter | 15-second full rebuilds are nice. /me looks at some others | 22:36 | |
ok, ok, it won't be sub-minute forever. | |||
diakopter tackles parameters & arguments | 22:37 | ||
(the infrastructure's already in place) | |||
just have to wire up the grammar & the emitter | 22:38 | ||
ash_ | what is perlesque? | ||
cj | ash_: o/ | ||
it's diakopter's .net perl6 implementation | 22:39 | ||
diakopter | no. | ||
it's not. | |||
cj | no? | ||
diakopter | for the nth time. | ||
cj ducks | |||
22:39
REPLeffect left
|
|||
diakopter | it's a very small subset of some mishmash of perl5 & perl6, that's fully strongly-typed at the CLR level, and provides classes, structs, closures, continuations/coroutines, and compiler services from the sprixel compiler platform. | 22:40 | |
ash_ | how far is it from nqp? | 22:41 | |
diakopter | it aims to provide an ultra-efficient target/assembly language for which Perl 6 implementation authors can write emitters from their front-ends | ||
muixirt | url? | ||
diakopter | csmeta.org | 22:42 | |
the sprixel engine is part of the csmeta compiler-as-a-service-ish thingy. | 22:43 | ||
22:43
justatheory joined
|
|||
pmurias | diakopter: so it's something mildew could target? | 22:43 | |
diakopter | yes, absolutely | ||
basically it's C# with a perlish veneer, but with nifty metaprogramming features factored in | |||
it has its own grammar engine that's probably 50% of nqp-rx's (maybe more) | 22:44 | ||
ash_ | cool | 22:45 | |
diakopter | but that probably won't be upgraded much more at all | ||
ash_ | if it was nqp-rx compatable, it would be even more motivation for rakudo to support multiple back-ends | ||
diakopter | since I want STD to compile itself to perlesque | ||
22:47
REPLeffect joined
|
|||
diakopter | all of the code in it is MIT-/BSD-/MSPL- licensed; please feel free to improve it to nqp-rx compatibility | 22:47 | |
.. but I have my eyes set on STD itself for the time being | |||
basically I want to implement enough of [a strongly-typed subset of] Perl 5 to which STD can compile itself through "viv" | 22:48 | ||
pmurias | ash_: i'm not sure that compiling Perl 6 down to nqp is a good idea | 22:49 | |
ash_ | not completely, but a lot of it can be expressed in nqp terms | ||
there are a lot of places where pir could be changed to nqp, i think | |||
then you'd have a core set of things you'd have to re-implement in whatever your nqp sat on top of but that would make the first hurdle for porting rakudo to a new backend implementing nqp | 22:51 | ||
like, for instance, the src/builtins/ folder, all of those files are written in .pir, but i think a number of parts of those could be re-done in nqp, probably, but maybe not, there might be another reason they are like that | 22:56 | ||
CokeBot9000++ did tcl in pir first, and is working on a refactor of it that uses nqp for nearly everything, most of it works fine as nqp, with the occasional pir::* ops, which is an example of what i mean | 22:58 | ||
22:59
hercynium left
23:01
payload left
23:03
mberends left
23:08
rgrau left
23:09
orafu left,
orafu joined
|
|||
diakopter | pmurias: what is Bread? | 23:18 | |
pmurias | the current name of the rewrite of the mildew script | 23:20 | |
diakopter | oh | ||
pmurias | it uses Bread::Board | ||
diakopter | why the rewrite? | ||
pmurias | the script evolved into a spagetti so i'm refactoring it into a bunch of classes | 23:21 | |
diakopter | oh | ||
:) | |||
lue | hello! | 23:22 | |
diakopter | spaghetti is good if you have a fork. just fingers? not so good. | ||
:) | |||
23:22
ash_ left
|
|||
lue | .oO(Spaghetti ought to be best with a spork) |
23:23 | |
23:24
cdarroch left
|
|||
lue | anything earth-shattering happen today? :) | 23:28 | |
diakopter | you can backlog :P | ||
just search for "earth-shattering" on the webpage | |||
diakopter is liking how vs2010 rc & .net4 rc uninstalled without asking for a restart, and now the non-rc ones are installing without asking for a restart (yet). | 23:30 | ||
lue | jnthn --unjinx --target="ALL" # you're welcome | 23:31 | |
23:34
pausenclown joined
|
|||
pausenclown | given a somwhat functional xml parser, what would u consider more important. parsed entities, xpath access or easy access a la xml::simple? | 23:36 | |
23:37
chromatic left
|
|||
diakopter | xpath | 23:37 | |
kidding. | |||
xml::simple | |||
pmurias shouldn't have stayed up late chasing down a bug with ast caching... | 23:38 | ||
pausenclown | reminds me of that grammar question i got. | 23:39 | |
lue | Is there any easy way to do ±, other than running a varied equation multiple times? | ||
23:40
hanekomu left
|
|||
pausenclown | can i make a grammar to read (lazily) from a filehandle and will the grammar engine suppot twigs? | 23:40 | |
23:40
hanekomu joined
|
|||
pausenclown | lue: [+|-] 1,2; | 23:42 | |
# 1, -1, 2, -2 | |||
23:43
payload joined,
mariano joined
|
|||
lue | rakudo: say 3 [+|-] 2 | 23:43 | |
p6eval | rakudo b9aaa3: OUTPUT«Confused at line 11, near "say 3 [+|-"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue | rakudo: say [+|-] 3,2 | 23:44 | |
p6eval | rakudo b9aaa3: OUTPUT«Confused at line 11, near "say [+|-] "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue | rakudo: say (+|-) 3,2 | ||
p6eval | rakudo b9aaa3: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
23:44
payload left,
payload1 joined
|
|||
lue | is [+|-] supposed to work? | 23:44 | |
pausenclown | hah! he bit it =) | ||
sorry, i was kidding. | 23:45 | ||
lue | :( (that should be implemented though) | ||
pausenclown | well, i made it up. but i wouldnt have been surprised if it actually worked :) | 23:46 | |
or at leased spec'ced | |||
lue | rakudo: say 3 ± 2 | 23:47 | |
p6eval | rakudo b9aaa3: OUTPUT«Confused at line 11, near "say 3 \x{b1} 2"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue | std: say 3 ± 2 | ||
p6eval | std 30379: OUTPUT«===SORRY!===Confused at /tmp/vb45ra8vn3 line 1:------> say 3 ⏏± 2 expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED 00:01 109m» | ||
pausenclown | what do want ± to do? | 23:48 | |
23:48
hanekomu left
|
|||
thowe | Is there a Perl6 code style guide? I have ways that I code in Ruby based on what the community seems to do. Same for QT4. For C it's KNF.. If there a style that the cool people follow? | 23:49 | |
er s/If/Is/ | |||
lue | rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say 3 ± 2 | ||
p6eval | rakudo b9aaa3: OUTPUT«all(5, 1)» | ||
lue | thowe: not that I'm aware of. | ||
rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say -4 ± sqrt(16+4) | 23:50 | ||
pausenclown | ive been told the conventional perl5 styles apply | ||
p6eval | rakudo b9aaa3: OUTPUT«all(0.47213595499958, -8.47213595499958)» | ||
diakopter | thowe: you *are* the cool people if you're even coding it. | ||
thowe | pausenclown, are those formally or informally defined someplace? | ||
diakopter | so, it's your style. | ||
pausenclown | CamelCase for classnames and un_der_score for everzthing else | 23:51 | |
thowe | diakopter, No, I'm a perpetual wannabe... | 23:52 | |
diakopter | me2 | ||
thowe | pausenclown, what about tabs? I really hate using tabs for indenting... | ||
pausenclown | i use 4 spaces | ||
lue | I carryover from Python and use 4 spaces :) | ||
pausenclown | abd editor set to replace tab with space | 23:53 | |
diakopter | 4 spaces here | ||
pausenclown | s | ||
thowe | That's what I do for C++ so that would be pretty natural. For Ruby I use 2 spaces. | ||
lue | ( If you must use tabs, a width of 4 is recommended :) ) | ||
diakopter | heh | ||
thowe | tabs are evil. I'm constantly fixing the PHP code of the assclowns here. | ||
Biggest problem is they are often loss when cutting and pasting | |||
lue | rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say (-8±sqrt(64-60))/2 ~~ (-5&-3) | 23:54 | |
p6eval | rakudo b9aaa3: OUTPUT«0» | ||
lue | rakudo: multi sub infix:<±>($a, $b) { ($a+$b&$a-$b); }; say (-8±sqrt(64-60))/2 | ||
p6eval | rakudo b9aaa3: OUTPUT«all(-3, -5)» | ||
lue | say (-5&-3).WHAT | ||
pausenclown | thowe: manually? | ||
lue | rakudo: say (-5&-3).WHAT | ||
p6eval | rakudo b9aaa3: OUTPUT«Junction()» | ||
lue | .oO(since when does (-5&-3) not equal (-3&-5)? Is this supposed to happen?) |
23:55 | |
thowe | pausenclown, depends. Sometimes. Not a whole file. Don't have that kind of time on my hands. | ||
I was really just asking because if I create some sample code for myself or work, I want it to match "convention" if there is such a thing. | 23:56 | ||
23:57
payload1 left
|
|||
lue | The only convention I'm aware of is readability ( even then it might not be a convention ;) ) | 23:57 | |
pausenclown | rakudo; my @a = 1, 2, 3; say @a[1..Inf] | 23:58 | |
23:58
pmurias left
|
|||
spinclad | .u Р | 23:58 | |
phenny | U+0420 CYRILLIC CAPITAL LETTER ER (Р) | ||
spinclad | .u Ρ | ||
phenny | U+03A1 GREEK CAPITAL LETTER RHO (Ρ) | ||
colomon | moritz_++: errr... you've got perlcabal.org updating now, but it is still about 700 revisions behind HEAD. | ||
thowe | I'm a big fan of putting my open and closing curlies in the same column. | ||
In C++ anyway... | 23:59 |