6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 | www.geeksunite.net
Set by integral on 25 October 2005.
dduncan I for one welcome the new metamodel integration 00:01
autrijus ...and concurrency too 00:06
autrijus commits s17 early draft
sub bomb is atomic { ... }; sub path is critical { ... };
eric256 lol 00:07
rafl_ :-)
autrijus the hs runcore will get a head start
azuroth I just changed the pods and kwik... is the one on pugscode.org automatically converted to html or something?
autrijus as it's all from GHC.Conc ;) 00:08
but liz also got uncountable numbers of Thread::* modules on CPAN to emulate this
so p5 runtime shouldn't be _that_ bad either
azuroth: which url?
azuroth hmm. search.cpan.org/dist/Perl6-Pugs/lib...s/hack.pod - it's linked to from pugscode's index 00:09
autrijus ahh.
yeah it's pod2html of the latst release
so your fix will wait till 6.28.0
azuroth ahh, okay 00:10
Khisanth hmm how long does it usually take to compile ghc?
svnbot6 r7787 | autrijus++ | * S17 draft, sketch notes, with Liz
r7788 | azuroth++ | Fixed some grammaticos and wrongness in documentation
autrijus Khisanth: if you insist... you can do that. on my laptop is 5hr 00:11
Khisanth !
eric256 (grammaticos and wrongness)++ lol 00:12
azuroth ;-p
what are some easy TODOs? ^_^ 00:17
autrijus in hs space? 00:18
azuroth yeah - or anything, really
eric256 you can help link tests to documentation ;)
autrijus I'm actually going to sleep soonish -- ask the channel for ideas :) 00:19
I can use help implementing both the conc and objsp stuff, but more details tomorrow :)
azuroth okay, cool
link tests to documentation, eh?
eric256 yea. L<S12/"Heading" /regex to specific spot in paragraph/> tests.pugscode.org 00:20
stevan autrijus: I just finished reading the "Ruby in C" section of the PickAxe book,.. it was actually very helpful,... (and much cleaner than XS) 00:21
autrijus good.
and it would make sense to compare to YARV arch
stevan yes
very much so
autrijus which is like, distilled version of the tree reduction semantics
(ruby was tree reduct like pugs-vanilla and p5)
but they are going bytecode as well
stevan ah 00:22
bytecode is so old school though ;)
autrijus ASTs are fine for semantics stuff and static analysis
azuroth eric256: where can I find S12? ;-p
autrijus but for minimal runtime vocab, you want something more restrictive, and stack bytecode is one of the many comparably restrictive ways to achieve that 00:23
eric256 either feather.perl6.nl/~eric256/t_index/Synopsis/ or dev.perl.org/perl6/doc/synopsis.html
autrijus not doing that will result in runtime bloat, like our dear p5vm
;)
(aka, "too many primitives")
stevan autrijus: so should I rethink the P6::Objectspace::Core stuff? 00:24
autrijus stevan: I thought you were going to rethink it anyway :)
stevan yes, but I guess I am asking how radically I am going to rethink it :)
azuroth ahh, ok. thanks
azuroth away
stevan should I lean more towards bytecode??
autrijus stevan: no, I think minimal function call API works better than bytecode 00:25
since they are isomorphic
stevan ok
autrijus but easier to reason with
sorta like the ANF<->SSA duality
also, because we are not really writing VMs.
it would be very much not fun if we have to write either YARV or Parrot.
;)
stevan yes, at least not yet ;)
autrijus nah, not going to :)
we enslave^Wdominate^Wtarget VMs instead 00:26
stevan ponders writing in PIR again,.. then slaps himself
autrijus maybe you can invent a minimal notation for PIR
but then, why not just take the JS, Pike, IO, or whatever notation
(that nests functions and handles objs) 00:27
stevan :)
autrijus but really, the effort would amount to be the same as calling a set of p5 space core funcs
so I fail to see the gain :)
stevan so do you see a usefulness for anything in Core::, or should I svk rm it all ? 00:28
eric256 failes to see what either of you are even talking about. lol ;)
stevan eric256: ObjectSpace :)
autrijus eric256: it's in docs/notes/object_space.txt
eric256 ahhh...and rolles his eyes. ;)
stevan :D
autrijus stevan: the casting stuff are fine 00:29
base type enumeration and coercion rules
those we can't do without anyway
so I don't think they need to go
they are the intrinsics
stevan they need to go? or stay?
autrijus still makes sense Perl6::Val really
stevan sorry didnt see "dont"
autrijus :p
stevan so maybe I just assume these things are my VM primatives then?
or at least thin wrappers around them 00:30
autrijus sure, like the ruby "val" and "num" etc
stevan yeah
autrijus you don't need to reason about them at instruction/coreprim level
they are just there, aye
closing thoughts of the day: 00:33
class Hash { method circumfix:<( )> { say 'Whee!' } }; %ENV(42); 00:34
autrijus waves goodnight :)
stevan nite :)
mugwump shouldn't that be post_circumfix? ;)
autrijus riight ;)
postcircumfix 00:35
svnbot6 r7789 | eric256++ | Test-Catalog: Now highlights multi line tests correctly. 00:39
eric256 hey...i know i can use perl5 modules in perl6....supposidly...anyone know how? 00:50
nm. lol
rafl_ use perl5:Foo?
eric256 yea i kept trying perl5- ...didn't it used to be that? 00:51
rafl_ Not sure. I only know that pugs implements perl5:.
eric256 do you know the new 'use lib? 00:54
misc eric256: use.perl.org/~clkao/journal/24897 i think ? 00:56
eric256 misc .... rafl had it right.. much have changed since then 00:57
Juerd: ping 01:03
r0nny_ re 01:12
rafl_: ping? 01:13
rafl_ r0nny_: pong
r0nny_ got svk now
kinda lost in the manpage - cant see, how to get a p4 repo with this 01:14
rafl_ mirror p4:user@host:1666://path/... DEPOTPATH 01:17
r0nny_ hmm 01:18
eric256 has to ask 01:32
what is p4?
rafl_ Some non-free RCS. 01:33
tewk p4 is Perforce 01:44
eric256 hmmm. zip is documented to use ; instead of , .... anyone know if that has officialy changed. pugs supports , not ; :) 03:19
luqui no, zip really does use ; 03:21
but pugs doesn't support it
so pugs uses ,
eric256 gotcha. ;) why would zip want ; instead of , now that , doesn't flatten
luqui probably: zip(1,2,3;4,5,6) 03:23
and zip(f(); g()), so f and g can be called in list context instead of scalar context
eric256 ; forces list context? 03:24
luqui not necessarily (actually maybe, I'm not sure)
eric256 the first one would be zip( (1..3), (4..6) ); 03:25
luqui but , definitely doesn't allow list context
because zip(f(), g()), if f and g were called in list context, they would have to be part of the same list
eric256 true. hmmm ; for something other than the end of a statment seems...weird. ;) but i guess if thats the way it is, then i'll deal. ;)
luqui we use it as the "greater comma"
my $matrix = [1,0;0,1]
eric256 okay....second question. why doens't pugs support it yet?
luqui nobody's written it yet? 03:26
and because it's not quite specced
or it wasn't until a week ago
eric256 just wondered if there was some current barrier
lol. gotcha.
stevan_ autrijus: when you backlog,.. this is kind of neat to play with www.atdot.net/yc/compile 03:33
Khisanth heh so perl has three commas now? :) 04:29
dduncan what are the three commas? 04:39
and don't say '=>' because that isn't a comma
pantie1 bouncey bouncey? 05:48
www.livejournal.com/users/clavice_beato/
clavice and I are space amigos 05:49
will you be our space amigos? 05:50
Khisanth ?eval package Foo;
evalbot_7789 undef
Khisanth ?eval package Foo; sub foo { say "foo" } package Main; Foo::foo; 05:51
evalbot_7789 foo bool::true
pantie1 fool, bool true! 05:52
mr T says...
Khisanth ?eval package Foo; sub foo { say caller().package } package Main; Foo::foo; 05:53
evalbot_7789 Main bool::true
Khisanth ?eval $?PUGS_VERSION
evalbot_7789 \"Perl6 User\'s Golfing System, version 6.2.10, October 10, 2005 (r7789)"
pantie1 ?eval $?OS 05:54
evalbot_7789 \"linux"
pantie1 ?eval $*OS
evalbot_7789 \undef
dduncan who is this joker? 06:03
geoffb good morning, nothingmuch 06:19
... and goodnight, all 06:23
nothingmuch hhi ho geoffb 06:45
sleep tight
xinming ?eval exit 08:22
evalbot_7789 Error: No compatible subroutine found: "&exit"
xinming :-P
iblechbot: ping 08:31
wolverian ?eval ("a".."c").end 10:39
evalbot_7789 2
liz6 ?eval ('a'..'c').end 10:40
evalbot_7789 2
ods15 ?eval 'a'..'c' 10:41
wolverian (just checking if it really was .end and not .last or something)
evalbot_7789 ("a", "b", "c")
ods15 ?eval 'a'..'aa'
evalbot_7789 ("a",)
ods15 ?eval 'a'..'aaa'
evalbot_7789 ("a",)
ods15 heh
?eval 'aa'..'ba'
evalbot_7789 ("aa", "ab", "ac", "ad", "ae", "af", "ag", "ah", "ai", "aj", "ak", "al", "am", "an", "ao", "ap", "aq", "ar", "as", "at", "au", "av", "aw", "ax", "ay", "az", "ba")
ods15 ?eval 'a1'..'b1'
evalbot_7789 ("a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "b0", "b1")
ods15 ?eval '01'..'10' 10:42
evalbot_7789 ("01", "02", "03", "04", "05", "06", "07", "08", "09", "10")
ods15 ?eval '1'..'10'
evalbot_7789 ("1",)
ods15 cool...
bye
wilx Omg, does Perl6 read minds? :) 10:43
wolverian yes.
liz6 ?eval 1..10 10:44
evalbot_7789 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
liz6 ?eval 1.."10"
evalbot_7789 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
liz6 ?eval "1"..10
evalbot_7789 ("1",)
wolverian that's a bug. :) 10:45
hmm. perhaps $obj.sleep( until => "readable" ); # random thought while reading S17 draft 10:46
liz6 keeping Damians PBP in mind, maybe: 10:47
$obj.sleep( while => "not_readable" ); 10:48
wolverian hmm. 10:49
$obj.sleep_until: { $obj.readable }; # flexible?
er, although that's just the same as '1 until $obj.readable' which is pretty horrid 10:51
liz6 it's the until
that seems to be hard on people's minds
and therefor not recommended in Perl Best Practices...
wolverian right. I haven't read PBP yet, actually :) 10:52
liz6 recommended... 10:53
dduncan I've read it cover to cover ... highly recommended
wolverian I'll try to get my hands on it. 10:54
azuroth evening
dduncan I find it the second most useful perl book of them all, with 'programming perl' being the first
at least at my current stage of experience 10:55
azuroth what book is this?
dduncan perl best practices
kgftr|konobi pbp++ # lots of useful stuff in there, such as indirect method calls being very very bad! 10:56
dduncan of course, people in other situations will likely find different books more useful ... such as Peter Scott's on dealing with other people's horrid code
or the 'learning' ones 10:57
or the domain specific ones
but the classic camel and pbp are my own personal most useful atm
broquaint PBP = Sensibility distilled. 10:59
dduncan indeed ... quite likely to become a defacto standard methinks
at least I'm contributing to that status
as all my new cpan work is or will be mostly conformant 11:00
azuroth I'll have to read it ...
metaperl has anyone convinced Larry to allow /* */ as a multi-line comment for p6? 11:01
wolverian I hate ->get/set accessors. (Class::Std.)
dduncan don't know
wolverian metaperl, not yet. :) 11:02
dduncan I like get/set accessors
wolverian I like lvalue accessors/mutators.
(albeit they suck in perl5.)
dduncan I never used them in my life
wolverian it's the way of the future! :) (C# and Perl6 both use them.) 11:03
liz6 lvalue accessors are not recommended in PBP
wolverian liz6, I know. I understand it's not because of any inherent fault in them, but in the implementation of them in perl5, though.
I might be wrong, since I haven't read PBP.
dduncan they're fine if the values in question can contain any value at all and no error checking is necessary
wolverian dduncan, why? you can easily add type checking. 11:04
dduncan, see, for an example, Attribute::Property on CPAN.
broquaint I think the idea behind not having multi-line comments, metaperl, is that if your comment is taking up multiple lines then it should be in the documentation, hence =pod/=cutthe best way to facilitate multi-line comments.
dduncan oh yes, you mean in perl 6
wolverian dduncan, I mean in both perl5 and perl6.
metaperl broquaint: i see
broquaint That's just my theory, mind you.
dduncan but in that case, you haven't actually got a bare lvalue accessor, as it is wrapped in an object
wolverian dduncan, a closure. :) 11:05
dduncan maybe its just the syntax you like?
wolverian of course it's just the syntax. they are exactly equivalent in other ways to get/set
liz6 wolverian: you're right 11:06
broquaint Not quite, wolverian, as in lvalue you're just boshing a value into a attribute but in the accessor method style you've got paramters and arguments and binding and so forth.
wolverian broquaint, true, but if it's that complex it shouldn't be an accessor/mutator anymore, but a generic method. 11:07
dduncan and there's the error checking thing thats different with vanilla perl 5
wolverian dduncan, yes.
dduncan and that's mainly what pbp was against
broquaint Fair enough, wolverian. 11:08
wolverian dduncan, that's certainly understandable.
dduncan, but CPAN is there for us to use. :)
broquaint But, to be fair, PBP is a sensible approach to programming in perl, and programming in perl isn't always sensible :)
dduncan of course, pbp's ground rule is to get people to do things by choice, rather than by habit 11:09
wolverian always following the rules is not -Ofun :)
broquaint Or should I say the programming with perl isn't always sensible.
dduncan if you have an explicit reason to do something against its recommendations, that's still going with its intent
and using a cpan module to add whatever is such a conscious choice
liz6 indeed 11:10
dduncan good night, past 3am here and all ... 11:13
metaperl good night D
liz6 nightynight... just after noon here... ;-) 11:14
xinming 19:33 here. 11:33
liz6 isn't this great: a truly global effort!
xinming but too few commits. :/ 11:34
Juerd IRC pings are so annoying, and such a waste of time. 12:09
Why do people insist on "$nick: ping", waitfor(pong), "$nick: $question" instead of just beginning with "$nick: $question"? 12:10
02:08 < eric256> Juerd: ping
But he is offline now.
If he had asked a question, I'd be able to email him an answer. 12:11
webmind because someone wants a more direct conversation ?
Juerd assumes he wanted to ask something, not socialize.
webmind could be impatience
Juerd afk 12:12
integral but then there's the people who ask a question, and then ping all the people who answered them last time ... 12:33
broquaint ?eval my $_ = "say q/things/;" eval 13:06
evalbot_7789 Error: unexpected "e" expecting operator, ";" or end of input
broquaint ?eval my $_ = "say q/things/;"; eval
evalbot_7789 undef
broquaint ?eval my $_ = "q/things/;"; eval
evalbot_7789 undef
broquaint ?eval $?PUGS_VERSION 13:07
evalbot_7789 \"Perl6 User\'s Golfing System, version 6.2.10, October 10, 2005 (r7789)"
broquaint Hrm.
svnbot6 r7790 | autrijus++ | * S17: Incoporate suggestion from Austin Frank; s/wait/join/; timer; continuation 13:41
r7791 | autrijus++ | * "is throttled" trait 14:05
Limbic_Region salutations liz6 14:15
liz6 hi L~R! 14:16
Juerd wonders if liz6, like perl6, was designed from scratch 14:18
And if she's implemented with Haskell :)
liz6 I'm implemented with Freckles, actually... 14:19
Juerd Is that turing complete? :)
liz6 Probably not... 14:20
Limbic_Region liz6 how is working with autrijus?
liz6 I always feel like I'm slowing down Autrijus...
but sometimes that's a good thing...
Juerd can imagine
He's incredibly fast :)
liz6 even faster than you, Juerd... ;-) 14:21
Juerd Certainly
autrijus yo :) 14:23
Juerd Is that like io? :) 14:24
autrijus driving fast doesn't matter much if you don't know where to go
and liz6 always know where to go, on S17 :)
Limbic_Region isn't S17 supposed to cover things like coroutines as well?
autrijus Limbic_Region: yes.
and we'll get there
Limbic_Region good
Juerd Nice metaphor
autrijus which is also why we're using Concurrency instead of Threading 14:25
as the synopsis name
because coros are just not very threaded
Limbic_Region right - coros are fancy continuations
autrijus if by "fancy" you mean "supressed and maimed", yes 14:26
liz6 ;-)
Limbic_Region hmmm - no, that's not what I meant
continuations only work from 1 point right?
while a coroutine can continue and then stop again
?
autrijus er no, continuations are the most general of all 14:27
in coro you can only yield into your caller's continuation
while if you have first class continuation, you can invoke from anywhere to anywhere with anything
Limbic_Region ok, but you can yield mutliple times in multiple places
autrijus sure, so if you have cont, you can implement coro as simply passing the cont into the coro 14:28
and yield would be invoking the cont, passing it as argument the cont of the coro
Limbic_Region well, implementation is above my head
autrijus but yeah, coro is more accessible.
cont is basically goto() that takes a value and preserves call stack. 14:29
very hard to use sensibly.
s/preserve/restore/
Limbic_Region right
which is why I saw coros as being more fancy
perhaps wrong word
autrijus more "dressed up"
nod
liz6 need to prepare for some $work, later! 14:30
autrijus no, I guess "fancy" is the correct word. it's just my mind is in the direction of "the more abstract, bare and generic the thing is, the sexier it is"
obra There is such a thing as too abstract and generic
autrijus resists a joke on naked singularities
there is.
Limbic_Region of course, these aren't true coros in the sense that Knuth postulated about
autrijus obra: looked at the S17 we committed 5mins ago? 14:31
Limbic_Region we still have a single processor simulating work in tandem
autrijus it's not at all there. just things that we agree should be there
Limbic_Region autrijus - out of curiosity, will you be able to use conts and coros in places where goto's aren't allowed in p5 (body of loops that require initialization for instance)? 14:33
obra autrijus: I haven't looked in the last 5 minutes ;)
autrijus Limbic_Region: yes, of course! 14:34
that's their entire point.
I'm actually thinking about removing the Stmt form in the PIL tree, as everything is really just an expression; you should be able to take continuations in middle of statement 14:35
and, so to speak, goto() into middle of expression.
Limbic_Region well sure, but when I first brought up the question on the list it didn't sound like there was much interest in using them to their full potential
obra starts to imagine using a VM hook to use continuations to do backups of long-running processes 14:36
or to do realtime loadbalancing at the process level.
autrijus right.
obra That way you can move one runaway process to each CPU and take down EVERYTHING ;) 14:37
autrijus praises squeak for demonstrating the viability
yeah, mobile code, etc
obra you beat my fingers by 10 sec
autrijus Limbic_Region: it takes education :)
Limbic_Region autrijus - good, I haven't lost faith yet ;-) The other question I asked in that thread were the same questions Dan highlighted in www.sidhe.org/~dan/blog/archives/000178.html 14:38
there seemed to be a lot of disagreement amongst @larry at the time
autrijus yeah, but in 2.5 yrs, things changed 14:39
Limbic_Region IIRC, between Luke and Damian
that wasn't 2.5 years ago - it was this past May
autrijus oh. that was between lazy gather vs explicit coro
I think we need both ;)
Limbic_Region well that too 14:40
but still not what I was talking about
autrijus *puzzled*
Limbic_Region parameters