perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ Set by mncharity on 25 March 2009. |
|||
00:00
payload2 joined,
payload left
00:01
payload1 left
00:03
DemoPhreak is now known as DemoFreak,
bacek left
00:07
meppl joined
00:16
Entonian joined
|
|||
jnthn | my word, I can't believe the YAPC::EU schedule is out already. | 00:19 | |
00:24
jhuni left
00:34
eternaleye left
|
|||
meppl | good night | 00:36 | |
00:38
meppl left
00:40
DemoFreak left
00:50
dukeleto left
00:52
dukeleto joined
01:04
yary joined
|
|||
yary | hello all- I was trying to search the rakudo tracker, but I get a 500 server error | 01:04 | |
is it down, or is it me? | |||
can't get to rt.perl.org/rt3/Public | |||
01:05
dukeleto left
|
|||
yary | ... a web search turned up the bug I hit so don't need to get to the tracker at the moment, still someone ought to poke it. | 01:12 | |
01:16
sri_kraih_ left
01:25
eternaleye joined
|
|||
pugs_svn | r26610 | lwall++ | [camelia] some smoothing and de-linefication | 01:29 | |
r26611 | lwall++ | [p6proj] update camelia | 01:36 | ||
02:08
hercynium joined
02:11
dukeleto joined
02:12
PhatEddy left
02:17
Kisu left,
Kisu joined
02:23
nihiliad joined
02:27
dukeleto left
02:30
japhb left
02:35
Whiteknight left
02:47
bacek joined
|
|||
TimToady | /e | 02:49 | |
02:49
les_ joined
02:51
les left,
les_ is now known as les
02:53
Limbic_Region left
02:55
M_o_C left
|
|||
pugs_svn | r26612 | lwall++ | [camelia] add pdf version | 03:03 | |
03:07
Casan left
03:08
dukeleto joined
03:12
justatheory left,
dukeleto left
03:18
dukeleto joined
03:19
jhuni joined
03:32
hcchien left,
clkao left,
Entonian_ joined
03:34
Entonian left
|
|||
diakopter pictures an onion-camel cocooning in a chrysalis | 03:37 | ||
03:37
orafu left,
orafu joined
|
|||
s1n | isn't there a perl social room? i thought it was like #perlsoc or some such | 03:42 | |
03:44
japhb joined
03:49
dukeleto left
03:55
clkao joined
04:11
mikehh_ joined
04:17
km2_ left
|
|||
pugs_svn | r26613 | lwall++ | [p6proj] smaller top wings on camelia | 04:18 | |
04:19
yary left
|
|||
pugs_svn | r26614 | lwall++ | [camelia] squarified to match favicon aspect better and enhance face | 04:20 | |
04:27
mikehh left
|
|||
pugs_svn | r26615 | lwall++ | [t] deduping, \c[1,2,3] tests | 04:33 | |
r26615 | lwall++ | [p6-proj] make p6-proj link to pdf instead of svg | |||
r26615 | lwall++ | [STD] improvements to enum parsing/faking | |||
04:38
alester joined
04:52
Infinoid joined,
dalek left,
dalek joined
04:56
dukeleto joined
04:59
hercynium left
|
|||
diakopter | a bipedal insect | 05:01 | |
skids | some meany pulled off her other legs | ||
diakopter | ouch | ||
now that she doesn't have legs on which to land, she'll be forced to fly forever. | 05:02 | ||
05:12
mikehh_ is now known as mikehh
05:14
dukeleto left
|
|||
pugs_svn | r26616 | lwall++ | [p6proj] debug the right margin | 05:16 | |
TimToady | they're there, but behind the front legs | ||
you realize this means that Perl 6 can never be fully debugged... | 05:18 | ||
05:21
frodwith_ joined
05:23
xinming_ joined
05:30
frodwith left
|
|||
skids didn't want to be the one to draw that association :-) | 05:31 | ||
05:33
Kisu left
|
|||
TimToady | Perl 6 will be beautiful, but not perfect. :) | 05:33 | |
05:33
Kisu joined
05:36
frodwith_ left
05:39
xinming left
|
|||
Infinoid | thus guaranteeing job security :) | 05:39 | |
05:58
jhuni left
|
|||
skids | median runstats for INITIAL_BUCKETS settings in hash.c (on my system YMMV) | 06:04 | |
16 19.21user 0.16system 0:21.25elapsed 91%CPU 28342minor pagefaults (default) | |||
8 18.94user 0.16system 0:21.06elapsed 90%CPU 27677minor pagefaults | 06:05 | ||
4 18.86user 0.16system 0:20.87elapsed 91%CPU 27285minor pagefaults | |||
but setting it to 4 exposes a race condition | |||
(this for a script that does little hashing perl side, so mostly backend hash use) | 06:06 | ||
06:25
cbk joined
06:26
nihiliad left
|
|||
cbk | how can i get user input from the keyboard in perl6? "= =$*IN" doesn't seem to work for me...? | 06:27 | |
06:30
skids left
06:32
dukeleto joined
06:37
Entonian_ left
|
|||
eternaleye | cbk: the '=' prefix operator is dead, use $*IN.get | 06:37 | |
cbk: Also, there's the 'prompt' function. It takes a string argument, puts it on the console, and returns a line of user input. | 06:38 | ||
pugs_svn | r26617 | lwall++ | [t] warning suppression | ||
cbk | @eternaleye Thanks I will try that, In the future, where can I go to look this type of info up on my own? | 06:43 | |
lambdabot | Unknown command, try @list | ||
TimToady | it's buried down in perlcabal.org/syn/S32/IO.html, but mentioned elsewhere in the synopses | 06:51 | |
perlcabal.org/syn is the overview of the specs | |||
they live in pugs/docs/Perl6/Spec, so if you have the repo, you can grep it | |||
but this particular thing only changed a couple weeks ago, so is still non-obvious | 06:53 | ||
06:53
japhb left
06:54
japhb joined
|
|||
Matt-W | jnthn++ - hurrah for better enums | 06:54 | |
06:55
xinming_ left
06:58
xinming joined
|
|||
cbk | @TimToday: Thanks for the links. | 06:58 | |
lambdabot | Unknown command, try @list | ||
TimToady | don't need the @, it just confuses lambdabot | 07:01 | |
cbk | ok | ||
TimToady | and also suppresses irssi hilighting, as it happens | 07:02 | |
the @ just marks channel ops | |||
07:04
alester left
|
|||
cbk | if prompt is a function, then could I do this (and have it work!) $input.prompt | 07:05 | |
TimToady | there's no failover from methods to functions, or vice versa | 07:06 | |
if that's what you're asking... | |||
wrt prompt, generally there's only one sensible place to prompt anyway... | 07:08 | ||
I suspect that's why there's only the function | |||
cbk | well all I want to do is have a user type in there name and assign it to my $input var! the $*IN did not work? | 07:11 | |
TimToady | my $input = prompt("name: ") | 07:12 | |
or print 'name: '; my $input = $*IN.get; | 07:14 | ||
cbk | COOL! thanks TimToday! My faith in Per6 has been restored! | 07:19 | |
night | |||
TimToady | good night | ||
07:19
cbk left
|
|||
TimToady | zzz & | 07:23 | |
08:16
orafu left,
orafu joined
08:35
DemoFreak joined,
meppl joined
09:06
iblechbot joined
09:10
bacek_ joined
09:12
bacek left
09:29
c9s_ joined
09:30
c9s left
09:36
meteorjay joined
09:39
M_o_C joined
09:43
c9s_ is now known as c9s
09:53
payload joined,
payload2 left
09:58
sri_kraih joined
10:00
cognominal left
10:04
cognominal joined
10:05
payload left,
payload1 joined
10:11
kane_ left
10:12
kane_ joined
10:14
kane_ left
11:00
jan_ left
11:03
jan_ joined
11:25
meppl left
11:37
IRSeekBot joined
11:38
rblasch joined
11:46
kane_ joined
11:59
Whiteknight joined
12:16
masak joined
|
|||
masak | hi #perl6, you wonderful channel you. | 12:17 | |
masak is on a bus | |||
12:19
payload1 left
|
|||
sbp | yo masak | 12:19 | |
masak | sbp: \o | 12:20 | |
I don't see anything wrong with [perl #65272] submitted by Arne Skjærholt. | |||
specifically, I'm not sure what a 'static method call' would mean in Perl 6. there might be some confustion as to what the supplied code should do. | 12:21 | ||
12:22
payload joined
12:47
M_o_C left
12:48
payload left
|
|||
masak | rakudo: multi sub foo(Int $n where 1) { say "OH HAI" }; sub foo(Int $n) { say "CHEEZBURGER" }; foo(1) | 12:56 | |
p6eval | rakudo ec69e2: OUTPUT«CHEEZBURGER» | ||
masak | something like "Rakudo wrongly allows declaration of a multi and an only sub in the same scope". | ||
anyone know if that's in RT already? | |||
jnthn | That should be an error unless there is a proto in scope. | 13:09 | |
masak | right. | ||
jnthn | (which in this case there wasn't) | ||
masak | jnthn: does that mean that the presence of a proto makes 'multi' implicit on all sub declarations in the same scope? | 13:10 | |
jnthn | masak: Yes. | ||
masak understands a bit more of the 'proto' semantics | 13:11 | ||
jnthn | rakudo: proto foo() { }; sub foo(Int $x} { 1 }; sub foo(Str $x) { 2 }; say foo(1); say foo("a"); | ||
p6eval | rakudo ec69e2: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 1, near "} { 1 }; s"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
masak | bug? | ||
jnthn | rakudo: proto foo() { }; sub foo(Int $x) { 1 }; sub foo(Str $x) { 2 }; say foo(1); say foo("a"); | ||
p6eval | rakudo ec69e2: OUTPUT«12» | 13:12 | |
jnthn | masak: I typed a } where I shoulda typed a ). | ||
masak | ah. | ||
masak sees now | |||
jnthn | Anyway, it works. | ||
Yeah, took me a moment too. | |||
masak | jnthn: aye, but the CHEEZBURGER one shouldn't work. | ||
jnthn | aye, we should complain loudly about that one. | 13:13 | |
masak makes a quick trip through RT before submitting | |||
jnthn | fwiw I don't recall seeing an RT about that. | ||
masak | kthx. | ||
对了, submitting. | 13:14 | ||
jnthn | ooh, tentative YAPC::Asia dates are out. :-) | 13:16 | |
masak | Asia++ | ||
jnthn never went to Japan before, so is pondering taking his chance. | |||
jnthn confirms his accepted YAPC::EU talk | 13:18 | ||
The schedule looks pretty good. :-) | |||
13:20
nihiliad joined
|
|||
TimToady | it was not the original intent that a proto allow unmarked subs to default to multi rather than only | 13:20 | |
though that is more like what proto does on variables, I suppose | 13:21 | ||
jnthn | TimToady: It seem to recall it said somewhere in the spec that it did cause that... | 13:22 | |
*I | |||
TimToady: I think part of the motivation is in role composition too. | |||
masak | cool, so now Web.pm has a deadline, of sorts. | ||
apart from the end of the grant, I mean. | |||
jnthn | Where you resolve the conflict by putting a proto method in which forces multi-ness on the non-multi conflicters. | ||
TimToady | but that's the other way around, scopewise | 13:23 | |
jnthn | That bit is certainly in S1[24] | ||
Other way around in what sense? | |||
In that the ones from the roles are being brought into that scope? | |||
TimToady | or more to the point, timewise, causewise, something like that | 13:24 | |
the two roles are written before the class that integrates them | |||
masak | rakudo: multi method perl(Object $self where /foo/:) { "OH HAI" }; say "foo".perl | ||
p6eval | rakudo ec69e2: OUTPUT«"foo"» | ||
TimToady | whereas the proto is written before, and the calls put later | ||
jnthn | TimToady: It's right at the top of S06. | ||
A C<proto> | |||
also adds an implicit C<multi> to all routines of the same short | |||
name within its scope, unless they have an explicit modifier. | |||
TimToady | before temporally, I mean | ||
well, I probably decided that and forgot :) | 13:25 | ||
jnthn | :-) | ||
I do tend to look at the spec and implement whatever it was you forgot. ;-) | |||
TimToady | one tends to slip back to one's original conceptions | ||
13:26
amoc^ joined,
Casan joined
|
|||
jnthn | OK, if you change your mind, please update the spec, and I'll get Rakudo to follow along. | 13:26 | |
TimToady | btw, is there really a need to expose a Multi type? | ||
13:26
jhorwitz joined
|
|||
TimToady | there isn't one specced... | 13:26 | |
jnthn | It's handy for introspection. | ||
TimToady | but there's a test for it | ||
jnthn | But also consider | ||
multi foo($x) { }; multi foo() { }; # what is the type of &foo | 13:27 | ||
It can't be Sub. | |||
Because that's the singular. And also we may have others that were exported methods. | |||
TimToady | ($x)|(), which is a multisig | ||
jnthn | Or exported SubMethods | 13:28 | |
TimToady | std: sub foo ($x) | () {...} | ||
jnthn | A signature is something a sub has, not is. | ||
p6eval | std 26617: OUTPUT«ok 00:02 36m» | ||
jnthn | OK, sure you can have that, but it doesn't hold when you have multiple bodies. | 13:29 | |
TimToady | I don't follow your other arg | ||
doesn't hold how so? | |||
jnthn | OK, imagine I had written | 13:30 | |
TimToady is still in a pre-caffiene state... | |||
jnthn | multi foo($x) { 1 }; multi foo() { 2 }; | ||
There are two different implemenations there, not just two different signatures. | |||
I can see &foo.signature returning a junction of signatures. That's fine. | 13:31 | ||
But &foo.WHAT I'd seen as handing back some Multi type. | |||
Which provides, say, &foo.candidates | |||
For introspective purposes. | |||
TimToady | why shouldn't any &foo be able to hand back a list of candidates, where only subs have only one candidate? | 13:32 | |
jnthn | I guess we could try and make it that way, but I'd always seen an only sub as singular. | 13:33 | |
TimToady | wrapping turns a singuler into a plural in place | ||
jnthn | And a multi as "a collection of code objects" | ||
TimToady | if wrapping is going to respond to callnext like other dispatchers | ||
jnthn | That can happen without confusing single and multiple dispatch. | 13:34 | |
13:34
ZuLuuuuuu joined
|
|||
masak | key codes for slightly special keys, like the up arrow or the function keys, will they be covered by some part of the spec, or is that too platform-dependent? | 13:35 | |
TimToady | well, wrapped routines have their own subdispatcher in either case, I expect | ||
since all the candidates present the same interface, presumably | |||
13:35
skids joined
|
|||
TimToady | masak: this seems like something that belongs in the definition of event handling, not the language itself, offhand | 13:37 | |
masak | TimToady: ok. | ||
but event handling will be part of the spec, to some degree, no? | |||
TimToady | except, of course, to the extent that event handling *is* part of the language :) | ||
masak | right. | ||
jnthn | TimToady: Yeah, I'd taken in that the wrap mechanism and the next candidate mechanism all want to hang off the same thing. | 13:38 | |
I think I know how to cleanly implement that. | |||
13:39
PhatEddy joined
|
|||
TimToady | but if you do that, then &foo acquires more than one candidate | 13:39 | |
when you wrap | |||
jnthn | But I hadn't seen the distinction between one sub and a bunch of them going away. | ||
TimToady | so a singular/plural unification seems in order there | ||
jnthn | We still will need a way of talking about an individual candidate. | ||
Sub, Method, etc had all to me seemed very much singular. | 13:40 | ||
TimToady | &foo is just a callable abstraction, and how it handles the call is probably best encapsulated | ||
like any object, they're singular on the outside, but potentially plural inside | |||
jnthn | I consider "this is wrapped" and "this is a multi" being different kinds of plurality. | 13:41 | |
TimToady | that's because you're implementing them, not calling them :) | ||
jnthn | I still don't see how we can really do away with a Multi type though. | 13:42 | |
This is one place where smop and Rakudo seem to have gone down the same road, fwiw. | 13:43 | ||
TimToady | I don't think &foo should change its outside type just because someone implemented differently | ||
masak | rakudo: my $i = 0; do * until $i++ > 5; say "alive" # I've been missing the 'nothing' keyword, but this is not too bad either. | ||
p6eval | rakudo ec69e2: OUTPUT«alive» | ||
jnthn | If you want to do that, you need to specify what that type is. | ||
masak | rakudo: my $i = 0; do Whatever until $i++ > 5; say "alive" | ||
p6eval | rakudo ec69e2: OUTPUT«alive» | 13:44 | |
jnthn | And given you might have multi variants that come from exported methods, and others that are subs, etc, I'm not sure how you can just say "it's a Sub" and so on... | ||
masak ♥ Perl 6 | |||
TimToady | &foo is just the name of whatever foo does in the current namespace | 13:45 | |
jnthn | So what does &foo.WHAT give? | ||
TimToady | Code, I think | 13:46 | |
masak | rakudo: * | ||
p6eval | rakudo ec69e2: ( no output ) | ||
TimToady | let me think about it some more; maybe I can persuade myself not to care | 13:47 | |
jnthn | :-) | ||
TimToady: While you're on it, also ponder whether it's valid to wrap a bunch of multis wholesale or only one of the candidates. :-) | 13:48 | ||
PhatEddy | naive question - someone was asked to use "my $in = $*IN.get;" to get a line of input yesterday. Why not just "my $in = get;" ? | 13:50 | |
TimToady | jnthn: it just feels like a leaky abstraction if that matters to the user | ||
masak | PhatEddy: because there's no sub 'get'...? :) | ||
PhatEddy | should there be one? | 13:51 | |
TimToady | yes | ||
to go with lines() | |||
masak | PhatEddy: patches welcome. | ||
jnthn | TimToady: They are different things. | ||
TimToady | to the implementor | ||
jnthn | No, to the user too. | ||
Do I want to wrap the multi as a whole, and the callnext or whatever will do a multi-dispatch. | |||
Or do I want to find a single candidate that I care about and wrap just that one. | 13:52 | ||
13:52
amoc^ left
|
|||
TimToady | I would think the Perl way would be to allow either, if you can name them | 13:52 | |
PhatEddy | RT #65120 was going to add lines() and slurp() - maybe I'll add get to it too ... | ||
TimToady | if I &foo.wrap, it uses the current namespaces idea of &foo | ||
's | 13:53 | ||
masak | PhatEddy: sounds good. | ||
jnthn | Right, agree. | ||
I just think that while you should always be able to get at &foo and call it or wrap it and not care, there are times when people will care. | 13:54 | ||
And want to know if the thingy they have is going to go off and do a single dispatch or a multiple dispatch. | |||
TimToady | and then they can say &SomeModule::foo:(Int,Str).wrap instead to be more specifi | ||
why would they want to know that? | |||
jnthn | Introspection? | 13:55 | |
TimToady | I would think they want to *not* know that most of the time | ||
jnthn | I don't see how we can't have both. | ||
TimToady | and when they do want to know it, they can introspect &foo via some method | ||
jnthn | &foo() whether it's of type Code or Sub or Multi is going to look just the same if you invoke it, wrap it, unwrap it, and so on. | 13:56 | |
Anybody who starts asking exactly what sort of thing it is is already at the point of introspection. | 13:57 | ||
And thus below the "don't have to care" level. | 13:58 | ||
TimToady | okay, here's the thing that bothers me. I don't mind if &foo does Multi, but the spec test is testing to see if it isa Multi, and I think that's over-orthogonalizing the space in a classish way | ||
at the end of t//spec/S06-multi/syntax.t | 13:59 | ||
jnthn | I'm quite open to the idea that .isa is too strong a promise. | ||
TimToady | I thought you'd be :) | ||
that's why I mentioned it... | |||
jnthn | If your mainly wanting to see that test become .does(Multi) | ||
Or even the hand-wavey &foo ~~ Multi | |||
That doesn't bother me at all. | |||
TimToady | though I think the marked case should actually be Only, from an optmization point of view | 14:00 | |
well, even Only can become plural through wrapping | 14:01 | ||
jnthn | Sure, but you still know fairly well where the dispatch is going. | ||
TimToady | maybe the optimizer wants Inlineable instead. :) | ||
well, I still see wrapping and multiple dispatch as basically the same thing | 14:02 | ||
and the point of is inline is to disable wrapping, mostly | 14:03 | ||
masak | .oO( do not wrap ) |
||
jnthn | I'm not convinced inlining of multis is always impossible. | 14:04 | |
TimToady | though there's something going on here like closing and finalizing classes, from a pessimization point of view | ||
jnthn | If we statically know all of the candidates in a given scope and we statically know the types of the parameters, for example... | ||
On the other hand, inlining of something that can get wrapped probably always is. | 14:05 | ||
TimToady | sure, just trying to make the possible common, to the extent possible :) | ||
jnthn | And I guess that's part of why I would rather not see multi dispatch and wraping *so* closely entangled. | ||
Even if both do operate through the same kind of candidate list-ish mechanism. | |||
TimToady | well, but making a hard type distinction is another form of entanglement, which is what I'm carping about | 14:06 | |
but we can let it go for now, if we s/isa/does | 14:07 | ||
jnthn | Sure, and I agree that .isa is too strong a check. | ||
Are you thinking of adding a check that .isa is false too, though? I'd rather leave that as a "not the way to check it, implemenation specific" kidna thing if we can. | 14:08 | ||
rakudo: multi foo() { }; say &foo ~~ Multi; say &foo.does(Multi); | 14:09 | ||
p6eval | rakudo ec69e2: OUTPUT«11» | ||
pugs_svn | r26618 | lwall++ | [syntax.t] relax isa Multi to ~~ Multi | 14:10 | |
jnthn | .oO( phew ) |
||
pugs_svn | r26619 | lwall++ | [CORE] suppress Multi undef error | 14:13 | |
14:30
dalek left,
dalek joined
|
|||
Matt-W | hurrah | 14:33 | |
form works again | |||
although I think I've made a mistake in the semantics | |||
masak | Matt-W: anything pullable? | ||
Matt-W | Damian's module counts a field spec of {<} as having width 3, my module counts it as width 1 | ||
so I think I need to fix that | |||
masak: yes I just pushed it | |||
masak: verbatim line and block fields now exist | 14:34 | ||
masak pulls | |||
Matt-W | Although I'm having some doubts about whether their behaviour is correct | ||
I'll have to run a bunch of comparisons against Perl6::Form at some point | |||
masak | Matt-W: what if I wanted a left-justified field of width 2? | ||
Matt-W | masak: I don't know | ||
That's why I just assumed the {} don't count | 14:35 | ||
masak | Matt-W: you should make Perl6::Form and your module pass the same suite. :) | ||
Matt-W | although if they do, it's nice for the layout of your picture strings | ||
TimToady | the whole point of formats was to keep the picture consistent on columns, so {<} is 3 by that reckoning | ||
Matt-W | but anything less than 3 is a problem | 14:36 | |
TimToady | wasn't a problem for p5 formats :) | ||
since we had @ and @< and @> | |||
masak | Matt-W: what does '*@args is Scalar' do that '*@args' doesn't? | 14:37 | |
TimToady | if you want your columns to not line up, that's what sprintf is for :) | ||
Matt-W | masak: I can't remember | ||
TimToady | I don't think "is Scalar" means anything anymore | 14:38 | |
Matt-W | masak: probably something to do with passing arrays in | ||
masak | I've never seen 'is Scalar' in working code before. | ||
Matt-W | if it doesn't do anything, rakudo probably shouldn't accept it | ||
TimToady | the idea was to evaluate each argument in scalar context | ||
masak | Matt-W: I'll run the test suite, remove it, and run it again. | ||
Matt-W | TimToady: right so you could say form("some string", @data, "Picture"); | 14:39 | |
Which would be nice | |||
(and have @data not interpolate into the arguments) | 14:40 | ||
TimToady | we'll have to think about how that notion fits into the world of Captures | ||
masak | I thought @data already didn't interpolate into the arguments. | 14:41 | |
rakudo: sub foo(@data, $bar) { say $bar }; my @data = 1,2,3; foo(@data, 'OH HAI') | 14:42 | ||
p6eval | rakudo ec69e2: OUTPUT«OH HAI» | ||
TimToady | it's possible this is simply binding to *@@ these days | ||
but maybe not | |||
probably not, or slices will break when you say @x[1, @data, 3] | 14:43 | ||
masak | Matt-W: removing 'is Scalar' doesn't make any tests fail. | 14:44 | |
Matt-W | masak: that's because none of them rely on it doing anything | ||
masak | Matt-W: well, given that 'is Scalar' wasn't needed to make @data not interpolate in the parameter list, why keep it? | 14:45 | |
Matt-W | because I've not tested it | 14:46 | |
it's from the original spec for that sub | |||
masak | ah, ok. | 14:47 | |
Matt-W | rakudo: sub foo(*@args) { say @args.elems; }; my @d = 1,2,3; foo(@d, 'a'); | ||
p6eval | rakudo ec69e2: OUTPUT«4» | ||
Matt-W | see also ^ | ||
masak | oh. | ||
right, the splat thing might actually affect matters. | 14:48 | ||
rakudo: sub foo(*@data, $bar) { say $bar }; my @data = 1,2,3; foo(@data, 'OH HAI') | |||
p6eval | rakudo ec69e2: OUTPUT«1 2 3» | ||
masak | huh. | 14:49 | |
I'd expect the splat to be more greedy than that. | |||
diakopter | 02:23 <@TimToady> zzz & .... 08:20 <@TimToady> it was ... | 14:51 | |
TimToady | I'm in two TZ at once :) | 14:52 | |
std: sub foo(*@data, $bar) { say $bar }; my @data = 1,2,3; foo(@data, 'OH HAI') | |||
p6eval | std 26619: OUTPUT«##### PARSE FAILED #####Can't put required parameter after variadic parameters at /tmp/spEF6EpDfd line 1:------> sub foo(*@data, $bar) { say $bar }; my @data = 1,2,3; foo(@d expecting any of: parameter post_constraint trait whitespaceFAILED 00:02 | ||
..36m» | |||
TimToady | masak: see ^ | ||
14:52
nbrown joined
|
|||
TimToady | rakudo is being overly accepting here | 14:53 | |
Matt-W | bug!!! | ||
masak submits!!! | |||
Matt-W gone for a bit & | 14:54 | ||
TimToady | will likely be put off till STD runs on rakudo :) | ||
14:57
nbrown_ joined
|
|||
TimToady | rakudo: say Int.defined; say Int::.defined | 14:57 | |
p6eval | rakudo ec69e2: OUTPUT«00» | ||
TimToady | should be 0 1 if :: gets to the package for Int | 14:58 | |
trying to figure out how to write tests like UNIT::OUTER:: === CORE:: and such | |||
but I need to know how to get the identity of a lexical symbol table from a typename | 14:59 | ||
pugs_svn | r26620 | masak++ | [u4x/TODO] added a lot of terms for parameters | 15:04 | |
r26621 | masak++ | [u4x/TODO] {result -> abstract} object | |||
pmichaud | good *, #perl6 | 15:09 | |
TimToady | yo | 15:11 | |
masak | H H | 15:12 | |
O AI | |||
TimToady | お愛 | 15:14 | |
pmichaud | (reading scrollback) | ||
TimToady | the mutable/immutable distinction is close to the mystery of time; we can only perceive the immutable scrollback, not the future mutable scrollforward | 15:19 | |
jnthn | oh hai | ||
masak | the best way to predict the scrollforward is to create it. | 15:20 | |
jnthn ponders what to eat/cook for dinner | |||
TimToady | masak: I knew you were going to say that :P | ||
15:21
nbrown left,
nbrown_ is now known as nbrown
|
|||
masak | :) | 15:21 | |
rakudo: my @a = <foo bar baz>; .=uc for @a; say @a.perl | 15:22 | ||
p6eval | rakudo ec69e2: OUTPUT«Syntax error at line 1, near ".=uc for @"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | 15:23 | |
TimToady | std: my @a = <foo bar baz>; .=uc for @a; say @a.perl | ||
pmichaud | we still don't support .= flip | ||
p6eval | std 26621: OUTPUT«ok 00:02 36m» | ||
pmichaud | er, .=flip | ||
(as a term) | |||
(.=uc being analogous here.) | 15:24 | ||
std: my @a = <foo bar baz>; .= uc for @a; say @a.perl; | |||
jnthn | rakudo: my @a = <foo bar baz>; .= uc for @a; say @a.perl | ||
p6eval | std 26621: OUTPUT«##### PARSE FAILED #####Can't understand next input--giving up at /tmp/70EAuNVzdi line 1:------> my @a = <foo bar baz>; .= uc for @a; say @a.perl; expecting dotty method or postfixFAILED 00:02 36m» | ||
rakudo ec69e2: OUTPUT«Syntax error at line 1, near ".= uc for "current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | |||
TimToady | I don't feel any great need to support that form... | 15:25 | |
pmichaud | TimToady: but the version without the space is supported? | ||
std: my @a = <foo bar baz>; .=uc for @a; say @a.perl; | |||
p6eval | std 26621: OUTPUT«ok 00:02 36m» | ||
TimToady | already did that one above | ||
pmichaud | right | ||
just asking for confirmation | |||
TimToady | 'yes' xx * | 15:26 | |
pmichaud | thanks | ||
jnthn | .oO( why on earth are single flights more expensive than return ones ) |
||
pmichaud: Do you know anything more about the plans for a Parrot Developer Summit around YAPC::EU? | 15:27 | ||
pmichaud | jnthn: no details, no. | ||
jnthn | pmichaud: OK. Am pondering trying to sort out flights/hotel etc soonish... | ||
pmichaud | maybe a message to last year's attendees | ||
yes, I will need to do the same. | |||
15:28
fridim_ joined
|
|||
jnthn | I'm happy to see the Perl 6 is a bit more spread out in the schedule this year, rather than all bunched on one day. | 15:28 | |
pmichaud: Ah, we're speaking one after the other, it appears. | 15:30 | ||
15:31
M_o_C joined
|
|||
jnthn | 40 minutes for the talk you gave in IIRC 90 in Oslo will be interesting. | 15:31 | |
PhatEddy | I had trouble getting get() working through setting but found it fairly easy in PIR with the following 5 line pir patch: dpaste.com/40312/ . | 15:33 | |
how badly is it needed in setting? | |||
jnthn | did multi get() { $*IN.get() } not do it? | 15:34 | |
PhatEddy | no it didn't | 15:35 | |
jnthn | Hmm. What went wrong? | ||
PhatEddy | get iss defined in classes/IO.pir without multi to begin with | ||
jnthn | Sure, but you're defining a sub that calls the method. shouldn't be a conflict, afaict. | 15:36 | |
PhatEddy | I think I got: Null PMC access in find_method() | ||
jnthn | Ugh. OK. | ||
I'd like to try and track down why we got that. It points to a bug of some kind. | 15:37 | ||
PhatEddy | the setting code i used was something like 'multi sub get() { return $*IN.get; }' | ||
jnthn | Yeah, that doesn't look wrong. | 15:38 | |
15:38
Kisu left,
xinming left
15:39
xinming joined
|
|||
PhatEddy | the pir looks easy enough though ... should I file a rakudobug ? | 15:40 | |
jnthn | PhatEddy: Please file a ticket about that not working; it'd be good to fix the underlying bug rather than ignore it by writing stuff in PIR that we really should be able to write in Perl 6. | ||
15:42
payload joined
|
|||
PhatEddy | ok | 15:43 | |
15:43
masak left
15:45
masak joined
|
|||
jnthn -> shop | 15:45 | ||
masak | bus wifi a bit flaky. got thrown off the Interwebz. | 15:46 | |
15:46
meppl joined
|
|||
masak | I had a patch going for .=flip at one point; sometime around the post-NPW hackathon. but I must have lost it. | 15:48 | |
pmichaud | (90 minutes talk in 40 minutes) shouldn't be too much of a problem; it's an accordian talk where there are lots of things that can be added/removed | 15:49 | |
PhatEddy: did you put the multi sub inside the IO class or outside of it? | 15:50 | ||
PhatEddy | outside - all the way at the bottom | ||
pmichaud | hmmm. | ||
I wonder if there's something else called 'get' somewhere. | 15:51 | ||
PhatEddy | It's exported from src/classes/IO.pir | ||
masak | rakudo: sub get() { $*IN.get }; say get; say "alive" | 15:54 | |
p6eval | rakudo ec69e2: OUTPUT«alive» | ||
masak | still no Austrian national anthem... :/ | ||
PhatEddy: it works outside of the setting, it seems. | |||
pmichaud | perl6: say 'ışığa'.uc; | 15:55 | |
p6eval | elf 26621, pugs, rakudo ec69e2: OUTPUT«IŞIĞA» | ||
pmichaud | \o/ | 15:56 | |
masak | pmichaud: wohoo! what changed? | ||
pmichaud | I fixed $*IN, $*OUT, $*ERR to use utf8 encoding by default. | ||
masak | excellent. | ||
15:57
Psyche^ joined
|
|||
PhatEddy | rakudo: multi sub get () { $*IN.get } ; say get; say "alive" | 16:06 | |
p6eval | rakudo ec69e2: OUTPUT«push_pmc() not implemented in class 'Sub'current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 306668 ((unknown file):-1)» | ||
PhatEddy | should that have worked? | ||
masak thinks so | |||
PhatEddy: would you like to submit a rakudobug? | 16:07 | ||
PhatEddy still working on this ... | |||
masak submits it, then | 16:08 | ||
PhatEddy | I just replicated the error message from putting the definition in setting/IO.pm (got the error message wrong) | 16:10 | |
error message is (still): too few arguments passed (0) - 1 params expected | 16:11 | ||
it's like it doesn't seem to find it from the setting. | |||
16:13
Patterner left,
Psyche^ is now known as Patterner
|
|||
pmichaud | generally that means it either thinks it's a method instead of a sub, or there's something wrong with the outer contexts. | 16:18 | |
22:34 <jnthn> pmichaud: If you know how, or are able to, giving PhatEddy an RT bit could be a good idea. | 16:21 | ||
I think I offered one previously, but it was declined. | |||
The offer remains, however. :-) | |||
16:30
justatheory joined
|
|||
diakopter | bouncing faether svn/apache2 | 16:34 | |
16:36
masak left,
ejs left
16:42
justatheory left
16:48
ejs joined
16:50
nacho_ left
|
|||
pugs_svn | r26622 | pmichaud++ | [t/spec]: Standardize a couple of plan declarations. | 16:50 | |
16:52
amoc joined
16:53
amoc is now known as amoc^,
amoc^ left
16:54
amoc joined,
amoc is now known as Guest26623
16:55
Guest26623 left,
M_o_C left
17:16
amoc^ joined
17:17
rblasch left
17:20
meteorjay left
17:23
justatheory joined
17:28
finanalyst joined
|
|||
skids wonders if anyone experiences an occasional spurious segv building rakudo. | 17:31 | ||
finanalyst | perl6: my %x = %(<a b c d> X []); %x<a>[3]=2;%x.perl.say | 17:32 | |
lambdabot | finanalyst: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
p6eval | pugs: OUTPUT«\(\("a", \(undef, undef, undef, 2)),)» | ||
..rakudo ec69e2: OUTPUT«{"a" => [undef, undef, undef, 2], "b" => [undef, undef, undef, 2], "c" => [undef, undef, undef, 2], "d" => [undef, undef, undef, 2]}» | |||
..elf 26622: OUTPUT«Undefined subroutine &GLOBAL::infix_X called at (eval 129) line 3. at ./elf_h line 5881» | |||
17:32
nbrown_ joined
|
|||
skids | well, that's pretty weird. | 17:34 | |
finanalyst | can anyone tell me whether the rakudo response is the expected one? I was expecting to get different arrays for each member of the hash | 17:35 | |
instead one array is allocated and the others are aliases (I think) | |||
17:35
justatheory left
|
|||
finanalyst | more like the pugs output, but pugs leaves out the c & d members | 17:37 | |
skids | Hrm, [] is an anonymous array, so I think it's correct, because you are assigning the same anon array to each index. | ||
But it is weird, because IIRC binding to array/hash is currently broken. | |||
17:38
c9s_ joined
|
|||
finanalyst | why should it be the same anonymous array? | 17:38 | |
or what should be the syntax to generate new arrays? | 17:39 | ||
TimToady | [] is supposed to generate a new array | ||
but X doesn't guarantee to re-eval | |||
finanalyst | so is rakudo wrong? | 17:40 | |
or how do I get a re-eval? | |||
skids | my $a; my %x = %(<a b c d> X $a); %x<a>=2;%x.perl.say | 17:41 | |
rakudo: my $a; my %x = %(<a b c d> X $a); %x<a>=2;%x.perl.say | |||
X doesn't eval it's rhs multiple times. | |||
p6eval | rakudo ec69e2: OUTPUT«{"a" => 2, "b" => undef, "c" => undef, "d" => undef}» | ||
skids | (is why) | ||
finanalyst | rakudo: my %x=<a b c d> Z ([], [], [], []);%x<b>[2]=3;%x.perl.say | ||
skids wonders if he just inflooped evalbot | |||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => [], "b" => [undef, undef, 3], "c" => [], "d" => []}» | ||
finanalyst | rakudo: my %x=%(<a b c d> Z ([], [], [], []));%x<b>[2]=3;%x.perl.say | 17:42 | |
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => [], "b" => [undef, undef, 3], "c" => [], "d" => []}» | ||
finanalyst | using Z with a list of [] gets what I want, but suppose I dont know how many items there are in the "key name" array | 17:43 | |
skids | rakudo: my $a; my %x = %(<a b c d> X [234]); %x<a>=2;%x.perl.say | 17:44 | |
p6eval | rakudo ec69e2: OUTPUT«{"a" => 2, "b" => [234], "c" => [234], "d" => [234]}» | ||
TimToady | rakudo: my %x = map { $_, [], }, <a b c d>; %x<a> = 2; %x.perl.say | 17:45 | |
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => 2, "b" => [], "c" => [], "d" => []}» | ||
skids | seems inconsistent, unless [] is special somehow. | ||
TimToady | rakudo: my %x = map { $_, [,], }, <a b c d>; %x<a> = 2; %x.perl.say | ||
p6eval | rakudo ec69e2: OUTPUT«Statement not terminated properly at line 1, near ", [,], }, "current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
TimToady | rakudo: my %x = map { $_, [ ], }, <a b c d>; %x<a> = 2; %x.perl.say | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => 2, "b" => [], "c" => [], "d" => []}» | ||
TimToady | it should not be parsing that as a reduce | 17:46 | |
rakudo: my %x = map { $_, [()], }, <a b c d>; %x<a> = 2; %x.perl.say | |||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => 2, "b" => [], "c" => [], "d" => []}» | ||
TimToady | rakudo: my %x = map { $_, [ () ], }, <a b c d>; %x<a> = 2; %x.perl.say | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => 2, "b" => [], "c" => [], "d" => []}» | ||
TimToady | actually, it seems like something in .perl | ||
jnthn | I struggle to see that it's mistaking it as a reduce, since we parse those as full tokens. | 17:47 | |
At the moment. | |||
finanalyst | rakudo: my %x = %(map { $_, [ () ], }, <a b c d>); %x<a> = 2; %x.perl.say | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty listCannot reduce() empty listCannot reduce() empty list{"a" => 2, "b" => [], "c" => [], "d" => []}» | ||
TimToady | rakudo: my %x = map { $_, [ () ], }, <a b c d>; %x<a> = 2; %x.say | ||
skids | The reduce is from trying to say an empty list | ||
p6eval | rakudo ec69e2: OUTPUT«a 2b c d » | ||
jnthn | rakudo: my %x = %(map { $_, [ () ], }, <a b c d>); | ||
p6eval | rakudo ec69e2: ( no output ) | ||
TimToady | rakudo: my %x = map { $_, [], }, <a b c d>; %x<a> = 2; %x.say | 17:48 | |
jnthn | Heh, yeah, something in .perl | ||
p6eval | rakudo ec69e2: OUTPUT«a 2b c d » | ||
TimToady | rakudo: say [] | 17:49 | |
p6eval | rakudo ec69e2: OUTPUT«» | ||
TimToady | rakudo: say [[]] | 17:50 | |
p6eval | rakudo ec69e2: OUTPUT«» | ||
17:50
nbrown left
|
|||
TimToady | rakudo: say [[]].perl | 17:50 | |
17:50
nbrown_ is now known as nbrown
|
|||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty list[[]]» | 17:50 | |
TimToady | there you go | ||
pmichaud | rakudo: say [].perl; | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty list[]» | ||
TimToady | in both cases there's only one empty list | 17:51 | |
rakudo: say ().perl | |||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty list[]» | ||
jnthn | fail. | ||
TimToady | rakudo: say Nil.perl | ||
pmichaud | I can't even find where .perl is defined now. It's been moved :-| | ||
p6eval | rakudo ec69e2: OUTPUT«Nil» | ||
jnthn | method perl() { | ||
return '[' ~ self.map({ .perl }).join(", ") ~ ']'; | |||
} | |||
That's the one in List... | 17:52 | ||
pmichaud | okay, that's it. | ||
so, .map is complaining about an empty list. | |||
jnthn | o rly? | ||
rakudo: [].map(* * 2) | |||
pmichaud | say ().map({ $_ * 2 }); | ||
p6eval | rakudo ec69e2: ( no output ) | ||
pmichaud | rakudo: say ().map({ $_ * 2 }); | ||
TimToady | rakudo: map {42}, () | ||
p6eval | rakudo ec69e2: OUTPUT«» | 17:53 | |
rakudo ec69e2: ( no output ) | |||
TimToady | rakudo: say map {42}, () | ||
p6eval | rakudo ec69e2: OUTPUT«» | ||
jnthn | rakudo: say ().join | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty list» | ||
pmichaud | rakudo: say [].map({ .perl }); | ||
17:53
c9s left
|
|||
p6eval | rakudo ec69e2: OUTPUT«» | 17:53 | |
jnthn | rakudo: say [].join | ||
p6eval | rakudo ec69e2: OUTPUT«Cannot reduce() empty list» | ||
jnthn | I think it's join. | ||
17:53
lumi left
|
|||
skids | rakudo: my $a; my %x = %(<a b c d> X [234]); %x<a>[2]=2;%x.perl.say | 17:53 | |
pmichaud | our Str multi method join(Str $separator = '') { | ||
@.list.reduce({ $^a ~ $separator ~ $^b }) | |||
} | |||
TimToady | say [~]() | ||
p6eval | rakudo ec69e2: OUTPUT«{"a" => [234, undef, 2], "b" => [234, undef, 2], "c" => [234, undef, 2], "d" => [234, undef, 2]}» | ||
TimToady | rakudo say [~]() | ||
skids | my bad, not inconsistent, forgot the second subscript | 17:54 | |
TimToady | rakudo: say [~]() | ||
p6eval | rakudo ec69e2: OUTPUT«» | ||
TimToady | rakudo: say ().reduce(&infix:<~>) | ||
p6eval | rakudo ec69e2: OUTPUT«Statement not terminated properly at line 1, near "(&infix:<~"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
pmichaud | growl. There's another one of those constraints on the builtin parameter.... :-( | ||
TimToady | rakudo: say ().reduce(&[~]) | 17:55 | |
jnthn | Aye, people are being a tad overzelous with the constraints. :-( | ||
p6eval | rakudo ec69e2: OUTPUT«Statement not terminated properly at line 1, near "(&[~])"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
jnthn | TimToady: We don't parse the operator syntax yet. :-( | ||
pmichaud | anyway, the definition for .join looks wrong to me. | ||
jnthn | Aye, relying on reduce function is probably a bad idea. | ||
pmichaud | and I think I might just prefer the PIR version anyway. | ||
jnthn | Well, given Parrot has a built-in join... | 17:56 | |
pmichaud | fixing. | ||
skids | Well, some of the constraint problems are coming from the protos taken from S32 and other docs. | ||
TimToady | why use reduce when you can use recursive lambdas :) | ||
jnthn | May as well make use of the thigns Parrot does give us. ;-) | ||
pmichaud | I should go through and eliminate the constrants from S32 | ||
fixing join. | |||
jnthn | TimToady: Because we didn't implement &?ROUTINE yet. ;-) | ||
erm | |||
&?BLOCK | |||
TimToady | well, there's always *named* lambdas... | 17:57 | |
or even my $x = { ... $x()... } | 17:58 | ||
jnthn | True. | ||
skids | so now that everyone who builds frequently is awake, anyone ever notice a spurios segfault during rakudo build steps (parrot invocations?) | ||
jnthn | I always think "anonymous" when I see "lambda" | ||
skids | Becuase if so, I know how to agrravate the problem. | ||
TimToady | you're putting me to sleep ... | ||
pmichaud | skids: I haven't noticed one, no. | ||
17:59
rblasch joined
|
|||
jnthn | Computer science degree has gotta be good for something. ;-) | 17:59 | |
TimToady | yeah, I should get me one of those some day... | ||
jnthn | skids: I didn't notice that...only very occasional things when a realclean was needed or something. | ||
TimToady | meanwhile, it's off to Fry's & | 18:00 | |
skids | Well, setting parrot/src/hash.c INITIAL_BUCKETS to 4 exposes a race quite nicely, FWIW. | 18:01 | |
jnthn | As in race condition? | 18:02 | |
skids | If I am masochistic enough this weekend I may even manage to track down why. | ||
Yeah, segfaults on some runs, not others. | |||
jnthn | Uff. | ||
skids | Probably just a missing write barrier, there's a couple in there. | ||
jnthn | Did you think setting it to 4 would get us a small performance win? | 18:03 | |
skids | Setting to 8 gives a 1% speed gain and seems pretty stable. | ||
4 was about 2%. Stats are in the backlog | |||
Matt-W has not had a build segfault for ages | |||
skids | But it probably depends highly on your cache. | ||
might be more for 64bit | 18:04 | ||
jnthn | We use hashes extensively for named lookup, so profiling/optimizing Parrots hashes (without introducing segfaults ;-)) is perhaps a good place to look for performance improvements. | 18:05 | |
skids | Yeah I've been looking at that a bit. | ||
phone | |||
skids hates cell phone spam, someone needs to arrest those people. | 18:06 | ||
Parrot code seems to have been optimized by someone who overvalues CPU cycles. | 18:07 | ||
jnthn | Indeed. | ||
skids | And doesn't grok the impact of present/future 8 byte pointers. | ||
Stats on hash accesses by the way, from earlier: | 18:08 | ||
'1.say' hash number of elements % operations (0 to 8, then 63+) | |||
reads: 0.28 64.50 13.50 3.51 0.46 0.20 0.19 0.37, 12.72 | 18:09 | ||
dalek | kudo: cacc976 | pmichaud++ | src/setting/Any-list.pm: Rewrite Any.join() to avoid the "Cannot reduce() empty list" error. |
||
skids | writes: 14.23 9.03 6.18 4.40 3.58 2.96 2.39 2.18, 29.80 | ||
So having a very efficient 1 and 2 element hash would be key. | |||
jnthn | Certainly biased towards the lower end. | ||
Is that compiling 1.say or just running it? | 18:10 | ||
skids | Well, except for the const_string hash. | ||
running it. | |||
pmichaud | we also end up with a ton of 0-element hashes, because of :named :slurpy | 18:11 | |
jnthn | Aye. | 18:12 | |
skids | But we seem to only write them out and then forget about them. | ||
So I was thinking maybe making hash keep the buckets in its own PMC as a union with the bs/bi and other elements, then autoenlarge to a alloced store after. | 18:14 | ||
literal | std: &foo | ||
skids | Also no real reason to use real pointers in the bs, offsets would do and not need relocation. We can afford the math. | ||
p6eval | std 26622: OUTPUT«ok 00:03 47m» | ||
jnthn | We'd get better cache locality with that? | 18:15 | |
skids | With the mini hashes yes, the pointer thing no, but it would cheapen realloc CPU-wise | 18:16 | |
And if the offsets could be made a smaller datatype for small chunks, yes | |||
jnthn | Sounds worth exploring/benchmarking. | ||
skids | But once you get that far might as well consider an entirely different hash structure. | 18:17 | |
It's the sort of think I like to do, and will if I can clear my head of $REAL_WORLD and $DAYJOB often enough. | |||
18:18
lumi joined
|
|||
skids | But I'm still kinda fuzzy on GC stuff so that leaves me with some unknowns. | 18:18 | |
Oh, other stats, but may not be from 1.say: inserts: | 18:20 | ||
28.01 13.69 4.43 3.36 2.76 2.62 1.84 1.67 | |||
6.13% for 63 elements plus | |||
which is probably all const_string | 18:21 | ||
dalek | kudo: 06f0ae8 | pmichaud++ | : Merge branch 'master' of [email@hidden.address] |
18:37 | |
kudo: d4a0b3b | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 378 files, 10991 passing, 0 failing |
|||
18:38
kingdong joined
18:53
kingdong left
18:55
rindolf joined
18:57
payload left
19:32
justatheory joined
19:33
finanalyst left,
rindolf left
|
|||
PhatEddy | @tell jnthn if I recode the pir get in classes/IO.pir pretty much like pop in classes/Array.pir and export with to_p6_multi the "get" setting problem goes away/works. | 19:35 | |
lambdabot | Consider it noted. | ||
19:41
payload joined
19:46
M_o_C joined
19:48
renormalist joined
|
|||
s1n | rakudo: sub test($a, %b) { say "oh hai"; }; test('foo', <bar baz>); | 19:56 | |
p6eval | rakudo d4a0b3: OUTPUT«Parameter type check failed; expected something matching but got something of type List() for %b in call to testcurrent instr.: 'die' pc 16538 (src/builtins/control.pir:225)» | ||
19:56
payload left,
payload1 joined
|
|||
s1n | does <> mean list? i thought i could assign key/value pairs that way | 19:57 | |
19:57
dukeleto left
|
|||
s1n | doh, i think S02 says <a b> is ('a', 'b') and not {'a', 'b'} | 19:58 | |
19:59
dukeleto joined,
dukeleto left
20:01
payload joined,
payload1 left
20:03
olaf_ joined
20:04
ZuLuuuuuu left
20:19
meteorjay joined
|
|||
jnthn | s1n: Maybe you wanted :a<b> | 20:25 | |
lambdabot | jnthn: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
jnthn | @tell PhatEddy ah, sounds like a conflict between Parrot multis and Perl 6 multis then... | 20:26 | |
lambdabot | Consider it noted. | ||
20:27
amoc^ left
20:28
amoc joined
|
|||
PhatEddy | jnthn: should I still do a rakudobug? | 20:29 | |
lambdabot | PhatEddy: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
20:33
ingy left
20:34
ingy joined
20:37
kane_ left,
kane_ joined
20:38
s1n left
|
|||
meppl | good night | 20:43 | |
20:44
meppl left
20:48
Whiteknight left,
Whiteknight joined
21:09
dukeleto joined
21:12
ZuLuuuuuu joined
21:19
PacoLinux left
21:20
PacoLinux joined
21:21
DemoPhreak joined
21:28
payload left,
payload1 joined
21:30
olaf_ left
21:32
dduncan joined
21:34
jhuni joined,
DemoFreak left,
DemoPhreak is now known as DemoFreak
21:52
s1n joined
21:56
payload1 left,
payload joined
22:02
rehall joined
22:04
rehall left
22:07
ingy left
22:09
M_o_C left
22:15
iblechbot left,
Kisu joined
22:16
nbrown_ joined
22:17
ingy joined
22:18
nbrown_ left,
nbrown_ joined,
nbrown left,
nbrown_ is now known as nbrown
22:20
rblasch left
22:28
wormphlegm joined
22:35
justatheory left
|
|||
spx2 | can I do a negative offset seek on SEEK_END ? | 22:41 | |
23:03
renormalist left
23:20
wormphlegm left
23:24
ZuLuuuuuu left,
justatheory joined
23:25
PhatEddy left
23:31
justatheory left
23:32
MariachiElf joined
|
|||
MariachiElf | rakudo: say 'hi' | 23:33 | |
p6eval | rakudo d4a0b3: OUTPUT«hi» | ||
23:39
Limbic_Region joined
|
|||
eternaleye | I just had an interesting idea for chaining comparisons on junctions. | 23:40 | |
Currently, my $a = 1|4|7; my $b = 2|5|8; my $c = 3|6|9; if( a < b < c ) { say ($a, $b, $c).join(' : ') } doesn't dwim. A simple way to make it dwim might be to make the chained comparison autothread like a block, such that $a < $b < c would become 1 < $b < $c, 2 < $b < $c, and 3 < $b < $c. The it would autothread on $b, $c, etc. | 23:44 | ||
*Then | 23:45 | ||
Hm, that if should havce sigils, and shouldn't have parens | |||
23:46
dukeleto left
|
|||
eternaleye | Then we could make it so that branches taken based on the chained comparison use the autothreaded value, instead of the full junction | 23:48 | |
23:53
amoc left
23:56
dukeleto joined,
cognominal left
|