pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
00:10 timbunce left, timbunce joined 00:12 justatheory left 00:14 Exodist left
ruoso which is the opposite of a "multi" declaration? meaning... when you want a method to explicitly have only one signature... 00:16
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
b_jonas ruoso: dunno, I think that's the default 00:17
ruoso but there's a specific name for that, isn't it?
b_jonas maybe there's some equivalent to 'multi sub foo (signature)' like 'sub foo (signature) is multi' that you can negate with something like "isn't" 00:18
is there an "isn't" and "doesn't" btw?
possibly "is not" and "does not" and "has no"
because the apostrophes would be strange
ruoso the keyword "only"
b_jonas ruoso: does that negate multi? 00:19
ruoso yes
b_jonas ah yeah, indeed
that's what S06 says 00:20
ruoso I think I'll add different storage support for "multi methods" and "only methods"
(in p6opaque, I mean)
b_jonas which S documents the "is" and "does" and "has" modifiers? 00:21
ruoso where one is Hash of Hash of Method and the other is a plain Hash of Method
b_jonas, S12 documents OO mostly
b_jonas "but not" might also make sense 00:25
ruoso what does that mean? 00:26
pugs: my $a = 1 but False; if (! $a) { say 1 };
p6eval pugs: OUTPUT[*** Cannot cast from VBool False to Pugs.AST.Internals.VCode (VCode)ā¤ at Prelude.pm line 541, column 5-16ā¤] 00:27
ruoso pugs: my $a = 0 but True; if ($a) { say 1 };
p6eval pugs: OUTPUT[*** Cannot cast from VBool True to Pugs.AST.Internals.VCode (VCode)ā¤ at Prelude.pm line 541, column 5-16ā¤]
b_jonas ruoso: it would undo a but 00:29
like
(1 but False) but not False
obviosuly you wouldn't write that like that but in a separate expression 00:30
pugs_svn r21472 | lwall++ | more buglets
ruoso b_jonas, (1 but False) but True ? 00:31
rakudo: say (1 but False) but True
b_jonas ruoso: that might work in the case of False
p6eval rakudo 29712: OUTPUT[The but operator can only be used with a role or enum value on the right hand sideā¤current instr.: 'die' pc 11105 (src/gen_builtins.pir:7110)ā¤]
b_jonas but you won't have such a negated role for most roles
though actually 00:32
it might have to be
(1 but False) but not Bool
because False is an enum, and so but not Bool would strip all the enum roles from the value 00:33
or at least I think False is an enum, maybe it isn't?
00:33 elmex left
ruoso it would probably make more sense (1 but False) doesnt Bool 00:33
b_jonas yeah, it is an enum, says S12
"does not"? why? 00:34
I thought "does" was for classes
that is, applying a role to a class
ruoso because "but True" actually means "does Bool, .bool = True"
00:34 alester joined
b_jonas is that the syntax? 00:35
ruoso no... just a concept mock up
b_jonas not "but Bool :bool<true>" or something else with "but"
wait, maybe there's both "but" and "does" with the only difference being that "but" creates a copy while "does" works in place? 00:37
ruoso b_jonas, see the end of the "Roles" section in S12 00:38
00:39 alester left
b_jonas ruoso: yeah, so I think that's the only difference between but and does 00:39
also, the Enums section say that the syntax is this: 00:40
either of the following: 00:41
$x = "Today" but Tue;
$x = "Today" but day::Tue;
$x = "Today" but day<Tue>;
00:41 s1n left
b_jonas $x = "Today" but day(Tue); 00:41
$x = "Today" but day(3);
the last two also work for any properties as defined in the Roles section, and enums are always properties as well 00:42
00:42 japhb joined
b_jonas it seems to imply that both Tue and day are roles in this case 00:42
(namely not just with the creation syntax but also by saying $x.does(Tue) and $x.does(day) are true for such an enum value) 00:43
so I'd think both "but not True" and "but not Bool" should work
and the same with "does not" instead of "but not" with the difference being mutate vs copy 00:44
p6 does not define "does not" or "but not" anywhere though
ruoso @tell pmurias, I've had a great idea... to simplify p6opaque implementation (and metaclass implementation) I've separated the storage of "only methods" from the storage of "multi methods" 00:45
lambdabot Consider it noted.
ruoso @tell pmurias I've updated www.perlfoundation.org/perl6/index....mop_oo_api ... take a look ... 00:46
lambdabot Consider it noted.
00:47 apeiron joined 00:50 bacek joined 00:51 cognominal_ left, cognominal_ joined
pugs_svn r21473 | ruoso++ | [smop] reworking p6opaque.sm0p with the new definitions... as a refactoring on the way, tests are broken again 00:52
ruoso later & 00:54
00:55 ruoso left, apeiron_ left 00:56 b_jonas left 01:02 [particle1 left 01:07 wknight8111 left 01:08 nipotaway is now known as nipotan 01:10 meppl left 01:12 meppl joined 01:16 icwiener joined, timbunce left 01:52 xinming joined 01:55 felipe left 01:58 xinming__ joined 02:00 alester joined
zamanfou is now away: In the rain my tears are forever lost. 02:01
02:04 Limbic_Region left, xinming_ left, alester left 02:05 xinming__ left 02:07 xinming_ joined 02:11 xinming left 02:18 xinming joined, xinming_ left 02:25 xinming left 02:27 xinming joined
meppl good night 02:43
02:46 meppl left 02:49 charsbar_ joined 02:50 xinming_ joined 02:58 xinming left 02:59 charsbar left, [particle1 joined 03:06 Psyche^ joined 03:11 ikeda joined 03:15 justatheory joined 03:18 Patterner left, Psyche^ is now known as Patterner 03:22 kanru left 03:24 rhr_ joined 03:34 [particle1 left 03:35 xinming joined 03:37 rhr left 03:40 pbuetow_ joined, justatheory left 03:41 xinming_ left 03:42 rhr_ is now known as rhr 03:43 ikeda_ joined 03:49 felipe joined 03:53 xinming left 03:54 xinming joined 03:55 pbuetow left 03:59 ikeda left 04:03 kanru joined 04:09 justatheory joined 04:15 ikeda_ left, ikeda joined 04:18 arguile left 04:19 xinming_ joined 04:21 arguile joined 04:31 xinming__ joined 04:32 xinming left, ikeda_ joined 04:36 ikeda left 04:37 ikeda_ left 04:45 xinming_ left 04:52 c1sung left 04:58 xinming joined 05:10 xinming__ left 05:11 xinming_ joined 05:12 masak joined 05:18 xinming left 05:19 bacek_ joined 05:21 xinming joined 05:22 justatheory left 05:23 icwiener left 05:25 Psyche^ joined 05:27 xinming left 05:29 bacek left, jfredett joined 05:31 xinming_ left 05:33 jfredett_ left 05:38 Patterner left, Psyche^ is now known as Patterner 05:57 xinming joined 06:19 c1sung joined 06:44 Alias_ joined 06:47 Alias_ left, Alias__ joined 06:53 luqui joined 07:07 iblechbot joined 07:12 bacek joined 07:13 bacek__ joined 07:22 pmichaud left, moritz_ left, frobnitz left, apple-gunkies left, Arathorn left, breinbaas left, felipe left, mofino left, yath_ left, meteorjay left, pl0d left, gbacon left, bloonix left, Juerd left, lisppaste3 left, funktio left, BinGOs left, josh- is now known as josh, felipe joined, mofino joined, BinGOs joined, pl0d joined, lisppaste3 joined, bloonix joined, gbacon joined, meteorjay joined, Juerd joined, yath_ joined, funktio joined 07:23 josh left, Arathorn joined, apple-gunkies joined, frobnitz joined, breinbaas joined, pmichaud joined, moritz_ joined, josh- joined 07:29 bacek_ left 07:31 bacek left 07:41 timbunce joined, _timbunce joined 08:01 timbunce left 08:15 _timbunce left 08:30 luqui left 08:31 elmex joined 08:37 xinming left 08:44 xinming joined 09:17 pmurias joined 09:19 jferrero joined, bacek__ left 09:27 chris2 joined
pmurias TimToady: why did you reduce the number of {*} hooks in STD.pm? it should be done with wrapping where there is only one? 09:32
lambdabot pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them.
moritz_ do {*} hooks affect LTM? 09:36
09:37 donaldh joined
pmurias likely 09:38
09:45 ashizawa joined 09:49 renormalist joined 09:56 jferrero left, jferrero joined 10:35 pmurias left 10:36 pmurias joined 10:49 iblechbot left 10:51 meppl joined 10:53 agentzh left 10:56 agentzh joined 11:03 ruoso joined
ruoso pmurias, hi 11:08
11:08 nipotan is now known as nipotaway 11:15 pbuetow_ left, m0py joined
pmurias ruoso: hi 11:16
11:16 pbuetow joined, Patterner left
ruoso pmurias, have you seen that I take the multi methods to another member of the proto_storage? 11:16
pmurias ruoso: yes
ruoso it should make it easier to implement the first objects...
pmurias but i don't know what to think of it 11:17
do Scalars redispatch methods they don't understand? 11:18
ruoso pmurias, I think so
actually.. not... 11:19
let me see
pugs: class Foo { method bar { 2 } }; my $a = Foo.new(); say VAR($a).bar();
p6eval pugs: OUTPUT[2ā¤]
ruoso pugs does it
pugs: class Foo { method bar { 2 } }; my $a = Foo.new(); say VAR($a).FETCH().bar(); 11:20
p6eval pugs: OUTPUT[*** No such method in class Foo: "&FETCH"ā¤ at /tmp/5uDnuk6S3M line 1, column 56-77ā¤]
ruoso pugs: class Foo { method bar { 2 } }; my $a = Foo.new(); say VAR($a).WHAT;
11:20 Psyche^ joined
p6eval pugs: OUTPUT[Fooā¤] 11:20
11:20 Psyche^ is now known as Patterner
ruoso hmmm... it actually doesn't implement VAR correctly 11:20
pugs: my $a = Scalar.new(); class Foo { method bar {2} }; $a.STORE(Foo.new); say $a.bar; 11:23
p6eval pugs: OUTPUT[*** No such method in class Scalar: "&STORE"ā¤ at /tmp/XixGgLUixC line 1, column 53-70ā¤]
ruoso hmpf
kp6: class Foo { method bar { 2 } }; my $a = Foo.new(); say VAR($a).bar();
p6eval kp6 21473: OUTPUT[no method 'bar' in Class 'Scalar'ā¤]
ruoso kp6 refuses it
pmurias maybe $foo is traslated to CurrentLexicalPad<$foo>.FETCH()? 11:24
ruoso $foo? 11:26
pmurias any sort of lexical variable
ruoso oh.. yeah... that's for sure...
$foo actually means lexpad.{'$foo'}.FETCH() 11:27
11:27 ashizawa left
ruoso just noticed that was exactly what you've written before ;) 11:27
pmurias ruoso: i wouldn't be so sure of this 11:29
11:29 meppl left
pmurias %hash<hash key>.method()? 11:29
ruoso now sees the meaning of your first question... 11:30
but returning a scalar is the only way to implement 11:31
my $a := %hash<hash key>;
maybe the . operator is the one that makes the FETCH 11:32
which actually makes sense 11:33
as well as the = operator
pmurias either that or if a method is called on a scalar it calls it on it's value 11:34
ruoso but how do you call FETCH then?
pmurias FETCH would be special cased 11:35
ruoso hmmm... so you can't have a method FETCH on a value that is stored inside a scalar?
pmurias hmm or you would have to call VAR($foo).FETCH 11:36
ruoso VAR($foo) returns a scalar with the $foo scalar as the value of this scalar 11:38
so VAR($foo).FETCH() would be the same as $foo 11:39
hmmm
wait
if the '.' operator implies a FETCH 11:40
VAR($foo) needs a double-box for VAR($foo).FETCH() === $foo 11:42
so VAR() creates a scalar containing the scalar returned by the lexpad lookup 11:43
so, in VAR($foo).FETCH(), '.' accesses the scalar returned by the lexpad lookup because of the implied FETCH, and the explicit FETCH is being called on that scalar 11:44
kp6: my $a = 1; say VAR($a).FETCH() === $a; 11:45
p6eval kp6 21473: OUTPUT[syntax error at position 31, line 1 column 31:ā¤my $a = 1; say VAR($a).FETCH() === $aā¤ ^ HEREā¤]
ruoso kp6: my $a = 1; say (VAR($a)).FETCH() === $a;
p6eval kp6 21473: OUTPUT[syntax error at position 33, line 1 column 33:ā¤my $a = 1; say (VAR($a)).FETCH() === $aā¤ ^ HEREā¤]
ruoso kp6: my $a = 1; say (VAR($a)).FETCH() == $a;
p6eval kp6 21473: OUTPUT[1ā¤]
ruoso kp6: my $a = 123; say (VAR($a)).FETCH() == $a;
p6eval kp6 21473: OUTPUT[1ā¤]
11:45 lumi left
ruoso pmurias, does it make sense? 11:46
pmurias yes
but i has some issues
it would hinder language interoperability 11:47
and force more method call the nessesary
ruoso yeah... but... any other idea? 11:48
pmurias scalars forwarding method calls to their values and VAR() creating a special object which calls their real methods 11:50
we could somehow generalize the .^ and .^! syntax 11:51
ruoso that makes me think... how visible to the user is FETCH() and STORE()? 11:53
pmurias the have to use the VAR macro
ruoso the only reference of FETCH in the specs is in a Proxy object that would behave as the Scalar
maybe the effective FETCH could have a protected name... 11:54
pmurias we need multi part identifiers 11:55
ruoso and then we wouldn't have any problem by hiding any value method because it collides with the Scalar methods...
'multi part identifiers'?
pmurias things like $foo.^foo $foo.^!foo would translate to (haven't thought about the syntax) $foo.HOW::foo $foo.REPR::foo 11:56
in other words we need namespaces for method name 11:57
s
ruoso I'm not so sure... $foo.^bar() is actually going to be rewritten as $foo.HOW.bar($foo) 11:58
now it's just a syntatic convenience
pmurias and .^!? 11:59
ruoso and the REPR calls are somewhat specific... 12:00
it's just a protected name
12:00 pmichaud left, apple-gunkies left, Arathorn left, breinbaas left, moritz_ left, frobnitz left
pmurias .^ is handled on the syntax level? 12:00
ruoso yes...
at least it's a reasonable way of doing it, since the actual method doesn't have the ^ 12:01
pmurias qualified methods would be also a way for language interoperability, an object could have a different interface from python and from perl 12:02
12:02 lumi joined, Arathorn joined, apple-gunkies joined, frobnitz joined, breinbaas joined, pmichaud joined, moritz_ joined
ruoso pmurias, that's the beauty of representation polymorphism... we can have that feature later... it doesn't need to be a part of the standard p6opaque object 12:04
pmurias ruoso: do you have any usefull metaclass example which aren't done by represenation objects in smop? 12:08
ruoso not really... in fact I think the REPR api is a fundamental feature for you to have usefull interchangeable metaclasses 12:09
12:10 lumi left
pmurias * examples 12:10
12:10 lumi joined
pmurias ruoso: what i meant what sort of (custom) metaclasses can we expect to be built on the REPR api 12:11
ruoso different MRO 12:12
for instance
pure-prototype Ɨ prototype by delegation Ɨ class-based
12:12 a-jing joined, a-jing left
ruoso pmurias, and also some more exotic metaclasses that fetch the methods elsewhere 12:15
and store only metainformation on how to do that fetching in the class_storage
pmurias, one very usefull one would be a P5Dispatch metaclass... that uses .^!who to determine the name of the p5 package where to dispatch the methods 12:18
pmurias isn't that the job of a REPR? 12:24
ruoso may be or may be not 12:25
it depends on what you want to acomplish
for instance...
if we manage to integrate smop with p5 the way I plan to do
we may have a smop object being used as is from inside p5 12:26
and then you might want to have a protoobject for a p5 module
pugs_svn r21474 | fglock++ | [v6.pm] version 0.25; marked cpan-tester failures as TODO (though I can't reproduce the problem) 12:27
12:29 iblechbot joined, Psyche^ joined
ruoso pmurias, of course that to access a p5 object, you need a different repr 12:30
12:30 Patterner left, Psyche^ is now known as Patterner
ruoso pmurias, but one important feature of Perl 6 is that a subclass doesn't need to be of the same repr of a superclass... or even have the same metaclass 12:32
as well as an instance might have a different representation of its protoobject
pugs_svn r21475 | ruoso++ | [smop] bringing back some features that were already implemented in the old p6opaque. 12:36
r21476 | fglock++ | [v6.pm] Changelog update
ruoso wonders what keeps fglock away from IRC... 12:37
12:38 josh- is now known as josh 12:47 jan__ left
pugs_svn r21477 | ruoso++ | [smop] bringing back test/12... still failing... 12:52
pmurias ruoso: it would be good to have a perl6 version of the sm0p fragments on top
ruoso yes, it would... 12:53
pmurias re IRC, don't you get distracted by IRC from coding? 12:55
pmurias gets very distracted 12:56
ruoso not really...
12:57 Jedai joined
ruoso usually when I have to code something else I neglect IRC... 12:58
and only take a look from now and then...
pugs_svn r21478 | ruoso++ | [smop] some more advances in test/12 it now is just warning the non-implemented methods. 13:04
13:09 jferrero left 13:10 cmarcelo joined
pmurias maybe fglock works in a non-irc place now 13:12
* no-irc
shouldn't non-implemented methods kill smop instead of printing a warning message 13:20
ruoso pmurias, I'm not sure at this level... we still don't have an exception mechanism implementd 13:21
pmurias we could have a placeholder SMOP_THROW() 13:23
or better SMOP_FAIL?
moritz_ pmurias: fail() in perl 6 doesn't throw an exception by default
pmurias SMOP_DIE 13:24
at least sliently returnig false on unkown methods should be eliminated 13:25
ruoso pmurias, I'm trying to add the warning for now 13:26
for p6opaque the failure will be handled by the metaclass
that should return a failure if the method is not found
pugs_svn r21479 | ruoso++ | [smop] delegation in p6opaque works again... there is a leak of the how scalar somewhere 13:28
r21480 | pmurias++ | [smop] tiny progess on Array 13:31
pmurias library and cycling&
ruoso pmurias, you forgot to add test/19 13:33
13:51 cognominal__ joined
pugs_svn r21481 | ruoso++ | [smop] YAY! test/12 passes again, delegation to the metaclass works again 13:51
r21482 | pmurias++ | [smop] forgot to add test 19 13:58
pmurias i'm using {0} instead of [0] as s1p needs to be fixed 13:59
got to go will fix on a fresher brain&
ruoso alright...
13:59 pmurias left, cognominal_ left 14:01 kanru left 14:06 iblechbot left, timbunce joined 14:09 jan_ joined
ruoso @tell pmurias I can't compile test/19... I'm removing it from the compilation for now 14:09
lambdabot Consider it noted.
ruoso @tell pmurias I can't compile any sm0p block... 14:13
lambdabot Consider it noted.
14:15 cognominal_ joined 14:16 pbuetow left, TJCRI joined, pbuetow joined
ruoso @tell pmurias Can't call method "item" on an undefined value at ../sm0p/sm0p_with_actions line 58. 14:19
lambdabot Consider it noted.
14:20 cognominal_ left 14:23 cognominal__ left
ruoso have to wait for the sm0p fix 14:27
14:27 kanru joined
pugs_svn r21483 | ruoso++ | [smop] moving test/14 back. It was still failing with a segfault, but I could not debug further because of the sm0p bug that is not compiling anything. 14:28
14:32 cognominal_ joined 14:42 orafu left 14:57 meppl joined 15:09 renormalist left 15:19 timbunce left 15:25 masak left, masak joined 15:46 Lorn joined
pugs_svn r21484 | lwall++ | [STD] various bugs 15:51
r21484 | lwall++ | [t/spec] various bugs
r21484 | lwall++ | Now parses 95% (cheating on postfix:<!>)
moritz_ TimToady++ 15:52
moritz_ is thorougly impressed
15:52 timbunce joined
moritz_ of course we shouldn't forget that tricky stuff like hyper ops isn't jet migrated to spec/ 15:52
15:56 pbuetow left, pbuetow joined 15:57 Exodist joined 15:58 justatheory joined
pugs_svn r21485 | moritz++ | test target for STD.pm Makefile 15:59
16:02 timbunce left 16:03 timbunce joined 16:12 pmurias joined
pmurias ruoso: looking into it 16:12
lambdabot pmurias: You have 3 new messages. '/msg lambdabot @messages' to read them.
pmurias ruoso: you maybe be a victim of lex/ poisioning 16:13
remove lex/* test/lex/*
pugs_svn r21486 | lwall++ | require STD.pm to parse as first test 16:18
16:22 iblechbot joined
pugs_svn r21487 | moritz++ | [STD.pm] Makefile: test depends on all 16:28
r21488 | moritz++ | [spec] S04-statements/for.t it's neither '=~' nor '~~', it's '~=' 16:29
pmurias ruoso: has removing lex fixed your problem 16:31
?
TimToady heh, I wonder if I can get the parser to figure out which mistake they made... 16:32
moritz_ ;-) 16:33
pmurias TimToady: should i add a lex/ less option?
moritz_ btw what's wrong with ".$*PID" ?
16:35 donaldh left
TimToady $*PID."method" 16:36
pugs_svn r21489 | lwall++ | [STD] parse as types
r21489 | lwall++ | [type.t] of and as must come after signature
TimToady in theory, should backtrack on failure to find brackets, but currently just fails 16:37
justatheory TimToady: Sounds painful.
16:45 hercynium joined
TimToady it should probably figure out that a method name containing a newline is unlikely :) 16:45
16:48 chris2 left
pmurias how can i check if something is a typeglob in p5 as not only those seem to live in the symbol table? 16:55
=~ /^\*/ proved to be enough 16:59
17:09 cjfields joined
ruoso pmurias, yes...removing lex fixed it (as it looks) 17:14
17:14 alester joined 17:17 justatheory left 17:18 alester left
pugs_svn r21490 | ruoso++ | [smop] re-adding test/19 which now compiles (but still fails) 17:19
ruoso TimToady, if you have some time, please take a look on the Scalar Ɨ Value discussion we had earlier... 17:20
17:20 timbunce left 17:21 timbunce joined
ruoso pmurias, I think we should start checking if the invocant has the correct RI before executing anything... 17:24
pmurias, most of the time a segfault arises that is the cause
pmurias hm 17:26
we need to check if the capture is a native one too
ruoso yes... that too... 17:27
pmurias and convert a string identifier into a constant one
ruoso that too ;)
17:27 timbunce left
ruoso but the later is not that important because it won't generate a segfault... 17:28
we can explicitly say we don't support non-constant identifiers for now
pmurias silent failures are worse than segfaults
ruoso we should add also the warning about "unknown methods" 17:29
some of the objects have it alreaddy 17:30
pmurias we can either add it with a custom preprocessor or the c preprocessor 17:31
ruoso we could have a C macro that does this checking
something like
___NATIVE_CAPTURE_ONLY___("p6opaque"); 17:32
___CORRECT_INVOCANT___(SMOP__p6opaque__RI, "p6opaque");
and even... 17:33
___CONST_IDENTIFIER_ONLY___("p6opaque")
pmurias isn't it possible to get the correct name from the responder 17:36
17:37 alester joined
ruoso pmurias, in fact... it is 17:37
ruoso writing the macros
I think I'll make it as an assert 17:38
it will make a failure exit
17:40 timbunce joined
pmurias ruoso: what do you use for debugging segfaults? 17:40
ruoso pmurias, to check the invocant I need to extract it from the capture... would it be ok for the macro to declare SMOP__Object* invocant;? 17:41
pmurias, valgrind
pmurias ruoso: you could add a new block and make it a lexical 17:44
ruoso pmurias, but usually the invocant will be used later...
so making the macro define it would avoid a second call to capture_invocant 17:45
pmurias ok
pugs_svn r21491 | ruoso++ | [smop] three macros that can be used to do some sanity checks that can save us from segfaults 17:46
17:47 meppl left
pugs_svn r21492 | ruoso++ | [smop] uses the macros in p6opaque_proto_storage 17:51
pmurias ruoso: i used to catch segfaults with something like valgrind --db-attach=yes --db-command="cgdb %f %p" ' 17:57
17:57 cognominal__ joined
ruoso pmurias, usually valgrind already gives me the output I need 17:57
pmurias, have you seen the SMOP Debugging wiki page?
pmurias yes 17:58
cgdb is IMHO nicer than gdb 18:00
ruoso: shouldn't the -q option be on the valgrind command on that page? 18:01
ruoso -q? 18:02
if you like to add it...
I usually like the valgrind report
pmurias i don't like the valgrind header 18:03
18:04 Jedai left
pugs_svn r21493 | ruoso++ | [smop] p6opaque_proto_storage completed! It delegates everything to hashes, arrays and scalars 18:05
18:09 meppl joined 18:11 cognominal_ left
pugs_svn r21494 | pmurias++ | [STD] a script to show changed globals after an STD use 18:16
18:23 justatheory joined, Alias__ left
pugs_svn r21495 | ruoso++ | [smop] p6opaque has the accessors for all its members... 18:29
r21496 | moritz++ | [t] removed redundant test file general/basic.t
18:32 alester left, justatheory left
moritz_ t/oo/can.t looks so wrong to me 18:33
pugs_svn r21497 | ruoso++ | [smop] p6opaque p6 protocode with "is rw" for all the members 18:34
pmurias ruoso: should i add __UNKNOWN__METHOD__? 18:35
ruoso pmurias, yes... that's a good one too...
18:37 justatheory joined
pmurias should i die too? 18:37
ruoso I think so...
the assert interrupts the program too 18:38
you can even make an assert("message") that will always die
18:38 timbunce left
ruoso and it even shows the message 18:38
pmurias assert is supposed to be used for debugging only 18:39
ruoso is it?
moritz_ yes
pugs_svn r21498 | moritz++ | [spec] unfudged two tests for rakudo in for.t
moritz_ with the appropriate compiler options it's optimized away
ruoso hmm... maybe it's a good thing 18:41
because as the lowlevel consolidates, that checkings could be optimized away...
pmurias it's in NDEBUG 18:42
pugs_svn r21499 | moritz++ | [INSTALL] link to instructions on building pugs on cygwin, rurban++
pmurias if NDEBUG in set the get deleted
ruoso pmurias, how is the support for the q:s1p (or however it's called) inside C files? 18:43
pmurias it's use v6
ruoso use v6; and then it ends with the block?
pmurias yes
18:43 justatheory left
pmurias it uses indentation 18:43
ruoso does it include any boilerplate? like the goto, setr and stuff 18:44
pmurias not yet
didn't know what to add
ruoso I think a plain CPS with setr should be ok
like the ones in p6opaque.sm0p...
actually... like the one in p6opaque DISPATCH 18:45
18:45 justatheory joined
ruoso pmurias, p6opaque_message_DISPATCH in p6opaque.sm0p is a good example 18:45
pmurias is it ok to use __func__?
18:46 timbunce joined
ruoso where? what for? 18:46
pmurias error messages
it is c99 and a gnu extension
ruoso that's fine by m
e
18:47 iblechbot left
pugs_svn r21500 | moritz++ | [spec] moved oo/inheritance.t to spec/, and updated it a bit 18:48
ruoso can't stand sm0p blocks any more...
moritz_ that's intentional, right? ;-)
ruoso pmurias, how hard would it be for you to add inline "use v6;" support for the boilerplate in p6opaque_message_DISPATCH? 18:49
so I can rewrite test/14 with v6 instead of sm0p
pugs_svn r21501 | lwall++ | [STD] improve parsing of reduceops 18:50
r21501 | lwall++ | [Cursor] correct character class parse in canmatch
r21501 | lwall++ | [reduce-metaop] no such thing as [.{}]
pmurias ruoso: not very hard i think 18:52
ruoso: is it constant? 18:54
ruoso the boilerplate?
pmurias yes
ruoso I'd say so
I mean... that's not the only possible pattern... but it's a valid one 18:55
pmurias i could either add it to s1p or add a __SM0P__("inline code")? 18:56
ruoso moritz_, I wish I could stand it a little more, because if we make this preprocessor too good, the pressure for real p6 will be smaller 18:57
pmurias, I think you ca nadd it to s1p
pmurias we don't always have a $continuation in the enclosing c code 18:58
18:59 justatheory left
ruoso if we don't, the interpreter have something for which you are going to send it back 18:59
the pattern is, interrupt the current execution, execute something, set the value into the old continuation and get back to it
the interpreter always have something... 19:00
pmurias, btw... the last 5 sm0p statements are part of the boilerplate
and they should fetch the result from the last executed statement 19:01
(which means 1 statement before the boilerplate starts)
pmurias should it be return $expr in p6? 19:02
ruoso hmm...
having explicit return instead of implict might be usefull, because with no explicit return, you would be a plain CPS with no return value...
pmurias++
that's a better approach 19:03
turn the "return $expr" call into the setr thing
then the boilerplate is simply the last two statements
pmurias moritz_: the sm0p's design goal is to represent the nodes it's constructing accuratly not to be a programming language 19:04
pugs_svn r21502 | moritz++ | [spec] S12-class/inheritance.t: fudged for rakudo 19:06
r21502 | moritz++ | also removed newlines in order not to confuse fudge
ruoso wonders if he should wait for the "use v6" trick to work on test/14 or if he should handle sm0p blocks one more time... 19:16
pmurias wait please
rakudo_svn r29727 | moritz++ | [rakudo] add S12-class/ineheritance.t to spectest_regression 19:17
r29727 | moritz++ | +10 pass, +7 todo, +15 skip - still much work for jonathan ;-)
pmurias dosn't want to read any more sm0p blocks
cjfields moritz++
moritz_ cjfields: for anything particular, or just for being me? ;-) 19:18
cjfields for the test commits, of course
moritz_ well, one never knows ;-)
cjfields does jonathan have a rakudo day this week? 19:19
moritz_ friday (aka tomorrow)
but I have no idea what he'll be working on 19:20
ruoso sm0p was usefull but I think I underestimated the limits of our patience...
s/under/over/
pugs_svn r21503 | lwall++ | [STD] infrastructure for grammar-modifying operator definitions 19:21
19:22 m0py left
pugs_svn r21504 | pmurias++ | [s1p] return support 19:24
pmurias now, how to test it 19:25
ruoso test/14 19:26
we have to replace the two sm0p blocks
pmurias put the perl6 in a comment i'll try to make it work 19:27
ruoso alriht 19:28
19:29 timbunce left
pugs_svn r21505 | moritz++ | [spec] moved oo/roles/basic.t to spec/, heavily reworked and many eval()s 19:30
r21505 | moritz++ | removed
r21506 | ruoso++ | [smop] fix the order in fprintf for ___UNKNOWN_METHOD___
r21507 | moritz++ | [spec] S12-role/basic.t: fixed POD 19:31
ruoso pmurias, does "use v6" support variables?
pmurias c variables 19:32
$*global.STORE(123) should work
ruoso $*global being in the global namespace
but if I need the return of an expression as the argument of another, I need to do it inline, right? 19:33
19:33 timbunce joined
pmurias yes 19:34
we don't have lexical pads yet
pugs_svn r21508 | moritz++ | [spec] S12-role/basic.t: use defined() to test for objects of empty classes 19:36
pmurias ruoso: the problem with declaring invocant in INVOCANT_RI_SHOULD_MATCH is that usually i want a more specific type than SMOP__Object* (if i know it) 19:38
pugs_svn r21509 | ruoso++ | [smop] add v6 blocks for pmurias++ to make it work :)
ruoso pmurias, then you can cast it without doing an additional call to the capture
pugs_svn r21510 | moritz++ | [spec] moved var/is_copy.t to spec/ 19:39
19:41 timbunce left
ruoso pmurias, are the blocks sane? 19:41
pugs_svn r21511 | moritz++ | [spec] moved var/is_rw.t to spec/ 19:42
r21512 | moritz++ | [spec] S06-traits/is-rw.t: added smartlink, fudged for rakudo 19:46
pmurias ruoso: looking 19:47
pugs_svn r21513 | ruoso++ | [smop] making it compile (use v6 is commented out) 19:48
pmurias gives on extending STD_red and hacks around 19:54
rakudo_svn r29728 | moritz++ | [rakudo] two more S06 tests for spectest_regression 19:57
r29728 | moritz++ | +6 pass, +3 skip
20:06 cjfields left 20:17 pmurias left 20:18 pmurias joined
pmurias ruoso: test 14 is supposed to fail? 20:18
ruoso pmurias, depends on the failure
(it actually depends how much of hash is implemented already)
pmurias, you can commit it even broken... 20:19
so I can help fixing ;)
pmurias ok
pugs_svn r21514 | pmurias++ | .^! added to elfX and STD_red 20:20
pmurias we could have a hackathon at yapc europe ;) 20:21
ruoso not going :(
pmurias :(
ruoso can take part of the hackathon remotely
;)
pmurias ruoso: so your talk will be canceled? 20:23
ruoso unless someone is willing to pay for my travel tickets...
pmurias, does it compile for you? 20:24
20:24 iblechbot joined
pmurias ruoso: no 20:24
a continuation is needed 20:25
ruoso oh.. ok...
I'll add the boilerplate around it then
pmurias it could be added to sm0p.pl if it's constant 20:26
ruoso pmurias, maybe it's ok to make it outside... 20:27
pmurias speaking of boilerplate, i added a perl example to the wikipedia boilerplate page
ruoso which is the perl boilerplate?
pmurias #!/usr/bin/perl
use strict;
use warnings;
ruoso ah.. :) 20:28
20:28 REPLeffect left
pugs_svn r21515 | ruoso++ | [smop] add the continuation boilerplate in test/14; 20:29
ruoso now we have a bad invocant somewhere
pugs_svn r21516 | ruoso++ | [smop] add a help message in p6opaque 20:32
20:32 Alias_ joined
ruoso pmurias, .^!how is being invoked with the responder interface as the invocant 20:32
20:33 sri_work joined, timbunce joined
pmurias ruoso: i get a FETCH is not implemented in bool error at the top 20:33
ruoso isn't that just after [smop p6opaque] REPR method called with p6opaque RI (^!how) 20:34
because the .^!how method is failing...
pugs_svn r21517 | ruoso++ | [smop] added a "abort()" call to make the error more explicit 20:36
ruoso pmurias, what I don't get is what is the difference between the .^!methods call and the .^!how call
in the "use v6" block
oh... 20:39
the error is deeper inside
20:41 donaldh joined
pmurias if it's not in s1p i'll just & 20:41
20:50 REPLeffect joined
ruoso pmurias, .^!CREATE is taking the '.' as part of the identifier 20:57
it should only be '^!CREATE', not '.^!CREATE'
20:57 jferrero joined
pmurias ruoso: fixing 20:59
pugs_svn r21518 | ruoso++ | [smop] some fixes in p6opaque 21:01
21:02 Alias_ left 21:05 icwiener joined, wknight8111 joined
pmurias fixed 21:06
pugs_svn r21519 | pmurias++ | [s1p] fixed .^!
pmurias ruoso: anything else you think is a s1p problem? 21:10
ruoso pmurias, I don't think so...
I'm actually very near of having test/14 passing
pmurias, do you have the forget call in the boilerplate? 21:11
pmurias yes 21:13
if you uncomment a line in sm0p.pl you can see the sm0p code 21:14
21:14 nothingmuch left
pugs_svn r21520 | ruoso++ | [smop] test/14 almost passing... for some reason the frame is being destroyed too late... 21:14
ruoso the last thing to figure out now is why 'ok 7' is being printed before it should... 21:15
pmurias, I have to go... 21:16
pmurias np, i should be going to sleep ASAP ;)
ruoso eating crabs & 21:17
21:17 ruoso left
pugs_svn r21521 | lwall++ | remove accidental non-breakable spaces 21:18
21:19 pmurias left, nothingmuch joined 21:23 TJCRI left 21:29 justatheory joined 21:35 timbunce left 21:36 iblechbot left 21:39 justatheory left 21:42 cjfields joined 21:43 justatheory joined 21:51 timbunce joined
pugs_svn r21522 | moritz++ | updated SLAVES 22:00
22:04 bacek joined 22:07 Limbic_Region joined, cjfields left 22:10 masak left 22:12 cmarcelo left 22:14 cmarcelo joined 22:15 Alias_ joined 22:21 _timbunce joined 22:23 _timbunce left 22:24 _timbunce joined 22:26 justatheory left 22:29 timbunce left 22:34 Alias__ joined, Alias_ left 22:40 donaldh left 22:47 _timbunce left 22:48 _timbunce joined 22:52 bacek left 22:56 icwiener_ joined 22:58 meppl left 23:01 meppl joined 23:10 icwiener left 23:12 _timbunce left, Exodist left 23:25 justatheory joined 23:36 justatheory left, cmarcelo left, bacek joined 23:40 alester joined 23:41 timbunce joined 23:59 justatheory joined