Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by stevan on 15 August 2005. |
|||
putter notes in the interest of full disclosure that he's been avoiding getting a cpan id since, well, their inception, so it's unlikely to occur rsn. :/ | 00:01 | ||
theorbtwo | Putter: Why avoid it? | 00:05 | |
putter | the authorship/responsibility model is, I won't say broken, how about incompatible with some patterns of use. there is no mechanism to create something, and then say "here, this exists, maintain it collectively if you wish, but I, the original author am completely out of it". | 00:10 | |
wilx | Hmm... | 00:16 | |
True. | |||
XML::RSS could use that model. | 00:17 | ||
The original author hasn't touched it for quite some time even though it has many reported bugs. And there is no way how to push users' fixes into it, so everybody is left to maintain his/her own local version. | 00:19 | ||
putter | yes. and I have patched versions of long broken cpan modules on my web site, but they are on the web site rather than cpan for exactly the same reason that the original has been long broken. | 00:20 | |
perhaps if there were a concept of collective authors, a committee owning some package, so abandoned packages could be taken over by the committee, with say a policy of "if you send a working patch, we will get to it before too many months have passed". | 00:24 | ||
wilx | Yeah. | ||
putter | good night all & | 00:36 | |
f0rth__ | t[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[ | 00:50 | |
svnbot6 | r6318 | fglock++ | * perl5/ Value - added boxed type: List | 03:25 | |
r6318 | fglock++ | (lazy, non-lazy, infinite); tests | |||
fglock_ | It would be nice to have a minimal Perl6->Perl5 compiler in order to run perl6-Test::More | 03:30 | |
autrijus | oooh | 04:11 | |
svnbot6 | r6319 | Stevan++ | Perl6::MetaModel 2.0 - | ||
r6319 | Stevan++ | * chaos.pl is largely complete now, it is all the | |||
r6319 | Stevan++ | basic elements needed to construct the meta-model | |||
r6319 | Stevan++ | * gnosis.pl is also largely complete from here we | |||
r6319 | Stevan++ | can construct the $::Class as an instance of itself | |||
r6319 | Stevan++ | * many tests written as well, +90% coverage on all | |||
autrijus | shiny new rt.openfoundry.org is online | ||
svnbot6 | r6319 | Stevan++ | aspects of the code which are currently utilized | ||
autrijus | gugod++ | ||
svnbot6 | r6319 | Stevan++ | (some things are not used by the model) | ||
autrijus | tcliou++ | 04:12 | |
LCamel++ | |||
obra | 'evening | ||
autrijus | obra: hi | 04:13 | |
obra | How's it going? | 04:14 | |
autrijus | just woke up | ||
Aankhen`` | Heh. | 04:37 | |
nothingmuch got to the P::V thread before I did. | 04:38 | ||
QtPlatypus | Has anyone seen cog.cognitivity.com/perl6/ it seems full of inaccurate infomation. | 06:06 | |
svnbot6 | r6320 | Stevan++ | Perl6::MetaModel 2.0 - | 06:18 | |
r6320 | Stevan++ | * metamorph is done except for attributes | |||
r6320 | Stevan++ | - many new tests for this code | |||
r6320 | Stevan++ | * added the original version of the mini-meta-model | |||
r6320 | Stevan++ | that this code was based upon, mostly it is just | |||
r6320 | Stevan++ | here as reference | |||
Khisanth | QtPlatypus: well the copyright is 2002 | 06:34 | |
svnbot6 | r6321 | putter++ | Gets PIL-Run again able to 'say 3', now with -CPerl5. | ||
putter | fglock_: ping? | 06:48 | |
nothingmuch | morning | 06:50 | |
xinming | lol. here is at noon. :-) | 06:52 | |
nothingmuch: good afternoon maybe. ;-) | |||
nothingmuch | xinming: somewhere it's morning, so i usually say "morning", i like that word best | ||
sometimes i may say "evening", and almost never "good localtime" | 06:53 | ||
but i'm well aware that my time zone is a minority | |||
putter | nothingmuch: morning. here too almost - soo time to sleep. woobling smoke ran :), but p6 t/rules still all red :( | ||
nothingmuch | also, since most hackers' sleep cycles are completely screwed up, it doesn't really matter what you say | ||
putter: i'll look into it when I get back from work, or around my lunch hour or something | |||
putter | np. thanks. | 06:54 | |
good second-moon-rising. | |||
nothingmuch | putter: sleep well! | ||
xinming | Ok, Now, Would anyone help me finish the job I haven't done yesterday? | 07:00 | |
putter | thanks. :) | ||
xinming | I didn't write a test for pugs. | ||
I wish to finish it. As at least, I learnt svn a bit. ;-) | |||
?eval bool::true < 1 | 07:05 | ||
evalbot6 | bool::false | ||
xinming | ?eval bool::true > 1 | ||
evalbot6 | bool::false | ||
xinming | ?eval bool::false > 1 | ||
evalbot6 | bool::false | ||
xinming | ?eval bool::true > 1 | ||
evalbot6 | bool::false | ||
xinming | ?eval bool::false > 1 | ||
evalbot6 | bool::false | ||
xinming | ?eval true( 100 ) > 1 | ||
evalbot6 | bool::false | ||
xinming | ?eval true( 100 ) == 1 | ||
evalbot6 | bool::true | ||
xinming | ?eval true( 100 ) < 5 | 07:06 | |
evalbot6 | bool::true | ||
xinming | ?eval bool::true < 5 | ||
evalbot6 | bool::true | ||
putter | btw, there is a p6 article on slashdot. | ||
xinming | ?eval 3 < 1 < 5 | ||
evalbot6 | bool::false | ||
xinming | putter: please give me the url | 07:07 | |
?eval bool::true < 5 | |||
evalbot6 | bool::true | ||
xinming | ?eval bool::false < 5 | ||
evalbot6 | bool::true | ||
putter | books.slashdot.org/article.pl?sid=0...&tid=6 | 07:08 | |
fglock_: re"It would be nice to have a minimal Perl6->Perl5 compiler in order to run perl6-Test::More", perl5/PIL-Run is now attempting to use Perl6-Value. :) command line in perl5/PIL-Run/TODO. cheers. | 07:10 | ||
svnbot6 | r6322 | putter++ | Beginning of PIL-Run migration to Perl6-Value and Perl6-MetaModel. So it's broken again. 'say 3' on crude_repl.pl (the full command is in TODO) currently fails with Value/MetaModel errors. | 07:11 | |
putter | fglock_++ for saying "it would be nice to have" :) | 07:12 | |
end of day for me. | |||
good night all & | 07:13 | ||
xinming: oh, sorry, missed your request. copy an existing test .t file, replace the description and body with your new test(s), adjust the test count. ./pugs -Iblib6/lib t/mumble.t will run your new test. svn add t/mumble.t; ./util/add-svn-props.sh t/mumble.t; svn diff; svn ci -m"your log entry" | 07:19 | ||
oh, you may still have to run make test , just until the first tests start running, for ./pugs -Iblib6/lib t/mumble.t to work. | 07:20 | ||
questions? | 07:21 | ||
xinming | putter: hm, thanks, no questions, But just something to do for now. ;-) | ||
putter | ok. svn co svn.openfoundry.org/pugs/ if you dont already have it of course. | 07:22 | |
good night. | |||
08:41
kgftr|ko1obi is now known as kgftr|konobi
|
|||
xinming | anyone here in debian? | 10:35 | |
10:58
Aankh|Clone is now known as Aankhen``
|
|||
autrijus | rehi :) | 11:10 | |
xinming: tried haskell-unsafe yet? | |||
xinming | autrijus: hmm, to be honest, I tried. Yesterday, I tried to install ghc6 in debian and upgrade my system into unstable. and the problem is out. It still said it's version GHC 6.2.x.y.z... | 11:13 | |
autrijus: So, I try to compile my self. using the version 6.4.1.{time} | 11:14 | ||
and it said, can't find the openal lib... ouch... | |||
hmm, but now, i installed the ghc6.4. might work for now. thanks for your attention. ;-) | |||
autrijus | cool :) | ||
xinming | by the way, how much ram did you get for your computer? | 11:17 | |
autrijus: 512M or 1G? | |||
autrijus | xinming: 768m | 11:20 | |
xinming | maybe that's just enough for compiling haskell. | 11:21 | |
I got 512M ram, But still swaping heavily. | |||
autrijus | nod | 11:24 | |
xinming | by the way, How to remove the pugs I ever installed from CPAN? | 11:33 | |
go supper. bbl | 11:37 | ||
11:41
oussama is now known as foxmjay
11:42
wilx` is now known as wilx
|
|||
xinming | ?eval class T { my $.a = 1; }; my T $o .= new; $o.a(); | 11:49 | |
evalbot6 | Error: No compatible subroutine found: "&a" | ||
xinming | ?eval class T { has $.a; }; my T $o .= new; $o.a(); | ||
evalbot6 | \undef | ||
xinming | hmm, the accessor function should be generated... wether declared by my or has | 11:50 | |
by the way, when might the hyper operator supported be added? | 11:53 | ||
nothingmuch needs a cloaking device | |||
i've worked for around 2 hours today, including context switches | |||
the rest was also work | |||
but the "please come help" variety | 11:54 | ||
or "Can you explain this to me", or "*knock* *knock* [on window] - please open the door, the intercom isn't working" | |||
xinming | iblechbot: seen iblechbot | 11:58 | |
jabbot | xinming: I havn't seen iblechbot, xinming | ||
xinming | iblechbot: seen iblech | ||
jabbot | xinming: iblech was seen 12 hours 28 minutes 11 seconds ago | ||
xinming | jabbot: seen xinming | 11:59 | |
jabbot | xinming: xinming was seen 19 seconds ago | ||
xinming | anyone here free? | 13:00 | |
need some help. | |||
theorbtwo | xinming: In general, don't bother asking to ask -- just ask. | 13:01 | |
xinming | theorbtwo: Could you please guide me step by step to write a test? | 13:07 | |
kolibrie | xinming: a whole test file, or a single test within a file? | 13:08 | |
xinming | someone "putter" ever taught me. But not so clear, as I didn't do write the test that time, No ghc and pugs installed. hm, Now I will to try | ||
whole test file | |||
#!/usr/bin/pugs | 13:09 | ||
use v6; | |||
use Test; | |||
plan 1; | |||
I know these are the lines for "header" :-) | |||
kolibrie | start by finding another test file, and copy it, then delete out all the stuff at the bottom | ||
theorbtwo | Right. Now, what is it you are trying to test? | ||
xinming | theorbtwo: Yeap. | ||
class T | 13:11 | ||
{ | |||
method a | |||
{ | |||
'test a'; | |||
} | |||
} | |||
my T $o .= new; | |||
$o.a(); | |||
a $o:; | |||
a $o; | |||
these are the contents for the test. | |||
hmm, which one ever fixed. | |||
But, the test file hadn't been written | 13:12 | ||
kolibrie | so then you need to decide which values need to be the same and test with 'is' | ||
theorbtwo | OK, put that all in the text file, after the "plan 1" line. | 13:13 | |
kolibrie | is($actual, $expected, $description); | ||
xinming | theorbtwo: I've down that. | ||
kolibrie: hold on please. | |||
theorbtwo | Now, put an ok("Still alive after new"); after that my T $o .= new; | ||
Change those calls to a to read is($o.a(), 'test a', 'dot call'), etc. | 13:14 | ||
It's is(<thing being tested>, <what it should return>, <name of test>). | |||
Then fix the plan line to give the right number of tests -- four, by my count. | |||
xinming | !/usr/bin/pugs | 13:18 | |
use v6; | |||
use Test; | |||
plan 4; | |||
class T | |||
{ | |||
method a | |||
{ | |||
'test'; | |||
} | |||
} | |||
my T $o .= new; | |||
ok( "Still alive after new" ); | |||
is( $o.a(), 'test', "The original method call form" ); | |||
is( a $o:, 'test', "The indirect object notation call with arguments" ); | |||
is( (a $o), 'test', "The indirect object notation call without arguments" ); | |||
then, This is the right form, thanks. ;-) | |||
fglock | putter: ping timed out :) | 13:19 | |
kolibrie | xinming: now you should be able to run the test: ./pugs testfile.t | 13:20 | |
xinming | kolibrie: yeap | 13:21 | |
kolibrie | xinming: you may also want to add notes as to where the syntax is documented | 13:22 | |
theorbtwo | Looks good to me too. | ||
(I'd add some newlines.) | |||
kolibrie | see t/operators/binding.t for an example | ||
and t/README | |||
13:37
wilx` is now known as wilx
|
|||
xinming | so, anyone here would check my "homework" if I did right? | 13:46 | |
;-) | |||
svnbot6 | r6323 | yiyihu++ | Add test for class method indirect notation. | ||
fglock | re bool::true and bool::false - A12 says they are subtypes of Int - should stringify to 1 and 0 then? | 13:47 | |
xinming | fglock: I think they are. | 13:48 | |
autrijus | er no | 13:49 | |
they are subtypes of bit | |||
not Int. | |||
and they, like, perl5, stringify to '1' and '' respectively -- at least for this week | |||
fglock | oops - bit, sorry | 13:50 | |
which means they are unboxed | 13:51 | ||
autrijus | aye. | ||
theorbtwo wonders... | 13:53 | ||
The only time I stringify true and false is when doing quick and dirty debugging prints. | |||
Is that true of other people too? | |||
fglock | if I pointed a Ref to a Scalar, the Ref would point to the cell or to the Scalar? (what happens if the Scalar is rebind) | ||
kolibrie | xinming: in the kwid, the link should be L<S12/"Method"> # explanation here | 13:54 | |
fglock | theorbtwo: I wished false stringified to 0 | ||
theorbtwo | So do I. | ||
fglock | so I could see it while debugging | 13:55 | |
kolibrie | xinming: or at least not have double angle brackets (<) | ||
theorbtwo | Nothing showing up tends to be confusing, and gives an undef-in-concat warning. | ||
fglock | theorbtwo: false is an empty string - not undef (I believe) | 13:56 | |
kolibrie | xinming: or maybe I'm just confused | ||
xinming | kolibrie: hmm, I read the t/README And follow the example ;-) | 13:57 | |
fglock | ?eval my $x=5; my $y=\$x; my $z=4; $x:=$z; say $x; say $y; | 13:58 | |
evalbot6 | 4 5 bool::true | ||
kolibrie | xinming: I see the example you followed - never saw that syntax before three minutes ago | ||
xinming | kolibrie: :-) | ||
fglock | so Ref refers to the cell? or \$x was dereferenced? | 13:59 | |
theorbtwo | ?eval my $x=5; my $y=\$x; my $z=4; $x:=$z; [$x, $y]; | 14:00 | |
evalbot6 | [4, 5] | ||
autrijus | fglock: Ref refers to the container. | ||
fglock: the current semantic, namely deref even in scalar context, is wrong. | |||
s/semantic/pugs implementation/ | |||
theorbtwo | Oh, autrijus: | 14:01 | |
?eval 1 ~~ bool::true | |||
evalbot6 | bool::true | ||
theorbtwo | ?eval 3 ~~ bool::true | ||
evalbot6 | bool::false | ||
theorbtwo | Bug or feature? | ||
svnbot6 | r6324 | autrijus++ | * make the use of ::SELF and ::CLASS explicit in Perl6::Value to | 14:02 | |
r6324 | autrijus++ | pass use strict. | |||
fglock | "bit" has bool context (maybe) | ||
thanks autrijus | 14:05 | ||
xinming | ?eval (1, 4, 66) >>+<< (1,2,3) | ||
evalbot6 | (2, 6, 69) | ||
xinming | ?eval (1, 4, 66) >>-<< 1; | ||
evalbot6 | (0, 3, 65) | ||
autrijus | woot, I repaired crude_repl! | 14:20 | |
theorbtwo: I think it's feature | 14:21 | ||
theorbtwo: since both end stringify | |||
theorbtwo: but smartmatch against an enum is iirc not specced. I may be wrong | |||
dada | ?eval ?3 ~~ bool::true | 14:24 | |
evalbot6 | bool::true | ||
dada | ?eval ~bool::true | 14:25 | |
evalbot6 | '1' | ||
svnbot6 | r6325 | autrijus++ | * crude_repl: `say 1+1` works properly. | 14:28 | |
autrijus | actually, "say((say 1+1) + (say 1+1))" works too | 14:29 | |
fill in some of pugs/perl5/PIL-Run/lib/PIL/Run/PrimP5.pm | |||
and we'll have an exciting perl6-compiled-to-perl5 runtime | |||
fglock | cool | 14:30 | |
autrijus | fglock++ stevan++ putter++ # did all the hard work :D | 14:31 | |
fglock | "substr" is a Str method, or a primitive, or both (boxed/unboxed versions of the same thing)? | 14:32 | |
autrijus | substr is a multisub that can take str or Str. | 14:34 | |
svnbot6 | r6326 | fglock++ | * perl5/ Value - bool::true is unboxed, stringifies as "bit" | ||
fglock | so I don't have to implement it in the Sub class | ||
Sub => Str | 14:35 | ||
autrijus | no, you don't | ||
the idea of multis is exactly that we can add method-like things outside classes | |||
and hopefully escaping the OO hell | |||
fglock | how about map, grep? if I can remove these things from Value.pm, then it's done :) | 14:36 | |
xinming | class C1 { has $.a; has $:b; }; my C1 $o .= new; is( $o.a(), undef, "testing the value for public accessor declared by has" ); | ||
hmm, how should I write the test for test the "non exist accessor" $o.b() ? | |||
autrijus | fglock: map and grep are multis too | ||
xinming: fails_ok | |||
xinming | autrijus: by the way, It seems that if I use perldoc Test | 14:37 | |
I can get the Test module correctly. | |||
autrijus | xinming: that's perl5 Test :) | ||
xinming | the document are wrong totally. | ||
autrijus | not the p6 one | ||
xinming | autrijus: I knew that. | 14:38 | |
autrijus | yeah, we need perldoc6 ;) | ||
or p6doc | |||
xinming | No compatible subroutine found: "&fails_ok" | 14:39 | |
autrijus | er, dies_ok | ||
xinming | .... | 14:40 | |
fglock | so the only real problem in Value.pm is to clean up the "Ref auto-deref" hack | 14:41 | |
which needs AUTOLOAD I think | 14:42 | ||
xinming | if the feature hasn't been finished yet, How can I write the test for it? | 14:47 | |
hmm, I mean the feature hasn't been supported. | |||
just like | |||
?eval class C1 { has $.a = 1;}; | 14:48 | ||
evalbot6 | Error: unexpected "=" expecting trait, "handles", ";" or "}" | ||
autrijus ponders visiting .jp to work with sasada-san | 14:49 | ||
xinming is hungry for the answer ~~~ | 14:51 | ||
autrijus | oh | ||
sorry | |||
?eval eval 'class C1 { has $.a = 1;};' | |||
evalbot6 | undef | ||
autrijus | ?eval eval 'class C1 { has $.a = 1;}; 1' | ||
evalbot6 | undef | ||
autrijus | and then you can test ok() | ||
see t/README | 14:52 | ||
xinming | I've read it, But the problem is. | ||
after the eval_ok, I can't get the class name | 14:53 | ||
autrijus | so put that in eval too | ||
xinming | oh,ok, I understand | 14:54 | |
autrijus | hm, I can't find a copy of YARV 0.3.0. sigh | 14:57 | |
svnbot6 | r6327 | fglock++ | * perl5/ 'List' clean up - removed 'multisub' methods | 15:06 | |
xinming | ?eval class C { my $.a; }; $.a = 1; | 15:08 | |
evalbot6 | Error: Undeclared variable: "$?SELF" | ||
xinming | oops | ||
?eval class C { my $.a; }; my C $o .=new ; $o.a(); | |||
evalbot6 | Error: No compatible subroutine found: "&a" | ||
autrijus | xinming: yes, another todo bug | 15:09 | |
xinming | I am still considering. If I need to write several classes for testing the attribute or a big class. :-) | 15:10 | |
Now, The attribute.t is almost done. | |||
autrijus | xinming++ | ||
xinming | but a bit ugly maybe. :-) | ||
I will. | |||
svnbot6 | r6325 | autrijus++ | * crude_repl: `say 1+1` works properly. | 15:18 | |
r6326 | fglock++ | * perl5/ Value - bool::true is unboxed, stringifies as "bit" | |||
r6327 | fglock++ | * perl5/ 'List' clean up - removed 'multisub' methods | |||
r6328 | yiyihu++ | Attribute test added. But for now, Just test the auto generated accessor. | 15:23 | ||
r6329 | fglock++ | * perl5/ Value - updated TODO, docs, tests | |||
xinming | by the way, is there any editor now can highlight perl 6 syntax? :-) | 15:27 | |
theorbtwo | There's a vi syntax file in scripts, IIRC. | ||
xinming | It's a pain to use emacs without syntax highlighting. | ||
theorbtwo | Yeah, my perl syntax hilighting got broken somehow, and it's a big PITA. | ||
autrijus | ?eval my $a = $a / 2 * BEGIN { $a = 10 }; | 15:31 | |
evalbot6 | pugs: *** Undeclared variable: "$a" at <eval> line 1, column 26-34 | ||
autrijus | hm, broken. | ||
?eval my $a; $a = $a / 2 * BEGIN { $a = 10 }; | 15:32 | ||
evalbot6 | \50 | ||
autrijus | good. | ||
xinming | autrijus: can the test file use if or for such blocks? | 15:35 | |
autrijus | sure | ||
xinming | autrijus: Ok,then, I will shorten my test file. I just thought, We have to use the minimal grammer in perl. | 15:36 | |
autrijus | no, it's okay to use other features :) | 15:37 | |
leo_ | autrijus: thanks for your comments on p6i | 16:02 | |
autrijus | hey leo :) | ||
leo_ | hey autrijus | ||
autrijus | sorry, the $a was out of scope in my example | 16:03 | |
but the basic idea is the same as with p5 | |||
?eval say { my $a; $a /= 2; BEGIN { $a = 10 }; $a } | |||
evalbot6 | <SubBlock(<anon>)> bool::true | ||
leo_ | I thought so :-) | ||
autrijus | ?eval say do { my $a; $a /= 2; BEGIN { $a = 10 }; $a } | ||
evalbot6 | Error: Undeclared variable: "$a" | ||
autrijus | heh | ||
?eval my $a; $a /= 2; BEGIN { $a = 10 }; say $a | |||
evalbot6 | 5 bool::true | ||
autrijus | better. | ||
leo_ | yep | 16:04 | |
autrijus | the main thing I'm trying to ask is how BEGIN can remember its lexical context | ||
my $a { my $b; BEGIN { $a = { say $b++ } } }; | |||
leo_ | hmm | 16:05 | |
svnbot6 | r6330 | iblech++ | * Usual svn props. | ||
r6330 | iblech++ | * PIL2JS: JSAN integration. | |||
r6330 | iblech++ | "use jsan:Number.Roman <to_roman>; say to_roman 42" works. | |||
r6330 | iblech++ | * PIL2JS.js: .arity works on functions returned by native JS functions now. | |||
r6330 | iblech++ | * Prelude::JS::JSAN: Added comments and | |||
r6330 | iblech++ | &PIL2JS::Internals::use_jsan_module_noimp. | |||
r6330 | iblech++ | * See the updated README for info about how the integration works and a small | |||
r6330 | iblech++ | usage example. | |||
Aankhen`` | O_O | 16:06 | |
autrijus | iblech++ | ||
leo_: currently the compiler is maintaining a runtime environment itself too | 16:07 | ||
in pugs | |||
which is distinct from the target runtime | |||
so you may cross-compile to, say, PIR, but the compiler itself is running in perl5 | 16:08 | ||
leo_ | bbl - feeding dogs | 16:11 | |
autrijus | now I need to make "use perl5:DBI" work in crude repl :) | ||
xinming | ?eval class X { has $:x; method init_x { $:x = 100 }; method get_x { $:x };}; X.new.get_x; | 16:19 | |
evalbot6 | \undef | ||
xinming | ?eval class X { has $:x; method init_x { $:x = 100 }; method get_x { .init_x(); $:x };}; X.new.get_x; | 16:20 | |
evalbot6 | \100 | ||
fglock moves attention to crude_repl.pl - will try lazy lists | 16:28 | ||
leo_ | autrijus: the question is probably how dynamic the lexical context is | ||
fglock thinks %h=1..Inf should be a lazy hash | 16:31 | ||
autrijus | fglock: I can't think of many uses of a lazy hash. | 16:32 | |
a lazy hash is called a function. | |||
leo_: if it helps, every 'my' declaration can only occur once in a closure | 16:33 | ||
with the same name, that is | |||
and they are hoisted to the top | |||
but still, BEGIN need to remember that. | 16:34 | ||
leo_ | so it seems that the scheme I've described in the mail should work | ||
fglock TODO: find uses for lazy hash | 16:35 | ||
autrijus | fglock: a lazy hash is really what a function is... :) | ||
theorbtwo | Well, a unary function. | 16:36 | |
autrijus | er, a hash can be shaped with multikey | ||
fglock | so why not? you can use a lazy hash wherever you use a function | 16:37 | |
autrijus | fglock: well, a lazy hash is the & sigil | ||
and a strict hash is the % sigil | |||
theorbtwo | G'point, autrijus, forgot about that. | 16:38 | |
fglock | where "tie" is going to be implemented? (Value/Scalar.pm ?) | 16:40 | |
I mean Container/Scalar.pm | |||
hi stevan | |||
stevan | hey fglock | ||
fglock | stevan: is it possible to AUTOLOAD methods in MetaModel 1 ? | 16:41 | |
stevan | fglock: not right now | ||
but I think it could be made to do so | |||
fglock | maybe using Perl5 AUTOLOAD, and then creating methods using the metamodel | 16:42 | |
I'm trying to find out how to dispatch method calls from Ref to the referred object | 16:43 | ||
stevan | fglock: I think if WALKMETH were to check for an 'AUTOLOAD' method | ||
spinclad | seem to me a lazy hash would be a memoized function | 16:44 | |
stevan | and to always use that by default | ||
this would produce the desired result | |||
fglock | stevan: do you mind if I try to implement a basic AUTOLOAD? | 16:46 | |
stevan | fglock: I am testing something right now | ||
fglock | cool | 16:47 | |
stevan | however, always feel free to hack into the metamodel | ||
my code is your code :) | |||
fglock | :) | ||
stevan | fglock: I am going to try to make the Metamodel 2.0 be mostly backwards compatible | 16:48 | |
however, it will have proper class object, so that will be one big change | |||
16:49
Maddingue__ is now known as Maddingue
|
|||
fglock | crude_repl.pl 'say 1' - got "Odd number of elements in hash assignment at ../Perl6-MetaModel/lib/Perl6/Object.pm line 36" | 16:55 | |
autrijus | fglock: hm, weird I fixed that | 16:59 | |
svnbot6 | r6331 | putter++ | hack.pod: Added editing advice: perl6.vim, and perl-mode works better than cperl-mode. | 17:00 | |
fglock | I'll do an update | ||
works - thanks! | 17:01 | ||
autrijus | fglock: tie is a scalar method yes. | ||
fglock | autrijus: it stores an object ref in the container, and then dispatch fetch, store, etc to it? | 17:02 | |
autrijus | yes. | 17:03 | |
(it's rather in the cell level) | |||
because you only get that with a "is Tieable" cell | 17:04 | ||
and you can rebind tieableness away | |||
again look at the picture :) | |||
svnbot6 | r6332 | autrijus++ | * shut off uninitialized warnings in numifying values | 17:06 | |
fglock | (looking at the picture) the Scalar id is a cell thing - I must correct this | 17:09 | |
each Array/Hash element have it's own cell? which means I can do ' $a[10] := $x ' | 17:10 | ||
autrijus | yup | 17:12 | |
each Array element is essentially its own scalar container. | |||
that's specced quite clearly | 17:13 | ||
ooh, new exists($a) semantics. (testing whether a container is currently bound to a cell) | 17:15 | ||
svnbot6 | r6333 | putter++ | PIL-Run minor fixes. | 17:20 | |
r6333 | putter++ | crude_repl.pl: debug and return values now print correctly. | |||
r6333 | putter++ | TODO: updated invocation example. autrijus++ | |||
r6333 | putter++ | PrimP5.pm: minor refactoring. | 17:21 | ||
r6334 | putter++ | PIL-Run/TODO: Update, removing obsolete items. | |||
putter | hi folks. | ||
Aankhen`` | Hiya. | ||
fglock | hi putter | ||
cells are tieable by default? | |||
and mutable | 17:22 | ||
stevan | fglock: do you need AUTOLOAD for class methods? or just instance methods? | ||
fglock | stevan: only instance methods | ||
stevan | fglock: good, because it is problematic for class methods | 17:23 | |
xinming | ?eval my $classref = class { has $.x; has $.y; }; | 17:24 | |
evalbot6 | Error: No compatible subroutine found: "&class" | ||
xinming | :-S | ||
hmm, will this be allowed in perl 6? | 17:25 | ||
autrijus | fglock: no, nontieable by default | ||
fglock: and mutable by default | |||
the immutable cells are typically constructed via | |||
promotion from values | |||
my $x := 3; | |||
fglock | values have cells? what if I tied an Array - does it have a base cell that will be tied? sorry for the confusion | 17:28 | |
svnbot6 | r6335 | putter++ | Delete obsolete throwaway perl5/PIL-Run/lib/PIL/Run/Type/Num.pm and Str.pm. | ||
xinming | ?eval (has) | 17:31 | |
evalbot6 | Error: No compatible subroutine found: "&has" | ||
xinming | ?eval qw(has) | ||
evalbot6 | 'has' | ||
xinming | ?eval (my) | 17:32 | |
evalbot6 | Error: No compatible subroutine found: "&my" | ||
xinming | ?eval (my $a) | ||
evalbot6 | Error: Undeclared variable: "$a" | ||
autrijus | fglock: an array cell holds pointers to a number of scalar containers | 17:37 | |
fglock: and optionally a tied object. | |||
iblech: 'sub foo' hoisting is OK'ed by larry | 17:46 | ||
stevan | fglock: r6337 has full AUTOLOAD support | ||
autrijus | it's looking better and better :) | ||
svnbot6 | r6336 | putter++ | ApiX.pm: p6_to_X no longer take or return multiple values. 'say 1 + 2' now works. | ||
r6337 | Stevan++ | Perl6::MetaModel 1.0 - | |||
r6337 | Stevan++ | * AUTOLOAD implemented for fglock++ | |||
r6337 | Stevan++ | - added test file for this | |||
stevan | fglock: it works, for the most part, like perl 5 AUTOLOAD | ||
except you have to call AUTOLOAD($self) to get the method label | 17:47 | ||
autrijus | that means we can do away with the need for native runtime supprot for strange foo like | ||
(?$a = 3) := foo() | |||
which is strange foo indeed | |||
fglock | thanks stevan! | ||
stevan | fglock: no problem :) | ||
fglock: see the t/14_AUTOLOAD.t file for examples | 17:49 | ||
stevan goes back to $work | |||
fglock | team work++ | 17:50 | |
xinming | autrijus: is for allowed in eval_ok? | 17:52 | |
svnbot6 | r6338 | fglock++ | * perl5/ Scalar - cell .id, half-baked tie interface | ||
r6339 | putter++ | STATUS: tweak Rules section. | |||
17:52
wilx` is now known as wilx
|
|||
svnbot6 | r6340 | putter++ | EvalX.pm: Added PStmt. 'say 3;say 4' works. | 18:01 | |
fglock | stevan++ I've got Ref working with AUTOLOAD | 18:03 | |
autrijus | xinming: sure, but avoid eval_ok if you can | 18:06 | |
xinming: lives_ok {} | 18:07 | ||
xinming: ok | |||
ok(eval'') | |||
is both better | |||
because eval_ok can't see 'my' variables | |||
xinming | autrijus: hmm, Are you free for now? | 18:11 | |
hmm, maybe not, I will try myself, | |||
bbl. | |||
svnbot6 | r6341 | fglock++ | * perl5/ Value - Ref uses AUTOLOAD to auto-dereference | 18:12 | |
autrijus | sorry, I was distracted by accidentally stumbing upon www.my-ebooks.net | 18:16 | |
xinming | ?eval eval 'class C { has $:b; method { $:b }; }; my C $o .= new; | 18:26 | |
evalbot6 | Error: unexpected "'" expecting block construct, ":", "\\", "$!", "$/", "$", "'", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
svnbot6 | r6342 | putter++ | crude_repl.pl: Improved repl commands. | ||
r6342 | putter++ | Prim5.pm: Added infix:<~>. :l ../../t/01-sanity/01-tap.t now works. | |||
r6343 | fglock++ | * perl5/ Scalar - uses AUTOLOAD to auto-dereference | |||
xinming | ?eval eval 'class C { has $:b; method get_b { $:b }; }; my C $o .= new; | ||
evalbot6 | Error: unexpected "'" expecting block construct, ":", "\\", "$!", "$/", "$", "'", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
xinming | ?eval eval 'class C { has $:b; method get_b { $:b }; }' my C $o .= new; | ||
Aankhen`` | Whoa... OpenFoundr looks different. | ||
evalbot6 | Error: unexpected "m" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
Aankhen`` | OpenFoundry, even. | 18:27 | |
xinming | ?eval eval 'class C { has $:b; method get_b { $:b }; }'; my C $o .= new; | ||
evalbot6 | \C.new(); | ||
putter | Aankhen``: yes. improved vcs browsing. | 18:29 | |
Aankhen`` | It looks unfinished... | ||
xinming | ?eval eval 'class C { has $:b = 100; method get_b { $:b }; }'; my C $o .= new; | 18:30 | |
evalbot6 | \C.new(); | ||
xinming | ?eval eval 'class C { has $:b = 100; method get_b { $:b }; }'; my C $o .= new; $o.get_b; | ||
evalbot6 | Error: No compatible subroutine found: "&get_b" | ||
putter | unfinished? | 18:31 | |
xinming | ?eval eval 'class C { has $:b = 100; has $.a := $:b; method get_b { $:b }; }'; my C $o .= new; $o.get_b; | ||
evalbot6 | Error: No compatible subroutine found: "&get_b" | ||
Aankhen`` | Yes. | ||
Header looks fine... "Summary, Tracker, Wiki [...]" looks fine... rest of it is styled in such a way that it looks unstyled. | |||
xinming | ?eval class C { has $:b = 100; has $.a := $:b; method get_b { $:b }; }; my C $o .= new; $o.get_b; | 18:32 | |
evalbot6 | Error: unexpected "=" expecting trait, "handles", ";" or "}" | ||
xinming | ?eval my $str = "123"; "hello $str".say; | 18:38 | |
evalbot6 | hello 123 bool::true | ||
xinming | ?eval my $str = "123"; "hello $str1".say; | ||
evalbot6 | Error: Undeclared variable: "$str1" | ||
xinming | ?eval my $str = "123"; "hello {$str}1".say; | ||
evalbot6 | hello 1231 bool::true | ||
xinming | ?eval my $str = "123"; eval {"hello {$str}1".say}; | 18:39 | |
evalbot6 | 'SubBlock(<anon>)' | ||
xinming | ?eval my $str = "123"; eval qq,"hello {$str}1".say,; | ||
evalbot6 | hello 1231 bool::true | ||
putter | Aankhen``: I suspect that's the style... ;-) | 18:40 | |
Aankhen`` makes low noises of dissent. | 18:41 | ||
autrijus | seen on #ruby-lang: | 18:42 | |
jabbot | autrijus: I havn't seen on, autrijus | ||
autrijus | <autrijus> "perl6 is complete not when there's nothing to take away, but when there's nothing left to add" | ||
putter | Aankhen``: :) | 18:45 | |
svnbot6 | r6344 | fglock++ | * perl5/ Scalar .id and .tie pass all tests | ||
putter | "Perfection is reached, either when there is no longer anything to add, or when there is no longer anything left to take away." (E. Aint-Xupery) www.vendian.org/mncharity/Temporary.../work.html ;-) | 18:47 | |
err, hmm, top page is www.vendian.org/mncharity/dir2/misdesign/ | 18:48 | ||
fglock | what's the docs/AES for auto-dereferencing? | 18:50 | |
svnbot6 | r6345 | fglock++ | * perl5/ Scalar - shorten TODO list :) | ||
autrijus | fglock: search p6l for hackathon notes | ||
fglock: it's S02 I think... | 18:51 | ||
it just says scalar ref to array and hash container need to autoderef | |||
scalar-to-scalar remains unspecced for the longest time | |||
then at hackathon larry agreed to zeroderef -- i.e. no deref for scalar refs -- for now. | |||
fglock | 'Lazy' is a 'type' of 'Array'? (ie. the same class) | 18:57 | |
svnbot6 | r6346 | fglock++ | * perl5/ Value - Ref - only Hash and Array autoderef | ||
fglock | or a type of List? | 18:58 | |
Aankhen`` | G'night. | ||
xinming | ?eval my $.t = 1; $.t; | 18:59 | |
evalbot6 | Error: Undeclared variable: "$?SELF" | ||
fglock | good night Aankhen | ||
`` | |||
xinming | hmm, Is it a bug or it should be a special case? | ||
the variable name with a '.' at the beginning. | |||
Aankhen``: Good night. | |||
fglock | ?eval my $?SELF; my $.t = 1; $.t; | 19:00 | |
evalbot6 | \undef | ||
putter | hmm, let's see, how does one assign an arbitrary value to an existing Perl6::Value::Int... | 19:03 | |
fglock | putter: you can't assign to Int | ||
you have to use 'Scalar' | |||
Int is just an object oriented number, like '3' | 19:04 | ||
autrijus | mmm flgr.0x42.net/ruby.js/ | 19:05 | |
(ruby prelude in js) | |||
putter | hmm. but Int has increment and decrement methods... shouldnt they be... oh, they are aren't mutators. ok. | ||
fglock | $scalar++ calls 3++ | 19:06 | |
stevan | thats it,.. ruby is just too cool,.. I'm switching | ||
fglock | this should have been implemented as a multisub | 19:07 | |
autrijus | stevan: it's just the runtime, there's no compiler | ||
but may be of interest :) | 19:08 | ||
xinming: "my $.x" outside class is definitely not allowed | |||
putter | re ruby.js, oooo, neat! unfortunately last time I checked, there was no ruby equivalent of pypy, ie, a rewrite of the ruby C core in ruby. | 19:09 | |
autrijus | there's one early effort based on RACC | ||
but it didn't really take off. | |||
but now with YARV, it's much easier | |||
since there's a VM instruction set | |||
putter | and ripper is slowly maturing, so one can use that until one has a parser. | 19:10 | |
autrijus | however YARV is still quite early -- but already runs miniruby -- which is already better than parrot/perl :) | ||
putter | ;) | ||
autrijus | but the Pneuma and Theos is on our side! | 19:11 | |
stevan | and Chaos!!!! | ||
autrijus | (a #ruby-lang folk just bought that shirt, claiming it's the geekest shirt ever) | ||
putter | lol | ||
stevan | I think they might be right :) | 19:12 | |
autrijus | beating even this: | ||
www.spreadshirt.com/shop.php?op=art...729738#top | |||
stevan | however, we can surely top it | ||
meppl | :D | ||
stevan | www.spreadshirt.com/shop.php?op=art...752302#top | 19:13 | |
now that is geeky | |||
McCarthy rules! | |||
autrijus | yeah, that got mentioned too | ||
xinming found painful to understand perl 6. T_T | |||
autrijus | but still pneuma beats it all | ||
stevan | I think i like it in silver better : www.spreadshirt.com/shop.php?op=art...752288#top | ||
autrijus: we need to do a metamodel 2.0 with chaos involved | |||
autrijus | stevan: sure! | 19:14 | |
xinming: it gets better the more you get used to it :) | |||
Odin- | Isn't that kinda like physical pain? | ||
autrijus | I don't know. I never got used to physical pain | 19:15 | |
stevan | hmm,.. should I get autrijus magnets (www.cafepress.com/autrijus.28686100) or buttons (www.cafepress.com/autrijus.28686099) | 19:16 | |
fglock trying to find out what does 'returns Lazy' mean | 19:17 | ||
Odin- has heard that eventually endorphine response drowns out the pain... | 19:18 | ||
Meaning that something that's actually very hurtful can start feeling good... | |||
PerlJam | fglock: I think that Lazy is a List that isn't all there yet. Or it's there but only on demand. | ||
fglock | PerlJam: but List is lazy by default, so it just means 'List'? | 19:19 | |
autrijus | damnit, my hd just failed on me | 19:22 | |
autrijus starts the long painful process of dd | |||
obra | Again? | ||
autrijus | yeah. | ||
there's something about my usage pattern that makes hard disks unhappy. | 19:23 | ||
I wonder why. | |||
obra | I wonder if it's the frequent spinning whilst walking. | 19:24 | |
how often do you drop it? | 19:25 | ||
fglock | ok found it in S06 - List=(Lazy|Eager), but Lazy is the default. Lazy and Eager are type names. | ||
re S06: Traits are roles stored in the cell? | 19:30 | ||
autrijus | obra: very often | ||
like, twice a day | |||
usually on some semisoft surface though | 19:31 | ||
putter thinks autrijus needs a milspec laptop... | 19:33 | ||
stevan | Panasonic used to make a ultralight ruggedized laptop | ||
I used to drool over it on www.dynamism.com | 19:34 | ||
not sure if they still make it though | |||
obra | stevan: the toughbooks. they still do | 19:36 | |
putter | I wonder if you can boot of a card, and then just use a solid-state or tiny-drive card? | ||
stevan | catalog2.panasonic.com/webapp/wcs/s...upId=12871 | ||
obra | autrijus: perhaps you want a lenovo with a gravity sensor | 19:37 | |
putter | www.panasonic.com/business/toughbook/home.asp | ||
stevan | hey autrijus, they even have outdoor readable screens,.. so you can go outside :) | ||
fglock reimplements tieable scalars | |||
autrijus | yow | 19:40 | |
completely died | |||
I shouldn't run that dd | |||
:-(( | |||
xinming found someone has implemented the attribute test. | 19:41 | ||
autrijus | oh well | 19:47 | |
I'll see what I can tomorrow to salvage at least my ~/.svk/local | |||
fglock | my $x does Tieable; my $y := $x; tie $y, $o --> is this an error? $y is not tieable | ||
autrijus | local branches are no good when hard disk fails | ||
fglock: "my $x is Tieable" | |||
"does" is for classes | |||
fglock: tieableness is on the cell | 19:48 | ||
fglock: the := points $y to the same cell | |||
so tie suceeds | |||
it's consistent with the perl5 *y = *x semantics | 19:49 | ||
I think. | |||
fglock | I'm trying to find out how to make 'my $x is Scalar is Tieable' to set the scalar cell to tieable | 19:50 | |
autrijus | it should probably use a Cell::Tieable or something | ||
sorry I can't be of much help; my mind is reeling from the sudden shock :) | |||
I think sleep is for the best | |||
autrijus waves & | |||
xinming | autrijus: Good night | ||
fglock | time zones-- it's 17:00 here | 19:51 | |
xinming | It 03:52 Aug 19 here. ;-) | 19:52 | |
Odin- | 19:52 GMT | ||
svnbot6 | r6347 | yiyihu++ | There is already a attributes test in t/oo/attributes, I will learn more and improve that one instead of reinventing the wheel. | ||
xinming | Maybe It's the same as autrijus' | ||
subversion is an amazing software. :-) | 19:53 | ||
Odin- | Aha! You are a dangerous subversive! | 19:55 | |
xinming | ... | ||
Odin- | What? You use subversion! :p | ||
xinming | well, don't say that please. You can say I am a newbie rather than subversive. | ||
Odin- is being silly, it should be noted. | 19:56 | ||
putter | Good night autrijus. Sorry for the loss. | 19:58 | |
fglock | re metamodel: how can I make an object instance to do/be a role? | 20:00 | |
xinming | fglock: I thnk the grammar will be role this_role { is that_class }; class that_class { bla; bla; }; | 20:02 | |
fglock | xinming: I can make a 'Class' do a Role, but what I need is that an 'Object' do a role - I don't know if that's possible | 20:04 | |
xinming | fglock: sorry, I didnt read the question carefully. :-S | 20:06 | |
fglock | this is actually a 'mixin' - I'll look by this name | ||
putter tries to remember how to do interpolated symbol names in p5... my $x; my $name = 'x'; print $::($name); nope, err... | 20:11 | ||
xinming | putter: do you mean this? | 20:26 | |
our $x = "string"; my $name = "x"; $$name = "haha"; print $x; | |||
?eval our $x = "string"; my $name = "x"; $$name = "haha"; print $x; | 20:28 | ||
evalbot6 | stringbool::true | ||
xinming | ?eval our $x = "string"; my $name = "x"; $$name = "haha"; $x.say; | ||
evalbot6 | string bool::true | ||
xinming | not work in perl 6 | 20:29 | |
I think I should say pugs. :-) | 20:30 | ||
putter | xinming: yes! thank you. :) | 20:36 | |
Khisanth | did that change to $()? | 20:41 | |
xinming | symbolic reference won't work with the variable declared by "my". | 20:42 | |
fglock | ?eval my $n=1; say ::($n) | 20:43 | |
evalbot6 | 1 bool::true | ||
fglock | :) | ||
xinming | ?eval my $n=3; say ::($n) | 20:44 | |
evalbot6 | 3 bool::true | ||
fglock | ?eval my $n=4; say ::($n) | ||
evalbot6 | 4 bool::true | ||
xinming | ?eval our $x = "string"; my $name = "x"; $::($name) = "haha"; $x.say; | ||
evalbot6 | haha bool::true | ||
xinming | :-) | ||
I like haha, better than giggle. | 20:45 | ||
?eval my $x = "string"; my $name = "x"; $::($name) = "haha"; $x.say; | 20:53 | ||
evalbot6 | haha bool::true | ||
xinming | ?eval my $x = "string"; my $x = "test"; my $name = "x"; $::($name) = "haha"; $x.say; | ||
evalbot6 | haha bool::true | ||
xinming | ?eval my $x = "string"; my $x = "test"; my $name = "x"; $::($name) = "haha"; $OUTER::x.say; | 20:54 | |
evalbot6 | (no output) | ||
xinming | How to access the first $x? or It's dead. | ||
fglock | ?eval my $x = "string"; { my $x = "test"; my $name = "x"; $::($name) = "haha"; $OUTER::x.say; } | 20:55 | |
evalbot6 | string bool::true | ||
xinming | ?eval 25_6 | 21:00 | |
evalbot6 | 256 | ||
putter | iblech: ping? | 21:02 | |
xinming | ?eval sub tmp { :key .("value of pair"); | 21:04 | |
evalbot6 | Error: unexpected end of input expecting end of input, ";", statements or "}" | ||
svnbot6 | r6348 | putter++ | PIL-Run variables are now Scalar. t/01-sanity/02-counter.t passes. | ||
xinming | ?eval sub tmp { :key("value of pair"); | 21:05 | |
evalbot6 | Error: unexpected end of input expecting end of input, ";", statements or "}" | ||
xinming | ?eval sub tmp { :key("value of pair")}; | ||
evalbot6 | undef | ||
xinming | ?eval sub tmp { :key("value of pair") }; tmp(); | ||
evalbot6 | ('key' => 'value of pair') | ||
fglock | putter++ | 21:06 | |
xinming | ?eval %hash<Mon Tue Wed Thu Fri Sat Sun> = 1..7; | 21:09 | |
evalbot6 | Error: Undeclared variable: "%hash" | ||
xinming | ?eval my %hash<Mon Tue Wed Thu Fri Sat Sun> = 1..7; | 21:10 | |
evalbot6 | Error: unexpected "<" expecting word character, "::", trait, "=", ".=", ":=", "::=", ";" or end of input | ||
fglock | putter - "my $i=1; say $i.str" gives "Method not found: .apply" | 21:11 | |
21:11
wilx` is now known as wilx
|
|||
putter | fglock: method invocation!?! ha! there are no objects. there are no methods. the Subs are even Subs yet. ;-) | 21:14 | |
(well, I suppose Int et al has sucked in Objects, but the rest is true:) | 21:15 | ||
fglock | If $i is Scalar, then $i->str works at the perl level, no problem | ||
you already have objects! | 21:16 | ||
putter | yes, but '$i.str' in 'say $i.str' is a method invocation. which the runtime knows nothing about as yet. | 21:17 | |
and Sub is still the old non-metamodel stub. and we dont have Macros, so && and || dont work. | 21:18 | ||
hmm, I'm currently puzzling over Macros. Does the MM have Macro? | 21:19 | ||
xinming | why the "=~" is renamed to "~~" please? | 21:20 | |
fglock | no. I think macros are expanded at compile-time | ||
putter suspects a rigid compile-time vs run-time split will cause much pain. | 21:23 | ||
xinming | anyone here would help? :-S | ||
tell me why the =~ operator is renamed to ~~, in synopsis, It doesn't tell you much. | 21:24 | ||
?eval (3,8,2,9,3,8) >>-<< (1, 2, 3); | |||
evalbot6 | (2, 6, -1, 9, 3, 8) | ||
fglock | xinming - don't know | 21:26 | |
xinming | thanks anyway. ;-) | 21:27 | |
theorbtwo | Because it's a lot more then just =~ now. | ||
And it's symmetric. | 21:28 | ||
PerlJam | It's also really confusing if you happen to read the Exegeses now as E03 has ~~ as an xor operator ;) | 21:29 | |
xinming | my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x, @y ) -> $a, $b { "$a~$b".say }; | 21:30 | |
?eval my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x, @y ) -> $a, $b { "$a~$b".say }; | |||
evalbot6 | 1~10 2~20 3~30 undef | ||
putter | fglock: even though most macros are expanded at compile-time, (1) compile-time in perl has stuff running (2) macros participate in namespaces (packages) and scoping, (3) some macros (eg, regex ones) need to be available at runtime. So I think the MM has to include macros. | ||
xinming | ?eval my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x, @y ) -> $a, $b { $a~$b.say }; | ||
evalbot6 | 10 20 30 undef | ||
xinming | ?eval my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x, @y ) -> $a, $b { ($a~$b).say }; | ||
evalbot6 | 110 220 330 undef | ||
xinming | hmm, I am sorry for trying the evals here, But the pugs readline doesn't seem to work very well for long terms. | 21:31 | |
fglock | xinming: for long expressions, you can type in a text editor and execute using 'pugs filename' | 21:33 | |
putter: macros should be available inside $str.eval, which is compile+run time | 21:34 | ||
coral | did anyone identify what in evalbot was breaking any().pick? | 21:35 | |
xinming | geoffb: hmm, In fact, What I mean, is the expressions not too long, And not too short. :-) | 21:36 | |
fglock: hmm, In fact, What I mean, is the expressions not too long, And not too short. :-) | |||
typo. :-) | |||
fglock | coral: don't know about that - but autrijus made some fixes today | 21:38 | |
I guess I can't implement Scalar 'tieable' without traits. I'm going to work on the other container types. | 21:40 | ||
xinming | ?eval my $x; my $x; | 21:51 | |
evalbot6 | undef | ||
Aankhen`` | "Morning". | ||
xinming | Aankhen``: morning. ;-) | ||
my $x; my $x; is a bug. hmm, Did anyone write the test for this? | |||
Aankhen`` | 3:20 AM is a rather indecent time to be up. | ||
xinming | :-), here is 05:53 | 21:52 | |
?eval my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x, @y ) -> $a, $b { ($a~$b).say }; | 21:55 | ||
evalbot6 | 110 220 330 undef | ||
xinming | ?eval my @x = ( 1, 2, 3 ); my @y = (10, 20, 30); for zip( @x; @y ) -> $a, $b { ($a~$b).say }; | ||
evalbot6 | Error: unexpected "f" expecting ";", statements or end of input reserved word | ||
xinming | another bug. :-) | 21:56 | |
Khisanth | what is the ; suppose to do there? | 21:57 | |
xinming | hmm, maybe not the bug. just a typo in synopsis. | ||
Khisanth: hmm, Maybe a typo in synopsis | 21:58 | ||
Khisanth | don't think so | ||
xinming | see S04 | ||
Khisanth: and see S03 | |||
Khisanth | xinming: S09 actually :) | 22:02 | |
xinming | Khisanth: that's for multi dimension array. not for zip operator I think | 22:04 | |
Khisanth | () is a bracket thingy:) | 22:05 | |
xinming | ?eval given 1 { when 1 { 'number'.say }; when "1" { 'string'.say } }; | ||
evalbot6 | number bool::true | ||
xinming | ?eval given 1 { when "1" { 'number'.say }; when "1" { 'string'.say } }; | ||
evalbot6 | number bool::true | ||
xinming | ?eval given "1" { when 1 { 'number'.say }; when "1" { 'string'.say } }; | 22:06 | |
evalbot6 | number bool::true | ||
xinming | ?eval given "1" { when "1" { 'number'.say }; when 1 { 'string'.say } }; | ||
evalbot6 | number bool::true | ||
xinming | ?eval given 1 { when "1" { 'number'.say }; when 1 { 'string'.say } }; | ||
evalbot6 | number bool::true | ||
Aankhen`` leaves. | 22:09 | ||
Bye guys. | |||
I shall miss all the scintillating and way-too-intelligent-for-me conversations in this channel. :-) | |||
But oh well, I'll be back on the 28th. | 22:10 | ||
Ciao. | |||
putter | Bye Aankhen``! | 22:15 | |
Look forward to your return. | |||
xinming | putter: | ||
putter: could you please tell me how to do the match exactly in the above example? | |||
?eval given 1 { when 1 { 'number'.say }; when "1" { 'string'.say } }; | 22:16 | ||
evalbot6 | number bool::true | ||
xinming | ?eval given "1" { when 1 { 'number'.say }; when "1" { 'string'.say } }; | ||
evalbot6 | number bool::true | ||
putter | xinming: sorry, i'm late and scrambling to get out the door. | 22:21 | |
bye all | |||
the approach currently taken by EvalX needs to be altered. talk later. | |||
xinming | putter: bye. | ||
?eval given "1" { when 1 { 'number'.say }; when all(( $_.ref eq "Str", "1")) { 'string'.say } }; | 22:40 | ||
evalbot6 | number bool::true | ||
Khisanth | ?eval given "1" { when "1" { 'string'.say }; when 1 { 'number'.say } }; | 23:07 | |
evalbot6 | string bool::true | ||
Khisanth | ?eval "1" ~~ 1 | ||
evalbot6 | bool::true | ||
coral | what | 23:22 | |
er, hi purple | |||
?eval any(3,1,1,1,1,1,1).pick | |||
evalbot6 | 3 | ||
coral | ?eval any(3,1,1,1,1,1,1).pick | ||
evalbot6 | 3 | ||
coral | ?eval any(3,1,1,1,1,1,1).pick | ||
evalbot6 | 3 | ||
coral | hmm, i think it's still not fixed in evalbot | 23:23 | |
autrijus did say that the bug was evalbot-specific | |||
wilx | What does .pick do? | ||
Khisanth | which revision is it running anyway? | ||
coral | collapses the quantum eigenstate | ||
(in different words) | |||
?eval (3|4).pick | |||
evalbot6 | 3 | ||
coral | sometimes that would return 4 | ||
?version | 23:24 | ||
not sure how to make evalbot evidence its version | |||
Khisanth | one of those globals but I don't know the name | ||
?eval map { (3|4).pick } 1..10 | 23:25 | ||
evalbot6 | (3, 4, 4, 3, 3, 4, 4, 3, 4, 3) | ||
Khisanth | hmm | ||
so what is up with the 3 and the 1's? | |||
theorbtwo | ?eval scalar(any(3,1,1,1,1,1,1).pick) | 23:30 | |
evalbot6 | 1 | ||
theorbtwo | ?eval scalar(any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | 1 | ||
theorbtwo | ?eval scalar(any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | 1 | ||
theorbtwo | ?eval join ', ', (any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | '3' | ||
theorbtwo | ?eval join ', ', (any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | '3' | ||
theorbtwo | ?eval join ', ', (any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | '1' | ||
theorbtwo | ?eval join ', ', (any(3,1,1,1,1,1,1).pick) | ||
evalbot6 | '3' | ||
theorbtwo | ?eval my @res; for (0..10) push @res, (any(3,1,1,1,1,1,1).pick); @res | 23:31 | |
evalbot6 | Error: Pattern match failure in do expression at src/Pugs/Eval.hs:383:4-12 | ||
theorbtwo | ?eval my @res; for (0..10) {push @res, (any(3,1,1,1,1,1,1).pick)}; @res; | ||
evalbot6 | [3, 1, 1, 3, 3, 3, 3, 1, 3, 1, 3] | ||
theorbtwo | This seems a bit unlikely. |