»ö« | 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«1␤1␤1␤2␤3␤5␤8␤13␤21␤34␤55␤89␤»
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::Console␤current 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 written␤at 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 written␤at 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 failed␤FAILED 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 &DateTime␤current 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 invoke␤current 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 1␤current 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 assignment␤current 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 implemented␤current 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«1000000␤900000␤800000␤700000␤600000␤500000␤400000␤300000␤200000␤100000␤0␤»
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«10000000␤9000000␤8000000␤7000000␤6000000␤5000000␤4000000␤3000000␤2000000␤1000000␤0␤»
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«100000000␤90000000␤80000000␤70000000␤60000000␤50000000␤40000000␤30000000␤20000000␤10000000␤0␤»
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 expected␤current 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 expected␤current 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 &DateTIme␤current 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 &substr␤current 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 &substr␤current 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 11␤current 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 &substr␤current 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«0␤Method '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«4␤5␤4␤»
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 11␤current 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 loop␤Parse failed␤FAILED 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