»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
tadzik | okay, sleepytime for me. G'night guys | 00:03 | |
jasonmay | thanks for hacking! | 00:04 | |
soh_cah_toa | see ya | ||
lue | goodnight tadzik o/ | 00:05 | |
00:15
whiteknight joined
00:18
colomon left
00:22
benabik left
|
|||
flussence | nom: our Int $blah = 5; # is the error message right? | 00:25 | |
p6eval | nom: OUTPUT«===SORRY!===Cannot put a type constraint on an 'our'-scoped variable at line 1, near " = 5; # is"» | ||
00:28
wamba left,
wolfman2000 joined
00:40
dayangkun joined
00:41
fbass joined
|
|||
fbass | anyone know how to unban my nick from #perl? | 00:41 | |
00:41
colomon joined
|
|||
fbass | what do I have to /msg? | 00:41 | |
soh_cah_toa | fbass: well, there's the 'unban' command but i think it's reserved only for operators | 00:44 | |
00:44
uasi joined
00:45
Holy_Cow joined
00:46
Holy_Cow left
|
|||
fbass | if I wait long enough will my nick automatically be unbanned? I was trying out a new irc client which autojoined to many times. | 00:48 | |
soh_cah_toa | probably not. i would try contacting one of the operators over there | 00:51 | |
fbass | ok | 00:57 | |
00:57
REPLeffect left
00:59
REPLeffect joined
01:01
fbass left,
frhodes joined
01:07
PacoLinux left,
frhodes left
01:08
frhodes joined,
frhodes left
01:11
REPLeffect left
01:16
REPLeffect joined
01:17
uasi left,
drbean left
01:20
frhodes joined
01:23
ChanServ sets mode: +o Tene
|
|||
Tene | oh, from #perl, not #perl6 | 01:24 | |
01:24
Tene sets mode: -o Tene
01:25
uasi joined
01:26
REPLeffect left,
REPLeffect joined
01:28
uasi_ joined,
uasi left
|
|||
sjohnson | Tene: ... that's better! | 01:31 | |
just kiddin | |||
01:33
uasi_ left,
uasi joined
01:36
mattp_ left
01:40
woosley joined
01:42
whiteknight left,
Holy_Cow joined
01:46
Holy_Cow left
01:51
frhodes left
01:55
donri left
02:00
aber joined
02:01
abercrombie left
02:06
Slot|processor left
02:13
thou joined
02:14
frhodes joined,
frhodes left
02:15
frhodes joined
02:18
aber is now known as abercrombie
02:21
[particle] left
02:27
REPLeffect left,
REPLeffect joined
02:44
jaldhar left,
jaldhar joined
02:47
frhodes left
02:49
jaldhar left
02:54
jaldhar joined
03:00
jdhore joined
03:21
uvtc joined
03:23
benabik joined
|
|||
soh_cah_toa | placing single quotes around a character in a character class is like escaping it, right? it matches the literal charcter so they're not interpreted as metacharacters | 03:25 | |
03:26
frhodes joined
03:27
Su-Shee left
|
|||
soh_cah_toa | b/c it doesn't work with '-'. i still get the message that '..' should be used instead. however, escaping it w/ a backslash does the trick. why would the later work but not the former? | 03:27 | |
03:28
Su-Shee joined
|
|||
sorear | good * #perl6 | 03:32 | |
soh_cah_toa: I don't think you can use single quotes like that | |||
perl6: say grep /<[ 'a' ]>/, "'a".comb | |||
p6eval | niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: cannot bind $/ in KERNEL grep at /home/p6eval/niecza/lib/CORE.setting line 1530 (CORE Regex.ACCEPTS @ 3)  at line 0 (KERNEL grep @ 2)  at /tmp/LIcXooAfyy line 1 (MAIN mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line … | ||
..pugs: OUTPUT«*** Cannot cast from VList [VMatch (MkMatch {matchOk = True, matchFrom = 0, matchTo = 2, matchStr = "'a", matchSubPos = [], matchSubNamed = fromList []})] to Pugs.AST.Types.VCode (VCode) at /tmp/_SY5C8D5qY line 1, column 5 - line 2, column 1» | |||
..rakudo a55346: OUTPUT«'a» | |||
benabik | I don't think it's suppose to work in character classes. | 03:33 | |
soh_cah_toa | what quotes? | ||
i'm pretty sure i read that somewhere | |||
benabik | ysH | ||
sorear | seems Rakudo agrees with me... odd error from niecza though | 03:35 | |
soh_cah_toa | hm, maybe i didn't. so single quotes does mean a literal character EXCEPT in character classes? | ||
guess i just assumed. oh well, not a problem | 03:36 | ||
03:44
frhodes left,
frhodes joined
03:48
[particle] joined
03:58
birdwindupbird joined
04:19
avar left
04:20
wolfman2000 left
04:33
dayangkun left
04:37
abercrombie left
|
|||
soh_cah_toa | perl6: my @foo = "\x30".."\x3a"; .say for @foo | 04:43 | |
p6eval | rakudo a55346, niecza v8-55-g0db7bb8: OUTPUT«(timeout)» | 04:44 | |
..pugs: OUTPUT«0123456789» | |||
soh_cah_toa | i knew it. it's not just mine | ||
it gets stuck and runs forever | |||
04:44
cexsum joined
|
|||
soh_cah_toa | it supposed to print 0 through 9 and a colon | 04:45 | |
04:46
[particle] left,
[particle] joined
|
|||
TimToady | perl6: my @foo = "\x30" ... "\x3a"; .say for @foo | 04:48 | |
p6eval | pugs: OUTPUT«***  Unexpected "\"\\" expecting operator or "," at /tmp/hq743KMyXU line 1, column 22» | ||
..niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: Unable to resolve method ord in class Str at /home/p6eval/niecza/lib/CORE.setting line 1758 (CORE C788_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1793 (CORE C821_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line… | |||
..rakudo a55346: OUTPUT«0123456789:» | |||
soh_cah_toa | perl6: for @foo = '\x30'..'\x3a'; say "$_" for @foo | ||
p6eval | rakudo a55346: OUTPUT«===SORRY!===Missing block at line 22, near "; say \"$_\""» | ||
..niecza v8-55-g0db7bb8: OUTPUT«===SORRY!===Variable @foo is not predeclared at /tmp/sc5raUrzC_ line 1:------> for ⏏@foo = '\x30'..'\x3a'; say "$_" for @fooMissing block at /tmp/sc5raUrzC_ line 1:------> for @foo = '\x30'..'\x3a'⏏;… | |||
..pugs: OUTPUT«***  Unexpected " =" expecting "::" Variable "@foo" requires predeclaration or explicit package name at /tmp/ZhI16PxZdK line 1, column 9» | |||
04:49
cexsum left
|
|||
TimToady | note that ... works better | 04:49 | |
soh_cah_toa | whoops | ||
perl6: my @foo = '\x30'..'\x3a'; say "$_" for @foo | |||
04:49
cexsum joined
|
|||
p6eval | pugs, rakudo a55346, niecza v8-55-g0db7bb8: OUTPUT«\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39» | 04:49 | |
uvtc | nom: say 1 .. 10 | ||
p6eval | nom: OUTPUT«1..10» | ||
uvtc | rakudo: say 1 .. 10 | ||
p6eval | rakudo a55346: OUTPUT«12345678910» | ||
04:50
agentzh joined
|
|||
soh_cah_toa | what's the difference between '..' and '...'? | 04:50 | |
TimToady | well, .. should promote to ... in this case, but doesn't apparently | ||
... is specced to treat single characters specially | |||
so that 9 doesn't wrap to 00 | |||
which is why you're running forever | 04:51 | ||
uvtc | soh_cah_toa, sorry, didn't mean to distract you. After looking at what you were doing, I was going to ask if 10 .. 1 should work. | ||
TimToady | no, but 10...1 works | ||
uvtc | nom: say 10 ... 1 | ||
p6eval | nom: OUTPUT«10 9 8 7 6 5 4 3 2 1» | ||
uvtc | neat! | ||
soh_cah_toa | interesting. what synopsis is it covered in? | ||
TimToady | .. is just interval arithmetic, which means 10..1 is a null range | ||
... is dwimmier, and intended to produce sequences | 04:52 | ||
.. just happens to promote to ... in list contxt | |||
S03:1777 | 04:53 | ||
soh_cah_toa | yeah, there it is | 04:54 | |
uvtc | TimToady: thanks for the link | ||
TimToady | also S03:3376 | 04:55 | |
soh_cah_toa | i'd report it to rt myself but i don't have an account | 04:56 | |
before i head out...i was wondering, is anybody allowed to make contributions to perl6/book? i noticed that testing was on the chapters todo list so i started writing a chapter on it | 05:00 | ||
lue | how is dies_ok supposed to be used? For some reason dies_ok ordinal($googol), "this is why" didn't work ("no applicable candidates found...") | ||
uvtc | soh_cah_toa, I was given access to the perl6 repos a while ago, but IIRC it did not allow me to push to perl6/book. | 05:04 | |
soh_cah_toa | hm, well i'll ask around again tomorrow | 05:05 | |
05:06
soh_cah_toa left
|
|||
uvtc | soh_cah_toa, maybe ping moritz about | 05:06 | |
missed soh_cah_toa by *that* much. :) | |||
dalek | ecs: 187e15b | larry++ | S04-control.pod: document that forward goto requires quotes |
05:13 | |
05:15
Alias left,
Alias joined
05:16
daniel-s left
05:22
daniel-s joined
05:28
tokuhirom joined
|
|||
moritz | good morning | 05:29 | |
uvtc | hi moritz | 05:30 | |
The Rakudo how-to-help page says to email [email@hidden.address] to submit a bug to the bug tracker. But I assume one should search there first to see if the bug report already exists. | 05:36 | ||
How can I search only the existing Rakudo bugs? | 05:37 | ||
(so I don't get results at rt.perl.org for P5 issues) | |||
05:41
wk left
|
|||
sorear | uvtc: use the "perl6" queue | 05:42 | |
05:42
satyavvd joined
|
|||
uvtc | sorear: Is there a way to only search among bugs listed in the perl6 queue? | 05:45 | |
Sorry, nm. Seems like including "perl6" is the search field works fine. | 05:47 | ||
05:51
wtw joined
05:55
tokuhirom left,
tokuhirom joined
06:02
frhodes left
06:14
masak joined
|
|||
masak | good mornz, #perl6 | 06:14 | |
mberends | g'morn masak | 06:17 | |
lue | hello masak o/ | ||
.oO(I've made a *lot* of commits on Numbers::Ordinal tonight) |
06:19 | ||
masak | lue: url? | ||
06:21
koban joined
|
|||
lue | github.com/lue/Numbers--Ordinal/ | 06:21 | |
06:21
koban left
|
|||
masak looks | 06:21 | ||
lue | [well, relatively a lot] and I still want to work on it, but I should start getting ready to go to sleep soon. | ||
masak | nice tests. | 06:23 | |
the last one looks wrong, though. | 06:24 | ||
lue | I was wondering why dies_ok didn't work (I asked earlier) | 06:25 | |
moritz | lue: you need to pass a block to dies_ok | 06:27 | |
lue | [ideally (in terms of full test coverage), the tests would test every number, but that's not feasible. :)] | ||
moritz | lue: grepping roast would have given you > 400 examples :-) | ||
lue | Well now that you mention it, searching the biggest use of the Test module might have helped me out a little (figures I didn't consider it. maybe it's 'cos it's late in the day) | 06:30 | |
sorear | hello masak | 06:35 | |
masak | hi sorear | 06:38 | |
lue: I recommend learning why writing dies_ok without a block around the function call won't/can't work. it's *very* useful knowledge. | |||
lue: I'll be happy to help you along, if you ask pointed questions. :) | |||
lue | My guess is that it needs to control execution of the code, and w/o a block the code is executed before it's passed to dies_ok. The block prevents execution until dies_ok wants it to. Correct? | 06:40 | |
sorear | masak: really? | ||
masak: there is (IMO insane) language in the spec that suggests that Perl 6.0 will allow an unblocked dies_ok | 06:41 | ||
moritz | sorear: if it's defined as a macro, sure | ||
sorear | moritz: Capture is specced to be lazy | ||
moritz | sorear: but laziness isn't guarantueed | 06:42 | |
sorear | captures are read-only but not immutable because accessing positional slots may reify them | ||
lue | [running Numbers::Ordinal on 1 googol returns hilarious results.] goodnight all o/ | ||
moritz | phenny: ask soh_cah_toa what's your github ID? | 06:44 | |
phenny | moritz: I'll pass that on when soh_cah_toa is around. | ||
uvtc | What does '...' mean inside a method definition? | 06:46 | |
masak | sorear: if there is such language in the spec, it is indeed insane, and we should remove it. | ||
lue: yes, correct. | 06:47 | ||
lue: next up: learning to harness the awesomeness of closures :) | |||
lue: did you know that when a block can be "exported" from e.g. a subroutine and executed somewhere else, it still remembers the variables that were in the subroutine? | 06:48 | ||
TimToady | perl6: ... | ||
p6eval | rakudo a55346: ( no output ) | ||
..niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: >>>Stub code executed at /tmp/7875mbUVfd line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2047 (CORE C953_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2048 (CORE module-CORE @ 57)  at /home/p6e… | |||
..pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure at /tmp/3ftouTkZjR line 1, column 1 - line 2, column 1» | |||
06:48
SHODAN joined
|
|||
uvtc | I'd guessed that it indicates a method that subclasses must implement, but that doesn't seem to be the case... | 06:49 | |
TimToady | it fails if you execute the ... | ||
so it indicates a stub | |||
masak | some people on the Internet might not have seen this sign yet: richardwiseman.files.wordpress.com/...aled-2.jpg | 06:50 | |
TimToady | perl6: sub foo {...}; foo // say $! | ||
p6eval | pugs: OUTPUT«***  Unexpected "say" expecting operator, ":" or "," at /tmp/RElZG5mWR8 line 1, column 23» | ||
..rakudo a55346: OUTPUT«===SORRY!===Null regex not allowed at line 22, near " say $!"» | |||
..niecza v8-55-g0db7bb8: OUTPUT«===SORRY!===Null regex not allowed at /tmp/YI3VaJsV4J line 1:------> sub foo {...}; foo //⏏ say $!Action method quote:sym<//> not yet implemented at /tmp/YI3VaJsV4J line 1:------> sub foo {...}; foo //⏏[… | |||
TimToady | perl6: sub foo {...}; foo() // say $! | ||
p6eval | niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: >>>Stub code executed at /tmp/NuYPyrlq6L line 1 (MAIN foo @ 3)  at /tmp/NuYPyrlq6L line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2047 (CORE C953_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line … | ||
..pugs: ( no output ) | |||
..rakudo a55346: OUTPUT«Any()» | |||
uvtc | TimToady: testing ... | 06:51 | |
TimToady | well, niecza does it | ||
perl6: sub foo {...}; try { foo() } // say $! | |||
p6eval | niecza v8-55-g0db7bb8: OUTPUT«>>>Stub code executed» | ||
..pugs, rakudo a55346: ( no output ) | |||
uvtc | nom: class Paint { method foo {...} } class Watercolor is Paint {} my $w = Watercolor.new(); $w.foo; | 06:53 | |
p6eval | nom: OUTPUT«===SORRY!===Confused at line 1, near "class Pain"» | ||
TimToady | S03:2342 is the ... doc | ||
you can't leave out semicolons when the next statemen is on the same line | |||
that is, } assumes semicolon only if it is the final thing on a line | 06:54 | ||
uvtc | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); $w.foo; | ||
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
uvtc | nom: class Paint { method foo {...}; }; class Watercolor is Paint {}; my $w = Watercolor.new(); $w.foo; | 06:55 | |
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
TimToady | that looks like some other bug | ||
moritz | indeed | ||
TimToady | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); | 06:56 | |
p6eval | nom: ( no output ) | ||
TimToady | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.WHAT | ||
p6eval | nom: OUTPUT«Watercolor()» | ||
TimToady | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.perl | 06:57 | |
p6eval | nom: OUTPUT«Watercolor<21621624>» | ||
TimToady | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.defined | ||
p6eval | nom: OUTPUT«Bool::True» | ||
TimToady | nom: class Paint { method foo {...} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.can("foo") | ||
p6eval | nom: OUTPUT«foo» | ||
uvtc | TimToady: thanks very much. :) | ||
TimToady | nom: class Paint { method foo {fail "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo | 06:58 | |
p6eval | nom: OUTPUT«oops in method foo at /tmp/JDxzHKZkYQ:1 in mu <anon> at /tmp/JDxzHKZkYQ:1 in mu <anon> at /tmp/JDxzHKZkYQ:1» | ||
TimToady | nom: class Paint { method foo {... "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo | ||
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
TimToady | rakudo: class Paint { method foo {... "oops"} }; class Watercolor is Paint {}; my $w = Watercolor.new(); say $w.foo | ||
p6eval | rakudo a55346: ( no output ) | ||
moritz | nom: sub f { ... }; f | ||
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
moritz | nom: ... | ||
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
TimToady | looks like ... is the culpret | ||
*prit | 06:59 | ||
moritz | rakudo: sub f { ... }; my $x = f(); $x.defined; say $x | ||
p6eval | rakudo a55346: OUTPUT«Stub code executed» | ||
moritz | nom: fail('Stub code executed') | 07:00 | |
p6eval | nom: ( no output ) | ||
moritz | nom: my $x = (sub { fail('Stub code executed') }).(); $x.defined; say $x | ||
p6eval | nom: OUTPUT«» | ||
moritz thinks he sees the problem in Actions.pm | 07:02 | ||
make PAST::Op.new( :pasttype('call'), :name('&warn'), 'Stub code execute | |||
d', :node($/) ); | |||
erm, s/warn/fail/ | |||
that tries to pass a parrot String to warn/fail | 07:03 | ||
07:04
uvtc left
|
|||
moritz compiles a fix | 07:08 | ||
07:13
thou left
|
|||
moritz | nom: !!! | 07:15 | |
p6eval | nom: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in method REIFY at src/gen/CORE.setting:4201 in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/COR… | ||
07:22
wk joined
07:23
jevin left
07:24
Trashlord left
07:27
jevin joined,
wk left
07:34
Trashlord joined,
mberends left
07:36
mberends joined
|
|||
dalek | kudo/nom: 90e66fb | moritz++ | src/Perl6/Actions.pm: make sure that ..., ??? and !!! pass Perl 6 strings to &fail, &warn, &die uvtc++ for discovering it |
07:40 | |
07:42
im2ee joined
07:46
drbean joined
07:47
wk joined
07:58
donri joined
08:02
kfo_ joined
08:05
kfo left,
cotto left
08:07
donri left
08:08
wk left
08:11
envi left
08:12
im2ee left,
envi joined
08:17
donri joined
08:25
Trashlord left
08:26
im2ee joined
08:28
Trashlord joined
08:29
mishin joined
08:30
mj41 joined
08:34
cosimo joined
|
|||
tadzik | do we even have warn()? | 08:34 | |
nom: warn "foo" | |||
p6eval | nom: OUTPUT«Could not find sub &warn in mu <anon> at /tmp/gFXYiPTKT_:1 in mu <anon> at /tmp/gFXYiPTKT_:1» | ||
moritz | tadzik: no, but it was kinda pointless not to fix the &warn call when I fixed all the others :-) | 08:35 | |
tadzik | :) | 08:36 | |
08:42
wamba joined
08:45
orafu left,
orafu joined
|
|||
tadzik | oh. Everyone, please contribute to github.com/perl6/ecosystem/wiki/St...les-on-nom | 08:47 | |
08:50
dakkar joined
|
|||
mberends | tadzik: ok. has fixing a module for nom ever broken it for master? | 08:51 | |
tadzik | mberends: ...never tried :P | 08:52 | |
tbh, I don't even have master installed now | |||
08:53
Trashlord left
|
|||
mberends | :) | 08:53 | |
dalek | kudo/nom: 9323ff6 | moritz++ | NOMMAP.markdown: add lexical regex lookup to nommap, volunteer pmichaud++ for it :-) |
08:57 | |
moritz | nom: say 1 == Any | 08:59 | |
p6eval | nom: OUTPUT«Use of uninitialized value in numeric contextBool::False» | ||
moritz | nom: say 0 == Any | ||
p6eval | nom: OUTPUT«Use of uninitialized value in numeric contextBool::True» | ||
09:03
avar joined
|
|||
moritz | tadzik: I've updated that wiki a bit | 09:05 | |
tadzik | great | 09:10 | |
moritz: CGI::Application is now there twice | 09:11 | ||
I was trying to keep the list alphabetically sorted | 09:12 | ||
moritz | sorry | ||
moritz fixes | |||
tadzik | no worries | 09:14 | |
09:15
wk joined
09:17
wk left
09:18
daniel-s left
|
|||
tadzik | heh, seems that my first commit was not ordered too :) | 09:19 | |
This type cannot unbox to a native string -- File::Find | |||
fun enough :) | 09:20 | ||
mux guesses one could stringify a File::Find object into a find(1) shell command :-) | 09:21 | ||
09:21
wk joined
|
|||
frettled_ | masak++: Forgot to say this earlier, but I loved your YAPC blog entry :) | 09:22 | |
09:22
scorpil joined
|
|||
moritz | tadzik: does File::Find use pir:: stuff? | 09:22 | |
tadzik | moritz: not at all | ||
sorry for the paste | 09:23 | ||
This type cannot unbox to a native string | |||
in method e at src/gen/CORE.setting:4708 | |||
in method d at src/gen/CORE.setting:4704 | |||
in method ACCEPTS at src/gen/CORE.setting:4274 | |||
moritz | so it's a file test | 09:24 | |
tadzik | yes | ||
funny, because I don't use :e | |||
moritz | in method d | ||
which calls .e | |||
tadzik | okay | 09:25 | |
moritz | nom: say 'foo'.IO | ||
p6eval | nom: OUTPUT«IO<49276216>» | ||
09:26
cosimo left
|
|||
moritz | in Cool.pm: method IO() { IO.new(:path(self)) } | 09:26 | |
that's... dangerous | |||
moritz changes it to self.Stringy, spectests | |||
nom: 4.IO.e | 09:27 | ||
p6eval | nom: OUTPUT«This type cannot unbox to a native string in method e at src/gen/CORE.setting:4708 in mu <anon> at /tmp/jUDg2as2yv:1 in mu <anon> at /tmp/jUDg2as2yv:1» | ||
moritz | nom: 4.IO.d | ||
p6eval | nom: OUTPUT«This type cannot unbox to a native string in method e at src/gen/CORE.setting:4708 in method d at src/gen/CORE.setting:4704 in mu <anon> at /tmp/pTOkKMwzeS:1 in mu <anon> at /tmp/pTOkKMwzeS:1» | ||
09:28
ab5tract joined,
wk left
|
|||
tadzik | nom: say 'src'.IO ~~ :d | 09:28 | |
p6eval | nom: OUTPUT«Bool::False» | ||
tadzik | nom: say dir | ||
p6eval | nom: OUTPUT«60.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 evalbot … | ||
tadzik | nom: cay '.ccache'.IO ~~ :d | ||
p6eval | nom: OUTPUT«Could not find sub &cay in mu <anon> at /tmp/Qn9VUXrBOD:1 in mu <anon> at /tmp/Qn9VUXrBOD:1» | ||
tadzik | nom: say '.ccache'.IO ~~ :d | 09:29 | |
p6eval | nom: OUTPUT«Bool::True» | ||
tadzik | wow, I still like my File::Find code | ||
yes, it's definitely $elem.IO ~~ :d failing | 09:30 | ||
moritz | so what's $elem? | ||
tadzik | nom: dir[1].IO ~~ :d | ||
moritz | a Match maybe? | ||
p6eval | nom: OUTPUT«60» | ||
tadzik | wait, why did it print it | ||
moritz | and why does it print 60? | ||
tadzik | yeah, my question | ||
why 60, and why printed? | |||
moritz | because I'm stupid, and left in debug output | 09:31 | |
moritz-- | |||
tadzik | oh wait, it's File::Find::Result() | ||
but it's Cool, and has a .Str method | |||
it worked in master | |||
moritz | it's a nom bug that Cool.IO doesn't work properly | 09:32 | |
I have a fix here | |||
(File::Find::Result might need to provide a .Stringy method as well) | |||
tadzik | which one is more correct? | ||
.Str dispatches to .Stringy? | 09:33 | ||
moritz | nom: class A is Cool { method Str() { 'Foo' } }; say ~A.new | ||
p6eval | nom: OUTPUT«Foo» | ||
moritz | nom: class A is Cool { method Stringy() { 'Foo' } }; say ~A.new | ||
p6eval | nom: OUTPUT«Foo» | ||
tadzik | maybe F::F::R should just do a Stringy role, instead of being a full blown Cool | ||
moritz thinks it makes sense as Cool | 09:34 | ||
tadzik | nom: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$abar" | ||
p6eval | nom: OUTPUT«===SORRY!===Symbol '$abar' not predeclared in <anonymous> (/tmp/z2OpYHWThT:1)» | ||
tadzik | nom: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$a" | ||
p6eval | nom: OUTPUT«foostringi» | ||
tadzik | looks good enough for me | ||
F::F::R is not really cool. It's just usable as a String | |||
or, someone may want to use it as a string | |||
so maybe Stringy is more appropriate here | 09:35 | ||
rakudo: class A does Stringy { method Stringy { "stringi" } }; my $a = A.new; say "foo$a" | |||
p6eval | rakudo a55346: OUTPUT«fooA()<0x5f46390>» | ||
moritz | someone might want to .match or .subst on the name | ||
that's a Cool operation right now, not a Stringy | |||
tadzik | oh, ok | ||
but method should be Stringy, not Str? | 09:36 | ||
moritz | I think so | ||
dalek | kudo/nom: da40716 | moritz++ | src/core/Cool.pm: fix Cool.IO for non-Str |
||
kudo/nom: f638895 | moritz++ | src/core/IO.pm: remove debug output, tadzik++, moritz-- |
|||
tadzik | Cool itself doesn't have either Str or Stringy method, or maybe in the bootstrap | ||
moritz | nom: Cool.^can('Str') | 09:38 | |
p6eval | nom: ( no output ) | ||
moritz | nom: say Cool.^can('Str') | ||
p6eval | nom: OUTPUT«Str» | ||
moritz | I think that one is in Mu | ||
tadzik | okay | ||
moritz | nom: say Cool.^can('Stringy') | ||
p6eval | nom: OUTPUT«Stringy» | ||
tadzik | method Stringy() { self.Str } | ||
Str it is, then | |||
nom: 'revision?' | 09:39 | ||
p6eval | nom: ( no output ) | ||
tadzik | why doesn't it print revision? Sad panda | ||
rakudo: 'revision?' | |||
p6eval | rakudo a55346: ( no output ) | ||
09:39
daxim joined,
cotto joined
|
|||
moritz | evalbot rebuild nom | 09:41 | |
p6eval | OK (started asynchronously) | ||
09:42
[particle]1 joined
|
|||
tadzik | nom: sub foo ($a as Str) {} | 09:42 | |
p6eval | nom: ( no output ) | ||
tadzik | oh, works? | ||
moritz | a no-op, last I looked | ||
tadzik | nom: sub foo ($a as Str) { say $a.WHAT }; foo(5) | ||
p6eval | nom: OUTPUT«Str()» | ||
tadzik | \o/ | ||
moritz | oh, works \o/ :-) | ||
09:43
[particle] left
|
|||
tadzik | I'm bringing back chdir() and mkdir() | 09:43 | |
I wonder if I could use IoC in panda | 09:44 | ||
well, I could, but how cool would that be. The bad part is that it's pretty slow | |||
or maybe it's just nom | |||
dalek | albot: a8a76b8 | moritz++ | evalbot.pl: report nom revision |
||
tadzik | moritz++ | ||
nom: say dir | 09:46 | ||
p6eval | nom: OUTPUT«60.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 evalbot … | 09:47 | |
tadzik | nom: ".vim" ~~ :d | ||
p6eval | nom: OUTPUT«Method 'd' not found for invocant of class 'Str' in method ACCEPTS at src/gen/CORE.setting:4274 in mu <anon> at /tmp/E9YcNpn6Sd:1 in mu <anon> at /tmp/E9YcNpn6Sd:1» | ||
moritz | evalbot control restart | ||
09:47
p6eval left
|
|||
tadzik | aw, snap :) | 09:47 | |
09:47
wk joined
09:51
p6eval joined,
ChanServ sets mode: +v p6eval
|
|||
tadzik | rakudo: ".vim" ~~ :d | 09:52 | |
p6eval | rakudo a55346: OUTPUT«Method 'd' not found for invocant of class 'Str' in 'Enum::ACCEPTS' at line 5598:src/gen/core.pm in main program body at line 1:/tmp/xnKtVDuTy7» | ||
tadzik | seems that ./S32-io/chdir.t is bogus | ||
moritz | the network connection of the p6eval server is *really* slow when it comes to opening new connections | ||
tadzik | my $subdir = 't'; if $subdir !~~ :d { } | ||
moritz | nom: say '.vim'.IO ~~ :d | ||
p6eval | nom 90e66f: OUTPUT«Bool::True» | ||
tadzik fixes it | 09:53 | ||
moritz | there you go, with revision in the output | ||
tadzik | \o/ | ||
moritz++ | |||
mberends | moritz++ :-) | 09:54 | |
09:56
wk left
|
|||
tadzik | A file test, where X is one of the letters listed below. This unary operator takes one argument, either a filename or a filehandle, and tests the associated file to see if something is true about it. | 09:56 | |
Str ~~ :d is allowed then | |||
masak | huh. | 09:57 | |
where's that from? | 09:58 | ||
moritz | tadzik: that sounds fossilish | ||
masak | agreed. | ||
09:59
birdwindupbird left
|
|||
tadzik | perlcabal.org/syn/S32/IO.html#Other_things | 09:59 | |
09:59
birdwindupbird joined
|
|||
tadzik | yay, File::Tools now fully pass their tests | 09:59 | |
dalek | kudo/nom: 6e4aa6c | tadzik++ | src/core/IO.pm: [IO] Add &chdir and &mkdir |
||
scorpil | is there any useful scripts on perl6 which i can learn from? | 10:01 | |
tadzik | scorpil: see modules.perl6.org for working examples | 10:02 | |
but first of all, perl6.org/documentation | |||
moritz | rosettacode has lots of perl 6 scripts too | 10:04 | |
(but it's linked there, iirc) | |||
scorpil | thanks | ||
tadzik | nom: my $a = eval " sub { [] } "; say $a.perl # correct? | 10:06 | |
p6eval | nom 90e66f: OUTPUT«Any» | ||
tadzik | rakudo: my $a = eval " sub { [] } "; say $a.perl # correct? | ||
p6eval | rakudo a55346: OUTPUT«undef» | ||
tadzik | oh, wait | ||
rakudo: my $a = eval " sub { 1 } "; say $a.perl # correct? | |||
p6eval | rakudo a55346: OUTPUT«undef» | ||
tadzik | hrm, nevermind | ||
moritz | not correct | 10:07 | |
undef is gone. | |||
tadzik | no, it's not what I'm looking for | ||
nom: my $routine = eval "sub \{ 1 \}"; | |||
p6eval | nom 90e66f: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in mu <anon> at /tmp/3wRlqDlNKE:1 in mu <anon> at /tmp/3wRlqDlNKE:1» | ||
tadzik | nom: say pir::typeof(eval "sub \{ 1 \}") | 10:08 | |
p6eval | nom 90e66f: OUTPUT«Null PMC access in name() in mu <anon> at /tmp/oJ1srPemuQ:1 in mu <anon> at /tmp/oJ1srPemuQ:1» | ||
tadzik | crap | ||
moritz | nom: pir::say pir::typeof(eval "sub \{ 1 \}") | 10:09 | |
p6eval | nom 90e66f: OUTPUT«Null PMC access in name() in mu <anon> at /tmp/Hq5DGXJuXr:1 in mu <anon> at /tmp/Hq5DGXJuXr:1» | ||
moritz | nom: say eval('sub { 1 }').WHAT | ||
p6eval | nom 90e66f: OUTPUT«Can only use get_what on a SixModelObject in mu <anon> at /tmp/E8bfORx6ge:1 in mu <anon> at /tmp/E8bfORx6ge:1» | ||
tadzik | survey: eval("sub \{ $code \}") or sub { eval $code } ? | 10:10 | |
they're equivalent, aren't they? | |||
10:11
wk joined,
wk left
|
|||
moritz | well, not if $code contains $^x or so | 10:11 | |
tadzik | I doubt it has | 10:12 | |
see github.com/tadzik/benchmark/blob/m...rk.pm6#L13 | |||
the latter will make it work on nom | |||
and also looks more saneish to me | |||
10:12
wamba left
|
|||
tadzik | are there any circumstances under which sub { eval() } will break here? | 10:13 | |
10:14
wamba joined
|
|||
tadzik | the sub is even not needed | 10:18 | |
PerlJam: sent you a pull request for Benchmark | 10:23 | ||
bbkr_ | rakudo: class A { method ^a ( ::T $a ) { $a.a } }; A.a; # metabomb, hide! :) | 10:25 | |
p6eval | rakudo a55346: OUTPUT«maximum recursion depth exceeded in 'A::a' at line 22:/tmp/XwLBwOFFu_ in 'A::a' at line 22:/tmp/XwLBwOFFu_ in 'A::a' at line 22:/tmp/XwLBwOFFu_ in 'A::a' at line 22:/tmp/XwLBwOFFu_ in 'A::a' at line 22:/tmp/XwLBwOFFu_ in 'A::a' at line 22:/tmp/XwLBwOFFu… | ||
moritz | rakudo: class A { method ^a ($a) { $a.a } }; A.a | 10:26 | |
p6eval | rakudo a55346: OUTPUT«maximum recursion depth exceeded in 'A::a' at line 22:/tmp/PHl8enwptq in 'A::a' at line 22:/tmp/PHl8enwptq in 'A::a' at line 22:/tmp/PHl8enwptq in 'A::a' at line 22:/tmp/PHl8enwptq in 'A::a' at line 22:/tmp/PHl8enwptq in 'A::a' at line 22:/tmp/PHl8enwpt… | ||
bbkr_ | works as expected | 10:27 | |
nom: class A { method ^a ( ::T $a ) { $a.a } }; A.a; | 10:28 | ||
p6eval | nom 90e66f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method a at /tmp/1ZFpGANydY:1 in mu <anon> at /tmp/1ZFpGANydY:1 in mu <anon> at /tmp/1ZFpGANydY:1» | ||
bbkr_ | hmm | ||
mberends | bbkr_: I hope you don't mind that today my load on bbkr.org will be an almost continuous series of nom spectest processes (one CPU only). I'm optimizing benchmarking in tools/test_summary.pl there and on my own Debian system. | 10:34 | |
bbkr_ | mberends: feel free to heat CPUs as much as you like :) | 10:36 | |
mberends | heh :) | ||
10:40
mj41 left
|
|||
bbkr_ | anyone else needs free OS X shell for testing/developing P6 or p6 modules? | 10:40 | |
10:42
mkramer joined
10:43
miso2217 left,
Trashlord joined
10:45
javuchi1 joined
|
|||
javuchi1 | hello | 10:45 | |
is perl6 ever going to be finished | |||
? | |||
mberends | javuchi1: definitely not. We're happy that Perl 5 is not "finished" either, but still getting better :) | 10:46 | |
javuchi1 | nice tricky response | 10:47 | |
tadzik | we have experience | ||
mberends | lots | ||
javuchi1 | may i ask them, is perl6 ever going to be ready for production? | ||
tadzik | yes | ||
and when will that be, that depends on your production | 10:48 | ||
javuchi1 | when? | ||
tadzik | it already is production ready for some of us, and with the time, the number of satisfied consumers is growing | ||
what is your "production ready"? | |||
javuchi1 | answering with a question? ;) | 10:49 | |
tadzik | what makes you think so? ;) | ||
mberends | some parts of the Perl 6 spec are very stable, and supported in multiple implementations. Other parts almost, or not yet. The classic scoreboard is perl6.org/compilers/features | 10:50 | |
tadzik | when you try to find the answer to my question, you'll notice how hard it is to declare something "production ready" | ||
javuchi1 | gcc is production ready | ||
tadzik | hmm | 10:51 | |
Rakudo is like gcc, it also takes ages to compile | |||
it's also like gcc, it doesn't implement all of the spec | |||
10:51
satyavvd left
|
|||
tadzik | it's not like gcc for it generates shitty code, we're working on that | 10:52 | |
it's also slow itself, we're working on that to | |||
javuchi1: I'd really like to answer you with one sentence, but it really _is_ trickier than that | |||
javuchi1 | definitively you have experience in answering ;) | 10:53 | |
mberends | javuchi1: you can view the Perl 6's incompleteness from a "glass half full" or a "glass half empty" attitude. Most people here adopt the former. | ||
javuchi1 | did you consider entering politics? | ||
tadzik | I know, you probably think that I'm trying to trick you into thinking that Perl 6 is good enough for you. But believe me, I came here for the same answer, and I'm here for a year and I'm still not sure :P | 10:54 | |
javuchi1 | haha | ||
tadzik | javuchi1: thought about that, but I'd prefer to be a good programmer one day ;) | ||
javuchi1 | that's a better question | ||
tadzik | so, back into topic: what do you miss from the current implementations? | 10:55 | |
Su-Shee | try it and then use it or don't use it. in the time asking you could have already written some code ;) | ||
tadzik | as you can see, he have a bit "special" viewpoint on "ready", so if you help us with yours, we may be able to make it more easy to appreciate | ||
javuchi1 | i just don't like the idea of using a language which is not well stablished and not always in continuos development of its core | 10:56 | |
tadzik | well, so you don't like Perl 5 either? | 10:57 | |
mberends | javuchi1: unfortunately, Perl 6 is then probably not ready *for you*. | ||
tadzik | you'd like Spec to be stable? | 10:58 | |
masak | javuchi1: more things might be stable than you think. | ||
10:58
tokuhirom left
|
|||
masak | javuchi1: a lot of things have fallen into place in the past three years or so. much of the flux is going on at the edges. | 10:58 | |
but yes, there is flux. | 10:59 | ||
10:59
MayDaniel joined
|
|||
tadzik afk | 10:59 | ||
mberends | I'm impressed with the general roadmap Jesse Vincent presented recently for Perl 5.16, 5.18 and beyond. It has good provision for evolution (breaking cruft) and still gives a nod to backward compatibility. | 11:03 | |
11:04
im2ee left
11:06
tokuhirom joined
11:09
im2ee joined
11:10
ab5tract left
11:18
javuchi1 left
11:19
javuchi1 joined,
mishin left
11:22
MayDaniel left,
tokuhirom left
11:23
buubot_backup left
|
|||
masak | mberends: yes, me too. it provides a fresh hope for Perl 5 -- something that's good both for the Perl community as a whole and for the friendly competition between the sibling languages. | 11:24 | |
mberends | :) | 11:25 | |
11:25
tokuhirom joined
11:28
tokuhirom left
11:29
mj41 joined
11:31
tokuhirom joined
|
|||
moritz rereads www.modernperlbooks.com/mt/2011/08/...-code.html and is again fascinated by the number of wrong assumptions in there | 11:36 | ||
it sounds as if nqp's primary purse was to decouple rakudo from parrot, so that rakudo can ditch parrot when there's a replacement | 11:37 | ||
masak nudges moritz to leave a comment | 11:38 | ||
moritz | that comment box is too small | 11:40 | |
I'd have to write a complete blog post | |||
hm, maybe I should. | |||
11:45
buubot_backup joined
|
|||
masak | +1 | 11:50 | |
11:58
yahooooo left
11:59
yahooooo joined
12:00
cexsum left
12:06
woosley left
12:19
uasi left
12:20
uasi joined
|
|||
cotto | masak, privmsg ping | 12:22 | |
moritz | github.com/moritz/perlgeek.de/blob...ds-nqp.txt any comments before I publish? | 12:25 | |
12:25
molaf joined
|
|||
moritz | I have the feeling that the end is a bit weak, but I'm kinda at loss of words what else to say | 12:25 | |
12:27
Trashlord left
|
|||
lumi_ | "the grammar with which your source code is," -- Missing a verb | 12:34 | |
mberends | "back and forth" missing a "between" | 12:35 | |
moritz | lumi_: thanks | 12:36 | |
both fixed, lumi_++ and mberends++ | |||
cotto | moritz, I'd sit on it for half a day or a few hours. I appreciate the clarification from a Rakudo pov, but it does need a bit more of an ending. | 12:37 | |
maybe something like "we need the metacircularity, VM portability isn't a big concern, this is how a Perl6 compiler has to work" | |||
12:37
Trashlord joined
|
|||
cotto | just to summarize | 12:37 | |
moritz | cotto: sounds good | 12:38 | |
cotto | moritz++ for 'splaining | 12:39 | |
PerlJam | moritz: the paragraph that starts "This is not just because we have a fancy for Perl 6" feels like it's missing something. | 12:42 | |
moritz | PerlJam: better after reload? | 12:44 | |
PerlJam | moritz: yes | 12:45 | |
moritz | good. | 12:46 | |
12:46
Siddy joined
|
|||
PerlJam | moritz: I'd end with the "That's what NQP does for us." paragraph if possible. It's very short and to the point and very much like punctuation at the end of the article. | 12:46 | |
12:47
Trashlord left
|
|||
moritz | I considered that too | 12:47 | |
now I'm a bit repetitive at the end | |||
flussence | :84s/$/h/ | 12:48 | |
PerlJam | flussence: nice catch :) | ||
12:48
wamba left
|
|||
moritz | any other opinions for or against stopping after "That's what NQP does for us." | 12:50 | |
s/\$/?/ # :-) | 12:51 | ||
PerlJam | moritz++ (I especially like how you mention chromatic's "ramble" without accidentally getting caught up in it :) | ||
moritz | PerlJam: that part took some self-constraint :-) | ||
12:53
jaldhar left
|
|||
PerlJam | moritz: If I were the author, I would move the "That's what NQP does for us" paragraph after the succeeding paragraph and remove the final paragraph. (but that's just me) | 12:54 | |
moritz likes it, and does it that way | 12:56 | ||
12:57
abercrombie joined
|
|||
tadzik is back | 13:00 | ||
13:02
cggoebel left
13:06
[particle]1 is now known as [particle]
13:07
cggoebel joined
13:10
Siddy is now known as Trashlord
13:11
[Coke] left,
daniel-s joined
13:14
MayDaniel joined
13:16
mkramer left
|
|||
mberends | moritz: s:1st/parrot/Parrot/ and s/\(or a subset thereof\) itself/itself \(or a subset thereof\)/ and s/part to bytecode/parts to bytecode/ and s/technicals/technical/ and s/above refer/above refers/ and s/need to Perl 6/need to be Perl 6/ and s/be Perl 6 object/be a Perl 6 object/ | 13:24 | |
13:26
daniel-s_ joined
13:27
daniel-s left
13:28
wamba joined
|
|||
moritz | mberends++ # again | 13:29 | |
mberends | more coming... *sigh* ;) | ||
moritz | mberends: want a commit bit? :-) | 13:30 | |
or maybe I should just reread it myself in an hour | |||
cotto | moritz++ for laziness | ||
mberends++ for industriousness | |||
13:33
frhodes joined,
PacoLinux joined
|
|||
masak | moritz: your post is about my favorite part of Perl 6: the (mutual) metacircularity of the grammar and the object system. :) | 13:38 | |
moritz++ # very nice post | 13:39 | ||
moritz | thanks | 13:40 | |
mberends | moritz: s/number literal/numeric literal/ and s/we consequently we/consequently we/ and s/object leaking/objects leaking/ .EOS | 13:42 | |
moritz | mberends++ # again | 13:45 | |
moritz publishes | |||
mberends likes moritz++'s post | |||
13:47
drbean left
13:48
PacoLinux left
|
|||
moritz tries to leave a commen on chromatic's blog, but the OpenID provider produces an Internal Server Error | 13:50 | ||
tadzik | nom: grammar A {}; class A::Actions {}; A.parse('', :actions(A::Actions.new) | 13:51 | |
p6eval | nom 6e4aa6: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1» | ||
tadzik | nom: grammar A {}; class A::Actions {}; A.parse('', :actions(A::Actions.new)) | ||
p6eval | nom 6e4aa6: OUTPUT«too many named arguments: 1 passed, 0 used in mu !cursor_init at src/stage2/QRegex.nqp:491 in method parse at src/gen/CORE.setting:5812 in mu <anon> at /tmp/WWNc1e9Zob:1 in mu <anon> at /tmp/WWNc1e9Zob:1» | ||
13:52
colomon left
13:53
Siddy joined
13:54
Trashlord left
13:55
Siddy is now known as Trashlord,
colomon joined
13:57
PacoLinux joined
|
|||
tadzik | masak: have you seen github.com/perl6/ecosystem/wiki/St...les-on-nom today? | 13:58 | |
13:59
bluescreen10 joined
|
|||
moritz | om: grammar A {}; A.parse('') | 14:00 | |
nom: grammar A {}; A.parse('') | |||
p6eval | nom 6e4aa6: OUTPUT«Method 'TOP' not found for invocant of class 'A' in method parse at src/gen/CORE.setting:5812 in mu <anon> at /tmp/5_hyf_mnDJ:1 in mu <anon> at /tmp/5_hyf_mnDJ:1» | ||
moritz | nom: grammar A {}; A.parse('', :actions) | ||
p6eval | nom 6e4aa6: OUTPUT«too many named arguments: 1 passed, 0 used in mu !cursor_init at src/stage2/QRegex.nqp:491 in method parse at src/gen/CORE.setting:5812 in mu <anon> at /tmp/EH132Kycx5:1 in mu <anon> at /tmp/EH132Kycx5:1» | ||
moritz | tadzik: seems that reductions are simply NYI in QRegex | 14:01 | |
14:02
Holy_Cow joined
|
|||
daxim | www.modernperlbooks.com/mt/2011/08/...-code.html # other side of the story, plz? | 14:02 | |
moritz | daxim: perlgeek.de/blog-en/perl-6/why-raku...s-nqp.html | ||
daxim: I tried to post a comment on chromatic's blog, but the openid provider gave a 500 internal error :/ | 14:03 | ||
14:03
_twitch joined,
wtw left
|
|||
masak | tadzik: looking. | 14:05 | |
tadzik: nice initiative. | 14:06 | ||
tadzik++ | |||
moritz++ flussence++ | 14:07 | ||
abercrombie | Hi, will there be a 'wrap' method for Sub? | 14:10 | |
tadzik | rakudo: Sub.^can('wrap') | ||
p6eval | rakudo a55346: ( no output ) | ||
tadzik | rakudo: say Sub.^can('wrap') | ||
p6eval | rakudo a55346: OUTPUT«wrap» | ||
14:11
Aridai joined
|
|||
tadzik | there is one :) | 14:11 | |
masak | abercrombie: in general, S06 contains answers to questions about subroutines. | 14:12 | |
not that we don't like answering them here; it's just that it's a good source of information. | |||
abercrombie | Thanks. I only tried nom so I was not sure | 14:14 | |
moritz | nom: say Sub.^can('wrap') | 14:15 | |
p6eval | nom 6e4aa6: OUTPUT«» | ||
14:15
jevin left
|
|||
masak | bug? | 14:15 | |
moritz | NYI | ||
14:16
jevin joined
14:18
wk joined
|
|||
masak | OIC | 14:19 | |
moritz | YRL | 14:20 | |
:-) | |||
14:22
tokuhirom left
14:25
frhodes left,
kaare__ joined
14:28
wamba left
14:31
mkramer joined
14:33
mkramer left
|
|||
bbkr_ | moritz++ # NQP explanation, finally I know what it is for :) | 14:34 | |
moritz | :-) | 14:35 | |
tadzik | (: | ||
tadzik writes a subjective Production Ready post | 14:36 | ||
14:39
mls joined
|
|||
tadzik | loliblogged: ttjjss.wordpress.com/2011/08/24/wha...ion-ready/ | 14:39 | |
mls | hi perl6! | ||
moritz | \o/ mls | ||
tadzik | hi mls! | ||
mls | I've a proof-of-concept patch for faster return handling: gist.github.com/1168212 | 14:40 | |
Is that a completely insane approach? | 14:41 | ||
seen jnthn | 14:42 | ||
aloha | jnthn was last seen in #perl6 16 hours 55 mins ago saying "sleep &". | ||
mls | overslept... | 14:43 | |
moritz | pmichaud might appear soonish | ||
masak | seems you port a bunch of PAST to C. is that correct? | ||
or "to PMC" is perhaps more precise. | |||
mls | Not really. Instead of setting up a new continuation in the wrap_return function I reuse the existing continuation of the call context | 14:44 | |
moritz | mls: I'm not really qualified to comment on that patch, I just noticed that the Q:PIR blok can be written as pir:: calls, which is generally a bit prettier | ||
mls | This means I also have to simulate the lexical lookup | ||
moritz | pir::findlex__PS('$parcel') | ||
tadzik | mls: did you try it in-field? | ||
masak | I'm intrigued by the patch, but I also can't accept/reject it. pmichaud will have to do that. | 14:45 | |
mls: did you run the spectests on it? | |||
mls | Yes, it's just proof-of-concept. There's also a really ugly check if the subname starts with _block, which should be done very different | ||
Oh, please do *not* accept it in its state ;) | |||
tadzik | :P | ||
moritz | mls: I might know the solution for that one | ||
tadzik | just curious of the effects | ||
mls | I ran t/spec/S06-advanced_subroutine_features/return.t, seems to work | 14:46 | |
moritz | mls you can check the type of pir::perl6_code_object_from_parrot_sub__PP($block) | ||
tadzik | is it visibly faster? | ||
moritz | mls: if it's not Routine, it's Block | ||
mls | Yes, that's what I was looking for | ||
It should be much faster | |||
Dunno about the "visibly" ;) | 14:47 | ||
It's basically just an idea for pm/jnthn to evaluate | |||
S04-statements/return.t fails because of the _block test. Might work with the Routine check as suggested by you | 14:50 | ||
tadzik | damn this whitespace backtracking :/ | ||
mls | Anyway, I'm experimenting with it because we need to implement "leave" at some time | 14:51 | |
For leave we must be able to jump to some context, which is what the patch does | |||
14:53
scorpil left
14:55
Trashlord left,
Trashlord joined
|
|||
moritz | tadzik++ blog post | 14:56 | |
14:57
_twitch left
|
|||
moritz | now that's some fine polemic: twitter.com/#!/chromatic_x/status/1...8556082176 | 14:58 | |
mls: fwiw your patch causes some spectest failures (I know about it being an experiment only, yes... :-) | 15:00 | ||
15:00
wamba joined
15:01
uasi left,
SHODAN left
|
|||
tadzik | hehe | 15:01 | |
mls | probably because of the _block check | ||
moritz | $ ./perl6 t/spec/S03-operators/context-forcers.rakudo|grep ^notnot ok 37 - trailing chars cause failure | ||
there should be a newline after the first 'not' | |||
tadzik | for how long we have nqp? | ||
moritz | well, it startes as nqp-rx in 2009 | 15:02 | |
felher | moritz++, tadzik++ blogposts. | ||
tadzik | so much for "fourth annual rewrite" | 15:03 | |
15:04
scorpil joined
|
|||
moritz | the first nqp specific commit seems to have been c0a8057a6c5b9ec13f690d81c79783726814ee70, from September 2010 | 15:04 | |
masak | moritz: chromatic's tweet seems to be made by someone who didn't read your post. | 15:05 | |
moritz | masak: he's know as a prolific writer, not as a prolific reader :-) | 15:06 | |
masak | :P | ||
tadzik | or someone who doesn't want to spoil his "I'm angry at you" viepoint | ||
masak | maybe his mental model is blocking his understanding of the blog post. | ||
15:07
daniel-s_ left
15:10
Aridai left
|
|||
tadzik | there we go: www.reddit.com/r/perl/comments/jsw5...needs_nqp/ | 15:11 | |
masak | chromatic: "nqp is X". moritz: "why nqp is Y rather than X". chromatic: "I'd rather read 'why nqp is X'" | 15:12 | |
wow, and chromatic already commented on reddit. | |||
moritz | and he's full of wrong assumptions again. | ||
masak | more of them, it seems. | 15:13 | |
colomon | I dunno, I think he's coming from a pretty reasonable place. | ||
moritz | that doesn't stop him from being wrong. | 15:14 | |
colomon | actually, I don't see anything I think is wrong in that reddit comment | 15:15 | |
moritz | Why is NQP imported into Parrot? | ||
it is not | |||
colomon | isn't there an NQP in the Parrot project? | 15:16 | |
moritz | there's NQP-rx | ||
masak | the new NQP is hosted outside of Parrot too, isn't it? | 15:17 | |
moritz | yes | 15:18 | |
masak | github.com/perl6/nqp | ||
15:18
chromatic joined
|
|||
masak | chromatic: hi. | 15:18 | |
chromatic | Hey, here's a thought. How about reading the entirety of my post? | ||
phenny | chromatic: 28 Sep 22:43Z <[Coke]> tell chromatic planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | ||
moritz | chromatic: I did. Did you read mine? | 15:19 | |
chromatic | I did, and I don't see what it has to do with mine. Hence my suggestion. | ||
masak notes croseed wires in both directions | |||
moritz | well, your question "Why does the current rewrite of Rakudo need a VM independence layer?" indicates that you didn't | ||
masak | <masak> chromatic: "nqp is X". moritz: "why nqp is Y rather than X". chromatic: "I'd rather read 'why nqp is X'" | 15:20 | |
chromatic | I never wrote "NQP is x." | 15:22 | |
moritz | chromatic: starting with nonesense like "4th annual rewrite" on twitter doesn't exactly help the discussion either | ||
chromatic | Why, how many versions of PCT/NQP have there been? | 15:24 | |
Or, perhaps more accurately, how many times has Rakudo had a rewrite of its Parrot layer? | |||
TimToady | not enough | ||
moritz | chromatic: dunno, but I'm pretty sure we're on the first one that's happening this year | 15:25 | |
masak | chromatic: with "x" I meant the second-to-last paragraph in www.modernperlbooks.com/mt/2011/08/...-code.html | ||
chromatic | masak, and that's not what I wrote. | ||
moritz | I don't quite see the "annual" | ||
15:25
wamba left
|
|||
chromatic | masak, do you see the phrase "NQP" anywhere in that post? I don't. I didn't use "NQP" for a very specific reason. | 15:26 | |
TimToady | 4th annual == '4x a year' vs '1x for 4 years' is a potential misunderstanding here | ||
masak | chromatic: which layer do you mean, ooc? | ||
chromatic: 6model? | |||
chromatic | The VM abstraction layer within NQP-rx. | ||
moritz | rakudo/nom doesn't use NQP-rx at all. | ||
masak is confused now | |||
chromatic: how much do you know about current Rakudo development? | 15:27 | ||
finding that out may save us some time. | |||
chromatic | All of the PIR gets shuttled into an abstraction layer, correct? | ||
moritz | please define "All of the PIR" | 15:28 | |
there's lots of unabstracted generated PIR code in a rakudo/nom build | |||
chromatic | Rakudo used to have some handwritten PIR. | ||
moritz | and it still has, but not much | ||
chromatic | NQP-mumble had an inline PIR syntax. | ||
masak | there's an nqp:: namespace that can be used in Rakudo, if that's what you mean... | 15:29 | |
moritz | because it caused lots of problems | ||
chromatic: the nqp still has an inline PIR syntax. | |||
15:29
wamba joined
|
|||
chromatic | Is the current handwritten inline PIR getting abstracted away? | 15:30 | |
masak | we did remove .pir files from the nom branch: pmthium.com/2011/06/14/rakudo-nom-r...pir-files/ | ||
moritz | for example if you did Perl 6 introspection of routines written in PIR, you'd get a BOOMO very soon | ||
*BOOM | |||
chromatic: some of it. Not all. | |||
chromatic | What part of what Patrick wrote in "the pir:: opcodes will ultimately replaced with abstract nqp:: operations that can be more universal than just Parrot." is wrong then? | 15:31 | |
moritz | just do an ack -iw pir src/ in rakudo to see what's still there | ||
chromatic: it was overly optimistic | 15:32 | ||
masak | PIR won't go away anytime soon. :) | ||
chromatic | Is that not a goal? | ||
TimToady | depends on whether PIR evolves into a more usable direction | 15:33 | |
mls | What's wrong in moving some pir from rakudo to nqp? The pir itself doesn't go away. | ||
tadzik | istr Parrot people think about removing PIR one day. It seems like a logical step to abstract PIR away then | ||
mls | Isn't it a good thing to have the vm specific stuff in one place? | ||
TimToady | from the viewpoint of a language, yes | 15:34 | |
15:34
uasi joined
|
|||
moritz | chromatic: since nqp::split compiles down to pir::split, the PIR stays | 15:34 | |
TimToady | not necessarily from the viewpoint of the VM :) | ||
moritz | in some snese | ||
*sense | |||
chromatic | So what of all of this is incompatible with what I wrote? | 15:35 | |
15:36
Trashlord left
|
|||
moritz | chromatic: you made it sound as if you meant NQP with the abstraction layer, and as if the abstraction layer was its primary purpose | 15:36 | |
chromatic: as I mentioned in my blog post | |||
15:36
Trashlord joined
|
|||
masak | I also (wrongly) took "the abstraction layer" to mean "nqp". | 15:37 | |
chromatic | Out of my entire post, that's all the message you took? | ||
masak | surely not. | ||
moritz | chromatic: of course not | ||
masak | it was a nice post, overall. | ||
moritz | chromatic: and I never claimed to reply to the entirety of your post | ||
masak | I liked the metaphors. | ||
TimToady | chromatic: you seem a bit determined to pick a fight | 15:38 | |
chromatic | TimToady, I'm not pleased with a bunch of gossipy speculation on IRC as to my motives and meaning based on a single sentence where I didn't name the thing people seem to be assuming I named. | ||
moritz | chromatic: I just found something that sounded wrong (althought it might not have been wrong if interpreted defensively), and wrote a blog post that clarified it | ||
chromatic | If I wanted to pick a fight, I wouldn't be subtle about it. | 15:39 | |
moritz | chromatic: oh, it's not a single sentence, you've made plenty of pejorative remarks towards NQP before | ||
oh, you think that's subtle? /me *chuckles* | 15:40 | ||
masak | chromatic: in www.reddit.com/r/perl/comments/jsw5...qp/c2euj4w you seem to be very plainly talking about NQP, and not being happy about it. | ||
chromatic | Sure, I think Rakudo and Parrot have taken the wrong technical directions and are getting wronger. | ||
I wrote a post about that yesterday in fact. | 15:41 | ||
moritz | chromatic: indepently of technical matters, how do you feel about rakudo potentially targeting other backends than parrot? | ||
chromatic | Independent of technical matters? I have no current interest in working on it, but I'm not going to tell other people what to work on or not. | 15:42 | |
moritz | chromatic: and how do you feel about it? | ||
I didn't ask what you would tell other people about it | |||
masak | chromatic: "another project external to both Parrot and Rakudo" -- just so I understand here, which external project *did* you mean? what should we have understood you to mean here? | ||
chromatic | I think it's a distraction currently, but probably good for the Perl 6 ecosystem in the long term. | 15:43 | |
masak "another" means "besides Parrot and Rakudo" | |||
masak | which one? | ||
moritz | chromatic: ok, thanks | ||
masak | chromatic: I'm asking because I keep re-reading that paragraph, and the answer that pops up in my mind -- even after your correction -- is NQP. | 15:44 | |
I think it might be a bit unclear the way it's stated. | |||
15:44
M_o_C joined
|
|||
chromatic | But that point is more or less irrelevant to the point of the post. | 15:45 | |
That's my concern. | |||
moritz | chromatic: but which did you mean, if not NQP? | ||
chromatic | If I'd wanted to say "Look, worrying about VM independence right now in Rakudo is a silly distraction" I'd have written that. | ||
I didn't write that because that's irrelevant to my point. | |||
15:46
mkramer joined
|
|||
moritz | chromatic: I'm confused. | 15:46 | |
chromatic: you said you didn't write about NQP, but it was NQP you meant | |||
chromatic | Forget NQP. That point is irrelevant. | ||
moritz | chromatic: I wrote about NQP, and you implied I missed the point. | ||
masak | chromatic: your point seems to be that there's an extra layer between Parrot and Rakudo. your beef with us now seems to be that we thought it was NQP. | 15:47 | |
we didn't misunderstand you on purpose. we're happy to be corrected as to your intents. | 15:48 | ||
chromatic | As I wrote in the final paragraph, there are three projects and no one's sure which one is driving. | ||
That is my point. | |||
There is a PCT imported into Parrot. | 15:49 | ||
There is an NQP-rx snapshot imported into Parrot. | |||
There is an NQP which isn't the NQP which preceded NQP-rx but is a successor to NQP which isn't imported into Parrot, but is imported into Rakudo. | |||
Then there's nom. | |||
At least two of those projects are dead, deprecated, disused, discouraged, or some other word which starts with d. | 15:50 | ||
Now try to figure out where a feature gets added. | |||
moritz | I'm not aware of that | ||
which ones would be dead? | |||
chromatic | You tell me! | 15:51 | |
Are people encouraged to use NQP-rx? PCT? | |||
moritz | well, they all don't look dead to me | ||
chromatic | Does NQP-rx get any support? | ||
masak | chromatic: I think that's a good point. it's not a point I got from your post. | ||
moritz | does parrot get any suport? | ||
does rakudo get any support? | |||
masak has to go | 15:52 | ||
good luck agreeing violently. | |||
chromatic | If the new NQP is the wave of the future, why should anyone use NQP-rx? | ||
15:52
masak left
|
|||
moritz | because it's shipped with parrot, and battle-tested | 15:52 | |
and because parrot uses it for the compilation process, it's going to be there for a while | |||
and it's covered under the deperaction policy (I think), so it gives users stability | 15:53 | ||
(which nqp doesn't) | |||
15:53
xinming left
|
|||
chromatic | It's only shipped with Parrot because Rakudo wanted it! It's an external project developed outside of Parrot so as not to fall under the deprecation policy! | 15:53 | |
Are you starting to see the problem? | |||
TimToady | I think it's obvious that we have two drivers here, and that's why we need an emulation layer that has enough flexibility to be driven from both ends. | ||
moritz | PCT and NQP-rx are really complementary: you use NQP-rx for parsing and building an AST, and PCT to compile it down to PIR | 15:54 | |
15:54
xinming joined
|
|||
chromatic | But there's a PCT as part of the Parrot distribution and NQP-rx isn't part of the distribution. | 15:55 | |
15:55
M_o_C left
|
|||
moritz | but NQP-rx needs parrot, so it uses parrot's PCT | 15:55 | |
chromatic | But NQP-rx has a successor called NQP now. | ||
moritz | successor for Rakudo. It doesn't need to be the successor for everyone | 15:56 | |
and it has a quite drastic philosophy change compared to NQP-rx | |||
(do you start to see a pattern here? :-) | |||
chromatic | Yes, I believe I mentioned rewrites. | 15:57 | |
moritz | and just to be clear, we don't love rewrites, we do them when we see no better option | ||
TimToady | "I will not say, do not rewrite, for not all rewrites are an evil." --Gandalf | ||
chromatic | Does NQP-rx have a future? | 15:58 | |
Does NQP-rx have a maintainer? | |||
Not that my post was about NQP. | |||
15:58
birdwindupbird left
|
|||
moritz | like with all open source projects, it has a future if somebody makes a future for it | 15:59 | |
16:00
autin joined
|
|||
moritz | if your question is "will the Rakudo folks give NQP-rx a future", the answer is probably "no" | 16:00 | |
chromatic | My question is "Is there a maintainer right now?" | ||
moritz | if you mean a formal role, no | ||
TimToady | but we haven't exactly ordered the horse to be sent to the glue factory either | 16:01 | |
chromatic | Is it wrong to characterize it as a project of uncertain future, instigated by a project which no longer uses it? | 16:03 | |
TimToady | emotionally laden words | 16:04 | |
why? | |||
chromatic | Well I'd like to get a straight answer. If that means being a little provocative, fine. | ||
moritz | is it wrong to characterize parrot as a project of uncertain future, instigated by a project which no longer uses it? | 16:05 | |
then "yes" | |||
chromatic | I don't understand, moritz. | ||
moritz | chromatic: is "yes" understandable? | ||
chromatic | Yes, but I don't believe you. | 16:06 | |
moritz | chromatic: so would you rather have a "no"? | ||
moritz confused | |||
chromatic | Does anyone maintain NQP-rx? | ||
Is anyone going to? | |||
Is there a good reason to use it? | |||
Why does it continue to exist? | |||
moritz | irclog.perlgeek.de/perl6/2011-08-24#i_4319918 | 16:07 | |
chromatic | But again, that's not the point of my post yesterday. | ||
arnsholt | .u arrow up | ||
phenny | U+0356 COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW (◌͖) | ||
moritz -> decommute, will backlog | 16:09 | ||
16:09
awoodland joined
|
|||
TimToady | ooh, a chance to backlog :) | 16:11 | |
16:12
Trashlord left
16:14
PacoLinux left
16:16
Trashlord joined
16:18
maja_ left,
maja joined
|
|||
mberends | colomon: I've locally given tools/test_summary.pl a --timing option that does not delay execution at all when not used, and adds less than 6% to the time when used. I still hope you'll use it occasionally :) | 16:20 | |
colomon | mberends++ | ||
mberends | just finishing some final tests on OS X before committing... | ||
colomon suddenly wonders how hard it would be to port Niecza to run on Parrot... | 16:21 | ||
mberends | about as hard as porting Rakudo to .NET ? | 16:23 | |
PerlJam | colomon: at a guess--really hard. | ||
16:23
mj41 left,
PacoLinux joined
16:26
slavik left
|
|||
jnthn | evening, #perl6 | 16:35 | |
mberends | o/ jnthn | ||
PerlJam | greetings jnthn! | ||
colomon | \o | ||
tadzik | hello jnthn | ||
jnthn is a little sick today :/ | 16:36 | ||
16:36
wamba left
|
|||
jnthn | Was too energyless to look for the memory leak last night. May do better this evening. Maybe. :S | 16:36 | |
moritz wishes jnthn a quick recovery | 16:37 | ||
tadzik | insightful: ttjjss.wordpress.com/2011/08/24/wha...comment-83 | ||
jnthn | Thanks. I'm taking the weekend and days around it as mostly offline break. | ||
(Visiting some lovely friends who are very good at looking after me :)) | 16:38 | ||
16:39
frhodes joined
|
|||
jnthn | On Rakudo to .Net port - largely I'm waiting for the PAST-in-NQP thing to resume that, same as we need for inlining. pmichaud++ and I discussed a bunch of stuff at YAPC::EU for the overall roadmap here, but it didn't make a ROADMAP doc yet. I'll fix that after my break if nobody beats me to it :) | 16:41 | |
Immediately priorities beyond nom -> master are the serialization bits, and getting an optimizer that can do static decisions about what multis will be called, when we can figure that out. | 16:42 | ||
s:1st/ly// | |||
16:43
agentzh left,
frhodes left,
frhodes joined
16:49
mj41 joined
|
|||
benabik | jnthn: PAST and POST are working for PIR generation in my Parrot branch. It comes with a nice side of much slower though. | 16:49 | |
jnthn: And are written in NQP, forgot that part. | |||
jnthn | benabik: Yeah, I read that. | ||
tadzik | benabik: NQP or NQP-rx? | ||
jnthn | benabik: Long story short, NQP needs an optimizer. | ||
benabik | tadzik: -rx, but I don't see any reason why it wouldn't work in the newer one. | 16:50 | |
bbkr_ | how recv() in IO::Socket::INET knows there are no more bytes to receive? in other words - why github.com/cosimo/perl6-lwp-simple...le.pm#L156 does not hang forever? | ||
jnthn | (Which, yes, is on my todo list. I actually did have a barebones optimizer in nqpclr...) | ||
tadzik | bbkr_: I suppose Parrot socket is smart enough | 16:51 | |
moritz | probably the peer closes the socket (or a timeout occurs) | ||
bbkr_ | peer closing socket on the other side answered my question. | 16:53 | |
and raises another one - is there a way to check if there are more bytes to receive from socket if this socket is not closed? | 16:54 | ||
PerlJam | bbkr_: that's what select is for | 16:55 | |
tadzik | (which we don't have :() | 16:57 | |
(well, we do, but Parrot hasn't merged that yet) | |||
(for the last 6 months or so) | |||
bbkr_ | ok, thanks. this is nice-to-have option in my MongoDB driver (to validate if response does not exceed declared length on open socket), but if it's NYI I can go without that. | 17:01 | |
17:01
Chillance joined
|
|||
moritz | I think you can always do a $socket.recv($number_of_byters) | 17:01 | |
17:01
awoodland left
17:03
uasi left
|
|||
bbkr_ | moritz: yes, and I do that. Mongo Wire protocol returns int32 first that declare how many bytes are there left to fetch. I wanted to implement/port protection against unexpected trash in response. but this can wait. | 17:04 | |
flussence | nom: Buf.new: ??? | 17:12 | |
p6eval | nom 6e4aa6: OUTPUT«Could not find sub &warn in mu <anon> at /tmp/hDvQXpzmsa:1 in mu <anon> at /tmp/hDvQXpzmsa:1» | ||
flussence | didn't expect that... | ||
17:12
dakkar left
|
|||
benabik | nom: ??? | 17:12 | |
p6eval | nom 6e4aa6: OUTPUT«Could not find sub &warn in mu <anon> at /tmp/kyl_Tz75xj:1 in mu <anon> at /tmp/kyl_Tz75xj:1» | ||
jnthn | nom: warn 'no warn yet' | ||
p6eval | nom 6e4aa6: OUTPUT«Could not find sub &warn in mu <anon> at /tmp/DTMHeqSXF9:1 in mu <anon> at /tmp/DTMHeqSXF9:1» | ||
jnthn | ah | ||
I bet Buf is trying to warn you it's NYI or something | 17:13 | ||
But failing because there's no warn :) | |||
flussence | Buf.new() | ||
nom: Buf.new() | |||
p6eval | nom 6e4aa6: ( no output ) | ||
benabik | It's the ??? | ||
jnthn | oh! | ||
yes :) | |||
flussence | ISTR that woud die a few days ago... | ||
s/$typo/$correct/g | |||
jnthn didn't spot the ??? somehow. :) | 17:14 | ||
flussence | nom: Buf.new([0, 1, 2, 3]).perl.say | ||
p6eval | nom 6e4aa6: OUTPUT«Default constructor only takes named arguments in method new at src/gen/CORE.setting:461 in mu <anon> at /tmp/HUIM2VDzw6:1 in mu <anon> at /tmp/HUIM2VDzw6:1» | ||
flussence | nom: my $a = Buf.new; | ||
p6eval | nom 6e4aa6: ( no output ) | ||
flussence | nom: my $a = Buf.new; say $a.perl | ||
p6eval | nom 6e4aa6: OUTPUT«Method 'iterator' not found for invocant of class 'Buf' in method reify at src/gen/CORE.setting:3502 in method reify at src/gen/CORE.setting:3502 in method gimme at src/gen/CORE.setting:3839 in method eager at src/gen/CORE.setting:3815 in method join at src/… | ||
mls | jnthn: how do I do a type check in perl6.ops? | ||
flussence | ouch. | 17:15 | |
nom: my $a = Buf.new; say $a.^methods».name.perl | |||
p6eval | nom 6e4aa6: OUTPUT«("elems", "infinite", "item", "Int", "Num", "Numeric", "Str", "abs", "conjugate", "sqrt", "sign", "rand", "sin", "asin", "cos", "acos", "tan", "atan", "atan2", "sec", "asec", "cosec", "acosec", "cotan", "acotan", "sinh", "asinh", "cosh", "acosh", "tanh", "atanh", "sec… | ||
flussence | nom: my $a = Buf.new; say $a.^methods(:local)».name.perl | ||
p6eval | nom 6e4aa6: OUTPUT«()» | ||
flussence | er... | ||
not quite implemented? :) | |||
tadzik | I suppose so :) | 17:16 | |
I think it's a stub in Boostrap | |||
jnthn | mls: v ~~ T is along the lines of STABLE(v)->type_check(interp, v, T) | ||
mls | thanks, will use that. | 17:17 | |
jnthn | mls: Which in the usual case boils down to a several pointer comparissions to get an answer. | ||
tadzik | another insight on production-ready Perl 6: ttjjss.wordpress.com/2011/08/24/wha...comment-85 | 17:19 | |
PerlJam | then Perl 6 is ready! | 17:20 | |
O'Reilly already has a "book about Perl 6" | |||
jnthn saw masak reading it the other day :) | 17:21 | ||
bbkr_ | I agree with cognominal on the "production ready" debate. Perl is meant for data processing, and pack/unpack is not still declared in spec. | 17:24 | |
PerlJam doesn't want a "proper equivalent" to perldoc. | |||
PerlJam wants something better! | |||
tadzik | litchkind plans to write something close to metacpan.org/module/grok I suppose | 17:25 | |
flussence | It's 2011, a perldoc clone should at least make use of colour terminals :) | 17:26 | |
pmichaud | good morning, #perl6 | ||
jnthn | hi, pmichaud | ||
mls | morning pm! | ||
tadzik | good evening pmichaud | ||
PerlJam | greetings Pm | ||
tadzik | flussence: doesn't perldoc? | 17:27 | |
it's pretty colorful for me | |||
flussence | hm, the default output is basically a manpage, I suppose it's limited by whatever the man code does. | ||
pmichaud | (okay, I guess it's actually "good afternoon" here.) | 17:28 | |
tadzik | imgur.com/3DQE7 | ||
flussence | I think the linux VT console started using colour to emulate bold/underline recently... | ||
tadzik | worksfortadzik | ||
sjohnson | a lot of work has gone into p6! | ||
PerlJam | flussence: looks like it according to tadzik's screenshot | ||
flussence | oh, there you go then. | ||
mls | pm: I've an idea for a different implementation of return: gist.github.com/1168212 | ||
17:29
masak joined
|
|||
flussence | those red bits are bold on my boring default setup... | 17:29 | |
masak | lleho. | ||
tadzik | sjohnson: happyface! | ||
sjohnson | ( `ー´) | 17:30 | |
masak | chromatic: with the best of my efforts, my summary of what you seemed upset about earlier is "you got that thing wrong that I hinted about near the end of my blog post, but I'm not going to spell it out because it doesn't matter." :/ | ||
pmichaud | mls: what's the purpose of the different implementation? | 17:32 | |
tadzik | sjohnson | ||
++ | |||
eeps | |||
sjohnson | heheh | ||
mls | the idea is to not create a new continuation, but reuse the invoke continuation of the context | ||
so no overhead for return | |||
I think we might need something like this anyway to implement 'leave' | 17:33 | ||
jnthn | mls: Does that not accidentally bypass e.g. return type checks? | ||
sorear | good * #perl6 | ||
chromatic | masak, my point is that I believe all of these efforts to work around the deprecation policy are increasing divergence and not improving things. | ||
jnthn | mls: Or am I misunderstanding? | ||
masak | chromatic: yes. agreed. | 17:34 | |
mls | no, the perl6_return op does the type checking (code copied from perl6_type_check_return_value) | ||
masak | chromatic: but we don't work around the deprecation policy because we like being difficult. | ||
jnthn | mls: And unboxing? | ||
masak | chromatic: we do it because we're developing Perl 6. | ||
jnthn | (if it's not "is rw") | ||
mls | dunno about unboxing, but if it doesn't work with the current patch I don't see whay it can't be made to work | 17:35 | |
jnthn | ok. | ||
chromatic | I have no intention of questioning anyone's motives. All I can do is describe my understanding of the entire process and point out where I think it needs improvement. | ||
masak | chromatic: and I agree with your conclusion. | 17:36 | |
chromatic: I disagree that an unnamed middle layer hurts things further. but we'll see. | |||
mls | It's just an idea with some proof-of-concept patch to show that it might work | ||
tadzik | I'm wondering about a possible performance win | 17:37 | |
mls | So instead of having extra ops in the routines, we have a perl6_return op that does everything | ||
pmichaud | I'd like to see some timings to show how much this actually improves performance. | ||
it feels like a premature optimization. | 17:38 | ||
jnthn | If I understand mls++'s patch correctly, it's a good chance of being a win...but what pmichaud++ said. | ||
chromatic | moritz, IFF features migrated into Parrot, it wouldn't bother me. But they haven't and they don't appear to, 6model notwithstanding. Divergence appears to be increasing. | ||
masak | maybe that was directed at me. | 17:40 | |
tab completion reaps another victim. | |||
PerlJam | funny, I didn't even notice he'd typed "moritz" until you said something | 17:41 | |
masak | chromatic: what divergence I've seen doesn't worry me too much. do you have something particular in mind, assuming that 6model will get into Parrot? | ||
(which would be really great, by the way) | |||
pmichaud | pct is diverging. | 17:42 | |
.oO( was it something I said? ) |
17:48 | ||
pmichaud reads posts. | |||
jnthn | :) | ||
tadzik | quick, get into #parrot and help with Select PMC! | ||
masak | chromatic: do you have something particular in mind? | 17:51 | |
pmichaud jumps into #parrot and "helps" with the Select PMC. :-) | |||
mls | moritz: there's a "say $elems;" in your &dir implementation, is that intentional? | 17:52 | |
tadzik | mls: git pull | ||
PerlJam wonders if select will be bikeshedded to death. | |||
tadzik | mls: we tracked that down this morning | ||
mls | ok, missed that. | 17:53 | |
pmichaud | PerlJam: that's why I've been advocating that we prototype it in the rakudo repo, along with IO::Socket or whatever p6 api we decide to have. At least the bikeshedding occurs in one place. Also, whoever writes the implementation gets first dibs on what it looks like :) | ||
tadzik | and we can say "write your own if you don't like this one" and people will shut up :P | 17:54 | |
(no offence to anyone, I'm just looking funny in p6l direction) | 17:55 | ||
masak | I really like the idea of prototyping on the HLL level and then integrating stuff into Parrot. | 17:56 | |
pmichaud | yeah | ||
masak | requirements flow top-down. | ||
pmichaud | that's really what happened when the HLLs were part of the Parrot repo, but moving things out of the repo meant that it didn't work well that way any more | ||
dalek | kudo/nom: 40fbe3e | (Martin Berends)++ | / (2 files): [tools/test_summary.pl] add --timing option for simple benchmarking |
||
sjohnson | is lisp a compiled language? | ||
tadzik | which lisp implementation do you mean? | 17:57 | |
jnthn | Is English a compiled language? :) | ||
tadzik | yeah, this ;) | ||
mls | pmichaud: return speed: seems to make a function with a single "return 1" 10% faster | ||
tadzik | ooh | ||
tadzik waits for a recursive fibonacci benchmark :P | |||
jnthn | sjohnson: For many language you can write an interpreter or a compiler. | 17:58 | |
17:58
envi left
|
|||
jnthn | sjohnson: I'm pretty sure lisp has examples of both. | 17:58 | |
17:58
PacoLinux left
|
|||
sjohnson | jnthn: ok. what do you think it's most common usage is? | 17:58 | |
flussence | test_summary.pl line 183: "processes all unfudged files" - but the code doesn't appear to ignore fudged ones... | ||
masak | chromatic: with the nom branch, Rakudo is taking a big leap forward in terms of features and general model robustness. you complain about divergence. when I ask for specific examples, you go silent. | ||
sjohnson | i would say for p5, running an interpretor. same with lisp maybe? | ||
17:59
PacoLinux joined
|
|||
tadzik | the divergence is caused by Parrot not doing things well enough, I suppose | 17:59 | |
mls | point is, with leave() we need to either do something like the patch does or add a continuation to every block | ||
pmichaud | I don't think we can implement leave() without some very specific parrot support. | ||
jnthn | mls: I'm starting to see the connection with leave() :) | ||
mls | tadzik: 10% isn't that much | ||
tadzik | mls: I still like it | ||
pmichaud | and so I'm hesitant to commit to a particular strategy for handling it before we see what we can get from parrot. | 18:00 | |
mls | I'd call 10% premature optimization if it makes the code more complex | ||
jnthn | pmichaud: It may be that "find the correct return continuation and invoke it" is a sane approach, but yeah, I'd like to consider more. Especially given than it doesn't answer how LEAVE gets done. | ||
pmichaud | yeah, 10% here isn't a 10% overall speedup, it's just a 10% improvement for the return statement. | 18:01 | |
18:01
Tedd1 left
|
|||
jnthn | sjohnson: Dunno, I'm not much of a lisp user. I just know how its meta-model works. :) | 18:01 | |
mls | not really, 10% for every function (regardless of return) | ||
pmichaud | 10% for every function containing one statement. | 18:02 | |
mls | it's the wrap_return_handler code I want to get rid of | ||
tadzik | I don't think it's linear | ||
chromatic | masak, dispatch, subs, objects, primitives, etc. | ||
18:02
Lorn left
|
|||
pmichaud | if a function contains a bunch of statements, then the percentage reduction is obviously much less :) | 18:02 | |
tadzik | chromatic: Parrot's metamodel turned out to be not enough. He-who-must-not-be-named has its own, working for us, and now Parrot wants to adopt it. What's wrong with prototyping stuff outside of Parrot? | ||
mls | yes, of course. as I said, 10% isn't much. | 18:03 | |
18:03
simcop2387 left
|
|||
pmichaud | anyway, I'm not opposed to the patch -- I'm glad to see it developed -- but I'd really like to see how we'll handle leave too. | 18:03 | |
chromatic | Nothing's wrong with prototyping. Whoever said otherwise? | ||
mls | you mean LEAVE{}, not leave(), right? | 18:04 | |
pmichaud | mls: well, both. | ||
18:05
miso2217 joined
|
|||
mls | leave() is easy | 18:05 | |
18:05
Lorn joined
|
|||
tadzik | chromatic: I had an impression that you don't really like nqp having its own objects, dispatching and so. If I'm wrong, nevermind | 18:05 | |
mls | if you have the parrot ctx, just return from it (like the patch does) | ||
masak | chromatic: I think each of these features correspons to dozends of closed RT tickets. if we were still using Parrot's building blocks, they'd still be open. | ||
corresponds* | |||
chromatic | tadzik, I don't. | 18:06 | |
PerlJam | masak: um ... that sounds like part of chromatic's point to me. (in a meta way) | ||
18:06
mkramer left
|
|||
tadzik | pardon then | 18:06 | |
masak | PerlJam: yeah, I think so too. | ||
PerlJam: part of talking past each other is that we probably agree to some extent. | |||
PerlJam | indeed | 18:07 | |
masak | we're just being flamey and asbestosy about it. | ||
18:07
simcop2387 joined
|
|||
chromatic | Divergence--especially for prototyping-is fine *if* convergence happens. | 18:07 | |
pmichaud | chromatic: your post recommends "The right solution is to invent a time machine and not kick Rakudo out of the nest.". Given that time machines are in short supply, I couldn't tell what your proposed fallback solution is (if there is one) | ||
masak | chromatic: naturally. | ||
chromatic | pmichaud, kick stuff out of NQP and back into Parrot as much as possible. | ||
tadzik | everyone's waiting for m0 I guess | 18:08 | |
PerlJam | chromatic: that doesn't not sound like a recipe for success right now | ||
tadzik | I mean, whiteknight++ plans to migrate 6model to Parrot | ||
pmichaud | I don't have any desire to be re-bound by Parrot's cultural and policy constraints. | ||
PerlJam | er, s/doesn't not/does not/ | ||
chromatic | That's because Parrot's constraints are wrong | ||
pmichaud | No argument there. | ||
chromatic | and part of the reason they're still wrong is because this divergence continues. | ||
mux | who needs success? | ||
chromatic | Declaring Parrot as 1.0 and treating it as an end user black box product was foolish and wrong. | 18:09 | |
mls | pmichaud: for LEAVE and friends, do you think that we could implement it with a pct block handler? | ||
pmichaud | mls: not likely. | ||
mls: the problem is that we need some way of invoking continuations as parrot subs are being "rolled up" | |||
mls | and use some introspection in perl6_return to call the LEAVE blocks in the return case? | 18:10 | |
jnthn | mls: Taht won't work. | ||
pmichaud | mls: I think we have to have Parrot automatically call our leave blocks. | ||
jnthn | mls: We have to unwind after running an exception handler too. | ||
Unless it decides to resume, in which case we never unwind. | |||
mls | Yes, I'm pondering if we need the magic in parrot or on the rakudo side | ||
pmichaud | chromatic: I agree that "end user black box product" has been demonstrably wrong also. | 18:11 | |
chromatic | I should add "in retrospect this is obvious". At the time it wasn't so obvious. | ||
masak | is there any way to back down from that decision? | ||
mls | we have control over return and exception unrolling, so it might work with rakudo | ||
18:11
birdwindupbird joined
|
|||
pmichaud | I did say at PDS 2008 that I thought it was horribly wrong and that Rakudo couldn't possibly work with that. :) | 18:11 | |
chromatic | Yes you did. | ||
masak, first there has to be rough agreement that a problem exists here and second a rough agreement on what the problem is. | 18:12 | ||
PerlJam | This feels like an echo-chamber discussion without involving #parrot. | ||
pmichaud | PerlJam: I disagree. | ||
PerlJam: it would be good for us to know what we seek from parrot before we seek it. :) | 18:13 | ||
benabik | PerlJam: There's a subsection of #parrot watching… | ||
jnthn | afk for a bit | 18:14 | |
flussence just realised test_summary.pl is inflating the total spectest count by about 14000 or so | |||
pmichaud | flussence: very likely. | ||
flussence | on the positive side, I've rewrote my graph thing to extract the numbers from make spectest, so I get a (working) parallel implementation for free. Might be feasible to redo the entire thing... | 18:15 | |
mls | also afk... | ||
18:16
autin left
18:19
wk left
|
|||
PerlJam | pmichaud: so ... what would you seek from parrot? I get the impression that putting things "back the way they were" would be counter productive. Would a faster release cycle help? Is the crux of the problem, the deprecation policy or something more? | 18:23 | |
mberends | flussence++: excellent sleuthing! I'll look into fixing the 'plan' totals :) | 18:24 | |
pmichaud | PerlJam: I'm no longer seeking things from parrot, tbh. | 18:25 | |
18:25
PacoLinux left
|
|||
flussence | mberends: it seems to be counting t/spec/* instead of t/spec/*.t, so every fudged file gets counted twice. It'd explain why my graph has random sudden spec changes... | 18:26 | |
mberends | flussence: indeed, test_summary.pl:187, but istr that grep fails on a *.t because the directory names do not end in .t | 18:27 | |
flussence | I just decided to use ack -G for mine :) | 18:28 | |
.oO( now there's an idea: making ack usable as a module... ) |
18:29 | ||
mberends | ack is not always installed, I'd rather work around to not add a dependency (Debian's ack is called ack-grep for example) | ||
flussence | well, find | grep | xargs grep would work... | 18:30 | |
mberends | yeah, that's an idea :) | ||
jnthn | grep...xargs...what're those? :P | ||
flussence | a series of tubes. | ||
mberends | oops | ||
jnthn | ;-) | ||
jnthn , your handy Win32 troll :) | 18:31 | ||
flussence | (nooooo, not File::Find again...) | ||
tadzik | what's wrong with it? | ||
flussence | I dunno, I think I just like the command line stuff for being shorter | 18:33 | |
mberends | the existing code collects all the filenames as well, lines 197-198 extract them but do not filter (yet). | 18:35 | |
18:36
PacoLinux joined
18:37
ab5tract joined
|
|||
mberends | flussence: fixing and testing... # holding on to the pumpkin a little longer | 18:37 | |
18:41
Trashlord left
18:42
sftp left
18:44
sftp joined,
daxim left
18:50
frhodes left
18:51
wamba joined
18:55
ab5tract left
|
|||
TimToady would certainly like to bikeshed select to death and replace it with a sane event handler | 18:58 | ||
pmichaud hands TimToady a commitbit. :-) | 18:59 | ||
TimToady already abuses the commitbits he has | |||
pmichaud | "forgiveness" > "permission" :-P | 19:00 | |
19:01
mkramer1 joined
|
|||
TimToady | dunno, there are some things I've done that a heap o' people haven't forgiven me for yet :) | 19:01 | |
19:02
frhodes joined,
molaf left
|
|||
pmichaud | I wonder if that's an unintended consequence of "Rule 2" somehow. :) | 19:02 | |
masak | rakudo: say "forgiveness" gt "permission" | ||
TimToady | though, it's more like the things I haven't done that people hold against me :) | ||
p6eval | rakudo a55346: OUTPUT«Bool::False» | ||
masak | :) | ||
pmichaud | rakudo: say "forgiveness" gt "Permission" | 19:04 | |
p6eval | rakudo a55346: OUTPUT«Bool::True» | ||
pmichaud | rakudo: say "forgiveness" gt " permission" | ||
p6eval | rakudo a55346: OUTPUT«Bool::True» | ||
mberends | ooh, the cheats! | ||
TimToady | ooh, a whitespace dependency | ||
why do we call it "whitespace" when it's black on my terminal? | 19:05 | ||
masak | blame Gutenberg. | 19:06 | |
pmichaud | because most of us are used to writing on light-colored media | ||
19:07
frhodes left
|
|||
TimToady | like blackboards :) | 19:07 | |
sbp | take a photo, the negatives might hold the answer | ||
anybody got a 35mm film camera still? | |||
mberends | or a 35mm still camera? | 19:08 | |
TimToady | I have lots of stills | ||
tadzik | I have lots of cameras | ||
19:09
Trashlord joined
|
|||
pmichaud | stills are legal in Calif? | 19:09 | |
now I know where TimToady++ gets some of his wackier ideas. :) :) | |||
tadzik | since d156fc0bbf7 we now have non-blocking IO capabilities :) | ||
masak | wow! | 19:10 | |
19:10
nebuchadnezzar left
|
|||
masak | does that imply non-blocking sockets, too? | 19:10 | |
19:10
nebuchadnezzar joined
|
|||
TimToady | ooh, quick, write a thread scheduler | 19:10 | |
tadzik | masak: long story short, we have select | 19:11 | |
I'm now writing IO::Select | 19:12 | ||
masak | \o/ | ||
tadzik | it'd probably help if I used the original IO::Select even once, but yeah, whatever. I can look at the tests | ||
19:13
supernovus joined
|
|||
jnthn | tadzik++ | 19:14 | |
tadzik | do we have a way to obtain a File Descriptor from an IO handle? Something that could uniquely identify it? | ||
TimToady tries to make a pun on still-born ideas, and fails... | |||
masak | all you got was an autopun. | 19:15 | |
TimToady always tries to level-up without also un-level-downing | 19:16 | ||
masak | that's strange and a bit loopy. :) | ||
TimToady rarely GC's his continuations | 19:17 | ||
masak | this explains so much :P | ||
pmichaud wonders how much GC takes place at all. :) | 19:18 | ||
19:18
supernovus left,
sftp left
|
|||
pmichaud | "one man's trash is another's treasure", and all that. :) | 19:18 | |
19:19
sftp joined
|
|||
pmichaud | U.S. east coast seems to be the site of the apocalypse. Earthquakes, an impedingin category 3/4 hurricane, and then Congress is back in session. | 19:20 | |
*impending | |||
19:20
PacoLinux left
|
|||
TimToady | well, they all make trash, fershure | 19:21 | |
19:25
natureboy joined
19:27
javuchi1 left
|
|||
pmichaud | benabik: in what context does sub a:b['c'] { ... } arise, ooc? | 19:29 | |
benabik | pmichaud: token special_character:sym['$<'] | ||
pmichaud: The abc example is just me trying to golf the error. | |||
pmichaud | benabik: where is that from? | ||
lue | hello planet o/ | 19:30 | |
benabik | pmichaud: nom:src/Perl6/Grammar.pm | ||
19:30
Sarten-X left
|
|||
tadzik | hello lue o/ | 19:30 | |
pmichaud | that should be rewritten to use angles | 19:31 | |
tadzik | what is the nom way of making RPA an Array? | ||
pmichaud | tadzik: normally RPAs become Parcels | ||
but if you want it to become an array, use nqp::p6list | |||
benabik | pmichaud: Sorry, special_variable:sym['$<'] | ||
19:31
javuchi joined
|
|||
tadzik | pmichaud: I just want something I can map over | 19:31 | |
19:32
javuchi left
|
|||
lue | pmichaud: on the west coast, a once-every-300-years tsunami/earthquake is overdue, as well as some volcanic eruptions up in Washington :/ | 19:32 | |
pmichaud | tadzik: are all of the elements of the RPA Perl 6 objects? | ||
tadzik | pmichaud: I'm quite sure none is | 19:33 | |
benabik | pmichaud: Rewriting it would probably make it work, but wouldn't fix the underlying problem. That syntax should be disallowed or work properly. Getting the raw address of a PCT node in there instead is wrong. | ||
pmichaud | benabik: NQP doesn't try to be strict about syntax. | ||
tadzik | I think they're parrot strings | ||
pmichaud | benabik: NQP is lower level than that. | ||
tadzik: if they're parrot strings, then simply putting them into an Array container won't help. | 19:34 | ||
19:34
wk joined
|
|||
tadzik | pmichaud: I'm doing @ids.map: { %!handles{nqp::unbox_s($_)} }; | 19:35 | |
where @ids is an RPA | |||
pmichaud | tadzik: that won't work, for many reasons. | ||
for one, you're passing an unboxed string to postcircumfix:<{ }> | 19:36 | ||
tadzik | pmichaud: ...but I just did unbox it? | ||
oh, I see | 19:37 | ||
pmichaud | I don't think we're allowed to pass unboxed values to Perl 6 functions. | ||
at least, not yet. | |||
tadzik | I should box it instead, I suppose | ||
a typo of mine | |||
pmichaud | even if you box it, the problem then is that $_ is being bound to a non-p6 type | ||
which means that the block invocation itself will fail | |||
tadzik | I see | ||
pmichaud | (because we can't pass Parrot Strings to P6 blocks) | 19:38 | |
tadzik | so I can't use map? | ||
pmichaud | not on an RPA | ||
tadzik | oh, I can't use for either | ||
benabik | pmichaud: The assertion that NQP is too low level for syntax errors bothers me. If nothing else, the only reason I noticed nom wouldn't parse $< correctly is because I happened to be looking through the generated PIR. Silent errors are bad. | ||
tadzik | pmichaud: what if I nqp::p6list() it? | ||
pmichaud | benabik: yes, I can agree with that. The solution will be for NQP to disallow the syntax. | ||
benabik: but there are lots of places where NQP "allows" things that aren't really valid. NQP is intended to be light and simple, ultimately. | |||
19:39
Sarten-X joined
|
|||
pmichaud | tadzik: p6list doesn't help, because the elements aren't p6 objects | 19:39 | |
p6list doesn't know how to map Parrot values | |||
tadzik | I see | ||
but I can manually iterate over them? | 19:40 | ||
pmichaud | you can use nqp::iterator($rpa) | ||
and nqp::shift | |||
19:41
birdwindupbird left
|
|||
tadzik | okay, I'd use that | 19:42 | |
pmichaud | note that the iterator and shifted values both have to be bound to a variable of type Mu | ||
tadzik | hrm, can I load a dynpmc with a pir:: or Q:PIR, or do I have to stick them into Rakudo/nqp somewhere? | ||
yeah, I know I can't assign | 19:43 | ||
19:43
sftp left
|
|||
tadzik | rakudo: Q:PIR { loadlib 'OS' } | 19:43 | |
p6eval | rakudo a55346: OUTPUT«===SORRY!===error:imcc:The opcode 'loadlib_sc' (loadlib<1>) was not found. Check the type and number of the arguments in file '(file unknown)' line 34186795» | ||
pmichaud | I don't remember if there's an opcode for dynpmcs. probably needs to be added to the static list. | 19:44 | |
tadzik | rakudo: Q:PIR { $P0 = loadlib 'OS' } | ||
p6eval | rakudo a55346: ( no output ) | ||
tadzik | nom: Q:PIR { $P0 = loadlib 'OS' } | ||
p6eval | nom 40fbe3: ( no output ) | ||
tadzik | hrm | ||
jnthn | nom: pir::loadlib('OS'); | ||
tadzik | nom: Q:PIR { $P0 = loadlib 'select' } | ||
19:44
sftp joined
|
|||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===error:imcc:The opcode 'loadlib_p_p' (loadlib<2>) was not found. Check the type and number of the arguments in file '(file unknown)' line 15466162» | 19:44 | |
nom 40fbe3: ( no output ) | |||
jnthn | nom: pir::loadlib__vs('OS'); | ||
tadzik | I get Confused at line 1, near "Q:PIR { $P" | ||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===error:imcc:The opcode 'loadlib_s' (loadlib<1>) was not found. Check the type and number of the arguments in file '(file unknown)' line 32698035» | ||
pmichaud | tadzik: you might need a semi | 19:45 | |
Q:PIR blocks don't (yet) imply the semi at the closing brace | |||
jnthn | nom: pir::loadlib__vs('OS'); say 'ok' | ||
tadzik | nah, doesn't help | ||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===error:imcc:The opcode 'loadlib_s' (loadlib<1>) was not found. Check the type and number of the arguments in file '(file unknown)' line 331» | ||
jnthn | nom: pir::loadlib__Ps('OS'); say 'ok' | ||
p6eval | nom 40fbe3: OUTPUT«ok» | ||
tadzik | thanks jnthn | 19:46 | |
19:49
envi joined
19:50
envi left
19:51
envi joined
|
|||
moritz | tadzik: fwiw the &dir function has an example of how to iterate a ResizableStringArray | 19:52 | |
tadzik | for now I have to struggle with loadlib :) | ||
moritz | it's not the prettiest of solutions, but works solidly | 19:53 | |
masak | rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say "Perl 5's { superlative "spunky" } little sister!" | ||
p6eval | rakudo a55346: OUTPUT«Perl 5's spunkiest little sister!» | ||
masak | \o/ | ||
tadzik | rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say superlative 'b' | ||
p6eval | rakudo a55346: OUTPUT«best» | 19:54 | |
masak | :P | ||
jnthn | rakudo: sub superlative { $^s.subst(/y$/, 'i') ~ 'est' }; say superlative 'sly' | ||
p6eval | rakudo a55346: OUTPUT«sliest» | ||
masak | hey! | ||
rakudo: sub esperanto-superlative { "plej $^s" }; say esperanto-superlative "bona" | 19:55 | ||
p6eval | rakudo a55346: OUTPUT«plej bona» | ||
masak | regulatity++ | ||
tadzik | rakudo: sub esperanto-superlative { "plej $^s" }; say esperanto-superlative "ground" | 19:56 | |
p6eval | rakudo a55346: OUTPUT«plej ground» | ||
tadzik | it's funnier if you know polish pronounciation :) | ||
jnthn | :D | ||
masak | :P | ||
pmichaud | I'm wondering if I should comment on various aspects of chromatic++'s and moritz++'s posts, or if I should just let things sit a while and see what develops. | 20:00 | |
moritz | pmichaud: the latter probably wastes fewer resources :-) | 20:01 | |
pmichaud | moritz: yeah, that's likely true. | ||
moritz | pmichaud: though of course if you found errors or inaccuracies in my post, I'd like to know anyway :-) | ||
jnthn isn't planning to comment, fwiw | 20:02 | ||
20:02
frhodes joined
|
|||
TimToady has already sniped^Wcommented all he wants to... | 20:02 | ||
chromatic | Sadly I suspect nothing is going to change for the better. | ||
pmichaud | chromatic: yeah, which is why I'm thinking it's not useful to stir the pot. :) | 20:03 | |
both posts are excellent, btw. | |||
chromatic | I take the opposite approach. Sometimes you have to talk about the elephant in the room if you want to get rid of it. | ||
tadzik | chromatic: by "change for the better" you mean "Rakudo folks start to backport things down to Parrot"? | ||
chromatic | If that's the right solution, yes. It might not be. | 20:04 | |
pmichaud | sometimes talking about the elephant in the room simply means people start to ignore you as being part of the elephant. That's been my experience with this particular elephant. | ||
tadzik | as if we had enough manpower | ||
chromatic | I see it as a question of priorities. | ||
masak .oO( we need more elephant-power ) | 20:05 | ||
20:05
bluescreen10 left
|
|||
diakopter | who's got the elephant-gun | 20:06 | |
jnthn | I had one, but I left it in my trunk... | ||
pmichaud | the main comment I have is on "... in the hope that someday someone will add another VM backend ...". It's not merely a hope to us... it's part of the plan. Granted, it's a medium-term and not short-range plan, and perhaps it's chasing at windmills, but that is where we intend to go. | ||
lue | From those two posts, I gather that the core of Rakudo (the grammar) is written in NQP, compiled to PBC by nqp, then that compiles the P6 of the rest of the project to PBC. | ||
sjn likes e elephants. especially the pink belgian ones. | |||
masak | chromatic: I have no reason to assume that your goals are different from the Rakudo team's. but we do seem to have different perspectives on that goal. | ||
chromatic | Sure. | 20:07 | |
From my perspective, the Rakudo approach seems to be "Add as many features as fast as possible" and that leads to lots of rewrites. | |||
masak | er. | ||
chromatic | That also leads to a lot of "Parrot can't move fast enough for Rakudo" and "Sure, we poked into lots of Parrot guts, but you can't break things per the deprecation policy." | 20:08 | |
mberends | would Parrot people ever consider the total abolition of their deprecation policy? It seems to cause practical problems, but has only theoretical benefits. | ||
masak | chromatic: "add features => rewrites". you're not factually wrong, but that's an odd way of putting an essentially good causal relation. | ||
moritz | chromatic: if we knew how to add the features without having to redoing them later on, we would | ||
chromatic: you know, the research aspect you mentioned yourself | |||
TimToady | From my perspective, Perl 6 will have the bigger elephant gun in a year, and will end up rescuing Parrot from the so-what-ers. | 20:09 | |
lue | remember, nobody's ever implemented a complete Perl 6 compiler. | ||
masak | chromatic: maybe we're skewed by our experiences, but around here rewrites tend to correspond to improvements. improvements that couldn't be made before the first round was attempted. | ||
20:09
REPLeffect left
|
|||
masak | lue: Yapsi is complete. | 20:09 | |
:P | |||
chromatic | Do you hear the sound of that cognitive dissonance? | 20:10 | |
lue | (so things are going to be done right the first time 'round, unless you're lucky) | ||
20:11
am0c left
|
|||
pmichaud | masak: why is there no column for Yapsi in the features matrix? ;-) (j/k) | 20:12 | |
masak | chromatic: yes. I do. | ||
chromatic | From my perspective, it seems like there's always time for Rakudo to do it wrongish, then rewrite a couple of times but there's never time for Parrot to do it right. | ||
cotto_work | chromatic: I appreciate you stirring the pot and have yet to confuse you for an elephant. | ||
masak | chromatic: I can sympathise with that. | ||
cotto_work | Rakudo has the advantage of a spec. Parrot has the advantage of Rakudo having a spec. | 20:13 | |
masak | chromatic: but on the flip side, this feels like Parrot saying "we want to be in on it too!" after an extended period of saying "Parrot is *not* supposed to be Perl 6-centric." | ||
chromatic | Well I've always said that point of view is on its face nonsense. | 20:14 | |
masak | ok. | ||
chromatic | But again, I only speak for myself and have no desire to tell other people what they must do. | ||
cotto_work | Is TimToady the only one who can change his mind? ;) | ||
lue has always seen Parrot as a bit P6-centric despite what's said. Then again, he's not that familiar with Parrot, so don't listen to him :) | 20:15 | ||
20:15
molaf joined
|
|||
pmichaud | No, others have been able to change TimToady's mind. | 20:15 | |
diakopter | pmichaud: heh | ||
TimToady | heh | ||
masak | you just have to take the chance during a very rare GC run :P | 20:16 | |
20:16
frhodes left
|
|||
TimToady | the trouble is that my mind has no clear deprecation policy... :) | 20:17 | |
lue | ?(GC == "Garbage Collection") | ||
masak | lue: backlog :) | ||
20:18
frhodes joined
20:19
frhodes left
20:20
frhodes joined
|
|||
diakopter | TimToady: I'm thinking the Apocalypses, Exegeses, and Synopses might do well to have some Epistles | 20:21 | |
maybe those are the RC entries | 20:22 | ||
pmichaud | 20:08 <chromatic> That also leads to a lot of "Parrot can't move fast enough for Rakudo" and "Sure, we poked into lots of Parrot guts, but you can't break things per the deprecation policy." | ||
20:22
frhodes left
|
|||
pmichaud | fwiw, I don't think we've ever claimed a deprecation violation on a place where we poked into Parrot guts. | 20:23 | |
cognominal | I am curious to know how to parse in Perl 6 a language which implictely add a statement terminator if the line ends and an operand is not expected. It should be nice to be able to set a variable when an infix or prefix operator has been recognized. I am not too sure how to do it elegantly. | ||
pmichaud | afaik, we fully accept that if we rely on Parrot guts for something and it changes, it's our problem and not Parrot's. | ||
masak | cognominal: that's how the optable parser works. | 20:24 | |
lue | Epistles? | ||
pmichaud | If there's a counter-example, I'd like to be reminded of it. | ||
lue | (I just read what they are, but what would they do in the spec?) | ||
diakopter | lue: I was thinking of another outlet for canonical writings | 20:26 | |
masak | I've been toying with the idea of modernizing the Exigeses. | 20:27 | |
cognominal | masak: I know that the optable parser uses such a variable but it is not exposed to the grammar writer. He just declares the operator types and their respective precedences. | 20:28 | |
lue | So have I, a sort of Exegeses for the Synopses. (My first thought for naming them was the "Tutorials", though I'm not attached to it) | ||
pmichaud | call them the "Lessons". Or perhaps they should be parables. :-) | 20:29 | |
"sermons"? | |||
"indoctrination tapes" | |||
cognominal | or is this variable exposed? | 20:30 | |
lue | As long as it doesn't start with an S, A, or E (or else confusion arises when typing things like "check S05" if you mean the "sermons") | ||
masak | cognominal: no, it's more like it threads through the whole semantics. you can't avoid it. | 20:31 | |
20:31
mkramer1 left,
mkramer joined
|
|||
cognominal | so how can you write a parser that treats "a+b\n+c" as two statements and "a+b+c" as one. | 20:33 | |
masak | just make "\n" a statement separator :) | ||
cognominal | nope | 20:34 | |
"a+\nb" would not be parsed correctly | |||
chromatic | pmichaud, I don't have any handy either, but even the question of "Wait, why did the order of hash iteration change?" seemed too close to that for me. | ||
cognominal | the \n must be a statement separator only when it makes sense. | 20:35 | |
masak | cognominal: oh, I see what you mean. | ||
20:35
Juerd joined
|
|||
Juerd | Hi. I'm going to do a feather dist-upgrade again | 20:35 | |
cognominal | see javascript, or coffeescript as an example | ||
Juerd | Be prepared for random failure | ||
masak | cognominal: make "\n" am infix operator, then? | 20:36 | |
cognominal | coffeescript is even weirder, because indentation is syntax. | ||
pmichaud | chromatic: That was more an expression of surprise for me.... since a previous "order of hash iteration change" caused Rakudo to break once before (and it occurred in a supported release) | ||
I can see how that could be taken as an expression of a deprecation violation... although I think I took extra special care to make it clear that we weren't claiming such. | 20:37 | ||
chromatic | But then there's also the question of how much NameSpace refactoring is possible and when. | ||
cognominal | masak: does not work either | ||
chromatic | It's fair enough to blame that on Parrot's deprecation policy. I'm really uninterested in blaming anyone in particular. As far as I care to believe, pretty much everyone acts in good faith. | 20:38 | |
cognominal | if the state variable is exposed, I think it can be handled elegantly in the grammar | ||
20:38
REPLeffect joined
|
|||
masak | cognominal: I'd be happy to see a patch for that. | 20:38 | |
cognominal | probably pmichaud is the more competent to give an answer. | ||
20:38
REPLeffect left
|
|||
pmichaud | what "state variable"? | 20:39 | |
20:39
wk left
|
|||
pmichaud | afaik there ain't no such animal. | 20:39 | |
cognominal | the rakudo qequivalent of the perl5 PL_expect | 20:40 | |
pmichaud | afaik there ain't no such animal. | ||
cognominal | which says if an operand or operator is expected at a given point. | ||
masak | pmichaud: ISTU cognominal is proposing one. | ||
pmichaud | "expect an operator" and "expect a term" are handled by being at different points in the EXPR sub | ||
20:41
dual left
|
|||
tadzik | nom: my $a = open 'README', :r; say $a.w | 20:42 | |
p6eval | nom 40fbe3: OUTPUT«Unable to open filehandle from path 'README' in method open at src/gen/CORE.setting:4645 in sub open at src/gen/CORE.setting:4755 in mu <anon> at /tmp/4Ds6POsYv2:1 in mu <anon> at /tmp/4Ds6POsYv2:1» | ||
tadzik | nom: say dir | ||
p6eval | nom 40fbe3: OUTPUT«.vim std_mine sprixel Perlito .ccache old_perl5 niecza mono-2.10.1.tar.bz2 .cache partcl-nqp log .pugs_history .bash_history nqp std_hilited 6model _sprixel01 p1 rakudo-star-2011.04.tar.gz .lesshst .aptitude .bashrc .cpanm nom-inst2 rakudo-star-2010.09 .ghc perl5 eval… | ||
tadzik | nom: my $a = open '.bash_history' :r; say $a.w | ||
cognominal | pmichaud, the problem is to handle language like javascript where a ; is a statment terminator only when it makes sense. | ||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===Confused at line 1, near "my $a = op"» | ||
tadzik | nom: my $a = open '.bash_history', :r; say $a.w | ||
p6eval | nom 40fbe3: OUTPUT«Bool::True» | ||
tadzik | I suppose that's broken | ||
method w() is nqp::p6bool(pir::new__Ps('OS').can_write(nqp::unbox_s($!path))) | 20:43 | ||
cognominal | ISTU? | ||
pmichaud | ISTU = "I seem to understand" | ||
cognominal | ok, thx | ||
jnthn | nom: my $a = open '.bash_history', :w; $a.say "lolwut"; $a.close; | ||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===Confused at line 1, near "$a.say \"lo"» | ||
jnthn | nom: my $a = open '.bash_history', :w; $a.say("lolwut"); $a.close; | 20:44 | |
p6eval | nom 40fbe3: ( no output ) | ||
jnthn | nom: say slurp('.bash_history') | ||
p6eval | nom 40fbe3: OUTPUT«lolwut» | ||
pmichaud | tadzik: is .w supposed to report on the file itself or on the filehandle? | ||
jnthn | Oh, I'd assumeed it was on the file :) | ||
In which case the answer is correct | |||
pmichaud | jnthn: same here. | ||
tadzik | pmichaud: I'd expect it to report on the filehandle | ||
jnthn | er, I hope overwriting .bash_history was OK. | ||
tadzik | maybe it's on the file | ||
jnthn | <= windows noob :) | 20:45 | |
pmichaud | S32 says they are "file tests" | ||
jnthn | .oO( I bashed the history... ) |
||
tadzik | is there any way to check if the file is opened for reading then? | ||
TimToady | cognominal: all you have to do is make your infix parser recognize such a newline, and return failure | 20:46 | |
cognominal | "my" infix parser? | ||
pmichaud | TimToady: except I think EXPR consumes <.ws> prior to calling <.infixish> | 20:47 | |
masak | overload <.ws> | ||
pmichaud | overloading <.ws> would seem to need a state variable to distinguish operator and term position :) | ||
TimToady | examine the ws retroactively | 20:48 | |
pmichaud | retroactive <.ws> could work, I guess. | ||
cognominal | for coffeescript with indentation as syntax, overlaoding <ws> is necessary. | ||
TimToady | no, I mean just look at what .ws returned last time | ||
pmichaud | I was wondering if instead the .termish should denote a statement end if it sees a \n | ||
TimToady | there are various possibilities | 20:49 | |
20:49
kaare__ left
20:51
[particle]1 joined
20:52
[particle] left
|
|||
tadzik | horray, I've stumbled on that GC bug again! | 20:53 | |
20:53
REPLeffect joined,
Trashlord left
|
|||
tadzik | gist.github.com/1169203#file_gistfile1.txt | 20:55 | |
cognominal tries to get inspiration from the perl6 grammar. | 20:58 | ||
jnthn | tadzik: ooh | 20:59 | |
TimToady | but yeah, keeping a lexer state variable is one of the many ways that P5 cheats, and we try to avoid keeping things other than where they belong in P6 | ||
pmichaud | cognominal: we have a similar case when parsing closing braces followed by newlines, if that helps. | ||
jnthn | tadzik: Under gdb? | ||
tadzik: Curious, that one looks like a potentially missing wb or something | |||
tadzik: Though it could just be getting unlucky with memory layout. | |||
tadzik | jnthn: I think it's the same one as with the .WHY ordering | 21:00 | |
cognominal | pmichaud: thx, that seems close enough | ||
pmichaud | cognominal: that's definitely a case where parsing of a term followed by a newline prevents certain types of parsing from occurring | ||
21:00
wamba left
|
|||
tadzik | jnthn: doesn't segfault under gdb | 21:00 | |
dalek | kudo/nom: b0da692 | (Martin Berends)++ | tools/test_summary.pl: [tools/test_summary.pl] do not count plans in fudged files, flussence++ |
||
pmichaud | flussence++ mberends++ | 21:01 | |
can we get some updated numbers? ;-) | |||
mberends | I have some from OS X | ||
21:01
dual joined
|
|||
mberends | "Synopsis", "pass","fail","todo","skip","plan","spec" | 21:02 | |
"total", 13227, 3, 543, 1658, 15431, 21997 | |||
pmichaud | nice | ||
I like those numbers. | |||
(I'll like it more when "pass" and "plan" are higher... but this looks good for now) | 21:03 | ||
mberends | the plan and spec were previously bogus, counting both the .t and the .rakudo files :/ | ||
jnthn | We've yet to get back mass.t | ||
flussence | my current plan is to get a script that can reproduce the same numbers using make spectest, then use -j on that instead of trying to run multiple parallel builds myself | ||
jnthn | mberends: ouch! | ||
benabik | mass.t? Is that testing to ensure the various parts of the compiler weigh the right amount? | ||
tadzik | I thought Rakudo passes like 21k of tests | 21:04 | |
I mean, master | |||
pmichaud | master is in the 21k range, yes. | ||
tadzik | so spec is not much wider | ||
flussence | master does, but the stuff on smolder.parrot.org counts TODO as pass IIRC | ||
mberends | S32-trig/pi.t aborted 3 tests | ||
tadzik | jnthn: it stopped segfaulting. Memory layout, it seems | 21:05 | |
pmichaud | afk, lunch | 21:08 | |
flussence | on 54e85a2, my code's close now but not exact: {fail => 0, files => 462, pass => 14408, plan => 14951, skip => 1658, spec => 21861, todo => 543} | 21:10 | |
(test_summary from that revision prints "13230,0,543,1658,15431,31181,459") | |||
(oh, I think the TAP tarball might be out of date... hm) | 21:11 | ||
lue | is there an easy way to remove certain elements from an Array, in this case any element that is the string "" ? | 21:15 | |
masak | lue: grep { $_.chars }, @array | 21:16 | |
flussence | if you don't need to modify it in place, it's easier | ||
masak | well, @array.=grep(*.chars) | ||
flussence | or that :) | ||
21:17
REPLeffect left
|
|||
lue | well, .=grep(*.chars) doesn't work, but the first one does. | 21:18 | |
21:19
REPLeffect joined
|
|||
flussence | try ({$_.chars}), I noticed nom has a problem currying sometimes... | 21:19 | |
masak | rakudo: my @a = "foo", "bar", "", "baz", ""; @a.=grep(*.chars); say @a.perl | ||
p6eval | rakudo a55346: OUTPUT«["foo", "bar", "baz"]» | ||
21:19
wamba joined
21:21
PacoLinux joined
|
|||
lue | Curses. Using the grep command takes me from 2 failing tests to *-1 failing tests (and that's only because 'zeroth' is handled specially) | 21:22 | |
I get the error splice() not implemented in class 'Mu' . | 21:23 | ||
tadzik | Curses. Select hangs given a one-second-timeout | 21:25 | |
mberends | bad news from the test_summary.pl: nom spectests are running quicker than master because of shorter startup times, but minimum per-test execution is up from about 3ms to 20ms in all test files :-( | 21:28 | |
21:31
Holy_Cow left
|
|||
masak | Curses. I never get anything done in the evenings anymore. | 21:32 | |
mberends | masak: is that because you have a life nowadays? ;) | 21:33 | |
masak | mberends: the correlation is too strong to dismiss... | ||
lue | .oO(After I'm done hacking on Numbers::Ordinal, I should get to writing an IF game...) |
21:34 | |
masak | but it'll get better, it seems. I've maneuvered myself into a position where I can have a Perl 6 day a week. | ||
and then I'll work on macros :> | |||
pmichaud | ...masak got a life? | 21:35 | |
masak | maybe that's a bit of an exaggeration. | ||
I got a full-time job. | |||
flussence | this is odd, I get files=>459 after accounting for obvious things, test_summary.pl and make spectest say I should have 458. | 21:36 | |
pmichaud | mystery spectests! | ||
mberends | *chuckle* | ||
masak | maybe it's testing '.' and '..' :P | ||
diakopter | obo | 21:37 | |
jnthn | mberends: Curious. Once I'm back from $trip I'd like to dig into those numbers a bit. | ||
21:38
molaf left
|
|||
mberends | jnthn: for more timing data I looked a little at setting up Popolnik whilst visiting moritz++, but got bogged down. I'll continue with that soon. | 21:41 | |
jnthn | mberends: Every time you go to look at that, you get led ashtray :P | ||
;) | |||
mberends | :) | 21:42 | |
masak | jnthn++ # best pun in a while! :) | 21:44 | |
diakopter read that as 'in a whale' at first | |||
masak | bwhaha | 21:45 | |
it's jnthn, not Jonah. | |||
21:45
Trashlord joined
|
|||
mberends | oh, recently autopunned: I haven't used 'goto' 'for' a 'while' :/ | 21:46 | |
masak wonders if that qualifies as an autopun | 21:47 | ||
21:47
chromatic left
|
|||
masak | nom: role Container { method cry-for-help { say "Help, I'm trapped inside a $?CLASS.perl()!" } }; class Whale does Container {}; Whale.new.cry-for-help | 21:49 | |
p6eval | nom 40fbe3: OUTPUT«Help, I'm trapped inside a Whale!» | ||
jnthn | Bible stories...told with parametric polymorphism. | ||
masak | there's a blogging series for ya. | ||
lue | is there an opposite to bless() in P6? | 21:50 | |
tadzik | curse() | ||
I do that all the time | |||
masak | the curse() builtin strips an object of its classhood. | ||
having it stand there naked as just a low-level representation. | |||
like a void *struct. | 21:51 | ||
21:51
Chillance left
|
|||
pmichaud | hmmm... I wonder if "desecrate" or "defile" might be better :-) | 21:54 | |
or.... "excommunicate" | 21:55 | ||
"banish" | |||
masak | "blaspheme", "maledict", "sacrilege". | ||
pmichaud | "expel" | 21:56 | |
masak | "damn" | ||
pmichaud | "exile" | ||
masak | "jinx" | ||
"hex" :P | |||
pmichaud | "curse" is what we tend to do at the beginning of variable names. $!this-damned-attribute | ||
%!wtf ? | 21:57 | ||
@*welcome-to-the-seventh-ring-of-hades | |||
masak | @!fsking-twigils | ||
pmichaud | %?under_scores_are_e_v_i_l_2 | ||
I've been trying to formulate a response to the hyphen-vs-underscore discusson on p6l | 21:58 | ||
masak | $!oh-and-apostrophes-aren't-evil? | ||
21:58
frhodes joined
|
|||
pmichaud | I like apostrophes and hyphens. | 21:58 | |
masak too | |||
diakopter | std: say !$$*a | ||
jnthn has found himself leaning to hyphens | |||
p6eval | std 516268a: OUTPUT«ok 00:01 119m» | ||
jnthn | I find them easier on the eye | ||
21:59
chromatic joined
|
|||
lue | .oO(underscores are just deflated hypens) |
21:59 | |
diakopter | specks in the eye are better than planks/beams | ||
pmichaud | ultimately I want to have a convention whereby I always know when to use hyphens and underscores... my best formulation at the moment is "always use hyphens, and if it doesn't work it means there's a bit more magic going on that you need to be aware of before using this" | ||
22:00
frhodes left
|
|||
masak | I will probably keep using underscores for ALL_CAPS_IDENTIFIERS. | 22:00 | |
pmichaud | all, since ALL_CAPS already means "magic here", that's probably okay. | ||
lue | nom: my $em—dash = 5; say $em—dash; # the real question is why do only *some* hyphens work? | ||
p6eval | nom 40fbe3: OUTPUT«===SORRY!===Confused at line 1, near "my $em\u2014das"» | ||
masak | tadzik: this might be of interest, btw: dev.perl.org/perl6/rfc/47.pod | 22:01 | |
22:01
MayDaniel left,
wolfman2000 joined
|
|||
pmichaud | ...we still pay attention to the rfcs? ;-) | 22:01 | |
masak | I do. :) | ||
lue: because it'd be hard to distinguish a hyphen and an em dash? | |||
sorear | good * #perl6 | 22:02 | |
tadzik | masak: for now, I'm stuck with Select returning wrong results on timeout = 0, and hanging on timeout = 1 :) | ||
masak | lue: you could always subclass the standard grammar and add it to the appropriate rule. | ||
pmichaud | lue: because we need to preserve em dash as a possible operator for better obfuscation possibilities? ;-) | ||
masak | sorear: \o | ||
tadzik | hello sorear | ||
lue | nom: my sub infix:<–>($a, $b) { return $a..$b;}; say 2–5; # en dash | 22:03 | |
p6eval | nom 40fbe3: OUTPUT«===SORRY!===Confused at line 1, near "say 2\u20135; #"» | ||
lue | :( | ||
sorear | pmichaud: I -1 the idea of using interior underscores to mark "magic" identifiers, for the simple reason that we can't mark one-word identifiers, and so it's inconsistant | ||
pmichaud | $_marked | ||
sorear | pmichaud: I would prefer to see us adopt the Unix libc convention of "magic internal identifiers have a single leading underscore" | ||
right | |||
and because of the SETTING === UNIT::OUTER genius, we don't need to ban _identifiers in user code | 22:04 | ||
pmichaud | sorear: I'm not saying so much that all magic identifiers should have underscores | ||
22:04
frhodes joined
|
|||
pmichaud | that's not really my point. | 22:04 | |
my point is that underscore usage should be exceptional | |||
sorear | there's no possibility of "user defines a _putc_unlocked, bam linker error, let's make _\w+ erroneous) | ||
22:05
frhodes left
|
|||
flussence | ...and now that I've run test_summary.pl again it changed to 459! argh. | 22:05 | |
tadzik | waagh | ||
tadzik-- | |||
mberends | hi sorear: if we reschedule #phasers, what days/times would suit you? | ||
sorear | mberends: my schedule hasn't completely settled. I'd prefer to wait a week before deciding that. | 22:07 | |
flussence | ok, all these numbers except for pass count match up... I get 14408, test_progress gets 13230. Going to check make spectest one more time | ||
pmichaud | wait a week is fine, I think. | ||
mberends | sure | ||
pmichaud | we can hold #phasers at the traditional time for now (more) | 22:08 | |
sorear: if you come across a better date/time that would suit you, let us know | |||
22:09
im2ee left
|
|||
lue | all tests in Numbers::Ordinal pass! (for now, anyway. That'll likely change in the near future) | 22:11 | |
tadzik | yay | ||
lue: nom? | |||
lue | yes | ||
22:11
mj41 left
|
|||
tadzik | mark it on the wiki then :) | 22:11 | |
lue | Well, it doesn't contain all the features it should (in particular ordinal_digit). Once it does I'll change the wiki. | 22:12 | |
lue wonders how much farther past 'trillion' &ordinal should go | 22:13 | ||
tadzik | yay, it passes! | 22:15 | |
sorear | lue: does this module produce English text? | 22:16 | |
flussence | make spectest still says 458 files, wtf... | ||
oh well, these numbers are close enough | |||
mberends | lue: you may have seen it, en.wikipedia.org/wiki/English-language_numerals | 22:18 | |
lue | ordinal(25); # returns "twenty-fifth" | ||
sorear | lue: tip, modules like that are convnetionally named Lingua::EN::Something | 22:19 | |
lue | mberends: Yes, I have. I frequently end up there when wanting english words like "duodenary" | ||
22:20
REPLeffect left,
REPLeffect joined
|
|||
lue | sorear: OK. I have thought about the language issue with a module like this. | 22:21 | |
sorear | lue: there's an established convention in the Perl 5 community. I don't think we should ignore it | ||
CPAN has lots of modules like Lingua::EN::Whatever, Lingua::DE::Whatever, Lingua::JA::Whatever | 22:22 | ||
lue | .oO(I was thinking of something like Numbers::Ordinal::en though.) |
||
masak | lue: what sorear said. my first reaction to the module was "oh my, that's very English-centric". should maybe be marked as such. | 22:23 | |
tadzik | behold! github.com/tadzik/IO-Select | 22:24 | |
22:24
frhodes joined
|
|||
lue | Alright. Just so you know, I haven't ignored this issue, I had just been more concerned with getting working code up to this point. (will rename module to something like Numbers::Ordinal::EN) | 22:24 | |
sorear | why not Lingua::EN::Ordinal? | 22:26 | |
mberends | jnthn: nom test timings for you at jnthn.net:~mberends/2011/perl/nom/...mary.times and s/nom/rakudo/ for master. That box smokes! Minimum test time on master 2.6ms, nom 12ms. | 22:27 | |
22:28
gfldex left
|
|||
lue | I could do that. In my mind Numbers::Ordinal::EN describes it better than Lingua::EN::Ordinal, but it doesn't matter too much to me how it's denoted as english. (Certainly won't do Lingua::EN::Numbers::Ordinal though) | 22:29 | |
sorear | lue: see search.cpan.org/search?mode=all&...ua%3A%3AEN | ||
22:30
gfldex joined
|
|||
mberends | lue: the point is that many other people have already adopted a convention, it helps you and them to "get with the program". | 22:31 | |
masak | +1 | ||
let's not reinvent already round wheels. | |||
lue | Alright, I'll go for Lingua::EN (esp. seeing as someone already created Lingua::EN::Numbers::Ordinate) | 22:32 | |
jnthn | mberends: thanks! | 22:33 | |
mberends: yes, it's fast :) | |||
dalek | osystem: a8e2417 | tadzik++ | META.list: Add IO::Select |
||
22:34
pothos left
|
|||
lue | [In case you haven't noticed, I'm not one to pay attention to P5 much, but I'll go along with it 'cos there's no reason not to :)] | 22:34 | |
22:34
pothos_ joined
|
|||
mberends | jnthn: and its uptime is 733 days :) | 22:35 | |
22:35
pothos_ is now known as pothos
22:36
wamba left
22:44
frhodes left
|
|||
lue | There, module renamed. (I just wish I could rename the repo on github to reflect the change more accurately) | 22:44 | |
tadzik | can't you? | ||
I think I did Pies -> panda | 22:45 | ||
mberends | istr the 'Edit' link lets you rename | ||
tadzik | or maybe I just created the new one and pushed the same things | ||
masak | lue: there's a rename function somewhere under Admin. | ||
remember to update the ecosystem :) | 22:46 | ||
tadzik | and the wiki ;) | ||
lue | (that's why I couldn't find the rename function. NoScript hid the admin button) | 22:47 | |
tadzik | NoScript on Github? Madness | 22:48 | |
masak | NoScript is the only sane option in an insane world. | 22:50 | |
tadzik | it may be sane, but I generally prefer to have working websites | 22:51 | |
22:52
frhodes joined
22:53
frhodes left
|
|||
masak | 'night, channel | 22:54 | |
22:54
frhodes joined
|
|||
tadzik | 'night Carl | 22:54 | |
22:54
masak left
|
|||
lue | actually I enabled javascript for github, but it needed to use an external website for the admin button | 22:54 | |
tadzik | oddness | 22:55 | |
22:57
sili left
|
|||
lue | frequently big sites use many other sites for javascript (I hate when website use google analytics APIs in code that doesn't need it) | 22:58 | |
mberends | aye | 23:00 | |
23:02
drbean joined
|
|||
dalek | osystem: cf986b1 | lue++ | META.list: Update my module entry in META.list (Lingua::EN::Numbers::Ordinal) |
23:04 | |
lue | I hear thunder. Goodbye planet o/ | 23:05 | |
23:05
lue left
23:09
whiteknight joined
|
|||
tadzik | good night #perl6 | 23:16 | |
23:19
[Coke] joined
23:22
Alias left
23:24
plobsing joined
23:29
wamba joined
23:38
Patterner left
23:39
Psyche^ joined,
Psyche^ is now known as Patterner
23:46
thou joined
23:57
Holy_Cow joined
23:58
Holy_Cow left
|