»ö« | 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 "KxF6ttbullar", 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«yesAny()[]» | ||
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⏏aWhitespace 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 11current 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 valueUse 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_operatorCompilation failedFAILED 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 11current 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 11current 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 &fcurrent 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_operatorUndeclared routine: 'f' used at line 1Compilation failedFAILED 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 &givencurrent 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 &bcurrent 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 &bcurrent 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 &bcurrent 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 messagecurrent 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 messagecurrent 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 zerocurrent 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 2current 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 2current 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.perlCompilation failedFAILED 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 failedFAILED 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 failedFAILED 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_leadingcurrent 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 failedFAILED 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 failedFAILED 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 1Compilation failedFAILED 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 1Compilation failedFAILED 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 1Compilation failedFAILED 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 1Compilation failedFAILED 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 1Compilation failedFAILED 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 1Compilation failedFAILED 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
|