»ö« | 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 Mike joined 00:01 Mike is now known as Guest92903, ShaneC joined, ShaneC left 00:02 Guest92903 left
lue afk 00:04
pugssvn r30350 | lwall++ | [STD] process conflict marker even if first thing in the file 00:05
ingy heads off to give a talk about C'Dent to SeaPig 00:10
see?
00:11 am0c joined 00:17 snarkyboojum joined 00:26 cdarroch left, eternaleye joined 00:27 yinyin joined 00:29 yinyin left, yinyin joined 00:34 mikehh left, mikehh joined
sjohnson i am converting a bash programmer to Perl today. he asked for my help. today is a good day 00:38
i will give him proper instruction, with beer as programmers oil
colomon \o/ 00:39
00:46 snarkyboojum left 00:48 jhuni joined 00:49 snarkyboojum joined
sjohnson hows it going colomon ? 00:52
colomon pretty good.
very tired.
sjohnson what time do you have?
<--- 5:52pm
colomon I managed to lose the key to the (locked) fridge during the drive from old home to new home today. :(
8:52 pm
(Though judging by the windows left open on this machine, my wife has already ordered a replacement.) 00:53
00:56 pausenclown_ left
sjohnson darn 00:58
01:12 k23z__ joined 01:13 jrtayloriv left 01:42 wknight8111 left 01:48 mikehh_ joined, mikehh left 01:56 Psyche^ joined
colomon use.perl.org/~JonathanWorthington/journal/40303 jnthn++ 01:58
colomon hopes to have tuits again by the weekend... 01:59
02:00 Patterner left, Psyche^ is now known as Patterner, meppl left, frzntoz joined, k23z__ left
sorear considers working on #73886 to take a little break from blizkost 02:04
02:05 nihiliad joined 02:20 justatheory joined 02:24 thowe joined
thowe having a heck of a time getting rakudo to build... 02:25
lisppaste3 thowe pasted "core dump" at paste.lisp.org/display/97534 02:26
thowe paste.lisp.org/display/97534
02:26 REPLeffect left
thowe hmm, cool. Guess my link was redundant. 02:26
At first I thought this box just didn't have enough RAM. So I scraped together another 512M 02:27
Now it has 1.5G and is still giving this error. Also, I watched the mem with top and it seemed to have a lot free, so I don't think it is running out of RAM.
sorear are you building the latest version? 02:28
are you using the latest version of Parrot?
about a week ago, a memory issue was fixed in Parrot (not really a leak as such; it caused overallocation instead of overretention)
rakudo memory usage has dropped from 1.7GB to 260MB 02:29
um
thowe: allocating 1+ GB on a 32 bit box, you're going to see out of memory well before you actually run out, because of memory fragmentation 02:30
that core dump is just an out of memory error 02:31
02:38 REPLeffect joined
thowe Version : 2.2.0-devel 02:44
Is that new enough?
I thought it grabbed the latest parrot via SVN, but this kind of sounds like it might be my issue. 02:45
02:55 agentzh joined
sorear thowe: 2.2.0-devel has been the parrot version number for weeks 03:08
it's not really useful information at all
try parrot-nqp -e 'say(pir::getinterp__p()[6]<revision>)' 03:09
or, uh, parrot_config revision 03:10
03:10 meppl joined 03:11 frzntoz left 03:13 yinyin left 03:17 frzntoz joined 03:31 f00li5h joined 03:35 mikehh__ joined 03:36 mikehh_ left, alester joined 03:44 f00li5h left, f00li5h joined
thowe Pulling it all from the git repository was successful now. Must have been that memory leak issue. 03:51
sorear, Thanks for your help =] 03:52
03:52 meppl left 04:01 meppl joined 04:29 xinming left 04:31 xinming joined 04:34 xinming left, ruoso left 04:39 molaf joined, xinming joined 04:47 rv2733 joined 04:51 nihiliad left 04:57 rv2733 left 05:02 molaf left 05:14 hudnix left 05:22 hudnix joined 05:28 hudnix left 05:40 mberends left 05:42 alester left 05:46 frzntoz left 05:47 kaare joined, kaare is now known as Guest74425 05:48 mjk joined, |mjk| joined 05:49 mjk left 05:53 mberends joined 06:04 lue left 06:05 k23z__ joined 06:08 uniejo joined 06:09 |mjk| left 06:12 masak joined
masak good morning, #perl6 06:13
sorear hello 06:14
06:15 mberends left 06:18 Su-Shee joined 06:20 k23z__ left
masak phenny: tell jnthn great post! use.perl.org/~JonathanWorthington/journal/40303 -- small nit: s/kötbullar/köttbullar/ 06:23
phenny masak: I'll pass that on when jnthn is around.
Su-Shee he clearly never was at Ikea's.
pugssvn r30351 | masak++ | [S32/Temporal] oops, 1996 *was* a leap year 06:33
r30351 |
r30351 | Switching to 2006. Neural glitch pointed out by yary++.
06:35 REPLeffect left 06:37 hudnix joined
frettled Yawn morning, #perl6. :) 06:40
06:42 meteorjay joined 06:47 sulo_seppa joined 06:49 sulo_seppa left
IllvilJa jnthn: Congratulations for acquiring the noble skill of cooking "K􏿽xF6ttbullar", now you're all set to survive in Sweden! 06:50
masak :) 06:51
06:51 REPLeffect joined
dalek kudo: 4c94d70 | masak++ | src/core/Temporal.pm:
[Temporal] removed nanoseconds; chasing spec
06:55
06:58 stephenlb left
moritz_ good morning 07:03
masak o/
moritz_ bkeeler: yes, it adds more copying... but remember that = in PIR is mostly bindings, so match objects aren't actually copied, only the references to them 07:08
bkeeler: and yes, that bothered me too, but I couldn't see how to preserve speed *and* add encapsulation
masak ah, correctness, you bane of performance... 07:11
moritz_ speaking of correctness.. thanks to jnthn++ the 'cool' branch now works again 07:13
masak \o/ 07:14
07:14 drbean joined
moritz_ there are no methods yet moved to Cool 07:14
but most builtins actually inherit from it 07:15
$ ./perl6 -e 'say 42 ~~ Cool'
1
hm, arrays don't
masak that's uncool. 07:18
hm, perlcabal.org/syn/S32/Temporal.html still hasn't updated. :/ 07:45
moritz_ aye; somebody needs to investigate what goes wrong 07:48
07:48 riffraff joined
moritz_ now S12-introspection/parents.t fails in the 'cool' branch :-) 07:50
07:50 masak left
moritz_ because it relies on parent classes of built-in classes, not taking Cool into account 07:50
sorear what's so cool about having Cool? 08:02
moritz_ having less methods in Any 08:04
point is, Larry wants $thing.sort to work even if $thing is not a List (or not Positional) 08:05
so the old approach was to have method sort() in Any 08:06
which kinda works, but is ugly
because it means that Any has ~200 methods
and all user defined classes have as many
so now we shove those methods in the Cool class 08:07
and most built-in classes inherit from it
so users can decide if they want their objects to behave like built-ins (aka polymorphic) by inheriting from Cool 08:08
or if they want "lite" classes by inheriting from Any
it also means you can monkey patch most builtin classes by monkey patching 'Cool' 08:09
08:09 justatheory left 08:14 agentzh left 08:25 yahooooo joined, dakkar joined 08:28 masak joined
masak yay! wifi on a bus! \o/ 08:29
moritz_ snakes! On a plane!
uhm, wrong meme
masak still haven't seen that movie...
moritz_ neither 08:30
and frankly I don't think it's worth it
mathw doesn't want to
Su-Shee I have a suggestion for perl 6, the movie. ;) code.google.com/p/gource/wiki/Videos my co-worker just rendered our cvs ;)
08:36 Khisanth joined 08:39 Khisanth left, Khisanth joined 08:41 dmsantam joined 08:42 kfo_ joined 08:43 dmsantam left 08:45 kfo left, kfo_ is now known as kfo
jnthn o/ folks 08:50
phenny jnthn: 06:23Z <masak> tell jnthn great post! use.perl.org/~JonathanWorthington/journal/40303 -- small nit: s/kötbullar/köttbullar/
jnthn oh kött! 08:51
masak :)
yes. short ö.
jnthn At least I didn't accidentally the camel testicles this time.
jnthn is in meeting all day, but it's a slight break now. :-) 08:52
masak still believes that the connection to camel testicles is quite far-fetched 08:53
maybe it's a Norwegian thing :P
jnthn I'm not sure Norway has camels...
masak that might factor into it somehow :)
sorear hello jnthn 08:54
moritz_ does smart matching against a signature actually bind it?
jnthn moritz_: yes and no 08:55
hi sorear
ooh, gotta concentrate on meeting again :-)
sorear *sketch?
moritz_ rakudo: my ($a, @b); (1, 2, 3) ~~ :($a, *@b); say $a; say @b.perl 08:56
p6eval rakudo 4c94d7: OUTPUT«Any()␤[]␤»
jnthn $dayjob
moritz_ rakudo: my ($a, @b); say 'yes' if (1, 2, 3) ~~ :($a, *@b); say $a; say @b.perl
p6eval rakudo 4c94d7: OUTPUT«yes␤Any()␤[]␤»
moritz_ colomon: from a quick glance it seems that the trig functions do evil things: call private methods from the parent class... AFAICT that will break once rakudo is less leaky with its privacy 09:00
fwiw, the cool branch is coming along nicely 09:02
(though not all of it pushed yet)
09:03 agentzh joined
masak moritz_++ 09:04
sorear so apparently set $P24, $P25["foo"] doesn't actually result in a call to get_pmc_keyed_str
rakudo: [ 1..50 ].sort 09:13
p6eval rakudo 4c94d7: ( no output )
sorear rakudo: [ 1..500 ].sort.say 09:14
p6eval rakudo 4c94d7:
..OUTPUT«123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130…
sorear rakudo: [ 1..5000 ].sort.batch(20).say
p6eval rakudo 4c94d7: ( no output )
sorear (don't use sort on sorted arrays) 09:16
09:17 masak left
moritz_ should Exception inherit from Cool? it kinda feels wrong, but without it regex matching on $! doesn't work... 09:25
jnthn moritz_: Sounds like it could do so. 09:35
moritz_: Did the fix I suggested yesterday unblock things?
moritz_ jnthn: yes it did
jnthn++
09:35 pausenclown joined
jnthn \o/ 09:35
I'll try and improve the errors too.
bkeeler Heyas 09:36
moritz_ jnthn: the next problem I'm running into is that some anonymous classes appear in the spectest run, and then we call .perl on them. Which in turn calls substr()
I haven't really debugged it yet
bkeeler Couldn't sleep so I got back up
moritz_ but either those anon classes need to inherit from Any
or we have to make .perl more clever
or ... dunno
jnthn hmm 09:37
moritz_ anyway, I need to look into that in more detail 09:38
snarkyboojum sorear: yeah, that sort returns in 1 minute and 5 seconds on my machine :) 09:48
sorear Why does anyone still use quicksort?
mergesort has been around since 1945 09:49
moritz_ mergesort needs copies of arrays
at least it's easier to implement it that way
jnthn Quicksort is kinda easy to implement. 09:51
Especially in Perl 6. ;-)
moritz_ especially if you don't really care about choice of pivot element :-)
jnthn Yeah 09:52
mathw .pick(*)
jnthn Even if you do then...yes, that.
sorear jnthn: this is a C quicksort in parrotland
jnthn But then you don't get to show off the sub-signature shiny.
moritz_ mathw: .pick(1)
sorear moritz_: heapsort! 09:53
jnthn Bubble sort!
moritz_ sorear: heapsort is not cache friendly at all
jnthn My O is *so* big.
;-)
ooh, gotta pay attention to meeting agian :-)
sorear nothing using PMCs is cache friendly 09:55
09:57 szabgabx joined
moritz_ rakudo: class A {}; say A.cos 09:59
p6eval rakudo 4c94d7: OUTPUT«Method 'Num' not found for invocant of class ''␤current instr.: 'perl6;Any;cos' pc 376597 (src/gen/core.pir:0)␤»
moritz_ rakudo: class A {}; say A.substr(1)
p6eval rakudo 4c94d7: OUTPUT«()␤»
10:03 mberends joined
pausenclown std: class A { has B $.b; }; class B { has A $.a; } 10:13
p6eval std 30351: OUTPUT«===SORRY!===␤In has declaration, typename 'B' must be predeclared (or marked as declarative with :: prefix) at /tmp/F93yVDuQE0 line 1:␤------> class A { has B⏏ $.b; }; class B { has A $.a; }␤Malformed has at /tmp/F93yVDuQE0 line 1:␤------>
..…
pausenclown how do i predeclare? 10:14
moritz_ class A { ... }
literal ...
pausenclown std: class B{ ... }; lass A { has B $.b; }; class B { has A $.a; }
p6eval std 30351: OUTPUT«===SORRY!===␤In has declaration, typename 'A' must be predeclared (or marked as declarative with :: prefix) at /tmp/2n1WuWuHsK line 1:␤------> ; lass A { has B $.b; }; class B { has A⏏ $.a; }␤Malformed has at /tmp/2n1WuWuHsK line 1:␤------>
..[32…
pausenclown std: class B{ ... }; class A { has B $.b; }; class B { has A $.a; } 10:15
p6eval std 30351: OUTPUT«ok 00:01 107m␤»
pausenclown rakudo: class B{ ... }; class A { has B $.b; }; class B { has A $.a; }
p6eval rakudo 4c94d7: ( no output )
pausenclown tx
rakudo: class B{ ... }; class B{ ... }; class B{ ... }; class A { has B $.b; }; class B { has A $.a; } 10:16
p6eval rakudo 4c94d7: ( no output )
10:19 mberends left 10:30 clintongormley joined 10:32 mberends joined 10:37 agentzh left 10:41 nsh left, sbp left 10:42 nsh joined 10:43 sbp joined, am0c left 10:44 pmurias joined
colomon moritz_: hmmm... I think there's a good argument to be made for moving to-radians and from-radians to Numeric, making them public, and adding them to the spec. Anyone who does geometric work is going to end up wanting to use them sooner or later, in my experience. 10:46
10:51 mberends left
pausenclown what's the new name for undef again? 10:57
rakudo: say undef 10:59
p6eval rakudo 4c94d7: OUTPUT«Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ Mu (the "most undefined" type object),␤ an undefined type object such as Int,␤ Nil as an empty list,␤ *.notdef as a matcher or method,␤ Any:U as a type constraint␤ or
..fail() as a failure return␤ …
pausenclown rakudo: say Mu
p6eval rakudo 4c94d7: OUTPUT«Mu()␤»
pausenclown rakudo: say 1 if Mu
p6eval rakudo 4c94d7: ( no output )
pausenclown rakudo: say 1 unless Mu
p6eval rakudo 4c94d7: OUTPUT«1␤»
pausenclown rakudo: say 1 unless (Mu)
p6eval rakudo 4c94d7: OUTPUT«1␤» 11:00
pausenclown rakudo: say 1 unless (0)
p6eval rakudo 4c94d7: OUTPUT«1␤»
pausenclown rakudo: say 1 unless (1)
p6eval rakudo 4c94d7: ( no output )
pausenclown why is (0) false? 11:01
rakudo: say 1 unless (0).elems
p6eval rakudo 4c94d7: OUTPUT«Method 'elems' not found for invocant of class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pausenclown oh right.
11:08 mikehh__ left
jnthn rakudo: say "oh hai"; 11:10
p6eval rakudo 4c94d7: OUTPUT«oh hai␤»
jnthn say [*] 1..10;
rakudo: say [*] 1..10;
p6eval rakudo 4c94d7: OUTPUT«3628800␤»
jnthn rakudo: sub postfix:<!>($n) { [*] 1..$n }; say 10!; 11:11
11:11 M_o_C joined
p6eval rakudo 4c94d7: OUTPUT«3628800␤» 11:11
arnsholt Speaking of which, how is the grammar informed of that new operator? 11:12
jnthn Just parses it and then augments the grammar :-) 11:13
See the bottom of Grammar.pm for info.
Meeting, afk :-)
arnsholt Great, thanks!
11:15 M_o_C left, M_o_C joined 11:21 szabgabx left
moritz_ colomon: +1 to speccing and making public 11:36
11:37 ruoso joined
pmurias ruoso: one question about adding representation polymorphism to p5, if a perl5 macro needs to use the runloop how will we do that? (saving the C stack?) 11:42
moritz_ the 'cool' branch works pretty well... the only new, non-bogus test failure is t/spec/integration/weird-errors.t
ruoso pmurias, that's where the PONIE-macro-magic-idea would get in 11:45
it would use C stack manipulation...
moritz_ sounds hard to debug
11:47 alester joined, alester left
pmurias ruoso: what's the PONIE-macro-magic-idea? 11:50
11:51 envi^home joined
ruoso pmurias, longjmp and friends 11:52
11:55 szabgabx joined
pmurias ruoso: what i think we should think about would be the use cases for the representation polymorphism in p5 12:06
ruoso pmurias, two cases I can think immediatly is PDL and Moose 12:07
pmurias with Moose using it store the accessors in a C struct? 12:09
* attributes
ruoso pmurias, yes 12:11
takadonet morning all 12:15
12:15 xabbu42 left
pausenclown any "official" thoughts regarding camelCase or underscore_style in Perl6? 12:21
12:21 frzntoz joined 12:22 meppl left 12:23 M_o_C left, clintongormley left
moritz_ pausenclown: Perl 6 programmers tend to use the Perl 5 convention of using CamelCase for package names/type names... 12:24
and using underscores or - for variables and routines
my $first-second = 1; say $first-second;
rakudo: my $first-second = 1; say $first-second; 12:25
p6eval rakudo 4c94d7: OUTPUT«1␤»
pmurias ruoso: it would be interesting to know if the moose guys show interest in that
pausenclown that's somewhat scary =)
moritz_ of course perl 5 doesn't allow - in identifiers
12:32 clintongormley joined 12:33 bluescreen joined, bluescreen is now known as Guest55188 12:34 nadim joined 12:36 smash_ joined
smash_ hello everyone 12:36
12:40 ignacio_ joined
ruoso pmurias, certainly worth asking nothingmuch and stevan 12:44
12:44 frzntoz left
moritz_ hi smash_ 12:44
12:53 jhuni left
pausenclown rakudo: class A { method foo { "a" } }; my @arr = A.new,A.new; say "#" ~ @arr>>.foo 12:59
p6eval rakudo 4c94d7: OUTPUT«#a a␤»
pausenclown is this a bug? 13:00
rakudo: class A { method foo { "a" } }; my @arr = A.new,A.new; say "#" ~ join('', @arr>>.foo)
p6eval rakudo 4c94d7: OUTPUT«#aa␤»
moritz_ pausenclown: what would you expect?
pausenclown no =)
i was confused about the whitespace
moritz_ that's just stringification of a sequence/array/list 13:01
colomon rskudo: my @a = <a b>; say ~@a
rakudo: my @a = <a b>; say ~@a
p6eval rakudo 4c94d7: OUTPUT«a b␤»
moritz_ rakudo: class A { method foo { "a" } }; my @arr = A.new,A.new; say "#" ~<< @arr>>.foo
colomon rakudo: my @a = <a b>; say @a
p6eval rakudo 4c94d7: OUTPUT«Method 'foo' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
rakudo 4c94d7: OUTPUT«ab␤»
moritz_ huh? 13:02
colomon you're calling foo after the ~
(~<<@arr)>>.foo
moritz_ uhm, shouldn't the method call have a tighter precedence? 13:03
colomon dunno
moritz_ tighter than any infix operator, I should hope
colomon might be a bug in hyper dot
~<< is prefix, though... 13:04
moritz_ even so
colomon well, hmmm.
moritz_ no
it's infix
colomon rakudo: class A { method foo { "a" } }; my @arr = A.new,A.new; say "#" ~@ar[0].foo
p6eval rakudo 4c94d7: OUTPUT«Symbol '@ar' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ after "#" an operator is expected, not a term
arr vs. ar 13:05
colomon rakudo: class A { method foo { "a" } }; my @arr = A.new,A.new; say "#" ~@arr[0].foo
p6eval rakudo 4c94d7: OUTPUT«#a␤»
13:05 snarkyboojum left, alester joined
colomon yeah, okay, bug 13:06
~<< has to be prefix. you're thinking <<~<<, I think? 13:07
likely place for the bug is >>. in the parser, it's handled differently than all the other hyper-ops, and was written a long time ago.
(I'd go after it, but I'm mostly watching the little guy as the movers deliver all our stuff.) 13:08
13:12 alester left
moritz_ you're right 13:12
so I wonder why and how it's parsed at all
13:15 colomon left 13:19 payload left 13:24 ignacio_ left 13:25 ruoso left 13:28 mikehh joined
jnthn back from meeting 13:29
13:30 ignacio_ joined, snarkyboojum joined
takadonet jnthn: what are you working on today? 13:31
moritz_ std: '' ~<< @*ARGS 13:32
p6eval std 30351: OUTPUT«===SORRY!===␤Unsupported use of << to do left shift; in Perl 6 please use +< or ~< at /tmp/Sx0VnTv2w3 line 1:␤------> '' ~<< ⏏@*ARGS===SORRY!===␤Unsupported use of << to do left shift; in Perl 6 please use +< or ~< at
../tmp/Sx0V…
jnthn takadonet: Some $dayjob bits, then my presentations for Russia, then we'll see what's left for Rakudo hacking. :-) 13:33
13:33 masak joined
takadonet masak: hey 13:33
jnthn lolitsmasak
13:33 masak` joined 13:34 szabgabx left 13:37 masak left, masak` is now known as masak 13:39 ruoso joined
masak let's see, signatures in for loops default to Mu, right? 13:39
jnthn Should do, yes. 13:40
rakudo: for 1|2 -> $x { say $x.WHAT } 13:41
p6eval rakudo 4c94d7: OUTPUT«Junction()␤»
masak \o/
jnthn rakudo: for 1|2 -> Any $x { say $x.WHAT }
p6eval rakudo 4c94d7: OUTPUT«Int()␤Int()␤»
jnthn :-)
13:42 frzntoz joined
masak rakudo: my $i = 0; for 1|2 -> Any $x { ++$i }; say $i 13:42
p6eval rakudo 4c94d7: OUTPUT«2␤»
masak rakudo: my $i = 0; for 1|2 -> $x { ++$i }; say $i
p6eval rakudo 4c94d7: OUTPUT«1␤»
masak nice. :)
jnthn 'tis just a sig. :-)
masak hm. haven't really thought about junctions as something that can affect the number of iterations before. 13:43
jnthn Well, normally you'd not want them to, thus the Mu default. :-) 13:44
moritz_ rakudo: for 1 -> $x, $y? { say $y.WHAT } 13:47
p6eval rakudo 4c94d7: OUTPUT«Any()␤»
13:47 masak left
moritz_ it's constrained to Mu, but defaults to Any? 13:47
jnthn Just defaults to an empty scalar ATM, which defaults to Any 13:49
13:49 am0c joined
jnthn But that's probably not the right thing. 13:49
moritz_ rakudo: say (-> $x, $y? { }).signature.perl 13:50
p6eval rakudo 4c94d7: OUTPUT«:(Mu $x, Mu $y?)␤»
13:51 masak joined, mberends joined 13:53 masak left, rgrau_ joined
moritz_ is Date in Temporal.pod intended to be date-only, no time involved? 13:57
13:57 Guest74425 left 14:02 uniejo left 14:04 alester joined, frzntoz left, frzntoz joined
moritz_ oh, Date is OutDateD 14:06
arnsholt moritz_: I think that's the usual way to handle these things, a Date, a Time, and a DateTime
14:07 ash__ joined
arnsholt Heh. But in Perl 6, all bets are off (as usual, I suppose =) 14:07
ash__ i just got scopes working in nq-nqp, now you can lexically scope or dynamically scope variables 14:12
14:19 masak joined
masak rakudo: "foo" ~~ /(foo)/; say "$0a" 14:19
p6eval rakudo 4c94d7: OUTPUT«Method 'ast' not found for invocant of class 'Undef'␤current instr.: 'perl6;Perl6;Actions;quote_escape:sym<$>' pc 264651 (src/gen/perl6-actions.pir:13636)␤»
masak submits LTA rakudobug
rakudo: "foo" ~~ /(foo)/; say $0a
p6eval rakudo 4c94d7: OUTPUT«Confused at line 11, near "say $0a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak alpha: "foo" ~~ /(foo)/; say "$0a"
p6eval alpha 30e0ed: OUTPUT«fooa␤»
masak jnthn: dredged up by November. the app cheese strikes again! :) 14:20
jnthn std: "foo" ~~ /(foo)/; say "$0a"
p6eval std 30351: OUTPUT«ok 00:01 110m␤»
jnthn std: "foo" ~~ /(foo)/; say $0a 14:21
p6eval std 30351: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/FKzDG5xV0J line 1:␤------> "foo" ~~ /(foo)/; say $0⏏a␤Whitespace is required between alphanumeric tokens at /tmp/FKzDG5xV0J line 1:␤------> "foo" ~~ /(foo)/; say
..$0[33…
jnthn rakudo: "foo" ~~ /(foo)/; say $0 14:22
p6eval rakudo 4c94d7: OUTPUT«foo␤»
jnthn cheese++ 14:23
14:24 masak` joined 14:26 masak left 14:29 masak`` joined, masak`` is now known as masak, nihiliad joined 14:31 ignacio_ left, ash__ left 14:33 masak` left
masak fwiw, the only blocker left for November seems to be rt.perl.org/rt3/Ticket/Display.html?id=73912 14:34
14:34 Gothmog_ left 14:35 masak` joined
jnthn masak`: The only one? Wow. 14:37
masak` well, the only one during the build phase. :) 14:38
14:39 masak left, Gothmog_ joined 14:40 masak` is now known as masak 14:46 ash__ joined 15:00 ignacio_ joined
masak GGE runs on master! \o/ 15:01
moritz_ masak: it seems Dave also likes a date-only class - which is basically what Date::Simple is about which we've talked before
jnthn Wow!
masak++
masak: How many changes did you have to do?
15:01 masak` joined
masak` jnthn: none! 15:02
takadonet GGE?
moritz_ does it just run, or does it even passes its tests?
masak` moritz_: it runs test-regex. I haven't tried all tests.
moritz_: will do now.
takadonet: it's a grammar engine.
jnthn wonders if it's any less glacial on master 15:03
arnsholt takadonet: Glacial Grammar Engine. A port of pmichaud's PGE to Perl 6
In a nutshell: parsing Perl 6 grammars, entirely in Perl 6 code (almost, IIRC)
masak` it cheats in places. with things like /\w/ 15:04
15:04 meppl joined 15:05 justatheory joined, masak left 15:06 masak` is now known as masak
masak the tests are slower than I remember them. 15:08
oh wait. 15:09
jnthn will be kinda impressed if the tests are actually also all passing, or even mostly passing :-)
masak no... false alarm. it built and ran the tests using alpha :/ 15:10
jnthn Oh. :-/
:-( 15:11
masak aye. new, probably more pessimistic, prognosis coming up.
jnthn: when's your trip to Russia?
jnthn Fly Sunday. 15:12
Talk Monday
Bizzarely, I then have Tue and Wed hanging around there too.
moritz_ profit Tue
get drunk Wed
jnthn Though my talking is all on Monday.
Водка!!! 15:13
Actually I never, ever want to be drunk on vodka again.
moritz_ :-) 15:14
jnthn I acidentally the vodka in Minsk.
Once is...quite enough for a whole lifetime.
[particle] that's an undermistatement
masak ok. 15:15
15:15 masak left, masak joined
masak oh -- GGE is blocking on named enums. :( 15:16
masak worksaround
jnthn ugh 15:17
I actually expect that I'll be able to spend most of the Tue and Wed hacking on Rakudo. 15:18
masak soudns much better than vodka :)
jnthn Oh, I'm sure I'll do both. :-) 15:19
Just in sensible quantities.
:-)
masak rakudo: my $a; my $b; qq[<$a\[$b\]>]
p6eval rakudo 4c94d7: 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)␤»
masak alpha: my $a; my $b; qq[<$a\[$b\]>] 15:20
p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤»
mberends updated the installer section of wiki.github.com/rakudo/rakudo/whats...nto-rakudo
masak do we consider this a new bug?
jnthn mberends++
masak mberends++
jnthn std: my $a; my $b; qq[<$a\[$b\]>]
p6eval std 30351: OUTPUT«===SORRY!===␤Confused at /tmp/bALoUobxRf line 1:␤------> my $a; my $b; qq[<$a\[$b\⏏]>] expecting any of:␤ postfix␤ postfix_prefix_meta_operator␤Compilation failed␤FAILED 00:01 110m␤»
jnthn Well. Hmm. :-)
masak: Can you re-write it into a construct that doesn't make my eyes bleed? ;-) 15:21
masak I'll try. :)
rakudo: qq[\[\]]
p6eval rakudo 4c94d7: ( no output )
masak rakudo: my $a; qq[\[$a\]] 15:22
p6eval rakudo 4c94d7: ( no output )
masak rakudo: my $a; qq[$a\[$a\]]
p6eval rakudo 4c94d7: 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)␤»
masak aha. uhm.
it's being parsed as a postcircumfix *inside* the interpolated string.
jnthn rakudo: qq[uiff]
p6eval rakudo 4c94d7: ( no output ) 15:23
jnthn rakudo: qq[ui\[ff]
p6eval rakudo 4c94d7: ( no output )
jnthn rakudo: qq[ui\[f\]f]
p6eval rakudo 4c94d7: ( no output )
masak jnthn: no, you need the sigil.
jnthn rakudo: qq[ui\[f\]]
p6eval rakudo 4c94d7: ( no output )
masak jnthn: it's the new interpolation code.
jnthn rakudo: my $x; qq[u$x\[f\]]
p6eval rakudo 4c94d7: 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)␤»
jnthn Oh heh.
masak question is, is it wrong.
jnthn I'm...not entirely sure
masak I think it might be right to warn. 15:24
jnthn rakudo: my $x; $x\[f]
p6eval rakudo 4c94d7: OUTPUT«Could not find sub &f␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak the [ should be backwhacked, but not the second.
ash__ std: my $x; qq[u$x\[f\]]
p6eval std 30351: OUTPUT«===SORRY!===␤Confused at /tmp/FjeGhtcjT2 line 1:␤------> my $x; qq[u$x\[f\⏏]] expecting any of:␤ postfix␤ postfix_prefix_meta_operator␤Undeclared routine:␤ 'f' used at line 1␤Compilation failed␤FAILED 00:01 108m␤»
masak hm. maybe neither need be, actually.
jnthn masak: It's parsing as unspace I think.
masak aye. so, optional.
moritz_ (one-pass parsing)++
jnthn I don't think it's a bug, but maybe we can warn better. 15:25
heh
rakudo: my $x = 'lol'; say "$x\ .uc()"
p6eval rakudo 4c94d7: OUTPUT«LOL␤»
pausenclown is there a nice way to write: return ' ' ~ $_ if $_ = join( ' ', self.attributes>>.xml
*nicer
masak this part of GGE broke due to the new interpolation :) 15:26
I'd better change it.
jnthn Well, part of why I worked on interpolation is so Rakudo * users wouldn't get used to one interpolation semantics only to have their code broken for them when we did them properly later.
masak pausenclown: return ' ' ~ $_ if $_ given join(' ', self.attributes>>.xml) 15:27
jnthn: *nod*. I've been naughty without even realizing it :)
moritz_ std: "$0a" 15:28
p6eval std 30351: OUTPUT«ok 00:01 109m␤»
pausenclown masak: somehow i fail to see the advantage
jnthn masak: Aye, and I'm sure @other would be too. :)
15:29 payload joined
moritz_ given self.attributes».xml.join(' ') { return " $_" if $_ } 15:29
PerlJam pausenclown: what are you returning if the condition isn't true?
moritz_ or even given self.attributes».xml { return ' ' ~ $_ if $_ } 15:30
masak pausenclown: it's not great, I grant you that.
moritz_++
moritz_ the stringification automatically adds whitespaces between items, so no need for an explicit join
anyway, IME it help readability if you break such things up into two expressions 15:31
or more
pausenclown rakudo: say '!' ~ $_ if given join( ' ', 1, 2, 3 )
p6eval rakudo 4c94d7: OUTPUT«Could not find sub &given␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
PerlJam pausenclown: you're missing a $_ 15:32
pausenclown rakudo: given join( ' ', 1, 2, 3 ) { say '!' ~ $_ if $_ }
p6eval rakudo 4c94d7: OUTPUT«!1 2 3␤»
pausenclown "missing a $" ? 15:33
jnthn if $_
moritz_ a $_
masak I agree.
need an expression after the 'if'.
PerlJam rakudo: say '!' ~ $_ if $_ given join( ' ', 1, 2, 3 )
p6eval rakudo 4c94d7: OUTPUT«!1 2 3␤»
pausenclown that's ugly. 15:35
CokeBot9000 any perl6 hackers near NY, US?
pausenclown my version should work to, given how given works in moritz example (namely setting $_ implicitly)
moritz_ pausenclown: given is a statement, not an expression 15:36
jnthn if join( '', 1, 2, 3) -> $x { say "!$x"; }
PerlJam jnthn++ 15:37
jnthn rakudo: if join( '', 1, 2, 3) -> $x { say "!$x"; }
p6eval rakudo 4c94d7: OUTPUT«!123␤»
masak std: if 1 <-> $x {} 15:38
p6eval std 30351: OUTPUT«ok 00:01 107m␤»
masak rakudo: if 1 <-> $x {}
jnthn fejl
p6eval rakudo 4c94d7: OUTPUT«Missing block at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak submits rakudobug 15:39
moritz_ rakudo: <-> $x { } 15:40
p6eval rakudo 4c94d7: OUTPUT«Confused at line 11, near "<-> $x { }"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ even easier
rw lambda NYI
PerlJam <-> is parsed, just not everywhere it should
jnthn rakudo: my @x; for @x <-> $y { } 15:41
moritz_ rakudo: for 1, 2, 3 <-> $x { say $x }
p6eval rakudo 4c94d7: OUTPUT«Missing block at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ seems like not at all
moritz_ has seldomly seen rw lambdas in "real" code
masak I'll phrase the ticket accordingly.
well, there's at least one in GGE :) 15:42
moritz_ rakudo: 'a' ~~ sub { .say }
p6eval rakudo 4c94d7: OUTPUT«Any()␤»
masak exactly one, actually. 15:43
PerlJam rakudo: if 0 { say "hi" } else <-> { say "ho" }
p6eval rakudo 4c94d7: OUTPUT«ho␤»
PerlJam See? :)
moritz_ urks
masak rw null sig? eww! :)
jnthn rakudo: 'a' ~~ sub { $^x.say } 15:44
p6eval rakudo 4c94d7: OUTPUT«a␤»
pugssvn r30352 | moritz++ | [t/spec] do not realy on $_ in anonymous subs
moritz_ s/realy/realy/
jnthn I don't think $_ in a sub, anonymous or otherwise, counts as a parameter. 15:45
moritz_: realy? ;-)
moritz_ erm, rely
moritz_ should really go to bed
15:45 masak` joined
moritz_ realy. :-) 15:45
masak` it's OK. I can work around that one :) 15:46
15:48 masak left, masak` is now known as masak
PerlJam Hmm. Every pblock should be able to take a <->, but that's not the case. I think EXPR is perhaps being a tad too greedy. 15:50
15:50 masak left
jnthn Ugh. 15:50
moritz_ we've had such a bug in alpha too 15:51
where -> wouldn't be parsed where a term was expected
15:52 masak joined, masak` joined
jnthn May be worth glancing the LTM prefixes in the generated code to see if <-> shows up as one. 15:53
15:53 masak` left
masak rakudo: class A {}; class A is also {} 15:53
p6eval rakudo 4c94d7: OUTPUT«Illegal redeclaration of symbol 'A'␤current instr.: 'perl6;Perl6;Grammar;_block249' pc 40351 (src/gen/perl6-grammar.pir:360)␤»
jnthn augment 15:54
masak would it be possible to install a trait saying that 'is also' is deprecated?
jnthn ja.
masak knows :)
jnthn multi trait_mod:<is>(*@, :$also!) { die "omfg use augment!" }
15:55 kaare_ joined
masak it's biting me, might bite others. 15:55
jnthn try it in traits.pm
moritz_ rakudo: multi trait_mod:<is>(*@, :$also!) { die "omfg use augment!" }; class A { }; class A is also { }
p6eval rakudo 4c94d7: OUTPUT«Illegal redeclaration of symbol 'A'␤current instr.: 'perl6;Perl6;Grammar;_block249' pc 40351 (src/gen/perl6-grammar.pir:360)␤»
moritz_ ... unless that error is thrown first :-)
jnthn Oh. 15:56
It...probably is. Grrr.
Worse, it's...rather hard to fix.
masak ok; never mind then.
jnthn Becuase we probably don't even parse the "is also".
Which is one of the reasons why it became a scope decl, rather than a trait. :-)
moritz_ not worth the effort, IMHO
does t/spec/integration/weird-errors.t (after an 'svn up') pass on master? 15:57
the test was bogus before, fixed now... and no idea if it's passing
on the 'cool' branch one of the tests fails 15:58
16:00 slhsen joined 16:01 cdarroch joined, cdarroch left, cdarroch joined 16:02 thowe left 16:04 masak` joined
masak` rakudo: class A { sub b { 0x10 }; has %!c = "" => { "" => b }; }; A.new 16:06
p6eval rakudo 4c94d7: OUTPUT«Could not find sub &b␤current instr.: 'perl6;A;_block80' pc 613 (EVAL_1:263)␤»
masak` this is biting me currently. I use subs because constants didn't work in classes in alpha, and don't work at all in master. 16:07
rakudo: class A { sub b { 0x10 }; has %!c = "" => b }; A.new
p6eval rakudo 4c94d7: OUTPUT«Could not find sub &b␤current instr.: 'perl6;A;_block80' pc 613 (EVAL_1:263)␤»
masak` jnthn: any ideas why this might be?
ash__ are there any plans for nqp to have type constraints? 16:08
jnthn masak`: lexical scope f'up, I guess.
masak` submits rakudobug
jnthn masak`: file Rakudo bug but I can probably fix that without too much trouble.
masak` \o/
16:08 masak left
jnthn ash__: Not concrete ones, but certainly I think pmichaud may be open to having some basic support for that, especially for native types. 16:09
16:09 masak`` joined
masak`` rakudo: class A { sub b { 0x10 }; has $!c = b }; A.new 16:09
p6eval rakudo 4c94d7: OUTPUT«Could not find sub &b␤current instr.: 'perl6;A;_block80' pc 613 (EVAL_1:263)␤»
16:09 masak`` is now known as masak, payload left
ash__ k, just wondering, i am trying to start doing basic code generation, type constraints are kinda nice, since you can say my Int $a and expect it to be an Int (or child), thus you have more knowledge at compile time about which operations you can do 16:10
16:10 ive joined
jnthn rakudo: class A { our sub b { 0x10 }; has $!c = b }; A.new 16:12
p6eval rakudo 4c94d7: ( no output )
jnthn masak`: Horrible workaround above.
But I try and fix the bug soon.
16:13 masak` left 16:15 proller left 16:16 proller joined 16:17 masak left 16:24 ash__ left
moritz_ rakudo: 1/0; say "alive" 16:29
p6eval rakudo 4c94d7: OUTPUT«alive␤»
jnthn Just makes a Rat. :-) 16:30
Though arguably should fail.
arnsholt Should it though? 16:31
moritz_ rakudo: my $x = fail('foo'); say $x
p6eval rakudo 4c94d7: OUTPUT«No exception handler and no message␤current instr.: '&fail' pc 17450 (src/builtins/Junction.pir:497)␤»
moritz_ rakudo: my $x = fail('foo'); say "alive"
p6eval rakudo 4c94d7: OUTPUT«No exception handler and no message␤current instr.: '&fail' pc 17450 (src/builtins/Junction.pir:497)␤»
16:31 kaare_ left, tri1 joined 16:33 supernovus joined
jnthn arnsholt: I dunno, that's why I said arguably. 16:36
arnsholt: I guess if you never use the Rat, it kinda doesn't matter.
rakudo: say 1/0
p6eval rakudo 4c94d7: OUTPUT«Inf␤»
jnthn :-)
rakudo: 0/0 16:37
p6eval rakudo 4c94d7: OUTPUT«Divide by zero␤current instr.: 'infix:<div>' pc 326530 (src/gen/core.pir:13156)␤»
jnthn heh. :-)
16:37 orafu joined, kaare_ joined
arnsholt jnthn: I think you can argue both ways 16:39
TimToady I'd probably turn 0/0 into NaN
pugssvn r30353 | moritz++ | [t/spec] fudge failing integration test 16:40
arnsholt I think there are cases where dividing by zero result in a NaN or something could be nice
16:40 SmokeMachine joined
cj anyone here feel like being listed on my 'possible mentors' for Perl6 on the DLR? 16:40
TimToady we're still trying to be friendly to parallel algorithms here and not throw exceptions
moritz_ cj: I hope jnthn or diakopter might be intereted 16:41
TimToady esp diakopter, since he's working on something similar
cj moritz_: I'm putting diakopter in there whether he responds or not ;)
moritz_ cj: I could mentor such a project from the social / project-managment POV, but I couldn't really act as a technical aid 16:42
cj moritz_: okay. Name?
moritz_ cj: Moritz Lenz
cj thanks ;)
16:42 lichtkind joined
moritz_ though diakopter would really be the better suited mentor 16:42
lichtkind what exactly does cool, autoboxing? 16:43
moritz_ lichtkind: I've explained it today once already, please backlog :-) 16:44
or read the spec
16:44 ash__ joined
lichtkind moritz_: thanks its interesting but i asked for just the word, it is multible inhertance? 16:46
moritz_ Cool is class. 16:47
multiple inheritance is a feature/concept
lichtkind so cool is nothingthe a special class?
16:47 rallred left
moritz_ lichtkind: Cool is just as special as Array or Int or Any 16:48
(except maybe for that fallback feature that's NYI and conjectural)
PerlJam Cool and Mu push the envelope a little bit on "cuteness" for class names. 16:50
16:50 frzntoz left
lichtkind it has to its perl :) 16:51
moritz_: thanks a lot
pmurias ruoso: i expanded the benefits section, socghop.appspot.com/gsoc/student_pr...7020368113 16:52
ash__ i don't mind Mu, Cool seems like a funny name
TimToady well, that's because it is. :) 16:53
It's good when things seem to be what they are! 16:54
moritz_ TimToady: should the List/Seq methods like sort, join etc. be in Cool or in Any?
I think we've discussed that before, but haven't reached a good conclusion yet
PerlJam I would think Cool
TimToady once upon a time, it seems to me we had a reason for leaving the list ones in Any
moritz_ yes 16:55
TimToady because the list ones aren't so much about the internals, but how they behave as objects externally
moritz_ so that things like <foo>.join('') would work
but since angle brackets and so on always return something Coolish, that's foolish :-)
TimToady it's not so much a conversion as a "list boxing" 16:56
moritz_ right
TimToady and therefore somewhat more fundamental
I'm cool with leaving it in Any.
moritz_ I can argue both ways, and I can implement it both ways.
PerlJam boxing goes in Any, "universal" conversions go in Cool ?
ash__ TimToady: i was curious about something, if scalars default to the Any constraint, is assigning the value Mu legal? 16:57
TimToady no
it's "too undefined" for that
16:58 _jaldhar left 17:00 uniejo joined 17:01 pmurias left 17:08 supernovus left
PerlJam finds it stranger that there are so many SDL proposals to gsoc 17:08
diakopter cj feel free to add me as a willing mentor
PerlJam s/stranger/strange/
diakopter cj: though my own efforts are on my own mini-dlr-ish thing. 17:09
PerlJam diakopter: that sounds perfect becuase then you can compare notes and each make the other better.
17:18 uniejo left, uniejo joined
diakopter looks at adding another emitter target to viv 17:20
17:21 tri1 left 17:23 ash__ left, nihiliad left 17:29 dakkar left 17:30 ash__ joined 17:34 smash_ left 17:36 Chillance joined
cj diakopter: cool, thanks! 17:36
17:37 ash__ left 17:39 kaare_ left
uniejo rakudo: say (^*)[0..9] 17:40
p6eval rakudo 4c94d7: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Range'␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
17:43 mberends left 17:45 ignacio_ left
moritz_ cj: your proposal lacks some very important information 17:49
cj: like proposed architecture of the compiler 17:50
and I also think that it should be clear before the start of the project what you want to implement in the scope of GSCO
*GSOC
I mean a short list of things like 'integers, strings, variable declaration + assignment, say(), if-statement' would be a huge step in the right direction 17:51
17:54 slhsen left 17:56 uniejo left, uniejo joined 18:01 ignacio_ joined 18:13 literal left, avar left
cj moritz_: architecture of the compiler? Perhaps I don't have enough experience with compilers yet... My assumption is that it would target the CLR via DLR 18:15
diakopter cj: probably the biggest question is which parser will it use
since that kinda determines most other things
PerlJam which is cj's?
cj PerlJam: Perl6 on the DLR 18:16
PerlJam opens up the list of projects
diakopter cj: and the correct answer to that question is ... :) Larry's STanDard parser
(since implementing anything else would be impossible even within the time allotted)
cj diakopter: what parsers are available? How does your javascript interpreter do it? 18:17
diakopter that one uses larry's STD
cj diakopter: okay. Is Larry's STanDard parser perl?
diakopter yes
cj diakopter: how do you get it to work in javascript? do you bootstrap it outside of the js runtime? 18:18
diakopter no
it runs in perl
18:18 snarkyboojum left
diakopter I wrote an emitter for its AST 18:18
that emits a JS function that creates the AST properly 18:19
I could do something similar for C# 18:20
actually
I could do something similar for RunSharp
o_O
(so it wouldn't have to invoke csc.exe at runtime) 18:21
I tried lots of routes to use YAML direclty 18:22
but I couldn't get the one in IronRuby to work
cj did you look at the YAML parser from IronRuby?
right
moritz_ cj: that's hardly an architecture 18:23
cj perhaps I should take a compiler course and apply next year. maybe I'm still too ignorant ;)
18:25 M_o_C joined
moritz_ well, you could at least describe the stages that you're planning to implement 18:27
PerlJam cj: ignorance is sometimes good. There are things that everybody knows can't be done ... until someone does it. :)
moritz_ like lexing, parsing, building an AST, compiling to whatever primitives the runtime/backend understands
18:27 M_o_C left 18:28 M_o_C joined
diakopter the DLR understand expression trees on/producing arbitrary types 18:28
Mu, Cool, Any would be 3 of those types
cj wouldn't be able to use much of the DLR's dispatch helpers; it would have to be just as dynamic as Rakudo's 18:29
user-declared classes could be translated to derivatives of Cool, but any multiple inheritance or roles would need to be compiled to calls to the custom dispatchres 18:30
the exception/control-flow model would have to be ignored 18:31
it's too complex for a less-than-a-man-year project
for the DLR at least 18:32
these are part of the reasons that, every time I look at it, I reject the idea of using the DLR as a backend 18:35
(to target the CLR)
Perl 6 is just _TOO_ dynamic 18:36
cj moritz_: I've run out of time to submit changes to that form, but I can flesh things out on my blog and point you to them. I've got a call coming in 36 minutes ago that I expect Real Soon Now
18:38 ash__ joined 18:41 literal joined 18:43 avarab joined, avarab is now known as avar 18:49 ShaneC joined
PerlJam If masak's proposal doesn't make the cut I'm going to be really bummed. 18:50
diakopter what's the cut 18:51
I mean, is there a limit
PerlJam There is a limit but I don't know what it is yet.
diakopter is the limit already set (by someone)? 18:52
PerlJam But there appears to be much more interest in Parrot, SDL, and mojolicious
jnthn is hopeful that masak's one will make it.
diakopter PerlJam: more than what
where is the interest measured, and is interest one of the qualifying factors?
and who makes the decisions?
PerlJam I'm just looking at the scores so far on the gsoc 18:53
diakopter url?
PerlJam diakopter: socghop.appspot.com/gsoc/org/list_p...oc2010/tpf
diakopter: have you applied to be a mentor for gsoc2010?
diakopter that link doesn't work for me 18:54
I guess not 18:55
PerlJam yeah, you have to be a potential mentor
18:55 ShaneC left
diakopter how does that happen 18:56
jnthn Yeah
PerlJam: Who votes on these, out of interest?
Perl Foundation folks?
PerlJam diakopter: socghop.appspot.com/site/home/site there's a link on the bottom left
diakopter who approves these mentor applications
PerlJam diakopter: dukeleto and particle I think
jnthn: people who have been approved as TPF mentors. 18:57
diakopter PerlJam: did you mean the limit has already been set, but you don't know it yet? or that there will be a limit that will be set sometime 18:58
PerlJam diakopter: no, the limit hasn't been set. It's however many slots TPF gets
cj: btw, interesting eligibility information :) 19:01
CokeBot9000 jnthn: you should offer to be a mentor, at least for any p6 stuff. 19:03
google will set the limit.
jnthn CokeBot9000: I already have. :-)
CokeBot9000: I've marked myself as willing to mentor masak++'s project too. 19:04
cj PerlJam: what portion? the sexxy picture? 19:05
PerlJam yeah :) 19:06
19:06 nihiliad joined
PerlJam several of these proposals, if they don't make it for the GSoC, would make good grant applications to TPF 19:06
cj dhoss said he sent in his student id ;)
pausenclown rakudo: say 'a'.subst(/(.)/,"! $1 !")
p6eval rakudo 4c94d7: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤» 19:07
PerlJam though I understand that TPF has recently changed the grant process a bit.
pausenclown is there a workaround for this?
moritz_ can the proposals be changed after the submission deadline?
pausenclown: yes. Use a closure as second argument
pausenclown: it gets a match object passed in as argument
PerlJam pausenclown: your way causes $1 to be interpolated immediately. 19:08
moritz_ pausenclown: and then you can access $match[0]
PerlJam pausenclown: also, you want $0 looks like
pausenclown rakudo: say 'a'.subst({/ (.)/},"! $1 !")
p6eval rakudo 4c94d7: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
moritz_ 21:07 <@moritz_> pausenclown: yes. Use a closure as second argument
second.
pausenclown oops.
PerlJam moritz_: well, the invocant is the first arg isn't it? ;)
cj moritz_: looks like no
pausenclown rakudo: say 'a'.subst(/(.)/,{"! $1 !"}) 19:09
p6eval rakudo 4c94d7: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
moritz_ PerlJam: bu!
pausenclown rakudo: say 'a'.subst(/(.)/,{"! $/[0] !"})
p6eval rakudo 4c94d7: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10733 (src/builtins/Role.pir:90)␤»
moritz_ pausenclown: and read the rest of what I wrote too
19:09 kensanata joined
moritz_ rakudo: say 'a'.subst(/(.)/, -> $m { "! $m[0] !" }) 19:10
p6eval rakudo 4c94d7: OUTPUT«! a !␤»
pausenclown how to catch the argument?
moritz_ or sub ($m) { ... }
pausenclown ah. already answered
PerlJam rakudo: say 'a'.subst(/(.)/, { "! $^a[0] !" });
p6eval rakudo 4c94d7: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block58' pc 739 (EVAL_1:253)␤»
19:11 riffraff left
PerlJam rakudo: say { $^a }.(42) 19:12
p6eval rakudo 4c94d7: OUTPUT«42␤»
PerlJam rakudo: say { "$^a" }.(42)
p6eval rakudo 4c94d7: OUTPUT«42␤»
PerlJam rakudo: say { "! $^a !" }.(42)
p6eval rakudo 4c94d7: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block46' pc 309 (EVAL_1:127)␤»
PerlJam interesting 19:13
moritz_ PerlJam: there's a ticket in RT for self-declaring formal paramters
two actually, at least
19:13 riffraff joined
PerlJam rakudo: say { "$^a !" }.(42) 19:14
p6eval rakudo 4c94d7: OUTPUT«42 !␤»
jnthn PerlJam: That's a curious bug. :-/
rakudo: say { "! $^a !" }.signature.perl 19:15
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a)␤»
jnthn hm. wtf.
PerlJam any text before the $ seems to add the extra parameter 19:16
rakudo: say { "$^a !" }.signature.perl
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a)␤»
PerlJam rakudo: say { "a$^a !" }.signature.perl
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a)␤»
jnthn I can only guess that we're somehow falling into the interpolation rule twice. 19:17
19:17 riffraff left
jnthn Heck knows why. 19:17
Probably interesting to have a play with <?DEBUG>
TimToady some lookahead on the variable maybe? in any case, the symbol table ought to only add one entry for a dup name
PerlJam rakudo: say { " $^a $^b" }.signature.perl 19:18
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a, Mu $b)␤»
PerlJam rakudo: say { "$^a $^b" }.signature.perl 19:19
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $b)␤»
moritz_ wtbh?
jnthn TimToady: Well, yeah, that too I guess.
TimToady not sure there's much b in h
PerlJam TimToady: sure there is. you should watch more horror movies ;) 19:20
TimToady rakudo: say { "$^a$^a $^b" }.signature.perl 19:21
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a, Mu $b)␤»
PerlJam there was some show on syfy last night that depicted a reasonable approximation of h and there was lots and lots of b
TimToady rakudo: say { "$^a$^a$^a $^b" }.signature.perl
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a, Mu $a, Mu $b)␤»
pausenclown how do i control how a class instance stringifies?
PerlJam pausenclown: .Str
sjohnson hi guys
pausenclown i fell a little silly now =)
TimToady rakudo: say { "$^a" ~ "$^a" }.signature.perl 19:22
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a)␤»
PerlJam that's a separate bug
TimToady rakudo: say { $^a ~ $^a }.signature.perl
moritz_ rakudo: say { $^x }.signature.perl
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a, Mu $a)␤»
rakudo 4c94d7: OUTPUT«:(;; Mu $x)␤»
moritz_ why is it behind ;;? is that spec?
TimToady rakudo: say { $^a ~ $a }.signature.perl
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a)␤»
jnthn Well, since it's not a multi candidate, it hardly matters. ;-)
But I agree it's weird. 19:23
TimToady looks like it's using push logic rather than hash logic
PerlJam rakudo: say { $a ~ $^a }.signature.perl # should error, right?
jnthn Will tweak it.
p6eval rakudo 4c94d7: OUTPUT«:(;; Mu $a)␤»
TimToady std: say { $a ~ $^a }.signature.perl
p6eval std 30353: OUTPUT«===SORRY!===␤Variable $a is not predeclared at /tmp/7jkZYAHWsM line 1:␤------> say { $a⏏ ~ $^a }.signature.perl␤Compilation failed␤FAILED 00:01 107m␤»
TimToady std: say { $^a ~ $a }.signature.perl
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
moritz_ std: multi infix:<+> { $^a + $^b } 19:24
p6eval std 30353: OUTPUT«ok 00:01 109m␤»
jnthn heh
pausenclown rakudo: class A { method a { 'A' }; method Str { self.a }; }; say "{ A.new }"
p6eval rakudo 4c94d7: OUTPUT«A␤»
jnthn OK, so I really do need to fix it. :-P
pausenclown rakudo: class A { method a { 'A class' }; method Str { self.a }; }; say "{ A.new }" 19:25
p6eval rakudo 4c94d7: OUTPUT«A class␤»
pausenclown nice
jnthn My Rakudo tree is kinda busted at the moment though.
sjohnson rakudo: my $a = " happiness ".trim-leading; say "[$a]" 19:26
p6eval rakudo 4c94d7: OUTPUT«[happiness ]␤»
jnthn rakudo: my $a = " happiness ".trim-following; say "[$a]"
p6eval rakudo 4c94d7: OUTPUT«Method 'trim-following' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn aww.
TimToady trailing
jnthn Ah. :-)
TimToady as in "leading indicators/trailing indicators" 19:27
PerlJam will still think "ltrim" and "rtrim" probably 19:30
TimToady left/right is a problem with rtl languages. front/back head/tail, though head/tail means something else in FP lists 19:31
but leading/trailing is not bad from a huffman POV 19:33
beg/end is a possibility 19:34
arnsholt Hmm. I really wish nqp-rx supported integer precedence levels as well as string ones 19:35
moritz_ arnsholt: the Perl 6 model implies that you can add new precedence levels between existing ones 19:36
arnsholt Aha. That particular detail had slipped past me
Now it makes more sense to use strings exclusively
TimToady: end bypasses the ambiguity of tail as well 19:38
(as well as being shorter =)
PerlJam arnsholt: which end? :)
TimToady I know, I know! left-end/right-end...oh wait... 19:39
arnsholt PerlJam: Damn you! ^^ 19:40
TimToady on the qq[u$x\[f\]] problem, I can't whether it's better to blow up on the ambiguous \, or to just force it not to be unspace and terminate the interpolation 19:41
can argue it both ways... 19:42
CAIBW
moritz_ TimToady: I'd be in favour of not allowing unspace in interpolations at all 19:43
TimToady that's not in question
PerlJam TimToady: i'd opt for the latter
moritz_ TimToady: I mean, if you need something more complicated than simple method calls, you'd better use a closure or concatenation or sprintf 19:44
jnthn Yeah, allowing whitespace in thre was a little surprising. :-)
moritz_ it's simply too much strain on the human parser
TimToady that's still not the question
we know we're not going to allow \ as part of the interpolation 19:45
jnthn Heh, I didn't until you just said so. :-)
TimToady the question is whether it's better to blow up or assume that the quote continues
jnthn rakudo: "hmm\ and an escaped space?"
p6eval rakudo 4c94d7: ( no output )
jnthn std: "hmm\ and an escaped space?"
p6eval std 30353: OUTPUT«ok 00:01 108m␤»
jnthn (just curious)
moritz_ perl6: say "hm\ hm" 19:46
p6eval elf 30353, pugs, rakudo 4c94d7: OUTPUT«hm hm␤»
jnthn TimToady: Not sure. Dunno why anyone would escape a space...
PerlJam TimToady: There had better be a really good reason for an explosion and the errant unspace attempt doesn't strike me as explosive enough.
jnthn Well, in a regex they could sanely do so though.
19:48 Gruber joined 19:49 Gruber is now known as Grrrr
CokeBot9000 PerlJam: Which part of the grant process are you thinking about? 19:49
PerlJam CokeBot9000: dunno, I just remember seeing something about it changing recently, so I consider whatever I thought I knew obsolete until I make sure of the actual process. 19:50
moritz_ CokeBot9000: I think they want to garbage-collect proposals more agressively if the grant worker doesn't respond 19:51
CokeBot9000 hasn't changed that much. payments structure will be changing, but grant applications continue quarterly. We don't see a lot of P6 grants requests hitting the GC, though. (since it's probably easier to go through the Hague $$ first.)
full disclosure: I'm on the GC.
moritz_ speaking of which... what's up with masak's Web.pm grant? 19:52
I think it was *almost* finished
[particle] it's blocking on Web 6.0
moritz_ OH NOEZ 19:53
CokeBot9000 GEEZ, we're still in Web 2.0
this could take a while.
Su-Shee I'm doing web threeandahalf. very shiny. 19:54
sjohnson can someone please help me figure out what perl6 does as far as whitespace trimming? does it do unicode whitespace too?
ahh.. maybe i should find it in the apocolypses before i get whacked with a bamboo stick 19:55
PerlJam sjohnson: Synopses 19:56
moritz_ sjohnson: Perl 6 uses consistent Unicode semantics.
sjohnson ok thanks 19:58
i'll google for it etc
19:59 uniejo left
TimToady jnthn: we already outlaw unspace in regex 20:00
20:00 takadonet left
TimToady but that's only the kind with real space after it 20:00
and we don't allow cascaded postfixes, so the $a\[] situation doesn't arise 20:01
jnthn std: my $a; say "$a\ .foo()"
p6eval std 30353: OUTPUT«ok 00:01 109m␤»
jnthn TimToady: Ah, in spec?
sjohnson moritz_: when you say semantics, do you mean it has a set way of handling what unicode chars the perl6 board of shadowy figures have deemed whitespace?
TimToady hmm
that could be a bug
std: / \ / 20:02
p6eval std 30353: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/EzqNId1sz1 line 1:␤------> / \⏏ /Compilation failed␤FAILED 00:01 107m␤»
TimToady probably parsing the variable with something too general
std: my $a; /$a \ /
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
moritz_ sjohnson: I'm not familiar with those shadowy figures
TimToady hmmmmmmm
very strange
std: my $a; /\d \ / 20:03
p6eval std 30353: OUTPUT«===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes (' ') or use a backslashed form like \x20 at /tmp/GopteBOXFz line 1:␤------> my $a; /\d \⏏ /Compilation failed␤FAILED 00:01
..10…
TimToady something from %*LANG<MAIN> must be eating the space after a var
sjohnson moritz_: sorry, i meant more like "unnamed devs who would be difficult to track down unless i know who was responsable for what" 20:04
PerlJam sjohnson: perl considers "whitespace" what unicode considers "whitespace"
moritz_ sjohnson: try unicode.org 20:05
sjohnson thank ous
PerlJam sjohnson: though perl also thinks of comments as "whitespace" while unicode doesn't 20:06
:)
20:15 ilogger2 joined
sjohnson i have found for the little S\d+ readings i have done, that the perl5 gut knowledge makes perl6 guts easier to understand, as it usually talks about the difference between the two 20:16
arnsholt jnthn: Sounds like an interesting optimisation problem. Did you model it when you got home? ^^ 20:17
moritz_ sjohnson: problem is, the specs don't talk about which version of perl 5 it considers 20:18
and perl 5 changes, too
sjohnson uh oh
good thing i only understand the tip of the iceberg then of p5 :)
avar rakudo: my Str $str = " foo "; trim-leading($str) 20:19
p6eval rakudo 4c94d7: ( no output )
avar perl6: my Str $str = " foo "; trim-leading($str)
p6eval elf 30353: OUTPUT«Undefined subroutine &GLOBAL::trim called at (eval 124) line 4.␤ at ./elf_h line 5881␤»
..rakudo 4c94d7: ( no output )
..pugs: OUTPUT«*** No such subroutine: "&trim"␤ at /tmp/EO8YL8auvs line 1, column 24 - line 2, column 1␤»
avar perl6: my Str $str = " foo "; trim_leading($str)
p6eval elf 30353: OUTPUT«Undefined subroutine &GLOBAL::trim_leading called at (eval 123) line 4.␤ at ./elf_h line 5881␤»
..pugs: OUTPUT«*** No such subroutine: "&trim_leading"␤ at /tmp/QeQgooVrG1 line 1, column 24 - line 2, column 1␤»
..rakudo 4c94d7: OUTPUT«Could not find sub &trim_leading␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
avar perl6: my Str $str = " foo "; trim($str)
p6eval pugs: OUTPUT«*** No such subroutine: "&trim"␤ at /tmp/RjpCyKrLIK line 1, column 24 - line 2, column 1␤»
..rakudo 4c94d7: ( no output )
..elf 30353: OUTPUT«Undefined subroutine &GLOBAL::trim called at (eval 123) line 4.␤ at ./elf_h line 5881␤»
avar meh:) 20:20
jnthn Guess a missing is export.
pmurias sjohnson: it might be usefull to note the places where the spec depends on p5 knowledge as it would be usefull to fill in the gaps 20:21
std: my $Foo::bar;
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
arnsholt has a pwan 20:22
pmurias isn't my $Foo::bar an error?
ash__ no...
pmurias arnsholt: pwan = ?
ash__: what does that do?
ash__ thats the same as my Foo::<$bar>
(i believe)
pmurias and what does that do?
arnsholt pmurias: A plan (ref. hunting wabbits =)
ash__ declares a variable $bar in the in the Foo package
jnthn I guess the lexical package Foo. 20:23
ash__ std: my Foo::<$a>; 20:24
p6eval std 30353: OUTPUT«===SORRY!===␤In my declaration, typename 'Foo::' must be predeclared (or marked as declarative with :: prefix) at /tmp/Dvg4jVFUw2 line 1:␤------> my Foo::⏏<$a>;␤Malformed my at /tmp/Dvg4jVFUw2 line 1:␤------> my Foo::⏏<$a>;
..…
ash__ after thinking about it, i kinda expected my $Foo::bar to do that too... 20:25
std: module Foo { }; my Foo::<$bar>;
p6eval std 30353: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/kuwUPecbrZ line 1:␤------> module Foo { }; my Foo::⏏<$bar>;␤Malformed my at /tmp/kuwUPecbrZ line 1:␤------> module Foo { }; my Foo::⏏<$bar>; expecting any
..o…
pmurias my declares a lexical variable, how can a lexical variable live in a package? 20:26
20:26 nadim joined, nadim left
jnthn There's such thing as lexical packages. 20:26
20:26 nadim joined
ash__ rakudo: my $Foo::bar; 20:26
p6eval rakudo 4c94d7: ( no output )
ash__ rakudo: my $Foo::bar = 3; say $Foo::bar; 20:27
p6eval rakudo 4c94d7: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16989 (src/builtins/Junction.pir:245)␤»
jnthn Rakudo has no clue about such things yet.
(I intend to try and change that in the next couple of weeks. :-))
pmurias TimToady: is my $Foo::bar legal? 20:28
TimToady no
ash__ perlcabal.org/syn/S02.html#Names says "$Foo::Bar::baz # compound identifiers separated by ::" 20:29
jnthn TimToady: Though given "my module Foo { our $bar };" then would $Foo::bar be a variable lookup inside that lexical package?
ash__ although later it says "Foo::Bar::<$baz>" is a legal alternative 20:30
jnthn That is, we can't assume that just because a variable has :: seperators in that we should immediately go look in the package?
20:32 payload joined
TimToady the point is that 'my' can't do that 20:33
arnsholt I wonder how NQP will handle 1200 precedence levels
TimToady you can't create lexical variables in someone else's scope, regardless what kind of namespace it is
jnthn TimToady: Sure, I agree with that.
Does our $Foo::bar make sense? 20:34
moritz_ arnsholt: snlowly, probably :-)
TimToady but yes, :: doesn't imply packages to the exclusion of named lexical scopes
ash__ so, my $Foo::bar; should complain if the package Foo::bar doesn't exist?
jnthn I guess that always dies.
TimToady UNIT::<$bar> names the 'my $bar' in the outermost scope
of the comp unit
my shouldn't allow :: at all
arnsholt moritz_: Yeah, that's what I'm guessing. I should probably generate the different preclevels on the fly as operators are defined 20:35
But for now, I just make them all on INIT
TimToady it may be that it is taking the Foo as a subpackage of the current lexical scope though
create MY::Foo and then create MY::Foo::<$bar> 20:36
that might be what it's thinking
jnthn Hmm
TimToady not saying that's something we want necessarily 20:37
jnthn No, I'm not sure I'd like that.
TimToady but declarations don't search for package names, only normal lvalues/rvalues do
if a declaration can create a package, it can only do it as a subpackage of the current lexical scope 20:38
pmurias so our $Foo::bar is also illegal
TimToady yes, to my way of thinking 20:39
jnthn That makes me happy.
pmurias is happy too
20:40 TiMBuS joined
moritz_ std: our $Foo::bar 20:40
p6eval std 30353: OUTPUT«ok 00:01 109m␤»
20:40 addy_ joined
TimToady can probably tell from the .syml whether that's a subpackage Foo 20:40
yes, that is what it is doing 20:41
it's creating UNIT::Foo::<$bar>
20:42 frzntoz joined
TimToady which there is some argument for allowing, though it will suprise anyone who thinks it declares something in GLOBAL::Foo 20:42
diakopter std: say ::UNIT::Foo::<$bar>
p6eval std 30353: OUTPUT«===SORRY!===␤Variable ::UNIT::Foo::<$bar> is not predeclared at /tmp/yWVYyFG2fc line 1:␤------> say ::UNIT::Foo::<$bar>⏏<EOL>␤Compilation failed␤FAILED 00:01 107m␤»
TimToady std: my $Foo::bar; say ::UNIT::Foo::<$bar> 20:43
p6eval std 30353: OUTPUT«===SORRY!===␤Variable ::UNIT::Foo::<$bar> is not predeclared at /tmp/iIgdeoHMuR line 1:␤------> my $Foo::bar; say ::UNIT::Foo::<$bar>⏏<EOL>␤Compilation failed␤FAILED 00:01 107m␤»
TimToady std: my $Foo::bar; say UNIT::Foo::<$bar>
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
TimToady there, you see :)
std: my $Foo::bar; say MY::Foo::<$bar>
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
TimToady std: my $Foo::bar; { say OUTER::Foo::<$bar> } 20:44
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
diakopter std: my $Foo::bar; say ::BLARG::Foo::<$bar>
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
TimToady a typename starting with :: as an rvalue just says to assume there is such a type
std: ::NONESUCH 20:45
diakopter it doesn't mind $bar though
p6eval std 30353: OUTPUT«ok 00:01 106m␤»
TimToady std: NONESUCH
p6eval std 30353: OUTPUT«===SORRY!===␤Undeclared name:␤ 'NONESUCH' used at line 1␤Compilation failed␤FAILED 00:01 106m␤»
diakopter std: say ::BLARG::Foo::<$bar>
p6eval std 30353: OUTPUT«ok 00:01 107m␤»
diakopter hm
TimToady it assumes the namespace hasn't even been created yet
that says someone will create BLARG::Foo, maybe even at run time
it basically turns a compile-time lookup into a run-time 20:46
which may fail, of course
prefix :: just says "Assume this is predeclared though it isn't"
std: ::NONESUCH; NONESUCH; 20:47
p6eval std 30353: OUTPUT«===SORRY!===␤Undeclared name:␤ 'NONESUCH' used at line 1␤Compilation failed␤FAILED 00:01 106m␤»
TimToady doesn't go as far as to predeclare it though
however 20:48
std: my $Foo::bar; Foo
p6eval std 30353: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Foo' used at line 1␤Compilation failed␤FAILED 00:01 107m␤»
TimToady std: my $Foo::bar; Foo; my class Foo {...}
p6eval std 30353: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ 'Foo' used at line 1␤Compilation failed␤FAILED 00:01 107m␤»
TimToady maybe it's broken, but $Foo::bar is supposed to assume class Foo {...} as a stub 20:49
s/assume/declare/ 20:54
std: class Foo::Bar { has $.x }; Foo 20:55
p6eval std 30353: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Foo' used at line 1␤Compilation failed␤FAILED 00:01 107m␤»
TimToady std: class Foo::Bar { has $.x }; Foo; class Foo { has $.y }
p6eval std 30353: OUTPUT«===SORRY!===␤Illegally post-declared type:␤ 'Foo' used at line 1␤Compilation failed␤FAILED 00:01 107m␤»
TimToady hmm, yeah, it's borken somehow
ash__ where do package variables life? in any sort of lexical scope? or are they kept somewhere seperate?
PerlJam ash__: in the package's symbol table. :) 20:56
TimToady package variables live in a package, but a package can be a typename in any namespace incl lexical
moritz_ ash__: 'our $x' has an $x living in the current package, and a lexical alias $x to it
rakudo: our $x = 5; class A { method b { say $x } }; A.b
p6eval rakudo 4c94d7: OUTPUT«5␤»
moritz_ the access to $x is in another package (A), but it still gets the lexical alias 20:57
TimToady my $Foo::bar; is kinda short for my module Foo { our $bar } is it stands
or my package Foo { our $bar } 20:58
decommuting &
ash__ i know lexical values will look into OUTER for a matching name, so packages (eg. our $foo) would declare a lexical $foo and in a separate package table a $?PACKAGE::<$foo> ? 20:59
moritz_ yes 21:00
(afaict)
ash__ i only have lexical scopes and dynamic scopes in my nq-nqp, so i'll have to figure out how i am going to do package scopes
moritz_ hashes :-)
ash__ hehe, thats all my current lexical scope is
a hash + a pointer to OUTER
and i have push(), pop(), top(), and find() 21:01
thats all i have needed for lexical scope
21:07 mikehh joined 21:08 cotto_work joined 21:12 jhuni joined 21:20 silug left
moritz_ phenny: tell jnthn that the 'cool' branch is ready for review and possibly merging. THe only new test failure is in t/spec/S12-introspection/parents.t where the tests are wrong (which I'd fix on merging) 21:23
phenny moritz_: I'll pass that on when jnthn is around.
jnthn moritz_: Cool! 21:24
phenny jnthn: 21:23Z <moritz_> tell jnthn that the 'cool' branch is ready for review and possibly merging. THe only new test failure is in t/spec/S12-introspection/parents.t where the tests are wrong (which I'd fix on merging)
jnthn moritz_++ # thanks for working on this
I'll look over it soon.
ash__ can you not do Foo::<$a> yet? 21:25
moritz_ ash__: nope
moritz_ -> bad 21:27
erm, bed
bad too, sometimes :-)
jnthn ;-) 21:28
night o/
ash__ so, there is no current way of accessing a package var from another package 21:31
?
except using sub's to access it maybe? 21:32
jnthn rakudo: module Lol { our $Cat = 'om nom nom' }; say $Lol::Cat; 21:33
p6eval rakudo 4c94d7: OUTPUT«om nom nom␤»
ash__ oh, i thought i tried that and got a bug, hmm
21:48 orafu joined 21:55 addy_ left 21:57 Sanitoeter joined 22:07 dolmen joined 22:12 IllvilJa joined 22:36 xabbu42 joined, frzntoz left 22:39 mikehh left 22:59 wknight8111 joined 23:07 colomon joined
jnthn o/ colomon 23:08
colomon o/
jnthn How's the move going?
colomon great!
jnthn :-)
23:08 dolmen left
colomon unfortunately, our cable/internet has been out since 9am. 23:08
jnthn Ugh.
colomon I'm actually in the in-laws' driveway, bogarting their wi-fi. (They're at our house, of course!) 23:09
Just pushed the to-radians / from-radians move to Numeric.
jnthn \o/
I've been doing mostly presentation prep, and decided I should maybe catch up with my email queue that I've ignored for the last ages too...
Should get some decent hacking time next week though. :-) 23:10
colomon \o/
jnthn My talks are all on Monday.
colomon in Russia, this is?
jnthn Then I have Tue and Wed free.
Yeah.
colomon sweet.
jnthn No $dayjob things to take care of while I'm there. :-)
colomon good luck with that, and Tues and Wed should be good time for me, though I'll have some $work to take care of, and a pub session to check out. :) 23:11
I need to get going, good travels!
dalek kudo: 43f8659 | (Solomon Foster)++ | src/core/ (4 files):
Move to-radians and from-radians from Any to Numeric, make them public.
jnthn yay pub!
23:11 orafu left
jnthn See you, take care o/ 23:11
colomon \o
23:11 colomon left 23:13 orafu joined 23:28 silug joined 23:34 ShaneC1 joined 23:37 lichtkind joined 23:38 lichtkind left