-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by apple-gunkies on 11 November 2005.
Juerd cognominal_: The idea of feather is that I do only system administration 00:03
cognominal_: But feel free to put this in your ~/public_html! :)
cognominal_ oki, thx
Juerd cognominal_: If it's okay with licensing, copyright, and that kind of crap. 00:04
cognominal_ tbese are all public papers
Juerd Okay, good
dduncan openfoundry appears to be down 02:01
hcchien hmm..., Internal Server Error 02:02
dduncan fortunately, now that I've switched to svk from svn a few days ago, this doesn't crimp my style as much as it would have 02:03
hcchien let me check with openfoundry staff later. after Jeremy Zawodny's talk. 02:04
obra hcchien: is zawodney in taipei?
dduncan what live event are you involved in?
never mind
taipei it seems 02:05
hcchien obra: yes. he is talking about the MySQL. :)
obra cool
dduncan anyway, the rewrite of the perl 5 Locale::KeyedText is now shown to execute correctly ... any fixes to that have been ported to the perl 6 version, but I still have to test the perl 6 one 02:06
mdiep I have apache set up to execute .p6 files as cgi scripts. I have a shebang line at the beginning of my file that points to a symlink to pugs. and I get different output over the web than I do in my terminal. specifically `split /\:|\n/, "db: data/\n"` splits only on the "\n" and not on the ":" over the web. any ideas? it works correctly in the terminal. 03:01
and don't anyone think of send me a commit bit for this :-) 03:03
azuroth does changing it to /usr/bin/pugs_bin or whatever have any effect? ;-p 03:04
mdiep both are executed by way of the shebang (a symlink in /usr/bin that points to the pugs executable in my home dir) 03:05
azuroth ahh, okay. I was having some trouble with shebangs at all a while ago 03:06
mdiep ah. it can't find the parrot executable because it's a different user
azuroth ahh 03:07
feel like doing an assignment for me? 03:08
dduncan openfoundry seems to be back 03:47
svnbot6 r7933 | Darren_Duncan++ | r799@Darren-Duncans-Computer: darrenduncan | 2005-11-11 17:53:05 -0800 03:52
r7933 | Darren_Duncan++ | /ext/Rosetta-Incubator : in Locale::KeyedText, added 2 new as_debug_string() methods, and added some small POD sections; updated the examples/ to port in all the fixes made to the perl 5 version (which is now known to work)
dduncan okay, in starting to test the rewritten Locale::KeyedText, I've discovered what appears to be Pugs bugs or omissions, which I'll list: 04:09
1. "my Str $user_input = $*IN;" will parse, but "say $user_text;" or "print 'foo';" will not parse 04:10
I mean, "say $*OUT 'foo'" or "say $*ERR 'foo'" won't parse
the plain print/say *do* parse but specifying the file handles does not 04:11
whereas specifying the handle for input does parse
azuroth ahh 04:12
dduncan 2. labels won't parse, but I know that's a todo item so no need to expand here
I mean, declarations thereof in the form 'FOO:', if that's the correct syntax
3. at runtime, "my Str $user_input = $*IN;" does not block and accept input ... and if this line appears in a loop, the loop doesn't end 04:13
mainly it doesn't block so I can type, which causes the other problem 04:14
4. at runtime, 'redo' is not allowed inside a bare nested block like in perl 5 ...
eg, I had a plain { ... redo; } block in my code ... 04:15
if the user says to quit, it does a 'last' to leave the block; otherwise it will 'redo' the block
Pugs gives me an error saying I can't redo outside of a loop, though in perl 5 a bare block was a loop of one 04:16
now, temporarily doing "while (1) { ... }" does run, but I preferred the other approach ... perhaps wrongly
eric256_ dduncan.. its my $name = =$*IN; 04:17
dduncan okay, will try that ... 04:18
I remember the specs saying otherwise, but that's fine
eric256_ $*OUT.print("hello");
= is shift on an interator. and $*IN is a filehandle interator i beleive. /me goes to search specs 04:19
feather.perl6.nl/~eric256/t_index/t...io/io.html
dduncan looking ...
eric256_ should link those to actual specs... off and searching 04:20
dduncan note that the code I'm debugging was written in spring/summer and never executed until now, since it was in POD before
thanks for the help
eric256_ np
personaly i hated the print $FH $string;
didn't fit the syntax of *anything* else. so hopefully they move to the $fh.print($string) completly 04:21
S03/New Operators last bullet 04:22
dduncan curiously, it seems that $*ANYTHING.print( ... ) will print, so I'm guessing that the name is being ignored by Pugs for now 04:26
eric256_ lol
dduncan ANYTHING being a string of letters
eric256_ didn't know that.
dduncan having the * causes the undeclared var warning to hit be tripped, whereas $ANYTHING will give an error I think 04:27
azuroth that's interesting
dduncan also, $ERR is accepted as something to print off of 04:28
eric256_ $test.print("hello") doesn't error. hmm
azuroth so "my $a; $a.print();" works too
dduncan in fact, even $user_text.print(), which is a declared lexical variable of type Str, will print its argument as usual
in any event ... 04:29
during the short term having Pugs be too permissive is okay, since at least correct code will run
and being too permissive is what this is
okay, so my #1 is fixed 04:30
okay, my #3 is also fixed ... input is taken and the main loop either reloops or ends on appropriate input 04:35
okay ... 04:38
5. named arguments don't seem to be getting passed in correctly
or as I expected
currently I declare that I want to take named arguments by prefixing the argument name with a :, like this: 04:40
submethod BUILD (Str :$msg_key!, Any :%msg_vars? = hash()) {
it seems that a Pair object is being stored in $msg_key for example, and not the value of the pair as I would have expected
I only expect a Pair object to be stored if I declared like ... 04:41
submethod BUILD (Str $msg_key!, Any %msg_vars? = hash()) {
eric256_ ?eval sub test ( :$msg ) { $msg.perl.say }; test( :msg("hello") ); 04:54
evalbot_7933 \"hello" bool::true
eric256_ ?eval sub test ( :$msg ) { $msg.perl.say }; test( ( msg => "hello") );
evalbot_7933 ("msg" => "hello") bool::true
eric256_ ?eval sub test ( :$msg ) { $msg.perl.say }; test( msg => "hello" );
evalbot_7933 \"hello" bool::true
eric256_ that help?
eric256_ whistles 04:59
azuroth plays the beer bottle 05:03
eric256_ anyone who knows haskell around? 05:12
azuroth I know a little 05:14
eric256_ actualy nevermind. lol. 05:15
azuroth heh, okay
eric256_ it appears that print on haskell is almost entirly ignoring the handle given it...i think
azuroth ahh 05:16
eric256_ actualy...hmm
f handle . concatMap encodeUTF8 $ strs
where f will be hPutStr.... haskell just defaults to stdout if the handle is invalid?
eric256_ searches for info hPutStr 05:17
azuroth I'm not that far yet :-) 05:18
eric256_ ?eval my $x = "hello"; $x.print;
evalbot_7933 hellobool::true
eric256_ duh.. of course print works on variables!! ;) 05:19
?eval my $*test = 5; $test = 6; $*test.print("==5\n"); $test.print("==6\n"); 05:20
evalbot_7933 Error: Undeclared variable: "$test"
eric256_ ?eval $*test = 5; $test = 6; $*test.print("==5\n"); $test.print("==6\n");
evalbot_7933 6==5 6==6 bool::true
eric256_ so $*whatever is just $whatever, if it happens to be a file handle then it prints to the file handle. other wise it prints the string.. /me wonders about that. 05:21
?eval "hello".print("world");
evalbot_7933 helloworldbool::true
eric256_ seems a little weird.
azuroth $*blah just means it's global, IIRC 05:22
eric256_ are twigils then just visual cues with no actual effect? or is the effect just not present in pugs yet?
azuroth it appears to have at least some effect - no strictness 05:23
eric256_ how do you figure? 05:24
azuroth ?eval $*blah = 5; 05:25
evalbot_7933 \5
azuroth ?eval $blah = 5;
evalbot_7933 Error: Undeclared variable: "$blah"
eric256_ but
?eval $*blah = 5; $blah =6; $blah;
evalbot_7933 \6
azuroth ?eval $*blah = 2; {$blah = 1;} say $blah; 05:26
evalbot_7933 Error: unexpected "s" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
azuroth ?eval $*blah = 2; {$blah = 1;}; say $blah;
evalbot_7933 1 bool::true
azuroth ?eval {$*blah = 1;}; say $blah; 05:27
evalbot_7933 1 bool::true
eric256_ righ tbut $* is declaring blah, so twigils don't create there own name spaces.
azuroth $blah looks for $blah, then it'll look for $*blah ? 05:28
eric256_ ?eval my $x = "test"; {$*x="nope";}; $x;
evalbot_7933 \"test"
eric256_ confusing
azuroth heh. yeah
eric256_ ?eval our $x = "test"; {$*x="nope";}; $x;
evalbot_7933 \"test"
eric256_ ?eval our $x = "test"; {$*x="nope";}; $x ~ $*x; 05:29
evalbot_7933 "testnope"
eric256_ ?eval {$*x="nope";}; my $x = "test"; $x ~ $*x;
evalbot_7933 "testnope"
eric256_ ?eval {$*x="nope";}; $x = "test"; $x ~ $*x;
evalbot_7933 "testtest"
eric256_ thats gotta just be a bug in pugs
azuroth no, I'm sure it's right 05:30
$*x is like... $*::x, isn't it?
eric256_ not that i know of no
azuroth hmm, okay
eric256_ and if so. shouldn't the only way to access it be $*x ?
azuroth but it's making it in an outer scope 05:31
so it's just like my $a = 0; {$a = 5;} right? 05:32
eric256_ i think my point is... if you let people decaler globals inline with $* then they should only be accesible that way. otherwise they should have to pre-declare it somewhere earlier. but i wasn't just concerned with *, the other twigils too
azuroth ?eval my $x = 0; {my $OUTER::y = 1;} say $y;
evalbot_7933 Error: unexpected "s" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
azuroth ?eval my $x = 0; {my $OUTER::y = 1;}; say $y;
evalbot_7933 pugs: out of memory (requested 1048576 bytes) 05:33
azuroth whoa. how did that happen
hmm. yeah, I suppose so
eric256_ ?eval my $x = 0; {my $OUTER::x = 1;}; say $x;
evalbot_7933 1 bool::true
eric256_ obviose lookup trouble with $OUTER there.
azuroth I guess you aren't meant to do that 05:34
eric256_ ?eval { my $x; { $OUTER::y = 1 } }; 05:35
evalbot_7933 pugs: out of memory (requested 1048576 bytes) 05:36
azuroth ?eval $*a = 2; say $::a;
evalbot_7933 2 bool::true
eric256_ ?eval my $x; $::x = 5; 05:37
evalbot_7933 \5
eric256_ ?eval my $x = 5; $::x;
evalbot_7933 \5
eric256_ ?eval { my $x = 5; $::x;}
evalbot_7933 \5
eric256_ ?eval my $x = 5; $*::x; 05:38
evalbot_7933 Error: unexpected "*" expecting "::"
azuroth ?eval $*a = 40; say $::("*::a");
evalbot_7933 bool::true
eric256_ ?eval { my $x = 5;} $::x; 05:39
evalbot_7933 Error: unexpected "$" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
eric256_ ?eval { my $x = 5;}; $::x;
evalbot_7933 Error: Undeclared variable: "$x"
eric256_ ?eval { $*x = 5;}; $::x;
evalbot_7933 \5
eric256_ seems broken that an inner block can do something to make the outer blocks syntax valid...but i've always been anti global so maybe that sjust built into me 05:40
azuroth it's not quite global, interestingly
wait, never mind 05:41
eric256_ ?eval {{ $*x = 5;}; $::x};
evalbot_7933 Error: unexpected "{" expecting program
eric256_ ?eval {1; { $*x = 5;}; $::x}; 05:42
evalbot_7933 \5
eric256_ decides it must be time to sleep because this makes less since the more i look
azuroth hehehe
good night 05:43
eric256_ ?eval {1; { $*x = 5;}; $GLOBAL::x};
evalbot_7933 \undef
eric256_ ?eval { $*x = 5;}; $GLOBAL::x;
evalbot_7933 \undef
eric256_ raise eye brow... night
azuroth yeah - weird eh
dduncan so, does Perl 6 have a 'throw' keyword for exceptions, or do we have to use 'die'? 05:50
if so, Pugs doesn't support it yet
in the form throw Foo
azuroth there's fail and die, that I know of
fail is like die iff use fatal is on, I believe 05:51
dduncan I just want to be able to say "throw 'foo' if bad_stuff" 05:52
kind of like how die was used in perl 5
azuroth die $exception if bad_stuff
should do the trick...
dduncan but is 'die' part of the perl 6 spec? ... looking 05:53
azuroth pretty sur
sure
synopsis four has a bit
dduncan all right then, I'll use die 05:57
okay ... 06:12
azuroth what's up? 06:13
dduncan 6. Pugs doesn't seem to execute a CATCH block yet ... 06:14
azuroth ahh
dduncan a surrounding try block will trap an error, but its catch isn't executed
however, the perl 5 method of testing $! seems to work 06:15
azuroth ?eval { die "monkey"; CATCH { when "monkey" { say "yes"; }; }; };
evalbot_7933 Error: monkey
azuroth I wonder if there's a todo test for that. :-)
dduncan I didn't put a semicolon after the CATCH, ... 06:16
azuroth doesn't matter; it takes pascal style semicolons AFAIK
oh, whoops. should be CATCH "monkey" { }; apparently 06:18
but it's todo'd
dduncan in this case, I'm wanting to catch an object
I expected that a plain CATCH will catch anything 06:19
azuroth I guess so. or maybe CATCH true {}
dduncan will try that ... it parses okay with just the CATCH {} though
no dice ... currently, "CATCH anything {}" won't compile, only "CATCH {}" will 06:22
svnbot6 r7934 | Darren_Duncan++ | r803@Darren-Duncans-Computer: darrenduncan | 2005-11-11 22:55:28 -0800 06:56
r7934 | Darren_Duncan++ | /ext/Rosetta-Incubator : in Locale::KeyedText and the examples, replaced all 'throw' calls with 'die', fixed several syntax bugs, and worked around temp worked around a few Pugs deficiencies ... the examples still don't execute yet
dduncan well, thats it for me today
7. another issue I discovered is that "die Foo.new(); ... $!.does(Foo)" returns false, while "Foo.new().does(Foo)" returns true ... that's a simplification of the actual code that isn't tested, but its my interpretation of a problem, while both items stringify to the same thing that are being called .does() on 07:00
to see the problem, run the example MyApp.p6 that I checked in, type something and hit return 07:01
a bad input exception is tossed by translate_message() when $! is its (indirect) argument, while it doesn't otherwise, and said arguments, stringified in show_message() before calling translate, both stringify to the same thing, "<obj:Locale::KeyedText::Message>" 07:03
the issue here may be something like transparent exception objects, I would guess 07:04
when I say "type something", I mean type letters, which are bad input 07:05
azuroth that's interesting 07:07
?eval try { die Str.new(); }; say $!.does(Str); 07:08
evalbot_7934 1 bool::true
azuroth ?eval try { die Int.new(); }; say $!.does(Str);
evalbot_7934 1 bool::true
dduncan the problem may be indirection ... I did simplify it in what I typed here
you can see the actual case in the checkin
suffice it to say that I don't plan to write more perl 6 modules until the Locale::KeyedText works, since I would be doing a lot of the same stuff in others, only more complicated versions, and I prefer to be "copying" something that works ... that doesn't mean I can't write design docs though, or code the perl 5 versions 07:15
r0nny yo 07:56
azuroth hey hey 07:57
xinming seen autrijus 10:31
jabbot is away. :-/
dakkar once upon a time there used to exist a tarball to jump-start a SVK mirror of the main Pugs repository... what happened to it? 12:32
Juerd I have no idea. 12:47
If you have little bandwidth, consider using feather for your pugs experimentation.
dakkar it's not *my* bandwidth I'm worried about... I don't want to hog the repository servers 12:51
Juerd seen autrijus 12:52
ENOBOT? :(
dakkar: I think you shouldn't worry about that :) 12:53
dakkar ok, I'll start a "svk mirror", then 12:54
integral or you just use sync's --skipto option :) 12:58
dakkar integral: the whole point was to have the full history ;-) 13:00
integral ah
the *whole* full history? there's quite a bit by now :) (almost 8000 rev! wow) 13:01
dakkar yes, I noticed. makes for an interesting read ;-)
Juerd dakkar: You could set up a compressing ssh port redirect on feather. Feather has a local svk mirror. 13:02
integral oh, you could make your own jump-start tarball with feather too :)
Juerd I guess :) 13:03
xinming Did antrijus back to TaiWan? 13:09
Juerd I have no idea, but I am starting to miss him around here.
xinming I miss him for commiting critical things. :-P 13:10
hmm, I just get habit into read his journal... 13:11
s/read/reading/
Juerd Heh, feather runs 8 irssis 13:30
r0nny rafl: how about the mirror ? 13:52
crack-attack 13:53
ops
dan the focus problems if the muse isnt where i think it is
Bit-Man Hi all 14:28
Just a little question 14:29
I'm starting to dig in PErl 6 and in Pugs, so I'm wondering if there's a Devel::Peek (or similar) for Perl 6, where I can dump() the internals for a given data structure 14:30
Hello ... anyone awake ?? :-D 14:44
dakkar awake, yes; capable of an answer, no ;-) 14:47
Bit-Man dough
joepurl xinming: hello 14:51
xinming joepurl: Sorry, I was in ZheJiang, Not BeiJing, :-/ 14:56
joepurl sorry for mistake
xinming joepurl: Are you in MainLand? 14:57
joepurl xinming: yes
xinming joepurl: where are you by the way?
I was ever in BeiJing, But Now, back
joepurl xinming: understand, maybe we can have a hangzhou meeting 14:58
xinming ...
why not WenZhou. :-/ 14:59
joepurl wenzhou a good idea xinming
another perlchina member is at there as i know
xinming joepurl: hmm, No, I don't think so, people here around are all going to do business instead of learning computing. 15:00
joepurl: who is it please?
joepurl xinming: it's 风é›ØēŗµęØŖ/julius 15:01
xinming ok,thanks
joepurl the one who is in charge of textdb band of the perlchina bbs 15:02
welcome
xinming too few people here tend to learn perl. most people think that Java is good enough for making money. ;-) 15:03
joepurl they are in need of good news deliver like you 15:04
xinming joepurl: No, I am a newbie also. :-/ But In my understanding, that learning perl is lots of fun, 15:06
joepurl: just tell them to try it. they will love it. ;-)
especially pugs. an implementation of perl 6. :-) 15:07
raptorXXX here is comparison of the programmer language speeds : 15:12
shootout.alioth.debian.org/index.ph...rt=fullcpu
what i see is that perl wins in most of cases for shorter programs
but in speed looses from many competitors 15:13
revdiablo raptorXXX: I can't trust a page that says, "Perl -- Server-side shell & CGI scripts"
raptorXXX it wins over php,python and ruby though :)
revdiablo Sorry, it just makes me suspicious.
raptorXXX yep i saw that too
that is why java seems faster :) 15:14
xinming hopes that parrot will have a module just like mod_parrot 15:17
and even a module which will be embed into Linux Kernel. :-P 15:18
obra xinming: what do you mean a module like mod_parrot? It already has mod_parrot, no? 15:19
xinming obra: Sorry, I don't know about this, :-/
obra: what I mean mod_parrot is a bit like mod_perl, for apache server 15:20
revdiablo www.smashing.org/mod_parrot/ 15:21
xinming and if the parrot vm can be compiled into kernel, It might be perfect. :-) 15:23
revdiablo: thanks.
But please don't tell me there is already a project which port parrot vm into kernel. :-P
revdiablo Not that I know of... 15:24
dakkar someone might write a binfmt_misc handler to run compiled parrot files directly 15:26
there's one for Java classes...
xinming dakkar: hmm, If I don't guess wrong, parrot can compile pbc file into binary 15:27
s/can/will be able to/ 15:28
or gnu compiler will be able to do this. 15:29
dakkar with "binary" meaning "native machine-code"? say, a ELF image? true, but we were talking about strange uses ;-)
xinming is thinking, what the world will be like, if all the programs are written in perl :-P 15:30
I know there is distribution (perl-linux?), the team has done many programs. But I'd rather prefer using perl 6 instead of perl 5. As programming in perl 5 on large program isn't fun. 15:32
raptorXXX perllinux.sourceforge.net/ , he cool 15:48
xinming raptorXXX: If perl 6 is out, and linux kernel has parrot module built-in, another crazy thing will happen... :-P 15:52
svnbot6 r7935 | yiyihu++ | Add 3 sub test for variable $?CLASS
xinming ?eval class A { method test { $.a = 1 } }; A.new.test; 16:04
evalbot_7935 \1
xinming bug?
theorbtwo Looks just fine to me. 16:06
?eval class A { method test { $.a = 1; 'ret' } }; A.ne.test;
evalbot_7935 Error: No compatible subroutine found: "&test"
theorbtwo ?eval class A { method test { $.a = 1; 'ret' } }; A.new.test; 16:07
evalbot_7935 "ret"
theorbtwo Yeah, just fine.
xinming theorbtwo: No, I mean the $.a
theorbtwo: IMHO, the attributes must be declared first.
theorbtwo Oh, you mean it should die, because it's attempting to set a bad attribute?
xinming theorbtwo: Yes. 16:08
hmm, But not sure about this
theorbtwo Hm, you may be right about that -- perhaps it changed while we weren't paying attention?
xinming bbl.
svnbot6 r7936 | yiyihu++ | access or assgin on undeclared attribute will raise an error. Add test 16:39
dakkar ?eval class A { method test { $.a = 1 } }; A.new.test; 16:41
evalbot_7936 \1
dakkar ehm
rafl dakkar: He only added the tests, not an implementation. 16:53
see t/oo/attributes/undeclared_attribute.t
dakkar oh
xinming dakkar: I am not clever to do this... :-/ 16:58
dakkar xinming: I'm not even able to find the place to change ;-) 16:59
xinming dakkar: I just know where the test is, and dance there. 17:03
dakkar looks like something should be changed in Eval.hs, function applyExp 17:07
gaal meow 17:13
17:16 Lopo_ is now known as Lopo
Limbic_Region Is it just me, or is pugs painfully slow these days? 18:14
wolverian is anyone coding a perl6->java translator? 21:13
(or even thinking about one)
liz6 perl(5|6) <=> java would be interesting for my current client 21:15
if you would call that thinking about it... ;-)
acme has done some preliminary work on parrot -> java byte code
autrijus well, we do have a pretty good JVM codegen 21:16
liz6 almost 3 years ago ;-(
autrijus I mean emitter
wolverian hmm, there's a java backend in pugs as well.
right.
autrijus so just have to hook the codegen into it
liz6 hi autri!
autrijus greetings. jet lag been less than kind to me
wolverian autrijus, how trivial is that, do you know?
augh :(
autrijus wolverian: mostly it'll be the flow part that's hard -- native continuations in java not trivial 21:17
liz6 autri: no pb, I know what it's like flying east (coming back from the US)
autrijus otoh we can build on Rhino architecture, which is going to Java1.6 anyway
wolverian rhino?
autrijus liz6: yeah, it's much harder
wolverian: mozilla rhino, the dynamic runtime for java people, currently just for js but not neccessarily
they do have proper, reentrant, serializable, continuations 21:18
and a bunch of dynamic-static bindings that is going to be useful if we are to use native java libs
wolverian that sounds nice
is it related to spidermonkey? 21:19
autrijus sure -- brendan mentioned spidermonkey going to lift that (continuations) from rhino
they are separate projects but maintained by same bunch of people
wolverian that seems a bit odd 21:20
autrijus well, spidermonkey is in ANSI-C, and rhino is in Java 21:21
leo hi autrijus (parrot) 22:14 <+svnbot6> r9929 - lexicals 10 - find_lex, store_lex * example from pdd20 synopsis works verbatim - Yay & yay! 21:22
wolverian autrijus, oh! I didn't know. sorry.
autrijus no need to be sorry
leo: oh wow!
wow!
that was.... quick 21:23
I figured out how to codegen yesterday
leo well - today ;-)
autrijus but did not get around to code it in
now I am _definitely_ motivated
leo gimme another day for :outer9sub) - closures - then we are set
liz6 considers herself lucky to be witnessing this
leo s/9/(/ 21:24
autrijus leo: okay, I'm going to need that, but it'll take at least a day for me anyway
leo++ leo++ # fantastic
wolverian whoa, nice. leo++
liz6 autri: about 2 hours before daylight where you are, right?
leo thanks folks and thank chip for a very same pdd20 that is easy to follow 21:25
autrijus liz6: yes
liz6 autri: what jetlag? you're always in your timezone anyway ;-) 21:26
s/your/your own/
autrijus liz6: I'm not used to get my sleep in 3hr slices :)
once that's fixed, sure, I don't quite care about TZ
wolverian random thought: now that I've used java for a month or so regularly, I'm pretty sure eclipse is the best thing about it. 21:31
I want perl6 to have similar tools. 21:32
autrijus and the reason that eclipse can be so good is it's populated with static knowledge
wolverian yes.
(I want to see what EPIC + PPI would look like, though.)
autrijus separate compilation, early binding, type inferencing, etc 21:33
PPI doesn't solve the late binding problem which is detrimental to refactoring
integral hmm, does perl6 do the 2nd and 3rd?
autrijus integral: yes and yes (S12) -- but currently specced as only if you ask for it 21:34
aka vb.net, "option strict on"
wolverian i.e. type inferencing?
autrijus currently @Larry is giving the language strict and lax sugars for mixed inferencing and noninferncing uses 21:35
sub foo (Int --> Int) { ... } # subject to inference
sub foo (Int) returns Int { ... } # only the parameter side is, not the return side
but the details are murky, though it's for the "types" milestone; currently solid OO bootstrap is still more urgent 21:36
wolverian does type inferencing equal static typing?
autrijus no, not neccessarily, as you can infer certain terms to be untyped 21:37
or runtime-checked
wolverian right. but that makes it harder for tools such as eclipse?
(sorry - trying to get these things straight in my head) 21:38
integral hmm, with that does that mean everything can be type-inferred? Unlike haskell/omega/etc where you need some type signatures to force a particular typing?
autrijus integral: general recursion is part of p6... ;) 21:39
(which means, annotation is going to be needed, and we can't escape that)
but in absense of any strictitude and optimization and annotation
we just fallback to ruby^Wperl5 mode
i.e. essentially duck typing 21:40
integral run-time checked duck typing :)
autrijus perfect if you want to redefine postcirfumfix:<( )> :)
which might be like, unimaginable sin for lambdafolks 21:41
integral thinks it's a bit of a shame you have to do that, rather than a default postcircumfix:<( )> redispatching to some Code::apply method
autrijus I think the rule is that "apply" is too short for this powerful/rare a feature 21:42
so calling it "apply" woudl be mishuffmanizing
wolverian I don't like ( ) because I don't always use ()s when calling code.
autrijus but it's in the ergonomics domain :)
integral umm, but it's got a namespace attached...
autrijus integral: true...
class Hash is extended does Callable { method apply { ... } } 21:43
integral it's huffmanised locally (within it's namespace); but not globally
autrijus something like that?
integral yep
autrijus it's trivial to write the role Callable and just wraps apply for pc:<()>
wolverian: hm? how can you call %ENV(3) or $dbh(9) without ()? 21:44
integral umm, I'm sort of assuming you can have Foobar::baz and Wibble::baz and can somehow avoid duck-typing those to be the same thing (to be more like qualified imports of haskell's methods)
autrijus the "say 123" decomposing to &say.postcircumfix<( )>(3) is purely sugar
azuroth morning
autrijus integral: I think you need annotation to avoid that
integral hmm
autrijus say, Foobar does Bazable 21:45
but wibble does not
so if you annotate it as such that you want a a Bazable
then ducktyping no longer applies
integral yeah, that's sensible :)
autrijus but it's going to be the default for rapid prototyping, and I think it's just as well
("it" = dynamic ducktyping)
azuroth: greetings
integral hmm, if I do: $something.Callable::apply, that'll turn off duck-typing too, so $something really has to do Callable 21:46
autrijus yes, sure
integral factoring your interface out of your classes seems a perfect thing to do later. Even better in your fancy GUI editor :)
azuroth I was kicked out of bed. :-( 21:47
autrijus verily verily
actually, Callable is not a bad idea at all
but I'll stick with postcircumfix:<()> as it's easier for the runtimes; once roles are properly established we can always revert 21:48
s/revert/refactor/
wolverian azuroth, actually kicked? o.O
autrijus azuroth: aw :/ hopefully not kickbanned
azuroth not actually kicked, but the effect is similar 21:50
time to play with postgresql now, though 21:53
autrijus goes catching another 3hr slice of sleep & 22:00
liz6 good night, autri
dream good dreams...
autrijus :) *wave* & 22:01
obra 'night, autrijus
buu ?eval 1 22:24
evalbot_7936 1
svnbot6 r7937 | autrijus++ | * simonf on perlmonks (and iirc, lwall also) reported that 22:38
r7937 | autrijus++ | on FC4, somehow the Cwd/RealBin test fails in Module::Install
r7937 | autrijus++ | code. Try to fix this be appealing to Cwd::abs_path and
r7937 | autrijus++ | add some better diagnostics.
liz6 wonders what would happen if the same coro would be called by 2 threads at the same time 22:41
integral seems to remember something saying that a coro was a thread itself?
liz6 and then there's others that simply think of a coro as a subroutine that has all of its own context 22:43
and that you wouldn't need threads to do a coro
integral feels sort of justified for hating coros 22:44
liz6 is just not sure how coros and threads will mix 22:45
integral threads have clear semantics; continuations have clear semantics; coros seem to be prefered when people can't figure out what they actually want :-/ 22:46
hmm, and a lazy gather/take covers infinite streams
svnbot6 r7938 | liz++ | Some more work on docs/AES/S17draft.pod, 23:32
r7938 | liz++ | still not sure about the right order in
r7938 | liz++ | which describe stuff. But what can you
r7938 | liz++ | expect from attempting to describe
r7938 | liz++ | concurrency ;-)