pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~340 days 'til Xmas Set by mncharity on 16 January 2009. |
|||
00:17
donaldh left
00:18
donaldh joined
00:34
|jedai| left
00:35
|jedai| joined
00:40
DemoFreak left
00:48
[particle] joined
00:53
[particle]1 left
01:06
Chillance left
|
|||
pugs_svn | r24967 | putter++ | [elf] Added Str::hex, Int::chr. | 01:24 | |
r24967 | putter++ | [elfparse] Added "\xNNNN" escapes, and std.pm's %open2close. | |||
01:38
jhuni left
01:39
jhuni joined
01:40
meppl joined
01:45
|jedai| left,
aindilis joined,
|jedai| joined
01:51
hcchien_ joined
01:52
hcchien left
01:54
spx2 left
01:57
justatheory left
01:59
aindilis` joined,
spx2 joined
02:10
|jedai| left,
|jedai| joined
|
|||
melkonem | whose worked on scala | 02:10 | |
anyone awake | 02:17 | ||
02:20
aindilis` left
02:22
alc joined
02:24
aindilis left
02:28
melkonem left
|
|||
s1n | what kind of method is :by()? are there other methods like it? | 02:36 | |
02:38
|jedai| left
02:40
|jedai| joined
02:52
wknight8111 left
02:59
|jedai| left
03:00
|jedai| joined
|
|||
pugs_svn | r24968 | putter++ | [elfparse] Aliases in elfgreen; some alias p6-ification; <sym>. | 03:00 | |
03:01
jhorwitz left
03:08
stephenlb left
03:09
[particle]1 joined,
jhuni left
03:17
[particle] left
|
|||
s1n | anyone know anything about methods like :by()? | 03:17 | |
03:17
meppuru joined
03:22
aindilis joined
03:33
meppl left
03:34
alester_ joined
03:44
alc left
03:52
hcchien_ is now known as hcchien
04:01
gravity left
|
|||
rakudo_svn | r35787 | chromatic++ | [ops] Removed n_abs, n_bnot, n_bnots, and n_not opcodes; cleaned up langauges | 04:20 | |
r35787 | chromatic++ | which use them. See RT #58410. | |||
04:24
alester_ left
04:25
alester_ joined
04:29
tmaesaka left
05:01
justatheory joined
05:04
justatheory left
05:09
meppuru is now known as meppl,
justatheory joined
|
|||
pugs_svn | r24969 | putter++ | [src/perl6/STD.pm] Converted tabs to spaces. (emacs M-x untabify) | 05:25 | |
05:28
[particle] joined
|
|||
pugs_svn | r24970 | putter++ | [elfparse] std.pm synced with current STD.pm. | 05:32 | |
05:33
[particle]1 left
05:43
stephenlb joined
05:57
|jedai| left
05:58
|jedai| joined
06:00
donaldh left,
donaldh joined
06:11
iblechbot joined
06:13
justatheory left
06:18
|jedai| left,
|jedai| joined
|
|||
szabgab | s1n: I just recently looked at :by() adverbs, they were not implemented in rakudo a few days ago | 06:33 | |
std: for 1..5:by(2) -> $i { say $i } | 06:34 | ||
p6eval | std 24970: OUTPUTĀ«00:05 87mā¤Ā» | ||
szabgab | pugs: for 1..5:by(2) -> $i { say $i } | ||
p6eval | pugs: OUTPUTĀ«*** ā¤ Unexpected ":by"ā¤ expecting "_", fraction, exponent, term postfix, operator or block constructā¤ at /tmp/TFeJjGekEw line 1, column 9ā¤Ā» | ||
szabgab | rakudo: for 1..5:by(2) -> $i { say $i } | 06:35 | |
p6eval | rakudo 35788: OUTPUTĀ«Statement not terminated properly at line 1, near ":by(2) -> "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
moritz_ | rakudo: for Range.new(1, 5, :by(3)) { .print } | 06:43 | |
p6eval | rakudo 35788: OUTPUTĀ«argument doesn't hashā¤current instr.: 'parrot;Perl6Object;BUILD' pc 543 (src/classes/Object.pir:283)ā¤Ā» | ||
06:51
ashizawa joined
06:54
stephenlb left
|
|||
rakudo_svn | r35789 | infinoid++ | [cage] Fix some codingstd failures. | 07:00 | |
07:20
|jedai| left,
|jedai| joined
07:21
Ehtyar joined
07:41
jao left
07:42
ejs joined
07:45
_jedai_ joined,
|jedai| left
07:49
[particle]1 joined
07:52
smtms left
07:58
vixey joined
08:00
alester_ left
08:05
DemoFreak joined
08:08
[particle] left
08:27
riffraff joined,
pbuetow joined
08:31
_jedai_ left
08:32
|jedai| joined
08:36
pbuetow left
08:55
|jedai| left
08:56
|jedai| joined
09:06
ejs left
09:35
riffraff left
09:45
schmalbe joined
09:46
ejs joined
10:09
[particle] joined
10:15
vixey left
10:23
ChrisDavaz joined
10:27
[particle]1 left
10:48
ChrisDavaz left
11:01
|jedai| left
11:02
|jedai| joined
|
|||
jnthn | hi all | 11:07 | |
11:25
zamolxes joined
11:26
ruoso joined
|
|||
ruoso | HellO! | 11:28 | |
11:34
aindilis` joined
11:48
aindilis left,
ashizawa left
|
|||
rakudo_svn | r35796 | jonathan++ | [rakudo] Seems Test.pm was patched with extra features, but unfortunately that causes it to break on a few tests. This patch tweaks the workaround for some things not having a .perl method, which gets us passing pretty much everything again, aside from fail.t, which I'm really | 11:50 | |
..not sure what is wrong with yet... | |||
12:01
Casan left
12:06
ruoso_ joined
12:08
ruoso left,
ruoso_ is now known as ruoso
|
|||
pugs_svn | r24971 | jnthn++ | [rakudo] Unfudge test for using role parameter as type constraint, and add a few more for this. | 12:22 | |
12:22
nnunley left
12:23
pmurias joined
|
|||
pmurias | hi | 12:23 | |
12:29
pmurias left
|
|||
rakudo_svn | r35798 | jonathan++ | [rakudo] newclosure clones, but the signature is lost during the clone since it's attached as a property. This re-instates it, which happily is all that's needed for role parameters to act as type constraints. | 12:30 | |
12:30
[particle]1 joined
|
|||
ruoso | hi pmichaud | 12:38 | |
hi pmurias | |||
12:39
ejs left
12:41
|jedai| left
12:42
ejs joined,
|jedai| joined
12:48
[particle] left
13:00
_jedai_ joined,
|jedai| left
13:01
aindilis` left,
aindilis` joined
13:12
pmurias joined
13:18
nothingmuch_ joined,
nothingmuch_ left
13:19
ruoso_ joined,
nothingmuch_ joined,
ruoso left
13:20
nothingmuch_ left
13:23
ruoso_ is now known as ruoso
|
|||
pugs_svn | r24972 | jnthn++ | [t/spec] Unfudge some .does tests for parametric roles. | 13:24 | |
13:24
nothingmuch_ joined,
nothingmuch left
13:25
nothingmuch_ is now known as nothingmuch,
Juerd left,
nothingmuch left,
nothingmuch joined
|
|||
ruoso | pmurias, from now and then I consider doing a major refactor in SMOP splitting it in several different pieces... | 13:29 | |
rakudo_svn | r35799 | jonathan++ | [rakudo] Track what roles we have already created and re-use them appropriately. For example, every time you said does Foo[Int] before, it would have created a new Parrot role. Now it creates one and re-uses it. This means that .does(Foo[Int]) tests now work also. | 13:30 | |
ruoso | smop-base, which would contain only smop-base.h | ||
smop-native, which would contain only the native types | |||
(including idconst and native capture) | |||
smop-run, which would contain only the interpreter instance (but no interpreter implementation) | 13:31 | ||
smop-refcounting, which would contain lowlevel.sm0p with some other name | 13:32 | ||
(maybe bool and idconst should be in a different package, as they are not subject to garbage collection) | |||
smop-singleton, holding bool and idconst | 13:34 | ||
13:34
_jedai_ left
|
|||
ruoso | smop-mold | 13:34 | |
smop-pcl | |||
smop-p5 | |||
and so on | |||
pmurias, somehow I think it would make our lifes easier | 13:36 | ||
13:37
|jedai| joined
|
|||
ruoso | then we would need a package that would bundle all this into something useable, maybe that's the p5 binding SMOP.pm for instance... it could initialze all the stuff... | 13:38 | |
13:40
pmurias left
13:42
pmurias joined
13:45
ZuLuuuuuu joined
13:48
lambdabot left
13:51
lambdabot joined
14:03
SamB left
|
|||
pugs_svn | r24973 | jnthn++ | [t/spec] More tests for punning a role into a class. | 14:04 | |
14:06
|jedai| left,
|jedai| joined
14:08
pmurias left
14:09
SamB joined
14:12
Exodist joined
14:23
pmurias joined
|
|||
pmurias | ruoso: you mean we should physically seperate the components? | 14:24 | |
ruoso | yeah... | ||
so we have a clearer view on the dependencies | |||
pmurias | seems reasonable | 14:25 | |
14:25
eric256 joined
|
|||
ruoso | I was also thinking that we could have a "state machine" for some lowlevel operations that potentially need recursion | 14:26 | |
so we don't make lowlevel.sm0p depend on mold | |||
this could also be used for some basic operations the native types need to do with the captures they receive | 14:29 | ||
(solving the $OUT problem, for instance) | 14:30 | ||
rakudo_svn | r35806 | jonathan++ | [rakudo] Make a role pun a class when you call .new on it. | ||
r35807 | jonathan++ | [rakudo] Add spectest for role punning/instantiation. | |||
pmurias | a "state machine" won't be very hard to write by hand | ||
ruoso | jnthn, I was wondering... shouldn't it pun a class on every invocation on a Role? | ||
pmurias, exactly, and it could be specific for each case, avoiding a lot of mallocs | 14:31 | ||
14:31
|jedai| left
|
|||
ruoso | jnthn, is "new" really a special case? | 14:31 | |
pmurias | i'm wandering how efficient would a mold block compiled to one be | ||
14:31
|jedai| joined
|
|||
jnthn | ruoso: We only discussed making .new work, as I remember it. | 14:32 | |
ruoso | jnthn, wasn't it because it was the example on hand? | ||
jnthn | Not sure... | 14:33 | |
ruoso | what made me think that is that a role is a package declarator, and as a package declarator it has a HOW that is responsible for it... so we have a RoleHOW, as we have ClassHWO | ||
jnthn | But I know that I sure want ACCEPTS on a role *not* to cause an instantiation. | ||
ruoso | *ClassHOW | ||
14:33
ZuLuuuuuu left
|
|||
jnthn | erm, a pun | 14:33 | |
ruoso | so basically, it would make sense that since a Role is represented by a p6opaque | 14:34 | |
that the "pun" happens at "dispatch" time | |||
jnthn, you mean ACCEPTS as in $foo ~~ Array? | 14:35 | ||
jnthn | Yes. | ||
ruoso | jnthn, wasn't $foo ~~ Array expressed in terms of $foo.^does(Array)? | ||
jnthn | I don't think type RHS is a special form. | ||
pmurias | ruoso: what's our current ROADMAP towards getting &infix:<+>(int,int) to work? | 14:36 | |
ruoso | pmurias, loading Multi.pm | ||
spack: ACCEPTS | 14:37 | ||
buubot, spack ACCEPTS | |||
buubot | ruoso: S03-operators.pod:17 | ||
jnthn | No, it's not. | ||
And it's $_.does(X) | |||
Thing is, if you're creating an instance and calling ACCEPTS on that you'd end up calling the ACCEPTS of the instance. | 14:38 | ||
Not of the proto. | |||
So I don't just saying "every method causes an instantiation" is going to work. | |||
ruoso | but nobody is creating an instance | ||
14:38
nihiliad left
|
|||
jnthn | Ah, you're saying we'd call it on the proto? Hmm. | 14:38 | |
That still means we're doing the does test on the wrong thingy though. | 14:39 | ||
ruoso | but you're not calling does on the proto | ||
you're calling does on the value | |||
passing the proto as argument | |||
jnthn | role Foo { }; Foo.ACCEPTS($x); # Here, if we pun Foo, we are then calling ACCEPTS on the thing we get from punning the role, not on the role itself. | 14:40 | |
And since $x probably doesn't do the class but does do the role, it'd give the wrong answer. | |||
ruoso | right... but... | 14:41 | |
ruoso re-re-re-reading the spec | |||
eric256 | does feather have rakudo running and updated on it? wanted to use it to test stuff on, but didn't want to take up the space to download and make rakudo if its already on there | 14:43 | |
jnthn | Hmm. The section under =head1 Autovivifying objects | 14:45 | |
Suggestions you may be able to call anything. | |||
But doesn't deal with the ACCEPTS issue. | |||
ruoso | somehow I always read the ACCEPTS thing as a fallback to that table | 14:46 | |
14:46
riffraff joined
|
|||
ruoso | but that table would be implemented directly as-is | 14:46 | |
pmurias | ruoso: prepending ::MildewSOLoader.new.load('Prelude.mildew.so',$LexicalPrelude.FETCH); at the top of each program would work | ||
jnthn | No, only the first batch of entries are dispatched on the form and the rest are via ACCEPTS. | 14:47 | |
riffraff | hi | ||
pmurias | riffraff: hi | ||
ruoso | jnthn, the first batch contains Any ~~ Type | ||
jnthn | huh? | ||
You looking at svn.pugscode.org/pugs/docs/Perl6/Sp...rators.pod ? | 14:48 | ||
The first section contains privileged syntax; if a match can be done | |||
via one of those entries, it will be. These special syntaxes are | |||
dispatched by their form rather than their type. | |||
ruoso | jnthn, I'm looking at that file, line 2960 | 14:49 | |
jnthn | Any Type type membership $_.does(X) | ||
That one? | |||
ruoso | yes | ||
jnthn | That's not in the first section. | ||
The first group of them ends with Any .<...> | 14:50 | ||
ruoso | er... | ||
14:51
[particle] joined
|
|||
ruoso | jnthn, you really surprised me on that one... | 14:52 | |
jnthn | ruoso: I can't see how it could be any other way, since all of the things on the RHS below that point could be in a scalar. | ||
So we don't have a syntactic form to go by. | 14:53 | ||
ruoso | what about is_type? | ||
since Type is not really a type | |||
14:54
ejs left
|
|||
jnthn | It perhaps means "anything that does Abstraction" | 14:54 | |
Which is what I've generally taken type to mean in Perl 6. | |||
ruoso | I don't know... but I think there's no much meaning in the extra newline after the Any .<...> line | 14:55 | |
pmurias, you could try instantiating a Multi then, and adding the variant you want... | 14:56 | ||
jnthn | Well, we're best off just asking for answers to this stuff than guessing it... | ||
ruoso | indeed... TimToady? | ||
jnthn | For now, having .new at least do a pun will get me enough for now. | ||
ruoso | fair enough... but this issue will be very much important for SMOP, because the RoleHOW.dispatch is the one creatign the pun, and I don't think it is a good idea for it to intercept ACCEPTS | 14:57 | |
jnthn | Right. | 14:58 | |
We'd have to similarly special-case ACCEPTS in Rakudo too. | |||
Which doesn't feel greatly neat. | |||
pmurias | ruoso: Multi doesn't have a .new | 14:59 | |
ruoso | oh right.. | ||
in fact... | |||
I think it would be sane to implement Multi as a Role | 15:00 | ||
which means we need RoleHOW | |||
that implements the class pun at dispatch | |||
jnthn | ruoso: That still doesn't handle the ACCEPTS issue. | 15:02 | |
ruoso | jnthn, I know... I still don't support smart match | ||
jnthn | Ah, OK. ;-) | 15:03 | |
I'll probably leave what I've got for now, until there's some clarification. | 15:04 | ||
ruoso | pmurias, would you like to adventure yourself into RoleHOW? | ||
15:04
|jedai| left,
|jedai| joined
15:07
[particle]1 left
|
|||
ruoso | just a sanity check, but every punned class needs to declare that it is Object, right? | 15:09 | |
jnthn | ruoso: I think an Any | ||
ruoso | right... | ||
jnthn | so it's like a class Foo does TheRole { } | ||
(class Foo { ... } inherits for Any by default.) | 15:10 | ||
ruoso | what about class Object {...} ? | ||
jnthn | erm, *from*... | ||
ruoso | heh | ||
jnthn | heh | ||
I would imagine that doesn't. ;-) | |||
Guess that is special in some way. | 15:11 | ||
ruoso | it would be interesting to know in what way... | 15:12 | |
jnthn | I guess just that it doesn't have any parens. | ||
15:12
kane_ joined
|
|||
jnthn | *parents | 15:13 | |
ruoso | right... but in terms of syntax | ||
ruoso considering one could start a different type hierarchy at some point | |||
and also, if you want to implement something that works in the level of a Junction, for instance | 15:14 | ||
jnthn | class Junction is Object { .. } | 15:16 | |
I don't know that there is any syntax specially for saying "it has no parents" | |||
Maybe you could just do a trait? | |||
ruoso | clas Object is nothing {...] | 15:18 | |
class Object is nothing {...} | |||
15:18
jhorwitz joined
|
|||
ruoso .oO(I think I'll enter the "how many typos you can get into a single line" contest) | 15:18 | ||
class Object isn't Any {...} ;) | 15:20 | ||
jnthn | lol | ||
moritz_ | :) | 15:21 | |
moritz_ thinks of Acme::Don't | |||
ruoso | you know... with all this "built-in types are roles" thingy... | ||
I realised how to solve the "defining undef" problem | |||
if all the built-in types are roles, | 15:22 | ||
Object is also a Role | |||
and when you call Object.BUILDALL | |||
it will pun a new class and build it all | |||
then you will never make Object defined | 15:23 | ||
jnthn | Hmm... | 15:24 | |
jnthn tries to follow that logic... | |||
15:25
pmurias left,
kisu_ left,
kisu_ joined
|
|||
ruoso | jnthn, if we do that and also define that when you try to do "class Foo is Role {...}" causes Foo to inherit from the punned class... we even make it more protected against action-at-a-distance | 15:32 | |
since modifying a Class affects its descendants... but modifying a Role doesn't affect it's composed classes | 15:33 | ||
jnthn | We so don't want to encourage people to do this... | ||
ruoso | s/it's/its | ||
inheriting from Roles? | |||
jnthn | Yeah | ||
Though that doesn't mean it shouldn't be possible. | |||
Though you'd be really inheriting from the punned class. | 15:34 | ||
ruoso | yes... | ||
and protecting from action-at-a-distance indeed looks like an interesting feature | |||
jnthn | Provided folks can't lay their hands on the punned class and is also it ;-) | 15:35 | |
ruoso | if they can, they need to get a private copy... | 15:36 | |
the punned-class-sharing is an optimization that needs to be aware of that | |||
jnthn | :-| | 15:38 | |
Not sure I like that idea. | |||
How would we know if people were going to do changes later? | |||
Anyway, I can't think of a way you'd syntactically do it. | |||
So it's probably a non-issue. | |||
ruoso | but if this issue raises, you'll need some form of COW | 15:39 | |
jnthn | We'll not raise it, because it's hard. ;-) | ||
(Plus if people *really* want to shoot themselves in the foot that badly...) | 15:40 | ||
Matt-W mops brains off his monitor after reading the latest topic of discussion | |||
15:41
_jedai_ joined
15:43
|jedai| left
|
|||
ruoso | so, should I consider it is sane to think as: | 15:49 | |
role Object { } | |||
rakudo_svn | r35812 | pmichaud++ | [rakudo]: spectest-progress.csv update: 292 files, 6280 passing, 171 failing | 15:50 | |
r35812 | pmichaud++ | Failure summary: | |||
r35812 | pmichaud++ | S04-exceptions/fail.rakudo 1 - 42 | |||
r35812 | pmichaud++ | S04-exceptions/fail.rakudo 3 - fail() causes our sub to return (1) | |||
r35812 | pmichaud++ | S12-attributes/delegation.rakudo aborted 41 test(s) | |||
r35812 | pmichaud++ | S12-class/anonymous.rakudo aborted 3 test(s) | |||
r35812 | pmichaud++ | S12-role/basic.rakudo aborted 3 test(s) | |||
r35812 | pmichaud++ | S29-str/chomp.rakudo aborted 14 test(s) | |||
r35812 | pmichaud++ | S29-str/unpack.t aborted 2 test(s) | |||
r35812 | pmichaud++ | integration/99problems-31-to-40.rakudo aborted 65 test(s) | |||
r35812 | pmichaud++ | integration/99problems-51-to-60.t aborted 37 test(s) | |||
r35812 | pmichaud++ | integration/say-crash.t aborted 4 test(s) | |||
jnthn | ruoso: Not sure, trying to work through the implications of that... | 15:51 | |
ruoso lunch & | |||
jnthn | The undefinedness comes through it being a proto, as I understood things.. | ||
ruoso | jnthn, sure... but the problem is that you can call methods on undefined values | 15:52 | |
as well as in protos | 15:53 | ||
the problem is that one of those methods is the thing that turns undef into defined | |||
which is called during "new" | |||
more precisely, during "bless" | |||
pmichaud | that confuses me. | 15:54 | |
jnthn | I think in Rakudo we see proto as being like an instance of the object that has proto-ness mixed into it. | ||
pmichaud | the "turns undef into defined" part confuses me. | ||
jnthn | (Or put another way, I don't really see the problem you're trying to solve...) | ||
pmichaud | me either. | ||
ruoso | pmichaud, take a look at ClassHOW.pm in smop/src-s1p | ||
pmichaud | please don't make me look at code and try to figure out what you're saying. | 15:55 | |
ruoso | looking at code might be easier than looking at the spec ;) | ||
but anyway | |||
pmichaud | I have to even find where smop is. | ||
ruoso | pugs repo/v6/smop | ||
the process of creating a new object goes by: | 15:56 | ||
.new | |||
15:56
_jedai_ left
|
|||
ruoso | new calls CREATE and bless | 15:56 | |
jnthn | pmichaud: svn.pugscode.org/pugs/v6/smop/src-s...lassHOW.pm | ||
ruoso | CREATE is separated from new so you can send the :repr parameter | 15:57 | |
and choose a different representation for your object | |||
pmichaud | yes, I know this -- rakudo has a similar sequence. | ||
ruoso | bless accepts a candidate object and turns it into a instance of the invocant prototype | ||
pmichaud | =item method bless($how: $prototype, $candidate, *@protoobjects, *%initialize) | ||
that looks wrong to me, at least according to the spec. | |||
the prototype is the invocant. | |||
15:58
|jedai| joined
|
|||
ruoso | pmichaud, ClassHOW is the HOW, it's not Object.pm | 15:58 | |
that's why it has $how: as invocant | |||
pmichaud | okay | ||
ruoso | if you look at Object.pm in the same directory | ||
so, bless is the one that calls BUILDALL | 15:59 | ||
BUILDALL is a regular method | |||
that can be overriden | |||
pmichaud | ruoso: I know this part. | ||
I understand bless, BUILDALL, BUILD, CREATE, etc. | |||
ruoso | right... | ||
so | |||
if you call Object.BUILDALL | 16:00 | ||
you're asking Object to be built | |||
it's the same as doing $some_undefined_value.BUILDALL | |||
there's no way to tell if the undef is supposed to be a class | |||
or if it's just something that wasn't yet initialized | |||
pmichaud | "the undef is supposed to be a class" doesn't make sense to me. | 16:01 | |
$some_undefined_value still has a type. | |||
its type isn't "undef". | |||
ruoso | $some_undefined_value := Object; | ||
pmichaud | in that case it's exactly identical to Object.BUILDALL | 16:02 | |
Object already knows its own type | |||
ruoso | which is "Object" | ||
so, if the BUILDALL method turns the invocant into a defined value | 16:03 | ||
pmichaud | it doesn't. | ||
at least, that's not how I read it. | |||
let me check. | |||
ruoso | someone needs to | ||
pmichaud | Object.new calls .bless | 16:05 | |
jnthn | ruoso: I kinda don't get the issue. A proto is an instance of the class with some special behaviours. Creating a new instance of the class wouldn't create another proto though. | ||
It'd create an instance. | |||
ruoso | jnthn, right... I got what the problem is... | ||
16:05
eternaleye left
|
|||
pmichaud | .bless calls .CREATE to create a candidate object . That candidate object is "defined" | 16:05 | |
it's already defined at that point | |||
ruoso | pmichaud, is that spec? | 16:06 | |
pmichaud | which part? | ||
undefinedness is a property of protoobjects | |||
ruoso | it being defined from the return of CREATE | ||
pmichaud | I don't think it's speced to that detail, no. But it works that way. | ||
ruoso | pmichaud, undefinedness is a matter of the return of the "defined" method | ||
pmichaud | it's also not speced that BUILD turns an undefined object into a defined one. | 16:07 | |
regardless, it doesn't seem to matter. | |||
we get a candidate object, and we call BUILD on that object. | |||
ruoso | pmichaud, autovivification makes that | ||
S12:682 | 16:08 | ||
"The C<bless> function automatically calls all appropriate C<BUILD> routines by calling the C<BUILDALL> routine for the current class,which initializes the object in least-derived to most-derived order." | |||
16:09
vixey joined
|
|||
pmichaud | I still don't understand the problem you're trying to solve. | 16:09 | |
ruoso | you don't see it because we disagreed wether CREATE should return something defined or not | 16:10 | |
pmichaud | no, even if CREATE returns an undefined object, I don't see the problem. | ||
ruoso | if CREATE returns an undefined object, BUILDALL turns it into a defined object | 16:11 | |
which means BUILDALL makes the invocant defined | |||
pmichaud | I think the difference is whether CREATE returns a *typed* undefined object | 16:12 | |
ruoso | there's no such thing as untyped undef | ||
pmichaud | okay, if we agree on that (we do) | ||
then I really don't see the problem. | |||
I don't see how definedness comes into play with what you're saying. | |||
ruoso | do you assume that the Type and the Value have the same representation | 16:13 | |
? | |||
both "p6opaque" by default? | |||
pmichaud | depends on what you mean by "type" | 16:14 | |
do you mean "protoobject"? | |||
16:14
ejs joined
|
|||
ruoso | the protoobject is the thing we can refer to when talkign about the type | 16:14 | |
in this case "Object" | |||
pmichaud | okay, Object is a protoobject. | 16:15 | |
ruoso | and is a type | ||
pmichaud | as such, it has the same representation as the values of that type. | ||
ruoso | do you agree that Object.clone returns an identical undefined object | ||
? | |||
but the namespace points the name "Object" to the first | 16:16 | ||
16:16
stephenlb joined
16:17
spx2 left
|
|||
pmichaud | I don't have a problem with Object.clone returning an identical undefined object, no. | 16:17 | |
16:17
spx2 joined
|
|||
ruoso | considering that... is there a fundamental difference between "Object.clone" and "Object.CREATE"? | 16:17 | |
pmichaud | there can be, yes. | ||
Object.CREATE creates a new object. That's different from Object.clone, at least as I've been looking at it. | |||
jnthn | ruoso: Are you basically saying that smop creates an instance by cloning the proto-object and then doing something to it to make it defined? | 16:18 | |
ruoso | Object.CREATE returns a new object, if it returns a defined value | ||
but it returns a protoobject, if we assume it returns an undefined value | |||
jnthn, that's what a "knowhow" is | |||
not a class | |||
16:19
justatheory joined
|
|||
pmichaud | my understanding is that CREATE is used to construct a new instance of a class. | 16:19 | |
jnthn | ruoso: I don't follow. | ||
pmichaud | not to clone an existing object. | ||
ruoso | is this new instance defined or not? | 16:20 | |
pmichaud | (1) that's up to the 'defined' method | ||
ruoso | my understanding is that it is only defined after it is fully initialized | ||
moritz_ | ruoso: isn't definedness an aspected of how that cless defines .defined? | ||
s/cless/class/ | 16:21 | ||
ruoso | (I mean the behavior implemented by Object) | ||
pmichaud | (2) a protoobject may have different behaviors from instances of the class | 16:22 | |
ruoso | pmichaud, so you assume there are different types of typed undef | ||
the ones that can become defined | |||
and the ones that can't | |||
is it? | |||
16:22
riffraff left
|
|||
pmichaud | right now we just do it that protoobjects are instances of a class that have additional "protoobject" roles. | 16:23 | |
16:23
simcop2387 left
|
|||
ruoso | so they can't become defined | 16:23 | |
pmichaud | S12: Some objects | ||
may tell you that they are defined, while others may tell you that | |||
they are undefined. That's up to the object, and depends on how the | |||
metaclass chooses to dispatch the C<.defined> method. | |||
ruoso | I'm talking about the behavior implemented by Object | 16:24 | |
pmichaud | a protoobject differs from other objects by how it responds to the .defined method | ||
16:24
broquaint joined
|
|||
ruoso | so Object.BUILDALL fails? | 16:24 | |
16:25
simcop2387 joined
|
|||
pmichaud | I have trouble seeing when we'd ever do Object.BUILDALL | 16:25 | |
you mean you're trying to initialize the protoobject itself? | |||
16:25
|jedai| left
|
|||
ruoso | yes... | 16:25 | |
pmichaud | I think that probably *should* fail. | 16:26 | |
16:26
|jedai| joined
|
|||
ruoso | ok... I think the major misunderstanding point here... | 16:26 | |
is that SMOP has a more prototype-based OO | |||
16:27
Whiteknight joined
|
|||
ruoso | while Parrot/Rakudo has a more class-based OO | 16:27 | |
so in SMOP there's only the protoobject... not the protoobject *and* the class | 16:28 | ||
pmichaud | but that's not what S12 says. | ||
as I read S12, we have objects and (meta)classes | 16:30 | ||
16:30
alester left
|
|||
pmichaud | a protoobject is simply an object that serves as the placeholder for the class | 16:30 | |
ruoso | metaclass instances, actually | ||
pmichaud | metaclass instance is fine | ||
the point being that protoobjects are not metaclasses. | |||
rakudo/parrot follows this model. | 16:31 | ||
ruoso | right... and that metaclasses are not classes | ||
pmichaud | there's not really a "class" | ||
ruoso | exactly... there's something that knows how to dispatch methods for some object | 16:32 | |
(defined or not) | |||
16:32
Whiteknight is now known as wknight8111
|
|||
eric256 | jnthn++ #parametric roles | 16:32 | |
ruoso | pmichaud, but the point is that S12 doesn't force the information about the methods to be stored in the metaclass instance or in the protoobject | 16:34 | |
because it supports both class-based and prototype-based oo | |||
pmichaud | but we're talking about Object, and things derived from Object | ||
S12: "However, by default, objects derived from Object support a fairly | 16:35 | ||
standard class-based model. | |||
16:35
km3 joined,
km2 left
16:36
tux300181 is now known as tux300181we,
tux300181we is now known as tux300181
|
|||
ruoso | pmichaud, some other parts of S12 relaxes that... | 16:37 | |
16:37
aindilis` left
|
|||
ruoso | but maybe it needs some clarification | 16:37 | |
16:38
aindilis` joined
|
|||
pmichaud | just because p6 supports prototype-based oo doesn't mean that prototype-based oo has to be the foundation for all of its classes and methods | 16:38 | |
and it's pretty clear that Object follows a more class-based approach | |||
we can of course get objects that use a different metamodel by creating them with different representations | |||
ruoso | pmichaud, it's not that all clear (except for that specific wording) | ||
pmichaud, metamodels and representations are not related | 16:39 | ||
you're supposed to be able to use different representations with the same metamodel | |||
as well as different metamodels with the same representation | |||
pmichaud | all I'm saying is that clearly much of S12 was designed with a class-based representation in mind, and Rakudo follows that. | 16:40 | |
16:40
nihiliad joined
|
|||
ruoso | pmichaud, and I'm saying that it pretty much fits a prototype-based... and was relaxed in several points to allow that | 16:41 | |
I'm not at alll saying it should be one or another.... | |||
on the contrary, I'm advocating it needs to be agnostic... | 16:42 | ||
pmichaud | then yes, we need clarification from p6l I guess. | ||
regardless | |||
ruoso | (as it almost is, the only part of the spec that implies otherwise is that specific phrase in S12) | ||
pmichaud | saying "Object.BUILDALL" doesn't make much sense to me, because "Object" is supposed to remain an undefined protoobject. | 16:43 | |
ruoso | pmichaud, sure sure... | ||
pmichaud, this is just a corner case | |||
and it's not supposed to work gracefully | |||
it's a huge shoot in the foot | |||
the question is how to handle it... | 16:44 | ||
pmichaud | so the notion of "converting an undefined to defined" instance doesn't really follow for me either, nor do I see why it's an issue. | ||
ruoso | it's an issue if you think of protoobjects as something that can become an object | ||
which is not the case for Parrot/Rakudo AFAICS | |||
pmichaud | protoobjects are objects | ||
ruoso | *defined object, that is | ||
pmichaud | they just respond differently to .defined | ||
in particular | 16:45 | ||
if I say: $p = Object.clone; $p.BUILDALL it's not clear to me that should work. | |||
ruoso | let me rephrase | ||
pmichaud | perhaps it should, but there's nothing in the spec to indicate that. | ||
ruoso | it's an issue if you think a protoobject and a defined object share the same implementation of .defined | ||
which sees if the value is initialized | 16:46 | ||
pmichaud | what does "value is initialized" mean in this case? | ||
ruoso | the instance storage has been populated with the instance data | ||
pmichaud | with all of it, or with some? | ||
ruoso | with all of it | ||
as in | |||
Dog{ name => 'fido' } is undefr | 16:47 | ||
but it becomes defined later | |||
pmichaud | no it does't. | ||
no it doesn't. | |||
ruoso | er... | ||
S12:2065 | |||
pmichaud | does it have to be the *same* instance? | 16:48 | |
jnthn | my $x = Dog{ name => 'fido'}; my $y = $x.new; # $y is defined now. But $x ain't. | ||
pmichaud | right | ||
$y is a new instance | |||
it's not the same as $x | |||
jnthn | Right. | ||
ruoso | but my $x = Dog{ name => 'fido' }; $x.wag; | ||
$x is defined nwo | |||
now | |||
jnthn | Huh? | ||
ruoso | S12:206 | 16:49 | |
pmichaud | but does $x have to be the same instance? | ||
ruoso | S12:2065 | ||
well, I'm implementing as it being the same | |||
pmichaud | yes, but is that required? | ||
ruoso | I'm not sure how you'd track down every container that holds it | ||
pmichaud | how do you mean? | ||
"track down every container..."? | |||
ruoso | if you store that inside several hashes and arrays | 16:50 | |
16:50
|jedai| left
|
|||
rakudo_svn | r35817 | jonathan++ | [rakudo] If a routine is marked as proto, then all routines after that not declared multi will be made to be multis. | 16:50 | |
ruoso | it should autovivify and become available in all that containers | ||
pmichaud | oh, Rakudo does that. | ||
no problem. | |||
16:50
|jedai| joined
|
|||
jnthn | my $dog = Dog{ :name<Fido> }; defined $dog or say "doesn't exist"; # Fido doesn't exist $dog.wag() # Fido wags his tail | 16:50 | |
In those three lines, does $dog end up defined? | |||
ruoso | yes | ||
pmichaud | yes | ||
jnthn | *after those... | ||
ok | 16:51 | ||
jnthn didn't realize Rakudo was doing that, but good. | |||
pmichaud | Rakudo isn't doing that yet | ||
but I haven't figured out what causes it to happen. | |||
jnthn | Ah, OK. | ||
pmichaud | i.e., what triggers the conversion to defined | ||
jnthn | pmichaud: I really dunno. | ||
pmichaud | it's not simply the calling of a method. | ||
jnthn | It can't be ...right. | ||
Because then .new would make the proto defined. | |||
ruoso | autovivifying implies calling BUILDALL | ||
pmichaud | either way, in Rakudo it's not at all a problem for us to take the object and replace it with a defined instance. | 16:52 | |
jnthn | Indeed. | ||
But it's a case of when it happens. | |||
ruoso: Sure, but would wag here do that explicitly? | |||
ruoso | jnthn, I still didn't figure out what triggers that exactly... but yes... | ||
wag would do that explicitly | |||
pmichaud | ruoso: but what makes it defined in this case? | 16:53 | |
16:53
ejs left
|
|||
ruoso | in my understanding... BUILDALL | 16:53 | |
pmichaud | okay | ||
but having BUILDALL convert an undefined to a defined instance isn't at all a problem (at least not in Rakudo | |||
ruoso | alright... I presume that is because of Parrot features | 16:54 | |
pmichaud | even w/o parrot features | ||
if we simply assume that Object has a $!defined attribute | |||
and that BUILDALL sets $!defined to true | |||
(it doesn't have to be a visible one -- could be handled internally) | |||
then protoobjects don't have $!defined set, and BUILDALL sets $!defined | 16:55 | ||
ruoso | right... you ended up with the same as I do | ||
you can call $proto.BUILDALL and make it defined | |||
which is where we started | 16:56 | ||
:) | |||
pmichaud | as I said, I don't see it as being a problem. :-) | ||
ruoso | so what happens when you do Object.BUILDALL ? | 16:57 | |
pmichaud | I think it should be an error. | ||
ruoso | how do you detect that? | 16:58 | |
pmichaud | Perhaps "Object" has a readonly property on it. | ||
yes, that does become an issue if you assume that creating a new object involves cloning a protoobject (and the readonly property gets cloned) | |||
ruoso | which is set to false when you Object{ :attr } | ||
pmichaud | although I tend to think of "Object" as being a container just like "$x" | 16:59 | |
and then Object{ :attr } has an implicit clone in it, because it's really Object but WHENCE({ :attr }) | 17:00 | ||
ruoso | phew... I think we're getting somewhere now ;) | 17:01 | |
pmichaud | afk, inauguration | 17:02 | |
ruoso | so I get back to 1 hour ago ;) ;)... | 17:07 | |
if every built-in type is a Role | |||
is Object a role? | |||
ruoso lunch & | 17:08 | ||
17:08
hercynium joined
17:11
[particle]1 joined
|
|||
moritz_ | std: for (my $i = 1; $i <= 3; $i++) { say $i; } | 17:23 | |
p6eval | std 24973: OUTPUTĀ«00:05 86mā¤Ā» | ||
17:27
ntgrl joined
|
|||
eric256 | rakudo: role Greet[Str $greeting] { method greet() { say "$greeting!"; } }; class English { does Greet["Hello"]; }; English.new.greet(); | 17:27 | |
p6eval | rakudo 35819: OUTPUTĀ«Could not find non-existent sub doesā¤current instr.: 'parrot;English;_block38' pc 426 (EVAL_21:149)ā¤Ā» | ||
moritz_ | eric256: you have to write it as 'class English does Greet["Hello"] { ... }' for now | 17:28 | |
jnthn | eric256: You have to put the does up after the class English for now. | ||
17:28
[particle] left
17:29
ntgrl is now known as integral
|
|||
eric256 | ok ;) | 17:29 | |
17:29
ruoso left
|
|||
eric256 | just trying out the synopsis S12 since there doesn't appear to be an S14 yet | 17:29 | |
17:29
|jedai| left
17:30
|jedai| joined,
szbalint left
|
|||
jnthn | eric256: Yes, some of S12 will move to S14. | 17:32 | |
eric256 | makes since | 17:33 | |
lots of role stuff in there | |||
jnthn | Aye. | 17:34 | |
17:34
ruoso joined
|
|||
jnthn | I'm planning to work on that in the not too distant future. | 17:34 | |
eric256 | now i just have to figure out a real world example for roles ;) lol | ||
jnthn | You'll find plenty once they settle into your head. :-) | ||
eric256 | of that i'm sure | 17:35 | |
gettings classes and roles and parametric roles all at once is alot to digest | |||
jnthn | Yes! | 17:36 | |
ruoso | does "role Foo[:$something]" means that there's an attribute with that name? or is that a lexical variable that should be installed? | ||
jnthn | You can see it as a lexical. | ||
What's between the [...] is just a signature. | |||
In Rakudo we quite literally just bind it like a normal call. | |||
ruoso | I see... | ||
jnthn | Then do some magic to make sure we get the scoping of methods right. | 17:37 | |
Also, you do a multi-dispatch to decide which role to do. | |||
moritz_ | rakudo: role foo[:$a] { method m { say $a } }; (1 but foo[:a<z>]).m | ||
p6eval | rakudo 35819: OUTPUTĀ«No applicable candidates found to dispatch to for '_block20'ā¤current instr.: 'parrot;Perl6Role;!select' pc 2444 (src/classes/Role.pir:108)ā¤Ā» | ||
eric256 | is there any reason roles take [] instead of ()? | ||
moritz_ | rakudo: role foo[:$a] { method m { say $a } }; (1 does foo[:a<z>]).m | ||
ruoso | actually, it's not that hard once you have to support $?CLASS pointing to the class where the role was composed into | ||
p6eval | rakudo 35819: OUTPUTĀ«No applicable candidates found to dispatch to for '_block20'ā¤current instr.: 'parrot;Perl6Role;!select' pc 2444 (src/classes/Role.pir:108)ā¤Ā» | ||
moritz_ | jnthn: should that work? | ||
jnthn | moritz_: I *think* so. | 17:38 | |
ruoso | rakudo: role Foo { method m { say $?CLASS } }; class Bar does Foo { }; Foo.m; | ||
jnthn | I can guess why it doesn't. | ||
p6eval | rakudo 35819: OUTPUTĀ«Scope not found for PAST::Var '$?CLASS' in mā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā» | ||
moritz_ | jnthn: should I open a ticket? | ||
jnthn | I've not written the tests for named parameters yet. ;-) | 17:39 | |
moritz_: You can, but it's already in the line of fire. | |||
moritz_ | ok, then I don't bother | ||
jnthn | ruoso: I suspect all roles will take an implicit $?CLASS as their first parameter. | ||
Not done that yet, but... | |||
rakudo: role Foo[Pair $x] { }; 1 but Foo[:x<1>] | 17:40 | ||
p6eval | rakudo 35819: RESULTĀ«1Ā» | ||
jnthn | Aye, 'tis what I expected. | ||
missing build_call... | |||
ruoso | jnthn, I was guessing the role composition would glue an additional outer scope to the method being composed | ||
declaring $?CLASS | 17:41 | ||
not an additional, actually... but it would add a new scope in the hierarchy | |||
17:41
zamolxes left
|
|||
moritz_ | rakudo: grammar A { }; my $a = A.new; say $a ~~ A; | 17:42 | |
p6eval | rakudo 35819: OUTPUTĀ«too few arguments passed (1) - 3 params expectedā¤current instr.: 'parrot;PGE;Match;new' pc 28 (compilers/pge/PGE/Match.pir:54)ā¤Ā» | ||
ruoso | jnthn, I think [:x<1>] is always a named parameter, isn't it? | ||
jnthn | ruoso: Yeah. | ||
ruoso | you'd have to add an additional ( ) to make it a positional | ||
jnthn | ruoso: It is, but it's not being turned into one, it's being passed as a pair object. | ||
I was just checking that the bug was what I thought it was. :-) | 17:43 | ||
eric256 | running 0 but True; seems to hang perl6 at the command line | 17:46 | |
17:46
ejs joined
|
|||
moritz_ | same here | 17:47 | |
17:47
nihiliad left
|
|||
eric256 | did know if but was working...guessing it isn't lol | 17:47 | |
jnthn | The re-write of enums gets ever more desparate... | 17:48 | |
moritz_ | 0 but Str also loops | ||
jnthn | Hmm | ||
That's odd - I'd have expected an error... :-S | |||
(Since Str is a class atm, rather than a role, and such issues.) | 17:49 | ||
moritz_ | I know | ||
17:50
|jedai| left
|
|||
jnthn wonders why something failed during make spectest, and yet runs just fine at the command line | 17:50 | ||
17:50
|jedai| joined
17:57
nihiliad joined
|
|||
rakudo_svn | r35821 | jonathan++ | [rakudo] Compose roles at class composition time, rather than as we encounter them. | 18:00 | |
18:01
pdcawley joined
|
|||
eric256 | rakudo: role Err { has $.reason is rw;}; my $x = 1 but Err("Test"); say $x; say $x.reason; | 18:05 | |
p6eval | rakudo 35819: OUTPUTĀ«1ā¤Testā¤Ā» | ||
eric256 | ;) | ||
moritz_ | rakudo: enum Foo <bar baz>; my $x = 1 but Foo::bar; say $x.Foo | 18:06 | |
p6eval | rakudo 35819: OUTPUTĀ«Use of uninitialized valueā¤ā¤Ā» | ||
18:11
Casan joined
18:12
rindolf joined
18:16
kst left
18:17
kst joined,
|jedai| left
18:18
|jedai| joined
18:19
aindilis` left
18:20
aindilis` joined
|
|||
moritz_ | perl6: sub f($a, $b) { say "$a|$b" }; my @a = <1 4>; f(|@a) | 18:21 | |
18:21
kst` joined
|
|||
p6eval | pugs: OUTPUTĀ«*** No compatible multi variant found: "&f"ā¤ at /tmp/obfojECJqI line 1, column 47 - line 2, column 1ā¤Ā» | 18:21 | |
..rakudo 35825: OUTPUTĀ«1|4ā¤Ā» | |||
..elf 24973: OUTPUTĀ«Undefined subroutine &GLOBAL::prefix__124 called at (eval 124) line 6.ā¤ at ./elf_h line 4307ā¤Ā» | |||
rindolf | Rakudo seems the only one right. | 18:22 | |
moritz_ | aye | 18:23 | |
rakudo: rakudo: for "foo\nbar\nbaz".split( /\n ** 2..*/ ) { say | |||
.trans([ /\s+/ => " " ]) } | |||
p6eval | rakudo 35825: OUTPUTĀ«Statement not terminated properly at line 1, near ": for \"foo"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
moritz_ | rakudo: rakudo: for "foo\nbar\nbaz".split( /\n ** 2..*/ ) { say .trans([ /\s+/ => " " ]) } | ||
p6eval | rakudo 35825: OUTPUTĀ«Statement not terminated properly at line 1, near ": for \"foo"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
moritz_ | what is complaining about? | 18:24 | |
pmichaud | the extra "rakudo:" | ||
rakudo doesn't understand labels yet. | |||
moritz_ | rakudo: for "foo\nbar\nbaz".split( /\n ** 2..*/ ) { say .trans([ /\s+/ => " " ]) } | ||
p6eval | rakudo 35825: OUTPUTĀ«foo bar bazā¤Ā» | ||
moritz_ blind | |||
pmichaud: do you want to (temporarily?) revert the Test.pm changes? | |||
pmichaud | yes. | 18:25 | |
moritz_ | good. | ||
pmichaud | if you could easily do that, it would be great. | ||
if not I'll do it, but have to hunt them down. | |||
moritz_ | I'll look into it | ||
pmichaud | could probably simply restore the Test.pm that was in effect yesterday. | ||
instead of finding+reverting patch. | 18:26 | ||
moritz_ | I found the offending commit | ||
now running spectest to see if it works out | 18:27 | ||
18:30
ruoso left
18:35
km3 left
18:36
kst left
18:38
masak joined
18:44
riffraff joined,
Patterner left
18:49
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
rakudo_svn | r35830 | moritz++ | [rakudo] revert changes to Test.pm that broke some tests in fail.t | 18:50 | |
r35830 | moritz++ | We we re-evaluate the patch from Ovid++ after the release | |||
jnthn | moritz_: fail.t passes again after this? | ||
moritz_ | jnthn: all tests pass here | 18:53 | |
jnthn | w00t | 18:54 | |
moritz_ | jnthn: although I've seen some non-reproducible failures of t/spec/S16-filehandles/io_in_for_loops.t | ||
jnthn: no #parrotsketch for you? | |||
jnthn | moritz_: Oh? Is it now? | 18:56 | |
moritz_ | jnthn: yes, question time already | ||
jnthn | ooops!!! | ||
pugs_svn | r24974 | jnthn++ | [t/spec] Various extra tests for proto. | 18:58 | |
rakudo_svn | r35836 | jonathan++ | [rakudo] Final fix needed to get a proto in the class to avoid conflicts with methods of the same name in roles (by bringing them into the multi). | 19:01 | |
19:01
simcop2387 left,
simcop2387 joined
|
|||
moritz_ | mail sent to p6l. Let's see if we get some kind of productive response... | 19:08 | |
jnthn | A flame war produces emails. ;-) | 19:12 | |
19:14
cosimo joined
|
|||
masak | aie! all the work I did on Text::Markup::Wiki::MediaWiki has just mysteriously disappeared! :O | 19:16 | |
moritz_ blames git | |||
oh wait, I can't. Git is a saint... | |||
19:16
schmalbe left
|
|||
masak | blaming git is close at hand right now. | 19:17 | |
but I'll withhold judgment. it's just as likely I or someone else did something wrong. | |||
ok, found it. | 19:18 | ||
still mystified, though. | 19:24 | ||
19:24
zamolxes joined
|
|||
jnthn afk for a bit - dinner | 19:25 | ||
masak | oh. I think I get it now. | 19:26 | |
merging, though marvellously simple, is not always easy. | 19:27 | ||
19:30
kst` is now known as kst
|
|||
diakopter | @tell ruoso libpcl won't build on windows; I tried several environments.... although I guess I haven't tried vc++ | 19:30 | |
lambdabot | Consider it noted. | ||
19:31
On left,
On joined
19:32
[particle] joined
|
|||
eric256 reads about roles and traits and then wanders the halls mumbling to himself | 19:34 | ||
19:35
pmurias joined
|
|||
diakopter | pmurias: :( libpcl won't build on windows; I tried several environments.... although I guess I haven't tried vc++ | 19:35 | |
pmurias: howdy :D | |||
19:40
kst` joined
|
|||
pmurias | diakopter: hi | 19:40 | |
diakopter: libpcl is not really required for anything | |||
diakopter | okay... so src/pcl_coro.c is extraneous? | 19:41 | |
.ri I mean | |||
pmurias | src/pcl_coro.ri is not used by anything other than it's test | 19:42 | |
19:42
pbuetow joined
|
|||
diakopter renames it | 19:42 | ||
pmurias was doing just it | 19:43 | ||
19:43
km2 joined
|
|||
eric256 | is there a way to get a Match object to give up its keys? | 19:43 | |
pmurias svn reverts | |||
masak | eric256: you give it a meaty bone instead? | 19:44 | |
diakopter | well, that was quite the excursion | ||
eric256 | masak: ;) | ||
masak | eric256: have you tried $/.keys? | ||
eric256 | yep | ||
masak | eric256: did it work? | ||
eric256 | rakudo: rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl;say $/<a>; | 19:45 | |
p6eval | rakudo 35839: OUTPUTĀ«Hā¤[]ā¤Hā¤Ā» | ||
eric256 | no ;) | ||
masak | eric256: did you submit a rakudobug? | ||
eric256 | i don't even know if it is a bug, cause i can't find a sepc for Match...but thats cause i'm slow | ||
19:45
riffraff left
|
|||
eric256 | lol | 19:45 | |
19:45
|jedai| left
|
|||
pmurias | diakopter: does it compile now? | 19:45 | |
masak | eric256: please do. that's easier than asking. | ||
"it's easier to get bugfixes than explanations" | 19:46 | ||
19:46
|jedai| joined
|
|||
eric256 | only if it is suppose to handle .keys | 19:46 | |
masak | eric256: as I said, there's only one way to find out :P | ||
eric256 | lol | ||
alright alright | |||
masak | eric256: (I've wanted that functionality at times too) | ||
moritz_ | it's a bit tricky | 19:47 | |
$/ is both a hash and an array | |||
and both have .keys methods | |||
but I guess it's more dwim'my to assume hash semantics for .keys, .values, .kv etc. | |||
masak | yes, I agree. | 19:48 | |
moritz_ | rakudo: rule a {H}; "Hello" ~~ /<a>/; say %($/).keys.perl; | ||
p6eval | rakudo 35839: OUTPUTĀ«["a"]ā¤Ā» | ||
19:48
[particle]1 left
|
|||
masak | there's no way to satisfy Liskov in this case. | 19:48 | |
19:50
p6eval left,
p6eval joined
19:52
silug left,
pasteling left,
Patterner left,
literal left,
tux300181 left,
moritz_ left,
kcwu left,
lisppaste3 left,
cotto left,
Helios left,
zostay left,
AzureStone left
19:54
kst left
19:55
kst` left
|
|||
eric256 | oh cool ;) | 19:56 | |
rakudo: class Match is also { method keys () {return %($self).keys }; }; rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl; | 19:58 | ||
p6eval | rakudo 35839: OUTPUTĀ«Scope not found for PAST::Var '$self' in keysā¤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)ā¤Ā» | ||
eric256 | rakudo: class Match is also { method keys () {return %(self).keys }; }; rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl; | 19:59 | |
p6eval | rakudo 35839: OUTPUTĀ«Hā¤["a"]ā¤Ā» | ||
eric256 | sweet | ||
masak | eric256++ # taking matters into self.hands | 20:01 | |
jnthn | masak: Actually, details here is probably more on-topic. :-=) | ||
20:01
nihiliad left
|
|||
masak | jonathan: foo( :$bar ) doesn't work anymore. | 20:02 | |
jnthn | hmm | ||
masak | jnthn: but it _is_ a Rakudo implementation question. | ||
jnthn | I can't believe we don't have spectests for that! | ||
masak: True. :-) | |||
masak | oh, so it isn't a conscious regression? | ||
jnthn | But it's noisy on #parrot at the moment | ||
No, it's not. | |||
eric256 | if i aksed all my questions as a bug report there would be like 100 new bugs ;) | ||
jnthn | Not knowingly on my part, anyway... | ||
eric256 needs a #perl6-users channel | 20:03 | ||
PerlJam | eric256: do that right *after* the release. | ||
masak | eric256: bring 'em on. | ||
eric256 | or this should be #perl6-rakudo-dev ;) | ||
jnthn | rakudo: sub foo(:$x) { say $x }; my $a = 42; foo(:$a) | ||
p6eval | rakudo 35839: OUTPUTĀ«complex varname colonpair case not yet implemented at line 1, near ")"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | 20:04 | |
masak | jnthn: I find your lack of spectests disappointing. | ||
jnthn | rakudo: sub foo(:$x) { say $x }; my $a = 42; foo(:a($a)) | ||
p6eval | rakudo 35839: OUTPUTĀ«too many named arguments - 'a' not expectedā¤current instr.: 'foo' pc 95 (EVAL_17:52)ā¤Ā» | ||
jnthn | rakudo: sub foo(:$x) { say $x }; my $a = 42; foo(:x($a)) | ||
p6eval | rakudo 35839: OUTPUTĀ«42ā¤Ā» | ||
eric256 | rakudo: class Match is also { method keys () {return %(self).keys }; }; rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl;say $/.WHO; | ||
p6eval | rakudo 35839: OUTPUTĀ«Hā¤["a"]ā¤Method 'WHO' not found for invocant of class 'Match'ā¤current instr.: 'parrot;P6metaclass;dispatch' pc 119 (src/classes/ClassHOW.pir:95)ā¤Ā» | ||
eric256 | rakudo: class Match is also { method keys () {return %(self).keys }; }; rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl;say $/.WHAT; | ||
jnthn | rakudo: sub foo(:$x) { say $x }; my $x = 42; foo(:$x) | ||
p6eval | rakudo 35839: OUTPUTĀ«"load_bytecode" couldn't find file 'PGE.pbc'ā¤current instr.: 'parrot;PCT;Grammar;onload' pc 0 (src/PCT/Grammar.pir:41)ā¤Ā» | ||
jnthn | rakudo: sub foo(:$x) { say $x }; my $x = 42; foo(:$x) | ||
p6eval | rakudo 35839: OUTPUTĀ«complex varname colonpair case not yet implemented at line 1, near ")"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
jnthn | masak: I did write well over 50 new ones this week. :-P | 20:05 | |
Or close to anyway... | |||
masak | jnthn: I know, I'm not actually complaining. | ||
20:05
cosimo left
|
|||
jnthn | :-P | 20:05 | |
masak | just paraphrasing Darth Vader. | ||
pmichaud | masak: I don't think the foo(:$x) syntax was ever implemented. | ||
masak | pmichaud: oh, it was. | ||
jnthn | pmichaud: I seem to remember it working... | ||
masak | pmichaud: I had working code using it. | ||
pmichaud | okay, then it's been broken since rvar. | ||
jnthn | masak: Any idea on what timescale? | 20:06 | |
pmichaud | because I don't think I put it into rvar. | ||
masak | jnthn: late November. | ||
jnthn | If last couple of days, I'm surprised. If rvar, I'm less so. | ||
Ah, OK. | |||
masak | it was before rvar. | ||
jnthn | OK. | ||
masak | but I'm still sad it's gone. | ||
jnthn blames rvar | |||
pmichaud | in which case, we don't have tests for it. | ||
masak | grr! | ||
pmichaud blames spectest. | |||
masak | (lack of tests)-- | ||
jnthn will look at it in parallel with make nom | 20:07 | ||
20:07
cosimo joined
|
|||
masak | jnthn++ | 20:07 | |
pmichaud | what is responsible for handling :$x anyway? Is that colonpair? | ||
because if so, I didn't do anything to colonpair. | |||
(in rvar) | |||
...and that might be why it's broken. | 20:08 | ||
jnthn | pmichaud: | ||
ah. | |||
it's because desigilname used to capture a name | 20:09 | ||
And now captures it as longname | |||
And actions.pm wasn't updated to follow that change in method colonpair. | |||
pmichaud | ah, std compiliance. | ||
jnthn | Aye, grammar.pg is right, actions.pm just didn't track it. | ||
pmichaud: What whould we do in the :$foo::bar case? Is that illegal, I wonder? | 20:10 | ||
But if so, I wonder why not just have ident... | |||
pmichaud | jnthn: I have no idea. | ||
20:10
silug joined,
pasteling joined,
moritz_ joined,
Patterner joined,
literal joined,
tux300181 joined,
kcwu joined,
lisppaste3 joined,
Helios joined,
AzureStone joined,
cotto joined,
zostay joined
|
|||
jnthn | heh, nor does S02. :-) | 20:11 | |
pmichaud | it also means that :$$name would parse also. | ||
eric256 | rakudo: class Match is also { method keys () {return %(self).keys }; }; rule a {H}; say "Hello" ~~ /<a>/; say $/.keys.perl; my $x = $/; $x.keys.perl.say; | ||
p6eval | rakudo 35839: OUTPUTĀ«Hā¤["a"]ā¤Null PMC access in find_method()ā¤current instr.: 'parrot;Match;keys' pc 345 (EVAL_24:106)ā¤Ā» | ||
masak | eric256: Null PMC accesses are free rakudobugs! | 20:12 | |
submit, submit! | |||
jnthn | $key = $<var><desigilname>.text | ||
(from sTD.pm) | |||
eric256 | masak: lol okay i'm off to file two bugs then | ||
jnthn | Well, that can't be wrong. ;-) | 20:13 | |
masak | eric256++ | ||
pmichaud | okay, that works for me. Do you want to do the colonpair change or shall I? | ||
jnthn | building it now... | ||
masak | rakudo: class A { has &.f; method t { &.f } }; A.new( f => { say "OH HAI" } ).t | 20:16 | |
p6eval | rakudo 35839: OUTPUTĀ«Method 'f' not found for invocant of class 'A'ā¤current instr.: 'parrot;A;t' pc 245 (EVAL_20:96)ā¤Ā» | ||
masak | jnthn: this used to work as well >:( | ||
moritz_ | masak: please add to t/spec/S12-attributes/instance.t | ||
masak | moritz_: with all due respect, I'm too busy writing workarounds right now :( | 20:17 | |
we're on a tight schedule tonight. | |||
moritz_ | masak: ok | ||
pmichaud | masak: what did you expect that to do? return a sub? | ||
masak | pmichaud: no, run it. | ||
oh. | |||
jnthn | You probably need parens for that. | ||
moritz_ | &.f is short for &( self.f ) | ||
masak | rakudo: class A { has &.f; method t { &.f() } }; A.new( f => { say "OH HAI" } ).t | ||
p6eval | rakudo 35839: OUTPUTĀ«Method 'f' not found for invocant of class 'A'ā¤current instr.: 'parrot;A;t' pc 245 (EVAL_20:96)ā¤Ā» | ||
masak | would that be enough? | ||
jnthn | ok, i haz colon pair fix | 20:18 | |
20:18
kane_ left
|
|||
jnthn | will write spectest for it now, then run the tests... | 20:18 | |
masak | jnthn: yay. | ||
moritz_ | jnthn: and I have a test locally here | ||
20:19
kane_ joined
|
|||
jnthn | moritz_: Oh? Commit away then. | 20:19 | |
masak | if I write that test, will the &.f regression be fixed sooner? :) | ||
I'm willing to bargain here. | |||
pmichaud | rakudo: class A { has $!f; method t { $!f() } }; A.new( f => { say "OH HAI" } ).t | ||
20:19
kane_ left
|
|||
p6eval | rakudo 35839: OUTPUTĀ«OH HAIā¤Ā» | 20:19 | |
jnthn | oh, I thought you meant for colonpair. | ||
pugs_svn | r24975 | moritz++ | [t/spec] tests for mysub(:$named_arg) | ||
masak | pmichaud: oh, that helps. kthxbai. | 20:20 | |
jnthn | oh, moritz++ | ||
20:20
kane_ joined
|
|||
jnthn | moritz_: Which file was it in? I'll unfudge it locally... | 20:20 | |
moritz_ | jnthn: t/spec/S06-signature/named-parameters.t, one of them can probably be unfudged wih your fix | ||
pmichaud | rakudo: class A { has &!f; method t { &!f() } }; A.new( f => { say "OH HAI" } ).t | ||
p6eval | rakudo 35839: OUTPUTĀ«No such attribute '!f'ā¤current instr.: 'parrot;A;t' pc 209 (EVAL_20:83)ā¤Ā» | ||
20:20
[particle]1 joined
|
|||
pmichaud | I don't know that we have subroutine attributes working yet in Rakudo. | 20:20 | |
masak | pmichaud: I'm surprised constructors can assign to privates. | ||
pmichaud | subroutines are weird because we have to do funky things to sigils. | ||
masak: I'm pretty sure that was the spec that was decided upon (assigning to privates) | 20:21 | ||
moritz_ | masak: they ahve to be initialized by .perl output somehow | ||
masak | moritz_: Perl 6 and I don't agree on what a private is, then. | ||
moritz_ | ok, back to the question: is &.f() actually allowed? | ||
pmichaud | rakudo: class A { has $.f; method t { $.f() } }; A.new( f => { say "OH HAI" } ).t | ||
p6eval | rakudo 35839: OUTPUTĀ«OH HAIā¤Ā» | ||
pugs_svn | r24976 | pmurias++ | [mildew] start of a Prelude | ||
r24976 | pmurias++ | it is for now only loaded by load_prelude.p6 | |||
pmichaud | I have to think about &.f() a bit. | ||
moritz_ | I mean it's self.f() in Callable context | 20:22 | |
pmichaud | yes, that's what it looks like to me. | ||
moritz_ | so the return value better be coerced to a sub... which won't work | ||
pmichaud | I'm not even sure that $.f() is correct here. | ||
moritz_ | but you could declare it as &.f and call it as $.f() or so | 20:23 | |
pmichaud | I think it would have to be (&.f)() | 20:24 | |
and ($.f)() | |||
20:25
|jedai| left,
On left
|
|||
pmichaud | because $.f() would be self.f() in scalar context. | 20:25 | |
er, in $ context | |||
moritz_ | since @.f means "call self.f in List context", the former would mean "call self.f in Code context", which doesn't amek sense to me | ||
20:25
|jedai| joined
|
|||
moritz_ | $.f() or @.f() should do, though | 20:26 | |
pmichaud | $.f and $.f() are equivalent. | ||
both are method calls. | |||
moritz_ | right | ||
pmichaud | both are method calls with no arguments. | ||
so, if $.f returns a sub to be invoked, then it would have to be ($.f)() | |||
moritz_ | with "former" I meant "(&.f)()" | ||
pmichaud | in order to invoke it. | 20:27 | |
moritz_ | hm, right | ||
pmichaud | and rakudo gets that wrong for now, because it doesn't recognize the $.method(...) syntax. | ||
moritz_ | aye | 20:28 | |
20:28
alester joined
|
|||
pmichaud | some pieces of the grammar are really weird. | 20:29 | |
I bet I can get &.foo(args) to work if we ignore the sigil for now. | 20:30 | ||
masak: use ($!f)() as your workaround for now, otherwise it'll break again when we fix Rakudo. | 20:31 | ||
masak | pmichaud: acknowledged. | ||
pmichaud | masak: or ($.f)() | ||
masak | aye. | ||
20:32
cosimo left
|
|||
pmichaud | (and it's very likely that those are in fact the "correct" Perl 6 in the long run) | 20:32 | |
alester | hey pmichaud | 20:33 | |
I have much to talk with you about. | |||
pmichaud | alester: if you can handle my possibly being distracted at a moment's notice today -- shoot :-) | ||
alester | Actually, I'd like to talk voice this evening, if possible. | ||
pmichaud | it's possible. | 20:34 | |
have a time in mind? | |||
alester | 8ish? 9ish? | 20:37 | |
20:37
[particle] left
|
|||
alester | I don't know what your home life is like. | 20:37 | |
pmichaud | either of those work for me. | ||
(I'm CST, btw) | |||
alester | will you be online? | ||
Yeah, I know. | |||
TX | |||
pmichaud | I don't know if I'll be online or not. I can break away from whatever I'm doing to take a call; I can't necessarily sit in front of the computer waiting for one, though. | ||
if you just call 8ish 9ish or whatever that should be fine. | 20:39 | ||
phone # coming via priv msg | 20:40 | ||
alester | no, that's fine. | ||
PerlJam | text messages make good pings. | ||
pmichaud | afk # kids from school | 20:41 | |
pugs_svn | r24977 | jnthn++ | [t/spec] Fix and unfudge a colonpair test. | ||
alester | pmichaud: My agenda is roughly: What are we doing on rakudo.org? What do we want people to do in Perl 6? I'm working on my keynote for FP2009. | 20:42 | |
jnthn | masak: fixed | 20:43 | |
jnthn -> nom | |||
masak | jnthn: woot! | ||
looks promising for tonight's upgrade. | |||
20:43
rhr_ joined
20:44
rob joined,
rob is now known as Guest38745
|
|||
eric256 | okay apparently RT is smarter than me...is there anyway to submit a bug other than emailing it in? | 20:48 | |
i got a bitcard account and logged in, but i don't see any way to submit a bug | 20:49 | ||
Guest38745 | does anyone else find vim eats up a lot cpu whilst highlighting perl6 code? I am using the syntax file from the pugs repo | ||
PerlJam | eric256: are you sure you're looking at the correct interface? | ||
eric256 | PerlJam: nope | 20:50 | |
masak | eric256: I usually email them in. | ||
rakudo_svn | r35840 | jonathan++ | [rakudo] Make :$foo form of colonpair work again. | ||
eric256 | PerlJam: rt.perl.org/rt3/ | ||
Khisanth | eric256: which module do you want to report a bug for? | ||
eric256 | perl6 | ||
so i clicked perl6 on the right, got a list of bugs, but no submit or new ticket or. | 20:51 | ||
20:51
viklund joined
20:52
|jedai| left,
|jedai| joined
|
|||
moritz_ | Guest38745: update your copy of perl6.vim, that has been improved a few days ago | 20:52 | |
for bug reports you *must* send a mail (rakudobug@perl.org), there's no way to submit them via a web form | 20:53 | ||
eric256 | ahh okay | ||
20:54
rhr left,
cosimo joined
|
|||
Guest38745 | ah thanks moritz_ :) | 20:54 | |
20:55
Guest38745 is now known as rob___
20:56
smtms joined
20:57
rindolf left
|
|||
eric256 | bugs away | 21:00 | |
rakudo: Null PMC access in find_method()ā¤current instr.: 'parrot;Match;keys' pc 345 (EVAL_24:106) | 21:02 | ||
p6eval | rakudo 35839: OUTPUTĀ«"load_bytecode" couldn't find file 'PGE.pbc'ā¤current instr.: 'parrot;PCT;Grammar;onload' pc 0 (src/PCT/Grammar.pir:41)ā¤Ā» | ||
eric256 | lol if you paste that in the interactive mode you get a segmentation fault... i dunno why its a segfault instead of a parse error | 21:03 | |
masak | eric256: probably because you're running ./perl6 | 21:04 | |
21:06
ejs left,
mberends joined
|
|||
eric256 | ahh yea | 21:07 | |
PerlJam | pmichaud, alester: I hope the two of you come up with a "standard" place to send people for rakudo stuff. | ||
alester | That's part of it, yes. | 21:08 | |
pmichaud | PerlJam: that will happen. The only question is where and how. | ||
21:08
wknight8111 left
|
|||
pmichaud | (I guess that's really two questions) | 21:08 | |
eric256 would love to see it be rakudo.org ;) but the blog isn't realy cutting it as an general information source | 21:09 | ||
alester | we realy only have 2.5 weeks to get rakudo.org in a state that I can show off in Minneapolis. | ||
PerlJam | For instance .... | ||
alester | eric256: Yes, we know. | ||
We are aware that rakudo.org needs more on it. | |||
eric256 | ;) i figured ++ to both of you by the way | ||
PerlJam | < ben_m> PerlJam: currently looking for how to install rakudo. | ||
alester | That is one of the things we will be discussed. | ||
PerlJam | from one of the #perl | ||
eric256 | i'd be happy to help with anything you can offload ;) | ||
alester | eric256: thanks, I'm sure there will be stuff. | ||
eric256 | i'm trying to focus on examples etc since i can't seem to get enough time to get update on internals, but i'd love to help with some documentation for newbies too. i'm still green enough to sympathize with them | 21:10 | |
alester | ANYTHING we write will be a win. | 21:11 | |
eric256 | i think that package idea on the comments is good too, i just went through getting all the stuff for rakudo and it is a bit of work hunting around | ||
21:12
perl7 joined
|
|||
mberends | rakudo: grammar G { regex r { \r }; regex b { \b }; }; if "b" ~~ G::b { say "blue"; }; | 21:13 | |
p6eval | rakudo 35839: OUTPUTĀ«Method 'ACCEPTS' not found for invocant of class 'PGE;Match'ā¤current instr.: 'infix:~~' pc 19585 (src/builtins/match.pir:18)ā¤Ā» | ||
mberends | rakudobug, anyone? | ||
masak | mberends: that syntax is deprecated. | 21:14 | |
jnthn | mberends: No, that code is wrong. | ||
mberends | good, then I can stand corrected! | ||
jnthn | try /<G::b>/ | ||
mberends | ok, thanks! | 21:15 | |
jnthn | e.g. "b" ~~ /<G::b>/ | ||
masak | mberends: I have at least two things I want to talk to you about. :) but I don't have time tonight. | ||
jnthn | The other way did work in Rakudo for a while, but due to a shortcoming in Rakudo rather than because it was spec. :-) | ||
21:15
|jedai| left
|
|||
masak | we used that shortcoming a bit too much in November :P | 21:16 | |
21:16
|jedai| joined
|
|||
mberends | masak: and my internet this week is an unreliable hotel wifi. I also want to discuss u4c and other matters with you. | 21:17 | |
masak | aye, that's one of the things. | ||
mberends | sign me up, anyways | ||
masak | consider it done. | ||
diakopter | @tell ruoso never mind; pmurias informed me libpcl wasn't strictly necessary | 21:18 | |
lambdabot | Consider it noted. | ||
perl7 | when will be the next version of parrot released? | 21:24 | |
PerlJam | perl7: today | 21:25 | |
21:25
gravity joined
|
|||
perl7 | nice! 0.9? | 21:25 | |
21:25
gravity left
21:26
gravity joined
21:31
|jedai| left
21:33
|jedai| joined
|
|||
diakopter | pmurias: are you around for smop building help? | 21:43 | |
pmurias | diakopter: sort of | 21:51 | |
21:52
[particle] joined,
pmurias left
21:53
pmurias joined
|
|||
diakopter | pmurias: build\idconst.o: In function `SMOP__NATIVE__idconst_createn': | 21:54 | |
C:/Users/mwilson/source/pugs/v6/smop/build/idconst.c:132: undefined reference to `_imp__pthread_rwlock_rdlock' | |||
pugs_svn | r24978 | moritz++ | [irclog] try to make things like 'tt #202' link to trac tickets | ||
diakopter | but the pthread.h it's using definitely defines pthread_rwlock_rdlock (but I don't know about the _imp__ prefixed one) | 21:55 | |
though there are some cases in the pthread.h where it wouldn't define most/certain things | 21:56 | ||
pugs_svn | r24979 | moritz++ | [irclog] fix typo in regex | ||
pmurias | diakopter: dunno | 21:57 | |
diakopter: you could #define all the pthread stuff to empty strings | |||
as we don't depend on multi threading for now | 21:58 | ||
diakopter | okay... do you know what the _imp__ prefix is/does? | ||
pmurias | no | ||
diakopter | oh; it might be a windows thing | 21:59 | |
pmurias | i don't have anything like that in my pthread.h | 22:00 | |
what compiler are you using? | |||
diakopter | gcc | 22:01 | |
3.4.5 I think | |||
on mingw | |||
no it's not in my pthread.h | |||
pmurias | i see it mentioned in www.phpman.info/index.php/info/gcc | 22:03 | |
the _imp__ | |||
prefi | |||
x | |||
diakopter: your compiler wasn't shipped with Dev-C++ right? | 22:06 | ||
22:08
nihiliad joined
|
|||
diakopter | pmurias: no.. | 22:08 | |
it's the gcc/mingw bundled with strawberry-portable | |||
with mingw32-dlfcn-0-0.3.r11 and mingw32-pthreads-2.8.0-3 added in | 22:09 | ||
22:09
[particle]1 left
22:12
perl7 left
22:13
mberends left
|
|||
pmurias | diakopter: you could try "#define pthread_rwlock_rdlock(...) " | 22:16 | |
i'm really clueless about windows so i can't help you much with getting pthread to work there | 22:17 | ||
22:22
cosimo left
22:28
jhorwitz left,
mberends joined
|
|||
moritz_ | rakudo: class Object is also { method perl { 'faked' } }; class A { }; say A.new.perl; | 22:29 | |
p6eval | rakudo 35840: OUTPUTĀ«fakedā¤Ā» | ||
moritz_ | rakudo++ | ||
rakudo: class Object is also { method w { self.WHAT } }; class A { }; say A.new.w | 22:30 | ||
p6eval | rakudo 35840: OUTPUTĀ«Aā¤Ā» | ||
PerlJam | jonathan++ pmichaud++ even | ||
moritz_ | aye | ||
22:32
|jedai| left
22:33
pmurias left
22:34
|jedai| joined
|
|||
mberends | this diagnostic used to work, but not now, please help: perl6 -e '$*ERR.say: "hello";' # result: Cannot write to a filehandle not opened for write | 22:36 | |
moritz_ | mberends: please submit a bug report | 22:37 | |
that's one of the things we can't test yet with pure Perl 6 tests :( | |||
mberends | ok, will do. | ||
moritz_ | so it's not tested, and breaks frequently | ||
diakopter | pmichaud: ok thanks | 22:38 | |
oops | |||
pmurias: ok thanks | |||
22:39
wknight8111 joined
22:52
masak left
22:56
_jedai_ joined
22:58
|jedai| left
|
|||
mberends | moritz_: $*ERR bug is RT#62540. If I can figure out a spectest using perl5 qx(), should I submit a patch or could I commit the test to pugs? | 23:04 | |
23:04
Exodist left,
eric256 left
|
|||
moritz_ | mberends: the spectests should be pure Perl 6. But feel free to write a rakudo specific test for now | 23:05 | |
using perl 5, that is | |||
and attach it to the ticket | |||
mberends | will do, cannot promise a test because capturing stderr might be tricky. shades of open3()... | 23:06 | |
nihiliad | Based on the advice of masak++ yesterday, I built Parrot and Rakudo and ran "make test && make spectest", in preparation for writing tests based on the synopses. Any particular place I should start in the synopses? Anyone else working on this, with whom I should coordinate? | 23:09 | |
23:10
iblechbot left
|
|||
mberends | moritz++ is our testking, and masak++ is bugking | 23:11 | |
23:11
pbuetow left
|
|||
moritz_ | nihiliad: please consult svn.pugscode.org/pugs/t/TASKS | 23:11 | |
nihiliad: it contains a list of things that need to be done. If none of them is of your liking, just say here "I'm now writing a test for $feature", we don't need more coordination right now | 23:12 | ||
nihiliad | moritz_: Thanks! Just what I was looking for. | 23:13 | |
mberends | nihiliad: several people are planning similar work, see backlogs irclog.perlgeek.de/perl6 | 23:14 | |
moritz_ | but on the other hand the test suite is *so* large, that even with uncoordinated work collisions are rare | ||
just commit early, commit often | 23:15 | ||
23:16
_jedai_ left
23:17
|jedai| joined
23:30
vixey left
|
|||
rakudo_svn | r35844 | chromatic++ | [languages] Fixed POD formatting errors. | 23:40 | |
23:55
mberends left
23:56
|jedai| left
23:57
|jedai| joined
|
|||
pugs_svn | r24980 | lwall++ | [STD] head off attempt to use C-style for loop | 23:57 |