perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ Set by mncharity on 25 March 2009. |
|||
jnthn | I much prefer evenings too. | 00:00 | |
However, Slovakia is very much an early morning rather than a late night place. | |||
TimToady | if I get consistently less than 8 hrs sleep for more than a couple nights, my immune system seems to just shut down | ||
in college I found I could alternate 5 and 8 hr nights | 00:01 | ||
but two 5 hr nights in a row and I'd be asking for it | |||
jnthn | If I get too tired I just get fed up with everyone... | ||
pmichaud | 4 or 5 hr nights have long been the norm for me -- going even back to high school. | ||
jnthn | That seems to be the only really bad side-effect. | ||
pmichaud | usually I manage to put together a long string of 4 or 5 hr nights, and then have one 12 hr night. | 00:02 | |
jnthn | I rarely get 8 hours. But I need a decent 6 or so most nights. | ||
pmichaud | it's not anything I do consciously -- it's just the way my body seems to have adapted. | ||
jnthn | I always kinda wish I was one of the people who lay down and just fell asleep. | ||
But that very rarely happens. | |||
00:03
DemoPhreak is now known as DemoFreak
|
|||
skids | I know someone who doesn't even need to lie down. :-) Totally envy him, or I would if he wasn't always more tired than me somehow. | 00:03 | |
jnthn | Actually, now we're getting to summer I don't mind doing later nights and so on. | ||
I just in winter hated getting up, starting working by midday and looking out the window a few hours into work and noticing it was already dark... | 00:04 | ||
skids: ah, not having to lie down to sleep could be useful. Sleeping on the long-haul flights where it was appropriate to do so would be helpful... | 00:06 | ||
TimToady | well, if I remove sigil as a listop, the only test that fails to parse is the test for whether sigils can be used as listops :) | 00:09 | |
so I'm thinking to break that, and require slice 1,2 Z 3,4 instead of @@ 1,2 Z 3,4 | |||
then we can maybe do something sane with non-declarative ($,$) = stuff | 00:10 | ||
though ($,*@) would still blow sky high | 00:11 | ||
jnthn | In what context? | ||
TimToady | non-declarative | 00:12 | |
jnthn | rakudo: ($, *@) = (1,2,3) | ||
TimToady | two terms in a row | ||
* and @ | |||
p6eval | rakudo 70fc00: OUTPUTĀ«Syntax error at line 1, near "($, *@) = "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
jnthn | win | ||
my ($, *@) = 1,2,3; | |||
rakudo: my ($, *@) = 1,2,3; | 00:13 | ||
pmichaud | time for me to fetch dinner. And I won't be using a scope on a deer rifle for it. :-) | ||
p6eval | rakudo 70fc00: ( no output ) | ||
pmichaud | bbl | ||
jnthn | pmichaud: Use it on a cow and make cheezburger! | ||
TimToady | enjoy | ||
jnthn | pmichaud: I'll sleep soon, so night :-) | ||
pmichaud | jnthn: funny you should say that -- cheezburgers are indeed the preferred meal tonight from the (very tired) family | ||
TimToady | the last time my brother went deer hunting he made hamburger out of 3/4s of the meat | 00:14 | |
but the antlers were fine :) | |||
00:15
japhb left
|
|||
jnthn | I ate reindeer a copule of times and it was good. | 00:19 | |
But in the UK I got accused of "eating Christmas...how will Santa come now" ;-) | 00:20 | ||
00:21
jferrero left
00:22
meppl left
|
|||
skids wonders what stork tastes like | 00:24 | ||
jnthn | Never tried that. | ||
I've not treid that many more interesting meats tbh. | 00:25 | ||
Had wild boar in Belarus. | |||
jnthn ist spat | 00:34 | ||
Night, folks | |||
00:40
DemoFreak left
00:41
s1n left
|
|||
pugs_svn | r26167 | lwall++ | Eliminate listop forms of sigils. | 00:44 | |
00:50
s1n joined
|
|||
pugs_svn | r26168 | lwall++ | [context.t] don't allow listop sigils any more | 00:58 | |
r26169 | lwall++ | [STD] treat bare sigils as (illegal) anonymous variables | 00:59 | ||
01:02
LylePerl joined,
LylePerl left
01:20
Tene_ joined
|
|||
pugs_svn | r26170 | lwall++ | [STD] tame overzealous undef check that assumed variable couldn't match bare & | 01:24 | |
01:32
Tene left
01:59
eternaleye joined
02:15
c9s left
02:16
c9s joined,
frew|work joined,
frew|work is now known as frew
02:28
c9s left,
c9s joined
02:46
cdarroch left
02:52
alester_ joined
02:59
agentzh left
03:11
Limbic_Region left
03:15
orafu left,
orafu joined
|
|||
pmichaud | rakudo: my $b = *-3; say $b(2); | 03:18 | |
p6eval | rakudo 70fc00: OUTPUTĀ«Use of uninitialized valueā¤invoke() not implemented in class 'Float'ā¤current instr.: '_block14' pc 110 (EVAL_17:52)ā¤Ā» | 03:19 | |
03:19
hercynium left
|
|||
pmichaud | rakudo: my $b = */2; say $b(4); | 03:19 | |
p6eval | rakudo 70fc00: OUTPUTĀ«0.5ā¤Ā» | ||
pmichaud | oops. | ||
03:35
sitaram joined
03:44
skids left
03:50
amoc joined,
Util left
04:16
justatheory left
04:17
Maghnus joined
|
|||
pugs_svn | r26171 | hinrik++ | [util/perl6.vim] remove listop sigils, highlight $ placeholder like a variable, not an operator | 04:36 | |
pmichaud | TimToady: ping | 04:57 | |
TimToady: earlier you said that infix:<..> has (Int,Whatever) and a (Whatever,Int) (and a (Str,Whatever) and a (Whatever,Str)) | 04:58 | ||
do we also need (Int,Code), (Code,Int), (Code,Code), (Code,Whatever), (Whatever,Code) ? | 04:59 | ||
05:01
japhb joined
|
|||
pmichaud | I'm thinking of the case @a[*-3..*-1] | 05:01 | |
or perhaps it's enough to have (Any,Code) and (Code,Any) ? | 05:04 | ||
(and I guess (Code,Code) ) | 05:05 | ||
multi sub infix:<..>(Code $f, $t) { -> $v { $f($v)..$t } } | 05:06 | ||
05:12
alester_ left
|
|||
pmichaud | also, S09 has a couple of fossils: | 05:13 | |
F @results[-1] = 42; # Same as: @results.unshift(42) | |||
@dwarves[-2..-1] # Same as: @dwarves.unshift(<Groovy Sneaky>) | |||
= <Groovy Sneaky>; | |||
05:20
sri_kraih joined
05:23
zamolxes left
05:25
mib_ba0z3oeb joined
|
|||
mib_ba0z3oeb | hello? | 05:26 | |
pmichaud | mib_ba0z3oeb: hello. | 05:28 | |
mib_ba0z3oeb | thank god.. | ||
i thought i was the only person left alive..... | |||
(figuralitivly speaking......) | 05:30 | ||
05:33
mib_ba0z3oeb left
|
|||
TimToady | pmichaud: if we add in the Code variants along with Whatever variants, then we can do (*/2)+1 and such | 05:38 | |
pmichaud | but I haven't quite figured out how that works yet. | ||
TimToady | hmm, for ranges, you mean. lemme think about it some | 05:39 | |
pmichaud | with @array[*-3..*-1] the postcircumfix sees a Code object | ||
so it invokes it, getting back a Range object | 05:40 | ||
do we re-dispatch to postcircumfix with the Range object? | |||
also, several comments earlier seemed to indicate that @array[1..*] would be the same as @array[1..Inf] | 05:41 | ||
but I suspect the former has a finite number of elements (for a fixed array) while the latter would be infinit | 05:42 | ||
*infinite | |||
i.e.: my @a = <alpha beta gamma>; say @a[2..*].elems, @a[2..Inf].elems; # 2, Inf | 05:43 | ||
TimToady | I suppose the Code forms also have to produce Code that is parameterized on the number of elements | 05:44 | |
pmichaud | I don't think I follow | 05:45 | |
or, I think I don't follow that | |||
TimToady | I think subscripting operations always trim to the known number of values | 05:46 | |
pmichaud | but only for ranges, yse? | ||
because we'd still want @a[5] to give us back something and not trim | |||
it would also seem weird if my @b = 1,2,3,4,5,6; say @a[@b].elems # 6 ? | 05:47 | ||
my $b = 1..6; say @a[$b].elems # 2? | 05:48 | ||
05:48
justatheory joined
|
|||
TimToady | well, and @a[$b] bothers me in the first place, since $b doesn't normally interpolate into a list | 05:49 | |
pmichaud | there's that also :-) | 05:50 | |
does it do so in (1,2, 3, $b, 4, 5, 6) ? | 05:51 | ||
TimToady | I dunno, ranges are just a problem; need to cogitate | 05:52 | |
pmichaud | is it at all possible likely that the whatever handling of subscripts will change (or whatever in infix math ops)? | 05:53 | |
I can switch rakudo to do postcircumfix:<[ ]> with code arguments, but we'll fail a few more tests because of the ranges issues | |||
(I don't mind regressing on tests... just don't want to do a lot of changes to postcircumfix:<[ ]> in rakudo just to have to turn around and switch it again if I can avoid doing that :-) | 05:54 | ||
TimToady | need to think, and my thinker is not completely on track right now (sinus infection) | ||
pmichaud | oh, very sorry to hear that. I had a sinus infection a week or so ago; it's gone bu tleft me with a minor chest cough/cold | 05:55 | |
another item to toss in the mix on this issue, then | 05:56 | ||
suppose I have a new type Foo and I want to define how postcircumfix:<[ ]> operates on Foo objects.... what's the standard mechanism for doing that? | |||
obviously I'd say "Foo does Positional" or something like that | 05:57 | ||
but how do I specify that an integer argument maps to some result? | |||
TimToady | but we need to figure how multi-dimensionality fits into the role | ||
pmichaud | is it a method or a multi sub? | ||
oh yes, and multi-dimensionality too. | |||
essentially, I'm wondering how we get slicing and closure behaviors into custom postcircumfix:<[ ]> operations | 05:58 | ||
TimToady | I suspect we need to see how it works for normal arrays first, and then genericize it | ||
pmichaud | I wouldn't want to have to duplicate all of those, so I'm wondering if the generic forms somehow end up re-dispatching to the simple postcircumfix:<[ ]>(Int) form | 05:59 | |
so that my custom type defines a postcircumfix:<[ ]>(Int), and gets the slicing/whatever semantics automatically | |||
TimToady | well, I think the multi-dim version certainly has to traverse one dimension at a time with a simpler subscripter | ||
pmichaud | yes, that makes sense | 06:00 | |
06:00
justatheory left
|
|||
TimToady | it's possible that the simpler version is sufficient to generate the more complicated things, presuming multi-dim works similarly | 06:00 | |
but things like shaped arrays will work differently from AoA structures | 06:01 | ||
it would be nice if [1;2] was indistinguishable from [1][2], but it might take some doing to get there | 06:02 | ||
06:06
sitaram left
|
|||
dalek | kudo: 3280d41 | pmichaud++ | build/gen_whatever_pir.pl: Whatever arguments appear to have been flipped. |
06:06 | |
06:09
agentzh joined
|
|||
dalek | kudo: 712982a | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 356 files, 10284 passing, 0 failing |
06:17 | |
06:24
drbean left
|
|||
pmichaud | rakudo: my $b = [1,2,3,4,5]; for $b { .say } | 06:31 | |
p6eval | rakudo 712982: OUTPUTĀ«1 2 3 4 5ā¤Ā» | ||
pmichaud | rakudo: my $b = 1..5; for $b { .say } | ||
p6eval | rakudo 712982: OUTPUTĀ«1ā¤2ā¤3ā¤4ā¤5ā¤Ā» | ||
pmichaud | that does seem inconsistent, now that I think about it. | ||
also, I wonder what the following should do | 06:32 | ||
my $b := (1,2,3,4); for $b { .say } | |||
rakudo: my $b = 1..5; say (1,$b,3).elems; | 06:34 | ||
p6eval | rakudo 712982: OUTPUTĀ«7ā¤Ā» | ||
pmichaud | rakudo: my $b = * / 2; say $b(8); | 06:38 | |
p6eval | rakudo 712982: OUTPUTĀ«4ā¤Ā» | ||
pmichaud | okay, that's better at least :-) | ||
time for much-needed sleep... bbiaw | 06:40 | ||
06:43
brunov left
06:47
silug joined
07:06
alexn_org joined
07:45
gfldex left
07:46
gfldex joined
08:08
barney joined
08:12
iblechbot joined
08:13
cai joined
08:18
mikehh_ left
08:19
DemoFreak joined
08:24
mikehh joined,
cai left,
cai_ joined
08:34
pmurias joined
08:51
cai_ left
09:11
pmurias left,
ejs joined
09:12
alexn_org left
09:15
drbean joined
10:00
schmalbe joined
10:16
barney left
10:26
plash joined
10:40
pmurias joined,
M_o_C joined
10:59
ejs left
11:01
ihrd joined
11:02
wknight8111 joined
11:18
literal joined
11:19
DemoFreak left,
brunov joined
11:52
ihrd left
12:09
shachaf left,
PerlJam left,
diakopter left,
broquaint left,
zostay left,
dukeleto left,
silug left
12:10
PerlJam joined,
shachaf joined,
allbery_b joined,
mj41 joined,
lucs joined,
Woody2143 joined,
frobnitz joined,
pmichaud joined,
yves joined,
szbalint joined,
scrottie joined,
irc.freenode.net sets mode: +oo PerlJam pmichaud,
silug joined,
zostay joined,
broquaint joined,
dukeleto joined,
diakopter joined
12:12
Helios left
12:13
rafl joined
12:16
Helios joined
13:09
ejs joined
13:14
explorer joined
13:16
sitaram joined
13:42
ejs left
13:46
explorer left
13:51
explorer joined
13:52
Tene joined
13:56
ejs joined
14:02
sephee left
14:04
Tene_ left
14:06
schmalbe left
14:13
ejs left
14:21
skids joined
14:25
nihiliad joined
14:32
DemoFreak joined
14:35
wolverian joined
14:42
nihiliad left
14:59
riffraff joined
|
|||
pugs_svn | r26172 | pmurias++ | [re-smop] ported over Code add Hash.bind_key | 15:01 | |
15:02
rindolf joined
15:03
rindolf left
15:04
rindolf joined
15:05
justatheory joined
15:14
meppl joined
|
|||
pmichaud | jnthn: ping | 15:18 | |
15:21
frew left
15:23
plash left
15:52
silug left
15:53
Psyche^ joined
15:58
FurnaceBoy joined
16:02
nihiliad joined
16:10
Patterner left,
Psyche^ is now known as Patterner
16:13
nihiliad left
|
|||
pugs_svn | r26173 | pmurias++ | [re-smop] fix memory leaks found by valgrind in the test suit | 16:14 | |
16:21
LylePerl joined
16:22
kimtaro joined
|
|||
LylePerl | ping jnthn | 16:24 | |
eiro | "hello world".say | 16:25 | |
TimToady .= awake(:sorta) | 16:28 | ||
16:30
SIGJIT joined
16:31
SIGJIT left
|
|||
LylePerl | Hi TimToady | 16:31 | |
TimToady | o/ ... _/ ... __ | 16:32 | |
I've obviously been reading too much xkcd lately... | 16:33 | ||
LylePerl | :) | ||
TimToady | \o\ ... /o/ ... \o\ ... /o/ | 16:34 | |
jnthn | oh noes who wanted me? | 16:35 | |
TimToady | everyone, it would seem | ||
LylePerl | jnthn: me | 16:36 | |
TimToady | and pm | ||
jnthn | LylePerl,pmichaud: Oh hai I'm back from Good Friday service. | ||
jnthn figures if two people want him he must be in really big trouble :-) | |||
LylePerl | jnthn: I'm trying to document my learning how to contribute into some sort of guide that others like me can follow | 16:37 | |
jnthn | LylePerl: Nice. :-) | ||
LylePerl | jnthn: I'm not having a good time building pugs on win32 | ||
rindolf | Hi all. | ||
jnthn | LylePerl: It's been probably over a year or maybe 2 years since I tried that. :-| | 16:38 | |
rindolf: Hi | |||
rindolf | jnthn: how was the service? | ||
LylePerl | jnthn: How did you fare with haskell package regex-pcre-builtin? | ||
jnthn | rindolf: Was very nicely done, a good time to reflect on stuff. :-) | 16:39 | |
LylePerl: I don't think I tried that. | |||
LylePerl: At least, I don't remember trying that... | 16:40 | ||
16:40
eternaleye left
|
|||
LylePerl | jnthn: It's needed for regexps to work, except it doesn't want to install. I could skip it, but that would be a bit of a killer | 16:41 | |
jnthn: just wondered if you had issues and knew a way to resolve them... I'll plug on | |||
jnthn | LylePerl: 'fraid not. When I want to know what Pugs makes of something these days I tend to use the evalbot on this channel. | ||
Which ain't practical if you want to run bigger things, I know. | |||
pugs_svn | r26174 | pmurias++ | [re-smop] make the mold assignment op respect reference counters | 16:43 | |
pmichaud | jnthn: I worked on *-1 a bit last night, but ran into design issues | 16:48 | |
jnthn | pmichaud: Eww. What sort of design issues? | ||
pmichaud | short summary: @a[*-3..*-1] is a bit... complicated | ||
discussion with TimToady at irclog.perlgeek.de/perl6/2009-04-10#i_1053997 | 16:49 | ||
16:49
rindolf left
|
|||
jnthn | looking | 16:52 | |
TimToady | turns into @a[ -> $end { infix:<..>( { $^e - 3 }($end), { $^e - 1 }($end) ) } | 16:54 | |
or something like that | |||
pmichaud | also weird is something like @a[*-3..*] | 16:55 | |
TimToady | so actually something more like | ||
jnthn | oh noes I failed it on the whatever ops! | 16:56 | |
pmichaud | jnthn: only on a few of them :-) | ||
the commutative ones you got right :-) | |||
jnthn | Yeah! | ||
OK, so is it along the lines of Range needs variants that take Code too? | 16:57 | ||
pmichaud | yes, and postcircumfix:<[ ]> has to do various redispatches (possibly repeated) | ||
TimToady | probably need to pass in the whole range of subscripts, and let the Code decide whether it wants the whole range or just the end | 16:58 | |
pmichaud | hmmm? | ||
I got lost there | |||
jnthn | Same | 16:59 | |
16:59
hercynium joined
|
|||
jnthn | pmichaud: I *think* Range variants shouldn't be so hard to do. | 16:59 | |
TimToady | so @a[ -> $range { infix:<..>( { $^e - 3 }($range.to), { $^e - 1 }($range.to) ) } | ||
or some such | |||
pmichaud | jnthn: oh, it might not be too hard to do -- i just wanted to get some guidance before committing to a particular solution | 17:01 | |
jnthn | pmichaud: Sure, makes sense. Having to re-do stuff more times than necesary sucks. | ||
TimToady | but redoing stuff fewer times than necessary also sucks :) | ||
pmichaud | TimToady: okay, you're suggesting that infix:<..> with code arguments returns a closure that expects a range | 17:02 | |
TimToady | might be wrong | 17:03 | |
pmichaud | feels wrong | ||
TimToady | the $^e is wrong | ||
pmichaud | because... well, postcircumfix:<[ ]> doesn't know what kind of closure it has | ||
so @a[*-1] versus @a[*-3..*-1] | |||
unless we pass a range to the *-1 case also | |||
(which then numifies to the number of items in the range) | 17:04 | ||
jnthn | I'm not quite sure I get the problem this is trying to solve... | 17:05 | |
turns into @a[ -> $end { infix:<..>( { $^e - 3 }($end), { $^e - 1 }($end) ) } looked about right to me... | |||
Though does it not want to be $elems and not $end? | |||
Since end is the last element that has a value? | 17:06 | ||
TimToady | yeah | ||
pmichaud | jnthn: @a[1, 2, *-5..*-2, 7] | ||
I guess we just do redispatches | 17:07 | ||
jnthn | I think you'd have to take the 1, then the 2, then see you have a closure there and handle that as a closure, etc | ||
pmichaud | so, in the case of @a[*-3..*-1], postcircumfix:<[ ]>(Code) ends up redispatching to postcircumfix:<[ ]>(Range) | ||
jnthn | I wasn't seeing it as you have a whole list of things that you can invoke with end. | 17:08 | |
TimToady | the trouble with the formula above is it supplies $elems too early | ||
it's supplying it to the arguments to .. rather than the returned closures | |||
jnthn | pmichaud: Erm...no, because we'd not have a Range passed, but a Code? | ||
pmichaud | jnthn: but the way you have it, the Code is returning a Range | ||
jnthn | pmichaud: Oh, I see | ||
pmichaud | so we evaluate the Code and get a Range back | 17:09 | |
jnthn | You mean you re-dispatch *after* you run the Code. Right. | ||
pmichaud | right. | ||
re-dispatch might not be the correct word. | |||
jnthn | No, but I know what you're maning by it. | ||
Or what i'm meaning by it. | |||
pmichaud | (correct word welcome here :-) | ||
jnthn | Or whoever started using it. ;-) | ||
pmichaud | in the case of @[1, 2, *-5..*-2, 7] we'd have postcircumfix:<[ ]>(List) iterate (lazily!) the list causing calls to postcircumfix:<[ ]>(Int) and postcircumfix:<[ ]>(Code) (the latter of which would end up having to call postcircumfix:<[ ]>(Range) in order to evaluate the range that comes back from the code) | 17:11 | |
TimToady | so @a[ { ( { $^x - 3 } .. { $^x - 1} ).($^elems) } ] | ||
pmichaud | yes, and postcircumfix:<[ ]>(Range) would handle the case when a Range has a Whatever as an endpoint | 17:12 | |
jnthn | pmichaud: Good job our multi-dispatcher has a cache, no? ;-) | ||
moritz_ | hi | 17:13 | |
pmichaud | hello, moritz | ||
jnthn | hi moritz | ||
pmichaud | I think I may go with something like that for now, so we have something "working", even if it changes substantially later. | ||
jnthn | It feels nice in that you can subclass just one variant. | 17:14 | |
moritz_ | I did some hacking yesterday evening without having internet access, I'll rebase + test now, if everything works I'll push | ||
pmichaud | moritz_: hacking on ... ? | ||
TimToady | doesn't feel right to me; sounds like you're reinventing lists or something | ||
but I guess subscript lists are special | |||
at least for Code | |||
pmichaud | TimToady: I'll be totally fine with a redesign if/when you come up with one :-) | 17:15 | |
TimToady | I don't like that a range in (1, $r, 3) expands | ||
pmichaud | I think it should not expand | ||
(after thinking about it last night) | |||
moritz_ | pmichaud: Hash.reverse (matches the spec now), and Hash.push | ||
TimToady | Scalar of Range | ||
17:15
moritz_ sets mode: +o TimToady
|
|||
TimToady | needs @ or | | 17:15 | |
pmichaud | if I want an expanding range, I should do my @r = 1..3 | ||
TimToady | or := | 17:16 | |
pmichaud | right | ||
TimToady | since 1..3 would turn eager on you | ||
pmichaud | so, my $r := 1..3; (1, $r, 3) # expands ? | ||
TimToady | = 1..3 | ||
pmichaud | where "expands" means "interpolates" ? | ||
TimToady | still don't like any $x acting plural | 17:17 | |
pmichaud | yes, that's why I was asking about it :-) | ||
TimToady | my $r := [1,2,3]; (1, $r, 3) | ||
doesn't expand | |||
pmichaud | sure, but I'd think that's because of the brackets | ||
I'd be curious about | |||
my $r := (1,2,3); (1, $r, 3) | 17:18 | ||
TimToady | I think somehow the $ in the list puts the contents of $r back into item context if not already "itemized" | 17:19 | |
pmichaud | so, a scalar container in list context always itemizes its contents? | ||
TimToady | esp if $r is a capture, we can't have it assuming | | 17:20 | |
pmichaud | (er, treats itself as an item) | ||
TimToady | or maybe binding to a scalar makes sure its item isn't "naked" somehow | ||
pmichaud | that seems harder to me | ||
I might want to bind to a naked item. I think the case we're worried about is when a scalar variable appears in a list | 17:21 | ||
TimToady | probably, but I'm not completely sure | ||
pmichaud | agreed, I'm not sure either. | ||
TimToady | well, we can fix it there, I suppose, and bear in mind the other possibility | 17:22 | |
pmichaud | I'll see if I can get (1, $range, 3) to not expand range and see how it affects our current spectests | ||
17:22
nihiliad joined
|
|||
pmichaud | I suspect it won't regress much. | 17:22 | |
(if at all) | |||
17:22
cdarroch joined
|
|||
pmichaud | someone that wants $range to expand can always do (1, @$range, 3) | 17:22 | |
TimToady | you subscriptor might need to expand the Range like it needs to do Code | 17:23 | |
but that would be bad again | |||
pmichaud | so that @a[1, $range, 3] expands $range? | ||
TimToady | so I think just Code is special | ||
no, was a braino | |||
pmichaud | okay, good | ||
TimToady | now just wondering if we can easily detect the $range vs @$range error... | 17:24 | |
if +$range returns # elems, could be hard to spot | |||
pmichaud | I think it ends up being very analogous to $array vs @$array | 17:25 | |
TimToady | but by attaching the behavior to $range and not .. we get [$x..$y] to expand in the list okay | ||
pmichaud | right | ||
assigning ranges to scalars seemed to me to be very similar to assigning lists to scalars | 17:26 | ||
so.... | |||
maybe a range in item context also becomes a capture of some sort? | |||
TimToady | maybe there's some way to require an explicit + in some circumstances | ||
pmichaud | (since a list in item context now becomes a capture) | ||
TimToady | Sure, range is just one way of specifying (a part of) a list | 17:27 | |
so ranges should act like lists to the extent possible | |||
1..3 should behave like 1,2,3 | |||
it's really just an optimization to evaluate ranges lazily instead of eagerly like p5 | 17:28 | ||
pmichaud | yes, but unlike lists, ranges are (currently) mutable | ||
TimToady | which is probably a mistake | 17:29 | |
pmichaud | I'd be happy if we eliminate that, I think. | ||
I'm not sure that .pop and .shift on ranges are all that useful. | 17:30 | ||
jnthn | What should iterating them then look like? | ||
pmichaud | same as iterating on a list | ||
TimToady | or have a separate DynRange object | ||
jnthn | (At the moment, the range is "consumed" as its iterated...) | ||
pmichaud | actually, iterating a range doesn't consume it | ||
at least, not in rakudo. | |||
TimToady | no harm, no foul :) | ||
pmichaud | rakudo's range iterators work on a clone of the range :-) | ||
jnthn | pmichaud: Oh really? | ||
pmichaud: Oh, yes. | 17:31 | ||
TimToady | which is essentially a DynRange kind of object | ||
jnthn | They hadn't used to... | ||
pmichaud | anyway, iterating a range is really the same as iterating a list -- it's not "consumed" | ||
(yes, the clone of the range ends up acting like a DynRange) | 17:32 | ||
TimToady | heh, Range is already listed as immutable in S02 | 17:33 | |
17:33
japhb left
|
|||
pmichaud | yes, I've sent a few messages (unasnwered) noting the discrepancy | 17:33 | |
pugs_svn | r26175 | moritz++ | tests for typed hashes | 17:34 | |
r26176 | moritz++ | tests for Hash.push | |||
araujo pulls his clone in here to ask the question for the 'twisted' minds of perl6 hackers | |||
pugs_svn | r26177 | moritz++ | [t/spec] move Hash.reverse tests in separate file, and bring them up-to-date with the spec | ||
r26178 | moritz++ | [t/spec] typed array and hash attributes | |||
r26179 | moritz++ | [t] move is_rw_on_class to spec/ | |||
17:34
jauaor joined
|
|||
dalek | kudo: 029aa51 | (Moritz Lenz)++ | (2 files): bring Hash.reverse up to date; test S32-hash/reverse.t |
17:35 | |
kudo: 7b2c47c | (Moritz Lenz)++ | (2 files): Implement Hash.push, and add S32-hash/push.t to spectest.data type() from is_deeply in Test.pm |
|||
kudo: c44a05b | (Moritz Lenz)++ | t/spectest.data: we pass the new S09-typed-arrays/hashes.t |
|||
pmichaud | moritz++ # yay, reverse is fixed | ||
kudo: 79aba97 | (Moritz Lenz)++ | README: [README] reworked paragraph on rakudo.org |
|||
jauaor | what do you guys think it is the cleaner syntax in these two examples: pastie.org/442985 | ||
jauaor | (not perl6 related but language design related) | ||
jnthn | moritz_: D'oh, I also did write some typed hash tests ;-) | ||
skids | boo, hash.reverse still exists :-) | ||
moritz_ | jnthn: it can't hurt to have multiple tests ;-) | 17:36 | |
jnthn | moritz_: Perhaps s/typed_arrays/typed_data_structures/ | ||
typed-arrays/hashes.t feels odd ;-) | |||
moritz_ | that's the chapter name in S09 | ||
I know it's odd | |||
rakudo: my Int %h; my Int %g; %h = %g; say "alive" | 17:37 | ||
pmichaud | hyphens, please :-) | ||
p6eval | rakudo 712982: OUTPUTĀ«No applicable methods.ā¤ā¤current instr.: 'parrot;Mapping;!flatten' pc 9222 (src/classes/Mapping.pir:327)ā¤Ā» | ||
moritz_ | pmichaud: aye | ||
pmichaud wants to convert all of the underscores in the spectest file/directory names to hyphens :-) | |||
moritz_ | pmichaud: feel free | 17:38 | |
pmichaud | Mapping flatten?!? | ||
jnthn | .sub '!flatten' :method .tailcall self.'iterator'() | ||
.end | |||
moritz_: I suspect actually it's the call to .iterator that is failing | 17:39 | ||
moritz_: I have a nearly-done local patch that'll fix that. | |||
(Making more stuff use Perl 6 MMD. We've kinda hit the buffers with Parrot's MMD now.) | 17:40 | ||
Am pondering when we dare to make all the built-in operators use Perl 6 MMD rather than the Parrot one too. | 17:41 | ||
pmichaud | as soon as I can parse the operator names | 17:42 | |
(actually coming relatively soon) | |||
jnthn | Nice | ||
pmichaud | I played with it a bit last week. | ||
moritz_ | I have to go offline again, have fun ;-) | 17:44 | |
pmichaud | great job, moritz! | ||
moritz_ | thanks pmichaud | 17:45 | |
17:45
Tene_ joined
|
|||
jnthn | BTW, I'm going to be mostly offline Monday/Tuesday/Wednesday until I get to NPW. | 17:46 | |
pmichaud | okay, I'll be offline Tuesday | ||
I leave Tuesday from here but arrive Oslo Wed morning. | |||
So I expect to be online for parts of Wednesday | |||
jnthn | OK | 17:47 | |
If there's a pre-conference met-up I'll probably be at that, if you feel like making it too. | |||
*meet-up | |||
TimToady | skids: but the semantics of %hash.reverse have changed | ||
jnthn | Though I won't blame you if you'd rather sleep off the lag than drink beer. ;-) | 17:48 | |
TimToady | we also leave Tue | ||
17:48
silug joined
|
|||
pugs_svn | r26180 | lwall++ | [S02,S03] Range objects are immutable, so distinguish from RangeIterator objects | 17:49 | |
jnthn | I'm flying on Mon, but seeing some friends in Sweden ont he way to Oslo. | 17:50 | |
pmichaud | I'll catch you sometime on Wed, no doubt. | ||
jnthn | Aye | ||
We're at the same hotel too, IIRC. | 17:51 | ||
pmichaud | yes.... BW anker | ||
jnthn | Yes | ||
TimToady | I've no idea where we're staying :) | ||
jnthn points TimToady to his igloo. | |||
TimToady | I only know we're leaving Tue because I looked at the calendar... | ||
I am grateful to be married to a logistician. | 17:52 | ||
pmichaud | me too! | ||
jnthn smokes his typed hashes patch | 17:54 | ||
Gah, I want to fix slurpy type checking somewhat today too... | |||
pdc | When I first read about Perl 6 in brief, I thought autothreading seemed like a great idea. is this present in other languages? | 17:56 | |
17:57
Tene left
|
|||
jnthn | rakudo: $*OUT.say("no" & "I don't think so"); | 18:01 | |
p6eval | rakudo 79aba9: OUTPUTĀ«noā¤I don't think soā¤Ā» | ||
jnthn | pdc: ^ ;-) | ||
pdc | you know, I don't know Perl or Perl 6. if you were being particularly clever, I probably missed it :) | 18:02 | |
jnthn | pdc: I just called the say method with a Junction, such that it auto-threaded. :-) | ||
pdc | ah, I see now | 18:03 | |
hehe | |||
TimToady | autothreading is definitely an atomic bazooka though | ||
be sure to aim above the horizon with it | |||
pdc | jnthn: Perl is #1 on my todo list when I finish university in a month or so. so I'm idling here and #perl | ||
jnthn: so I just have the occasional question | |||
TimToady | and have a manhole handy to jump down | ||
18:03
payload joined
|
|||
jnthn | TimToady: Wouldn't that me more important if it was an atomic boomerang? :-) | 18:04 | |
pdc | although I'm still weighing-up Perl vs Puthon :\ | ||
skids | That depends entirely on the balst radius | ||
TimToady | for an atomic boomarange you'd better have a darn thick manhole cover | ||
s/e// | |||
I think Python has got itself into a position where it cannot evolve much further with any rapidity | 18:06 | ||
even Python 3000 was fairly trivial changes | |||
(compared to Perl 6 :) | |||
pdc | but it looks like a really neat language, from what little I have seen | ||
TimToady | personally, can't stand dangling syntax | ||
never liked outlines either :) | 18:07 | ||
pdc | though I will most likely opt for Perl, due to it offering more different to C, which I work in primarily | ||
TimToady | and Python really has no FP story | ||
I think a language to complement C should really has some functional characteristics | 18:08 | ||
pdc | which Perl / Perl 6 does, am I right? | ||
TimToady | it's lambdas all over | ||
the new -> $x, $y {...} notation is really just a lambda | 18:09 | ||
pdc | my main concern was the 'relevence' of the language. Having something that is useful to my career prospects would be great. Python certainly has popular opinion on it's side | ||
TimToady | for the moment | ||
pdc | yeah | ||
reading about Perl 6 actually made me reconsider my decision to go for Python | 18:10 | ||
TimToady | and I don't doubt it will last a long time, the same way C has | ||
[particle]- | TimToady: junctions in action... www.wired.com/images/article/magazi...s1_630.jpg | ||
TimToady | but C already occupies the "too simple not to survive" niche :) | ||
pdc | you don't doubt Python will last, TimToady ? | ||
TimToady | oversimplifications always persist because the swee the complexity of the problem under someone else's carpet | 18:11 | |
*sweep | 18:12 | ||
*they | |||
gah | |||
pdc | I will grab the camel book soon and get cracking. thanks for your thoughts once again | ||
TimToady | look at all the problems caused in modern life that are arguably caused by C being too simple-minded about buffer overflows and such | 18:13 | |
have fun | |||
pdc | C is meant to be simple, though | ||
jnthn | [particle]: Hey, that looks like fun! | ||
[particle]- | conficker | ||
pdc | and C programmers need to not be simple | ||
[particle]- | jnthn: portal is a really fun, mind warping game | ||
eiro | is there a way to download mailing list archives fromm google groups | 18:14 | |
[particle]- | too bad valve didn't end up hiring me :( | ||
jnthn | Aww. :-( | ||
You still hunting? | |||
[particle]- | nope | ||
eiro | i want to read november's one | ||
TimToady | well, I don't really care how long it takes to win everyone over--Perl 6 is not intended to be a first programming language, but a last one. | ||
pmichaud | I like that quote. | 18:15 | |
pdc | you guys probably hate this question but I read that the schedule hopes for Perl 6 to be pretty much done by Christmas. is it still on track? | 18:16 | |
jnthn | Sure. | ||
pmichaud | pdc: "Yes" | ||
[particle]- | of course! | ||
TimToady | you've misconstrued the meaning of "Christmas" | ||
[particle]- | :) | 18:17 | |
jnthn | pdc: We just ain't specific about *which* Christmas. ;-) | ||
pdc | hehehe | ||
pmichaud | it also depends on the definition of "done" :) | ||
[particle]- | and the definition of "Perl 6" | ||
pmichaud | for example, when is Linux done? | ||
TimToady | "But after Perl 6 comes out every day will seem like Christmas" | ||
pdc | the 'yes' is sounding more like a 'no' with everything you say :) | 18:18 | |
18:18
payload left,
payload joined
|
|||
pmichaud | pdc: the issue is that "done" is a fairly nebulous term. | 18:18 | |
pdc | I'm sure it is | ||
TimToady | look, we're trying to do something impossible here. So we expect to fail. But we expect lots of people to love our failure. | ||
pmichaud | do we have a page with good Perl 6 quotes somewhere? | 18:19 | |
(I know we do for Parrot... I want a p6 equivalent :-) | |||
TimToady | but if you put up a page like that, I won't have anything left to say in my talks :) | ||
pdc | okay then, thanks again. back to my C work. | ||
pmichaud | A language with as many quoting operators as Perl 6 really needs to have lots of quotes about it. | ||
TimToady | C, C, seƱor. | 18:20 | |
pmichaud | TimToady: I have little doubt of your ability to continue coming up with excellent quotes, both in and outside of your talks. :-) | ||
18:20
LylePerl left
|
|||
TimToady | I'll need to publish a little red book like Chairman Mao. | 18:21 | |
or maybe chartreuse | |||
[particle]- | what's the sound of one junction auto-threading? | ||
TimToady | one leg is both the same | 18:22 | |
oh wait, that's the answer to "what's the difference between a duck?" | |||
18:24
sitaram left
|
|||
TimToady | shower & | 18:24 | |
skids | rakudo: my %b; my %a = (:a<b c b>, :d<c c b>); %a.perl.say; %b.push(%a.reverse); %a = (); %a.push(%b.reverse); %a.perl.say; | 18:34 | |
p6eval | rakudo 79aba9: OUTPUTĀ«{"a" => ["b", "c", "b"], "d" => ["c", "c", "b"]}ā¤{"a" => ["b", "b", "c"], "d" => ["b", "c", "c"]}ā¤Ā» | ||
skids | to pick nits, information was indeed lost | ||
pmichaud | the .reverse implementation didn't look quite right to me... but I didn't study it closely. | 18:36 | |
feel free to file a ticket :-) | |||
skids | It's a spec thing not a bug... says two reverses "without losing information" but you lose ordering of the lists. | 18:37 | |
I don't see anything wrong with having the functionality. Still don;t like that it's named reverse, but can live with it a bit more now, I suppose. | 18:38 | ||
pmichaud | I'm okay with using RT to file spec tickets :-) | 18:39 | |
or you can mail p6l | |||
skids | Or I could just patch the spec to not make the claim :-) | ||
pmichaud | or that. :-) | ||
pugs_svn | r26181 | skids++ | Be clear a doouble Hash.push(Hash.reverse) does not preserve all state | 18:44 | |
r26181 | skids++ | (value list order may be altered.) | |||
18:59
programmer55 joined
19:00
programmer55 left
19:14
amoc left
19:24
payload left,
payload joined
|
|||
pugs_svn | r26182 | lwall++ | rename hash/pair reversal to "invert" | 19:26 | |
19:31
Kisu left
19:34
japhb joined
|
|||
TimToady | should probably define invert on List as well | 19:34 | |
skids | What, twiddle Pairs else don't touch? | 19:35 | |
TimToady | mappify to pairs and then invert those | 19:42 | |
so .kv would reverse to vk, put .pairs would just invert the pairs | 19:43 | ||
skids | Ah, as if used to initialize a hash, but without the hash. | ||
TimToady | yes, we need a name for pair-ification, if we don't have one already | ||
skids | (and then invert the imaginary hash and .kv) | ||
TimToady | I think we called it pairs() once upon a time | 19:44 | |
19:44
bacek__ joined,
bacek_ left
|
|||
TimToady | but maybe that's just Mapping() | 19:44 | |
skids | "couple"? | 19:45 | |
TimToady | "map", oh wait... | ||
List.pair if given >2 args? | |||
19:45
riffraff left
|
|||
skids | Z:pair? | 19:46 | |
19:46
jedai left
|
|||
skids | I suppose if List.pair then Z.pair would just work though. | 19:48 | |
TimToady | what is this Z type of which you speak? :) | ||
skids | Zip | ||
Oh, missed smiley | |||
They are hard to see on this font. 8-D | 19:49 | ||
TimToady | >B-{) | ||
[particle]- | .pare | 19:50 | |
skids | P | 19:52 | |
: | |||
6 | |||
Camelia works better vertically, espcially if you have an uncurved 6 in the font | |||
19:52
alester left
19:53
ZuLuuuuuu joined
19:58
wknight8111 left
19:59
ZuLuuuuuu left
20:01
ZuLuuuuuu joined
20:06
Tene_ is now known as Tene
20:10
mncharity joined
|
|||
mncharity | Apropos TimToady's recent talks in Cambridge, apparently the MIT talk wasn't miked, so the stream, even if somewhere captured, didn't end up very usable. The Harvard talk will eventually end up on... | 20:11 | |
pmurias | mncharity: hi | 20:12 | |
20:12
szabgab left
|
|||
mncharity | ... on... I'm not sure. www.hcs.harvard.edu/node/154 is the hsc page for it. But now I'm not sure why I ended up with the impression that the video might show up there. I have been told Harvard taped it. :( Ah well. | 20:16 | |
20:16
REPLeffect_ joined
|
|||
mncharity | hi pmurias :) | 20:16 | |
pmurias | mncharity: is The Art of Ballistic Programming talk much different from the Studies in the Ballistics Arts one? | 20:19 | |
mncharity | I've no idea, sorry. | 20:21 | |
20:37
REPLeffect left
20:38
iblechbot left
20:43
jauaor left,
ejs joined
20:49
wolverian left
20:50
wolverian joined
20:52
hercynium left,
FurnaceBoy left
21:04
Whiteknight joined
21:07
msmatsko joined
21:11
iblechbot joined
21:14
nihiliad left,
Util joined
21:16
ejs left
|
|||
Util | rakudo: my @a = (8); my @b = (9); for @a { for @b -> $b { .say } } | 21:17 | |
p6eval | rakudo 79aba9: OUTPUTĀ«8ā¤Ā» | ||
Util | std: my @a = (8); my @b = (9); for @a { for @b -> $b { .say } } | ||
p6eval | std 26182: OUTPUTĀ«ok 00:02 37mā¤Ā» | ||
21:29
ingy is now known as ingydotnet
21:30
skids left
21:41
ingydotnet is now known as ingy
21:45
pmurias left
21:55
iblechbot left
21:59
M_o_C left
22:02
Limbic_Region joined
22:28
jedai joined
22:49
skids joined
22:55
eternaleye joined
23:02
gilimanjaro joined
23:09
gilimanjaro left,
FurnaceBoy joined
23:17
payload left
23:18
kanru joined
23:19
payload joined
23:20
eternaleye left
23:21
bitfish joined
23:22
eternaleye joined
23:28
eternaleye left
23:29
eternaleye joined
|
|||
mncharity | the #moose user list is interesting. lots of people who used to be on #perl6. actually, the #perl6 list is interesting too - lots of people who I've not heard in ages, or, hmm, noticed in the logs, but, those two aren't much of a sample anymore. but still, curious. | 23:36 | |
pugs_svn | r26183 | putter++ | misc/pX/putter/talk.txt: rm'ed. An old concept sketch. | 23:45 | |
23:46
eternaleye left
|
|||
Tene | jnthn: what's the status of lexical class augment? | 23:48 | |
mncharity | @tell moritz_ re p6 project advertising, it might be worth doing a "state of p6", high-visibility general posting to the p5 community at some point. a tiny sample of comments on #moose suggests even active p5 developers don't quite realize how shoestring the effort is. | 23:49 | |
lambdabot | Consider it noted. | ||
Tene | mncharity: like what? | 23:50 | |
I'm curious how their impression differs from reality. | |||
jnthn | Tene: Not started yet. | 23:51 | |
Tene: It's a kinda tricky-ish change. | |||
Tene | jnthn: is it in your roadmap? | ||
jnthn | Tene: I've no plans in the immediate future (as in, next couple of weeks) to work on it. | 23:52 | |
If it interests you, though, there no reason I can think of not to work on it. :-) | |||
Tene nods | |||
Might. | |||
jnthn | ;-) | ||
How is the annotations stuff going? | |||
Oh, I did have a question. | |||
You mentioned issues with getting the annotations in effect. | |||
However, Exception also has a method that gives you the annotations all the way down the caller chain. | 23:53 | ||
So you could if producing a backtrace skip the top entry (which is die)... | |||
(The backtrace method.) | 23:54 | ||
Tene | ah | 23:55 | |
nice | |||
yes, that would be very nice | |||
jnthn | It's just a PMC array that you can iterate and it's a hash of various bits. | ||
Tene | nodnod | 23:56 | |
I see. | |||
jnthn | (The annotations, the Sub PMC so you can get the name and namespace, etc) | ||
mncharity | Tene: there seems no impression of p6 being critically understaffed. of that being why things are taking so long. actually, some of that is from previous conversations, but #moose just reminded me. | ||
Tene | I'll add that to Parrot's exception error condition | ||
mncharity: what was the comment in #moose? | 23:57 | ||
mncharity | but that would be an interesting polling question. what p5 folks think of p6. | ||
Tene | jnthn: you think it should be printed for resumed warnings, too? | ||
jnthn | Tene: Not by default, IMO. | ||
Tene | Okay. | 23:58 | |
jnthn | Just for uncaught exceptions. | ||
ah, OK, so warnings are excecptions too... | |||
Exceptions where we die. :-) | |||
Tene | jnthn: uncaught warnings are automatically resumed. | ||
jnthn | Right. | ||
Tene | print HLL line number on uncaught warnings? | ||
jnthn | Yes | ||
Tene | kk | ||
driving home now... | 23:59 | ||
jnthn | And, though I don't know of we have an annotation emitted yet for it, filename. | ||
OK, safe journey. And happy hacking. :-) | |||
Tene | yes, would be nice, currently NYI | ||
jnthn | I think compared to line numbers should be easy. | ||
TimToady | mncharity: there is no "staffing" going on here. :) we don't have the management skills to deal with hoards of half-motivated people, and the fully motivated are already participating... |