Run Perl6 Now! & pugscode.org ('Overview', 'Journal') & pugs.kwiki.org & channel log: xrl.us/e98m & < autrijus> damn, my journal keeps getting obsoleted by #perl6. Set by Juerd_ on 12 March 2005. |
|||
Juerd | Autothreading on creation doesn't have much practical use though | 00:00 | |
mugwump: Perlego isn't originally perl-ego, but perl-eg-o | |||
Esperanto for, quite literally, a greater/better pearl | |||
wilx | Eh, I thought it was per-lego :) | 00:08 | |
Or per(l)ego with the l shared between the two parts. | |||
ebalbaiue | Hello is anyone here fimilar with curses widgets. | 00:49 | |
obra | nothingmuch++ # switched Test:: to use C::C::C:: | 02:42 | |
or rather, let me do so | |||
ingy | hola | 02:44 | |
obra | hey ingy | 02:45 | |
I did som e refactoring of Test.pm | |||
commentary/fixes appreciated | |||
ingy | hi obra | 02:47 | |
jabbot | pugs - 697 - Switch to using $?CALLER::CALLER::CALLER | ||
Alias_ | EVERYBODY CONGA!!! | 02:48 | |
ingy | hi Alias_ | ||
Alias_ | hello | ||
ingy | Alias_: are you channeling TorgoX? | 02:49 | |
Alias_ | he said the same thing? | ||
ingy | nm | ||
Alias_ | ok | ||
:) | |||
ingy | Q: witheo hashes? | 03:20 | |
jabbot | pugs - 698 - add op x= test | 03:37 | |
pugs - 700 - * implement x=, xx=, Y= etc. | 04:27 | ||
pugs - 699 - * findVar now takes env as argument. | |||
hoowa | good morning | 04:29 | |
autrijus | hi | 04:31 | |
wow, nothingmuch & co Did It. | |||
ingy | hola | 04:33 | |
autrijus | yo! | ||
fayland++ # x=, xx=, etc | |||
ingy | working on doc support... little confused why perlkwid is in Kwid | 04:34 | |
hoowa | fayland ??? | ||
autrijus | or "flw" | ||
obra | morning autrijus | ||
hoowa | what's x= xx=??? | ||
autrijus | $a x= 3; # $a = $a x 3 | 04:35 | |
hey obra. | |||
hoowa | hehe | ||
autrijus | it's implemented :) | ||
hoowa | great | 04:36 | |
autrijus | ingy: I don't really know... it should've been S26, you know | 04:37 | |
Synopsis 26: Plain Old Documentation | |||
(camel ch26) | |||
hcchien | there are some warnings in AST.hs. Is it right? | ||
autrijus | hcchien: GHC 6.4? | ||
obra | autrijus/ingy, I'd love comments on my changes to the test suite. | ||
since it's my first perl6 code | |||
hcchien | autrijus: 6.2.2 | ||
autrijus | hcchien: nopaste the warnings? i can't see any warnings | 04:38 | |
hcchien | k, a sec | ||
autrijus | obra: C::C::C::POS? | 04:39 | |
ingy | autrijus: do you have a few minutes to work out the doc/layout details? | ||
autrijus | looks very sane. | ||
ingy: I didn't get enough sleep, so my brain isn't functioning properly yet | |||
hoowa | i am doing translation. | ||
hcchien | autrijus: irc.csie.org:8888/109 | 04:40 | |
autrijus | maybe 30 mins from now so I can get another short nap? | ||
hoowa | perl6 basic sytanx from perl6 and parrot..... oreilly book. | ||
autrijus | hcchien: you are using an old copy. | ||
hcchien | oh? let me pull again.... | ||
autrijus | in my AST.hs line 533 it reads | ||
Just _ -> internalError "readVar failed on non-value bindings" | |||
ingy | autrijus: ok, maybe we can work in SEE | ||
autrijus | which covers the base case | ||
obra | autrijus: yeah, I'm unsure about doing something that deep, but there's only one path for C::C::CC | ||
autrijus | hcchien: your copy is sooo old :D | ||
obra | but it does work now | ||
autrijus | flw: hellow! | 04:41 | |
flw: I implemented x= xx= Y= so yoru test now passes! | |||
flw++ | |||
flw: add yourself to AUTHORS? | |||
obra | autrijus: and it removed a bunch of code duplication | ||
autrijus | obra: right, and I think that makes perfect sense. | 04:42 | |
obra: so, perl6 feels like perl? :) | |||
obra | ah. ok | ||
perl6 feels a little weird. | |||
prototypes are strange | |||
I want named parameters | 04:43 | ||
and pugs syntax error reporting is a bit hard to decipher | |||
autrijus | we have named parameters in prototypes | ||
obra | oh? | ||
autrijus | and you can already invoke them using pair => syntax. | ||
it's one of the things done in the first week. | |||
obra | ! | ||
! | 04:44 | ||
what tests do I look at? | |||
should this work? : my %foo = {}; %foo{'bar'} = "Baz"; say %foo{'bar'}; | |||
autrijus | no thests for it, bah | ||
obra was asked today if perl6 supported non-scalar hash keys | |||
autrijus: type out a few examples. I'll testify | |||
autrijus | obra: {} is a closure yet | ||
the autohashify isn't there | 04:45 | ||
I seem to recall a test for that | |||
obra | sorry. meant tests for named parmas | ||
autrijus | so it's like | ||
my %foo = sub {...} | |||
which won't really fly | |||
obra | yeah. now I see | ||
autrijus | ok. named params | ||
a sec. | 04:46 | ||
hmm | 04:47 | ||
for some reason the dispatch code was bitrotten | |||
ingy | autrijus: witheo hashes? | ||
autrijus | so much for non-covered code | 04:48 | |
sub foo (+$x) { $x } foo( 'x' => 4 ) | |||
jabbot | pugs - 701 - fixed nits | ||
autrijus | is the canonical example | ||
obra | hah. | ||
(the bitrot) | |||
autrijus | +$x makes it addressable only by name | ||
positional args can also optionally be addressed by name. | |||
obra | Ok. that rocks so hard. | 04:49 | |
autrijus | named args are optional by default. | ||
obra | where would you like these tests? | ||
autrijus | but if you use ++$x | ||
obra | and how do you do defaulting? | ||
autrijus | then it's named and required. | ||
sub foo (+$x = 3) { $x } | |||
# defaults to 3 | |||
sub foo ($x, +$y = $x) { } # this even works. | |||
obra | where would you like tests? | ||
autrijus | I _think_ t/syntax | 04:50 | |
but I need to take a nap now | |||
see details in dev.perl.org/perl6/synopsis/S06.html | |||
also do some TODO for bareword quoting | |||
and :name<value> syntax | |||
that is going to rock so much. | 04:51 | ||
autrijus bbiab & | |||
obra | why is it $?CALLER, rather than caller() | 04:53 | |
ingy | $? vars are lexical environment vars I think | 04:54 | |
$?CALLER should return a caller object | |||
obra | pr rather "but s06 says 'caller' | ||
"paste.husk.org/2796 | 05:06 | ||
What's wrong with that code? | |||
lucs | plan 9... from outer space! | ||
crysflame stands in front of a grave quietly. | 05:07 | ||
jabbot | pugs - 703 - * (1,2)|(3,4) was parsed as any(1,2,3,4) | 05:11 | |
pugs - 702 - * remove borked junction example | |||
obra | checked in a snapshot of failing tests | 05:25 | |
I don't even understnad perl6 syntax :/ | |||
jabbot | pugs - 706 - Miss implepmented operator priority '??: | 05:31 | |
pugs - 705 - r8445@hualien: jesse | 2005-03-14 00:2 | |||
pugs - 704 - r8444@hualien: jesse | 2005-03-14 00:1 | |||
crysflame | neat | 05:33 | |
someone++ # for jabbot. | |||
obra | gugod, iirc | ||
cm | maybe i do :-) | 05:34 | |
obra | cm: t/syntax/subroutine* | ||
cm | hm? | 05:35 | |
Khisanth | cm :p | ||
cm | obra: t/oot/toot? :| | ||
obra | wait. cm, you weren't responding to my last comment :/ | ||
cm | no, sorry :) | 05:36 | |
first time in a perl channel and i already cause confusion :p | |||
cm hides in a corner, cautiously watching the camel folks | 05:37 | ||
obra | no worries, cm. | ||
welcome, | |||
Darren_Duncan | hello ... | ||
cm | hello, hello.. | 05:38 | |
Darren_Duncan | I just noticed the request on p6c to port a CPAN module ... has anyone else started on that yet ... I said I would work on it | ||
obra | Darren_Duncan: url? | ||
note also, that a straight port is likely a bad plan. the code is..not fun. | |||
Darren_Duncan | basically, since I don't know anything about said module going in, all I can promise in the short term is to translate the easier / more obvious parts | 05:39 | |
obra | it likely makes sense to start with things like an http library and a sha1 library | ||
starting with the dependencies that are more general will probably be the sane side | |||
Darren_Duncan | obra, are you on p6c? | 05:40 | |
obra | Darren_Duncan: I'm not | 05:41 | |
Darren_Duncan | A web url for the request is www.nntp.perl.org/group/perl.perl6.compiler/308 | ||
obra | oh. | ||
I misunderstood | |||
I thought you meant "A CPAN interface" module | |||
not a module from CPAN | |||
Darren_Duncan | my reply is www.nntp.perl.org/group/perl.perl6.compiler/310 | ||
obra | (the former has also been under discussion) | ||
very cool | |||
Darren_Duncan | I only promise to do the obvious bits | 05:42 | |
eg, change "." to "~", "->" to ".", loop structures, etc | |||
obra nods | |||
Darren_Duncan | essentially, its the first refactoring round | ||
I only promise to do 100% of the job on my own modules, since I know them intimitely | 05:43 | ||
FYI, I promised to give the talk at the Perl Mongers meeting in my area for march, which is in 2 days ... I'm going to talk about Perl 6 and what it's like to translate to it ... | 05:44 | ||
my group is Victoria.pm | |||
looking on this module will give me more to talk about | 05:45 | ||
crysflame blinks | |||
cm | it's funny how sigils still confuse me :| | 05:49 | |
Darren_Duncan | I just uploaded darrenduncan.net/d/perl/Locale-Keye....02.tar.gz to CPAN; this is the newest Perl 5 version of that module and includes improvements that I made to it simultaneously to porting the module to Perl 6 ... so LKT-1.02 and the LKT in Pugs-6.0.11 are the most identical versions to each other. | 06:38 | |
I will start the Algorithm::Dependency port tomorrow. | 06:39 | ||
... as Adam Kennedy requested | |||
I'm signing off ... good night. | 06:41 | ||
autrijus | darren++ | 07:00 | |
obra | autrijus: I checked in non-compiling tests to try to get input | 07:01 | |
autrijus | okie. | 07:02 | |
that's just fine. | |||
ooh guido dropping anonymous functions and reduce() from python 3000. | 07:07 | ||
or even 2.5. | |||
his is certainly not of lambda nature. | 07:08 | ||
obra | yeah | ||
autrijus wonders if shapr will drop python in favor of perl for his $daily_work now | 07:10 | ||
looking at namedargs. | 07:12 | ||
obra | it's likely that I just don't understand perl6 syntax | 07:18 | |
Khisanth | autrijus: maybe he will fork a python in Haskell :) | 07:20 | |
autrijus | ooh :) | 07:21 | |
or he'll write a python parser frontend for pugs. | |||
lightstep | perlbot: paste | 07:22 | |
perlbot | Paste your code and #perl will be able to view it: sial.org/pbot/perl dragon.cbi.tamucc.edu:8080 erxz.com/pb | ||
wolverian | good morning everyone | ||
cls_bsd | autrijus: where is current TODO? | ||
cls_bsd just read a lot of Haskell Tutorial | |||
erxz_paste | "lightstep" at 212.235.32.146 pasted "a prettier findVar (or, using ContT for fun and profit)" (17 lines) at erxz.com/pb/541 | 07:23 | |
lightstep couldn't resist to show of his Scheme experience | 07:24 | ||
s/of/off/ | 07:25 | ||
autrijus looks | 07:28 | ||
cls_bsd: wow. are you interested in hacking in more primitives? | |||
useful ones like substr() | |||
lightstep: ooooh very profitable | |||
lightstep: are you a committer? can you commit it in? :) | 07:29 | ||
lightstep | i'm not a committer | ||
autrijus | email addr? | ||
I'll make you one :) | |||
cls_bsd | substr | ||
lightstep | amirlb at bonbon [dot] net | ||
how do i commit? | |||
cls_bsd | via svn/svk | ||
autrijus | svn.openfoundry.org/pugs/ | 07:30 | |
change a file, "svn ci" | |||
that's all | |||
lightstep | cool | ||
autrijus | invitation sent. | ||
lightstep | the terms of use page only shows jibberish | 07:33 | |
autrijus | that jibberish is here: | ||
wagner.elixus.org/~hcchien/termtouse.html | |||
it's sf.net boilerplate. | |||
sorry for borked l10n. | |||
lightstep | i fucked up my local copy | 07:40 | |
wolverian | whoa, smartmatch in p5! xmath++ | ||
lightstep | what is the debian package name for svn? | 07:41 | |
oh, subversion | 07:42 | ||
autrijus | subversion ? | ||
wolverian: wow. url? | |||
wolverian | autrijus: www.perlmonks.org/index.pl?node_id=439084 | 07:43 | |
obra | autrijus: you know about cia.navi.cx? | 07:46 | |
openfoundry should submit to it | |||
nothingmuch | morning | 07:49 | |
autrijus | wolverian: ooh | 07:50 | |
wolverian | autrijus: this with source filters (Lexical::Attributes..) makes p5 remarkably more like p6! | 07:51 | |
Juerd | wolverian: Get scrottie's book "Perl 6 Now: the core ideas illustrated with Perl 5" | 07:53 | |
wolverian: It's full of weird black magic to get Perl 6 features working in Perl 5 | |||
nothingmuch | autrijus: did you hear about our smashing success yday? | ||
Juerd | Including source filtering, B::Generate, and just writing things differently | ||
wolverian | Juerd: I'll try. :) | 07:54 | |
nothingmuch | anyone: is r706's bug tested for? | 07:57 | |
lightstep | nothingmuch, autrijus submitted rev 699 about the same function, a while later | ||
nothingmuch | do we have a test for operator pecedence? | ||
lightstep | and r706 includes only a test | ||
jabbot | pugs - 707 - simplifying some logic | 07:58 | |
obra | nothingmuch: not seeing any | ||
nothingmuch | lightstep: good point | 07:59 | |
nothingmuch starts writing a more formal t/base/operator_precedence | 08:00 | ||
obra | not in t/op? | 08:01 | |
nothingmuch | t/op/precedence.t? | 08:02 | |
that also makes sense, but in a different way | 08:03 | ||
obra | I first went to look for it in t/op | ||
where is it in p5? | |||
nothingmuch | i'm not sure there is one | 08:16 | |
i think the spec came after the impl | |||
autrijus | nothingmuch++ # smashing success | 08:18 | |
nothingmuch | lightstep++ # really responsible | ||
lumi++ # helped a lot too | |||
larsen++ # was signed on SEE the entire session ;-) | 08:20 | ||
theorbtwo++ # nearly got SEE working | |||
perlbot karma lightstep | 08:21 | ||
perlbot | Karma for lightstep: 1 | ||
nothingmuch | lighstep++ | ||
perlbot karma lightstep | |||
perlbot | Karma for lightstep: 1 | ||
nothingmuch | oh | 08:22 | |
lightstep++ | |||
perlbot karma lightstep | |||
perlbot | Karma for lightstep: 2 | ||
lightstep | perlbot, karma nothingmuch | 08:23 | |
perlbot | Karma for nothingmuch: 11 | ||
jabbot | lightstep: nothingmuch has neutral karma | ||
lightstep | jabbot, noone asked you | ||
obra | perlbot, karma autrijus | ||
perlbot | Karma for autrijus: 11 | ||
obra | perlbot, karma eleven | ||
perlbot | eleven doesn't have any karma | ||
wolverian | hrm, are there any plans for a generic 'in' inclusion operator in perl6, ala python? | 08:29 | |
Juerd | wolverian: ~~ | 08:35 | |
Or isn't @array ~~ $element what you mean? | 08:36 | ||
rgs | er, $element ~~ @array no ? | 08:37 | |
er, no, sorry | |||
rgs back to lurk mode | |||
jabbot | pugs - 708 - remove superfluous function | 08:38 | |
wolverian | Juerd: I just realised that. thanks. | 08:39 | |
where is the table of the defined ~~ operations? | |||
Juerd | S04 | ||
wolverian | thanks again. :) | ||
Juerd | rgs: $el ~~ @ar works too | ||
rgs: Most lhs ~~ rhs work as rhs ~~ lhs too | 08:40 | ||
nothingmuch | also in t/op/smartmatch.t | ||
in case you feel like contributing while you read ;-) | |||
(hash smartmatching is not tested yet) | |||
Juerd | Better write some tests, because SmartMatch.pm was much easier to implement than I had thought | ||
wolverian | Juerd: hrm, it doesn't define 'all(@foo) ~~ @bar' | ||
Juerd | Haven't yet tested any line of it though | ||
wolverian | does that make sense? | ||
Juerd | wolverian: Then that means that every @foo should ~~ @bar | 08:41 | |
wolverian | Juerd: yes. | ||
Juerd | If no specific thing is defined, normal behaviour counts. | ||
lightstep | like in a subset? | ||
wolverian | Juerd: right. | ||
lightstep: yes! :) | |||
Juerd | wolverian: all(@foo) ~~ none(@bar) | ||
wolverian: Now it gets scarier :) | 08:42 | ||
wolverian | heh. | ||
Juerd | wolverian: all(@used_words) ~~ none(@blacklisted_words) or die | ||
Though I'd write it as | |||
any(@used_words) ~~ @blacklisted_words | 08:43 | ||
(and die) | |||
wolverian | I don't want to use ~~ explicitly | ||
Juerd | Why not? | ||
wolverian | I don't know. I'm probably trying to emulate python | ||
lightstep | sub disjoint (@a, @b) {all(@a) ~~ none(@b)} | ||
then you can have english instead of line noise | 08:44 | ||
nothingmuch | that is sort of like 1 ~~ 1 and say "foo" | ||
wolverian: given left_hand_side_of_smartmatch { when right_hand_side_of_smartmatch { } } | |||
given 1 { when 1 { say "foo" } } | |||
Juerd | sub disjoint { not any(@^a) ~~ @^b } # probably faster | ||
nothingmuch | lightstep: you could also make that infix ;-) | ||
wolverian | for @words.map:{ .split } { when @validchars { say } else { say "error in $_" } } | 08:45 | |
something like that, except I don't even like the map | |||
Juerd | tnx.nl/3655JIRF | ||
wolverian | the 'else' is probably wrong. :) | ||
Juerd | Does that look sane? | ||
Anyone want to write tests?_ | |||
s/_// | |||
wolverian | nok and pok are probably the best function names ever. | 08:46 | |
cutest, anyway. | |||
Juerd | ... | ||
wolverian | I'm so helpful. :) | ||
Juerd | Now whip up some tests for me to show you're sorry :) | 08:47 | |
wolverian | I guess 'for @words { say if .split ~~ @validchars }' is clear enough. | ||
lightstep | there are 600-odd todo tests | ||
nothingmuch | lightstep: uhuh | ||
lightstep | that's like 40% | 08:48 | |
nothingmuch | yup | ||
Juerd | wolverian: say .split ~~ /:each @validchars/; | ||
wolverian | except that probably wants to be .split(//) or so. maybe. | ||
nothingmuch | much of pugs is not yet implemented | ||
Juerd | eh | ||
wolverian | Juerd: why? | ||
Juerd | Without .split, of course | ||
nothingmuch | (1 | 2 ^ 3) <-- what does that mean? | ||
wolverian | oh. | ||
Juerd | wolverian: say /:each @validchars/; | ||
wolverian | I don't grok that. | ||
nothingmuch | lightstep: expect many more when people write OOP tests | ||
and i finally get around to converting rules | |||
Juerd | wolverian: /@foo/ is /@foo[0] | @foo[1] | .../ | ||
nothingmuch | neither system is done yet, and will have many many todos | ||
Juerd | wolverian: :each is the new /g | ||
wolverian | Juerd: oh. right. I'm used to m:each/.../ so that confused me, too. | 08:49 | |
Juerd | So: match valid characters, return them, say them | ||
wolverian | that is scarily magical though. | 08:50 | |
I think I've used too much python recently. I want everything to be readable without reading any documentation. | |||
(which is not a good thing.) | |||
(except if your programming team consists of morons.) | |||
autrijus | that means a small vocabulary. | ||
which is occasionally useful | |||
wolverian | as I said. :) | 08:51 | |
it's why java works. | |||
autrijus | well no | ||
java's vocabulary is all pushed thru a single dimension | |||
namely class hierarchy and interfaces | |||
wolverian | true. | ||
autrijus | so it's actually Huge. | ||
I've read an article on Jarsec. | |||
and the hoops they jump thru to make a simple monadic parser is amazing. | 08:52 | ||
they had to kludge out lots of vocabulary just to express something simple. | |||
but again, it's outside its problem domain really, so can't blame it | |||
wolverian | I wonder how Parsec, er, I mean, P(erl)arsec, would look | 08:53 | |
autrijus | YAPP / Parsec::RecDescent | 08:54 | |
or, if you are into horror movies, Perl6::Rules | |||
lightstep | monadic parser combinators are old news. arrow combinators are the future. | ||
autrijus | lightstep: where is arrsec and how can I download it? | ||
lightstep | the future, not the present | ||
autrijus | ah. | ||
so it involves a sleep($bignum) | 08:55 | ||
lightstep | yeah | ||
and maybe more | |||
autrijus | I find the monadic properties very useful. | ||
I see the use for apply-less arrows | |||
but my problem domain doesn't yet require them, I think. | |||
but I need to find time to finish reading the category theory textbooks :-/ | 08:56 | ||
lightstep | i thought that arrows were just arrows (which are introduced on page 2) | ||
autrijus | I'm skimmed Pierce's, but Lambek et al's "Higher-Order Categorical Logic" is beyone me currently | 08:57 | |
oh? I thought arrows are premonoidal structures. | |||
lightstep | i don't know cat. theory at all. it looks like lots of smybolism before getting to the real contetnt | 08:58 | |
nothingmuch | is (3 ^ 3) == 3 true or false? | ||
it is true because they are the same | |||
autrijus | aye, just like certain programming languages | ||
nothingmuch | so it's not either all | ||
but it is also false | |||
since both are == 3, but ^ says only this or that | |||
autrijus | it's false. | 08:59 | |
(true ^ true) == false | |||
think xor. | |||
I think pugs' junction modeling is Correct now, so trust what it tells you :) | 09:00 | ||
nothingmuch | yes, i do think xor | ||
i'm just not sure how dwimmy it is | |||
autrijus | don't write ^ | ||
write one() | |||
one(3, 3) == 3 | |||
now it's clear. | |||
I think one() is the least useful and most complex of junctions. | 09:01 | ||
because it does not obey set laws | |||
and has to be modelled with two sets. | |||
Juerd | And least useful. | ||
Oh, you said that already. | |||
:) | |||
autrijus | yup. | ||
:) | |||
junction modeling can really make use of GADTs. | |||
but I'm not ready to require 6.4 just now. | 09:02 | ||
nothingmuch | gadt? | 09:03 | |
autrijus | GADT is da bomb. | ||
and not as alien tech as STM is. | 09:04 | ||
# research.microsoft.com/%7Esimonpj/p.../index.htm | |||
nothingmuch | the link is tempting, but i mustn't click it | ||
autrijus | ok, this is easier | 09:05 | |
# haskell.org/ghc/docs/6.4/html/users.../gadt.html | |||
will only cost you 2 minutes. | |||
(wobbly types)++ | |||
the second link has a concise example. | |||
and after I read that, I wonder why haskell doesn't have it in the first place. | 09:06 | ||
nothingmuch | uh uih uh | ||
autrijus | it is so much mroe intuitive than ordinary data types. | ||
nothingmuch | not yet | ||
after build is out =) | |||
autrijus | sure, I'll not jump to 6.4 just yet :) | ||
cls_bsd | nopaste? | 09:10 | |
... | |||
wolverian | perlbot: nopaste? | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
wolverian | ..shouldn't that be /perl6? | ||
(and #perl6, of course) | |||
nothingmuch is stuck on the 8th level of precedence | 09:15 | ||
between junctive or/xor, and unary err, stuff | |||
Khisanth | wolverian: perlbot is lacking in some features :) | ||
autrijus | bbiab | ||
Khisanth | like seen and context awareness | ||
nothingmuch | what are the quoting properties of => lhs? | 09:56 | |
autrijus | nothingmuch: always quoted regardless of syntactic significant | 10:01 | |
(if => 30 | 10:02 | ||
(if => 300 | |||
err | |||
(if => 300) | |||
is always 'if' => 300 | |||
and never the conditional if | |||
nothingmuch | okay | ||
Juerd | Only if the LHS is a valid identifier of course | ||
autrijus | yeah, that goes w/o saying :) | ||
Juerd | Where something starting with a number is valid enough :) | ||
autrijus | basically it requires a level of looking ahead. | ||
Juerd | Or isn't it? | ||
autrijus | 1 => 3; # not autoquoted, nor should it be | 10:03 | |
Juerd | Really? Hm | ||
autrijus | 1aacc => 3; # probably not autoquoted. | ||
I don't know for sure. | |||
Juerd | I guess that makes sense now hash keys can be non-strings | ||
autrijus | what does 1aacc for anyway. | ||
what does 1aacc stand for, anyway. | |||
nothingmuch | 13361 yuval 25 0 95660 93M 1760 R 24.3 2.5 26:24 2 cover | 10:18 | |
*sigh* | |||
30 minutes for some htmls | 10:19 | ||
wolverian | nice post on p6l about carp() and caller() | 10:20 | |
autrijus | food & | 10:24 | |
wolverian | does 'for @foo>>.split { ... }' iterate over each char or over lists of chars? | 10:26 | |
I assume lists of chars; I'd use * to flatten. am I correct? :) | 10:27 | ||
mattc | Hi All, just posted to the list about working on modules for Pugs. I'm guessing the modules of the standard distribution are the most important, although I'm guessing some of their functionality may be planned as language constructs. So, Pugger's, I guess the question is, what modules do you think are the most important to make a start on? | 10:53 | |
wolverian | people are away a bit right now. be patient. :) | 10:54 | |
mattc | Oh I will be... | ||
cheers | 10:55 | ||
nothingmuch | mattc: err, anything | 11:12 | |
probably best to start with the Test:: namespace | 11:13 | ||
because that way people will have no excuses | |||
then, err, stuff like Time:: | |||
CGI | |||
Digest:: pure perl versions | 11:14 | ||
lumi | And start with the green ones | ||
nothingmuch | Class::ISA (should be fun, but you won't be able to run it yet) | ||
Text:: | |||
you have Balanced, and ParseWords, and Tabs which should all be pretty fun in p6 | |||
Soundex, which is prolly simpler | 11:15 | ||
they are all simple modules | |||
from perl 5's core list | |||
err, simple by purpose | 11:16 | ||
not necessarily impl | |||
mattc | Excellent | ||
that's a good start | |||
nothingmuch | note that for the Text namespace you probably would like rules | ||
which are not there yet | |||
mattc | ok | ||
nothingmuch | but don't let that stop you | 11:17 | |
mattc | so what do you think the way forward is in that situation? | ||
nothingmuch | you can start porting, and then every time you are missing a feature in pugs | ||
see if it has a todo test | |||
if it does not, write one | |||
mattc | fine | ||
nothingmuch | and the lambdafolk will get to it rather quickly | ||
mattc | ok | ||
nothingmuch | except if it's something really big | ||
like things from the roadmap | |||
which have a schedule | 11:18 | ||
mattc | right | ||
nothingmuch | basically, the end result is that the modules are tests for pugs | ||
and the modules' tests are tests for the modules and pugs | |||
and their creation will create more tests | |||
mattc | ok | ||
nothingmuch | specific to pugs | ||
and given this much, it is err, determinable, exactly in what state pugs is | 11:19 | ||
and what needs to be further defined by p6l | |||
and what just needs to be implemented | |||
mattc | should I try to get the modules working any way possible in Pugs, or get them written as we would like them to be if Pugs was complete? | ||
alright | |||
nothingmuch | i think it's your choice | ||
mattc | ok | ||
nothingmuch | either or | ||
but the rest of the things should be written in a good way | 11:20 | ||
p6ish | |||
maybe the Test:: modules should work early | |||
mattc | yeah | ||
wolverian | DateTime would be nice. | ||
nothingmuch | now, if you're feeling gutsy, grab a copy of | ||
perlbot YAHT | |||
perlbot | Yet Another Haskell Tutorial -- www.isi.edu/~hdaume/htut/ | ||
mattc | yeah, got it | ||
wolverian | (and a good test for OO) | ||
mattc | do you think I'll need mush Haskell to work on the modules initially? | 11:21 | |
nothingmuch | mattc: eval '' should be enough | ||
otherwise just don't bother yet | |||
mattc | cool | ||
nothingmuch | the modules don't necessarily need to be compilable | 11:22 | |
mattc | nothingmuch: sorry, not clear on that last one | 11:23 | |
nothingmuch | well, they don't need to run now | ||
if someone sits down and ports a module | 11:24 | ||
that happens once | |||
it's easier to port to an existing language | |||
so sometimes you'd like to wait | |||
sometimes you don't mind doing it now | |||
mattc | ok | ||
nothingmuch | if you don't mind porting stuff to an imaginary language, go ahead | ||
the work won't be thrown away | |||
mattc | I see, hence the issue about getting it working or getting it beautiful | 11:25 | |
I guess that will become clearer as I start work | |||
Even getting some frameworks down will help (as you said) with finding what is missing.... | |||
nothingmuch | uuh | 11:26 | |
s/u/uh/ | |||
mattc | great, well I'll start poking about with some of the modules listed later today. See if I can find some low hanging fruit.. | 11:27 | |
nothingmuch | hah | 11:32 | |
load average: 865.89, 577.64, 229.67 | |||
fork bombs are funny | |||
11:50
y6cmE is now known as y6cmE|
|
|||
nothingmuch | is there something like head/tail | 12:02 | |
that knows how to skip the first N lines? | |||
luqui | ha'dy y'all | 12:12 | |
I must smell | |||
luqui showers | |||
rgs | heya luqui. | 12:13 | |
luqui | hi | ||
the recent message on perl6-compiler, about closing the filehandle, I think it has to do with laziness | |||
Limbic_Region notes that Pugs is being discussed at the Monastery quite a bit - WinXP problems - www.perlmonks.org/index.pl?node_id=439183 | 13:11 | ||
Juerd | Time for pugsmonks! :) | 13:14 | |
And what's this www thing? | 13:15 | ||
It doesn't have my login cookie, and now the page is all white and blue instead of blackish. | |||
ihb | Juerd: i know, that' | 13:16 | |
s annoying | |||
nothingmuch | why aren't the cookies for .perlmonks.org? | 13:19 | |
nobody uses .net/.com that much, so i think that's sort of ok | 13:20 | ||
theorbtwo | nothinmuch, the cookies are purposefully scoped to only the domain you logged in on. | 13:23 | |
nothingmuch | cookies can be across perlmonks.{tld} | ||
but why should www.perlmonks.org and perlmonks.org be different? | |||
theorbtwo | For one thing, it makes it easier to have different domains logged in to different accounts. | ||
nothingmuch | isn't .com/net enough for that? | 13:24 | |
theorbtwo | I'm an outlier case, I'll admit, but I've got five different accounts that'd be useful to have logged in: | ||
theorbtwo, theonetwo, castaway, castorbaway, and im2. | 13:25 | ||
nothingmuch | beh | ||
you guys are special | |||
;-) | |||
ihb | theorbtwo: why so many accounts? | ||
nothingmuch | how do you remember which one maps to what host? | ||
ihb: castaway and theorbtwo are distinct, but share stuff. castorbway is their union. theonetwo is god version, and im2 is a bot | 13:26 | ||
ihb | why have castaway and theorbtwo? how do you share stuff on PM? | 13:27 | |
theorbtwo | castaway's my girlfriend, who occasionally uses my computer. | 13:28 | |
Limbic_Region | Juerd - The monastery has many domains - it is unrealistic to expect everyone to use the same one as you | 13:29 | |
as far as the cookies working across multiple domains - I leave that to the gods like theorbtwo | 13:30 | ||
Alias_ | Passing this along for someone | 13:32 | |
<kungfuftr> paste.husk.org/2801 | |||
<kungfuftr> simple enough code, seems to crap out under pugs | |||
he can't seem to get in here for some reason | |||
kungfuftr | =0o | ||
Alias_ | oop! I tell a lie | ||
Alias_ just posted kung's link | 13:33 | ||
kungfuftr ducks | |||
autrijus | greeeeetings | 13:34 | |
nothingmuch | hola | 13:35 | |
theorbtwo | Allo. | ||
Steve_p | Howdy :) | 13:37 | |
nothingmuch needs some ideas | |||
theorbtwo: want to try see again? | 13:38 | ||
theorbtwo | Sure! | ||
I think it'll work this time. | |||
I ended up copying the hd image from the other pearpc machine. | 13:39 | ||
nothingmuch | okay, but i can't recieve | ||
at work | |||
theorbtwo | That's OK, there's already a hole in my firewall. | ||
autrijus | kungfuftr: right, hash vivification is borken. | ||
kungfuftr: I'll fix. a sec | |||
nothingmuch | dsertisland.dynodns.net? | ||
theorbtwo | desert-island.dynodns.net | ||
nothingmuch | see://desert-island.dynodns.net # clickable on osx | 13:40 | |
theorbtwo | Aaargh! | ||
My damn pearpc just died again. | |||
gugod | yay | ||
nothingmuch | gugod: that's not nice | ||
gugod | hmm ? | 13:41 | |
nothingmuch | ;-) | ||
gugod | failed to contact | 13:42 | |
theorbtwo | Gugod, could you host? | 13:45 | |
gugod | I don't have public ip. | ||
hmm | 13:46 | ||
I'll try tunneling | |||
theorbtwo | OK, try connecting to me again. | 13:47 | |
gugod | can you see://data.gugod.org ? | 13:48 | |
autrijus | hi fayland. | 13:50 | |
fayland | hi | 13:51 | |
theorbtwo | nothingmuch, can you try see://desert-island.dynodns.net again? | ||
nothingmuch | one min | ||
hcchien | I guess I see a locked file | 13:53 | |
theorbtwo | Double-click it, and I'll make you r/w. | 13:54 | |
autrijus | kungfuftr: still there? | 14:00 | |
%foo{$a} = %foo{$a} + 1; | |||
this works. | |||
so ++ is borked. | |||
theorbtwo | autrijus, any suggestion for a haskell-side task for a bunch of novices? | 14:02 | |
autrijus | hmmmm. | 14:04 | |
oh, btw, I ported perlthrtut's prime finder example | |||
tom christiansen's | |||
theorbtwo | We have threads now? | ||
autrijus | I ported it into haskell | 14:05 | |
to start thinking about how to hook to pugs | |||
seems easy | |||
theorbtwo | Ah. | ||
autrijus | # autrijus.org/prime.hs | ||
so, haskell side. | 14:07 | ||
you can try fixing kungfuftr's problem :) | |||
but easier bites is implement new useful prims. | |||
substr, for example. | |||
basically look at perlfunc | 14:08 | ||
and pick low-hanging fruits | |||
so to speak | |||
that will instantly make pugs more useful for daily task | |||
theorbtwo | Works for me. | ||
We can assume p6==p5 ? | 14:09 | ||
Alias_ | or go looking through Algorithm::Dependency for functions it uses :) | ||
... but I might be biased in that regard :) | 14:10 | ||
theorbtwo seems to have lost his SEE-partners. | 14:12 | ||
You guys want to re-join, and come in on Prim.hs? | 14:13 | ||
autrijus | Alias_: sure, but darren will probably have the first pass over it :) | ||
Alias_ | of course | ||
Does P6 have a solution for the isa dilemma? | |||
i.e. that for a public interface, you can't check object params using C< my $param = shift; if ( $param->isa('class') ) ... > because you have absolutely no way of knowing you are getting an object | 14:14 | ||
theorbtwo | Everything's an object. | 14:15 | |
Alias_ | even undef? | ||
autrijus | yup. | ||
theorbtwo | I think so. | ||
autrijus | undef.does(Class); | ||
is always okay. | |||
Alias_ | constants? numbers? | ||
autrijus | fine and fine. | ||
hcchien | theorbtwo: I don't see the Prim.hs. | ||
autrijus | "Hello".say # prints "Hello\n" | ||
theorbtwo | (1, 2, 3).isa(List); | 14:16 | |
Alias_ | is there any single thing you can make fail on .does()? | ||
autrijus | sure, an error ;) | ||
(1/0).does(Class); # bzzt | |||
crysflame | wouldn't errors be in the does(Error)? | ||
autrijus | but otherwise, no. | ||
crysflame: not if they're untrapped. | |||
crysflame | aha, right | ||
crysflame resolved the 1/0 error condition in a latent manner | |||
Alias_ | hmm... so hopefully I can stop adding C< use UNIVERSAL 'isa'; > to every single module I have written | ||
autrijus | if .does(Class) { ... } | 14:17 | |
crysflame | autrijus: so 1/any(0..5) has a 1 in 6 chance of throwing an error unless trapped? | ||
autrijus | # same as UNIVERSAL::isa($self); | ||
Alias_ | currently I use C< my $param = isa($_[0], 'Class') ? shift : return undef > | ||
autrijus | crysflame: any() has nothing to do with rand(). | ||
Alias_ | or variations | ||
autrijus | Alias_: yeah. such trappings are gone for good | ||
theorbtwo | crysflame, it will always do 6 things, one of which is throwing an error. | ||
crysflame | right, sorry, i'm still not used to talking about junctions yet | 14:18 | |
crysflame was mentally collapsing it due to the normal arithmetic, d'oh | |||
theorbtwo | hcchien, try reconnecting. | ||
Alias_ | When I saw Damian's talk about junctions, I was super impressed | 14:19 | |
Of course, at the time I assumed he had some idea of how to deal with all the big issues they generate | |||
theorbtwo | Hmm, will ?Int=Inf as an argument in Prims.hs Just Work? | ||
kungfuftr | autrijus: apologies, got called off | ||
management-- # busy enough as is | 14:20 | ||
autrijus | theorbtwo: I think so | 14:21 | |
except Inf is not Int | |||
so you need a Num for that. | 14:22 | ||
kungfuftr | autrijus: yar, have a feeling @foo[$a]++ would be borked too | ||
autrijus | yup. | ||
kungfuftr | autrijus: which test file would you need a patch for? | 14:23 | |
autrijus | t/op/inc.t | 14:24 | |
I think. | 14:25 | ||
kungfuftr | k, 2 mins | ||
autrijus | I'll look at it. need to nap a bit | ||
theorbtwo | Anyone still interested in SEEing with me? If not, I'd rather just move to xemacs... | 14:26 | |
hcchien has to offline a while | 14:27 | ||
autrijus | I think this inc bug will finally prompt me to do VType. | 14:28 | |
I mean, IType. | |||
and from that, tieables. | |||
nothingmuch | theorbtwo: i'm back | ||
would you like to try? | |||
theorbtwo | Yes. | 14:29 | |
autrijus | kungfuftr: your email? I can make you a committer to commit the inc.t tests | ||
scott-pugs at kungfuftr.com ? | 14:30 | ||
kungfuftr | autrijus: that would do | ||
nothingmuch | hola | ||
autrijus | invitation sent; welcome aboard. | 14:31 | |
kungfuftr | autrijus: *blink* | ||
nothingmuch | err, orb, please note line 60 | ||
i'd like to mix abs() or something, with junctive | or ^ | |||
in a way that proves that abs binds less tightly | |||
autrijus | I'll nap a bit now. see ya :) | ||
& | |||
nothingmuch | ciao autrijus | ||
btw- you have emacs movement | 14:33 | ||
castaway wonders if theorbtwo is in da house. | 14:38 | ||
theorbtwo is. | |||
castaway | yay :) | 14:39 | |
nothingmuch | ok, now that that's settled... 12 =) | 14:42 | |
we must show that && is tighter than || | |||
ciao orb | 14:44 | ||
me too, actually | |||
castaway raises an eyebrow | 14:45 | ||
nothingmuch | castaway: at what? | 14:48 | |
lumi | Telepathic conversation? | 14:49 | |
nothingmuch | oh, sub etha session | ||
castaway | why you were say "ciao orb" | ||
s/say/saying/ | 14:50 | ||
theorbtwo | Because I said that I had other things to attend to, in purticular the document you wanted me to take a look at. | ||
But I said it on the sub-etha-edit session, not on the IRC chan. | |||
castaway | Ahhh | 14:51 | |
nothingmuch finds p6 prec levels at the bottom quite confusing | 14:52 | ||
autrijus | that is not prec levels. | 14:53 | |
prec levels is in Parser.hs | |||
autrijus reboots & :) | |||
nothingmuch | err | 14:54 | |
bottom of the prec list | |||
that is, their definition | |||
not Prim.hs | |||
autrijus | oh ok. | ||
kungfuftr | *blink* how do i change svn to use my username as posed to anonymous? | 14:55 | |
autrijus | the table is defined in "operators" in Parser.hs | ||
kungfuftr: just "svn ci" | |||
kungfuftr | k... ta | ||
nothingmuch | autrijus: i'm taking it from s03 | ||
and i don't like what I se | |||
e | |||
malaire | where should I add tests for 'lc' - or are there tests for it already? | 14:56 | |
nothingmuch | i think many things should definately not be lower prec than assignment | ||
malaire: t/op/lc.t | |||
in either case | |||
do we have lc? | |||
nothingmuch could actually implement that | 14:57 | ||
castaway drops out again.. | |||
nothingmuch | ciao castaway | ||
kungfuftr | righto... commitede | ||
lumi | Unicode has three cases, right? | 14:58 | |
theorbtwo | Upper, lower, and title, yes. | 14:59 | |
nothingmuch | three cases? | ||
smallcaps, lower, and upper? | |||
theorbtwo | "Case" can be a misleading term, though. | ||
kungfuftr breaks pugs testsuite | |||
lumi | How's that? | 15:00 | |
theorbtwo | In Egyptian, lowercase and uppercase look the same, but titlecase puts the whole thing in an oval. | ||
kungfuftr | lumi: making the parser barf | ||
theorbtwo | Don't print things directly; use Test.pm's functions. diag() if you just want to say something. | 15:01 | |
nothingmuch is going to have a looong evening | 15:02 | ||
*sigh* | |||
bbiab | |||
malaire | is it ok to implement lc with Char.toLower & uc with Char.toUpper? (and what about title-case then??) | 15:09 | |
nothingmuch | uc and lc are toLower and toUpper | 15:10 | |
if larry will decide p6 has tc | |||
then we'll find toTitle | |||
malaire | I'm just testing simple patch to add 'lc' | ||
nothingmuch | malaire++ | 15:11 | |
kungfuftr | utf8-- # makes these things way too confusing | 15:14 | |
nothingmuch | kungfuftr: i think not | ||
it's all implemented by underlying libraries | |||
which were very well thought out | |||
by people who devoted lots and lots of time | |||
kungfuftr | nothingmuch: yar, is still confusing though | 15:15 | |
at the lower level that is | |||
nothingmuch | who cares about the lower level? ;-) | ||
(well, your program's users do, but it's supposed to do the right thing for them) | 15:16 | ||
kungfuftr | not me (unless i'm having to play around with our japanese search engine again) | ||
ingy | hola | 15:27 | |
Limbic_Region | Parrot will have titlecase even if p6 won't | 15:29 | |
theorbtwo | Allo, ingy, Limbic. | 15:33 | |
ingy | hi theorbtwo | 15:35 | |
autrijus: ping | |||
autrijus: please review pugs.kwiki.org/?PugsExtLayout | 15:36 | ||
Juerd | Limbic_Region: I was just messing with you. | ||
nothingmuch | why are the docs ext? | 15:41 | |
Limbic_Region | salutations James and Juerd | ||
ingy | nothingmuch: that's what autrijus wanted | 15:46 | |
nothingmuch | ingy: err, fine, i gues =P | 15:48 | |
does it make sense though? | |||
i mean, are we expecting docs to be shipped differently? | |||
on a different schedule, or on different media? | |||
autrijus | nothingmuch: yeah, I think module-like layout makes sense | ||
because it gives us power to refactor at will | 15:49 | ||
nothingmuch | ah | ||
autrijus | instead of being forced to keep adding to the 10,000 page pile that is perl*.pod | ||
which is all installed under lib/pod/ | |||
and can't be managed with any module tools whatsoever. | |||
I find that sad | 15:50 | ||
nothingmuch | i see | ||
well, that makes sense | |||
autrijus | ingy: ok. so .hs is listed also in lib/ instead of in src/? | ||
nothingmuch thinks a high priority of 6pan is dependancies | |||
ingy | autrijus: like .xs | ||
autrijus | except .xs is not usually put into lib/ either. | ||
or is it? | |||
nothingmuch | it should most definately not be a big deal to install a module that wants many others | ||
autrijus | I seem to recall that .xs is mostly in toplevel. | ||
nothingmuch | if this is solved by listing deps | ||
or making a better format | 15:51 | ||
autrijus | yeah. | ||
nothingmuch | or moving this code into a mostly static structure | ||
ingy | autrijus: why make it any harder for author than writing .hs or .c ame as .pm? | ||
s/ame/same/ | |||
autrijus | ingy: because inlining haskell and C should be the norm | 15:52 | |
for small chunks of code | |||
but yeah, I see your logic | |||
autrijus thinks | |||
ingy | autrijus: I want to write "modules" as just .hs | ||
autrijus | the thing is, we are dealing with GHC package management needs | ||
but I guess it can work with things in src/ also. | 15:53 | ||
I just need to fix my eclipse fp mode. | |||
err, | |||
ingy | autrijus: then src is just a temporary state | ||
autrijus | s/src/lib/ | ||
so you want .hs files to be first-class. | |||
modules, that is. | |||
ingy | yes | 15:54 | |
autrijus | or .cpp, etc. | ||
ingy | ruby makes .c first class | ||
obra | hi | ||
ingy | hi obra | ||
autrijus | hi obra. | ||
nothingmuch | what is "first class" in this sense? | ||
autrijus | nothingmuch: installed into sitelib. | ||
in the same lib/ layout. | |||
nothingmuch | ah | ||
autrijus | instead of merely linked and shuffled into auto/. | ||
like perl5 did. | |||
ingy | nothingmuch: no dynaloader bs in .pm to load .hs etc | ||
nothingmuch | ah | 15:55 | |
autrijus | except .hs is not interpreted. | ||
so same magic as Inline.pm needs to apply. | |||
if I parse you correctly, that is | |||
nothingmuch | maybe we should start with .so or .dylib first? | ||
ingy | well the pugs binary should support loading .so files | ||
autrijus | sure. assume it does. then? | ||
nothingmuch | btw, how does inline control site-wide inlining? | ||
is it Inline::Blah's responsibility? | 15:56 | ||
and also, have we considered a single file per module interpreted format? | |||
i'd like there to be a =begin MODULE META DATA | |||
the a bunch of YAML | |||
so that single .pm modules could be dealt with more grokkably | 15:57 | ||
ingy | nothingmuch: for insalled Inline module creates a .so no different then if it were xs | ||
autrijus | nothingmuch: I think the idea is for them to be module/class traits. | 15:58 | |
i.e. available at code level | |||
nothingmuch | autrijus: including license, author, etc? | ||
how does one extend that? | |||
in a different sub namespace? | |||
ingy | autrijus: basically I want to be able to write .hs files whereever .pm files go. And I want inline/outline pod/kwid to produce the right man/html. | ||
autrijus | nothingmuch: S11 covers (some) of them | 15:59 | |
ingy: autocompilation of .hs files whenever it's touched? | |||
nothingmuch | autrijus: SIGNATURE, META.yml, Module::Build, etc all thought us that these things are not very static | ||
ingy | autrijus: sounds right | ||
autrijus | nothingmuch: aye aye. I think the idea is to have arbitary key=>val mappings as traits. | 16:00 | |
nothingmuch | ingy: what I meant about site-level inlining is- are .so files shared? are they under lib/? | ||
autrijus | nothingmuch: maybe the keys can be URIs. | ||
nothingmuch: they are under auto/. | |||
whether we want auto/ or not is another matter. | |||
ingy: ok. in that case I see your point | |||
so if I have some haskell code that has nothing to do with the main module code | |||
I can still put them into src/ | 16:01 | ||
nothingmuch | and Makefile.PL magically preparses th .so of inlined modules? | ||
ingy | nothingmuch: yes they are like if you did it with xs | ||
autrijus | and if I have some C lib code that has nothing to do with main modules | ||
then I can still put them into include/ | |||
or something like that | |||
and tell the makemaker-equivalent to include them into search path | |||
ingy | autrijus: sounds good | ||
autrijus | for the main module code in lib/ | ||
which will then compile upon installation time | |||
always | |||
and recompile themselves whenever touched. | |||
i.e. adopt the Inline regime | |||
nothingmuch | i'd like a sort of standard way to share platform independant code/err/whatever | 16:02 | |
any so should be onder $OSTYPE/$MACHTYPE/$HOSTTYPE, perhaps | |||
autrijus | nothingmuch: not parsing that | ||
ingy | autrijus: so the .hs in lib is the code that is accessible through the AST, ie loadable by Pugs | ||
nothingmuch | err, given an NFS share | ||
file_server:/perl | |||
autrijus | ingy: riight. | ||
ingy: and we expect them to adopt certain conventions. | |||
ingy | of course | 16:03 | |
kungfuftr | ingy++ # too smart for me | ||
autrijus | sounds dandy. | ||
nothingmuch | i'd like to be able to install a pure perl module on hpux | ||
and have it just work on aix | |||
if i install one with inline crap | |||
on hpux | |||
then the next time i touch aix, it works | |||
err, sort of | |||
autrijus | ingy: ok. I'm sold. | ||
nothingmuch | or alternatively, i have to say 'inline_magic Module::That::Uses::Inline' | ||
autrijus | that sounds like the Right Thing. | ||
so we still use file exts. | 16:04 | ||
as the way to dispatch processors | |||
whether we end up with make or not | |||
nothingmuch | will auto compilation use a setuid type thingy, per box? | ||
autrijus | that is negotiatable. | ||
nothingmuch | or will it be per user, given no root intervention | 16:05 | |
? | |||
autrijus | some system has no suid ;) | ||
theorbtwo | We should be able to work both ways. | ||
autrijus | I think ~/.pugslib/ or something per user makes sense. | ||
ingy | autrijus: I'll start working on it then, beginning with the doc stuff | ||
autrijus | but that's just me. | ||
nothingmuch | installation of pugs should properly configure this peer machine | ||
theorbtwo | Some systems will trust their compilers, some won't. | ||
autrijus | ingy: woot woot. you rock so much. | ||
theorbtwo | (Some may trust some compilers.) | ||
nothingmuch | i think it should be a compile time configuration option for pugs | ||
on where to find runtime configuration | 16:06 | ||
for how to deal with these policies | |||
autrijus | eh. I think Config.pm is a good idea. | ||
I think we'll stick with it. | |||
nothingmuch | could it perlhaps be perlified? | ||
autrijus | config.pm is perlified no? | ||
nothingmuch | so the user could, at their own responsibilitiy, edit it | ||
and get expected results? | |||
autrijus: well, it is, but it's not bidi | 16:07 | ||
theorbtwo | So when pugs tries to require a non-.pm file, a sub in Config.pm gets called. | ||
nothingmuch | i think so | ||
autrijus | it is not bidi!? | ||
nothingmuch | also, this would really ease deployment of pugs | ||
or installation of great humungous systems | |||
autrijus | what does bidi mean in this context? | ||
malaire | btw, is it possible to define several pattern in lambda? | 16:08 | |
i.e. if I have (\(a:as) -> ...whatever...), is there a way to add base-case in case (a:as) doesn't match (without using explicit case .. of) | |||
nothingmuch | a system will talk with Config, and override it when it is run, or stuff like that | ||
err, | |||
malaire: | ... | otherwise | |||
see findVar, i think | |||
autrijus: i mean makefile.p6 equiv doing something like: | |||
autrijus | malaire: I think you need to use case analysis. | ||
ingy | autrijus: witheo hashes? | 16:09 | |
autrijus | ingy: mm? | ||
nothingmuch | given Config.site_lib { when good { ok } when bad { frob_site_lib } } | ||
sub frob_site_lib { | |||
autrijus | right. right. | ||
yup. | |||
nothingmuch | $user->ask("should I frob site_lib for you?") | ||
autrijus | you can already do that with Config.pm. | ||
or any other makemaker assumptions, or @INC. | |||
ingy | autrijus: witheo == what is the Haskell equivalent of | ||
autrijus | it's just not well interfaced. | ||
ingy: HashTable. | 16:10 | ||
nothingmuch | given ... { when yes { Config.site_lib.add("stuff") } | ||
autrijus | ingy: or, if you are in functional mood, Data.FiniteMap (6.2) / Data.Map (6.4) | ||
ingy: pugs uses FiniteMap. | |||
nothingmuch | default { die "i either you let me frob site_lib, oro i can't run" } } | ||
autrijus | which sort of sucks. | ||
ingy | autrijus: to be answered: "theo hashes is HashTable" | ||
nothingmuch | autrijus: you can't write to Config, can you?! | ||
autrijus | theo hashes is Data.HashTable | ||
nothingmuch | those things are compiled, no? | ||
ingy | autrijus++ | 16:11 | |
nothingmuch | hola gaal! | ||
autrijus | of course you can. | ||
gaal | hey nuffin! | ||
autrijus | I don't know where you get that idea. | ||
Config.pm is just a simple pure perl module! | |||
nothingmuch | i was always sure it was generated by Configure | ||
and basically there to query things | |||
autrijus | it was but you can change it. | ||
I do that all the time. | |||
lumi | Hi gaal | ||
nothingmuch | that's a good thing | 16:12 | |
gaal | hey :) | ||
nothingmuch | well, anyway, it needs to be namespaced and stuff | ||
and more subref happy | |||
theorbtwo | But if you change it to make $Config{byteorder}=3412, your CPU doesn't magically become vaxendian. | ||
nothingmuch | Config.paths.site.lib | ||
autrijus | yup. that I ~totally agree | ||
theorbtwo: heh, that's because the hook is not there | |||
patches welcome :D | |||
like, it will first ask for your credit card number | |||
gaal seems to recall some cpus with an endianity switch | 16:13 | ||
autrijus | and buy a new CPU for you | ||
and break in your house to install it | |||
and repair the door, then hypnotise you to forget all what happened | |||
nothingmuch | oh my | ||
ofcourse it's possible, but we're not getting into that, are we? | |||
autrijus | and voila, it works | ||
nothingmuch | gaal: alpha | ||
theorbtwo | MIPS does, in particular, but it only does little and big. | ||
nothingmuch | autrijus: instead it could just emulate byte order | ||
autrijus | nothingmuch: yeah. no fun tho. | ||
nothingmuch | well, it's a /possibility/ | ||
i'm not touching it ever | 16:14 | ||
in fact, if someone ever does it, i'm not talking to them | |||
autrijus | :) | ||
nothingmuch | but for stuff like bit twiddling algos | ||
use Test; | |||
local Config.byte_order = little; | |||
... | |||
=D | |||
autrijus | temp | ||
local is read temp :) | |||
nothingmuch | err, right | ||
theorbtwo | my Int $foo is littleendian; | 16:15 | |
nothingmuch | theorbtwo: i meant fudge the whole code from the outside | ||
theorbtwo | (That's the right way to change ITypes, right?) | ||
nothingmuch | MPEG::Audio::Frame had a little endian bug, | ||
i only had access to ppc at the time | |||
autrijus | theorbtwo: yeah. maybe. | ||
nothingmuch | emulation of integer arith could prove useful | ||
autrijus | ooh. design bug uncovered by pugs. | 16:17 | |
(p6c, now p6l) | |||
kungfuftr | anyone mind if i update MANIFEST? | ||
autrijus | nope. | 16:18 | |
obra | autrijus: did my tests make any sense? | 16:19 | |
kungfuftr | voila | 16:23 | |
malaire | is the bot which should report new revisions broken? it hasn't spoken anything for a while... | ||
autrijus | obra: yes. looking at the syntax error | 16:24 | |
jabbot: are you broken? | |||
jabbot | autrijus: That is interesting. Please continue. | ||
malaire | :) | ||
autrijus | argh chatbot::elize | ||
eliza, even | |||
crysflame | autrijus: i have infocombot on my aim buddy list | ||
autrijus | oh. syntax error is autoquoting. | 16:25 | |
guess I really _need_ to do autoquoting now. | |||
doing so. | |||
lumi | It's a z machine? | ||
obra | heh | 16:26 | |
Steve_p | Is "wronger" a word ;)? | 16:27 | |
autrijus | sure is :) | ||
"wronger" =~ /^\w+$/ | |||
Steve_p | ...if Larry says so, at least :) | ||
kungfuftr | perhaps in american english | 16:28 | |
autrijus | it is well known that call-by-need doesn't mix well with side effects. | ||
which is why virtually all call-by-need languages are functional languages. | |||
Steve_p | No, larryglish :) | ||
autrijus | it's be interesting to see how perl6 deals with this. hm. | ||
autrijus still had not abandoned the hope to make (a subset of) perl6 purely functional and appropriately monadic :) | 16:29 | ||
crysflame | it has, iirc, several infocom z-machine games that you can play over aim | ||
with saved states | |||
Steve_p | Perl 6 , the Lisp Killer :) | 16:30 | |
crysflame | We are the Borg. | ||
Your functions will be assimilated into the collective. | |||
Resistance is futile. | |||
autrijus | You will be camelized. | ||
rgs | onionized. | ||
theorbtwo | Both. | 16:31 | |
crysflame | Caramelized. | ||
(with a hint of lemon) | |||
kungfuftr | s/monadic/manicial/; | 16:32 | |
autrijus | well, haskell can solve the | ||
do { fh <- openFile "file" ReadMode; array <- readLines fh; ... ; hClose fh } | 16:33 | ||
problem, exactly because of the monadic structure that guarantees that hClose can force any thunks in previous IO actions to happen | 16:34 | ||
theorbtwo | I thought it was just that <- isn't lazy. | ||
Am I wrong? | |||
autrijus | theorbtwo: <- is very lazy :) | ||
ingy | autrijus: pugs.kwiki.org/?FreepanProposal | ||
autrijus | array <- hGetContents fh -- takes no time at all even if fh is a 2gb file | ||
hm. never mind me. | 16:35 | ||
I was actually Wrong. | 16:36 | ||
haskell exhibits the same behaviour as pugs. | |||
autrijus reads | |||
right. the idea is: either use a lazy hClose (i.e. hGetContents) that puts the fh in semiclosed state | 16:38 | ||
or, use a strict hGetContents that is trivially implemented with sequence hGetChar. | |||
i.e. don't mix lazy hGetContents vs strict hClose. | 16:39 | ||
oh, and the standard haskell recommendation is to use slurp($filename) ;) | 16:41 | ||
i.e., readFile. | |||
ingy: it looks very good. | |||
nothingmuch | ingy: is sync subversioned? | 16:42 | |
or is there a master update server? | |||
ingy | sync? | ||
nothingmuch | i.e. | 16:43 | |
i upload with svn a module to local mirror | |||
does it notify in a p2p sort of way, the other mirrors? | |||
and how is co-authorship controlled? | |||
hcchien | svk mirror, I think. ha | ||
nothingmuch | i'd like it to be os that every author has a private dir | ||
and the ability to create public dirs | 16:44 | ||
for which they're the only default committers | |||
but that they can grant access to anyone | |||
ingy | I'm not totally sure about the private dir | 16:45 | |
freepan isn't about private stuff | 16:46 | ||
it's about being open | |||
theorbtwo | Hm, the way pugs is run is that there's lots of comitters, a couple admins, and only autrijus releases... how would you handle that in the freepan world? | ||
nothingmuch | i don't mean private as in not accessible | ||
theorbtwo | Make properties not as writable as the rest? | ||
nothingmuch | i mean private like the perlmonks scratch pad | ||
theorbtwo | s/properties/some properties/ | ||
ingy | theorbtwo: sounds right | 16:47 | |
nothingmuch: I'm not familiar with the scratchpad | |||
hcchien | what is the differents with sf.net or openfoundry? | 16:48 | |
nothingmuch | err, it's just there | ||
obra | sf.net is run by commercial interests | ||
nothingmuch | it's yours | ||
it's unofficial | |||
you jot stuff down | |||
you can zap it | |||
ingy | nothingmuch: is it public readable? | ||
nothingmuch | ingy: there's a bit on perlmonks | 16:49 | |
but generally i'd say yes | |||
i would like it to be just a place where i can put up a file, or a prerelease tarball | |||
for review | |||
ingy | as long as everything is public readable | ||
nothingmuch | without messing up the 'official' dir | ||
CPAN is not very tolerant to errors | |||
obra | nothingmuch: meaning what? | 16:50 | |
ingy | nothingmuch: no need for uploading tarballs | ||
nothingmuch | err, whatever | ||
ingy | you can just mark a rev as rc3 etc | ||
nothingmuch | upload a doc | ||
upload an idea | |||
hcchien | commit a doc. :) | ||
ingy | that's all fine | ||
nothingmuch | ingy: i mean without messing up history | 16:51 | |
without indexing | |||
ingy | it's your repos | ||
only things with certain properties get indexed | |||
nothingmuch | sort of like a privately wable, world rable ftp dir | ||
ingy | everything else is adhoc | ||
nothingmuch: yes, and mirrored | 16:52 | ||
autrijus | I also want keywords :) | ||
obra | tags++ | ||
autrijus | freepan:keywords perhaps. | ||
freepan:tags | |||
obra | call them tags. everyone will be into them. | ||
autrijus | but tags is overloaded. | ||
tags/6.0.11/ | 16:53 | ||
you think that won't bite? | |||
ingy | autrijus: yes, of course, just properties | ||
autrijus | "6.0.11 is just another tag!" | ||
nothingmuch | hah | ||
that's the one place where p4 is right | |||
they called them labels | |||
obra | a version might be just another tag | ||
theorbtwo | Oh, perforce, not perl4. | 16:54 | |
autrijus | context, context :) | ||
hcchien | so it sounds like a open svn repository for all? :) | ||
ingy | which can be set through 'svn pe' or 'META.yml' or FreePAN UI | ||
autrijus | oh. I actually already implemented => autoquoting. | 16:55 | |
it's just a matter of uncommenting it. | |||
ingy | hcchien: I would like openfoundry to be the central command possibly. | ||
autrijus | so, done in no time. make tests | ||
nothingmuch | what about performance, btw? | ||
how will freepan bear the load of SVN? | |||
or whatever? | |||
autrijus | by harnessing the power of global mirror/relay points? | 16:56 | |
ingy | hcchien: hopefully we can talk with openfoundry in Taiwan | ||
(when I am in Taiwan) | |||
hcchien | ingy: they would like to. :) | ||
ingy | good | ||
obra | ingy: you could also deploy the foundry code on freepan ;) | 16:57 | |
nothingmuch | and what about safe boxes for cpansmoking? i think this deserves a lot of attention | ||
ingy | well all the parts of freepan will be available on freepan | ||
nothingmuch: make it so :P | |||
nothingmuch | ingy: i meant this | ||
i meant is this somehow related to freepan tags? | 16:58 | ||
will there be an indexing notification hook api? | |||
$FreePan->subscribe(...) | |||
and then you get something like an email | |||
a comsat | |||
autrijus | sub formalize($text, +$case) { say $text } formalize('hello', case=> 'upper'); | ||
nothingmuch | or just a private RSS updated | ||
autrijus | woot, works. r716 | ||
ingy | sorry guys, work is calling me& | 16:59 | |
hcchien | a similar project is opensvn.csie.org/ :) | ||
gaal | shouldn't the developer get to choose what version control system they prefer? | ||
obra | autrijus: woo! | ||
gaal: this is a distribution system in the end | |||
gaal: you can develope outside freepan and upload | |||
autrijus | gaal: we're just swapping svn for ftp. | ||
obra | autrijus: does that whole suite pass now? | ||
autrijus | gaal: with the good thing that we can mirror cvs and p4 and arch etc into svn. | 17:00 | |
preserving history. | |||
can't do that with ftp. | |||
theorbtwo | I'm worried about how large a mirror would be. | ||
autrijus | I think disks are cheap. | ||
theorbtwo | If you want to preserve all history, in purticular. | ||
autrijus | and svn uses skip-deltas and lazy trees. | ||
so should be generally Okay. | |||
obra: no. investigating | |||
gaal | okay then :) | ||
theorbtwo | Mm, could also mirror on-demand. | 17:01 | |
autrijus | yup. | ||
theorbtwo | More squidy then a traditional mirror, but also allows mirrors to decide exactly how much space they want to devote. | ||
clkao yawns | 17:02 | ||
autrijus | right. that'd be sick^Wnice. | ||
ooh, the person who makes this possible is here. | |||
clkao | don't we have version control? why not just cp and mv? | ||
s/have/hate | |||
autrijus | I thought you mean cat and rm. | ||
cp and mv is too flexible. | |||
theorbtwo | I love version control -- so long as I don't have to admin it. | 17:03 | |
obra | clkao: they're fine, so long as you've aliased your shell to prepend "svk" to everything | ||
autrijus | obra++ | ||
amazingly, cp mv cat rm are all svk commands. | |||
gaal | "real programmers dd if=/dev/dsp of=a.out and whistle" | ||
autrijus | gaal++ | ||
obra | can I cat _into_ svk? | ||
clkao | no | ||
autrijus | svk cp - //file | ||
mmm tempting. | 17:04 | ||
svk import - //file | |||
not very intuitive tho. | |||
greetings stevan-san! | 17:07 | ||
stevan | greeting autrijus | ||
autrijus | how's life? :) | ||
malaire | btw, should functions like substr, index & rindex be implemented as 'op0' in Prim.hs? | ||
stevan | not bad ,.. and you | ||
autrijus | just fine. got => autoquoting working. working thru obra's named params test. | 17:08 | |
stevan | nice | ||
autrijus | malaire: well, you can add op3 and op4 categories if you want. | ||
malaire: but I think op0 will suffice. | |||
gaal | is there a short-term todo list, eg for tests that need writing? | ||
pasteling | "pugsmonk" at 192.168.0.2 pasted "Bugs in Pugs regarding Hash access" (11 lines, 320B) at sial.org/pbot/8169 | ||
autrijus | gaal: yes; "everything that does not concern objects or rules or macros." | 17:09 | |
gaal: basically, look at perl5's test tree and find the delta. | |||
gaal | thanks | ||
autrijus | np :) | ||
obra | those are only the basic named param tests. once those pass, I'll add more | ||
autrijus | who is this pugsmonk? :) | 17:10 | |
whomever that person is, both bugs in that nopaste is now fixed. | 17:12 | ||
crysflame | 05:15 < Juerd> Time for pugsmonks! :) | 17:14 | |
autrijus | ahh. | ||
crysflame | probably somewhere around there | ||
might not be juerd though :) | |||
autrijus | ;) | 17:15 | |
Limbic_Region | Juerd is currently in a bitch fest over at the Monastery about xmath's smart match operator patch for p5 | ||
autrijus | oh? can you quickly recap? | ||
crysflame hasn't seen/heard of xmath in a while | 17:16 | ||
gaal | pugs is so fast even anonymous bugreports run through in no time. | ||
autrijus hadn't been around to the monastry much. | |||
Limbic_Region | sure - ~~ is legal (albeit abusive) syntax in p5 | ||
autrijus | oh no. I used that for i18n.pm. | ||
Limbic_Region | the argument is to gather statistics on how much code the proposed patch will break | ||
autrijus | but it's okay. nobody but clkao is silly enough to even consider using that for i18n. | ||
obra grins at autrijus | 17:17 | ||
autrijus | Limbic_Region: search.cpan.org/dist/i18n/lib/i18n.pm | ||
Limbic_Region | the counter-argument is in the cases where it is used to mean something else the patch won't come into play anyway | ||
the counter-counter argument is - prove it | |||
crysflame | Limbic: the next time you see Alias, ask him how many occurences of uses of ~~ there are on CPAN | ||
he has this nifty little tool that can tell you, i think | |||
s/Limbic/.../ | |||
Limbic_Region | crysflame - not my fight | 17:18 | |
crysflame | yup, sorry | ||
Limbic_Region | just recapping per autrijus' request | ||
autrijus | danke, Limbic_Region. | 17:19 | |
Limbic_Region | bitte | ||
Juerd | I grep CPAN often | 17:20 | |
I just don't have any CPAN mirror around for grepping at the moment, because I needed the disk space to store the latest episode of 24 | 17:21 | ||
Limbic_Region | thought you were going home Juerd? | ||
Juerd | No proof is necessary at this stage | ||
malaire | If I try C< index "Hello", "l", 3 > in pugs, I get errot about unimplemented unaryOp - so should index be added as op1? | ||
(I don't really understand where variable-argument functions would belong in Prim.hs ...) | |||
Juerd | Yeah, plans changed, Larry (not Wall) is fetching McFood instead | 17:22 | |
autrijus | malaire: what's its prototype? | ||
malaire | \\n Str pre index (List)\ | ||
autrijus | oh. it takes a slurpy list. | 17:23 | |
not sure that's the best way to attack index(). | |||
Limbic_Region | fwiw - my opinion on the matter is that the finished patch should be on by default with some way to turn it off but obviously not lexically (like Taint checking) | ||
autrijus | index(Str, Str, ?Int=0) | ||
surely? | |||
malaire | how do I put that in Prim.hs? | 17:24 | |
theorbtwo | I was wondering about that for substr() a while ago. | ||
autrijus | malaire: just put it at any line in the bottom table | ||
pasteling | "pugsmonk" at 192.168.0.2 pasted "Another bug in Pugs regarding Hash access" (11 lines, 355B) at sial.org/pbot/8170 | ||
autrijus | I'll put it below ucfirst | ||
now you'll have our first function with arity of 3. | 17:25 | ||
so you'll need to do op3. | |||
theorbtwo | The default on the length parameter isn't expressable without defaulting, though, except possibly for Inf. | ||
Juerd | Limbic_Region: Why? | ||
theorbtwo | There's even more of a problem with the replacement bit. | ||
Juerd | Limbic_Region: If nothing breaks, why provide crippleability? | ||
autrijus | theorbtwo: in that way just ?Int and test for definedness | ||
malaire | does that definition make pugs automatically call op3 "index"? | ||
theorbtwo | Oh! | ||
gaal | (any reason why some files in t/ are +x and some aren't?) | ||
autrijus | gaal: no good reason. different committers. | 17:26 | |
Limbic_Region | I was working under the assumption no proof of non-breakage Juerd | ||
autrijus | malaire: no, you need to add a line to 525. | ||
Limbic_Region | but /msg me if you want to discuss further and keep #perl6 on topic ;-) | ||
autrijus | malaire: I'll handle that. | ||
Juerd | Limbic_Region: The only proof we can have is CPAN | 17:27 | |
Limbic_Region: And outside that, we can only guess. Still, if people have ~~ anywhere, the fix is to s/~~/scalar/g | |||
No pragma needed | |||
theorbtwo | ~~ and scalar don't have quite the same semantics. | ||
~~ will unrefify. | |||
Juerd | What does that mean? | 17:28 | |
Oh, stringify | |||
Yes, but then s/~~/""./ is the fix | |||
Limbic_Region | [12:25] <Juerd> Limbic_Region: If nothing breaks, why provide crippleability? If it is necessary to s/~~/scalar/g then it is possible something would break | 17:29 | |
Juerd | Still no reason for a patch | ||
Limbic_Region | my point is if you are going to break backwards compatability - fine - but give people a way to revert back while they hunt for all the changes they need to make | ||
theorbtwo | I agree with Limbic on this one. | ||
Limbic_Region | (no transition period)-- | 17:30 | |
autrijus | pugsmonk: 1st is not a bug. | ||
mattc | Hi All, after discussion earlier with nothingmuch, I'm in the initial stages of playing around with porting modules to pugs. Started with Time::Local and localtime and gmtime lang features are missing. So now do I just go ahead and (attempt) to port the tests in t/op/time.t to perl6 as todo tests? Is there any other procedure/docs/other notification I need to do? | ||
autrijus | pugsmonk: 2nd is a bug; the neccesary fix is in Pretty.hs for MVal case; write a test or I'll just ignore that for now | 17:31 | |
Juerd | Limbic_Region: Hunting is grepping. They need to grep in order to know they have breakage anyway. | ||
Limbic_Region: Adding "no smartmatch" or actually fixing the problem is equal in the amount of work. | |||
theorbtwo | It's not a hard requirement, but it'd be a goodness. | ||
gaal considers t/japh/abigail.t, decides against it | 17:32 | ||
theorbtwo | I don't know about that, Juerd. You have to realize that you've got prefix operator ~ twice being confused with infix operator ~~. | ||
Juerd | theorbtwo: This is an operator. In perl 5, operators are very deeply in the core. The parser needs to know how to parse. | ||
theorbtwo: You can't just change syntax with a pragma in Perl 5. | |||
theorbtwo | But you only have to fix it once. | ||
Limbic_Region | Juerd - this really is about p5 but I disagree with you - they don't need to grep to know they have breakage - they only need to see it no longer works when they run it | ||
Juerd | That requires a lot of change in the entire parsing engine | ||
theorbtwo | L~R, but they have to figure out what broke. | ||
Limbic_Region | second, I am proposing that ~~ be smartmatch by default - as a fully working patch | 17:33 | |
Juerd | And that's not worth the risk of breaking much more than this patch could ever | ||
theorbtwo | But BEGIN {}s get run early, and use is a begin. So the data you need should be available. | ||
Limbic_Region | but that there be a way to turn off smart match in favor of old functionality if user so chooses | ||
Juerd | It's simply not possible without huge raping of perl's core | ||
theorbtwo | So put your change to the parser in an if () that checks if the magic bit is set in $^HINTS. | ||
Juerd | And nobody will volunteer for that | ||
And nobody will dare run code after that. | |||
theorbtwo | How is it different from, say, warnings? | 17:34 | |
compile-time warnings, that is. | |||
Juerd | warnings doesn't change syntax | ||
~ is unary prefix | |||
~~ in binary infix | |||
They're very different. | |||
autrijus | malaire: please svn up, I added op3 / op4 | ||
malaire | ok | ||
theorbtwo | I agree, they shouldn't break each-other. | ||
Juerd | The only possible breakage is when ~~ is used between the name of a sub and the first argument | ||
And that resolves as the old behaviour | 17:35 | ||
So foo~~bar is still foo(~~bar) | |||
Only print $fh ~~bar goes wrong | |||
It's a one in a gazillion chance someone actually uses that. | |||
Limbic_Region | [12:17] <autrijus> Limbic_Region: search.cpan.org/dist/i18n/lib/i18n.pm | ||
[12:16] <autrijus> oh no. I used that for i18n.pm. | |||
there's your 1 | |||
autrijus | but I'm happy to see it break. | 17:36 | |
Limbic_Region | perl -Mi18n=/path/to/po-files/ -le 'print ~~"Hello, world"'; | ||
autrijus | serves greater good, etc. | ||
obra | actually, it should be called 18n.pm | 17:37 | |
perl -M18N | 17:38 | ||
autrijus | 17n. | ||
perl -M17N | |||
obra | multilingualization | ||
did I miscount? | |||
autrijus | is 17. | ||
obra | ah :) | ||
autrijus | I know, because m17n is actually a term :) | ||
obra | right. I was trying to remember. m18n looked funny, but I couldn't place it | 17:39 | |
autrijus | except 17n is not a valid identifier | 17:40 | |
oh no. you made me recall the ake.pm idea again. | 17:41 | ||
perl -make test | |||
"simply repackage pmake" | |||
malaire | hmm.. I added C< \\n Int pre index (Str, Str, ?Int=0)\ > | ||
to Prim.hs, but when I test index, I get "unimplemented listOp" and not 3-ary op | |||
autrijus | uh. never mind, I'm stupid | 17:42 | |
a sec | |||
fixed. | 17:43 | ||
r719 | |||
theorbtwo | Hello, awwaiid! | 17:46 | |
awwaiid | howdy | ||
theorbtwo | Strange, and I just spoke to mid a few hours ago... | ||
autrijus | ooh larry gives a semantics for = | ||
awwaiid | I'm supposed to be working, but I thought I'd idle in here with the cool people for a bit | ||
autrijus | hi awwaiid. | ||
awwaiid | greetings | ||
Congratulations to you and everyone on the wonderous progress of Pugs :) | 17:47 | ||
autrijus | *blush* | ||
thanks for your kind words. | |||
awwaiid | well deserved. | ||
autrijus | wants to join? it's fun :) | ||
awwaiid | So I hear. I'm going to try dipping my toe in I think. | 17:48 | |
Hard to do much though because of that whole paid-job thing (and because I'm extremely easily distracted :) ) | 17:49 | ||
autrijus | cool. does testing strike your fancy? or porting your $favourite_module? or attack some old golf courses? :) | ||
Khisanth | attacking golf courses? | 17:50 | |
I suppose that WOULD be appropriate for a pug :) | |||
autrijus | rofl. | ||
"g" stands for "golfing" | |||
theorbtwo | ...after the Haskell Users Golfing System, in which golfing makes even less sense. | 17:51 | |
awwaiid | hehe. I may try some golfing out. But I need to grab the latest darcs and all first. I figure I'll hang out here (I'm already watching the mailing list) and jump in once I see a good spot | ||
theorbtwo | Darcs? | ||
awwaiid | darcs?! You know not of darcs? tsk tsk | 17:52 | |
:) | |||
I mean the latest darcs checkout, actually. not darcs itself. i got that already | |||
theorbtwo | Oh. Another revision control system. | ||
We use svn/svk around here. | |||
autrijus | you can use darcs :) | ||
awwaiid | I thought both were being used? | ||
autrijus | yup. | 17:53 | |
but svn is currently primary. | |||
awwaiid | what are you using to bridge them? | ||
ninereasons | Gofer I think | ||
autrijus | svk. | ||
awwaiid | ah | ||
autrijus | ninereasons: "g" in "Pugs" stands for "golfing" | ||
awwaiid: it's fine to use either, really. | |||
awwaiid | well thats good. cause I'm going to use darcs :) | ||
ninereasons | <theorbtwo> ...after the Haskell Users Golfing System, in which golfing makes even less sense. | ||
autrijus | cool :) | ||
ahh. | 17:54 | ||
sorry, missed that. | |||
"Gofer" is a language. | |||
autrijus writes journals | |||
theorbtwo notes that autrijus is #2 on svk.elixus.org/?SVKPeople | 17:55 | ||
.oO(Plural?) |
17:56 | ||
autrijus | typo :) | 18:03 | |
gaal | what's the one-liner to "prove" a single test i'm working on? | 18:04 | |
autrijus | set the following envs: | ||
HARNESS_PERL=./pugs | |||
PERL6LIB=ext/Test/lib | |||
prove t/foo/bar.t | |||
that's all. | |||
someone wiki it please? :) | 18:05 | ||
gaal | thanks, that means i can do it with vim :) | ||
awwaiid | do we have a wiki? | 18:06 | |
theorbtwo | pugs.kwiki.org | ||
awwaiid | cool. I had already started adding stuff to my own wiki :) | 18:07 | |
autrijus | pugs.kwiki.org is for developers. | ||
which is why I don't link to it from pugscode.org. | |||
so it can be free from gefingerpoken and mittengrabben. | |||
awwaiid | ah | ||
gaal | perlmonks.org/?node_id=368438 can be useful | 18:08 | |
theorbtwo | Um, what are you linking to there? | 18:10 | |
gaal | me, to2? autrijus showed me how to run a single test i was working on | 18:11 | |
so in response i mentioned how i was going to run it. | |||
theorbtwo | That's your homenode, did you link to the wrong place? | ||
gaal | ah yes, sorry. perlmonks.org/?node_id=434793 | 18:12 | |
gaal perhaps needs to go home now :) | |||
can i turn off strict 'vars'? | 18:23 | ||
my $a = $b; # when $b was never declared | 18:24 | ||
(i'm testing undef) | |||
autrijus | you can't yet. | 18:25 | |
gaal | okay, then i'll just test my $a = my $b for now. | ||
autrijus | my $b; | 18:29 | |
my $a = $b; | |||
gaal | y | ||
autrijus | journal up. zzz & | 18:30 | |
have fun! :) | |||
gaal | night. | ||
pasteling | "lumi" at 62.90.49.81 pasted "What's wrong with this picture?" (6 lines, 84B) at sial.org/pbot/8172 | 18:31 | |
lumi | What am I doing wrong? | 18:32 | |
(Nevermind the algo, just the compiling) | 18:33 | ||
Oh um fixt it | 18:35 | ||
%a{'f'}++ doesn't work but %a{'f'}+=1 does | 18:51 | ||
For non-existant %a{'f'} | 18:52 | ||
theorbtwo | I think that's a known bug. | 18:53 | |
In purticular, the test failure in t/op/assign | |||
awwaiid | well, the darcs repo and the svn repo don't seem to be in sync :( | 18:54 | |
theorbtwo | Er, t/op/inc | 18:55 | |
lumi | I don't see it, can you tell me what line? | 18:57 | |
theorbtwo | Hold on a second. | ||
lumi | Actually some of those last tests look broken | ||
With the 'my @a=(1);' and then incrementing @a[1] and expecting it to be 2 | 18:58 | ||
theorbtwo | Line 79 is what I meant. | 19:00 | |
Hm, that one looks wrong to me too. | |||
lumi | But it has a *defined* value, mine's on an undefined one | ||
theorbtwo | But I'm going to go to the other room and watch the last West Wing now. | ||
lumi | Have fun | ||
theorbtwo | You could add another test case then, but I expect they'll just both fail. | ||
I guess that's not a bad thing, though. | 19:01 | ||
theorbtwo doesn't quite have the TDD religion yet. | |||
lumi | I would, but I can't commit | 19:03 | |
RangerNS | Greets all.. Are there known problems with parrot on a AMD64? | 19:06 | |
ihb | in perl 6, are subs always called with & and built-ins never? | 19:08 | |
wolverian | no. | ||
subs are _never_ called with &. | 19:09 | ||
ihb | oh. | ||
integral | hmm, you can't do: &sub.() ? | ||
wolverian | &foo is the sub object. | ||
integral: that's cheating :) | |||
integral | bah | ||
stevan | hey nothingmuch | 19:10 | |
nothingmuch | hola | ||
stevan | hey remember all that stuff about S<> in the synopsis | ||
lumi | Hi nothin | 19:11 | |
nothingmuch | uhuh | ||
hola lumi | |||
nothingmuch is finally home and free | |||
going to finish t/op/precedence.t | |||
any SEEers want to help out? it's pretty fun | 19:12 | ||
integral | wolverian: hmm, why wouldn't &sub() work? | ||
ihb | btw, a thought i've had. with Perl 6 being so flexible, if "we" want to introduce another core operator, wouldn't that likely break a lot? will it pose a problem? nowadays it's pretty safe to create a new operator, isn't it? or will we not want to do that? will we just use a module that adds the operator? how does other languages (e.g. haskell that can define operators) handle this? | ||
awwaiid | greetings, nothingmuch | ||
nothingmuch | awwaiid! how fun! | ||
awwaiid | :). I'm just idling for now, but I'll join the fun in a bit. | 19:13 | |
stevan | nothingmuch: I will SEE with you | ||
integral | ihb: Haskell has fixed rules for what chars can go in an 'operator' and in a normal bareword, so it's lexer already knows about all possible operators | ||
nothingmuch | ihb: you just err, fudge an infix sub | ||
multi method, actually, if i'm right | |||
see://woobling.org | |||
awwaiid: good to hear | 19:14 | ||
pugs could use you very well | |||
stevan: hola, | |||
awwaiid | what is "see://" ? | ||
ihb | integral: i'm more talking about collisions. the discussion about ~~ on PM actualized the topic for me. | ||
nothingmuch | want to also open the synopsis/test stuff on your side? | ||
awwaiid: pugs.kiwki.org/?SubEthaEdit | |||
it's an editor with collaborative features | 19:15 | ||
stevan | actually its in util/catalog_tests.pl | ||
awwaiid | ah. I haven't explored the wiki enough | ||
stevan | get the latest SVN | ||
ihb | are functions and operators the same thing under the hood in Perl 6? can you do the equivalent of "(+) 2 3" or "x `foo` y"? | 19:16 | |
what i'm getting at is that it could be hard to add things to the core, but we might not want/need that in Perl 6? | 19:17 | ||
wolverian | integral: well, it might. I don't see a implementation issue with it. I'm personally not sure if it's a good meme. | 19:18 | |
integral: so you're right, anyway. | 19:19 | ||
integral | ihb: you can talk about an operator as &infix:<+> for example | 19:21 | |
wolverian | ihb: operators are functions. | 19:23 | |
nothingmuch | wolverian: functions-> submethods? subs? multimethods? err, ? | 19:24 | |
ihb: in pugs i'm not sure they are functions to be talked about yet | |||
wolverian | nothingmuch: good point. multi subs. | 19:25 | |
nothingmuch | multi sub eq ? | ||
wolverian | a sub that is dispatched with MMD | 19:26 | |
nothingmuch | multimethod is a method for several objects at once, right? | ||
submethod is either sub, or method | |||
what perl5 sub is | |||
(please correct me!) | |||
sub is like you're typical some_language function | |||
(imperative, right?) | |||
so what's the diff between multimethods and multisubs? | |||
wolverian | multimethods are bound to classes in that they can be inherited | ||
nothingmuch | multimethods are only for objects? | ||
wolverian | multisubs can not be inherited | ||
nothingmuch | ah | ||
i see | |||
wolverian | you are right here that both can be used. | ||
nothingmuch | test fu task: | 19:29 | |
go through tests in random order | |||
and add little bits of doc at the top | |||
to help util/catalog_tests.pl | |||
stevan | but put all the docs inside =pod or =kwid blocks please :) | 19:30 | |
nothingmuch | stevan: perhaps this should be fudged a bit, so that each (todo_)?(...) line has it's test reason extracted | 19:32 | |
and line number of occurance written in the file | |||
stevan | nothingmuch: that would be good | ||
nothingmuch | i'll hack it in | ||
stevan | ok | ||
I am going to File::Spec-ify the path stuff | |||
nothingmuch | File::Findify it too? | 19:33 | |
or rather, ditch file::Spec, file::find will be easier | |||
hide | should 'my $stdout=open($*OUT); | 19:35 | |
' create a handle tied to STDOUT? | |||
wolverian | I'd say just doing my $stdout := $*OUT; would be sufficient (unless someone has closed it, in which case you should be able to just $stdout.open, or some such.) | 19:36 | |
I don't know what pugs does here. | |||
ihb | so in short: we do not want to add things to the core in Perl 6? | 19:37 | |
wolverian | adding things to core is up to Larry at this point. | 19:45 | |
(where core means the distribution) | |||
did you have another definition? :) I'm a bit too tired really, heh. | |||
ihb | wolverian: my thought: perl 6 is flexible => you can define your own <whatever> => you can't easily add things to the core and at the same time be sure it won't break a lot of stuff. | 19:47 | |
malaire | ihb: If you just mean defining new operators/functions, then those will be easy in perl6. | 19:48 | |
ihb | ... which would, unless you don't have the need to add things to the core, perhaps would make the language stale? | ||
malaire: yeah, so, basically, you don't add things to the core, you use modules that import operators for you? | 19:49 | ||
wolverian | ihb: you can do whatever you want to _your_ perl6 | ||
ihb: I don't honestly see what you're asking really. | 19:50 | ||
malaire | Or do you mean adding new functionality to core, e.g. after perl 6.0.0 is out, adding some new funtionality in subsequent perl6 versions? | ||
ihb | malaire: yeah. | ||
wolverian: the discussion about ~~ on PM actualized this thought. | |||
wolverian | the different datatypes in perl6 are sufficiently segregated and strongly typed that there is little space for errors in this regard. | 19:51 | |
oh, right, I see now what you mean. | |||
ihb | wolverian: continue... | ||
ok, good. :-) | |||
wolverian | I would be _very_ wary of adding my own behaviours to the core datatypes | 19:52 | |
malaire | IIRC that is made to be easy enough. Perl6 is created in such a way that it can be extended later. There are even some things which Larry says probably won't be in 6.0.0, but they are making sure those functionalities can be added later. | ||
(MMD based on named parameters was one such thing discussed resently) | 19:53 | ||
wolverian | yes, official features are easy to add, and that's why I wouldn't add my own unofficial features to things that would be used generally. | 19:55 | |
requiring a specific perl6 version isn't a very nice solution either :) | 19:56 | ||
ihb | btw, is the ^ operator still alive? i mean in things like @foo ^=~ $bar and @foo ^. $bar etc. (i don't remember if it really was ^ but i think so) | ||
jabbot | ihb: I havn't seen cubic , obra | ||
integral | ihb: that's for hyper? Hyper is now Ā«~ for example | 19:57 | |
wolverian | ^ is the junctional one() | 19:58 | |
Khisanth | ihb: same feature different syntax now :) | ||
integral | eg. sum(@a Ā«*Ā» @b) # inner produce | ||
s/e/t | |||
malaire Goes to sleep now... | |||
wolverian | so, can you stack hyperops? | ||
lightstep | 3 test scripts fail, yet only 2 subtests fail? | 20:00 | |
nothingmuch | lightstep: a dubiously ending test file | 20:03 | |
with no plan | 20:04 | ||
crysflame | 0 tests ran in one of those scripts, perhaps? | ||
nothingmuch | could yield a test script failing, with 0 subtests | ||
lightstep | t/syntax/subroutine_named_params fails to parse (or something) | 20:05 | |
and t/op/inc is fails after succeeding | |||
nothingmuch | t/op/inc is new, i think | 20:06 | |
i'll look at them both in about 10 mins | |||
lightstep | does perl6 have to be 32-bit? | ||
^^ please ignore | 20:09 | ||
mattc | Hi All, having first look at porting the Time::namespace modules pugs, these need the builtins "time", "times", "localtime" and "gmtime", newby question on moving forward - do I just write a failing todo test for these builtins? Is there a procedure for this? | 20:12 | |
obv the test won't compile without those builtins either.... | |||
ihb | i'm gonna have to reconfigure so that the hyper operator looks sane, not Ā«*Ā» | ||
lightstep | mattc, please write test for all required builtins | 20:13 | |
Khisanth | could be *Ā» or Ā«* too I think :) | ||
mattc | lightstep: ok - I'll write one - Rules aren't in yet, are they? I'll write around them if not... | 20:15 | |
lightstep | i believe that not | 20:16 | |
mattc | cool | ||
nothingmuch | stevan: how are you with getopt? | 20:30 | |
stevan | never used it | ||
nothingmuch | ook | ||
stevan does web apps :) | |||
nothingmuch | i would like to have printing the code line optional, without things getting ugly | ||
stevan | I think this might be too much information really | 20:31 | |
nothingmuch | commented out | 20:32 | |
what was the conclusion of the 'Test Comments' thread on perl-qa? | 20:33 | ||
stevan | it never concluded | 20:34 | |
it is still up in the air | |||
some people decided some things,.. then other people dredged it back up again, | |||
repeat that about 3 times and thats what happened | |||
nothingmuch | err, i don't know what to call it either ;-) | 20:35 | |
it's not a 'reason' | |||
i tend to lean to desc | |||
stevan | every one looks at it differently | ||
nothingmuch | should we leave it at that? | ||
stevan | for now | ||
the POD file this produces is huge though | |||
I think we might want to break ti down more | |||
100K of POD | 20:36 | ||
nothingmuch | we could make it splittable by perl | ||
=cut | |||
### SPLIT HERE ### | |||
=pod | |||
and then pipe that into another perl script | |||
stevan | that would work | ||
nothingmuch | i think i prefer one big file for now | 20:37 | |
i don't want to cleanup a mess every time i'm trying to get a summary | |||
do we want to document test cases, btw? | |||
stevan | what do you mean? | ||
nothingmuch | we could use a S<> in a comment to denote the user defined description | ||
is() # S<> | |||
if that's there | |||
then we have no guesswork | 20:38 | ||
stevan | we could try that | ||
nothingmuch | the question is: will anyone actually bother to document? | ||
stevan | it would take a while to update allt he test files | ||
probably not | |||
nothingmuch | ,\s+"".*?; is prolly good enough | ||
for most things | 20:39 | ||
(e.g., the test output string) | |||
stevan | is this maybe redundant with the original test file? | ||
nothingmuch | i think it's not | 20:40 | |
in case we want to override | |||
it should be optional | |||
when the output isn't good enough | |||
like if it's fscked on a test | |||
or if it's too hard to parse | |||
or if the reason is just stupid | |||
like the ones i write | |||
which are logical only when read as the output | 20:41 | ||
nothingmuch has to stop that | |||
lightstep | does %a = ('a' => 1); create a constant hash table? | ||
nothingmuch | lightstep: no | 20:42 | |
i think for that you want %a is constant = () | |||
but i'm not sure if it applies to nested vars | |||
for that you probably need to use the shape() trait thingy | |||
which i haven't yet read on | |||
maybe that's just for multidim arrays | 20:43 | ||
lightstep | may i add a -fno-warn-orphans to the official Makefile to remove the warning about orphans? | 20:50 | |
nothingmuch | lightstep: as far as most people are concerned yes | 20:51 | |
svn lets us fix this if it's a problem | |||
lightstep | cool | ||
nothingmuch | and you know what you're doing | ||
do you have commit access? | |||
lightstep | yes | ||
ingy | hola | 21:12 | |
nothingmuch | who is interested in util/catalog_tests.pl creating many pods, one inside each dir? | ||
stevan and I wrote a splitter for it | |||
but I'm not 100% sure on how it should behave | |||
ingy, want to join the SEE mess? | |||
ingy | sure | ||
nothingmuch | see://woobling.org | 21:13 | |
theorbtwo | Can I come in? | ||
nothingmuch | no, this is for cool people only, theorbtwo | ||
;-) | |||
ingy | haha | ||
how do I connect? | |||
theorbtwo sniffles. | 21:14 | ||
nothingmuch | er, cmd+shift+k | ||
or you can just click the link, normally | |||
it works in colloquy | |||
catalog_tests.pl is a bit more verbose | |||
and prints markers | |||
split_.*.pl will take that stuff | |||
and split it | |||
theorbtwo: are you joining or what? | 21:15 | ||
theorbtwo | Reads "contacting". | ||
nothingmuch | errm | ||
nothingmuch doesn't see you | 21:16 | ||
nothingmuch connected to you and pulled in | |||
theorbtwo | Thanks. | ||
nothingmuch | theorbtwo: are you dumping that section? | 21:50 | |
*session | |||
theorbtwo | Hmm? | 21:53 | |
I'm still connected, agaik. | |||
AFAIK. | |||
nothingmuch | i meant, tcpdump/ethereal | ||
it should be enough to cover nearly everything =) | |||
theorbtwo | No, haven't been. | ||
But I got the one earlier in the day. | |||
But at this point, I'm not sure more dumps are helping. | 21:54 | ||
nothingmuch feels it's time to zap the comment, fix the noclobber | |||
and commit the file, | |||
theorbtwo | Jess is looking into learning the elisp she needs; I should be doing a better job understanding the protocol. | 21:55 | |
Mostly ordering dependencies, though. | |||
Sounds good to me. | |||
We need to figure out what the goal is better before this sort of thing works well, I think. | |||
I still like my plan, and have no real idea what the rest of you crazies are talking about. | 21:56 | ||
nothingmuch | theorbtwo: i'll let you know when eris is reinstalled | ||
i think stevan is right: | |||
theorbtwo | If neither POD nor Kwid can do what I'm looking at, then they both suck. | ||
ingy | ? | ||
stevan | nothingmuch: I know I am right,.. but about what specifically | ||
theorbtwo | Most tests test a single sentance. I want to link to that sentance. | 21:57 | |
nothingmuch | it's getting complex | ||
theorbtwo | POD docs often have a head every four or five screens. | ||
nothingmuch | and files | ||
i think it should be a sane way to summarize a dir | |||
=items are warned if not distinct though, so you can usually rely on even that fine granuality | 21:58 | ||
ingy | theorbtwo: write a test case of what you want and i will refactor into kwid if possible | ||
nothingmuch | =head2 is pretty common, and also linkable | ||
theorbtwo | Ah, I thought you were saying that only head1, or possibly head* was linkable. | ||
=item is much better. | |||
ingy | in kwid it is this: | ||
stevan | I agree head2 is better then =item | ||
ingy | - some term | ||
description of term. | 21:59 | ||
stevan | ingy: how to link easily? | ||
ingy | link is [some term] | ||
theorbtwo | Cross-file link? | ||
ingy | or [somefile/some term] | ||
or [some text|somefile/some term] | 22:00 | ||
it is just like pod, only less syntax | |||
as is all of kwid | |||
so there you go! | |||
theorbtwo | How do I make an invisible link target? | 22:01 | |
nothingmuch | theorbtwo: is that a good thing? | ||
theorbtwo | It is if I want to link from a statement in a design doc to the a test that impelements it. | 22:02 | |
nothingmuch | i think this should be done by backlinking | ||
theorbtwo | Even better, one that shows inline. | ||
It should be done in both directions. | |||
nothingmuch | but maintained in only one side, IMHO | ||
theorbtwo | Yes. | ||
Absolutely. | |||
People write them in some convient form to write. | 22:03 | ||
And the script converts them into some convient form to read. | |||
nothingmuch | i think that meta comments in the tests, tellling where xyz is specced | ||
being optional | |||
theorbtwo | Read: HTML. | ||
I agree. | |||
nothingmuch | and dwimmy | ||
are the least annoying way | |||
theorbtwo | Possibly HTML via a transitional form of POD or Kwid, possibly not. | ||
nothingmuch | inside a test i don't think it should even be pod or kwid | 22:04 | |
is() # S<> | |||
=) | |||
theorbtwo | # S<> isn't obvious.\ | ||
nothingmuch | L<S04/item_name> | ||
# spec:L<S04/item_name> | |||
ingy | in kwid you could possibly have: | ||
theorbtwo | my $anon_sub = sub {1}; # SPEC: S4/item name. | ||
ingy | .test test name | 22:05 | |
... | |||
.test. | |||
theorbtwo tries to avoid swearing at ingy. | |||
ingy | [test name] | ||
? | |||
nothingmuch | ingy: what does that mean? | ||
theorbtwo | I couldn't care less about Kwid. | ||
nothingmuch | tests inline in kwid? | ||
or kwid in comments? | |||
theorbtwo | I don't have any Kwid readers. | ||
Kwid is a distraction to this project, not the point of the project. | 22:06 | ||
nothingmuch disagrees | |||
p6 is a good oppertunity to rethink these things | |||
before they are fixated | |||
kwid is not worse than pod | |||
stevan | POD is bad,.. Kwid is better (but not perfect) | ||
nothingmuch | except in that it's less known by perl programmers | 22:07 | |
theorbtwo | Kwid is worse then POD in as much as POD is already existant. | ||
nothingmuch | but then again, everybody knows wiki format | ||
theorbtwo | Kwid seems to mostly say "it's just like POD except for this and this and this". | ||
nothingmuch | theorbtwo: they're so interchangeable that it doesn't matter | ||
theorbtwo | No, nobody knows wiki format, because every "wiki" has a different format. | ||
nothingmuch | it's a generic format, | ||
theorbtwo | This is kwiki format, which is somewhat different, but confusingly similar, to mediawiki format. | ||
The problem with POD isn't the syntax, it's the semantics. | 22:08 | ||
nothingmuch | i find the semantics good enough 90% of the time | ||
people grok that [this item] is a unit | |||
and that * foo is a bullet | |||
theorbtwo | L<...> sucks, but not because it's L and angle brackets and not square brackets. | ||
nothingmuch | why does it suck? | ||
stevan | because it doesnt DWIM | ||
nothingmuch | invert the problem - make your targets more linkable | 22:09 | |
theorbtwo | Because I don't have any strong intuition what I can put in there and what it will look like. | ||
nothingmuch | so it should DWIM, that's not difficult | ||
theorbtwo: i do | |||
ingy | I don't want to be in an argument. Each of us has things they want to work on. I will continue working on kwid and leave this discussion alone. | ||
theorbtwo | Really? | ||
nothingmuch | i read perlpod | ||
theorbtwo | So did I. | ||
nothingmuch | i forgot it the first time | ||
reread, and since it's been there | |||
the quoting semantics piss me off | |||
theorbtwo | But when I feed it to man, I get "the foo manpage" on things that aren't manpages. | ||
lightstep | if make test runs, does it mean i didn't fuck up the code too much? | ||
nothingmuch | that's search.cpan.org crap | 22:10 | |
ingy | I really am only here to be helpful. | ||
nothingmuch | it's a bug, IMHO | ||
which i'm too lazy to complain about to Graham Barr | |||
theorbtwo | Ah. | ||
I read lots of pod on search.cpan.org | |||
nothingmuch | lightstep: if the tests are good enough, then in theory yes =) | ||
theorbtwo | I want it to look right there. | ||
stevan | lightstep: yes and no | ||
nothingmuch | so search.cpan.org should be fixed | ||
not pod | |||
lightstep | i only changed some things in the basic engine | ||
theorbtwo | I'd suggest, again, stealing your bracket-link syntax straight from PM. | ||
nothingmuch | pod is a way to structure doc | 22:11 | |
theorbtwo | Make it as consistant as you can, is the most important thing. | ||
stevan | ok you two,.. stop arguing or we will use XML | ||
nothingmuch | pm bracket syntax rocks | ||
theorbtwo | This is a /big/ break from POD, where there are a lot of formatters, and few of them agree. | ||
Thank you, nothingmuch. | |||
awwaiid | nooo! NOT XML!!! | ||
nothingmuch | awwaiid: it's sexy, it's complete, it must be good! | ||
YAMLdoc | |||
document structure is indentation | 22:12 | ||
awwaiid suddenly feels horrible pain in chest | |||
stevan | awwaiid: but those Java guys will finally respect us ... | ||
nothingmuch | anyway, i want to eat | ||
theorbtwo: suggest pm links to ingy about kwid | |||
they add power by means of the schema | |||
which is optional | |||
but is more readable, imho | 22:13 | ||
but slashes should dwim, in a way that makes the schema guessable | |||
i don't like `file.txt`, i think it should be [f://file.txt], as a shortcut for [file://file.txt] | |||
theorbtwo | Actually, schema shouldn't be optional in kwid. | ||
And I already did. | |||
nothingmuch | theorbtwo: /me didn't notice | 22:14 | |
Khisanth | hmm | ||
[f://f://file.txt]? :) | |||
nothingmuch | so bottom line is: i don't care, do whatever you want, i'll use it | ||
ingy | nothingmuch: I actually changed your semantics... the real kwid form is {file: file.txt} | ||
nothingmuch | food & | ||
why {} and not []? | |||
ingy | nothingmuch: but `file.txt` would get the same output in most formatters, so why bother | 22:15 | |
nothingmuch | can we also make it match (\s+|//)? | ||
schema:// is very obvious for everyone | |||
ingy | nothingmuch: [] is for links exclusively | ||
nothingmuch | ingy: semantics | ||
theorbtwo | I'd prefer, as far as possible, using simple URLs. | ||
nothingmuch | i would like it to link to the file | ||
ingy | oh, ok | ||
nothingmuch | so that in viewer funky, you click, and get the docs of that program | 22:16 | |
ingy | well [file://file.txt] would work | ||
nothingmuch | or the source of it, if there are no docs | ||
decay | :> | ||
nothingmuch | that's relative to the current file, right? | ||
ingy | nothingmuch: actually just: file://file.txt would work | ||
nothingmuch: depends on the formatter | 22:17 | ||
nothingmuch | make it depend on a spec, not a formatter | ||
this needs to be deterministic | |||
that's all i have to say, really | |||
theorbtwo | Couldn't have said it better myself. | ||
I'm glad you said it first and kept me from saying saying it worse. | 22:18 | ||
ingy | sure thing... | ||
nothingmuch | i couldn't care less about formatting, because i'll use it anyway, and wouldn't mind silliness | ||
but the semantics are important to me | |||
now, what about css? ;-) | |||
i'm really off now... bbiab! | 22:19 | ||
ingy | the semantics will be well defined. but the spirit is already well defined, so I will write a reference implementation to bootstrap things before writing the spec. | ||
nothingmuch | yum, food is thawing | 22:21 | |
ok, i zapped the .comment | |||
and i'm committing | |||
everyone ok with that? | |||
ingy | sure | ||
nothingmuch | except: i forgot how to noclobber in perl | ||
theorbtwo | unless -f | 22:22 | |
nothingmuch | no ">" type param to open? *sniff* | 22:23 | |
mugwump | I think a reference XML conversion from kwid bytecode would help stem confusion... | 22:24 | |
what do you think, ingy? | |||
Actually, scrap that. Forget XML. Let's call it *SGML* ;) | |||
ingy | mugwump: fine. I will add Kwid::Formatter::XML. trivial | 22:25 | |
mugwump | XML might suck at being YAML, but it's quite good as a standard markup language :) | ||
s/standard/lowest common denominator/ | 22:26 | ||
theorbtwo | It's pretty good. | ||
It'd be better if it could handle arbitrary binary data as well as textual data, but it's not bad. | |||
mugwump | Sure. I'd like to be able to include UML diagrams. | 22:27 | |
Any thoughts on inline multimedia, ingy? | |||
ingy | .image | 22:28 | |
.binary | |||
whatever | |||
mugwump | great. and tables? | ||
mugwump looks at the bloody source :) | |||
ingy | perhaps an include facility is needed | ||
.table | |||
nothingmuch | KISS | 22:29 | |
ingy | nothingmuch: IISS | ||
mugwump | yes, include would be nice - for instance, see the Scriptalicious module... | ||
also, Pod::Constants... | |||
nothingmuch | i think tables ought to be grokked frmo tab separated indented blocks | ||
Juerd | No. | ||
Tab be bad. | |||
nothingmuch | tab be != space | ||
and != comment | |||
ingy | nothingmuch: it is up to the table plugin, I think | ||
Juerd | Tab's invisible and visually indistinguishable from spaces | 22:30 | |
nothingmuch | it's not necessarily tab indented | ||
mugwump | Scriptalicious scripts have to replicate some stock POD in order to get the POD page to work out. But really, it wants to be a POD include | ||
nothingmuch | just in between columns | ||
Juerd | No, tabs are bad by definition | ||
I hate them | |||
I want at least one other way to handle tables. | |||
Juerd suggested something to p6l a while ago | |||
ingy | I would strongly vote against using tabs for markup | ||
nothingmuch has a delegate (ingy) | |||
Juerd | That I still think would work well for pod. | ||
mugwump | There is precedent here in kwiki, folks. | ||
Juerd | kwiki's tables suck | 22:31 | |
Next! :) | |||
ingy | Juerd++ | ||
wiki tables suck | |||
Juerd | It doesn't have table headings | ||
Now what happened in that design? | |||
mugwump | I like TWiki tables | ||
|* th *| td | | |||
nothingmuch | latex! | ||
just kidding | |||
Juerd | rubber! | 22:32 | |
stevan | raw Postscript :) | ||
theorbtwo | I still think embedded HTML is really the easiest way all around. | ||
Juerd | See [email@hidden.address] is p6l | ||
ingy | all of this is possible if you delegate it to .table plugin | ||
theorbtwo | You're assuming only one formatter again. | ||
Juerd | theorbtwo: But the hardest to parse | ||
s/is p6l/in p6l/ | 22:33 | ||
ingy | tables should not be core imo. KISS again | ||
Juerd | They can be | ||
If they're simple enough | |||
theorbtwo | But there are so many existing HTML parsers. | ||
Juerd | I think my idea is | ||
theorbtwo: Irrelevant. | |||
theorbtwo | Not really, no. | ||
Juerd | theorbtwo: There are so many XML parsers that it's starting to work AGAINST xml as a good choice for data. | ||
I think a simple table design must be part of the pod spec | 22:34 | ||
theorbtwo | I think it's one of the few ways in which POD really sucks. | ||
nothingmuch | theorbtwo: html is evil, it is too much formatting, not enough info | 22:35 | |
too freeform for documentation of API, etc | |||
mugwump | ingy, whip us up a fresh example of what a table using a .table plugin would look like | ||
just because it's a plugin doesn't mean it isn't shipped with core | |||
Juerd | tnx.nl/3656TBBS | ||
ingy | mugwump: here | 22:36 | |
.table | |||
Juerd | I still think that's a very workable and easy to parse simple solution for the most commonly used tables. | ||
mugwump | :) | ||
ingy | ... TWiki syntax ... | ||
.table. | |||
Juerd | It requires NO parsing for plain text output | 22:37 | |
And in fact, you can skip parsing it altogether if you want | |||
But you can still interpret it and output nice HTML when that's desired | |||
mugwump | And it leaves gaping ambiguity in the face of combining and double-width characters, Juerd | ||
But there's no reason it couldn't be an alternative plugin | |||
Juerd | mugwump: All POD is utf-8, and double^Wfull width characters are well, 2 normal columns wide. | 22:38 | |
ingy | Juerd: it is problematic for multiline cells | ||
theorbtwo | No, it doesn't; combining characters combine and double-width characters are double-width. | ||
Juerd | ingy: Not really - just repeat the ==== line in between cells | ||
theorbtwo | All unicode characters have a defined width of 0, 1, or 2. | ||
Juerd | ingy: This isn't a full spec, but it can be extended to one. | ||
ingy | Juerd: it is fine with me | ||
Juerd | theorbtwo: width 1 is "half width" | 22:39 | |
theorbtwo: width 2 is "full width" | |||
There is no "double width" | |||
theorbtwo | Er, sorry. | ||
Irrespective, all unicode characters have a well-defined length of 0, 1, or 2. | |||
mugwump | Oh? The emacs multilingual demo page shows a triple width character in Hindi | 22:40 | |
Sorry, 1.5 width :) | |||
Juerd | ingy: I imagine that you could easily use === in the header division line to indicate multi-line cells, that have --- in between them | ||
ingy: And --- between head and body for single line cells | |||
This fixes the problem instantaneously without giving up the plain text readability aspect | |||
instantly too | 22:41 | ||
ingy | Juerd: looks promising... | ||
mugwump | | delimiters are still readable in plain text. You can still line them up. | ||
Juerd | ingy: Want me to mock up a quick spec with some examples? | ||
ingy | make sure you can put verbatim blocks in cellls | ||
Juerd: sure! | |||
Juerd | mugwump: It's HARD to parse correctly, and doesn't handle multiple line cells either | ||
ingy: Current idea is that everything is verbatim | 22:42 | ||
ingy | Juerd: no | ||
Juerd | ingy: Are non-verbatim tables needed? It's programming language documentation, after all | ||
ingy | sure... you want to have prose too | ||
Juerd | In tables? | ||
ingy | with bold/italics etc | ||
Juerd | I see | ||
mugwump | Juerd: very true (about | being hard to parse) | 22:43 | |
ingy | I would simply say that indented text is verbatim | ||
Juerd | ingy: That results in ugliness in the source, though | ||
code purpose | |||
========= ============== | |||
$foo variable foo | |||
(Not even trying to line up here) | |||
ingy | $foo variable foo | 22:44 | |
oops | |||
Juerd | It's very consistent with the rest of POD though | ||
ingy | $foo variable foo | ||
Juerd: but it's in .table | |||
Juerd | .? | ||
ingy | which is like =begin table | ||
ie it should work for pod too | |||
Juerd | Why not =table, with the entire command paragraph being the table? | 22:45 | |
=table <possible caption here> | |||
th th th | |||
==== ==== ==== | |||
td td td | |||
line two here | |||
mugwump | ingy, one thing I think you got right in KWID was the {* *} thing. something similar could be used to allow arbitrary markup and flow inside cells, if a twiki-ish syntax was adopted | ||
Juerd | ---- ---- ---- | ||
next line of | |||
cell s here | |||
---- ---- ---- | 22:46 | ||
normal paragraph again | |||
where s/next line of/next row of/ | |||
ingy | Juerd: maybe write something up on the wiki | ||
mugwump | Defining columns as being aligned with whitespace disgusts me and reminds me of mainframe data exchange. but each to their own :) | ||
Juerd | I'll write it off-wiki first | ||
ingy | awesome | 22:47 | |
Juerd++ | |||
lightstep | perlbot: karma Juerd | ||
perlbot | Karma for Juerd: 8 | ||
jabbot | lightstep: Juerd has neutral karma | ||
ingy | Juerd: are you SEE enabled? | ||
Juerd | I can see, but I don't think you were referring to my visual capabilities | ||
ingy | :P | 22:48 | |
got mac? | |||
Juerd | No | ||
ingy | :( ok | ||
Juerd | What be SEE? | ||
ingy | ping me later | ||
SubEthaEdit | |||
nothingmuch | this reminds me: theorbtwo, put yourself in pugs.kwiki.org/?OSXPeople | ||
ingy | real time multiuser editing | 22:49 | |
Juerd | ah | ||
sounds nice | |||
No linux port? | |||
ingy | nice for fleshing out this kind of stuff | ||
nope | |||
mac only | |||
nothingmuch | Juerd: get theorbtwo to work on it =) | ||
ingy | sadly | ||
Khisanth | write one in Perl6 :) | ||
nothingmuch would rather bind fav editor to erlang | 22:50 | ||
and then write with that | |||
bd_ | Uhm, what version of ghc is needed to build pugs these days? I just svk upped, and making gives the error: ghc-6.2.2: unrecognised flags: -fno-warn-orphans | ||
theorbtwo | Hoping to use elisp to get emacs to speak the protocol. | ||
nothingmuch | blame lightstep | 22:51 | |
theorbtwo | Still in fairly early stages. | ||
(vi'ers are on their own.) | |||
mugwump contemplates p6macs | |||
bd_ | meh. *upgrades ghc* | ||
nothingmuch | bd_: i think i'd rather undo that change | 22:52 | |
bd_ | True, since the readme claims 6.2 is sufficientr | ||
nothingmuch | there's no ghc 6.4 for osx yet | ||
bd_ | but I might as well upgrade anyway | ||
nothingmuch | and autrijus doesn't want to force 6.4 for other reasons | 22:53 | |
lightstep: can you undo? | |||
theorbtwo | Hold on; I'll make Makefile.PL only do that if version is 6.4. | 22:54 | |
theorbtwo wonders if ghc versions have vstring semantics. | |||
ingy | does pugs expose data sections yet? | 22:56 | |
lightstep got back from afk | 22:57 | ||
i'd like to undo, but don't know how | |||
the problematic revision was r724 | |||
nothingmuch | lightstep: commit reverse patch... but don't | ||
svn doesn't allow undoing your actions | 22:58 | ||
like some VCSs (darcs!) do | |||
lightstep | is there a linear patch order on svn? how primitive! | ||
mugwump | ingy, one other thing I'd like to do is be able to assign marked sections of kwid to constants in code. For that, I think a search specification language akin to XPath would be very nice. | 22:59 | |
This could actually *be* XPath, using the reference XML conversion as the XML document, even if no actual XML document is used. | |||
theorbtwo | That should do it. | 23:00 | |
ingy | mugwump: ok.. but I am working within the confines of POD semantics until things get rolling more. | ||
theorbtwo | Ugh... or not. | ||
Note to self: svn up, then make edits. | |||
ingy | mugwump: kwid_to_xml may be your answer though | ||
theorbtwo | How do I get rid of an "Aborting commit: '/usr/src/pugs/Makefile.PL' remains in conflict"? | 23:01 | |
lightstep | revert? | ||
ingy | no | 23:02 | |
svn resolved filename | |||
or delete the conflict files by hand | |||
theorbtwo | Thanks. | ||
ingy | np | ||
mugwump | ingy: Sure. I'm just relating my experience from writing Pod::Constants - in Perl 5, it's a great module, aside from it being too slow to use practically for many things. If the kwid was being kept in the parse tree as KWID bytecode (perhaps with a pragma or module), then it would be a lot faster and more practical... | ||
nothingmuch | theorbtwo: 3 way merge with rev before you updated, your version, and head version | 23:03 | |
and then svn resolved file | |||
theorbtwo | r728. | ||
Not well tested, though. | 23:04 | ||
nothingmuch | (map { $_+1 } <== (1, 2, 3) ==> map { $_*2 }) | 23:07 | |
what does that mean, anyone? | |||
;-) | |||
tip: bottom of S03 | |||
lightstep | theorbtwo, it doesn't work here (ghc6.4) | 23:08 | |
theorbtwo | Didn't work how? | ||
lightstep | doesn't add -fno-warn-orphans | 23:09 | |
ghc --version gives "The Glorious Glasgow Haskell Compilation System, version 6.4" | |||
theorbtwo | Hm. | ||
lightstep | maybe the regex is to blame | 23:10 | |
theorbtwo | Grr, /me stupid. | 23:12 | |
Juerd | ingy: tnx.nl/3657ZUJN | 23:14 | |
nothingmuch | does pugs have trouble parsing infix ^? | 23:16 | |
inside an eval '' things work | |||
but if unwrapped, regardless of how many parens, the test fails | |||
ingy | Juerd: that looks very promising. | ||
Juerd | Thank you | ||
ingy | I have one reservation. | 23:17 | |
lightstep | Y and yen are parsed horribly | ||
Juerd | That's not many | ||
ingy | It seems very brittle | ||
Juerd | Which is it? | ||
What is brittle? | |||
ingy | how do you handle formatting errors? | ||
I guess you could just show the block verbatim | |||
Juerd | \w characters in ignored zones should probably issue a warning | 23:18 | |
ingy | with a warning somewhere | ||
Juerd | And a line with enough (more than three?) - characters in data positions, but no other character, should too | ||
And just render it following the spec | |||
And everything as one big verbatim block if you really can't make any sense of what the author meant (for example, if there is no column width specification line at all) | 23:19 | ||
nothingmuch | could somoene please see://woobling.org, precedence.t | ||
Juerd | Which I will from now on abbreviate of cwsl :) | ||
nothingmuch | and read s03 | ||
Juerd | s/of/as/ | ||
nothingmuch | lines 119, 121, and 135 should really fail? | ||
ingy | hi DapperDan | 23:20 | |
nothingmuch | i really hope i misunderstood s03 | ||
DapperDan | hi ingy | ||
nothingmuch | because i thought that part of it was stupid | ||
also, that test needs more cases | |||
ingy | Juerd: are you up for writing the parser/formatter? | 23:22 | |
lightstep | perlbot, nopaste | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
Juerd | ingy: No, I'd LOVE to do it, but I can't | 23:23 | |
ingy | Juerd: *2text would be easy :P | ||
Juerd | In fact, if I were able to do this, I would probably have done it already | ||
obra | perlbot, but we're on #perl6 | ||
Juerd | Easy, but work I can't do | ||
ingy: I have a severe form of RSI | |||
ingy | Juerd: cool, well somebody will. nice ideas! | ||
Juerd | My involvement in Perl 6 is already too much for my wrists, arms and hands | 23:24 | |
ingy | maybe post to the pugs wiki | ||
Juerd | Will do | ||
pasteling | "lightstep" at 217.132.212.230 pasted "futurist pugs shell - call for improvments" (8 lines, 299B) at sial.org/pbot/8190 | 23:25 | |
lightstep | should i implement this? | ||
or differently? | |||
Juerd | Wow, the wiki is SLOW | ||
DapperDan | is there a trac install for pugs, or somewhere else where i can view a timeline of changeset/commits? | ||
theorbtwo | That'd be great, lightstep. | 23:26 | |
nothingmuch | lightstep: while you're at it, make <expr> work across lines | ||
pugs> (1 | | |||
*** Error: | |||
instead it should look like: | |||
pugs> (1 | | |||
theorbtwo | Hmmpf, for some strange reason, this doesn't seem to work, no matter what I do. | ||
lightstep | nothingmuch, i don't have readline, and i don't even know the interface. it's in another part of the code | ||
nothingmuch | : 2 |) | ||
( 1 | 2 ) | 23:27 | ||
just make parsing commulitive: | |||
theorbtwo | Things will work from perl -e, but not when I put them in the lib... | ||
Very confusing to me. | |||
nothingmuch | if it doesn't parse, read more, and then finish when it does | 23:28 | |
DapperDan: there's rss for commits | |||
and in general, you can find other statistical goodness on rt.openfoundry.org | 23:29 | ||
DapperDan | thanks | ||
nothingmuch | lumi: do you have any suggestions? | ||
theorbtwo | It'd be nice if the parser could provide feedback as to if the input is invalid, or incomplete. | 23:30 | |
Juerd | ingy: pugs.kwiki.org/?PodTables | ||
ingy: Updated too | |||
afk | 23:31 | ||
pasteling | "nothingmuch" at 212.143.91.217 pasted "funny stuff from s03" (11 lines, 293B) at sial.org/pbot/8191 | 23:32 | |
ingy | Juerd++ | 23:33 | |
nothingmuch | *loud cough* | 23:35 | |
Juerd | Gesundheit. | 23:36 | |
nothingmuch | nono, see nopaste | ||
lumi | I have 5s ping to the world apparently | 23:38 | |
theorbtwo | Sounds horrible, lumi(mies)? | 23:39 | |
G'evening, Limbic. | 23:40 | ||
lumimies | Yes, it's, um, not much fun | ||
lumimies backlog | 23:41 | ||
Limbic_Region | salutations theorbtwo | 23:43 | |
Jean is in driver's education from 6-9pm EST for the next 2 weeks, I am debating getting involved now that I only have 1 job | 23:44 | ||
lumimies | Suggestions for what? | ||
Khisanth | perl6 has true but not false? | ||
mugwump | bool::false | 23:47 | |
Juerd | Khisanth: true is a unary operator | 23:55 | |
Khisanth: That returns true when its argument is true. | |||
Khisanth: It is to ? what not is to ! |