»ö« 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. |
|||
00:06
sftp left
00:07
sftp joined
00:09
rgrau joined,
JodaZ left
00:16
tty234 left
|
|||
sorear | phenny: tell jnthn I want to add roles to niecza as my next large project. How much of RakudoRoles will survive nom? | 00:28 | |
phenny | sorear: I'll pass that on when jnthn is around. | ||
00:32
donri left
00:41
pmurias left
00:50
orafu left
00:51
allbery_b is now known as geekosaur
00:52
orafu joined
01:15
ymasory joined
01:27
stkowski left
01:37
kst left
01:51
ymasory left,
TheMartianGeek joined
|
|||
TheMartianGeek | Hi, everyone. | 01:56 | |
I thought of something I'd like to see in Perl 6 a couple weeks ago, but I forgot what it was... | |||
02:21
stkowski joined
02:22
stkowski left
02:25
whiteknight left
02:35
ymasory joined
02:36
leprevost joined
02:57
risou joined
03:01
sftp left
03:05
ymasory left
03:11
lue joined
|
|||
lue | hello world! o/ | 03:11 | |
03:12
dayangkun__ joined
03:16
dayangkun_ left
03:18
MindosCheng left
03:19
hudnix left
03:27
Su-Shee left
03:28
jaldhar joined
03:32
dayangkun joined
03:34
Su-Shee joined,
sufrostico left
03:35
dayangkun__ left
03:39
envi joined
03:40
sufrostico joined
03:44
mtk left
03:52
nymacro joined,
mtk joined
03:53
imamelia joined
03:54
TheMartianGeek left,
imamelia is now known as TheMartianGeek
|
|||
sorear | TheMartianGeek: welcome back | 03:54 | |
lue: hi | |||
dalek | ecza: 22f649c | sorear++ | / (7 files): mergeback |
04:07 | |
ecza: 1f6f287 | sorear++ | lib/CORE.setting: Add reduced, CURSOR to Match |
|||
ecza: dbc6072 | sorear++ | / (3 files): Grammar.parse sets $/ |
|||
04:08
xinming_ joined
04:11
xinming left
04:22
silent_h_ left
04:32
mkramer1 joined
04:34
mkramer joined
04:37
mkramer1 left
04:41
nymacro left
|
|||
sorear | rakudo: "abc" ~~ /b/; say +$/ | 04:50 | |
p6eval | rakudo 4bf132: OUTPUT«0» | ||
sorear | rakudo: "ab123c" ~~ /\d+/; say +$/ | ||
p6eval | rakudo 4bf132: OUTPUT«123» | ||
05:01
mrkodiak left
|
|||
dalek | ecza: 7a13f8e | sorear++ | / (2 files): Add Cool.subst |
05:08 | |
ecza: 11b6343 | sorear++ | / (5 files): Implement ClassHOW.can |
|||
sorear | How is $*PROGRAM_NAME determined? | 05:13 | |
TimToady | argv[0] | 05:21 | |
05:22
sftp joined
|
|||
sorear | TimToady: iow, it's only meaningful for interpreters that can be used with unix shebang functionality? | 05:23 | |
05:24
frew is now known as frooh
|
|||
TimToady | well, you still get argv[0] even in C programs, what's missing is an executable name that's different from program name | 05:32 | |
sorear | mono run/Niecza.exe foo.pl # does $*PROGRAM_NAME have a meaningful value? | ||
mono run/Niecza.exe -c foo.pl ; mono obj/MAIN.exe # does $*PROGRAM_NAME have a meaningful value? | |||
TimToady | well, given you'd better record foo.pl for error messages, I'd say it should | 05:34 | |
foo.pl is what the programmer thinks the program name is | 05:35 | ||
sorear | oh, that's easy enough then | ||
just use the mainline's $?FILE | |||
(except niecza currently always uses absolute paths in $?FILE) | |||
TimToady | Unix doesn't generally supply the abs path in argv[0] | 05:36 | |
sorear | hence "except" | 05:37 | |
but it's close enough for now | |||
TimToady | nodnod | ||
05:45
woosley joined
05:48
risou left
|
|||
TimToady | protip: do not microwave your casadia with a twist-tie under it, or your casadia will end up dominated by the unmistakable flavor of a shorted circuit that is boiling off its magic PCB smoke... | 05:57 | |
whatever tar-like adhesive they use in those things to hole the wire inside the paper really doesn't like it when the wire starts sparking in the microwave | 05:59 | ||
*hold | |||
actually, I think this was the kind with plastic, not paper | 06:00 | ||
06:00
justatheory left
06:03
mkramer1 joined
|
|||
TimToady | you'd think you could remove the twist-tie part of it and eat the rest, but no, whatever it outgassed made the whole thing completely noxious | 06:03 | |
06:03
mkramer left
|
|||
TheMartianGeek | Sounds...lovely... | 06:04 | |
06:08
mkramer joined
06:09
TheMartianGeek left
06:10
mkramer1 left
|
|||
dalek | ecza: ec30f29 | sorear++ | / (2 files): Implement ::> cut operator |
06:15 | |
ecza: fdfdee7 | sorear++ | / (3 files): Add .redo .next .last .goto methods to Label |
|||
ecza: fffa4cd | sorear++ | / (2 files): Fix labelling of for-loops |
|||
06:16
awoodland joined
|
|||
sorear | rakudo: for 1,2,3 -> $a, $b { say "$a|$b" } | 06:19 | |
p6eval | rakudo 4bf132: OUTPUT«1|2Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 2:/tmp/ptOimqu0gF in main program body at line 1» | ||
06:20
birdwindupbird joined
06:21
zb left
06:22
zb joined
06:59
Mowah joined
07:06
gantrixx left
07:14
makkksimal joined
07:18
makkksimal left
07:20
masak joined
|
|||
masak | weekend! \o/ | 07:20 | |
07:22
mkramer left,
mkramer joined
|
|||
masak | goals for today: (1) release Yapsi. (2) blog about somthing. | 07:22 | |
07:30
mkramer1 joined
07:33
mkramer left
07:41
kanishka joined
07:45
proller left
07:46
kanishka left
|
|||
sorear | masak: \o/ | 07:51 | |
masak | sorear: a colleague of mine tried out Niecza. he says that startup time for him is consistently on the order of one minute, and not just the first time he runs it. | ||
is that normal? | |||
07:53
kanishka joined,
kanishka left
|
|||
sorear | masak: normal for 3.x under Windows | 07:54 | |
masak: there was a bug which completly broke the recompilation checker then, so the setting kept getting rebuilt | 07:55 | ||
masak | this seems to be Mono, though. | ||
don't know which version. | |||
sorear | masak: if he's got v4, try having him use the -v option to see if the recompilecheck is working | ||
masak | I will relay this. thanks. | ||
sorear must sleep | 07:56 | ||
masak | 'night. dream of bug-free software. | 07:58 | |
08:04
pjcj left
|
|||
tadzik | morning #perl6 | 08:06 | |
08:07
pjcj joined
08:09
kst joined
|
|||
tadzik | phenny: tell sorear looks like it works, after git pull, make clean and git clean -fdx. Works fine now | 08:10 | |
phenny | tadzik: I'll pass that on when sorear is around. | ||
tadzik | phenny: thanks | ||
08:11
donri joined
|
|||
masak | morning, tadzik | 08:22 | |
tadzik | hey masak | 08:23 | |
masak | rakudo: .say for <A B> X~ <C D> | 08:28 | |
p6eval | rakudo 4bf132: OUTPUT«ACADBCBD» | ||
masak | rakudo: .say for [X~] <A B>, <C D> | ||
p6eval | rakudo 4bf132: OUTPUT«ABCD» | ||
masak | rakudo: .say for [X~] [<A B>], [<C D>] | ||
p6eval | rakudo 4bf132: OUTPUT«AC AD BC BD» | ||
masak | rakudo: my @a = [<A B>], [<C D>], [<E F>]; .say for [X~] @a | 08:29 | |
p6eval | rakudo 4bf132: OUTPUT«ACE ACF ADE ADF BCE BCF BDE BDF» | ||
masak | rakudo: .say for [X~] [<hen man>], [<n k>], [<ing ell>] | 08:33 | |
p6eval | rakudo 4bf132: OUTPUT«henning hennell henking henkell manning mannell manking mankell» | ||
tadzik | :) | 08:37 | |
masak | this is in reference to itre.cis.upenn.edu/~myl/languagelog...00795.html | 08:41 | |
masak .STORE | 08:45 | ||
08:46
kst left
08:49
nothingmuch joined,
nothingmuch left
|
|||
moritz | good morning. | 08:49 | |
tadzik | good morning moritz | ||
08:53
JimmyZ joined
09:26
miso2217_ joined
|
|||
miso2217_ | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) **\, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } | 09:32 | |
p6eval | rakudo 4bf132: OUTPUT«list: sugarend: flour» | ||
miso2217_ | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } | ||
p6eval | rakudo 4bf132: OUTPUT«list: eggs | milk | sugarend: flour» | ||
miso2217_ | Using Perl 6 page 95 gives this: | 09:34 | |
09:34
rgrau left
|
|||
miso2217_ | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \,'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } | 09:34 | |
p6eval | rakudo 4bf132: OUTPUT«no match» | ||
09:36
mj41 joined
09:38
icwiener joined
09:39
MayDaniel joined
09:52
birdwindupbird left,
donri left
09:54
JimmyZ left
10:19
MayDaniel left
|
|||
colomon | miso2217: the important bit in that last one is missing the space between the \, and 'and'? | 10:23 | |
rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \ ,'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } | 10:31 | ||
p6eval | rakudo 4bf132: OUTPUT«===SORRY!===Missing block at line 22, near "(\\w+) ** \\"» | ||
colomon | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** \, 'and' (\w+)/ { say 'list: ', $/[0].join(' | '); say 'end: ', $/[1]; } else { say 'no match' } | ||
p6eval | rakudo 4bf132: OUTPUT«list: eggs | milk | sugarend: flour» | ||
10:34
slavik1 left
|
|||
masak | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, 'and'?)/ { say $0.join(' | '); say $1.join(' | ') } | 10:36 | |
p6eval | rakudo 4bf132: OUTPUT«eggs | milk | sugar» | ||
masak | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, | 'and')/ { say $0.join(' | '); say $1.join(' | ') } | ||
p6eval | rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour» | ||
masak | hm. why aren't my separators captured in $1 above? | 10:37 | |
jnthn | masak: This looks familiar... | 10:38 | |
phenny | jnthn: 00:28Z <sorear> tell jnthn I want to add roles to niecza as my next large project. How much of RakudoRoles will survive nom? | ||
jnthn | masak: I think ti's a bug. | ||
phenny: tell sorear probably just about nothing | |||
phenny | jnthn: I'll pass that on when sorear is around. | ||
masak | jnthn: do you think it's a reported bug? :) | 10:39 | |
jnthn | masak: Not sure. I mostly recall working around it in the Perl 6 grammar somewhere at some point. | ||
masak submits rakudobug | |||
Justin TV. | |||
er, I mean. Justin Case. | |||
jnthn | ... | 10:41 | |
miso2217_ | colomon: yes I think it's a bug in the book page 95, it's minor, but worth a correction. I can do it in the book if needed. | ||
jnthn | You don't fancy some RT exploration? ;) | ||
moritz | miso2217_: want to fix it? do you have a github account? | 10:42 | |
masak | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** [(\, | 'and')]/ { say $0.join(' | '); say $1.join(' | ') } | ||
p6eval | rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour» | ||
miso2217_ | the important point is the **\, and ** \, difference | ||
masak | rakudo: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** [((\, | 'and'))]/ { say $0.join(' | '); say $1.join(' | ') } | ||
p6eval | rakudo 4bf132: OUTPUT«eggs | milk | sugar | flour» | ||
moritz | stackoverflow.com/questions/5604128...arse-mimes | ||
masak | "what is that mime trying to say?" -- "here, have this Perl 6 module" | 10:43 | |
SCNR | 10:44 | ||
miso2217_ | moritz: I can, I comented the coment 53 you made on the book (about if (1){} ), I don't know if this is enough to commit changes? | ||
10:45
Tedd1 joined
|
|||
moritz | miso2217_: the problem about the 'if' stuff is that it should go into a chapter that's not yet written | 10:45 | |
about statements and such | |||
masak | is it in a TODO list somewhere? | 10:46 | |
10:46
awoodland left
|
|||
moritz | miso2217_: you have commit access to the book now, feel free to fix the regex thing | 10:46 | |
miso2217_ | Yes I know, I was talking just about the ** \,'and' (without space between the \, and the 'and' problem on page 95 | ||
moritz: thx. I'll fix it | 10:47 | ||
moritz | masak: dunno | ||
10:58
dayangkun_ joined
11:00
dayangkun left
11:05
dayangkun joined
11:08
dayangkun_ left
11:17
noganex_ joined
11:20
noganex left
11:27
whiteknight joined,
dayangkun_ joined
11:30
dayangkun left
11:32
mtk left
11:34
Su-Shee left
11:40
mtk joined
11:47
nymacro joined
11:54
Patterner left
11:56
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
tadzik | looks like there's a market for Email::MIME for Perl 6 | 11:57 | |
12:00
Axius joined
12:05
dayangkun joined
12:08
dayangkun_ left
12:20
Su-Shee joined
12:31
PacoLinux left
12:33
PacoLinux joined
12:34
Chillance joined
12:37
dayangkun_ joined
12:40
dayangkun left
12:53
slavik joined
12:57
Axius left
12:58
vuliev joined
13:11
Chillance left
13:12
Chillance joined
13:18
hudnix joined
13:23
birdwindupbird joined
13:24
pmurias joined
|
|||
pmurias | hi | 13:24 | |
masak | hi pmurias | 13:30 | |
13:33
dayangkun__ joined
13:36
dayangkun_ left
13:47
gbacon joined
13:51
gantrixx joined
14:00
MayDaniel joined
14:02
dayangkun__ left
14:21
zby_home_ joined
14:22
rgrau joined,
jferrero joined
14:28
pmurias left
14:30
colomon left
14:36
colomon joined
14:44
MindosCheng joined
14:45
TheMartianGeek joined
|
|||
masak | this is the first bug in quite some time that I can't describe with a one-liner. perhaps someone can help minimize or explore it? | 14:46 | |
first off, gist.github.com/908829/e9bad177e78...d4ac3400a6 (which I posted a few days ago) works nicely, and outputs 36 lines of the desired output. | |||
but I wasn't happy with the sub at lines 11..15. | |||
so I rewrote it as gist.github.com/908829/3af6c425a27...87009bfdaf -- much nicer | |||
and it should be identical in function... but... | 14:47 | ||
the correct 36 solutions are still output, but now they're on the same line with spaces between them. | |||
it looks like things do when a list or array has been stringified with prefix:<~> | 14:48 | ||
so maybe I'm getting a double layer of lists somewhere. | |||
I'd be happy if someone could shed some light on this. | 14:49 | ||
(for those who want to actually run the code, the 'ng-compat' branch of GGE is needed.) | 14:50 | ||
14:52
Rotwang joined
14:59
pmurias joined
|
|||
sorear | good * #perl6 | 15:03 | |
phenny | sorear: 08:10Z <tadzik> tell sorear looks like it works, after git pull, make clean and git clean -fdx. Works fine now | ||
sorear: 10:38Z <jnthn> tell sorear probably just about nothing | |||
pmurias | sorear: hi | 15:05 | |
sorear | niecza: if 'eggs, milk, sugar and flour' ~~ m/:s (\w+) ** (\, | 'and')/ { say $0.join(' | '); say $1.join(' | ') } | 15:06 | |
p6eval | niecza v4-47-gfffa4cd: OUTPUT«eggs | milk | sugar, | , » | ||
15:07
miso2217_ left
|
|||
sorear | interesting, looks like ** doesn't handle :s yet properly | 15:07 | |
jnthn: ping | 15:09 | ||
pmurias | sorear: i should use let and letvar for registers in nam? | 15:14 | |
sorear | yes | 15:16 | |
masak | oh -- gist.github.com/908829/648dd197e56...b647a2cc84 fixes my issue above. I don't understand why a .list call is necessary there, and I suspect it's a bug that it is. | 15:21 | |
15:21
am0c joined
|
|||
masak | further clues/insights are still very much welcome. | 15:23 | |
15:24
risou joined
|
|||
moritz | .list is usually necessary if the iterators somehow get mixed up otherwise | 15:26 | |
colomon | I have to admit to never being able to figure out ahead of time when [ ]s and .lists will be needed. | 15:34 | |
moritz | [ ] is quite easy - when you want a single item | 15:35 | |
15:35
woosley left
15:38
miso2217_ joined
|
|||
TimToady | rakudo still doesn't quite believe in lol, so occasionally over-lols a parcel on your behalf, I suspect | 15:40 | |
sorear | jnthn: ping | 15:44 | |
jnthn | sorear: pong | ||
15:46
charmander joined
15:50
birdwindupbird left
15:52
charmander left
15:54
justatheory joined
|
|||
sorear | jnthn: I wish to understand roles in a 6model-like framework. | 15:57 | |
jnthn | sorear: Me too :) | ||
sorear: The stuff in NQP is my best guess so far but is only part of the answer and has issues. | |||
If you're looking for a well thought out model to copy, then I don't have one. | 15:58 | ||
I've done 3 or so implementations or roles so far. Each one has bene less wrong than the previous one, but all have not been quite right yet. | |||
Most of the issues now related to the generic-y stuff and reifying generic type parameters. | 15:59 | ||
A big mistake in Rakudo's current model is that it doesn't treat $?CLASS as generic. | |||
The NQP one at least fixes that part. | |||
But it makes no attempt on the full parametric role case and probably makes at least one simplification too many. | 16:00 | ||
Generally though, I think it's best to see every role declaration as really declaring a "role factory" | 16:01 | ||
I differentiate that at the meta-object level. | |||
16:01
sftp left
|
|||
jnthn | So one meta-object for the parametric role factory will produce meta-objects for concrete instantiations of the role. | 16:02 | |
I'm quite happy with that part of the design. | |||
TimToady | and instantiations are more or less anonymous then... | ||
though perhaps are named from within the class with MyRole:: | |||
jnthn | $?ROLE at least. | ||
TimToady | well, that's from within the role | 16:03 | |
jnthn | In general though, role Foo { role Bar { } } and Foo::Bar is kinda non-sneical... | ||
TimToady | in the class, you have to say which one | ||
sorear | Yes genericy stuff is a large part of where I get confused | ||
jnthn | *non-sensical | ||
TimToady | I mean naming roles more for distinguishing which method to call | 16:04 | |
jnthn | Ah, that case. | ||
Yeah, that's tricky also. | |||
sorear | jnthn: I think that makes sense. Foo::Bar is using Foo.WHO, which is shared between all instantiations | ||
TimToady | that seems to point to a concrete role somehow, at least in the abstract :) | ||
jnthn | sorear: well, I worry more over role Foo[::T] { class Bar is T { } } | 16:05 | |
sorear | jnthn: role Foo { say "Hello world"; say "Hello $?CLASS" } # ? | ||
jnthn: I think that's a compile time error. class statements run at BEGIN time and T isn't available then | 16:06 | ||
jnthn | sorear: I was pondering just forbidding nesting other packages within roles entirely, but maybe we can be more fine-grained too. | ||
TimToady | well, or it forces Bar to be generic as well | ||
jnthn | sorear: Role bodies run once per time you instantiate the role. | 16:07 | |
Roles bodies are more like subroutines, as opposed to class bodies which are like immediate blocks. | |||
TimToady: That sounds...tricky... | |||
TimToady: One important difference between roles and classes is that classes are always concrete. | 16:08 | ||
TimToady | just sayin' the error might be "We haven't figgered out how to implement that yet" | ||
jnthn | Big +1 to doing something conservative like that, yes. | ||
TimToady | might have to be "my class" at minimum | ||
I just find it irritating in other langauges where the designers and implementors blame the poor programmer for wanting to do something that just isn't understood well enough yet | 16:10 | ||
sorear | niecza memoizes 'but'. will this be an issue? | ||
TimToady | it's intended to be memoizable | 16:11 | |
jnthn sees no problems with memoizing it | |||
16:11
sftp joined
|
|||
TimToady | otherwise we get bazillions of identical anon classes floating around | 16:11 | |
sorear | seems to me like Role[$arg] is just .assuming | 16:12 | |
TimToady | I guess the question is how we determine identity though | ||
sorear | TimToady: the current approximation niecza uses is "$a ~~ Str && $b ~~ Str ?? $a eq $b !! False" | ||
TimToady thinks about the difficulty of comparing sigs | |||
sorear | which is good enough to prevent a bazillion instantiations of STD::balanced | 16:13 | |
TimToady | but at least the role sigs should be bound before such a comparison is necessary | ||
the whole 'but' thing is intended to be at least as robust as Ruby's mixins | 16:14 | ||
and the hope has been that all the generic stuff is orthogonal to that mixin/composition business | 16:15 | ||
jnthn | Rakudo has figuring out what to mix in and doing the actual mixing in of it separated out. | 16:16 | |
TimToady wonders how much longer the upgrade on appflux will take... | |||
moritz | what upgrade? | 16:17 | |
jnthn | walk & | ||
TimToady | there were broadcast messages about a reboot after upgrade | ||
and aptitude is running... | 16:18 | ||
16:18
Kovensky left
|
|||
TimToady | considering it's been up 383 days, I'd say it's overdue for a reboot | 16:18 | |
just for security issues, if nothing else | 16:19 | ||
16:19
ymasory joined
|
|||
moritz | 09:19:52 up 189 days, 22:11, 6 users, load average: 0.00, 0.00, 0.00 | 16:20 | |
sorear | moritz: host02 | ||
moritz | oh | ||
TimToady | it only effects four of us though | ||
sorear | moritz: the one TimToady, diakopter, and I are IRCing from | ||
TimToady | *aff | ||
sorear | who's on fourth? | ||
$.foo = $(self.foo); $.foo(1,2,3) = $(self.foo(1,2,3)); @.foo = @(self.foo); # Correct? | 16:21 | ||
TimToady | Whence is on fourth. | ||
16:21
Kovensky joined
|
|||
moritz | p6eval is on 4th | 16:21 | |
16:21
jedai joined
|
|||
TimToady | Actually, if 4th is home plate, it would be Tomorrow, I believe. | 16:22 | |
funny, baseball is 0-based, since home plate is both 0th and 4th | 16:23 | ||
diakopter | TimToady: oh, graham is updating kernel/debian version | 16:24 | |
masak | my @bases[4:map(*%4)]; | ||
masak submits the over-lol explanation as a rakudobug | 16:25 | ||
sorear | TimToady: $.foo = $(self.foo); $.foo(1,2,3) = $(self.foo(1,2,3)); @.foo = @(self.foo); # Correct? | 16:26 | |
TimToady | I believe so, and I think that's what rakudo does | 16:27 | |
sorear | TimToady: $!foo = $(self!foo); $!foo(1,2,3) = $(self!foo(1,2,3)); @!foo = @(self!foo); # I hold this true, jnthn does not. | ||
"it's too elegant to be wrong" | 16:28 | ||
TimToady | well, I can argue it both ways, but I'd only do it your way if those sub calls are optimizable away nearly all the time | 16:29 | |
the ! calls are really subs, not methods, in my mind, and the ! attrs are intended to be as fast as possible, if not faster | 16:30 | ||
sorear | diakopter: do you know why there are about 150 tcp connections on host04 now? | ||
diakopter | no idea | 16:31 | |
netstat -anp |less shows much fewer than that | |||
did you mean host02? | 16:32 | ||
TimToady | the $! and @! forms are intended to act as much like variables as possible; we only really need to pessimize them into an extra call when the user forces us to | ||
it's as close as we let the user get to the repr stuff without actually calling explicit repr introspection | 16:33 | ||
sorear | diakopter: oh, yes I did | ||
TimToady | so, while it may be beautiful to analogize between . and !, they're really at different abstraction levels | 16:34 | |
sorear | TimToady: are $!foo and @!foo references to the same slot? | ||
TimToady | I can call that one either way, depending on who we decide to confuse | 16:35 | |
16:36
awoodland joined
|
|||
TimToady | I'm inclined to force them into one slot | 16:36 | |
since that's what people will expect from $. semantics | |||
but we don't have to force it the same way that $. does | 16:37 | ||
this is one of those places where we're going to need all the speed we can get | |||
so we can't really afford turtles all the way down here | 16:38 | ||
does this make some sense to you? | 16:39 | ||
16:39
leprevost left
|
|||
sorear | yes | 16:41 | |
TimToady | basically, slot names have no sigils or twigils, which fits better with other languages' OO too | ||
and . vs ! is really picking virtual vs concrete slot semantics, is all | 16:42 | ||
sorear | So anything that changes the behavior of $! belongs in the REPR, not the HOW? | 16:46 | |
Does that make $!foo() = $(self!foo) != $!foo ? | |||
TimToady | yes, that's what I mean about the user pessimizing it to require a call | 16:50 | |
16:50
birdwindupbird joined
|
|||
sorear | TimToady: is there implicitly a method !foo so that $!foo() will work? | 16:50 | |
(after has $!foo) | 16:51 | ||
TimToady | I think it can probably be autogenerated when the call is seen | ||
sorear | nodnod | ||
-- | |||
What is the operational interpretation of $.x := y (or, self.x.item := $y) | |||
? | |||
TimToady | or perhaps 'trusts' does it | ||
same as any other variable, it just happens to be in an object instead of a lexpad, and doesn't work on native types | 16:52 | ||
oh wait, you said . not ! | 16:53 | ||
ENEVERENOUGHCAFFEINE | 16:54 | ||
diakopter wants 'always' and 'never' somewhere in Perl 6 | |||
TimToady | we have a special declaration for 'rw', maybe we need a specialer declaration for 'rebindable' | 16:56 | |
if we need more repr info from the method call that isn't available by default | |||
sorear | TimToady: how do you think $object.method() := $rhs can be implemented? | 16:57 | |
TimToady doesn't know, and doesn't care if it's NYI because TimToady doesn't know | 16:58 | ||
masak | 'is rb' | ||
TimToady | I almost typed that, but felt it wrested the meaning of 'r' | 16:59 | |
and probably needs better dehuffmanization in any case | |||
it just feels like allowing rebinding is one of those things that could slow down ordinary OO significantly, so ought to be handled with declarative pessimizatoin | 17:00 | ||
*ion | |||
17:00
envi left
17:02
ymasory_ joined,
ymasory left,
ymasory_ is now known as ymasory,
alester joined
|
|||
sorear | I get the feeling TimToady and I think about 'rebinding' in entirely different ways | 17:02 | |
TimToady thinks of it as little more than replacing a pointer, and wanders off to debind more of his house siding :) | 17:04 | ||
masak | std: my @seasons[4:map(*%4)]; | 17:05 | |
p6eval | std 4608239: OUTPUT«ok 00:01 122m» | ||
masak | niecza: my @seasons[4:map(*%4)]; @seasons[-4..7] = 'a' .. 'l'; | ||
p6eval | niecza v4-47-gfffa4cd: OUTPUT«===SORRY!===You can't adverb that at /tmp/_KN5e7uDRk line 1:------> my @seasons[4:map(*%4)⏏]; @seasons[-4..7] = 'a' .. 'l';Traits, postconstraints, and shapes on variable declarators NYI at /tmp/_KN5e7uDRk line 1:------> | 17:06 | |
..my @seasons[4… | |||
masak thought so | |||
shouldn't be too hard to implement. | |||
maybe tomorrow on the plane I'll give it a shot. | |||
jnthn sees attributes as variables that are stored in an object, rather than a lexpad or package. | 17:11 | ||
@foo and $foo don't go in the same slot, and I'm rather unhappy with the notion that @!foo and $!foo would. | 17:12 | ||
masak | +1 | 17:13 | |
jnthn | $!foo() to me is just like $foo() - that is, find a thingy, and call it. | ||
If we want to do cute stuff, it can go in method space. | |||
In a strangely consistent way, even $.foo() is two operations - find a method foo to call and then invoke it. | 17:14 | ||
pmurias | sorear: $foo.foo() := was implemented in smop/mildew by returning a special object that supported .BIND | 17:19 | |
17:19
sorear left,
TimToady left
17:20
sftp left,
pmurias left
17:21
pmurias joined,
sftp joined,
MayDaniel left
17:25
rgrau left
17:36
diakopter joined
17:39
sorear joined
|
|||
sorear | hi | 17:40 | |
diakopter | ahoy | ||
tadzik | hey | ||
17:41
TheMartianGeek left
17:42
TheMartianGeek joined
17:53
gbacon left
18:00
Rotwang left
|
|||
birdwindupbird | Can one tell me how to install p6 module? | 18:01 | |
moritz | birdwindupbird: see github.com/tadzik/Pies/ for an installier | 18:02 | |
18:05
TheMartianGeek left,
TheMartianGeek joined
|
|||
tadzik | oh, testers^Wusers :) | 18:10 | |
18:12
whiteknight left,
tzhs left
18:13
Axius joined
|
|||
birdwindupbird | tadzik: t/panda/fetcher.t .... fatal: failed to open '/home/kuku/.panda/src/Pies/t//objects': No such file or directory | 18:14 | |
18:15
birdwindupbird left
|
|||
tadzik | why, thanks for support | 18:17 | |
I have to do something about this. The test pass, the above fatal is from eval_dies_ok(), but everyone thinks it's a bug | 18:18 | ||
phenny: tell birdwindupbird if you look closely, you notice that the tests pass. The above message is just a side effect of checking the behaviour of a doomed to fail situation, and is completely ok | 18:19 | ||
phenny | tadzik: I'll pass that on when birdwindupbird is around. | ||
tadzik | maybe I should diag() in tests about that | ||
lue | hello world! o/ | 18:21 | |
masak | lue! \o/ | ||
18:22
imamelia joined,
am0c left
18:24
TheMartianGeek left,
imamelia is now known as TheMartianGeek
18:25
justatheory left
18:26
gbacon joined
|
|||
tadzik | hello lue! | 18:28 | |
18:35
risou left
18:39
Axius left,
Axius joined
18:48
Axius left
18:49
Axius joined
18:51
kfo joined
18:54
kfo_ left,
TheMartianGeek left
18:56
Axius left,
Axius joined
18:58
Axius left,
Axius joined
19:07
TheMartianGeek joined,
s1n left
19:10
zby_home_ left
19:11
TimToady joined
19:18
TheMartianGeek left
19:19
TheMartianGeek joined
|
|||
sorear | TimToady: \o/ | 19:24 | |
TimToady wonders why he brought up irssi when he ought to have been getting lunch... | 19:25 | ||
19:27
donri joined
19:31
gbacon left
19:34
sftp left
|
|||
masak | .u invisible times | 19:34 | |
phenny | U+2062 INVISIBLE TIMES () | ||
masak | bad Unicode Consortium! | 19:35 | |
19:38
sftp joined
|
|||
sorear | why bad? | 19:38 | |
masak | it's a highly personal opinion, of course. but I don't believe that is a character at all. | 19:39 | |
in 'ab', 'a' and 'b' are multiplied not because there's an invisible character between them, but because they are juxtaposed. | |||
pmurias | shouldn't all the invisible characters look the same? | ||
sorear | Has anyone here tried to use niecza with mono 2.4? | 19:40 | |
masak | pmurias: yes, but that's not a problem. lots of distinct characters in Unicode can look the same. | ||
pmurias: greek pi and math pi, for example. | |||
pmurias | masak: maybe INVISIBLE TIMES was imported into unicode from some strange character encoding | 19:43 | |
lue | blag toast (some might consider it important): rdstar.wordpress.com/2011/04/09/su...de-public/ | 19:45 | |
19:45
alester left
|
|||
lue | My guess is INVISIBLE TIMES is there for lazy math parsers. | 19:45 | |
tadzik | lue: nice! | ||
19:46
s1n joined
|
|||
moritz | Mathematica treats TTIAR as a multiplication | 19:47 | |
tadzik | lue: tests are failing | 19:48 | |
wklej.org/id/509442/ | |||
lue | what is TTIAR? | ||
TimToady | moritz: mathematical language is well known to be parsable only by geniuses | 19:49 | |
moritz | lue: Two Terms In A Row | ||
TimToady | lue: two terms in a row | ||
moritz | TimToady: mathematicians are so unbeliably lazy regarding the scope of their symbols | 19:50 | |
19:50
nymacro left
|
|||
TimToady | isn't everything just the scope of the current paper? | 19:50 | |
moritz | ... except when it isn't | 19:51 | |
TimToady | well, maybe not i, j, k.. | ||
lue | tadzik: I know, that's why I finally decided to give SUPERNOVA to the world. Dealing with grammars/actions alone is !fun. Did you hear grammars are the Offical Archenemy of Me™? | ||
moritz | and variables are reused for different purposes | ||
lue | Everything's in the scope of the current paper, there are just a lot of things people have agreed upon. (I could, theoretically, use ^ to denote imaginary numbers instead of i, but I wouldn't be well-liked.) | 19:52 | |
masak | I'm reading TAoCP II right now. Knuth writes very well, but I found myself being slightly bothered that he sometimes introduces new symbols/operators in his formulas right after the formulas themselves. | 19:56 | |
it's in the same sentence, even. but I'm getting to like one-pass parsing, and the style throws me off a bit. :) | 19:57 | ||
19:58
alester joined
|
|||
TimToady | people laugh about redefining π, but then mathematicians redefine i all the time... | 19:58 | |
masak | TimToady: re-reading the 'User-defined array indexing' section of S09, I realized that the first things I'd want to do would be to write a pragma to disable .[] indexing on arrays with user-defined indexes. the risk of accidentally doing .[] on such an array (and introducing a logical bug) would be too great. at least for me. | 19:59 | |
moritz | also consider that $[ was deprecated in p5 | 20:00 | |
TimToady | mainly because it was a global | ||
masak | moritz: I can sort of see the connection, but please spell it out. :) | 20:01 | |
moritz | masak: $[ held the first index of all arrays | ||
masak | moritz: I know what it is. and I see the connection to user-defined indices. | ||
moritz: but how does it factor into disablind .[] access on .{} arrays? | 20:02 | ||
moritz | sorry, have to run, bbl. | ||
masak | is it an argument for or against, or neither? | ||
TimToady | he's just trying to confuse you, which would be redundant. :) | ||
20:03
justatheory joined
|
|||
masak | :D | 20:03 | |
if I weren't confused, would I submit so many bug reports? | 20:06 | ||
lue | I once read about making π = 2π, or creating a three-pronged version of pi (which looked suspiciously like one way to write lowecase (archaic) sampi ϡ) | 20:07 | |
sbp | superpi | 20:08 | |
TimToady | I dunno, σ kinda looks like an unwinding circle | 20:10 | |
lue | masak: wouldn't a confused person try using programs in unintended ways (to get unconfused, of course), thereby finding bugs? | ||
(or a roll of tape σ). | 20:11 | ||
moritz | masak: I meant that the deprecation was another piece of evidence for the danger of user-defined array indexing | 20:12 | |
masak | moritz: well, I thought we already addressed that danger by pushing the user-defined indexing off to .{} | 20:14 | |
moritz: but maybe you're saying that's not enough? that's what I'm saying. | |||
20:14
Axius left
|
|||
lue | afk for a while | 20:18 | |
sorear | masak: I replied to Hakan | 20:22 | |
masak | great. | ||
he's a vital driver for my set of questions and bug reports lately. I'm basically going through a backlog of things he's sent me and taking action on them. :) | 20:29 | ||
20:32
snarkyboojum joined
|
|||
pmurias | who's Hakan? | 20:38 | |
masak | a long-time user of Perl 5 with a definite interest in Perl 6. whom I have the pleasure to know. | 20:42 | |
his preferred means of communication is email, or he would be here on #perl6, I guess. | 20:43 | ||
sorear | masak: is he also playing with Rakudo? | 20:49 | |
masak | yes, mostly. | 20:50 | |
he's currently going through the synopses and testing things. | 20:51 | ||
pmurias | masak: he mails you privatly? or on the mailing list? | 20:55 | |
masak | the former. | ||
20:56
justatheory left
|
|||
tadzik | every new user is an event :) | 20:59 | |
lue: I know more about the bug now | 21:04 | ||
lue: wklej.org/id/509518/ will give you some more info, the ambient content isn't parsed. Anyway, where did you get those .listvars method? | 21:05 | ||
oic | 21:06 | ||
lue: okay I tracked it down. There is no @sample[3], so @sample[3].listvars crashes. If you comment that out, you are just with one failing test | 21:10 | ||
masak | lue: from Grammar.pm6, line 12: proto token block { {*} } # maybe {*} would be better? | 21:15 | |
lue: that comment, is it out-of-date? | |||
lue: anyway, the code looks promising. | 21:16 | ||
21:31
zer0o joined
|
|||
masak | 'night, #perl6 | 21:34 | |
moritz | \o | ||
21:35
masak left
21:43
jaldhar left,
jaldhar joined
21:52
alester left
21:54
imamelia joined
21:56
TheMartianGeek left,
imamelia is now known as TheMartianGeek
|
|||
sorear | TimToady: after func() := $rhs; how does := know which pointer to replace? | 22:04 | |
jnthn wonders whether we're better off with binding being very primitive and fast, but more restricted in its use, or with := boiling down to a !BIND call on the LHS that we maybe can optimize away in some cases... | 22:07 | ||
22:08
Rotwang joined,
alester joined,
takadonet joined
|
|||
takadonet | hey all | 22:08 | |
tadzik | hey | 22:09 | |
I just thought a nice GSoC idea would be to make use of Parrot's tree-optimizer. Guess it's too late now | |||
sorear | jnthn: I vote for primitive and restricted, because being a method call is quite wrong | 22:14 | |
jnthn | sorear: I'd vote the same way. | 22:15 | |
sorear | jnthn: after my $x := $y; $x := 2 and $y := 2 should not be the same | ||
nqp: my $x := 1; my $y := $x; $x := 2; say($y) | |||
p6eval | nqp: OUTPUT«1» | ||
sorear | rakudo: my $x := 1; my $y := $x; $x := 2; say($y) | ||
p6eval | rakudo 4bf132: OUTPUT«2» | ||
jnthn goes with nqp here | 22:16 | ||
You too? | |||
sorear | yes | ||
jnthn wonders why binding in Rakudo ended up being compiled differently to in NQP... | |||
Maybe I'll make it do the same as NQP in the nom branch and see what happens :) | 22:18 | ||
22:18
alester left
22:20
mj41 left
22:23
justatheory joined
22:34
Mowah left
22:35
icwiener left,
icwiener joined
22:46
[particle]1 joined
22:47
[particle] left
22:48
Sarten-X left
22:53
Chillance left
22:55
Rotwang left
22:56
arlinius left
22:59
Sarten-X joined
23:02
awoodland left
23:03
[Coke] left
|
|||
sorear | alpha: my $x := 1; my $y := $x; $x := 2; say($y) | 23:06 | |
p6eval | alpha : OUTPUT«1» | ||
sorear | mildew: my $x := 1; my $y := $x; $x := 2; say($y) | ||
p6eval | mildew: OUTPUT«sh: /home/mildew/perl5/perlbrew/bin/perl: not found» | ||
23:17
justatheory left
23:18
justatheory joined,
Helios` joined
23:20
cotto left
23:21
cotto joined
|
|||
takadonet | NO!!!!! : Record separator must be a single character | 23:22 | |
damn u Parrot | |||
takadonet shakes his fist | 23:25 | ||
jnthn | takadonet: Which record separator? | 23:27 | |
takadonet | jnthn: "\n>" | ||
for these fasta file format : en.wikipedia.org/wiki/FASTA_format | |||
planning in reading one record at a time and then see if I can parse one whole record | 23:28 | ||
want a lazy grammar/action | |||
23:29
[Coke] joined
|
|||
takadonet | it can still work but it will be strange | 23:30 | |
23:33
TheMartianGeek left
|
|||
takadonet | night all | 23:34 | |
23:34
takadonet left
23:35
mtk left
23:44
mtk joined
23:50
jferrero left
|