6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | < audreyt> my fingers juxpatosed Set by nothingmuch on 24 February 2006. |
|||
putter | audreyt: yipes. :) | 00:04 | |
00:06
dduncan joined
|
|||
putter | I thank you for the energy shown, motivated by concern for me. It need not have quite so vigourous. ;) | 00:07 | |
oops. vigorous. | |||
00:08
Jack joined
|
|||
clkao | audreyt: | 00:09 | |
i just noticed cafeexpress has apron as well. | |||
i need one. and a pugs one won't hurt :D | 00:10 | ||
cafepress, actually | 00:11 | ||
putter | I'm fine with the code snarf. Like I said, you now know how experimental/incomplete/broken/work-in-progress it is. And I'm fine with you making the call on whether to cpan it. | 00:13 | |
Now rather than later, and people participating rather than not, is definitely an advantage. | 00:14 | ||
Supaplex downs a rich glass of Hursheys chocolate milk mmmmmm yum | |||
putter needs get dinner. struggles to focus... ;) | |||
Given the code's current state, I'm not comfortable with my name being on it as a cpan module. But the new Implemented by: The Perl6 team. takes care of that. | 00:18 | ||
And the pod now mentions that it's a yawning security hole. | 00:19 | ||
I still think of it as pre-alpha development snapshot code, and will likely evolve it in parallel re::override, but I'm ok with you making a different call. Rapid anarchistic development and all that. | 00:21 | ||
*in parallel with | |||
Cpanning without our talking was perhaps not the ideal call. But I was out of touch for a couple of days, and you are getting things done, and some oops-es are inevitably part of that. | 00:26 | ||
fglock | putter: hi | 00:27 | |
putter | hi fglock | ||
Sure beats things _not_ getting done. So not a problem. | 00:28 | ||
fglock | putter: I'm trying to rework the capture field in i_e - didn't notice how hard it would be | ||
putter | :) | ||
i'm just finishing up a note for audreyt. then I'll be gone for ~15 min to snarf dinner before the store closes. then back. | 00:29 | ||
One idea came to mind - we could drop the p5 t/op/{regexp,split,etc}.t tests in re::override, add a dependency on re::override::pcre, and run the tests against that. so people can see how well it is/isnt working and go from there. | 00:32 | ||
szbalint enjoys the buzz of almost finishing preparations for his first CPAN module upload. | 00:33 | ||
putter | :) | ||
mugwump | hey, if somebody could clean up my turds while you're cpan'ing all the pugs modules, that'd be great :) | 00:35 | |
Set is probably OK, but, eg Date was never finished and should probably be ripped out. | |||
putter | I was going to wait to switch development into pugs svn until split() was working, and segfaulting was under control. perhaps lexical scoping actually being lexical, /i /m, and (??{}) hooked in. | ||
mugwump | ah, Date is already gone | 00:36 | |
mugwump wishes that the Perldoc development process didn't jam way back when | |||
oh no, Date is in misc/ | 00:37 | ||
putter | but part of that was not looking forward to getting the regexp-engine sane. hmm. maybe most of the "put it off one milestone further" was. ;) maybe we can use override::pcre for that? | ||
mugwump stops being lazy and does it himself | |||
putter | audreyt: So, we'll talk in the morning. And perhaps dust off the re::override code (perl5/ seems a fine place for it - pX is whatever we want it to be), add some tests, make sure the pod tells people what they're getting, and you can make the call on cpanning it. | 00:40 | |
mugwump decides, on reflection, to leave it as-is and just mark it as a brainfart | 00:42 | ||
00:42
cotfis joined
|
|||
putter | guess that's it. need food. | 00:43 | |
hi fglock | |||
insufficient braincells to multitask, sorry | 00:44 | ||
how goes? | |||
yeah, capture seems so simple. and ends up being almost as hard as the rest of the engine. ;) | 00:46 | ||
svnbot6 | r9475 | mugwump++ | misc/Date: add comment relating to brainfart nature of this module | ||
putter | lol | ||
food run. bbiab & | |||
bah. this keeps bugging me, so rephrase: Cpanning the code I was writing without our talking was perhaps not the ideal call. ...blah.... But I was out of touch for a couple of days, and you are getting things done, and some oops-es are inevitably part of that. | 00:51 | ||
sigh. was still working on that. never mind. food. | |||
00:56
mako132_ joined
00:57
Shachaf joined,
mako132_ joined
01:13
K joined
01:14
borkened joined
01:20
Shachaf left
|
|||
putter | rehi | 01:23 | |
fglock: re captures, you might try doing simplified captures first. not worrying about access before its closed, or is it there if it was never reached, etc. Even perl doesnt handle it properly :) (there is a "this isnt quite right comment in... someplace, split? in the perl code:) | 01:27 | ||
the 5.9 perl code :) | |||
01:29
Nouk joined
|
|||
fglock | putter: ping | 01:31 | |
putter: nevermind (I had a question, but found it) | 01:33 | ||
& | |||
01:33
fglock left
|
|||
putter | fglock: pong... | 01:34 | |
sorry, was backlogging | 01:35 | ||
01:36
cotfis joined
|
|||
putter notices in the irc log that his clock speed was waaaay down. | 01:36 | ||
01:38
LCamel joined
01:47
xern joined
01:48
xern joined
02:08
Supaplex is now known as consensus
02:11
consensus is now known as Supaplex
02:12
cotfis joined
02:19
elmex_ joined
|
|||
putter | anyone else doing pugs "night shift"? | 02:20 | |
Alias_ | pong | ||
sorta | |||
putter | ;) | 02:21 | |
svnbot6 | r9476 | putter++ | re-override/t/from_perl5_t created. Regexp related t/ files from perl HEAD (r19815, 13 Mar 2006). They are unmodified. And cannot yet be run. See t/from_perl5_t.t for details. Not a delightful name - renaming encouraged. | ||
Alias_ | not much sleep, so brain fried today | ||
putter | hmm. I wonder if someone has a brain impairment hierarchy. Like fuzzy through fried through tapioca pudding. | 02:22 | |
Alias_ | I'll work on that for you one day when my brain is above pudding | 02:23 | |
putter | lol. oo, not a hierarchy, but a taxonomy. so a single phrase can capture the state of your memory, clock speed, judgement, puzzle solving capability, etc. | 02:25 | |
(ahhh, caffine kicking in;) | 02:26 | ||
revdiablo | evalbot_9437: ?join #perl | 02:29 | |
Hmm, how do you make it join channels? | 02:30 | ||
?join #perl | |||
02:30
evalbot_9437 is now known as evalbot_9476
|
|||
evalbot_9476 | you should only do ?join in a private message so other bots don't accidentally come. | 02:30 | |
revdiablo | Uhoh, now the spammy svnbot joined #perl. Oops | 02:31 | |
02:36
DesreveR joined
|
|||
szbalint | :) | 02:50 | |
03:00
lisppaste3 joined
03:19
Shachaf joined
03:27
Shachaf left
03:30
GabrielVieira joined
|
|||
GabrielVieira | hi there | 03:30 | |
szbalint | Hello. | ||
GabrielVieira | wicth modules will be included in perl6? | 03:31 | |
szbalint | I have no idea and I don't think anyone has because most of them aren't written yet... | 03:32 | |
GabrielVieira | i mean... strict inst need anymore... so.. socket and other are going to be implemented in perl source code? | 03:33 | |
or they still goig to be modules? | 03:34 | ||
ayrnieu | things written in 'perl source code' may still be modules. | ||
GabrielVieira | humm | ||
i usually mean if they can be functions instead modules | |||
undestand? | 03:35 | ||
:) | |||
ayrnieu | that doesn't make a great deal of sense to me... but anyway, the set of modules in the perl6 core will likely grow over time. Those already in perl5's core are likely to be a necessary kernel. | 03:36 | |
GabrielVieira | humm | 03:37 | |
i got | |||
putter collects a new perl error message: Out of memory! END failed--call queue aborted at t_op2/split.t line 17. | 03:38 | ||
stevan | putter: congratulations :) | 03:41 | |
ingy | stevan: yo | ||
stevan | heya ingy | ||
ingy | are yo M::C aware yet? | 03:42 | |
since audreyt isn't here I want to bounce an idea off you | |||
stevan | I am down with the M::C, but not as much as audreyt | ||
but bounce away, maybe I can help | 03:43 | ||
ingy | simply put, I want M::C to attempt to be lexical | ||
{ use v6; ... } | |||
putter | hi stevan :) | ||
stevan | heya putter | ||
ingy: refresh my memory as to how M::C does it's magic,... source filtering? | 03:44 | ||
stevan seems to recall that proper lexical pragmas was on Nicholas's grant list | |||
ingy | with 'package' as a lexical boundary too | ||
stevan | ingy: where is the source repo for M::C? | 03:45 | |
ingy | stevan: M::C chunks Perl on use/no boundaries | ||
stevan has to remember to write nothingmuch (aka - mc parsec) his rap-lyrics | |||
ingy: and you want to have implicit no v6; at the end of the lexical scope? | 03:46 | ||
ingy | stevan: svn.kwiki.org/ingy/Module-Compile | ||
yes | |||
right | |||
stevan | muchas gracias ingy-san | ||
ingy | one idea is that if a 'use' comes before any 'package' then the filter applies to the whole file | 03:48 | |
putter | ingy: %^H might be helpful | ||
stevan | ingy: I think you would have to make pmc_chunk a little more granular | 03:49 | |
you could split on { or } and "package" | |||
ingy | stevan: that's what I'm thinking | 03:50 | |
stevan | use a stack to keep the { and } balanced | ||
ingy | putter: @_@ | ||
stevan | ingy: the only problem is that there are a lot of { and } in perl code | ||
some of which have nothing to do with scope | 03:51 | ||
ingy | stevan: I think the sane thing (when chunking) is to keep it line based | ||
that might be naive | |||
putter tries to find pmc_chunk... | 03:52 | ||
ingy | currently, the use/no statements need to be on the same line | ||
stevan | putter: second to last before __END__ | ||
ingy: on the same line?? | |||
stevan looks for tests | |||
ingy | s/the same/a single/ | 03:53 | |
stevan | oh | ||
:) | |||
ingy: you could use the same restriction for { use v6; | 03:54 | ||
hmm,.. but then you are still looking for all {} | |||
ingy | I can think of several of my projects that could benefit from a coarse grained chunking of Perl code | ||
stevan | ingy: isnt M::C supposed to be run offline,.. so performance is not an issue | 03:55 | |
ingy | PPI? | ||
stevan takes the crackpipe from ingy's lips | |||
although .... | 03:56 | ||
ingy | I'm not sure how offline usage will be... | ||
currently it works ok, even when a cache can't be written. | 03:57 | ||
stevan | well,.. optimize for correctness first IMO | 03:58 | |
worry about speed later | |||
putter | ingy: how about breaking out a pmc api from the filter stuff? | ||
stevan | I am not sure if PPI can tell you scopes | ||
ingy | putter: explain | 03:59 | |
stevan | Alias_: ping | ||
ingy | stevan: I think I already had this talk with Alias_ | ||
and the answer was "wrong tool" | 04:00 | ||
stevan | ingy: oh,... ok | ||
Alias_: ping.cancel | |||
ingy: well splitting on {} and package, then managing your own scope really shouldnt be that hard | |||
ingy | I'll just do it test first | 04:01 | |
and incrementally improve | |||
stevan | TDD++ | ||
ingy | so what's a good name for a chunker? | ||
putter | there are two related but distinct things being created. the resurrection of pmc's. with things like writing them, and checking freshness, etc. and a filter tool for munging a source file and, almost incidentally, dropping it in a pmc. folks may wish to create pmc's directly, or with a different filter tool, etc. | ||
stevan | Slice::N::Dice | 04:02 | |
ingy | Parse::Perl::Chunky | ||
stevan | then you need a Parse::Perl::Creamy | ||
Parse::Perl::Guinsu | |||
szbalint | You're making me hungry :( | ||
:P | |||
Alias_ | PPI can sort of tell you scopes | 04:03 | |
stevan | no,.. thats too fine edged | ||
Alias_ | It's just not implemented completely yet | ||
ingy | Alias_: are you willing to rename PPI to P::P::Creamy? | 04:04 | |
stevan | :D | ||
Alias_ | Not really | ||
Every time I went for a cute name it failed utterly | |||
ingy | Silky? | ||
Alias_ | Hence my decision that boring names are best | ||
stevan | ingy: then you should call the current chunker Parse::Perl::ExtraChunky | ||
Alias_ | Perl Parsing Interface | ||
ingy | acronyms are best | ||
Alias_ | The problem was just that nobody finds them funny, in real life. | ||
Every tie I tried the joke flopped | 04:05 | ||
time | |||
Much more laughter from things like Acme::PerlML | |||
stevan finds that very few people (outside of geeks like us) appreciate this kind of humor | |||
Alias_ | stevan: Hell, I don't really appreciate it | ||
stevan revokes Alias_ | |||
Alias_ | stevan: It gets old real fast | ||
Except for PITA :) | 04:06 | ||
stevan | ok,.. I will agree with that one :) | ||
Alias_ | Which I think is a good one :) | ||
stevan | it makes me think of falafel | ||
Alias_ | The only funny names are the ones that hold their humor for a while | ||
Or where it makes a good back story but the name is usable anyway (Apache) | |||
stevan tries to make a witty acronym out of falafel | |||
Alias_ | It's a medical program! | 04:07 | |
For when you "feel awful" | |||
putter shakes his head and wanders back to nontermination... | |||
(groan) | |||
stevan | putter: I always knew you were unstopable :P | 04:08 | |
ingy | putter: good point. I'll stack it for someday | ||
04:08
mako132_ joined
|
|||
ingy | Alias_: what is PITA anyway? | 04:08 | |
Alias_ | ingy: A testing architecture | ||
stevan | ingy: so, I think you should just split on {} and punt unless the next token is 'use v6' | ||
ingy | Alias_: use Test::Base | 04:09 | |
Alias_ | ingy: For testing any project in any language on any operating system on any hardware | ||
ingy | cool | ||
Alias_ | ingy: Using pluggable emulator drivers and pluggable testing harness wrappers | ||
ingy | sounds like a PITA | 04:10 | |
Alias_ | ali.as/pita/ for when it was Perl only (before Audrey got a hold of it) | ||
ingy: So basically, it's a toolhit for building bitrot testers, and cpan testers, and smoke systems, and so on | |||
toolkit | |||
nightly testing, and so on and so forth | |||
So basically, you guy buy a $400 whitebox PC, and you can test a module on every platform perl supports | 04:11 | ||
go buy | |||
Or you buy 10, and do them all in parallel | |||
So it should handle clustering and remote proxying an a few other things | |||
putter note to self - beware printing out match targets, even for testing. something might be matching against the _unicode codepoint name table_. sigh. | 04:12 | ||
Alias_ | Basically, I decided to write it because building smoke/testing stuff like that is a pain in the Ass | ||
And so by naming it PITA, I scare myself into making sure PITA isn't a PITA | |||
Also, there's the bread thing, and it's sayable | |||
And of course, it also has PITA-XML, pita-server, pita-cluster etc :) | 04:13 | ||
So a little black humor for the sysadmins who'll have to run the installations | |||
putter | (nice to see regexp-spike performance against big input tested though:) (suprise,not - it's slow) | ||
Alias_ | ingy: So in the short term, the idea is to build pugs and parrot smoke systesm | 04:14 | |
systems | |||
(that don't require a dozen different volunteers to test each different arch) | |||
ingy | Alias_: sounds pretty cool. glad I'm not working on it though! | 04:15 | |
Alias_ | and some sort of CPAN Testers 2 | ||
ingy: It's not simple :) | |||
ingy: I already can't keep the whole design in my head at once | |||
ingy | EAT BRAINS | ||
ingy wanders off to see if he got any bug reports for orz.pm... | 04:17 | ||
putter | can use() create a lexical variable? | 04:18 | |
without doing a source filter that is. | |||
{ use re::mumble; .../affects this/; but_effect_isnt_dynamically_scoped(); } | 04:19 | ||
oh, wait. why _not_ do a source filter. FILTER { "my $flag = 'mumble';".$_ } | 04:21 | ||
04:55
elmex joined
|
|||
putter | attributes are applied to my $vars at runtime. which suggests they are a good way to prevent lexicals from being compiled away. is there a noop attribute module anywhere? | 05:03 | |
05:07
knewt joined
|
|||
Alias_ | I still think we can | 05:07 | |
Rather than using the pmc system, which has platform and back-compatibility issues, just do a caching filter | 05:08 | ||
And allow the caching filter to be installed without the actual filter present | |||
I have this suspicion that using the .pmc might be one evil straw too many on the camel's back | 05:10 | ||
05:10
saorge__ joined
|
|||
Supaplex | *snap* | 05:14 | |
Alias_ | ? | ||
oh, the back | |||
Supaplex | yup :P | ||
putter | not a pretty image | 05:21 | |
ingy | At this point i am breaking Perl code into the folllowing top level blocks: PACKAGE,SUB,CODE,COMMENT,POD,HERE,DATA | 05:22 | |
can you think of others? | |||
05:26
jisom joined
|
|||
Supaplex gets all nervous "It's a quiz, isn't it?!" | 05:28 | ||
ingy | it's a plea for help ;) | 05:29 | |
Supaplex: don't get nervous. We already have Alias_ for that :p | 05:30 | ||
Alias_ | But that's a good thing | ||
And if you want top level blocks go read the PPI PDOM class heirachy | |||
ingy | (tm) | ||
Alias_ | and pick the ones you want | 05:31 | |
ingy | thanks | ||
url? | |||
Alias_ | cpan search PPI | ||
main documentation, halfway down somewhere | |||
ingy | not a url | ||
Alias_ | ingy: WORKSFORME | ||
Well, "cpan PPI" works | |||
Firefox++ | |||
ingy | ali.as/CPAN/PPI/index.html ?? | 05:32 | |
Alias_ | Do you have firefox? | 05:34 | |
(lets do this properly) :) | 05:35 | ||
Add a bookmark for search.cpan.org/search?query=%s&mode=all and set it to have keyword "cpan" | |||
I'm amazed you don't have it already | |||
search.cpan.org/~adamk/PPI-1.110/li...Class_Tree | 05:36 | ||
But if you want a URI, there's one | |||
05:36
shric left
|
|||
ingy | Alias_: neat | 05:41 | |
thanks | |||
Alias_ | What are you working on? | 05:42 | |
ingy | PPI::Lite :p | ||
Alias_ | And, to be blunt, why aren't you just wrapping PPI to do it :) | ||
oh... | |||
jisom find something scary about ghc | 05:43 | ||
Alias_ | well good luck, because the Perl syntax sucks more than you can possibly imagine | ||
ingy | I thought you said PPI is too slow | ||
Alias_ | Fractally-complex | ||
Necesarily slow | |||
jisom | "checking version of ghc... ./configure: line 2039: 1948 Trace/BPT trap "${WithGhc-ghc}" --version >conftestghc 2>&1" and configure continues | ||
Alias_ | ingy: What it really needs is for PPI::XS to get some attention | ||
ingy | yeah | ||
Supaplex salutes it | |||
Alias_ | The API is all set up, so it can be improved one function at a time | 05:44 | |
But even ditching a large amount of the edge cases, I'm not sure PPI would get that much faster | |||
Because the edge cases fire so rarely | |||
I think it's around 1500 lines a second at the moment | 05:45 | ||
per gigahertz | |||
ingy | that's not so bad... | ||
Alias_ | In comparison, Perl itself is something like 50,000 | ||
Perl::Tidy alone is 26,000 lines | 05:46 | ||
Unless you want to defined a Perl-lite first, I wouldn't expect PPI::Lite to be very useful | 05:47 | ||
And you'd certainly have to remove heredocs | |||
ingy | You want to be able to parse any perl so you can analyze it | 05:48 | |
I want to parse very sane perl so people can do interesting things(tm) | |||
Alias_ | Then welcome to the PPI wrapper club :) | ||
ingy | very different use cases | ||
jisom | there's a highlighting module on cpan for perl that does quite a good job | 05:49 | |
Alias_ | jisom: Which one? | ||
there's a few | |||
jisom | Syntax::Highlight::Perl | ||
Alias_ | Not one of mine | 05:50 | |
jisom | 2252 lines with all the documentation, other modules needed | 05:51 | |
Alias_ | But does it do anything else | ||
Like ANSI | |||
jisom | ansi and html | 05:52 | |
not together | |||
Alias_ | neat | ||
jisom | includes a couple scripts so you don't need to look at it to get something formatted | ||
I did, I wanted it to look like vim's syntax highlighting | |||
Alias_ | hmm | 05:54 | |
Have you looked at subclassing PPI::HTML | |||
jisom | me? | ||
Alias_ | if you want some particular specific style, yes | ||
svnbot6 | r9477 | putter++ | Regexp-ReplaceEngine.pm - New lexical hook mechanism. A bugfix or two. Still wrestling with split.t. | 05:55 | |
jisom | oh, I don't really use it much.....I use vim, but the "parsing" could be modified to work parsing perl instead of printing highlighted syntax | 05:56 | |
Alias_ | ph, that | ||
oh | |||
Supaplex | it could also handle here documents better. it sometimes breaks them :-/ (vim) | ||
Alias_ | The trouble is... well, I won't bother. Lets just say that the reality of feasibly doing a decent job sucks horribluy | ||
Supaplex | eg, == | ||
putter | Alias_: re straw breaking camel's back - using .pmc's by itself? why? | 05:58 | |
Alias_ | Generally, or specifically? or both :) | 05:59 | |
jisom | which pmc? and wouldn't cpm(compiled perl module) be less confusing? | ||
ingy | .pmc is a gift from God | ||
Alias_ | pmc because that's what's hardcoded into the perl interpreter | ||
putter | Alias_: not sure I understand the question. | ||
jisom | 's/\bpmc\b/cpm/gi' | 06:00 | |
Alias_ | putter: hmm... ok. Have you read the Terry Pratchet books | ||
putter | "I have this suspicion that using the .pmc might be one evil straw too many on the camel's back". why? ;) | ||
yes | |||
(i think. name sounds familiar) | |||
Alias_ | OK, well in Perl, every feature you use in some feature is like magic is in the discworld books | 06:01 | |
On their own, they are just plain cool magic | |||
ingy | putter: Alias_ is a fearful man | ||
Alias_ | But if you put a bunch of them in one place, there's an increasing chance that the entire lot will explode horribly | ||
And .pmc has that smell about it | 06:02 | ||
Enough uncertainty and variations and special little workarounds, that it's probably a bad idea | |||
wolverian | Alias_++ # best analogies are discworld analogies | ||
Alias_ | Although certainly it will probably be faster | ||
putter | Ah, so a system complexity argument. "P5 system management has problematic complexity already. Adding a new dimension may push it into unmanagability". yes? | ||
Alias_ | Other magics include any use of UNIVERSAL hacking, source filters, and CODE ref @INC hooks | 06:03 | |
wolverian | www.google.com/mars/ # also, neat. | ||
Alias_ | putter: Well, you can build very large complex systems in Perl, if you stick to more boring Perl :) | ||
ingy | Alias_: I think you picked the wrong language to get involved in :p | ||
Alias_ | ingy: I guess I just don't have that addictive personality :) | 06:04 | |
ingy | dragons be here | ||
Alias_ | and Damian | ||
:) | |||
ingy | :) | ||
Alias_ | putter: Anyways, my preference is to try to stick to slightly more boring Perl and build it the same way | 06:05 | |
putter: Because I've found it lets you stack up the number of modules and components you have use in a single program | |||
ingy thinks that Alias_ secret plan is to get close enough to audreyt to tame her | |||
Alias_ | Without the risk of it exploding | ||
ingy | explosions++ | ||
Alias_ | Audreyt is less crazy than Damian | 06:06 | |
I'm yet to work out exactly where you lie on that scale :) | |||
somewhere between the two perhaps, because you wouldn't have written Toolbox | |||
ingy | I aspire to leave Damian in the dust | ||
if I only had the brain | |||
Alias_ | Didn't you write like half of Module::Install? | 06:07 | |
There's some very intricate work in there | |||
putter | Alias_: understood. I guess I'm fishing for whether you envision a particular failure mechanism (eg, "gets even more difficult to understand someone else's creation", or "maintaining a server with perl gets even more difficult"). | ||
Alias_ | putter: Ah, I think (but cannot prove) that we'll see platform issues | ||
06:08
hmisty joined
|
|||
ingy | I came up with the concept of Module::Install | 06:08 | |
Alias_ | putter: Mandriva, random large Perl installations, etc | ||
putter: Plus I'm not sure how back-compatible it is | |||
ingy | that it's better to ship the tools you want, then expect them to be there | ||
Alias_ | putter: And for a fairly small cost, we could do a custom implementation of something similar but owned by pugs | 06:09 | |
Although I can't prove "small cost" yet either | |||
(where I generally take code as the proof) | |||
putter | I didn't understand the part about "custom implementation of something similar but owned by pugs"? | ||
Alias_ | Well, .pmc magic is hard-coded into Perl itself | 06:10 | |
We could do something similar using pure perl that will work everywhere and won't depend on compile flags | |||
Probably in a couple of dozen lines | |||
putter | Got it. | ||
Alias_ | Let's call it "inneficient use of magic" | ||
:) | |||
Because when you need magic, you REALLY need it | 06:11 | ||
jisom | Alias_: perl6 will be compiled by pure perl.... | ||
Alias_ | I whiteboarded out a solution at home last night, but waiting for Audrey to resolve some uncertainties | ||
putter | :) So two issues. Whether .pmc is a good thing for perl, and whether pugs should be using it. | ||
Alias_ | Well, .pmc is redundant DNA | 06:12 | |
That happened to be very convenient for pugs | |||
ingy | and Perl | ||
Alias_ | Well, Perl doesn't use cached-compiled bytebode like it was intended for | ||
(right?) | |||
But what I'm not sure is resolved it whether or not .pmc comes with enough baggage it's worth re-implementing | 06:13 | ||
is | |||
ingy | showerfood& | ||
Alias_ | putter: So really, I can see an alternative to .pmc that is more manipulatable, using a sort of inside-out source filter | 06:14 | |
putter | Or perhaps three issues - Will .pmc prove problematic? Will the shape of those problems negatively impact perl? And should pugs be using it? | ||
Alias_ | It won't impact perl, because it's dead DNA anyway | 06:15 | |
puetzk | Alias_: pmc pretty much already is a sourcefilter mechanism | ||
putter | From a pugs standpoint, the last is the most significant. From a "we also spin off cpan modules which may or may not be useful for pugs" standpoint, the first two. | ||
Alias_ | puetzk: indeed. The problem is that it's below the language interface, which means back-compatibility issues | ||
and platform issues, and so on | 06:16 | ||
putter | re "It won't impact perl", err, I thought that's where we started? with a break camel's back impression? | ||
Alias_ | putter: It wouldn't impact perl. But it might impact this 6 to 5 system | ||
putter | "6 to 5 system"? | 06:17 | |
oh | |||
Alias_ | right, Perl 6 running under Perl 5 | ||
Perl625 :) | |||
putter | :) | ||
jisom | perl6-1? | 06:18 | |
Alias_ | Anyways, having a source filter which is cached is interesting none-the-less | ||
puetzk | the original intent was that the source filter in question was something like B::Bytecode, but *all* the baggage .pmc has is that perl will try to open a .pmc first, and read it as usual, before looking for .pm | ||
grep for PERL_DISABLE_PMC (the flag Mandriva was setting) and you'll find a very disappointing amount of code that cares :-) | |||
Alias_ | puetzk: plus the timestamp issues | ||
putter | ok. to recap, your concerns with .pmc are purely about whether pugs should use it. rather than any "ignore pugs, from a p5/cpan standpoint" concerns. | ||
Alias_ | right | 06:19 | |
puetzk | right, only uses it if it's up-to-date | ||
Alias_ | puetzk: worse | ||
up-to-date isn't good enough, it has to be ahead | |||
So it you write the pm and pmc in the same second, that isn't good enough | |||
puetzk | oops, indeed. Shows that I shouldn't read perlguts past midnight :-P | 06:20 | |
Alias_ | Or so the talk was yesterday | ||
puetzk | pmstat.st_mtime < pmcstat.st_mtime | ||
so indeed, equality is "skip the pmc" | |||
Alias_ | bad bad bad | ||
puetzk | depends - if it's purely a cache, that's the conservative position | ||
Alias_ | So ref flags on back-compatibility and edge-cases | ||
red | 06:21 | ||
Yes, it's possibly too conservative though | |||
ingy | Alias_: stop the FUD | ||
Alias_ | ingy: Am I wrong? | ||
I'll accept the F, but we are clearing up the U and D | 06:22 | ||
ingy | 22:20 < Alias_> So ref flags on back-compatibility and edge-cases | ||
Alias_ | red | ||
ingy | is not constructive though | 06:23 | |
solving problems is | |||
putter | end of day, and past, for me. back in n hours. good night & | ||
Alias_ | ingy: If it can be made clear that it will have back-compatibility problems (related to P5P changing .pmc time behaviour a few hours ago) and edge-cases (Mandriva) then it is constructive | 06:24 | |
And helps towards solving the problem of making a cache that works properly everywhere | |||
Speaking of which though, what version of Perl is the generated Perl 5 targetted at | 06:25 | ||
ingy | 4 | 06:26 | |
Alias_ | 5.004? | ||
neat | |||
ingy | 4.000 | ||
Alias_ | wow | ||
How far back to pmc and source filters reach? | 06:27 | ||
s/to/do/ | |||
ingy | the generated Perl is up to the filter | ||
Alias_ | um... but that's what I meant | ||
puetzk | in all the backward-compat edge cases, it does something correct, but perhaps not totally helpful. If you do timestamps right (which is not exactly a new concern, owing the cvs, svn, make, etc all care) you end up with something you can tar up which works on almost every p5 env out there. If not, then it fails in a sane manner (loads the pm, which *still* works if the 6to5 stuff is installed) or fails with an appropriate error message (can't | ||
find module v6-pugs). I'm not seeing much uncertainty. | |||
Alias_ | Well, in the installed case, most Perl libs are readonly in any case | 06:28 | |
( I think... ) | |||
back-compat issues are introduced if we change the .pmc behaviour at a Perl (i.e. C) level | 06:30 | ||
which just happened today | |||
puetzk | in such a way as to make one edge case start working | 06:31 | |
Alias_ | The timestamp stuff is fairly well known | ||
Well, in a way as to create more edges | |||
ingy | Alias_: what was the change made today? | ||
Alias_ | ingy: They removed the pmc-mtime > pm-mtime rule | ||
So now the .pmc gets loaded even if .pm is equal or newer | |||
ingy | well that's wtill subject to release | 06:32 | |
Alias_ | true | ||
ingy | still | ||
I'm not sure that's a good change | |||
Alias_ | I can't see that it does anything useful other than create another edge, plus yeah, debatable logic | ||
When did .pmc support appear I wonder | 06:33 | ||
ingy | 1999 | ||
Alias_ | which is what, 5.6ish? | ||
ingy | 5.005004 I think | ||
Alias_ | wonder if it has changed since then... | 06:34 | |
ingy | which is 5.6ish ;) | ||
Alias_ | (in terms of behaviour) | ||
ingy | reallyshowercafe& | 06:37 | |
Alias_ | :) | ||
puetzk is away: zzz... | 06:44 | ||
06:45
nothingmuch joined
06:57
lampus_ joined
07:02
GeJ joined
07:13
Lorn__ joined
07:25
fandango joined,
iblechbot joined
07:44
kanru joined
|
|||
svnbot6 | r9478 | Darren_Duncan++ | r3025@darren-duncans-power-mac-g4: darrenduncan | 2006-03-12 23:43:30 -0800 | 07:46 | |
r9478 | Darren_Duncan++ | ext/Rosetta/ : mainly started rewriting Language.pod again, much better this time | |||
07:53
Aankhen`` joined,
KingDiamond joined
08:00
foosroo joined
08:06
marmic joined
08:08
nothingmuch joined
|
|||
KingDiamond | nothingmuch: at work now, so IRC :) | 08:16 | |
nothingmuch: any idea how to go about using that P5 module in a P6 prog? | |||
nothingmuch | KingDiamond: i've just started compiling with PUGS_EMBED="perl5" | 08:21 | |
i haven't done that in a while ;-) | |||
since you can now talk more freely - will a shell account with ssh open on port 443 help you? | |||
08:22
borisz joined
|
|||
nothingmuch | KingDiamond: ? | 08:23 | |
08:24
borisz left
08:25
ghenry joined
|
|||
nothingmuch | hola ghenry | 08:26 | |
ghenry | morning nothingmuch. Do you ever sleep? | 08:27 | |
Alias_ | of course he does, he arrived 15 minutes before you did | 08:29 | |
ghenry | Hi Alias_ | ||
Alias_ | hiya | ||
ghenry | How's things? | 08:30 | |
Sorry about my Config::Tiny bug ;-) | |||
Bit of a misunderstanding . | |||
nothingmuch | ghenry: yes | 08:31 | |
=) | |||
Alias_ | Up and down. On a nice short term contract at the moment, PITA is coming along pretty well. On the downside I first stepped on my laptop (giant radial crack in screen with failing pixels) and had the hard drive on it fail utterly (losing 3 months worth of digital photos, due for backup in another 4 hours) | ||
nothingmuch | actually i woke up ~ 2 hours ago | ||
only arrived at work 15 minutes ago | |||
30 minutes ago, actually | |||
ghenry | ah/. | ||
nothingmuch | (it's a holiday, so the morning is a bit messed up) | ||
ghenry | My work is my home today. | ||
Alias_ | no worries about that bug, I don't deal with them too promptly anyway any more | ||
ghenry | Alias_: Bummer. | 08:32 | |
Alias_ | It's too hard trying to keep track of all of them due to the randomness, so I put aside a day every now and then to work though them | ||
ghenry | Alias_: Is that good or bad? | ||
Ah, gotya. | |||
Alias_ | Well, I have like 110 packages, so I obviously can't keep them all in my head any more | ||
ghenry | Of course ;-) | ||
Alias_ | So dealing with bugs as they come in is troublesome | ||
I keep an eye out for anything time-critical, but that's about it | 08:33 | ||
ghenry | I've almost finished Samba::LDAP by the way. THanks for approving the name. | ||
Alias_ | I did? :) | ||
ghenry | Up. | ||
Alias_ | I've been off the module list for the last 3 weeks, ran out of time | ||
ghenry | Adamk | ||
Alias_ | ah | ||
:) | |||
ghenry | It was ages ago mind. | ||
Alias_ | Hard to keep track of those too | ||
ghenry | What with normal work, coding sometimes slips | ||
Alias_ | I'm finding myself offloading more and more memory into the network | ||
ghenry | We've just one 4-5 more contracts. | 08:34 | |
Alias_ | Only way to keep track of that many orders of magnitude | ||
ghenry | One huge one too. | ||
Alias_ | oh? | ||
Where at? | |||
ghenry | my company | ||
Suretec Systems Ltd. | |||
Alias_ | You own it? | ||
KingDiamond | nothingmuch: it's KingDiamond, the Ruby guy :) | ||
ghenry | Alias_: Yeah, much like you and yours | ||
Alias_ | ok | ||
ghenry | Looks like BT are finally investing | 08:35 | |
Alias_ | Although I'm trying to make the transition from one to two people | ||
Probably well behind you | |||
ghenry | We own part of www.deex.com | ||
Maybe, I couldn't say ;-) | |||
08:35
drrho joined
|
|||
Alias_ | Is yours a one-man band? | 08:35 | |
If not then yes, I'm behind you :) | |||
ghenry | Well, we design Deex and turned an OSS Doc Manager app into Internet, from intranet | ||
4 | |||
Alias_ | right | ||
nothingmuch | KingDiamond: yes, i know =) | 08:36 | |
KingDiamond | nothingmuch: shell account not required as yet, but anyway, does anybody know how to use P5 modules in P6? | ||
ghenry | with hopefully another 5 if the 2 big ones are one ;-) | ||
Alias_ | I hope to move to 2 in another month or so. The worlks there now, but cash-on-hand is tricky | ||
nothingmuch | KingDiamond: i'm recompiling pugs right now to try and reproduce your problem | ||
KingDiamond | nothingmuch: I saw a "?" and didn't see the other messages. my bad. :) | ||
Alias_ | works | ||
nothingmuch | oh =) | ||
KingDiamond | nothingmuch: coolness. thanks. | ||
ghenry | can I msg you about something, as it's gettig a big OT | ||
Alias_ | sure | ||
ghenry | Well nothingmuch. If the company we are doing work for get the investment from BT for www.deex.com, all the front end stuff will be in Catalyst | 08:38 | |
Billing/reporting/etc. | |||
nothingmuch | ? | ||
Alias_ | nice | ||
ghenry | Be a big win for Catalyst. | ||
Alias_ | (Making money with Catalyst)++ | 08:39 | |
nothingmuch | (Making money)++ | ||
ghenry | It's to be deployed in the North Sea Oil sector | ||
rgs does catalyst for $$$ | |||
nothingmuch | rgs: at mandriva? | ||
ghenry | sitting on the SOIL secure OIL network, and OpNET | ||
08:39
jisom joined
|
|||
ghenry | Dual setup in UK and Norway. | 08:39 | |
Will be ace fun!! | |||
Fingers cross the invest though | 08:40 | ||
rgs | nothingmuch: yesq | ||
s/q// | |||
nothingmuch | rgs: anything public you could link from the wiki? | ||
Alias_ | It really finally seems that Cat is starting to build up a head of steam now | ||
ghenry | Alias_: Agreed. | ||
rgs | nothingmuch: one of the projects is hcl.mandriva.com/ | ||
Alias_ is wanting to move over to it, but still not quite modular enough inside | |||
More's the pity | |||
nothingmuch | Alias_: all thanks to me ;-)... for some reason it's correlated with the time i sstarted getting involved in Catalyst | ||
Alias_ | heh | 08:41 | |
ghenry | nothingmuch, Alias_ hoefully the more contracts we pick up with it, we can get docs paid for as part of them, and stipulate they be GPL'd/OSS released ;-) | ||
Alias_ | Well, purists are always a positive contribution to large infrastructure stuff :) | ||
nothingmuch | actually large infrastructure stuff was dealt with by another purist | ||
mst redid the dispatcher right before i arrived ;-) | |||
Alias_ | mst++ # Thinks like me :) | 08:42 | |
nothingmuch | but this was not very visible either | ||
ghenry | Well, must crack on with some Invoicing. Later dudes. Nice chatting to you again Alias_ | ||
nothingmuch | mst++ indeed | ||
aren't we in the wrong channel? | |||
ciao, ghenry | |||
ghenry | Yeah | ||
rgs | nothingmuch: hcl is already on the wiki | ||
nothingmuch | rgs: goody =) | ||
KingDiamond | nothingmuch: since using "use perl5:Foo::Bar" doesn't spit out errors, that means pugs has been compiled fine with PUGS_EMBED=perl5; right? | 08:44 | |
nothingmuch | probably | ||
try using DBI | |||
that's known to work | |||
DBI.connect("dbi:SQLite:dbname=foo.db"); | 08:45 | ||
KingDiamond | nothingmuch: lemme try | ||
Alias_ | SQLite++ | ||
(while I'm there) | |||
nothingmuch | SQLite has been one of the biggest webapp productivity boosts of the last 5 years or so | 08:46 | |
Alias_ | I only wish I could leverage it more | ||
Stupid sequences | |||
nothingmuch | hide the sequences? | 08:47 | |
Alias_ | You can't implement sequences in SQLite without using a seperate file | ||
nothingmuch | err... | ||
Alias_ | It's a transaction logic thing | ||
nothingmuch | create table seq; ... ? | ||
oh, trasactions aren't mutually exclusive? | |||
Alias_ | sequences must alter state immediately and regardless of transactions | 08:48 | |
And any transaction locks the file | |||
So if you try to pull a sequence value inside a transaction, you hit a deadlock | |||
nothingmuch | err, not begin transaction is an exclusive read/write lock on the whole database file | ||
that does not compute | |||
why do you need to take a second lock? | 08:49 | ||
(from the same process?) | |||
Alias_ | To change the sequence | ||
Because sequences can never roll back | |||
That is bad bad abd | |||
nothingmuch | why not? if the whole tranaction rolled back? | ||
because seq numbers will leak into app-space? | |||
Alias_ | Because the ONLY purpose of a sequence is to issue unique numbers | 08:50 | |
And NEVER EVER issue the same number twice | |||
nothingmuch | well, that just depends on your definition of NEVER NEVER ;-) | ||
but i see what you mean | |||
Alias_ | The fact the numbers are incrementing is in fact incidental | ||
Audreyt claims that you can fake two SQLite files into looking like one | |||
audreyt | using "attach database" | 08:51 | |
nothingmuch | from my purist POV a transaction being rolled back means returning the whole DB to exactly the same state as it was before | ||
including sequences | |||
Alias_ | speak of the devil :) | ||
nothingmuch | anyway, can't you just patch SQLite itself? | ||
Alias_ | Ah, that would be interesting | ||
nothingmuch | audreyt: help KingDiamond... my pugs compilation is too slow | ||
Alias_ | You'd need to add support for making a SQLite file be partitioned somehow | ||
And only lock part of the file | 08:52 | ||
nothingmuch | since it prolly already does block allocation within the file that should be trivial, i guess | ||
there's sycall level support for that | |||
Alias_ | But because the entire permissions model of SQLite is based on file permissions, that could suck | ||
nothingmuch | fcntl based locking | ||
KingDiamond | nothingmuch: DBI works fine~! | ||
nothingmuch | aha! | ||
Alias_ | audreyt: Have you confirmed it works in DBD::SQLite? | 08:53 | |
nothingmuch | in that case: audreyt: it seems that fully qualified "function" (non class method) calls into embedded perl 5 space from pugs are bĆørked | ||
audreyt | nothingmuch: you'll have to import them by hand I think | 08:54 | |
rgs | hi audreyt | ||
audreyt | Alias_: yes | ||
nothingmuch | audreyt: look on p6c | ||
audreyt | rgs: hey | ||
nothingmuch | KingDiamond was calling XML::Parser::Lite::Tree::instance(), and that didn't work | ||
Alias_ | audreyt: Goodo. I might take a look at doing a DBIx::SQLiteSequence module some time soon then | ||
rgs | audreyt: have you seen Hugo's question on .pmc usage on P5P ? you might be in better position than me to answer it. | 08:55 | |
audreyt | use perl5:XML::Parser::Lite::Tree; XML::Parser::Lite::Tree.can('instance') | ||
to get the &instance | |||
KingDiamond | nothingmuch: okay, the module *does* in fact work in P5 :-p, so something's broken in p6 as far as that goes | ||
Alias_ | audreyt: I'm messaging P5P asking them to rollback the .pmc change for now | ||
audreyt | because whole-namespace aliasing is disabled | ||
nothingmuch | KingDiamond: therre you go ;-) | ||
audreyt | because we run into circular ref issues | ||
Alias_ | audreyt: If we are going to make .pmcs work, I want to make sure we can flatten out the feature surface of .pmc support | 08:56 | |
audreyt | now that lexical import is here, maybe we can re-enable it | ||
nothingmuch | also, my $i = eval("XML::Parser::Lite::Tree::instance()", :lang<perl5>); should work too, right? | ||
Alias_ | audreyt: So this change to blead isn't much use, and we can just try without it | ||
rgs still doesn't like mtimes :) | 08:57 | ||
audreyt | Alias_: so, I see 3 options | ||
Alias_ | ah, it's rgs' commit | ||
audreyt | 1. file-mtime vs file-mtime check, which is fragile and really nobody does that | ||
KingDiamond | audreyt: I'm not sure if I'm doing it the right way; so after importting by hand (using can), then I use it the normal way? | 08:58 | |
Alias_ | rgs: Can you rollback the .pmc commit #27483? | ||
audreyt | 2. like 1., but permit same-mtime-second loading using <= instead of <, just to fix the ExtUtils::Install gotcha | ||
rgs | I'll listen to audreyt 1st | ||
audreyt | KingDiamond: yeah... my &x := Foo::Bar.can('baz'); | ||
Alias_ | sure | ||
audreyt | that has the advantage of honouring the original intent, with the disadvantage of subtly modification to an already-bogus semantics | ||
nothingmuch | can't you just import without the .can trick? | 08:59 | |
i mean, some modules have broken implementations of 'can', that return a bool instead of a code ref | |||
audreyt | nothingmuch: now you can, using the new import thing gaal hacked together. it's in Parser.hs, ruleUserPerl5Package | ||
nothingmuch | use perl5:XML::Foo::Tree <moose>; ? | ||
Alias_ | audreyt: plus it adds the problem of an edge at bleadperl since it needs to be implemented in C, and nothing older will handle it | ||
audreyt | nothingmuch: yeah. it wasn't possible | ||
Alias_ | But continue with 3. | ||
nothingmuch | hacked together is an oxymoron =) | ||
anyway, realwork time | 09:00 | ||
audreyt | 3. disable mtime check at all in bleadperl, but _don't_ merge it to maintperl, and call it a 5.10 incompatibility. | ||
this means reliable validness checking in v6.pm's .pmc target -- since v6.pm is likely to take advantage of feature.pm anyway, this is perhaps sane | |||
Alias_ | as in MD5 of similar? | 09:01 | |
or | |||
audreyt | well, in-file mtime/size/inode is cheap and somewhat reliable | ||
i.e. record these 3 into the .pmc itself | |||
_not_ on outside mtime | |||
Alias_ blinks | |||
hmm | 09:02 | ||
rgs | so you'd have : perl 6 .pm file compiled to .pmc, that contains compilation time meta data ? | ||
audreyt | rgs: yes. ingy already has mechanism to do that in M::C | ||
nothingmuch sighs | |||
rgs | audreyt: I'm going to mail this to P5P | ||
nothingmuch | extended attrs would really help this stuff | ||
audreyt | and we can add digest info as well as fallback | ||
nothingmuch | if only they were universally supported | ||
Alias_ | audreyt: Are there any potential feature collisions with PAR etc doing that? | ||
rgs | portability, portability, horatio ! | 09:03 | |
nothingmuch | even cooler: embed a "large" xattr (read: alternative "stream") in the .pm itself | ||
rgs | audreyt: although plan 2 above is applicable to maint | ||
I think | |||
audreyt | rgs: that is Nicholas and your call ultimately :) but I agre | 09:04 | |
Alias_: ScanDeps needs to recognize .pmc files just like .al files | |||
Alias_: but that's all it takes | |||
KingDiamond | audreyt: this seems to work fine. thanks!~ | ||
audreyt | KingDiamond: woot! | ||
KingDiamond | audreyt: is that the current recommended way, though? | ||
Alias_ | The mtime of the temp files that PAR extracts matches the original value when loaded in? | ||
audreyt | KingDiamond: maybe write an import test in t/perl5/ | ||
KingDiamond | audreyt: okay :-) | ||
audreyt | KingDiamond: it's because the import mechanism was broken, so we disabled it for p5; now it's fixed, so we can implement imports again | ||
Alias_: yes, extractToFileNamed perserves mtime | 09:05 | ||
Archive::Zip->extractToFileNamed | |||
Alias_ | ok | ||
KingDiamond | audreyt: by the way, by "this" I mean using "can"; that's what you assumed, I assume? | ||
audreyt | in fact, ExtUtils::Install preserves it as well | ||
Alias_ | yep | ||
audreyt | KingDiamond: yup | ||
but same-second fails | |||
nothingmuch | KingDiamond: using .can is not a real import though | 09:06 | |
KingDiamond | audreyt: cool. will try more stuff. thanks. | ||
Alias_ | audreyt: OK, so some questions? | ||
audreyt | I think it was what triggered the error yesterday on win32 | ||
Alias_: sure | |||
KingDiamond | nothingmuch: yeah, I get it; it returns a code ref, right? | ||
Alias_ | audreyt: Firstly, a small thing. The current proposal seems to have a use at the top of the file, rather than package or class. Is that legal? | ||
(I note I can't do any better there) | |||
nothingmuch | KingDiamond: sending you a comit bit in caase you want to reenable exports | ||
yes | |||
and then it binds it to a lexical function | |||
KingDiamond | yeah | ||
nothingmuch | which is really the same as doing an import, except it's at runtime | ||
KingDiamond | nothingmuch: reenable exports? | 09:07 | |
nothingmuch | KingDiamond: as in hack a little haskell ;-) | ||
audreyt | Alias_: "use v6-pugs;" is valid because it's a version assertion in perl6 | ||
nothingmuch | pugs has the code to handle module importing | ||
KingDiamond | nothingmuch: ah :-) | ||
nothingmuch | and it's been fixed | ||
audreyt | Alias_: so it doesn't count toward the package count | ||
I mean, compilation-unit count | |||
Alias_ | audreyt: And valid as the first thing in the file? | ||
nothingmuch | it was broken before because imports weren't lexical | ||
audreyt | Alias_: yes. | 09:08 | |
Alias_ | ok | ||
audreyt | it means | ||
Alias_ | that's fine | ||
audreyt | use Perl-6-pugs; | ||
nothingmuch | so now we can reenable it, since it's going to work | ||
Alias_ | Question 2. Does Perl 6 have __DATA__ and does it need to keep working through the transformation to Perl 5 | ||
audreyt | Perl6 uses | ||
=begin DATA | |||
it can only work with perl5 if perl5 is to have a document DOM | |||
Alias_ | Is it otherwise analagous to __DATA__ though? | 09:09 | |
flockable etc | |||
jisom | audreyt: can you create custom ones? | ||
nothingmuch | flockable is just flocking the .pm | ||
audreyt | Alias_: I don't think so; it's now stream inside %=DATA | ||
jisom: sure, nothing special about the DATA name anymore | |||
rgs | perl 5 can't even seek properly on __DATA__ (over forks notably)ōæ½xE0 | ||
nothingmuch | the DATA handle is just the same file descriptor that perl(1) used to open the .pm file | ||
KingDiamond: invitation sent | 09:10 | ||
audreyt | there's a proposal to enable this feature in Perl 5 also, it's called Perldoc.pm, and maybe we'll hack at it on YAPC::NA | ||
nothingmuch | please make sure it doesn't get spam-filtered, the mail is from .tw and this has been known to happen | ||
Alias_ | audreyt: I note that PPI can treat __DATA__ as a seekable read-write filehandle already :) | ||
audreyt | Alias_: I note that PPI is an amazing piece of work :) | ||
Alias_ | juuuust checking | ||
KingDiamond | nothingmuch: got; thanks. :) | 09:11 | |
nothingmuch | KingDiamond: great | ||
Alias_ | ok, so basically the answer to 2 is "we don't need to preserve __DATA__" | ||
nothingmuch | if you need help i'll be glad to dive in to a bit of pugs guts | ||
Alias_ | "or the question does not apply" | ||
audreyt | the latter. yes. | ||
nothingmuch | i haven't done that in a while | ||
Alias_ | audreyt: Finally, what is your desired (Perl Version, Platforms) surface area | ||
KingDiamond | nothingmuch: I probably would need help in that direction; will let ya know | 09:12 | |
nothingmuch | KingDiamond: great | ||
audreyt | Alias_: for v6? | ||
Alias_ | For this 6-to-5 thing in general | ||
audreyt | Alias_: as a experimental feature, (5.6+, Win32/*nix) | ||
as a production-worthy feature, (5.10+, *) | 09:13 | ||
Alias_ | Why the difference? | ||
audreyt | mtime unreliability for one | ||
also, currently the compiler is not yet fully pure-perl | 09:14 | ||
and GHC only supports Win32/*nix anyway (not VMS) | |||
Alias_ | hmm... | ||
audreyt | also, I'd like to take advantage of 5.10-specific opcodes | ||
as well as feature.pm | |||
Alias_ | erm, opcodes? | ||
nothingmuch | ~~ | ||
Alias_ | oh | ||
nothingmuch | switch | ||
audreyt | // | ||
etc | |||
Alias_ | ok | ||
nothingmuch | err, i mean given ;-) | ||
Alias_ | Had visions of Inline::C | ||
09:15
rantanplan_ joined
|
|||
Alias_ | Can you make the codegen tunable? | 09:15 | |
nothingmuch | hard =( | ||
audreyt | sure, v6.pm just a wrapper | ||
Alias_ | That is, to handle either/or 5.6/5.10 | ||
KingDiamond | I guess I'll go have some lunch, and later do some more testing | ||
nothingmuch | as a maintenance problem | 09:16 | |
audreyt | Alias_: sure, using an emu runtime | ||
Alias_ | ok | ||
Alias_ ponders | |||
audreyt | but not sure it'd be worth it in the end | ||
nothingmuch | easy to lose track of which backends support what for what version and to what extent | ||
audreyt | people "trying out v6" can be on 5.8 | ||
09:16
rindolf joined
|
|||
nothingmuch | hola rindolf | 09:16 | |
rindolf | nothingmuch: hi! | ||
audreyt | and that's fine, because they are developers and we'll mark clearly that this is not for production | ||
Alias_ | audreyt: right. On that topic, userbases | ||
audreyt | just a "developer preview" to us MS-speak | 09:17 | |
Alias_ | well, I don't see a big reason it can't be production capable | ||
back to ... 5.5 or 5.6 | |||
audreyt | 5.5 has no .pmc support | ||
Alias_ | true | ||
audreyt | 5.6 has a set of unicode semantics we have to emulate hard | ||
(see Encode::compat) | |||
Alias_ | ah, unicode | ||
right right, ok, so 5.6 then | 09:18 | ||
audreyt | 5.8, maybe. we'll see. | ||
Alias_ | Anyways, so the biggest problem is relating to .pmc functionality | ||
Or rather, that to not suck, you won't be able to touch the implementation below the language level | |||
Because it's just going to create a feature edge, and cut out almost everyone | 09:19 | ||
Ideally, I'd love to see compiled modules all the way back to 5.6 | |||
Immediately | |||
pasteling | "rindolf" at 88.153.140.201 pasted "Bug in Pugs Demonstration." (19 lines, 227B) at sial.org/pbot/16286 | ||
Alias_ | Without a Perl maint or blead release | ||
audreyt | Alias_: oh, then you are talking about M::C | ||
in there I agree | |||
I was talking about v6 | |||
Alias_ | Well, all part of the same thing | ||
audreyt | different technologies! | ||
Alias_ blinks | |||
rindolf | audreyt, nothingmuch : can you look at sial.org/pbot/16286 ? | ||
Alias_ | not really | ||
audreyt | M::C is agnostic about its runtime environment | ||
heck, it even runs on 5.000 | 09:20 | ||
Alias_ | No more than the difference between a File::Simple and File::Simple::Memoize | ||
audreyt | er, sorry, 5.002. | ||
(the first version to have srcfilters) | |||
Alias_ | right | ||
audreyt | I'm fine for M::C being a rationalized F::S on 5.002~5.005 | ||
and a really cached dpeoyable thin on 5.006~5.008 | 09:21 | ||
but that's not v6's audience | |||
Alias_ | In any case, it occurs to me that if instead of going deeper and dealing with the .pmc implementation, one could just use normal filtering | ||
rindolf | audreyt: what's M::C in your context? | ||
audreyt | rindolf: Module::Compile. F::S is Filter::Simple | ||
nothingmuch | rindolf: err, ? | ||
Alias_ | With some .pmc or .p65 or what have you as a cache | ||
nothingmuch | rindolf: wrt the nopaste | ||
are you expecting a dump of the code? | |||
we can't deparse to perl yet | |||
rindolf | nothingmuch: no. | ||
audreyt | Alias_: but then you'll need people to install M::C. | ||
nothingmuch | only to pugs' parse tree | ||
rindolf | nothingmuch: I get [undef,] instead of [] | 09:22 | |
Alias_ | audreyt: No we won't | ||
audreyt: We are shipping the cache | |||
audreyt | Alias_: .p65 doesn't work - only .pmc caches | ||
right. that's for 5.6~5.8 | |||
rindolf | nothingmuch: run it. | ||
audreyt | for 5.2~5.5, the cache is functional only if the user has M::C | ||
nothingmuch | rindolf: i did | ||
oh, that quirk | |||
Alias_ | audreyt: Assuming you use the language built-in cache | ||
nothingmuch | i think it's undef | 09:23 | |
in list context | |||
Alias_ | audreyt: For less than 50 lines of code I suspect we could implement our own anyway | ||
rindolf | nothingmuch: what is? | ||
audreyt | rgs: does my argument sound sane? the .pmc v6.pm generates will have a BEGIN{...} block that self validates, for sure | ||
09:23
hmisty joined
|
|||
Alias_ | audreyt: And extend it out to cover back as far as we like | 09:23 | |
audreyt | Alias_: sure, but you need to put the same 50line of code on the .pm itself | ||
Alias_: I've thought about this. it's possible. | |||
nothingmuch | oh wait | ||
sorry | |||
Alias_ | erm | ||
nothingmuch | you're not deparsing | ||
i thought you were doing &func.perl | |||
one sec | |||
Alias_ | audreyt: We have a v6.pm right? | 09:24 | |
audreyt: That they need to install on P5 anyway? | |||
rindolf | nothingmuch: thing is if I say "say ", $d.func() before the return $d; I also get [undef,]. | ||
audreyt | Alias_: nono, the idea is they don't | ||
nothingmuch | rindolf: one sec, i'll reread the code | ||
i got it all wrong | |||
audreyt | Alias_: for 5.2~5.5, yes they do | ||
Alias_: for 5.6+, I don't want they to | |||
rindolf | nothingmuch: OK. | ||
audreyt | Alias_: and because v6.pm doesn't target 5.2~5.5, it's moot anyway | ||
Alias_ | I'm cool with a 5.6 minimum | 09:25 | |
But there's no reason v6.pm can't implement the non-.pmc caching | |||
foosroo | we depend on 5.6.1 anyway for pugs | ||
fwiw | |||
Alias_ | It means we don't have to create an edge by changing C code | ||
audreyt | foosroo: yup. | ||
nothingmuch | audreyt: we have a thunk bug | ||
&& does not short circuit | |||
rindolf: good catch | |||
Alias_ | It gives us complete control over the implementation | ||
And we just rig up a Module::Install::Admin::Compiled that auto-adds the extra requires commands :) | 09:26 | ||
(and version dependency) | |||
rgs | audreyt: yes, I like that -- seen my P5P mail ? | ||
nothingmuch | src/Pugs/Prim.hs:op2 "&&" = op2Logical (fmap not . fromVal) | ||
is it strictified in some way? | |||
Alias_ | Of course, that would limit Perl 6 module to using MI | ||
audreyt | Alias_: I think we are in agreement. | ||
nothingmuch | Alias_: no, just the bundle that is being shipped to perl 5 land ;-) | ||
audreyt | for the 5.6~5.8 range, I agree 100% with what you said. | ||
foosroo | nothingmuch: what does op2Logical say? | ||
audreyt | Alias_: I just want 5.10 to have cleaner support for the semantic. | ||
rgs too | 09:27 | ||
audreyt | Alias_: I'm fine for 5.10 to have "edge" | ||
because it already does. a lot. | |||
Alias_ | That's fine, then add if ( > 5.10 ) into v6.pm | ||
I still suspect that you'll need to force the installation of v6.pm though | |||
nothingmuch | foosroo: it's monadicly short circuiting, naturally | ||
audreyt | Alias_: maybe. it can be clearly fixed by making v6.pm (the minimal compat logic) core. | ||
nothingmuch | but something is wrong ;-) | ||
audreyt | Alias_: as in core 5.10. | ||
rindolf | Hi rgs! | ||
rgs | hi rindolf | ||
nothingmuch | ok <- f x | ||
Alias_ | The other advantage of using our own cache logic, is that you can make it auto-recompile magically, just by installing pugs | ||
nothingmuch | if ok then return x else do | ||
audreyt | Alias_: but that's still some time in the future, we can think over that. before that, your 5.6~5.8's plan for M::C is sane. | ||
foosroo | that doesn't sound strict to me | 09:28 | |
audreyt | Alias_: yes. | ||
nothingmuch | foosroo: ofcourse not, but it's still evaluating the right side | ||
see rindolf's test | |||
add say $d.perl along the flow | |||
remove the $d[0] == [1] on the right side of the false && | |||
foosroo | nothingmuch: ACK, I'm merely saying I don't see where tyhe problem is: ) | ||
nothingmuch | oh | ||
Alias_ | Hence, while 90% of it I'm cool with, I suspect we need to ditch the use of the C-level .pmc logic | ||
nothingmuch | right, that's what i also said =) | ||
Alias_ | And provide out own | ||
foosroo | nothingmuch: I agree with you! | 09:29 | |
Alias_ | Start with the dumbed down uniform implementation and release it not, then deal with layering 5.10 on afterwards | ||
foosroo | that is what you said! | ||
Alias_ | s/not/now | ||
nothingmuch | foosroo: yes, and i agree with you! | ||
audreyt | Alias_: I'll call it the Filter::Simple::Cached vision | ||
Alias_ | right | ||
Force the installation via MI | |||
foosroo | (sorry, /me is taking a break from sad UUID-related fscking $work) | ||
Alias_ | auto-dependency | 09:30 | |
nothingmuch | oh no | ||
false alarm | |||
say( ($d.elems() > 0 ) ?? "no elems" !! "yes elems"); | |||
audreyt | Alias_: ok. can you write this down in M::I's README or somewhere? | ||
nothingmuch | yes elems | ||
audreyt | Alias_: or TODO, or something | ||
Alias_ | Will add to TODO | ||
The big question is though :) | |||
foosroo | urp? what's $d.elems().perl ? | ||
Alias_ | Will the P6 early adopters choke when we tell them we are forcing them to use Module::Install :) | ||
Alias_ imagines Ken/chromatic etc being a bit peeved :) | 09:31 | ||
Although maybe it will finally force them to deal with their extensibility and include-like issues | |||
nothingmuch | oh wait, i just got ?? !! wrong | ||
;-) | |||
audreyt | Alias_: we'll just get the technology out and see :) | ||
Alias_: and there's nothing M::B can't just copy over. | |||
Alias_ | true | ||
audreyt | I mean, EU::MM and M::B both took our sign() logic | ||
Alias_ | audreyt: Ah, you see, therein is the problem | ||
audreyt | and that's entirely fine | 09:32 | |
09:32
kane_ joined
|
|||
Alias_ | audreyt: MB has that back-compatibility issue remember? | 09:32 | |
audreyt: That MI avoids to great relief | |||
audreyt | it's not _our_ problem! | ||
Alias_ | :) | ||
audreyt | we recommend M::I; but if people want to inflict latest M::B on their users | ||
Alias_ | Well, since it impacts PITA, it's mine though :) | ||
audreyt | I say, totally go ahead. | ||
Alias_ | At a "try and nudge Ken in the appropriate direction" sense | ||
Oh, I'm not saying hold back | |||
Just noting we be careful when talking about the MI-only'ness of it | 09:33 | ||
azuroth | nothingmuch: ?? !! wrong? how do you do it right? | ||
audreyt | Alias_: agreed | ||
nothingmuch | yes, it *is* a short circuiting bug | ||
azuroth: i always get the two sides mixed up | |||
09:33
nnunley joined
|
|||
nothingmuch | i don't get along with boolean logic | 09:33 | |
one small error and everything changes ;-) | |||
if (($d.elems() > 0) && (say "moose") && ($d.[0] == 1)) | 09:34 | ||
prints moose | |||
if (($d.elems() > 0) ) | |||
Alias_ | audreyt: Oh, and I'm adding $VERSION (but not @ISA) back to inc::Module::Install | ||
audreyt: Just so you know | |||
nothingmuch | goes to the else | ||
audreyt | Alias_: that's fine with me | ||
just not @ISA :) | |||
azuroth | ahh | ||
audreyt | and don't make the $VERSION significant :) | ||
Alias_ | audreyt: It will still be overwritten, but it's becoming clear that we need to know at Module::Install BEGIN-time IF and WHICH version the author has installed | ||
nothingmuch | audreyt: any insight? | ||
audreyt | Alias_: right. | ||
Alias_ | merlyn had the interesting idea of preferencing the installed version over the bundled one if higher | 09:35 | |
audreyt | nothingmuch: sorry, I'm multiplexing -- create a minimal test? | ||
Alias_ | Of course that's not possible yet, but post-1.0 that has potential for improving the old-versions problem | ||
nothingmuch | audreyt: rindolf already did | ||
audreyt | Alias_: yes. after 1.0 where we commit to not breaking or removing api, sure. | ||
Alias_ | right | ||
audreyt | not under 0.x. | ||
Alias_ | agreed | 09:36 | |
nothingmuch | audreyt: remove the right side of the && to see "correct" behavior | ||
audreyt | nothingmuch: which file? | ||
nothingmuch | his nopaste | ||
on sial.org | |||
audreyt | please make it into t/pugsbugs/ ? | ||
nothingmuch | he pinged you about it ~6-7 mins ago | ||
rindolf: you have commit acccess ;-) | |||
use Test etc | |||
audreyt only sees bug reports in .t form. sorry | |||
nothingmuch | and try to be a bit clearer | ||
e.g. my $d = []; | |||
clkao | 'use/require' still broken for pil2js? | ||
audreyt: you sound suspiciously like a particular clkao years ago | 09:37 | ||
audreyt | clkao: I learned from #svk a lot | ||
nothingmuch | ok ( !( $d.elems() > 0 ) && ( $d.[0] == 1 ), "&& expression not true" ); | ||
oh , and before also make sure that | |||
audreyt | clkao: I've been on the business end of this treatment from you too many times | ||
nothingmuch | ok( !( $d.elems() > 0 ), "left hand of && not true"); | ||
clkao | Engage. | 09:38 | |
nothingmuch | and then check that is( +$d, 0, "right side of && not evaluated" ); | ||
rindolf: kies? | |||
Alias_ & # Distracted for a little bit, in an O3 planning meeting | |||
clkao | audreyt: btw, i have some perl6 classes for svk. when can they actually turn into production :) | ||
use v6;no v6; coming =along well? | 09:39 | ||
audreyt | clkao: it's "use v6-pugs" now; we are just resolving some socialpolitical problems | ||
Alias_ notes allowing no v6; could kind of suck | |||
nothingmuch | rindolf: if you don't ping i'll add the test | ||
Alias_ | Or will it? | ||
audreyt | Alias_: M::C already handles that | ||
Alias_ | ok | ||
audreyt | ingy is trying to make it lexical as well | ||
Alias_ | Although.... no v6; __DATA__ | ||
audreyt | DATA is handled as well | ||
rgs | for bleadperl 'no v6;' is a valid statement. | 09:40 | |
audreyt | (see M::C code) | ||
Alias_ | wow | ||
rgs | $ bleadperl -e 'no v5' | ||
Perls since v5.0.0 too modern--this is v5.9.4, stopped at -e line 1. | |||
clkao | audreyt: i thought you were bridging the s::f based ones? i want at least perl6::sub today | ||
audreyt | ?eval no v6 | ||
clkao | :p | ||
09:40
evalbot_9476 is now known as evalbot_9478
|
|||
evalbot_9478 | pugs: Perls since v6 too modern--this is v6.2.11, stopped at "<eval>" line 1 column 6 | 09:40 | |
rgs | heh | ||
audreyt | look, continuity | 09:41 | |
rgs | you know where to send blames ! | ||
audreyt | :D | ||
clkao: Perl6::Sub is too broken. I'm thking about Toolkit.pm | |||
rindolf | nothingmuch: hi | 09:42 | |
audreyt | clkao: do you have some favourite F::S things except for P6::Sub? | ||
nothingmuch | rindolf: added test | ||
thanks | |||
audreyt: t/pugsbugs/short_circuiting.t | |||
audreyt | rgs: just to clear things up, the .pmc is self-checking with BEGIN block, not even v6.pm | ||
rgs: (though v6.pm will do the check as well.) | |||
rgs | ok | 09:43 | |
clkao | audreyt: well, then i don't know. definitely not those helix-ish ones | ||
rgs looks at M::C | |||
svnbot6 | r9479 | nothingmuch++ | rindolf++'s test for short circuting ops not doing that ;-) | ||
foosroo | back. nothingmuch: I just realized that what people like you need is a field where no element is equal to iself, so that ~(a > b) === (a < b) | 09:44 | |
audreyt | rgs: it's "freshness_check" | ||
nothingmuch | foosroo: ? | ||
foosroo | also, to simplify ternaties, every element is also greater than every other element, so you don't need ternaries | ||
audreyt | rgs: it should return a suitable 'BEGIN' block based on $time; we are still working on the ideal logic for v6.pm | ||
foosroo | (a > b) # true for every a and b | ||
audreyt | nothingmuch: looking at the test now | ||
nothingmuch | foosroo: heh | ||
foosroo: svn.openfoundry.org/pugs/t/pugsbugs...rcuiting.t | |||
foosroo | also (a < b) always true | ||
rindolf | nothingmuch: so there is a test, but this test does not pass right now? | 09:45 | |
nothingmuch | foosroo: my idiocy aside, that test still fails ;-) | ||
audreyt | oh, foosroo is here. maybe he can field that? :) | ||
nothingmuch | rindolf: exactly | ||
jisom | if(a == b && a != b) say "major bug"; | ||
foosroo | ield what? sorry, my mind is much from mapi | ||
nothingmuch | jisom: we probably have tests like that ;-) | 09:46 | |
audreyt | nothingmuch: wait a minute | ||
nothingmuch: why is it a bug? you expect rvalue to vivify? | |||
09:46
kane__ joined
|
|||
nothingmuch | audreyt: we expect it to *NOT* autovivify | 09:47 | |
but iit *does* | |||
foosroo | uh, someinthg in svn.openfounrdey looks borked, my browser attempts d/ling what nothingmuch linked to | ||
nothingmuch | you can have a && fail("shouldn't happen")& | ||
but that won't work well with plan() | |||
foosroo: worksforme | |||
audreyt | ?eval $_[0] == 1; say +$_ | ||
foosroo: nothingmuch didn't add svn props | 09:48 | ||
nothingmuch | audreyt: yes, that autovivifies | ||
09:48
evalbot_9478 is now known as evalbot_9479
|
|||
evalbot_9479 | OUTPUT[0 ] bool::true | 09:48 | |
nothingmuch | yeah, sorry | ||
audreyt | nothingmuch: explain that "0" to me then | ||
nothingmuch | ?eval 0 && say "moose" | ||
that's what's wrong | |||
foosroo | nothingmuch: other files on that dir show up correctly. can you make sure you set the right props for it please? | ||
rgs | ingy: apparently there's a bogus ._Compile.pm file in M::C's tarball | ||
nothingmuch | oh, hmm | ||
evalbot_9479 | 0 | ||
audreyt | nothingmuch: I don't see a bug. | ||
nothingmuch | ?eval $_.[0] == 1; say +$_ | ||
foosroo | where's iblech++ when you need him? :) | ||
nothingmuch | audreyt: please run the test | ||
evalbot_9479 | OUTPUT[0 ] bool::true | 09:49 | |
nothingmuch | hmm | ||
audreyt | nothingmuch: I ran the test. you are expecting rvalue [0] to vivify, it doesn't. | ||
foosroo | come to moose of it, where's iblech++ in general? he's missed! | ||
nothingmuch | was this fixed recently? | ||
audreyt | nothingmuch: that's according to spec. | ||
nothingmuch | okay, screw that | ||
one second | |||
audreyt | nothingmuch: if you change the ==1 to =1 | ||
nothingmuch | let's make it assignment | ||
yes | |||
audreyt | then it works as expected | ||
nothingmuch | it demonstrate the bug we're testing for | ||
audreyt | so I don't see the bug. | ||
azuroth | is there some util to fix up \r\ns? | ||
nothingmuch | i have some 30 revisions to compile | ||
i'll try that | |||
wolverian | azuroth, vim. (:set fileencoding) | ||
Alias_ | azuroth: File::LocalizeNewlines | ||
foosroo | azuroth: perl -pi -e 's/\r//' | 09:50 | |
wolverian | er, :set filetype | ||
Alias_ | foosroo: oooo, dangerous | ||
nothingmuch | audreyt: eek | ||
foosroo | Alias_: yeah well | ||
audreyt | nothingmuch: I see your point finally | ||
azuroth | thanks :D | ||
nothingmuch | audreyt: even so, in my rev i can reproduce | ||
audreyt | nothingmuch: nvm, I got the bug. wish you'd explain that it's a == problem :) fixing | ||
nothingmuch | but i *can't* reproduce when = 1 | ||
sorry | |||
that's just what I was going to get to ;-) | |||
heh | 09:51 | ||
audreyt | rindolf: it's a genuine pugsbug. fixing :) | ||
nothingmuch | is == eager in some way? | ||
foosroo wanders off | |||
audrey, if there was something you needed me to do I'll backlog in a bit but I gotta get back to work for now | 09:52 | ||
nothingmuch | ditto | ||
plus i have a real incentive now | |||
any time spent purely working will be retributed later | |||
since I only have to stay till I finish, not till the end of the month | |||
09:53
beppu_ joined
|
|||
rindolf | audreyt: thanks. | 09:54 | |
audreyt | here's the minimal test case | 09:55 | |
?eval {$^x}.(0 && ( $_[0] == 1 )); +$_; | |||
evalbot_9479 | 0.0 | 09:56 | |
audreyt | ?eval my $d; {$^x}.(0 && ( $d[0] == 1 )); say +$d; | ||
evalbot_9479 | OUTPUT[1 ] bool::true | ||
hcchien | excuse me, does anybody play cgi with pugs? | 09:57 | |
audreyt | hcchien: there's examples/cgi/ and examples/network/wiki/ | 09:58 | |
hcchien | audreyt: I tried the examples/cgi/memory_game, but there is nothing. :p | ||
audreyt | nothing? | 09:59 | |
jisom | web server killing it? | ||
audreyt | nothingmuch: overeager inferencer | 10:00 | |
nothingmuch | audreyt: =/ | ||
partial evaluation ++ | |||
leads to cleanliness in this stuff | |||
it kinda forces good design | 10:01 | ||
audreyt | indeed. it's a regression since last release | ||
Eval.Var line 381 | |||
fixing | |||
Alias_ | (partial evaluation)++ indeed | ||
audreyt | fixed, retesting | 10:03 | |
hcchien | ok, there is a error message in apache log. | ||
audreyt | hcchien: try running it from cmdline first :) | ||
nothingmuch: for the record, the bug is that the inferencer is evaluting the simply deferencing in lvalue context | 10:04 | ||
nothingmuch: or rather the curent whatever context | |||
nothingmuch: it needs to be rvalue and hence nonvivifying | |||
hcchien | audreyt: but it seems syntax error for CGI.pm | ||
audreyt | hcchien: weird, CGI.pm parses for me | 10:05 | |
hcchien: nopaste the error? | |||
hcchien | ok, let me trace it first. | ||
nothingmuch | audreyt: goody | 10:06 | |
audreyt++ | |||
rindolf++ | |||
ingy | nothingmuch: elk! | 10:07 | |
10:07
bsb joined
|
|||
nothingmuch | ingy: mĆøĆøse! | 10:08 | |
foosroo | *: caribou | ||
nothingmuch | ar: creating archive dist/build/libHSPugs-6.2.11.a | ||
*** Wasn't able to find 'Perl5_stub.o', aborting... | |||
make: *** [pugs] Error 255 | |||
ingy | Ć©lk | ||
31k | |||
nothingmuch | mĀµĆ | ||
unicode is so much fun | |||
foosroo | 34p1t1 | 10:09 | |
rgs | esp. in module names | ||
audreyt | nothingmuch: hm, try finding Perl5_stub under dist/buil/d | ||
nothingmuch wants to have a few more sessions of e.g. "well, we could interactivity scripting for source files" and then have audreyt say "well, unciode has the EMBED ACTION WITH LANGUAGE MARKER" character | |||
ingy | the new lĆ«ĆŖt | ||
audreyt | nothingmuch: and tweak utils/build_pugs/line 122ish to probe there | ||
nothingmuch | audreyt: none | 10:10 | |
only Syck_stub | |||
and Perl5.o, etc | |||
nothingmuch wonders if unicode 6 will be turing complete | |||
audreyt | nothingmuch: weird, maybe you did an incremental build with differing embed/perl5 | ||
nothingmuch | hmm, i'll make clean | ||
sounds like what I did | 10:11 | ||
iin that case, we should add a makefile dep to futz that, right? | |||
audreyt | maybe | ||
nothingmuch: they just need a IDEOGRAPHIC DESCRIPTION CHARACTER FIXPOINT | |||
at U+2FFC | |||
and it'll be turing complete | |||
nothingmuch | =) | 10:12 | |
rgs | hmm unicode befunge | ||
nothingmuch | well | ||
hmm | |||
audreyt | rgs: the 2FF0-2FFB block already allows befunge | ||
just not recursive | |||
nothingmuch | let's write a language interpreter that does that | ||
Alias_ | jesus | ||
Idiots | |||
So any unicode library is turing-complete? | |||
audreyt | Alias_: er no, it's not | ||
rgs | audreyt: that's awesome ! | ||
audreyt | Alias_: it's fixed at I think 5-level depth | 10:13 | |
ingy | audreyt: it will be nice when I can use rules to chunk Perl code for M::C :p | ||
Alias_ | ah | ||
audreyt | Alias_: the FIXPOINT was just a joke. | ||
nothingmuch | doesn't this have potential DOS issues? | ||
making the unicode display engine get into an infinite loop? | |||
audreyt | nothingmuch: the depth is fixed, so no | ||
Alias_ | audreyt: Because it wouldn't be the first time that a supposedly static dataset evolved into a turing-complete language | ||
nothingmuch | kinda like crashing postfix printers =) | ||
audreyt | *postscript | ||
nothingmuch | oh, it's that stuff | ||
yes, postscript, sorry | |||
audreyt | ingy: re::override::PGE or re::filter::PGE should be able to let you do that now | 10:14 | |
nothingmuch | since &postfix:<!> and choosing the postfix mail server my fingers are hard coded | ||
Alias_ | One of these days some virus is going to carry an infinite looping toner-wasting payload | ||
audreyt | ingy: or Pugs::Compiler::Rules soon -- I'll releng that today | ||
nothingmuch | Alias_: some day? | ||
didn't that happen? | |||
Alias_ | nothingmuch: Really? | ||
ingy | audreyt: so scary | ||
nothingmuch | Alias_: i think i heard something... googling | 10:15 | |
ingy becomes aroused | |||
arcady | or install a text-substitution routine... which I've seen done | ||
nothingmuch touches ingy's strong, hard, big antlers | |||
arcady | such as replacing any number with "moose" | ||
ingy | ELK! | ||
arcady | good for when people pring math homework | ||
Alias_ wonders if he could convince Richard Stallman to start a GNU project to provide recursively-dependant installation of GNU libs and headers onto Win32 | |||
nothingmuch | foosroo: you managed to corrupt ingy too | ||
me, audrey, synopses, ingy, AND THE WORLD! | 10:16 | ||
Alias_ | GNU32 | ||
oh wait... just GNU/Windows | |||
That would totally rock :) | 10:17 | ||
audreyt | rindolf: fixed, thanks! | ||
nothingmuch | Alias_: see also gentoo on nt kernel | ||
foosroo | heh heh heh | ||
audreyt | Alias_: see also Debian GNU/Win32 | ||
rindolf | audreyt: thanks for fixing it. | ||
Alias_ | curious | ||
rindolf | audreyt++ | ||
nothingmuch++ | |||
audreyt | rindolf++ | ||
nothingmuch | audreyt++ | ||
rindolf++ | |||
audreyt | well... I'm forced to | ||
nothingmuch++ | |||
nothingmuch | ;-) | ||
Alias_ has some ideas for Module::Install::External that might make use of that | |||
nothingmuch | karma hippies | 10:18 | |
Alias_ | The tricky bit is finding some way of triggering lib installation across a wide-enough range of platforms | ||
svnbot6 | r9480 | audreyt++ | * fix overeager inferencer in simple array/hash indexing; | ||
r9480 | audreyt++ | it was evaluating them in the current context, and if it's lvalue, | |||
r9480 | audreyt++ | then the element could get autovivified. | |||
r9480 | audreyt++ | rindolf++ for reporting the bug; t/pugsbugs/short_circuiting.t now passes. | |||
rindolf | karma mĆøĆøse | ||
karma-camels | |||
nothingmuch | the nice thing about #perl6 karma nowadays is that it's unrecorded | 10:19 | |
rindolf | perlbot: top 10 karma | ||
perlbot | The top 10 karma entries: C: 245, iblech: 225, $i: 135, stevan: 115, putter: 112, fglock: 100, autrijus: 91, gaal: 85, luqui: 77, audreyt: 72 | ||
Alias_ | karma-karma-karma-karma-karma-cameleon! | ||
nothingmuch | oh | ||
oops | |||
wait, no | |||
audreyt++ | |||
perlbot: karma audreyt | |||
perlbot | Karma for audreyt: 73 | ||
nothingmuch | when did that start again? | ||
audreyt | since forever | ||
nothingmuch | i thought it was disabled for forever | ||
audreyt | really. | ||
nothingmuch | yes | ||
audreyt | *shrug* | 10:20 | |
Alias_ | C++ | ||
nothingmuch | i really thought ;-) | ||
audreyt doesn't care one way or another | |||
nothingmuch prefers without, more hippy | |||
audreyt | $i is very popular. | ||
nothingmuch | but nevermind, it's nice to strive for large figures | ||
makes you work harder =) | |||
anyway, lunchtime | 10:21 | ||
10:21
Southen_ joined
|
|||
ingy | $i-- | 10:21 | |
rgs: Idon't know how that wierd file got in there | 10:27 | ||
audreyt | ingy: to address hugo's concern | 10:28 | |
rgs | ingy: file(1) says me it's an apple thingy | ||
audreyt | I think the default freshness check for M::C should be die on mtime failure | ||
ingy | gah | ||
audreyt: patch please | |||
audreyt | I'll commit to the pugs tree -- or do you prefer commit to your kwiki.org tree? | 10:29 | |
ingy | rgs: ls doesn't show it | ||
rgs | ingy: its name begin with a dot | ||
ingy | audreyt: the latter. in general if it is not time critical to pugs | 10:30 | |
rgs | so it doesn't show on search.cpan either | ||
Alias_ | audreyt: die on failure if the library is read-only | ||
ingy | rgs: ls -a I mean | ||
Alias_ | audreyt: Which would imply an installed library that shouldn't be changing | ||
ingy | but make dist is still making it! | ||
audreyt | Alias_: sure | ||
rgs | hmm sorry, it does show up : search.cpan.org/src/INGY/Module-Com...ib/Module/ | ||
audreyt | ingy: ok, will do | 10:31 | |
rgs | weird | ||
rindolf | audreyt: working now, thanks. | 10:33 | |
nothingmuch | audreyt: what should i name the test now? | 10:34 | |
lvalue_inferrencing.t ? | |||
ingy | rgs: when I untar on the mac I don't see it | ||
svnbot6 | r9481 | nothingmuch++ | svn props for new test | ||
ingy | weird that tar does see it | ||
rgs: I firmly blame svk | 10:35 | ||
:) | |||
ingy hates svk | |||
rindolf | ingy: there's an incompatibility between the tar of recent OS X's and GNU tar (or most other tars) | ||
ingy loves svk | |||
rgs | $ file lib/Module/._Compile.pm | 10:36 | |
lib/Module/._Compile.pm: AppleDouble encoded Macintosh file | |||
rgs prefers to blame apple :) | |||
ingy | awww! | ||
jisom likes bsdtar the most, tar xfz always does what you expect | |||
rgs | cpio++ | ||
nothingmuch | rgs: that's from an archive? | ||
it's the resource fork | |||
rgs | nothingmuch: from M::C's cpan's tarball | 10:37 | |
ingy | nothingmuch: can I kill it? | ||
nothingmuch | when flattenning dual-stream files (HFS) into a single stream file system, OSXX will save the resource fork for Foo in ._Foo | ||
10:37
foosroo joined
|
|||
nothingmuch | yes | 10:37 | |
.pm are plaintext | |||
the resource fork is probably empty | |||
but existent | |||
either way, resource forks are kinda deprecated | |||
ingy | I can't see it from the shell | ||
nothingmuch | in favour of bundle formats | ||
ingy: that's because in OSX they're the same file | |||
ingy | so how do i kill it? | 10:38 | |
jisom | nothingmuch: I think Apple also uses a .rsrc file but all the data's in the data fork | ||
nothingmuch | uh, strip the rsrc fork... le me see if i can remember | ||
audreyt | rgs: I think we check unpack('%128C') | ||
nothingmuch | try saying 'cat Foo.pm > Foo.pm.new; mv Foo.pm.new Foo.pm'; | ||
audreyt | or %32C, is perhaps the easiest | ||
nothingmuch | most utils are rsrc fork aware on OSX (rsync, tar, mv, cp, etc) | ||
audreyt | (builtin support, no need of modules, very small chance of error) | ||
nothingmuch | also, switch editor | ||
or whatever program you opened it up with | 10:39 | ||
audreyt | rgs: (I mean in the BEGIN{} block in .pmc generated by M::C) | ||
nothingmuch | that added extra crap to the file | ||
rindolf | ingy: www.advogato.org/person/fxn/diary.html?start=401 | ||
ingy | nothingmuch++ | ||
worked | |||
rgs | ok | 10:40 | |
nothingmuch | ingy: also, ditto helps converting this stuff around | ||
man ditto | |||
audreyt | rgs: you think a patch to B::Bytecode is called for | ||
so it generates the same check? | |||
nothingmuch | /Developer/Tools/UnRezWack | ||
audreyt | that should alleviate the p5p concerns | ||
nothingmuch | that can also help yu | ||
10:41
hlen joined
|
|||
nothingmuch | and other Rez related stuff in /Developer/Tools | 10:41 | |
(they all have man pages | |||
) | |||
10:41
hlen_ joined
|
|||
nothingmuch | again, try to figure out which program that opened the .pm (likely a carbon app) added the unwanted fork | 10:42 | |
rgs | maybe add it to a MANIFEST.SKIP | ||
audreyt goes take walk in $Reality, bbiab | |||
nothingmuch | rgs: '^\._' | ||
it's actually a good idea for all OSX stuff | |||
that and .DS_Store | |||
rgs | should that go in the default MANIFEST.SKIP then ? | 10:43 | |
ingy | audreyt: if you make the pmc_freshness_check patch I'll fixed the tests that you break | ||
:) | |||
nothingmuch | IMHO yes | ||
rgs | what's .DS_Store ? | ||
nothingmuch | *BUT* if the package is MacOS specific (check with all authors of Mac::) then they might have a need for resource forks | ||
in which case they want ._ packaged in, and in the manifest | |||
for unpacking on an OSX machine | |||
rgs | hmm. | 10:44 | |
nothingmuch | rgs: it's a file that contains the finder (think windows explorer, konqueror - filesystem navigator) meta data | ||
about the directory it's in | |||
like window size | |||
display style | |||
rgs | I use a mac os x occasionnally | ||
nothingmuch | they really should be using xattrs on the dir now that they have them | ||
ingy | dinner& | 10:45 | |
nothingmuch | ingy: have fun | ||
think about mĆøĆøsen | |||
but not about eating mĆøĆøsen | |||
audreyt | ingy: heh, ok. but I'd need the filename for the original file in the freshness_check/pmc_template chain | ||
anyway, will look at it when I'm back from walk & | |||
nothingmuch | brb | 10:57 | |
10:57
meppl joined
|
|||
Juerd | debian-- # no documentation on what to do if you get BADSIG from gpg | 11:06 | |
There's another signing attempt that DOESN'T HELP, because I, the user, just ignore the message if I cannot find documentation about the thing. | |||
Alias_ | That whole chunk of functionality seems still not completely thought out | 11:08 | |
osfameron | also apache download page which say "Don't forget to check signature!" but don't bother telling you what that means and how to do it | 11:09 | |
mmmm, tasty moosen! | |||
Alias_ | Basically, crypto people don't seem to be able to make decent infrastructure | ||
Has been my experience | |||
osfameron | Alias_: are we there yet? are we there yet? are we there yet? gimme gimme gimme! (Perl::Editor I mean) | ||
Alias_ | osfameron: :) | ||
osfameron: Well, I'm still trying to get Win32 Perl usable | 11:10 | ||
osfameron: Waiting on Schwern to approve ExtUtils::Install so I can get fireartist to do a Vanilla Perl 5.8.8 build 2 release | |||
Juerd | osfameron: This is a bit further, they actually annoy you so much that you start installing signatures, and have it check for them | ||
osfameron | now that's what I call a big yak to shave! | ||
Alias_ | yeah, well | ||
Juerd | osfameron: And it now reports, for the first time, that there is a bad signature. But what can I do? | ||
NO documentation about that whatsoever. | |||
Alias_ | osfameron: I'm almost there | ||
osfameron: If it wasn't for the fact that ActiveState gateways stuff through PPM, it would have worked years ago, I'm sure | 11:11 | ||
Juerd | Not even the slightest hint that I should report anything, discontinue what I was doing, or try to fix it. | ||
Alias_ | Most of the bugs weren't all that hard to fix | ||
KingDiamond | so I have a few class attrs (my $foo, etc.). Now to set the value for $foo using a method (method set_foo($foo)), how do I refer to the class attr? | ||
Juerd | Alias_: Agreed. Crypto is hardly EVER usable for end users. | ||
Alias_ | Which is totally stupid | ||
Much like Module::Signature still I'm afraid | 11:12 | ||
We don't have any documented cases of trojan modules I'm aware of, so it would have been nice to err on the side of caution | |||
osfameron | indeed | ||
Juerd | The only "security" end users get is from SSL server certificates... that they also blindly trust, because they have to. | ||
osfameron | I'm not sure how module::signature helps actually | 11:13 | |
it's more important to know the author or have discussed the module first | |||
Alias_ | Well, I guess ideally we should have built a comprehensive authorative CPAN keyserver first | 11:14 | |
But then maybe we did :) | |||
11:14
kanru joined
|
|||
Alias_ | I've been known to not notice entire new systems | 11:14 | |
osfameron | ah, is it actually possible for cpan.perl.org to redirect you to an evil mirror? | 11:15 | |
Juerd | Alias_: Especially in Perl world, they tend to go unnoticed :) | ||
Alias_ | osfameron: DNS hacks? | ||
Juerd | "What, you never heard about somehostname.perl.org, or somehostname.cpan.org? We even made a subdomain for it!" | ||
Because that's how visibility apparently works in Perl land: create a small, ugly, dysfunctional website for it, and expect people to know :) | 11:16 | ||
Alias_ | yeah | ||
Juerd | Oh well, probably just my weird view on things | ||
Alias_ | Still, given the problems dealing with that volume of code and work, having someone who can both deal with that issue, and also do a decent webpage, would be a rare combination | ||
I still can't get CPAN::Metrics working | 11:17 | ||
It's either memory leaks, of half a dozen files on CPAN blowing the process out to half a gig of ram | |||
s/of/or/ | |||
KingDiamond | can anyone point me to examples on class attr accessors? | 11:18 | |
11:21
foosroo joined
|
|||
Alias_ | osfameron: Of course, if you are interested in helping out towards Perl::Editor, I have some jobs :) | 11:23 | |
Wait, actually I don't think I do atm | |||
Waiting on half a dozen other people to finish various things I think | |||
osfameron | Alias_: yeah, I have an on-and-off supply of tuits. Let me know if you come up with a task | 11:27 | |
Alias_ | Current list is something like | 11:28 | |
1. Hunt down Tye McQueen and get him to fix Win32:: modules or let me 2. Hunt down Michael Schwern and get him to authorise ExtUtils::Install | |||
etc | |||
osfameron | aha, I'm more interested in the Perl::Editor stuff :-) | 11:29 | |
Alias_ | Well, there's still a little shaving to do | ||
ExtUtils::Install is the critical path | |||
Don't suppose you want to take a shot at the PPI rt queue? :) | 11:30 | ||
It's all a bit tangential though | |||
Hard to get people to help assemble various functions and commands without a working editor to put them in | 11:31 | ||
Juerd | Is Perl::Editor the same thing as PCE? | 11:32 | |
Alias_ | blam! | 11:40 | |
oh wait, wrong network | |||
Juerd: Nope | |||
Perl::Editor is an API and plugin system | |||
11:40
tewk joined,
hcchien joined
|
|||
Juerd | Ah, so we'll soon have two Perl editors :) | 11:41 | |
Alias_ | That requires certains things from any single editor, and provides certain functionality | ||
11:41
f0rth joined,
buu joined,
Arathorn joined,
foosroo joined,
meppl joined,
bsb joined,
kane__ joined,
nnunley joined,
hmisty joined,
marmic joined,
KingDiamond joined,
fandango joined,
Lorn__ joined,
lampus_ joined,
knewt joined,
GabrielVieira joined,
lisppaste3 joined,
DesreveR joined,
cotfis joined,
borkened joined,
mj41 joined,
perlbot joined,
locksy joined,
sri_ joined,
kcwu joined,
xerox joined,
obra joined,
miyagawa joined,
wilx joined,
mako132 joined,
jiing joined,
osfameron joined,
binary42 joined,
rgs joined,
stennie joined,
drbean joined,
tuxxboxx joined,
TimToady joined,
pdcawley joined,
roarke joined,
whiteg_xen joined,
clkao joined,
evalbot_9479 joined,
ayrnieu joined,
Migo1 joined,
gaal joined,
Gothmog_ joined,
Maddingue_ joined,
whiteg joined,
integral joined,
mugwump joined,
orafu joined,
ajs_home joined,
pjcj joined,
amv joined,
szbalint joined,
Shabble joined,
sky_ joined,
Grrrr joined,
lumi joined,
jvoorhis joined,
arguile joined,
cookys joined,
ntgrl joined,
ycheng joined,
ingy joined,
audreyt joined,
Supaplex joined,
spinclad joined,
gugod joined,
justatheory joined
|
|||
Juerd | T IRSSI PLEASE NEXT TIME RECOGNISE THE NETJOIN OKITHX | 11:41 | |
Alias_ | So we'll have as many as can implement a valid Perl::Editor host | ||
11:41
Southen_ joined,
SamB joined
|
|||
Alias_ | Initially, that might be one, two or N | 11:41 | |
wolverian | agreeing with Juerd | ||
Juerd | I have to get to my office, and do some work stuff :| | 11:42 | |
11:42
jisom joined
|
|||
Juerd | See ya | 11:42 | |
Alias_ | But the should be that as long as your editor supports acting as a host, you can write a plugin and put it on CPAN, and it wil work with every editor | ||
(or at least, that's the idea) | |||
Juerd | Alias_: That sounds nice | ||
afk | |||
Alias_ | later | ||
11:42
GeJ joined
11:43
stevan joined
11:44
kakos joined
11:46
kane__ joined
11:52
Khisanth joined
11:53
ruz joined,
rafl joined
11:56
xern joined
11:57
azuroth joined
11:58
puetzk joined,
geoffb joined,
Eimi joined
11:59
sahadev joined
12:05
spity joined
|
|||
spity | hi | 12:05 | |
azuroth | hey spity | ||
audreyt | ingy: running checksum code is in. | 12:06 | |
KingDiamond | guys, can class attrs be inherited by subclasses? | ||
audreyt | you mean "has"? | 12:07 | |
KingDiamond | audreyt: that's for instance attrs only, right? | 12:08 | |
nothingmuch thinks his new thread on p6l is slightly less warnock-bait than usual ;-) | 12:09 | ||
12:10
chris2 joined
|
|||
KingDiamond | audreyt: I have a few class vars in a class A, and I want to read them in class B (which is a subclass of class A) | 12:11 | |
(again, sorry if these questions are silly; just that I'm finding it difficult too find things online -- I'm just a Ruby guy ;-) ) | 12:12 | ||
s/too/to | |||
12:12
dvtoo joined
|
|||
audreyt | KingDiamond: class vars, as in "my $var"? | 12:12 | |
ayrnieu | ?eval class A { has @.n; method give (Int $n) { @.n += $n } }; class B is A { method check { @.n } }; my $a = ::B.new; $a.give(5); say $a.check | 12:13 | |
12:13
evalbot_9479 is now known as evalbot_9482
|
|||
evalbot_9482 | OUTPUT[5 ] bool::true | 12:13 | |
KingDiamond | audreyt: yeah | ||
12:13
jp-autark joined
|
|||
KingDiamond | ayrnieu: "has" is used for instance vars, right? I was wondering about class vars | 12:15 | |
audreyt | KingDiamond: embarrasingly, I think the only way currently is to write an accessor by hand. | 12:16 | |
TimToady: does "class A { my $x }; class B is A { ...$x... }" work? | 12:17 | ||
I don't think S12 talks about this | |||
jisom | if $x is stored as a property of class a, then....no | 12:18 | |
in parrot anyway | |||
audreyt | I guess "my $.x" should generate accessor by hand. | ||
I mean, automatically. | |||
ayrnieu | Or you can use method Class::acc { } after the fact. | ||
audreyt | KingDiamond: I think "my $.x" is the canonical syntax. | 12:19 | |
12:19
hmisty joined
|
|||
audreyt | though they make them world-accessible | 12:20 | |
Alias_ | hmm... it would appear someone has gone and ported Perl::Tidy to PPI while I wasn't looking | 12:22 | |
oh wait | |||
maybe not... might be more of a Perl::Critic clone | |||
audreyt | TimToady: I guess "class A trusts B { my $x } class B is A {$x}" works... but seems backwards. | 12:23 | |
ayrnieu | how does ruby deal with class-variables in subclasses? | ||
audreyt | TimToady: or does inheritance confer trust by default? A12/S12 doesn't talk about this, afaics | ||
nothingmuch | $SUPER::a ? | 12:24 | |
wolverian | audreyt, I hope not. isn't that why 'protected' is such a mess? | ||
audreyt | nothingmuch: that works with "our", but not "my" | 12:25 | |
wolverian: indeed. but then, if you are B, how do you get A's "my" vars without it knowing about you? | |||
nothingmuch | should it even work with my? | ||
audreyt | class A is also trusts B; # ;) | ||
wolverian | audreyt, do we actually want that? | 12:26 | |
ayrnieu | nothingmuch - you can already violate A by adding accessors to it. | ||
nothingmuch | i mean as a perl philosphy | ||
i think the value of encapsulation is that internal namespaces don't clash | |||
audreyt | wolverian: want that? no. :) | ||
nothingmuch | not that we can keep people out | ||
and under this premise, all data that is not private (implementation detail ugliness) should really be exposable | 12:27 | ||
audreyt | wolverian: but the topic at hand is "inherited class variables visible only to its subclasses" | ||
nothingmuch | all *class* data | ||
jisom | is my still lexical? | ||
audreyt | jisom: sure is. | ||
wolverian | audreyt, wait - I'm not sure what class variables are here | ||
nothingmuch | audreyt: yes, do we really want "inherited class variables visible only to its subclass" ? | ||
wolverian reads S12 | |||
Juerd | nothingmuch++ | ||
13:27 < nothingmuch> i think the value of encapsulation is that internal namespaces don't clash | 12:28 | ||
jisom | so....why should anything but class A be able to get at it? | ||
Juerd | 13:27 < nothingmuch> not that we can keep people out | ||
nothingmuch | Juerd: that's precisely why i hate inside out objects | ||
audreyt | jisom: S12 has this "trusts" mechanism to do lexical exports | ||
nothingmuch | they give you the other, but not the one =) | ||
Juerd | They solve a problem while adding another. | ||
Not worth lots and lots of extra work. | |||
nothingmuch | they don't solve any problem as I see it | ||
except a cultural problem | |||
which is too much $obj_i_dont_know->{foo} | |||
and also too much $self->{foo} | 12:29 | ||
Juerd | nothingmuch: They solve several problems, actually | ||
nothingmuch | but arguably that's solvable using Class::Accessor just the same | ||
audreyt | rgs: btw, svn.openfoundry.org/pugs/perl5/Modu...le/t/pmc.t | ||
Juerd | nothingmuch: Typo checking on names - $self->{mispeling} doesn't warn. | ||
nothingmuch | Juerd: in the eyes of the bholder | ||
Juerd: use fields | |||
especially in 5.9 | |||
rgs | hm | ||
nothingmuch | in 5.8 there were limitations but they were removed along with pseudohashes | ||
12:29
anatoly_ joined
|
|||
Juerd | nothingmuch: And they make it so that both the superclass and the subclass can have a private thingy called 'foo', which is useful. | 12:30 | |
nothingmuch | (despite the fact that pseudohashes were added exactly for this ;-) | ||
Juerd | pseudohashes were also added for speed. | ||
nothingmuch | Juerd: based on 'caller' futzing? | ||
rgs | impressive | ||
nothingmuch | Juerd: for speed of 'use fields' | ||
not general speed | |||
they don't add any speed for keys which are not known at compile time and which don't have 'my Package $x' | |||
rgs | audreyt: maybe using _ as a filehandle is evil. remember it's special for stats | 12:31 | |
foosroo | anatoly! | ||
anatoly_ | hey foosroo | ||
wolverian | chicken soup is sooooo good. | ||
nothingmuch | hola anatoly_ | ||
anatoly_ | weird, nickserv is not logged in? | ||
hey nothingmuch | |||
Arathorn | the network's totally split | ||
anatoly_ | ah, k | 12:32 | |
12:32
anatoly_ is now known as anatolyv
|
|||
rgs | audreyt: also, you rely on __FILE__ being the .pm right ? | 12:32 | |
foosroo | 1378133008 == do ?? | 12:33 | |
audreyt | rgs: currently, yeah | ||
rgs: if that's going to change, I need a chop | 12:34 | ||
but then, hard to make it compatible | |||
rgs | yes | ||
audreyt | rgs: refresh svn.openfoundry.org/pugs/perl5/Modu...le/t/pmc.t - it now aligns | ||
foosroo | heh | ||
rgs | so, er. should I put a regression test for __FILE__ and .pmc in blead. | ||
Juerd | I'd say __FILE__ returning .pm is a bug, and the workaround should be to add "c" when it's not there, rather than assume it'll be .pm :) | ||
rgs | Juerd++ | 12:35 | |
audreyt | I agree | ||
fixing | |||
rgs | audreyt: BTW nice use of the one arg open() :) | ||
one underrated feature | |||
audreyt | I'm trying very hard to not overgolf :) | 12:36 | |
rgs | ha ha | ||
audreyt | <- golfer by training | ||
foosroo | explain the constant please? | ||
audreyt | foosroo: running 32bit checksum | ||
foosroo | oi | ||
KingDiamond | nothingmuch: even using our doesn't help. $SUPER::a doesn't work :-/ | 12:37 | |
Juerd | one arg open... Hmmm... | 12:38 | |
Didn't even know it existed :) | |||
Arathorn | hehe, the staleness check is very cool :) | ||
clkao | one-arg open! | 12:39 | |
Alias_ | audreyt: yes... your and/or abuse can be pretty overgolfy | ||
audreyt: But otherwise not too bad | |||
jisom | I knew it existed, but didn't look like something I;d want to debug | ||
Alias_ | 6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | < audreyt> my fingers juxpatosed | Word of the Day: overgolfy | 12:39 | |
clkao | audreyt: so perl6::sub is very broken. can we have a nonbroken equivalent any time soon? | 12:40 | |
rgs | if it's nonbroken, it will not be equivalent | ||
KingDiamond | so what *is* the solution to access class vars from a subclass? | 12:41 | |
clkao | equivalent to what it was supposed to do | ||
anyway. is pmc.t meant to be broken? i see 1378133008 == do vs 530915907 == do | |||
Arathorn | KingDiamond: i seem to remember asking this about a year ago, and a certain amount of confusion resulting | 12:42 | |
istr it coming up on p6l and not getting properly resolved | |||
jisom | probably need to deal with endianness | ||
longs aren't portable | |||
nm | 12:43 | ||
Arathorn | hopefully TimToady will reveal all :) | ||
audreyt | clkao: huh? try r9486 | ||
rgs: refersh? | |||
KingDiamond | Arathorn: darn... so I'm stuck now :/ | 12:44 | |
clkao | audreyt: same | ||
audreyt | jisom: switched to 32N, thanks | ||
clkao: are you on a mac? :) | 12:45 | ||
clkao | yes | ||
audreyt | r9487 should fix that | ||
rgs | wow | ||
jisom | the number difference doesn't seem like endianness | ||
audreyt | jisom: it's checksum, so might be | ||
clkao | eggcellent | ||
but it still fails | |||
freshness_check ? | 12:46 | ||
audreyt | yeah | ||
Arathorn | KingDiamond: you could use a temporary manual accessor on the superclass as audreyt suggested? | ||
clkao | doesn't work after i changed it | ||
jisom | 0x5224A410 is nothing like 0x1FA52243 | ||
audreyt | clkao: hm. so you mean, you checked out from pugs trunk, and "make test" fails? | ||
clkao | yes | 12:47 | |
audreyt | clkao: ok, r9488 | ||
clkao | it's a 'g' merge | ||
i tried that as well | 12:48 | ||
same | |||
audreyt | fixing | ||
r9489. | 12:49 | ||
and now it always aligns! | |||
clkao | works! | ||
audreyt++ | |||
audreyt | yay! | ||
pmc.t now looks beautiful | 12:50 | ||
if a bit obfu ;) | |||
clkao | no, v6.pm | ||
now | |||
audreyt | jisom: it is... they are %32V* and %32N* of the same file. | 12:51 | |
clkao | holyd insane %32N, i didn't know about '%' | ||
audreyt | checksum ignore the higher bits | ||
clkao: that's what you get from being a unicode golfer | |||
jisom scratches his head and looks at the unpack docs | |||
it does a checksum...... | 12:52 | ||
it doesn't say a thing about what that checksum is | |||
nothingmuch | shapr++ | ||
groups.google.com/group/comp.lang.j...dd9b7d3b92 | |||
(he linked to that on his blog) | |||
interesting read | |||
audreyt | jisom: summing numeric values | ||
jisom: and discard higher bits | |||
jisom: it does say that in perldoc -f unpack | |||
nothingmuch | directly relates to most of my complaints about perl 5 code | ||
and why perl 6 needs to be self hosting | |||
Alias_ | What sort of checksum? | ||
nothingmuch | and what I think pugs is god for | ||
but why pugs is not "production" | 12:53 | ||
Alias_ | Something faster than the rediculous 95meg a second for MD5? | ||
jisom | oh, there it is | ||
:) | |||
audreyt | Alias_: it's the "unpack" checksum | ||
Alias_ | ah | ||
audreyt | Alias_: I imagine quite faster | ||
but of course havn't benchmarked | |||
the choice is so I don't want to inflict loading of XS modules on user code. | 12:54 | ||
Arathorn | it's just summing - it's not cryptographic | ||
Alias_ | Well, to some degree that's going to be hard to resist | ||
And MD5 is very commonly and so fast it might as well run in zero time | |||
common | |||
Alias_ points to the Digest.pm docs for benchmarks | |||
jisom | or use CRC like for png's, not needing security, only a difference | 12:55 | |
audreyt | yeah. but then again, this is not against tampering (people can tamper .pmc just fine), and accidental 4-byte juxtaposition at 4-byte chunks is rare | ||
pasteling | "KingDiamond" at 202.46.19.1 pasted "1 #!/usr/bin/perl6 2 3 use v6;" (16 lines, 321B) at sial.org/pbot/16288 | ||
Alias_ | jisom: I don't know if you've been keeping up to date, but MD5 isn't useful for anti-tamper any more either :) | ||
jisom: It does however make a really cood checksum :) | |||
jisom | oh it's good enough! | ||
Alias_ | good | ||
KingDiamond | Arathorn: I pasted some simple code; could you maybe point me to how to actually go about it? | ||
Alias_ | Anyways | 12:56 | |
Alias_ has moved on to arbitrary digesting | |||
(points at Data::Digest) | |||
been meaning to write that for ages | |||
audreyt | anyway, I think this checksum is Good Enough -- certainly better than surface mtime :) | ||
Alias_ | (of course, where arbitrary currently means MD5 or the SHA family) :) | ||
very | |||
as long as it's faster :) | 12:57 | ||
audreyt benchmarks | |||
KingDiamond | Arathorn: nevermind, got it :) | ||
12:57
GeJ joined
|
|||
jisom | Alias_: are you using a c backend for that checksum or pure perl? you can be sure perl has the unpack checksum | 12:58 | |
Alias_ | jisom: Digest::MD5 is C, and fairly tight I believe | ||
jisom | installed by default? | ||
Alias_ | No, but close. | ||
Very highly depended upon | 12:59 | ||
Digest::MD5 and Digest::SHA are pretty safe to assume will be installed | |||
audreyt | not so; ::MD5 is core only on 5.7.3 | ||
::SHA is not core. | |||
Alias_ | <Alias_> No, but close | ||
SHA is in Bundle::CPAN | |||
audreyt | MD5 is close. SHA is not :) | ||
Alias_ | which I'd call "close" | 13:00 | |
audreyt | ok ok :) | ||
in any case | |||
md5 145/s -- -54% | |||
builtin 312/s 115% -- | |||
Alias_ | neato | ||
audreyt | on a 1mb string | ||
13:00
hlen__ joined
|
|||
jisom | I would have been scared if md5 was slower | 13:00 | |
s/slower/faster/ | |||
Alias_ | jisom: Take a look at the Digest docs | 13:01 | |
Arathorn | surely the difference is that the builtin isn't tamper resistent, though? | ||
Alias_ | There's half a dozen "CRC" modules there, all vastly slower than MD5 | ||
audreyt | Arathorn: well, neither is MD5 nowadays | ||
nothingmuch | is this a 32bit checksum? | ||
audreyt | nothingmuch: it is. should we use 64bit? | ||
jisom | it can be 64 bit | ||
Alias_ | MD5 is gone, and SHA-1 is suspect | ||
audreyt | (312/s becomes 309/s after 64bit) | ||
nothingmuch | the problem with checksum is that they are suspectible to repeating things | ||
jisom | ir can be 8 bit | ||
Arathorn | true, but just summing and throwing away the carries was never meant to be tamper resistent, unlike md5 ;) | ||
nothingmuch | they are normally good enough | ||
audreyt | Arathorn: right :) | ||
nothingmuch | but sometimes you have a file with a repeating block at just the right length | 13:02 | |
or something similarly "harmonic" | |||
foosroo | 48 bit may be easier to align :) | ||
nothingmuch | (i don't know how to describe this... cryptographers/modular-math heads prolly have a better word) | ||
and that file will be very very suspectible to repeating checksums | |||
jisom | or just add a series of eight characters that just happen to add up to 0 when getting rid of overflow | ||
nothingmuch | jisom: yes, but that is rare on a file wide scale | 13:03 | |
13:03
Lorn__ is now known as Lorn
|
|||
jisom | of course | 13:03 | |
nothingmuch | i think a better choice would be to abuse perl's builtin hash function | 13:04 | |
audreyt | nothingmuch: how do I abuse that? | ||
nothingmuch | no clue | ||
Arathorn | java stylee? | ||
nothingmuch | i think depending on Digest is better | ||
and then using either MD5, or SHA1, or SHA-256, or whatever | |||
audreyt | nothingmuch: this chunk is overridable by individual M::C | ||
subclasses | |||
nothingmuch | okay | ||
jisom | nothingmuch: what happens if the checksum time slows down the loading time? | ||
audreyt | but I'd like the default to work on 5.6 | ||
(which doesn't come with Digest.pm) | |||
nothingmuch | then it should be a dep | ||
Arathorn | as a default sol unpack's checksum seems eminently sensible | ||
audreyt | nothingmuch: the entire idea of M::C is to not inflict any deps. | ||
nothingmuch | the reason is that checksums are the to make sure that a small difference (e.g. 2-3 corrupt bits) doesn't slide | 13:05 | |
otoh message digests are there to solve the problem of comparing two documents for equality | |||
Alias_ | audreyt: I don't think you are going to avoid all deps | ||
audreyt | Alias_: on the user side? why not? | 13:06 | |
nothingmuch | audreyt: you can always use the pure perl md5 ;-) | ||
Alias_ | audreyt: And to get Perl 6 code, people will be happy to pay for a few simple deps | ||
nothingmuch | seriously, throw a prime number into the mess | ||
audreyt | Alias_: oh, I'm talking about M::C | ||
nothingmuch | rely on file size, date, and checksum | ||
13:06
stennie joined
|
|||
nothingmuch | and you should be all right | 13:06 | |
audreyt | nothingmuch: file size changes across crlf boundaries. | ||
Alias_ | M::C On the compilation side, they'll need even more I would have thought :) | ||
nothingmuch | audreyt: of .pm files?! | ||
audreyt | Alias_: no, I'm talking about generic M::C subclasses | ||
nothingmuch | why should they be converted?! | ||
Alias_ | audreyt: ah | ||
audreyt | Alias_: not v6.pm. I'm happy about v6.pm using more rigorous digesting etc | 13:07 | |
nothingmuch | audreyt: ? | ||
audreyt | nothingmuch: if you check out a .pm from svn with native eol-style, the size changes | ||
KingDiamond | hmph. so I changed all methods to subs. looks weird :/ | ||
nothingmuch | oh, svn... | ||
crap | |||
audreyt | nothingmuch: depending on whether checkout is on unix or win32 | ||
nothingmuch | yeah | ||
audreyt | nothingmuch: so stat() is not going to help us. | ||
nothingmuch | i thought this was just for 'make install' | ||
okay | |||
Alias_ | You need to do a newline-neutral digest/CRC | ||
nothingmuch | in that case | ||
exactly | 13:08 | ||
audreyt | Alias_: yeah, that's why the unpack uses a :crlf | ||
nothingmuch | the second thing is: | ||
try to add as much other meta data as possible | |||
and try to throw prime numbers into the mess | |||
audreyt | and for v6.pm, maybe a more robust Digest::* and additional metadata | ||
nothingmuch: I don't see how prime numbers work here... and I need to go hacking other things :) | 13:09 | ||
nothingmuch | it's unlikely for program source code that CRC will be different | ||
jisom | 2+3=5 and all are prime | ||
nothingmuch | jisom: you mean 2 + 2 = 5 | ||
but seriously | |||
if you do a sum modulu $pretty_large_prime then harmonic effects | |||
Alias_ | wow | 13:10 | |
I know all those words, but not the sentence | |||
13:10
theorbtwo joined
|
|||
jisom | I know all those words, and I'll nod my head and smile until I understand | 13:10 | |
13:12
hlen joined
|
|||
audreyt | nothingmuch: yeah. my first thought is to use crypt() | 13:12 | |
but sadly crypt() is platform dependent | |||
13:12
hlen_ joined
|
|||
audreyt | and there's no way to say "use the crypt.c crypt" | 13:12 | |
jisom | there is a pure pir md5 module | 13:13 | |
Alias_ | Which is 90 times slower than the C one | ||
jisom | with or without jit? | ||
or -C | |||
Alias_ shrugs | |||
See Digest.pm | |||
But really, who doesn't have a C compiler | 13:14 | ||
audreyt | Digest.pm doesn't talk about PIR | ||
Alias_ runs | |||
jisom | but I get a test failure on openbsd with it | ||
who doesn't have a ghc compiler? | |||
audreyt | who doesn't have a self-hosting perl6 compiler? | ||
Alias_ | Perl comes with a C compiler | ||
But then I'm probably getting my head backwards again | 13:15 | ||
ignore me and continue hacking | |||
Alias_ goes back to PITA | |||
jisom | at the otcc or whatever contest, there's a c subset compiler... | ||
cognominal_ | isaacos.loria.fr/li_docs.html # sounds an interesting alternative to C | 13:17 | |
jisom | looks similar to obj-c | 13:18 | |
and.... | |||
other stuff | |||
nothingmuch | audreyt: crypt sucks | ||
because crypt only does the first 8 chars | 13:19 | ||
audreyt: i think thie base class impl should have: | |||
Alias_ | Dear lilo: Please don't kthnks | ||
nothingmuch | ( $] > 5.007003 ) ? do { require Digest::MD5; ... } : unpack("%32U"); | ||
also, crypt is *NOT* platform dependant | 13:20 | ||
because Perl bundles fcrypt exactly for that reason | |||
=) | |||
that's the only part of perl5's source code that i *really* know well | |||
because at the time we needed a crypt() for work | |||
jisom | nothingmuch, feel like a challenge? write a custom hash | ||
audreyt | 1. activeperl used to disable crypt() on 5.6. | ||
nothingmuch | and i was hoping the one perl 5 was using on windows would be good enough | 13:21 | |
jisom: cut and paste the pure perl md5? | |||
i'm not a cryptographer | |||
jisom | "custom" | ||
nothingmuch | i'm a hobbyist-meta-cryptographer | ||
integral | you can't use Module::Install to bundle Digest::MD5 with M::C? | ||
audreyt | 2. depending on HAS_CRYPT, perl may not use fcrypt. | ||
nothingmuch | this means that in my spare time i occasionally read about what cryptographers do =) | ||
jisom | I think Enigma's fairly secure | ||
nothingmuch | audreyt: oh | ||
audreyt: didn't know that | |||
jisom | of course that's actual encryption | ||
nothingmuch | jisom: MD5 is better =) | ||
and we have a pure perl | |||
you could do enigma with a xor-shift sum of sorts | 13:22 | ||
jisom | I have a pure perl sha-1 | ||
nothingmuch | s/shift/roll/; | ||
audreyt | 3. this check is performed on every module load; anything that adds symbols to %INC may destroy invariants | ||
nothingmuch | audreyt: the ? : idea was only conceptual | ||
Alias_ | integral: Nope, you can't safely bundle XS modules | ||
audreyt | 4. I'm fine with v6.pm does a very strong check and require 5.8+ or eventually 5.10+ | ||
but please, not M::C. | |||
nothingmuch | in perl 5.7.3 and up *compile* it to do a 'use Digest::MD5' | 13:23 | |
integral | Alias_: oh, sorry, assumed D::MD5 was the pure perl one mentioned | ||
audreyt | nothingmuch: but then the compiled code can't be deployed to 5.6. | ||
nothingmuch | then whatever, just use the checksum =) | ||
audreyt | thank you. | ||
:) | |||
nothingmuch | audreyt: i meant | ||
Alias_ | audreyt: 4. Oi, I thought v6.pm was targeting 5.6 | ||
nothingmuch | depending on the deployment target | ||
but nevermind | |||
audreyt | nothingmuch: you mean we have to look at a env var or probe the original source for "use v" strings? | 13:24 | |
Juerd | 1. Why do you talk in numbered lists? | ||
nothingmuch | env var sounds good | ||
audreyt | Alias_: currently yes -- eventually the bar may raise when we hit production :) | ||
Alias_ | grr | ||
Juerd | 2. It looks weird :) | ||
nothingmuch | if Module::Compile has a MODULE_COMPILE_DEPLOYMENT_PERL="5.8" then it can rely on Digest::MD5 | ||
jisom | 3. it's hard to follow | ||
Alias_ | Although I guess anyone pushing the limits is probably on 5.8 now anyway | ||
But you just KNOW someone is going to make a P6 module part of Bundle::CPAN or something crazy | |||
audreyt | Alias_: right. so requiring 5.8, and use Digset::MD5 for v6.pm, sounds ok | ||
Alias_ | They won't be able to resist | 13:25 | |
name 'Compress::ZLib'; requires 'v6'; | |||
I'm taking odds! | |||
13:25
fglock joined
|
|||
audreyt | we'll see. ;) | 13:25 | |
fglock: hey | 13:26 | ||
integral | hmm, not a bad idea to write CPAN[PLUS] and Module::Build in p6, one system that would work on both | ||
nothingmuch thinks explicit deployment target is a Good Enough | |||
it will keep the purists happy | |||
and it's a good feature to keep as a stub | |||
i.e. don't actually use Digest::MD5, patches welcome | |||
and it's also backwards compatible | |||
audreyt | nothingmuch: sure. commit goes to perl5/Module-Compile/ | ||
nothingmuch | audreyt: okay, i'll add a small if ( ) that does nothing =) | ||
and a small hole in the docs | |||
audreyt | fine :) as long as you document it well. | ||
k | 13:27 | ||
nothingmuch | =) | ||
fglock | audreyt: the reason I couldn't hack the engine yesterday - it is used by the lrep-generated rule parser | ||
audreyt | ingy: please sanity-check and release 0.13 at your leisure | ||
fglock | audreyt - so now I'm creating a second rule runtime, in order to modify it | ||
audreyt: the data structure seems ok now | 13:28 | ||
nothingmuch needs to buy a stuffed horse, spray paint it "Good Enough" on one side and "Patches Welcome" on the other side and mail have an automatic list bot subscribed to various lists, that replies (in private) to anyone posting to a thread that is more than 10 reply levels deep =) | |||
audreyt | Juerd: very comprehensive perlmonk.org overview on M::C - I'm going to link to it from my journal if it's okay with you | ||
Juerd++ | |||
fglock | audreyt: and I re-read s06 | ||
nothingmuch | wee | ||
err | |||
have the bot mail pictures of that horse | |||
audreyt: go on, say it again, "yes i know, take some ritalin" | 13:29 | ||
13:29
kolibrie joined,
hlen_ is now known as hlen
|
|||
audreyt | nothingmuch: actually, try non-stimulants first | 13:30 | |
13:30
Limbic_Region joined
|
|||
Alias_ | audreyt: uri? | 13:30 | |
audreyt | they have less success rate though. if it doesn't work for you, then switch to methyls | 13:31 | |
Alias_: perlmonks.org/index.pl?node_id=536132 | |||
Alias_ | nothingmuch: How old are you? | ||
actually, lets take this off-chanel | |||
and on-armani | 13:32 | ||
fglock | audreyt: why do you have to bless the match reference, instead of blessing the match (which is already a ref)? | ||
nothingmuch | Alias_: 20 | ||
audreyt | Juerd: I think the real reason why ByteLoader falls to disuse is that they are _not_ portable | ||
Juerd: not across platforms, not across perl versions | |||
nothingmuch | audreyt: after I see a doctor =) | ||
audreyt | nothingmuch: sure | ||
fglock: see Match::new | |||
fglock: I need to get access to the unblessed structure using $$match | 13:33 | ||
fglock: if I bless the whole thing, because %{} is overloaded, I can't get to the original structure ever | |||
and @{} will be broken | |||
fglock | audreyt: sure | 13:34 | |
Alias_ | oh, right | 13:35 | |
shite | |||
--> magnet | |||
nothingmuch | sure =) | ||
audreyt | fglock: so, what's the state? should I hack on getting strigification working again? | 13:37 | |
13:37
iblechbot joined
|
|||
audreyt | fglock: here it fails tests 6,7 | 13:38 | |
fglock | audreyt: I have a working stringification - I'mm cleaning up for commit (same failures here, but now it's closer to fixing) | ||
audreyt | woot! | ||
fglock | audreyt: I needed to clone Runtime::Rule, in order to not break the lrep-compiled grammar | 13:39 | |
audreyt: which has a different semantics for 'capture' | |||
13:40
Aankhen`` joined
|
|||
audreyt | fglock: ok | 13:41 | |
sure | |||
13:44
anatolyv is now known as anatoly
13:45
arcady joined
|
|||
fglock | audreyt: I'll try to fix Match to fit the new data structure | 13:49 | |
audreyt | k | 13:50 | |
fglock waits for the svn bot to show up | |||
audreyt | resummoning it | 13:52 | |
fglock | audreyt: I can't see why test #7 fails in the new version - the data looks ok | ||
13:53
avarab joined
|
|||
audreyt | looking | 13:53 | |
fglock | audreyt: maybe because capture is a 1 elem array - checking | 13:54 | |
audreyt: yes - fixing | 13:55 | ||
audreyt | fglock: the bug is in->[0] | ||
not in _str | |||
k, you are fixing, yay :) | |||
audreyt goes back pairing with Leo | 13:58 | ||
Alias_ | ph34r | ||
;) | |||
audreyt | heh :) | 13:59 | |
Alias_ | Can I watch? (pulls out Gobby) | ||
j/k | |||
I got too much code to deal with alreayd | |||
14:02
elmex joined
|
|||
audreyt | we still need utime support in M::I... (makes a note) | 14:02 | |
14:03
cnhackTNT joined
14:14
mtve joined
|
|||
ingy | audreyt: | 14:20 | |
I don't see your changes | |||
audreyt: patching from pugs tree | 14:26 | ||
could you not check it into kwiki.org? | 14:27 | ||
14:28
Qiang joined
|
|||
fglock | audreyt: I got a problem here - in test#9 the array gets dereferenced twice (it returns element [0][0] instead of [0]) - would you take a look? (I'd commit with debug prints) | 14:36 | |
s/test #9/test #10/ | 14:38 | ||
14:41
Guest37849 joined
14:42
Guest37849 is now known as GabrielVieira2
|
|||
Juerd | audreyt: Oh, I'll add that | 14:42 | |
audreyt: Thanks! | |||
14:44
vel joined
14:47
ruoso joined,
cotfis joined
|
|||
fglock | bug fixed; next | 14:49 | |
ruoso: hi! | |||
ruoso | fglock, hi | 14:50 | |
fglock, busy weekend... (10 hours meeting on saturday) :/ | 14:51 | ||
fglock, but I'm writing p6compiler.p6 as a sketch to know exactly which features we need on the compiler... | 14:52 | ||
ingy | cpan-upload -mailto [email@hidden.address] -user INGY -password ******** Module-Compile-0.13.tar.gz | ||
audreyt: ^^ | |||
I patched your test to not break with every new $VERSION :) | 14:53 | ||
ruoso | fglock, I've read your email about .pm and .pmc... That's really nice | ||
fglock | ruoso: see pugs.blogs.com/ | ||
ingy | ruoso: url? | ||
Juerd | Still great re [email@hidden.address] | 14:54 | |
fglock | ruoso: lrep is a proof-of-concept compiler - if you want to work on the real thing, you should talk to audrey - see lrep/Notes-Pugs.pm for a start | 14:55 | |
ruoso | fglock, ok | ||
Juerd | The only negative reports are 5.0 and mandr[ake|iva] | ||
rgs | I heard that ! | ||
Juerd | Hmm :) | ||
webmind was suprised it worked on his mobile :) | |||
fglock | ruoso: I'm reworking the rule compiler in perl5/Pugs-Compiler-Rule - there are a few problems in lrep's rules. When Pugs-Compiler-Rules gets published, we can replace lrep rule engine | 14:57 | |
ruoso | fglock, ok, I` | 14:58 | |
fglock, ok, I'm a little bit busy this days... | |||
Juerd | rgs: Was PMC indeed disabled because of the stat overhead? | ||
rgs | yes | ||
ruoso | fglock, but I'll take a look | 14:59 | |
Juerd | rgs: Hm; I couldn't imagine it'd be a huge difference | ||
14:59
GabrielVieira2 is now known as GabrielVieira
|
|||
rgs | the larger @INC grows, the more unsucessful stats are attempted | 15:00 | |
Alias_ | As soon as I heard it existed, I was wondering why it wasn't compiled out by everyone | 15:02 | |
15:02
GabrielVieira2 joined
|
|||
ruoso | fglock, it's much prettier... | 15:03 | |
Juerd | rgs: That's rather obvious, I think :) | ||
rgs: I just thought that a stat() was so tiny and fast (and cached) that it wouldn't matter much | |||
Alias_ | Juerd: Don't tell that to people loading across NFS | ||
rgs | you were right | ||
Juerd | Alias_: Heheh | 15:04 | |
Alias_ | Juerd: I ended up adding a :nostat mode to Class::Autouse because it doubled the stat count and the NFS people were annoyed about it | ||
Juerd | Alias_: Don't get me started | ||
rgs | on our build cluster "." is often on NFS | ||
as is blib | |||
that's why I noticed it. | 15:05 | ||
Alias_ | Actually, if we can remove pmc support globally, and add it back again manually just for the specific classes, that would surely be a good thing | ||
rgs | moreover, at that time, nobody was using .pmc files | ||
actually nobody was even aware of their existence | |||
Alias_ | I like the idea of removing them | ||
15:06
lypanov left
|
|||
Juerd | I was aware they existed, just not that you could put random *perl* code in them | 15:06 | |
ingy | Alias_: removing what? | ||
Juerd | Alias_: Hm? | ||
ruoso | Alias_, .pmc? | 15:07 | |
Juerd | Alias_: Then you'd need use Something before use Subclass::Of::MC | ||
Alias_ | ingy: Removing global .pmc support and adding it back in just for the P6 files | ||
integral | how would you do that? | ||
ingy | are you high? | ||
Alias_ | possibly | ||
rgs | by naming them .pm6 ? | ||
integral | you check if there's a .pmc file, and if it's there, you check if there's a .pmc file for that module, and use it rather than the .pm? | ||
rgs | uhh | ||
ingy | then orz.pm would stop working!!! | 15:08 | |
Alias_ | integral: that's the problem... you have to check .pmc for EVERY .pm file | ||
integral | Alias_: right, so how do you know in advance which ones are perl6? | ||
clkao | don't you break my orz modules! | ||
Alias_ | integral: Wheras if you only checked it for files that actually might have one, because they use v6.pm... | ||
integral: v6 | |||
integral | Alias_: but if you haven't found the file yet, you don't know if it contains a v6 | ||
ruoso | OTOH, adding support for .pm6 would be nice... but .pmc is available for a long time now... It's better using it, doesn't it? | ||
rgs | so use @INC-hooks. and that heavier | 15:09 | |
Alias_ | integral: The .pm contains v6. You find it anyway | ||
ingy | Alias_: but pmc is useful waay beyond v6 | ||
Alias_ | ingy: For what though? | ||
ingy | Alias_: where have you been | ||
Alias_ | Is it worth 30 or 50 stats, or 100? | ||
ingy: I must be missing the point... | 15:10 | ||
integral | it appears that very few people actually notice those stats, which is a bit surprisingly | ||
s/ly\b// | |||
Alias_ | ingy: You have something in .pm, which triggers loading of .pmc | ||
(the first time) | |||
And thereafter, if loads from pmc | |||
it | |||
At a cost of an extra stat for every single module that gets loaded | 15:11 | ||
regardless of whether it uses pmc or not | |||
ruoso | Alias_, cmon... "cost of an extra stat"? | 15:12 | |
Alias_, how many zillion modules are you loading? | |||
15:12
diotalevi joined
|
|||
Alias_ | ruoso: an extra stat per module perl @INC entry | 15:12 | |
integral | some people *do* use NFS or AFS over slow or laggy links | ||
Alias_ | over a network | ||
ruoso | Alias_, to load perl modules? | ||
Alias_ | per module per @INC, over a network | ||
ruoso: Yep | 15:13 | ||
ruoso | Alias_, that's weird | ||
Alias_ | That's how perl loads modules | ||
15:13
mako132_ joined
|
|||
Juerd | It's weird that PMCs cannot be disabled during runtime. | 15:13 | |
no pmc; | |||
Alias_ | It's enough that I had to add a :nostat mode for Class::Autouse, and it's enough that rgs disabled them | ||
Juerd | Alias_: OTOH, rgs has been the only one on this planet so far, it seems ;) | 15:14 | |
Alias_ | Juerd: That doesn't mean we shouldn't disable it everywhere now :) | ||
ruoso | Alias_, rename your modules to .pmc, you'll reduce the number of stat calls :) | ||
Juerd | No, you should keep it enabled | ||
Alias_ | ruoso: Apparently so | ||
fglock | bbiab | ||
Juerd | ruoso++ # though untrue | ||
It stats anyway. | |||
ruoso | Juerd, even if the .pmc is there? | ||
lumi | To compare mtime | 15:15 | |
ruoso | what for? | ||
integral | if people were really worried wouldn't they just put one entry in @INC and use build links? | ||
ruoso | lumi, it takes the newer? | ||
lumi | It takes the pc unless the pmc is definitely newer | ||
s/pc/pm/ | |||
ruoso | hmmm... | ||
rgs | so it'll stat the .pm even if it finds the .pmc | 15:16 | |
fglock | audreyt: return blocks are working, but I'm not sure what is the expected 'right' data in test #17 (see last commit) - (back in ~20min) | ||
Alias_ | The problem of course is that since .pmc is being checked in most situations ANYWAY, as of today it's cheaper to (ab)use that feature | ||
puetzk | Alias_: it also likely stat()s a pretty respectable number of folders @INC where the module isn't found | ||
Alias_ | Which is almost a pity | ||
puetzk: Right and double that number | 15:17 | ||
well, optimised I guess | |||
ingy thinks that Alias_ is harping on a red herring to prevent Perl from taking an exciting new evolutionary step. | 15:20 | ||
Alias_ things ingy is hypnotised by the shiny thing | |||
ingy | you know I am :p | ||
Alias_ | I HATE THE BANDS YOU LIKE! | ||
(just cutting to the punchline) | 15:21 | ||
ingy | .pmc is awesome, and I plan to push it to the nth degree. the genie is out of the bottle, etc, etc | ||
Alias_ | except on rgs's OS | 15:22 | |
Boy people are gunna hate that | |||
ingy thinks Alias_ probably isn't as scared as he should be | |||
rgs fixed it though | |||
Alias_ | before a production release? | ||
rgs | ingy++ # bottles, geniuses, etc | ||
Alias_ | If so, then I'm totally not concerned | 15:23 | |
I thought the problem was there's a hundred thousand boxes out there in the wild all this .pmc stuff will break on | |||
ingy | what /me really wants is a culture more like Python where people actually use the latest stuff | 15:24 | |
15:24
mako132_ joined
|
|||
Alias_ | If not lets go, and add .pmc caching support to every source filter out there | 15:24 | |
ingy | and where stupid architectures are not supported | ||
rgs | yes but python-like culture also means let's blow out backwards compatibility | 15:25 | |
ingy | rgs: now your talkin'! | ||
Alias_ | ingy: You honestly think anything you've written in the last 2 years would be accepted under Python? :) | ||
Jemplate aside | |||
ingy | haha | ||
integral | ingy: perl is just as much about people using it to write *REAL* scripts to run stuff hidden in dark cupboards, as about people like you writing all this "web" crap | ||
ingy | Alias_: how am I supposed to take that? | ||
Alias_ | ingy: In a "be careful what you wish for" way :) | 15:26 | |
ingy | Alias_: are you saying I don't write useful stuff? | ||
integral: definitely | 15:27 | ||
Alias_ | Not at all. Just that you use do Damian's trick of leveraging unusual things in unusual ways to create useful things | ||
And in a Python situation, I imagine a lot of that would go away | |||
Or they'd drop the feature you used, because it was too useful | |||
:) | |||
ingy | but if people want to use VMS, let them use 1995 technology | 15:28 | |
lumi | (gaal,bsb)Ā».ping | ||
Alias_ | Well, I'm not sure what VMS for Itanium is doing atm, but it seems like it's moving forwards | ||
integral | please let the 1995 technology work on the 2005 technology. It does save many headaches. | ||
ingy | integral: at the cost of way more headaches | 15:29 | |
Alias_ | ingy: Yep | ||
bsb | yeah lumi? | ||
Alias_ | Write new things how you want, just don't break working old things | ||
lumi | I suggest dinner | ||
ingy | Alias_: completely | ||
That's why I want to start targetting only 5.8.3+ for new things | 15:30 | ||
and I think Perl6 could do that too | |||
bsb | sounds good, will let you know | ||
lumi | k | ||
Alias_ | Which is fine, just please don't make it a dependency of Bundle::CPAN | ||
lumi | I have arrival overhead, so let me know soonish | 15:31 | |
ingy | and nobody should try to make Perl 6 run on Plan 9 | ||
Alias_ | heh | ||
integral | yeah, the porters for that should fork it if they want to use perl. | ||
lumi | No p6 for p9? | ||
Alias_ | I don't think people mind so much, as long as platform compatibility and version deps don't go backwards | 15:32 | |
puetzk is away: work | |||
Alias_ | But I'm willing to claim that's our fault for not testing enough | 15:33 | |
And I'll fix that hopefully soon | |||
ingy | Alias++ | 15:34 | |
why are you Alias_ ? | |||
Alias_ | Because apparently being a common word means it's hard to get the short one | 15:35 | |
rgs | the Alias alias is already taken. | ||
Alias_ | I get to keep ali.as/ so I'm willing to be graceful about the rest :) | ||
ingy | Alias_: are you working with Andy or anyone else on PITA? | ||
Alias_ | ingy: Not Andy, although I'm trying to get some stuff into Test::Harness | 15:36 | |
ingy: There's a dozen people in #pita on magnet | |||
ingy | cool | ||
Alias_ | We're kind of blocking atm though | ||
Waiting on Canyonman for a qemu test image, and me for XML changes | |||
ingy | sounds like a project that must be done pugs style | ||
Alias_ | ingy: dunno... I'm keeping the core to myself, because I want to make sure it's very rigourously tested from the ground up | 15:37 | |
Each emulator is a driver plugin | |||
Each testing scheme (perl, python, java) is a plugin, and will have maintainers | |||
Once we get past "run a testing cycle" work will spread out a lot more and we can go more pugsish | 15:38 | ||
ingy | I think it's better to just open it up | ||
Alias_ | management, statistics, bittorrent, web apps, etc | ||
Well, the respository is open | 15:39 | ||
ingy | control the process with good design docs | ||
Alias_ | design docs? :) | ||
Nobody has any idea how to do this yet, we're feeling our way as we go to some degree | |||
And we already have one semi-anarchistic testing system that doesn't pass all it's own tests all the tie | 15:40 | ||
time | |||
:) | |||
PITA is more akin to Catalyst | |||
ingy | Catalyst should also be done pugs style | ||
ingy thinks pugs style should be analyzed and replicated | 15:41 | ||
Alias_ | Oh, and we are! | ||
Alias_ has changed quite a few things already | |||
commit bits are liberal, svn checkouts are easy, accounts are based on emails | 15:42 | ||
People are herded to a common IRC channel :) | |||
ingy | someone needs to start a PugsStyle HOWTO | ||
rgs | an -Ofun HOWTO ? that exists | ||
ingy | Alias_: what project are you talking about? | ||
Alias_ | PITA | ||
ingy | I mean enmasse | ||
rgs: url? | 15:43 | ||
Alias_ | ingy: Just different styles I guess | ||
ingy | I'm trying to use -Ofun at work for instance | ||
Alias_ | ingy: pugs doesn't have to worry about people dying if it encounters a bug | 15:44 | |
ingy: And between experimental code and life-dependant code, there's a lot of room for differing conditions | |||
ingy | Alias_: I'm not saying it's for every project | ||
integral | we don't have to worry about idiots who use svn HEADs for their real systems. | 15:45 | |
rgs | hmm googling for Ofun leads to pages titled "dild ofun" | ||
probably off topic | |||
ingy | ! | ||
:D | |||
15:45
ingy is now known as dild
15:46
eric256 joined
|
|||
dild -Ofun | 15:46 | ||
15:46
rindolf joined,
dild is now known as ingy
|
|||
rindolf | Hi all! | 15:46 | |
audreyt: I got another bug. | |||
ingy | hi rindolf | ||
audreyt isn't around | |||
rindolf | Hi ingy! What's up? | ||
eric256 | hey. are there any examples that use rules yet? | ||
Alias_ | Please report all bugs in the form of a test case. Would you like commit? | ||
ingy | rindolf: write a test! | ||
pasteling | "rindolf" at 88.153.140.201 pasted "A bug in pugs." (17 lines, 150B) at sial.org/pbot/16295 | ||
rindolf | ingy: it is a test. | ||
Alias_ | ... would you like commit? | 15:47 | |
ingy | check it in | ||
rgs | www.oreillynet.com/onlamp/blog/2005/10/ofun.html | ||
rindolf | Alias_: I don't think so. | ||
ingy | Alias_: I think he has commit | ||
15:47
GabrielVieira2 is now known as GabrielVieira
|
|||
rindolf | ingy: I don't have commit access to the pugs repository. | 15:47 | |
eric256 | rgs .....was that just random? | 15:48 | |
rgs | eric256: that was for ingy. | ||
Juerd | Alias_: There are boxes with the rgsOS installed in the wild, but they can, when they run into the problem, simply upgrade, by then. | ||
Alias_ | Juerd: ... if we start releasing P6 modules next week? | 15:49 | |
Juerd | Alias_: So yes, it's a problem, and it'll cause bug reports. But no, it's not the end of the world, and there's an easy prefab answer to be given out to each reporter. | ||
Alias_ | "rgs sucks" | ||
Alias_ runs | |||
oh wait, "GNU/rgs sucks" | |||
Alias_ runs | 15:50 | ||
Juerd | Alias_: People don't start using things in production the minute they're released. | ||
ingy | rindolf: but you want it, right? | ||
Alias_ | Juerd: True, but they'll want to try them out | ||
PerlJam | Juerd: early adopters do. | ||
rindolf | ingy: no. | ||
Alias_ | Juerd: But I guess we can test it inside the Makefile.PL and fail properly | 15:51 | |
ingy | rindolf: why not? | ||
Alias_ | Juerd: Use the N/A result from the makefile | ||
eric256 | then they should pressue rgs to release the upgrade sooner ;) but they wont do that unless there are modules they want to play with ;) | ||
rindolf | ingy: I don't really have anything to commit. | ||
diotalevi | So can you folks tell me why the perl5 .pm can't be rendered during the module's build? | ||
Juerd | PerlJam: Early adopters can upgrade their OS; they're used to that anyway. | ||
diotalevi | So why there'd even be any p6 on a p6-less machine at all? | 15:52 | |
ingy | Alias_: M::C modules work, albeit poorly, without .pmc support | ||
rindolf | PerlJam: hi! I discovered two pugs bug yesterday and today. One of them was already fixed. | ||
s/bug/bugs | |||
diotalevi | Cuz part of the M::C tool is to make a p5-ok .pmc. Why can't that render to a file named .pm and leave *that* installed. | ||
? | |||
eric256 | or couldn't you just put a coderef in @LIB that tells to search for Module_P5 before Module ? | ||
Alias_ | diotalevi: Because if you create it at packaging time, you CAN have P6 on a box without P6 | 15:53 | |
fglock | back | ||
diotalevi | Ok... Alias_, but that's a really small # of boxes. | ||
For now. | |||
Alias_ | What is a really small number | ||
diotalevi | But this is about what M::C does now so it's relevant. | ||
Wait, "P6 w/o P6"? I don't get that. Maybe you meant "P6 w/o P5"? | 15:54 | ||
Alias_ | no, I mean someone with Perl 5 can run PErl 6 modules | ||
Not custom ones certainly, but they can download a Perl 6 module from CPAN, and install it and it will work, without having Perl 6 installed | 15:55 | ||
diotalevi | Alias_, huh? M::C just separates out the P6 from the P5, right? | ||
ingy | or precompiled Inline, Spiffy, Switch Filter::* modules, all without those things installed | ||
eric256 | a quick check shows that all rules tests seem to being skipped...is it to the point where i can use rules just by running pugs? or do i still need some other peice? | ||
Alias_ | I'm amazed Damian didn't make Filter::Simple use .pmc to start with | ||
ingy | Alias_: nod | ||
diotalevi wants this stuff to work w/o amazing gymnastics at *runtime*. Build time is a nice time for that. | 15:56 | ||
ingy | I need to get in touch with Damian asap | ||
Alias_ | ingy: Not to mention it means we can actually debug them now | ||
shock! | |||
ingy | luckily I'll be with him in Tokyo in two weeks | ||
eric256 | diotalevi B:C actualy changes the perl6 portions of the code into perl5 so that they run on a p5 machine | ||
ingy | Alias_: exactly | ||
eric256 | and it does it at build time into a .pmc file | ||
Alias_ | and ships them both | 15:57 | |
ingy | which is important | ||
diotalevi | B::C? Is that just M::C except different somehow? | ||
eric256 | oppp M::C lol sorry | ||
Alias_ | diotalevi: Then later, if you want to CHANGE the P6 file, you install P6 and you can | ||
It works the same way BOTH with P6 installed, and without | |||
eric256 thought Build::Compile....all this building/compiling got me confused but yes its Module::Compile | |||
ingy | wow, I just realized how big a deal M::C will be for Inline::C | 15:58 | |
Alias_ | ingy: Is that safe? with the differing compilers... | ||
ingy: Not to mention platform stuff | |||
ingy | Alias_: of course | ||
Alias_ | oh, wait, at the more limited level | 15:59 | |
of course | |||
Still ++ though | |||
ingy | you still build the C userside | ||
diotalevi | eric256, are you making stuff up? No one ever changes their .pm files in directly in their /usr/local/lib/foo/bar/whatever directories. That's what the module install dir is for. | ||
Alias_ | yeah | ||
ingy | but no Inline runtime required | ||
Alias_ | I'd gone one step further for a second there | ||
ingy | yay!!! | ||
And Spiffy will not source filter anymore, which is a huge weight off my back | 16:00 | ||
Alias_ | well... it will | 16:01 | |
Arathorn | all the filtering's been filtered out :\ | ||
eric256 | hey why did i get singled out. i didn't make this up. lol | ||
Alias_ | ingy: Because then your Mandriva bug hits start to skyrocket | ||
ingy | actually Spiffy will be broken into the 12 useful modules that it is | ||
Alias_: we'll see | |||
Alias_ | ingy: Leave it for a year before you use .pmc techniques in anything really core | 16:02 | |
ingy | I don't have anything really core | ||
Alias_ | YAML | ||
eric256 | the point is that you can build a p6 module and using the same package install it on both p5 and p6 and it will work | ||
ingy | well YAML maybe | ||
Alias_ | (and it's deps, but you knew that) | ||
But the rest should be fine | 16:03 | ||
ingy | it deps? | ||
eric256 | and the p5 people wont even need p6 or to know that it is written in p6 because the module writer can include a .pmc that is the autogenerated p5 version of the p6 module. | ||
diotalevi | eric256, ok. but that's pretty irrelevant when the lib dir is all p5 and that's all that's on the machine. | ||
Alias_ | ingy: Test::Base and Spiffy | ||
ingy | they are bundled | ||
how is that a dep? | |||
eric256 | diotalevi maybe these would be good questions to ask on the perlmonks post because i'm sure that you arn't the only one asking this | ||
Alias_ | Because it did a recurse last week when I was testing Vanilla Perl :/ | ||
diotalevi | So it's a freaking *extra* moving part. | 16:04 | |
Alias_ | I'd need to recheck | ||
ingy | a recurse? | ||
diotalevi | It's like, the bane of programming. | ||
eric256 | whats pretty irrelevant? if you arn't installing p6 modules for use on p5 then no you don't care about .pmc at all | ||
Alias_ | But it's a part that's been moving for a long time already | ||
eric256 | its not extra btw its there already | ||
ingy | eric256: not true | 16:05 | |
Alias_ | diotalevi: It is FAR FAR better than what we have for source filters (which I hate anyway) now | ||
eric256 | true. you do care because it could make filtered modules better/easier/faster | ||
ingy | I'm switching all my modules to .pmc tomorrow | ||
diotalevi retches. | |||
ingy | :) | ||
Alias_ | ingy: Are there any .pmc modules at on CPAN yet? | 16:06 | |
diotalevi | Either I'm completely misunderstanding this or you're insane. Or I am. | ||
Alias_ | at all | ||
PerlJam just read Juerd's post to perlmonks. | |||
eric256 | whats the problem diotalevi? | ||
ingy | Alias_: orz.pm | ||
PerlJam | I've yet to run across *anyone* who uses compiled modules. | ||
Alias_ | diotalevi: At the fully static end, there's Java. At the other, there's what, Lisp? | ||
eric256 | PerlJam i'm pretty sure 90% of people didn't even know about it till that post at PM | ||
Alias_ | diotalevi: Perl is most certainly not down the Java end, and hasn't been for a very long time | ||
PerlJam | eric256: I'd agree (which is sad considering perl always checks for those .pmc files first. Can you imagine all of the needless stat calls? :-) | 16:07 | |
Alias_ | Perl 6, fortunately, will be less insane than Perl 5 | ||
diotalevi | So when you say "precompiled" you really mean some other language that's rendered down to p5 source, right? | ||
Alias_ | yes | ||
not to bytecode | 16:08 | ||
ingy | I can't wait to use source filters in the .pmc | ||
16:09
sahadev joined
|
|||
PerlJam | ingy++ | 16:09 | |
eric256 throws something at ingy | |||
ingy | source filters that write stuff to the .pm file | ||
AI! | |||
eric256 | your going to have a fully mini language that is bootstrapped and compiled into perl . lol | ||
diotalevi would be ok w/ writing to files named .pm, fwiw. | 16:10 | ||
PerlJam | eric256: "a" mini language? I think you're enumeration is a little off :) | ||
ingy | diotalevi: what's the difference? | ||
diotalevi | and thinks it's sane to render the p5 .pm when the user says `make' | ||
It isn't a file named .pmc. I'm pretty sure that this feature should never have existed or when it was noticed, it should have been removed. Or publicisted. | 16:12 | ||
eh. | |||
rindolf | OK, I'll return later and look for audreyt | ||
Alias_ | diotalevi: Well, putting the non-Perl5 in .pm ONLY makes sense when it's EITHER source-filtered P5, or it's P6 code | ||
ingy | diotalevi: so where does the original source go, and where does the mutated source go? | ||
Alias_ | diotalevi: Any other cases you wouldn't have the cached stuff in .pmc | ||
eric256 | dio what if you are writing a pure perl5 module, but want to source filter it...now you can, and then the user never needs your source filter they just run the .pmc? maybe thats not a good use, but it sounds nice to me | ||
Alias_ | A Python to Perl 5 compiler would for example not put the Python into the .pm file | 16:13 | |
ingy | Alias_: or TT2 code | ||
:p | |||
Alias_ | or what have you | ||
diotalevi | The original source would have to go in some file named something other than .pm. Which makes sense because it isn't p5. *shrug* | ||
diotalevi is having to leave out the door tho. :-/ | 16:14 | ||
eric256 | lol. ...sure hit the bee hive with a stick and then run!!!! lol | ||
diotalevi | It took this long for people to notice, I guess. Then I ran out of time. :-( | ||
ingy | eric256: not a bit stick though | 16:15 | |
big | |||
diotalevi will come to love this. But it's violently abhorent for now. | |||
ingy | diotalevi++ | ||
it's Perl! | |||
Perl++ | 16:16 | ||
-Ofun | |||
eric256 | lol. okay so back to rules...do i still need PGE to run rules? | ||
diotalevi still thinks most of what he's seen happen on #perl6 are pretty unfun. Like sucking the fun out of it. Oh well. | |||
So PAUSE may need to know something about these. Other tools too. Stuff that knows only of .pm files. | 16:17 | ||
eric256 | my still thinsks my $sum = [+] @array; is fun. thats like my favorite part | ||
me* | |||
diotalevi had that years ago when he was using Lotus Domino. Feh. | 16:18 | ||
Just cuz perl isn't as cool... ;-) | |||
eric256 | i thought you where leaving!!!! | ||
16:20
putter joined
|
|||
putter | it's getting less plausible to read all of #perl6 :/ | 16:21 | |
audreyt: ping | 16:22 | ||
ah, leo pairing | 16:23 | ||
audreyt | putter: pong | 16:24 | |
audreyt just got the new Emit.PIR sketched | |||
putter | ! :) | ||
audreyt | this time with proper support for everything in object space I thought of | ||
I mean, I can think of | 16:25 | ||
putter | right | ||
neat | |||
audreyt | so definitely a move forward | ||
state variables, KEEP/UNDO/CATCH/PRE/POST, INIT, BEGIN, you name it | |||
audreyt is happy | |||
oh, and let/temp too | |||
eric256 | is there a tutorial on getting pugs to actualy have rules support? or is that still something to wait for? | ||
audreyt | eric256: define "actually have" | 16:26 | |
putter | any thoughts on adding p5 t/op/ tests to rre::override and run them using re::pcre? | ||
:) | |||
16:26
ruoso joined
|
|||
eric256 | err.. i want it to work at all. right now i can't get it to use rules at all | 16:26 | |
perlbot nopaste | |||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "eric256" at 66.102.136.70 pasted "Rules Test" (9 lines, 206B) at sial.org/pbot/16296 | 16:27 | |
audreyt | putter: well, you added them to re-override/t/ | 16:28 | |
putter | tentatively... ;) | ||
audreyt | putter: they probably belong in -PCRE/ | ||
and we'd write a harness to run them | |||
eric256: how quaint | 16:29 | ||
it worksforme | |||
?eval say "hi" if "5" ~~ /\d/; | |||
16:29
evalbot_9482 is now known as evalbot_9497
|
|||
evalbot_9497 | *** Cannot parse PGE: \d *** Error: Cannot find the parrot executable in PATH undef | 16:29 | |
putter would like to make re::mumble the hook development environment. then other folks can hang out in perlguts instead of me. then maybe do re::filter if you havent gotten to it by then. | |||
re harness, that works for re_tests (one regexp test per line, etc). not for the other files (lots of external (??{}) variable dependencies, etc, etc). | 16:31 | ||
really have to have both an engine, and a filter-or-hook around. | 16:32 | ||
re Emit.PIR, look forward to it :) | 16:34 | ||
audreyt | eric256: you'd ned parrot in PATH | ||
putter: can you create a re-override that just runs the p5re engine? | 16:35 | ||
that is the correct set of tests I think. | 16:36 | ||
not -pcre or anything | |||
use re::override-perl5; # this is natively supported | |||
putter | not really a useful test i think. the regexp engine and the rest of perl core are so intimate, | ||
audreyt | by re::override | ||
nono, sorry | |||
spawn $^X. | |||
do it in another process | |||
putter | you can never be sure things are working only because of some backchannel interaction. | 16:37 | |
audreyt | shuffle results back. | ||
fglock | audreyt: is it ok to consider code inside return blocks as perl5? | ||
audreyt | fglock: for now, sure | ||
putter: in Pugs/PGE we spawn a parrot process for that with open2() | |||
putter: I think it's trivial to do with perl5/perl5 | 16:38 | ||
putter | :) i understand the mechanics... i'm saying it's a largely unhelpful test. | ||
audreyt | hrm | 16:39 | |
audreyt thinks about it | 16:40 | ||
putter | and when you get into dealing with (??{}), a non-trivial exercise as well. | ||
fglock | audreyt: I just commited working subrules/return block - the test failure is because the test is wrong, I think - see the Dump() | ||
audreyt | ok. | ||
fglock | audreyt: simple closures won't work yet, because I'm not passing the Match argument | 16:41 | |
eric256 | audreyt i have parrot in the path | 16:42 | |
putter | eg, some parts of core try to rewrite the regexp op codes depending on the context in which they are used. if those op codes are actually real, that works, and you never find out you've ceased to manage to dodge the rewriters attention. | ||
eric256 | welli have a link to it i put in my ~/bin | ||
does it need access to other files in the path or should a link to parrot be enough? | |||
i'm not getting the cannot find error, i'm getting an end of file error. | 16:43 | ||
putter | eg, \G support is only provided when the regexp ask for it. the hook has to support this (doesnt yet). a p5re engine would just ask itself, and everything would work, but the hook isn't doing it. | 16:44 | |
audreyt | eric256: you can run it by hand | ||
cd pugs/src/pge/ | |||
parrot run_pge.pir 1 1 | 16:45 | ||
eric256 | ok | ||
putter | hmm. could do a separate module. Regep::Test? you set up a override/filter and some-engine pair, and run the tests. | 16:46 | |
eric256 | hmm. the parrot directory needs to be in the path not just parrot | ||
putter | If you havent set up an override/filter, its just running the tests on your p5re like usual. | 16:47 | |
16:47
FurnaceBoy joined
|
|||
audreyt | putter: yes, I think that's sane | 16:49 | |
16:49
mj41 joined
|
|||
putter | Hmm. Though that does require an injectable override/filter mechanism... could always tweak the test file source before using it... | 16:49 | |
audreyt | env vars. | ||
putter | yeah | 16:50 | |
audreyt | and/or cmdline; but env vars perhaps easier | ||
fglock | audreyt: I think it is ready for releasing - if we document what's working and what's not | ||
audreyt | fglock: ok, I'm finishing up a mail to p6i about chip's silent deprecation of a certain feature | ||
I'll finish in 5mins | |||
then I'll go back to releng | 16:51 | ||
fglock | (what's a releng?) | ||
putter | release engineer4ing | 16:52 | |
Anyone around who thinks that perlapi Inline::C hacking sounds like fun? | 16:55 | ||
eric256 plays with named rules and the resulting hash object and falls in love | 16:56 | ||
audreyt | eric256: are you playing with perl5/P::C::R or pugs/PGE? :) | 16:57 | |
arguile | putter: Yes, those same people also like BDSM and piercing things that shouldn't ever be pierced | ||
putter | I've a separable task - figuring out, and writing tests for, a lexically-scoped hook mechanism. Ie, {my $flag=3; inline_c_sub() } inline_c_sub() should do the right thing. | ||
ingy | putter: I need to rewrite Inline! | 16:58 | |
putter | Also obey package distinctions, etc. | ||
:) | |||
audreyt | rgs: is mjd's lex stuff blead now? | ||
rgs | no. /me lags | ||
audreyt | putter: MJD did exactly that | ||
ingy | lexellent | ||
16:58
DesreveR is now known as r0nny
|
|||
audreyt | it's on the 5.10 roadmap | 16:58 | |
rgs | you have the right to crucify me for not merging it yet | ||
audreyt | allows pure-perl subs that does what you stated | 16:59 | |
not sure if it can be made into a CPAN module | |||
ingy | audreyt: nice obfu patch btw ;) | ||
putter | as long as it doesnt patch core, I could use it... | ||
eric256 now wonders if an emmiter could be made to regenerate the matched string from the object. hmmm ;) | 17:00 | ||
putter | rgs: is it something I could look at somewhere? | ||
ingy | audreyt: I'm excited to rework Inline now, such that people can write modules without needing the Inline runtime! | 17:01 | |
Inline::C will finally realize it's potential | |||
putter | eric256: aren't they nifty :) # re named rules and match objects | ||
audreyt | ingy: that's exactly what swig 1.3.24 did :) | ||
(and I've been a loyal swig user ever since) | 17:02 | ||
(well, then I rewrite them into .xs, but it's a handy first cut) | |||
fglock | audreyt: 100% pass - committing | ||
audreyt | handier, I have to say, than Inline::C :) | ||
ingy | handier for you | ||
audreyt | because it creates struct wrappers | 17:03 | |
audreyt ponders Inline::C::SWig | |||
or just Inline::SWIG | |||
17:03
rindolf joined
|
|||
ingy | :) | 17:03 | |
rindolf | Hi all! | ||
audreyt: here? | |||
putter | can do the same thing with Inline::C's .xs files, no? or you like the swig codegen better. | ||
audreyt | www.vendian.org/mncharity/dir3/inline/swig/ | ||
putter: swig codegen creates objects | |||
ingy | rindolf: want commit access yet? | ||
putter | www.vendian.org/mncharity/dir3/inline/swig/ | 17:04 | |
audreyt | rindolf: hi. yes, that's a bug. workaround is to use "sub f (@x is copy)". | ||
putter | ;) | ||
rindolf | ingy: I cannot do anything with it. | ||
audreyt | rindolf: please commit a t/pugsbug/ with it | ||
ingy | ? | ||
rindolf | s/anything/anything good/ | ||
audreyt | iglu .org.il? | ||
rindolf | sial.org/pbot/16295 for those who want to catch up. | ||
audreyt: iglu.org.il? WDYM? | 17:05 | ||
ingy | audreyt: you need a pastebot with checkin access ;) | ||
audreyt | rindolf: is your email address shlomif at iglu.org.il? | ||
rindolf | audreyt: yes. | ||
audreyt | rindolf: ok, a commit bit should be in your inbox soon | ||
rindolf | audreyt: OK. | 17:06 | |
putter | hmm. what does it say about perl culture that when a module gets installed, it leaves its tests behind, rather than they're being installed too? | 17:07 | |
integral | perl at least installs its tests | 17:08 | |
ingy | audreyt: with Inline being totally author side, I could just bundle in the swig codegen bits, no? | ||
audreyt | integral: perl5? | ||
integral | err, yes, perl5 | ||
17:08
Daveman joined
|
|||
audreyt | mm where? | 17:08 | |
integral | perlivp | ||
putter goes to look... | 17:09 | ||
eric256 | i keep getting this "end of file" PGE error, well not keey, with some rules its okay, others it dies on. | ||
rgs | perlivp is just a tool to verify the installation worked | ||
audreyt | oh wow. | ||
rgs | the *real* tests aren't installed | ||
and I don't think they would run with an installed perl anyway | |||
integral | oh :-( but at least it's got some form of test for later | ||
audreyt | eric256: which parrot? | ||
eric256: can you retry trunk? | |||
eric256: or build parrot with parrot_is_shared=0? | |||
a lot of pge tests stopped working for me -- I've pointed them to leo | 17:10 | ||
and tge also segfaults | |||
but only if I build shared parrot | |||
putter | oh. oh well. | ||
fglock | audreyt: is it ok to install a ::Rule class? | ||
eric256 | i'm on feather so i'm not sure of the exact settings | ||
audreyt | fglock: yes. | 17:11 | |
eric256 | now even rules that were working a minute ago are broke so i must have done something | ||
putter | rgs: re lexical hook, could I see the code? I only need an xs func to look for the test. so I'm hoping it can show me a workable mechanism without my having to fish around any more. | 17:12 | |
eric256 | okay if i am in the directory containing run_pge.pir it works.....that doesn't make any since...does it? | ||
rgs | putter: I'd need to rediff the patch to get it integrable to blead | 17:13 | |
putter | I'm just interested in reading it... | ||
audreyt | rgs: my cache at autrijus.org crashed with the disk, so I'm interested as well | ||
putter | ie, my current stab at looking for a hook lexically, is eval_pv("$foo"), | ||
rgs | where did I put it | ||
TimToady | audreyt: inheritance does not confer trust. But even with trust, the trusted class does not see $x (a lexical variable), but is allowed to call $other!A::x as a private method with explicit typing. ($other could also presumably be typed.) | 17:14 | |
putter | but I'm getting some effects which, unless I'm confused, which is entirely possible/likely, it isnt quite doing the right thing wrt packages. | ||
TimToady | You have to say "has $.x" to get a public accessor. | ||
(or write your own) | |||
audreyt | TimToady: so, subclasses are not priviledged in any way | 17:15 | |
TimToady | and derived classes count as part of the general public. | ||
correct. | |||
audreyt | and trusts work from the truster's end | ||
so you can't declare yourself a trustee without "is also"ing | |||
TimToady | right. | ||
audreyt | so "class variables visible only to subclasses" is basically a nonconcept in perl6 :) | 17:16 | |
TimToady | And PBPv6 probably outlaws "is also". :) | ||
audreyt | well, I know pugs -O will outlaw it :) | ||
TimToady | Yes. | ||
audreyt | though inside the same compilation unit is probably just fine. | 17:17 | |
but not cross-. | |||
TimToady | except that if -O is not top-level application compilation, it's really violating the spirit of "anyone can request the class to stay open/non-final" | ||
audreyt | oh, it's toplevel application compilation. if it's just compling a module, it'd be saved with .pmo or something | ||
rindolf | audreyt: what should I do if I already have a login? | 17:18 | |
TimToady | and you probably better save both open and closed versions... | ||
audreyt | rindolf: you should put the test into t/pugsbugs/some_name.t | ||
rindolf: and if you are on unix, try | |||
sh util/add-text-file.sh t/pugsbugs/some_name.t | |||
then | |||
rindolf | audreyt: I already have a login there. | ||
audreyt | svn ci | ||
rindolf | audreyt: it's shlomif. | ||
audreyt | (or "svk ci") | ||
this is in your checked out pugs | 17:19 | ||
and then it'll ask for your username/password | |||
that's all | |||
welcome aboard! | |||
TimToady: right. .pmo is optimized, .pmc is not | |||
(blatant python ripoff) | |||
17:19
elmex joined,
Southen joined
|
|||
ingy | python++ | 17:19 | |
did I just say that? | 17:20 | ||
audreyt | well, I heard it | ||
ingy | in fact... reptiles++ | ||
rindolf | audreyt: can you make shlomif a commiter on pugs in openfoundry? | ||
audreyt | rindolf: it's already so | ||
rindolf | audreyt: I logged in with my existing credentials. | ||
TimToady | well, I didn't know it, so we can count it as independent invention. :) | ||
rindolf | audreyt: I see. | ||
Arathorn | not being able to inherit class variacbles is going to confuse ruby/java refugees, methinks | 17:21 | |
does $other!A::x cast $other to type A, and then call its private method x? | |||
TimToady | comedytroups++ too. | ||
rindolf | audreyt: I only see Module::Install in my projects there. | ||
audreyt | rindolf: refresh and you'd see otherwise | ||
TimToady | Heritable class variables are declared $.foo and accessed as $.foo. | 17:22 | |
audreyt | but then, the world sees them too. | ||
TimToady | It's just going through accessors to keep the semantics sane. | ||
rindolf | audreyt: ok, now I see it. | ||
audreyt | fglock: I think I want some sugar | ||
fglock: I'll sprinkle some sugar. a sec | 17:23 | ||
Arathorn | why is 'protected' considered harmful, out of interest? (to rephrase the question) | ||
fglock | audreyt: see t/04-rule.t | ||
TimToady | violation of encapsulation--unwarranted knowledge of the parent classes implementation. | ||
audreyt | fglock: heh. ok | ||
TimToady | *class's | 17:24 | |
eric256 | i don't suppose there is a tidier version of .perl for match result objects? | ||
TimToady | It prevents your parent class from choosing a different implementation. | ||
audreyt | fglock: rule2 sounds dangerous | ||
fglock: I'll move them to P:C::R for now | 17:25 | ||
that is after all the dist name | |||
TimToady | Even Bjarne dislikes "protected" these days. | ||
Arathorn wraps his mind around that, trying to ignore all the times he's specialised a parent class in java by sticking in more class fields | |||
fglock waits to svn up | |||
17:26
rantanplan_ joined
|
|||
TimToady | A class field would be off in some other object, really. | 17:26 | |
fglock | audreyt: is this reasonable? '*xxx = ::Rule->new( '...' )->code;' | 17:27 | |
Arathorn | TimToady: fair enough - thanks for the clarification :) | 17:28 | |
putter | eric256: there is a p5 Match describe() in Common/Match you might p6-ize. | ||
TimToady | np | ||
audreyt | fglock: a sec... | ||
rindolf | audreyt: what is the read/write URL? | 17:30 | |
ruoso wonders how long "precompiling p6prelude.p6" should take... | |||
rindolf | I mean of the SVN repository | ||
audreyt | fglock: test doesn't pass | ||
rindolf: same url | |||
fglock | audreyt: which tests? | ||
audreyt | fglock: 04 | ||
I've committed as saner error msg | |||
r9508 | 17:31 | ||
fglock | audreyt: I just created ::Rule - it is not ready yet :) | ||
17:31
svnbot6 joined,
Daveman left
|
|||
eric256 | putty i'll ook into that | 17:31 | |
audreyt | fglock: oh ok... well, I'm thinking that P::C::R should be what ::R does | ||
fglock: Pugs::Compiler::Rule->compile(...) | |||
is a more descriptive api | 17:32 | ||
and it doens't restrict ourself of the constructor api | |||
unlike Rule->new | |||
so maybe saner | |||
eric256 | putter....sorry about that.. dunno where that came from | ||
putter | :) | ||
eric256 | do i need to put src/pge in the path because i can only use rules if i start pugs in that directory | 17:33 | |
fglock | audreyt: ok - I'm moving ::Rule to Pugs::Compiler::Rule | ||
eric256 | lol | ||
audreyt | fglock: svn up first | 17:34 | |
fglock | audreyt: oh, you already did it | ||
audreyt | fglock: I did it already, so you may want to merge | ||
eric256: weird... noit should be able to find it | |||
rindolf | audreyt: commited - revision 9509 | 17:35 | |
pasteling | "putter" at 66.30.119.55 pasted "eric256: slightly updated Match describe()" (35 lines, 1.1K) at sial.org/pbot/16299 | ||
svnbot6 | r9509 | shlomif++ | Added the shift-from-function-array-arg.t function. | ||
audreyt | rindolf++ | 17:36 | |
rindolf | audreyt: thanks. | ||
Juerd | Uh oh | 17:38 | |
ingy lives in a country where nothing ever dries | |||
Juerd | But... if rindolf contributes, we have to care for his opinion :( | ||
Oh well | |||
rindolf: Welcome | |||
ingy | audreyt: M::C is a *Shrewd Axe* | 17:39 | |
Arathorn | lol | ||
audreyt | ingy: we still need to have the M::I magick | 17:40 | |
ingy wanders off to work on the Shrewdness | |||
audreyt | ingy: the we need to -c on each .pm files that needs to be pmc'ed | ||
ingy | audreyt: oh yeah. ok. I'll work on that | ||
audreyt | ingy: cool. look at pugs/perl5/Pugs-Compiler-Rule/Makefile.PL | ||
ingy | where does the source live again? | ||
audreyt | basically, -c/utime on Makefile.PL run | ||
and again on config :: | 17:41 | ||
the src is svn.openfoundry.org/modinstall/trun...e-Install/ | |||
17:41
ghenry joined,
jjore joined
|
|||
jjore | So I'm reading Module::Compile and I'm confused. When do I do `use Module::Compile -base' and when don't I? It's not documented in pod or comments. | 17:43 | |
audreyt | jjore: you do that when you are writing a module compiler | ||
you don't... if you are not. | |||
jjore | pmc_set_base has $class eq __PACKAGE__ sometimes but not other times. | ||
fglock | audreyt: all ok | 17:44 | |
jjore | Drat! Bad timing again. | ||
svnbot6 | r9510 | fglock++ | Pugs-Compiler-Rule - t/04 ok | ||
jjore | Lunch for me now. | ||
Grrr. | |||
ingy | god i hate svk | ||
jjore | I was actually confused about when to pass in the -base parameter. | ||
fglock | audreyt: I added usage examples to Pugs::Compiler::Rule - please check | 17:45 | |
putter | drats, svnbot was dead, so... | ||
misc/pX/Common/Regexp-Test-Perl5Tests - created. Intended as a runtime, rather than install time, test of regexps. Perl5 .t files included (currently dropped in t/), but not wired up. Volunteers encouraged. | 17:46 | ||
please note the "Volunteers encouraged." part :) | 17:47 | ||
audreyt | fglock: it doesn't pass for me | ||
Juerd | pugs.blogs.com/pugs/2006/03/gpw_recap.html # lame anonymous comments that support myths/FUD | 17:48 | |
svnbot6 | r9511 | fglock++ | Pugs-Compiler-Rule - 'code' method | ||
fglock | audreyt: fixing the 'code' test (4th) - the other ones pass? | ||
putter | Juerd: btw, thanks for your PMC post of yesterday. | ||
audreyt | yup | ||
Juerd | putter: You're welcome | ||
audreyt | also a 'once' warning on test::rule | ||
Juerd | putter: I did it mostly because people wouldn't stop asking me questions ;) | 17:49 | |
putter | :) | ||
ingy | wtf is: HTTP Path Not Found: REPORT request failed on '/modinstall/!svn/bc/1/trunk/Module-Install': '/modinstall/!svn/bc/1/trunk/Module-Install' path not found | 17:50 | |
clkao: why does this thing always break down? | |||
osfameron | ingy++ # complaint driven complaining! | 17:51 | |
clkao | ingy: huh? what are you doing? | ||
ingy | using svk | ||
putter contemplates updating re::override .c, and adding mondo TODO section to pod. | |||
ingy | svk copy svn.openfoundry.org/modinstall/trun...le-Install Module-Install | ||
clkao | you are doing a HEAD only mirror | ||
ingy | yes | 17:52 | |
Juerd | pugs.blogs.com/pugs/2006/03/gpw_recap.html # I think it would be helpful if more people replied to the anonymous poster | ||
clkao | ingy: change svn::Mirror::ra | ||
if ($SVN::Core::VERSION ge '1.2.0' && $self->{rsource} !~ m/^svn/) { | |||
$ra->get_log ([''], -1, 1, 1, 0, 1, | |||
changes the first 1 in get_log to -1 and you are done | |||
blame fscking svn api incompatibility | |||
svnbot6 | r9512 | fglock++ | Pugs-Compiler-Rule - | 17:53 | |
r9512 | fglock++ | *test::rule = Pugs::Compiler::Rule->compile( '((.).)(.)' )->code; | |||
fglock | audreyt: re last failure - I added the test before implementing the feature - all set now | 17:54 | |
eric256 tries to p6 ify that match describe and his head hurts...i think this is a rewrite job not a conversion lol. | |||
svnbot6 | r9513 | fglock++ | Pugs-Compiler-Rule - more tests | 17:57 | |
putter | Is perl5/Pugs-Compiler-Rule/lib/Pugs/Compiler/Rule.pm the main pod? maybe some examples of $match use? (pause) putter goes to svn up | ||
Arathorn | Juerd: seems to me like you've responded with everything that can be said to the anonymous poster | ||
Juerd | It's important that they (and lurkers) see opposite things from more than just me. | ||
fglock | putter: yes please! see t/04-rule.t | 17:58 | |
Arathorn | even if that's just a "uhm, yeah - what juerd said" post? | ||
Juerd | Yep | ||
Though make it sound a bit more intelligent ;) | |||
Arathorn | did his talk have any other provably outdated/bogus statements other than the "0 lines of perl 6" bait? | 17:59 | |
'cos that'd at least be additional content to add to the comments | 18:00 | ||
audreyt | Juerd: replied | ||
ingy | clkao++ | ||
clkao | ingy: did the trick? i will release a new svn::Mirror::ra | 18:01 | |
ingy | yes, seems to | ||
Juerd | audreyt: Thanks | ||
Arathorn: Yes, several | |||
Arathorn goes read the logs | 18:02 | ||
Arathorn tries to pull something out of colabti.de/irclogger/irclogger_log/...l=191#l333 | 18:04 | ||
svnbot6 | r9514 | putter++ | Pugs/Compiler/Rule.pm - added 04-rule.t example to the pod. | ||
eric256 | $result.<config> works but $_ ='config'; $result.<$_> doesn't... am i missing some special hash access rule? | 18:05 | |
audreyt | Juerd: see, I read the real point instantly :) | 18:06 | |
eric256 | $result.<'config'> failes too | ||
audreyt | (the new comment, no doubt composed before seeing mine) | ||
Juerd: and please hold off reply for a few minutes to get the other side a chance to read my comment | 18:07 | ||
fglock | audreyt, putter: the places to document are Compile::Rule and Runtime::Match, or let's keep the docs in a single place (::Rule)? | ||
audreyt | so that the anonymous commenter's testosterone/adrenaline level can be kept at bay | ||
fglock: I think P::C::R, with a SEE ALSO to P::R::M, and P::R::M itself, is good | |||
svnbot6 | r9515 | putter++ | 04-rule.t, Pugs/Compiler/Rule.pm - added boolean test and pod example. | 18:10 | |
Arathorn | it's rather hard to objectively chip in without having heard the original talk | ||
Juerd | audreyt: Oh, sorry. I read your IRC stuff after I replied. | 18:11 | |
audreyt | Juerd: would you have held back if you read my request first? :) | ||
(and if so, can I delete your last comment?) | |||
Juerd | audreyt: Yes and yes. | ||
Arathorn | sounds like he was playing the '0 lines of perl6 the final distributable /usr/bin/perl implementation' card | 18:12 | |
Juerd | But I will re-post it later | ||
audreyt | Juerd: that's fine | ||
Arathorn | audreyt: if you want to nix mine (given it hardly adds any content), please go ahead too | ||
audreyt | Arathorn: wow. thank you :) | 18:13 | |
deleted both. | |||
svnbot6 | r9516 | fglock++ | Match.pm - moved pod to end of file | ||
audreyt | (I just sent this to Marc: nopaste.snit.ch/6716) | ||
Juerd | I think, by the way, that the anonymous poster on audreyt's blog is lurking here. | ||
18:14
rantanplan_ joined
|
|||
audreyt | Juerd: interesting! why? | 18:14 | |
Juerd | Though I wouldn't know what I'm basing that on | ||
It's a gut feeling | |||
audreyt | well, people can lurk at irc.pugscode.org/ :) | ||
FurnaceBoy says it's not him. I'm only here for the ASCII art boobies in commit messages. | |||
audreyt | e.g. TimToady certainly did :) | ||
Juerd | It'd be very stupid actually to argue with us without reading along :) | ||
Arathorn | the rapidness & nature of the response suggest that to me too, fwiw | 18:15 | |
Arathorn shrugs | |||
putter | does PRC have an implicit ^ ? | ||
audreyt | Juerd: it's heavily anonymized; the REMOTE_ADDR lists 127.0.0.1 | ||
putter | I get a match fail of "b" against "xby". | ||
Juerd | audreyt: Interesting! | ||
putter | ah, with compile rule. | 18:16 | |
fglock | putter: yes - it only implements :p | ||
svnbot6 | r9517 | fglock++ | Pugs-Compiler-Rule - little Match pod | ||
Juerd | audreyt: In fact, that's weird :) | ||
putter | that should be mentioned... someplace | ||
Juerd | Still, though, the confusion between anonimity and privacy is my biggest pet peeve, I think. | 18:17 | |
Arathorn | presumably the client didn't connect from 127.0.0.1 as well ;) | ||
fglock | putter: see README - where should this info go? | ||
Juerd | They're not the same thing, and in many respects, they are opposite. | ||
fglock | putter: more info in TODO also | ||
Juerd | I just don't get it why people insist that anonimity would warrant privacy (or worse: the other way around). | ||
Arathorn may be missing the point here (for a change), but juerd's post's still there | 18:18 | ||
audreyt | Arathorn: juerd posted two posts; I deleted the second. | 18:19 | |
Arathorn | ah, i never caught that | ||
fair enough | |||
Juerd | I thought both would be removed, actually :) | 18:20 | |
Though this may be better | |||
svnbot6 | r9518 | putter++ | 03-match.t - added match-failed test. Uses use_ok('Pugs::Compiler::Rule');, which might not be what was intended for this test file. | ||
18:20
hexmode joined
|
|||
Arathorn | i wonder if there should be an amnesty of 24 hours or so on publishing irc logs | 18:21 | |
to stop people from lurking in realtime for the sake of anonymity | |||
svnbot6 | r9519 | fglock++ | Pugs-Compiler-Rule/README - info about (un)implemented switches | ||
Arathorn | (or privacy, whichever ;) | ||
fglock | putter++ - pair programming | 18:22 | |
audreyt | trio actually, as I implemented the xby thing | ||
committing | |||
ingy | audreyt: 'use Inline::Module Foo;' | ||
fglock | audreyt++ too | ||
18:22
rindolf joined
|
|||
rindolf | Hi all! | 18:22 | |
Juerd | fglock: Are you gobbying. If so, can I watch? | 18:23 | |
rindolf | In Perl 6, what's the best way to pass two arrays to a function? | ||
eric256 | sub test (@a1,@a2) { ... }; | ||
Juerd | rindolf: Just doing it suffices. | ||
fglock | Juerd: I'm using this powerful editor - nano | ||
Juerd | fglock: Oh, heh :) | ||
audreyt | fglock: see if r9520 is sane | 18:24 | |
ingy: ooooh | |||
rindolf | Juerd: and how do I write it in a call? | ||
test([5,4,3],[1,2,3])? | |||
PerlJam | eric256: but is that the *best* way? :-) | ||
rindolf: that'll work. | |||
ingy | audreyt: give me 15 minutes :p | ||
Juerd | rindolf: Oh, by just doing it. | 18:25 | |
svnbot6 | r9520 | audreyt++ | * P::C::R->match now tries to match at all positions, not just the beginning anchor | ||
eric256 | err { in a string causes it to go wacky? thast not very nice | ||
ruoso | fglock, with some changes, I wrote a simplified compiler that emits the same results... I'll paste the needed changes... | ||
perlbot, paste? | |||
perlbot | Paste your code and #perl will be able to view it: sial.org/pbot/perl dragon.cbi.tamucc.edu:8080 erxz.com/pb | 18:26 | |
audreyt | rindolf: if you want to pass in array refs, try this | ||
TimToady | eric256: I don't think anyone ever answered your .<$_> question. Did you figure it out? | ||
audreyt | sub f ($a, $b) { $a[0] + $b[1] }; f([1,2,3], [4,5,6]) | ||
f(@x, @y) will also work. | |||
rindolf | audreyt: the f(@x,@y) does not seem to work. | 18:27 | |
TimToady | eric256: you want .{$_} instead--.<> is really a qw// slice, so $_ is quoted. | ||
audreyt | rindolf: it did not, because currently in Pugs, refernces to arrays are not array containers themselves | 18:28 | |
pasteling | "rindolf" at 88.153.140.201 pasted "My code" (7 lines, 109B) at sial.org/pbot/16301 | ||
eric256 | thanks TimToady i got that. somereason i though <> replaced {} | ||
rindolf | audreyt: I see. | ||
audreyt | sub f (@a) { @a[0] } f([4,5,6]) | ||
fglock | audreyt: re r9520 - not optimized, but works - we can add the :p switch now | ||
audreyt | TimToady: should this return 4? | ||
ruoso | fglock - sial.org/pbot/16300 - Proposed changes needed to a simplified compiler... | ||
fglock | ruoso: looking | ||
svnbot6 | r9521 | putter++ | README, Rule.pm - See also each other. Rule.pm - add note re implicit ^. | ||
r9520 | audreyt++ | * P::C::R->match now tries to match at all positions, not just the beginning anchor | |||
TimToady | I believe so. | 18:29 | |
eric256 | $desc ~= "'$_' := { " ~ match_describe($o.{$_}) ~ "}\n"; | ||
putter | lol | ||
audreyt | good, me too. | ||
eric256 | havign that return "~ match_describ" as a string realy realy confused me | ||
Juerd | TimToady: Oh, I wanted to ask: is qw// still available and does <> imply the qw as '' implies q, or is qw itself gone? | ||
Oh, wait, no, I know the answer. | |||
Why am I asking this? | |||
svnbot6 | r9522 | ruoso++ | A simplified compiler | ||
Juerd | I hate my bad memory. | 18:30 | |
Nevermind :( | |||
audreyt | rindolf: please commit it as another pugsbugs test. currently, non-scalar function parameters doesn't obey the correct binding-refs-to-containers semantics | ||
rindolf: (I remember that JavaScript runtime got that right, though.) | |||
rindolf | audreyt: OK. | ||
ruoso | fglock, lrep.pl is the simplified compiler I'm talking about | ||
fglock | ruoso: if it passes the simple tests, you can commit :) | 18:31 | |
audreyt | fglock: ok. so now the only thing lacking from p6 api is ->from and ->to | ||
TimToady | eric256: yes, the interpolation of {...} is a major change, but one that we felt was well motivated and consistent, and we think people will get used to it very quicly. | ||
audreyt | fglock: ->from is simply the $i in the match anchor | ||
fglock: ->to is simply length of _str + from | |||
fglock: right? | 18:32 | ||
ruoso | fglock, ok... Just to notice that it will break the current p6compiler.pl in favour of the new lrep.pl | ||
fglock | audreyt: yes | ||
Juerd | TimToady: It's not actually interpolation, right, but instead {} being a closure. Or did I misremember? | ||
audreyt | fglock: can you hack it in? I'll write the tests | ||
xerox | Hollash, how's documentation in the p6 world nowadays? | ||
eric256 | shouldn't { " ~ } cause some sort of error though? | ||
TimToady | it's interpolation of the results of calling the closure. | ||
Juerd | TimToady: I'd call that stringification | 18:33 | |
TimToady | Depends on what follows. | ||
fglock | ruoso: is lrep.pl the same thing? in this case it's better to remove p6compiler (which is currently a bad name to use anyway) | ||
Juerd | eric256: { " ~ } .............. " } | ||
eric256 | ahh i see what happened...it invereted my string / code...but i think there probably should stilll have been an error. i'll have to play with that | ||
yea Juerd i just figured that out. | |||
ruoso | fglock, not exactly the same. It's just a compiler, it does not run the code, just writes the perl5 code to a file | 18:34 | |
TimToady | It's possible we should consider } a metacharacter with a string too, for better error messages. | ||
*within | |||
Juerd | TimToady: I would not like that | ||
18:35
amnesiac joined
|
|||
TimToady | You're in the habit of using unbalanced } in your strings? | 18:35 | |
Juerd | Unless it's a metacharacter that resolves to itself :) | ||
TimToady: Yes | |||
PerlJam | TimToady: when building strings, yes. | ||
fglock | ruoso: if it will break p6compiler.pl, how about moving to a subdir? Common/xxx | ||
TimToady | Certainly it's one of those choice points where, if later on we get a syntax error, we could usefully backtrack and see if interpreting the other way would have parsed, and if so, give a much more meaningful error message. | 18:36 | |
ruoso | fglock, ok | ||
fglock | audreyt: re from/to - I'll start it | ||
svnbot6 | r9523 | audreyt++ | * P::C::R - currently-failing test of ->from and ->to of match objs. | ||
r9523 | audreyt++ | * also un-eval the nonfatal tests. | |||
r9524 | putter++ | Rule.pm pod - removed mention of implicit ^ aka :p. README still mentions it though. | |||
Juerd | TimToady: It may be useful to track the }, agreed, but it'd be bad to disallow it unescaped. | ||
TimToady: Then in practice, it wouldn't be a metacharacter. | |||
rindolf | Does Perl 6 has a set object? | 18:38 | |
Juerd | rindolf: An object that has been set? | ||
putter | xerox: see docs/Perl6/ | ||
:) | |||
PerlJam | rindolf: Sure, they're called junctions! ;-) (That's a joke BTW, in case someone misses it) | ||
rindolf | Juerd: no, a Set, a mathematical set {5,6,"hello"} | ||
Juerd | Junctions are just sets with overloaded evaluation :) | 18:39 | |
svnbot6 | r9525 | shlomif++ | Added a test to check that passing array references to functions accepting | ||
audreyt | rindolf: you can use junctions for sets, usually | ||
svnbot6 | r9525 | shlomif++ | arrays as arguments works. | ||
r9526 | fglock++ | Pugs-Compiler-Rule - added :p workaround to TODO | |||
xerox | Ooh-kay. | ||
audreyt | rindolf: depending on what set operation you want to do -- typically a any-junction (built with 1|2|3) | ||
PerlJam | rindolf: surely you can build your own set object/class? so, I'd say that perl6 has "sets" just as perl5 has them. (see cpan) | 18:40 | |
rindolf | audreyt: I'm trying to convert two arrays to sets, then find the elements that are only in either set, and then put in a sorted array again. | ||
putter | rgs: any luck finding the lexical stuff? | ||
rindolf | PerlJam: I see. | 18:41 | |
PerlJam: but if it's not built-in it would be more trouble than it is worth. | |||
ingy | audreyt: should .pmc support be on by default in M::I or should the Makefile.PL request it? | ||
PerlJam | rindolf: Why do you say that? And what does "built-in" mean to you? | ||
rindolf: are you asking for syntactic support? | |||
eric256 | rindolf why do you care if they are sets or arrays? | ||
audreyt | ingy: if you can figure out a way so it's on by default, why not | 18:42 | |
eric256 finishes a p6 match_desribe and decides it is either broken or i'm very confused....guess that aint finished | |||
rindolf | eric256: they are originally given as arrays. | 18:43 | |
PerlJam | eric256: It sounds to me like he's looking for easy set operations without having to implement (or even know intimately) the guts of making it work. | ||
audreyt | rindolf: | ||
?eval 2~my @x = (3,2,1); my @y = (3,4,5); my @z = one(@x, @y); @z | |||
?eval my @x = (3,2,1); my @y = (3,4,5); my @z = one(@x, @y); @z | |||
18:43
evalbot_9497 is now known as evalbot_9522
|
|||
evalbot_9522 | Error: No such method in class Any: "&my" | 18:43 | |
[(1 ^ 2 ^ 4 ^ 5 ^ 3 ^ 3),] | |||
audreyt tries again | 18:44 | ||
rindolf | audreyt: the arrays are sorted. | ||
audreyt | ?eval my @x = (3,2,1); my @y = (3,4,5); say one(@x, @y); | ||
evalbot_9522 | OUTPUT[one(VInt 1,VInt 2,VInt 4,VInt 5) ] bool::true | 18:45 | |
ingy | audreyt: ok | ||
TimToady | At some point @Larry switched from defining type sets in terms of junctions to just using Set. But still allowing the a|b notation as input to the set constructor. | ||
audreyt | ?eval my @x = (3,2,1); my @y = (3,4,5); @z = one(@x, @y).values; @z | ||
18:45
nothingmuch joined
|
|||
audreyt | rindolf: one(@x,@y).values is the thing you want. | 18:46 | |
TimToady | So when you say my Dog|Cat $mitsy you're not really constructing a junction. | ||
evalbot_9522 | Error: Undeclared variable: "@z" | ||
ingy | hola woobling | ||
audreyt | ?eval my @x = (3,2,1); my @y = (3,4,5); my @z = one(@x, @y).values; @z | ||
nothingmuch | hola dƶt Net | ||
evalbot_9522 | [1, 2, 4, 5] | ||
audreyt | there. :) | ||
nothingmuch does not ponder renaming himself to nothingmuch Ć„t Woobling | |||
PerlJam | TimToady: for some reason I thought that it wasn't a bare | but rather ^| (or something) to denote Setness. | 18:47 | |
audreyt | rindolf: the reason this works is that one(3,2,1,3,4,5) removes all elements that appear more than once | ||
TimToady | we have set ops that look like (X). | ||
rindolf | audreyt: I see. | ||
audreyt | and their unicode variants that are not in latin1? | ||
PerlJam | ah, that's it. | ||
TimToady | yes. | ||
but only sort of semi-officially, since officially we're Latin-1. | 18:48 | ||
audreyt | rindolf: also as a complimentary feature, because junctions are stored as ordered sets internally, you get it sorted with .value | ||
rindolf | audreyt: OK. | ||
audreyt | er, .values | ||
rindolf: but that's not specced and may change. so you can still guard it with .values.sort | |||
TimToady | Basically, I think it's easy for a set to coerce the implicit semantics out of a junctional input. | ||
audreyt | TimToady: except when it's none() | 18:49 | |
TimToady | but maybe only |. | ||
audreyt | well, if you allow infinite sets. | ||
nothingmuch | so 'sort | uniq' is implemented as? | ||
err | |||
no | |||
=) | |||
PerlJam | rindolf: It would be interesting if you could "tag" your array elements with the name of the array they belong to, then use the PDL-ish parts of perl6 to get at the partitions you want :) | ||
nothingmuch | ?eval any(Inf .. 1) | ||
BAM! BAM BAM BAM! | |||
18:49
evalbot_9522 is now known as evalbot_9526
|
|||
evalbot_9526 | *** Language "Perl6" unknown. at <prelude> line 69, column 13-46 | 18:49 | |
audreyt | wow, that's a new one. | ||
gaal | doesn't that mean given broke? | 18:50 | |
(rehi) | |||
nothingmuch | hola gaal | ||
gaal | hola M. at Woobling | ||
TimToady | Inf .. 1 should be a null list in any event. | ||
rindolf | Hi gaal | 18:51 | |
gaal | hello | ||
nothingmuch | ?eval Inf .. 1 | 18:52 | |
do we need to explicitly use reverse? | |||
evalbot_9526 | () | ||
nothingmuch | ?eval reverse 1 .. Inf | 18:53 | |
BAM! BAM BAM BAM! | |||
Arathorn | :/ | ||
Juerd | ?eval 1 + 1 | ||
gaal | ?eval $nothingmuch | 18:54 | |
audreyt | gaal: rehi | ||
gaal | moose | ||
Juerd | It's not using much cpu though | ||
TimToady | nothingmuch: lists never autoreverse in Perl. | ||
nothingmuch | TimToady: i thought that was being Fixed ;-) | ||
audreyt | TimToady: actually, that's a Range object nowadays | 18:55 | |
TimToady | otherwise you get unexpected fencepost errors in $x .. $y | ||
Juerd | TimToady: Ahh! So *that*'s why Perl 6 is still Perl! ;) | ||
audreyt | though it's not listed in the S06 list | ||
and not implemented as such in Pugs runcore | |||
gaal | "they fixed me, all right" | ||
brb | 18:56 | ||
TimToady | I'm sure I've talked about that on multiple occasions... | ||
nothingmuch always kinda wished that ranges would auto reverse, but can never come up with a good reason for why ;-) | |||
audreyt | TimToady: yeah. so you just nod and I'll add it to S06 :) | ||
TimToady: btw... to represent sigs, it can be quite useful to have something like Tuple, but with names attached to it | 18:57 | ||
TimToady | nod, if S06 is the right place. .. is first in S02. | ||
audreyt | TimToady: I can model it as a Tuple of Pair, but then I can't deref it with name | ||
TimToady | my Haskell detector is working... | ||
Juerd | nothingmuch: For that one time per year that you would otherwise write $x > $y ?? $y..$x !! $x..$y | ||
audreyt | TimToady: well, it's really an OrderedHash :) | ||
except it's not a container | 18:58 | ||
(in parrot I added "Mapping" to that effect.) | |||
TimToady | is it just a subset? | ||
Juerd | nothingmuch: i.e. one of those things where Perl chooses to be practical (avoiding mistakes) rather than theoretically perfect (support reversing because it CAN) | ||
audreyt | subset? | ||
(bbiab, dinner) | |||
TimToady | a type? | ||
nothingmuch | Juerd: fairynuff =) | ||
audreyt | in :(Int $x, Int $y), it makes sense to address it both with string indexes | 18:59 | |
"x"/"y" when you are calling it as f(x=>1, y=>2) | |||
or with integer intexes | |||
when you are calling it as f(1,2) | |||
ingy | gaal: elk | ||
gaal | ingy: hirvi! | 19:00 | |
nothingmuch | gaal: as i said earlier, me, audrey, synopses, ingy, and then THE WORLD! | ||
this is a lazy list | |||
nothingmuch .. Inf | |||
and it's slowly being vivified | |||
;-) | 19:01 | ||
gaal | we need a Acme::MetaSyntactic::antlersbot here | ||
oh wait we have one already | |||
TimToady | need to commute to $job...bbiab | ||
nothingmuch | TimToady: beware of trucks with numbers on the side | ||
gaal narrowly misses nothingmuch's reference | 19:02 | ||
TimToady | Don't care about numbers, as long as the .id doesn't match... | ||
fglock | does 'b' has from=0 and to=1 ? | ||
TimToady | & | ||
PerlJam wonders what it is that TimToady does these days that $job can't commute to him. | |||
nothingmuch | c2.com/cgi/wiki?TruckNumber | ||
ingy | good night kidz | 19:03 | |
audreyt | fglock: 'b'? | 19:04 | |
fglock | audreyt: as in 'b' ~~ /b/ | 19:05 | |
audreyt | ?eval 'b' ~~ rx:P5/b/; $/ | ||
jjore | hey ingy, so I was reading your M::C. your package name matching missed ' as a package delimiter. | ||
PerlJam | fglock: think between the characters. | ||
audreyt | fglock: yes. | ||
gaal | I need a catpad | ||
jjore | Also, Makefile.PL/meta.yml didn't mention 5.6 as a prereq. | ||
nothingmuch | ciao ingy | 19:06 | |
PerlJam | fglock: and imagine invisible characters on either end if you have a strict definition of "between" :-) | ||
fglock | audreyt: ok - tried in pugs here - now I can test it :) | ||
gaal | I am copying audrey's method of using the laptop while lying on my back | ||
fglock | PerlJam: ok! | ||
gaal | but the foo is sitting on my tummy | ||
nothingmuch | jjore: you have comit access, right? | ||
gaal | whick makes it hard to see the screen/type | ||
jjore | commit access to M::C on cpan? Of course not. | ||
Steve_p hears the twitching of audreyt's fingers on the commit bit | 19:07 | ||
gaal | there should be $things that hang the laptop over one's head and rest the arms | ||
jjore | That's PAUSE perms. | ||
nothingmuch | no, not on CPAN | 19:08 | |
jjore | s/\S+/Those are/ | ||
nothingmuch | fix it locally | ||
in pugs svn | |||
jjore | M'C is in pugs svn? | ||
nothingmuch | and then someone who has comaint will give you comaint or upload it themselves | ||
yes | |||
last I heard | |||
jjore | I didn't know that. Huh. | ||
19:08
ruz joined
|
|||
nothingmuch | under perl5/Module-Compile | 19:08 | |
jjore flips on screen. 1 sec | 19:09 | ||
19:09
jjore joined
|
|||
gaal | audreyt, ingy: is this a bug? perlmonks.org/index.pl?node_id=536214 | 19:09 | |
ruoso was hit by macro definitions... | |||
svnbot6 | r9527 | fglock++ | Pugs-Compiler-Rule - from/to in the main match (but not in submatches yet) | ||
gaal | (sounds like one to me...) | ||
putter | audreyt: in re::override, one can't perl Makefile.PL without M::I? is that intended? | 19:10 | |
audreyt | gaal: $YAML::Syck::ImplicitTyping = 1 | ||
putter: no, it's prolly broken by lack of prefixing | |||
putter: I'll fix. | |||
nothingmuch | audreyt: jjore needs pause comaint for M::C | 19:11 | |
audreyt | gaal: replied | 19:12 | |
gaal | whee | ||
audreyt | nothingmuch: I'm not even the maint. | ||
nothingmuch | oh | ||
crapx0r | |||
jjore | I don't know that I need comaint. If I patch in the repository then a maint just needs to package it up, etc. | 19:13 | |
nothingmuch | jjore: true | ||
19:13
K joined
|
|||
audreyt | jjore: yup, ingy will do that | 19:14 | |
svnbot6 | r9528 | audreyt++ | * re::override::* - fix makefile.pl so they build in pugs tree. | 19:15 | |
r9527 | fglock++ | Pugs-Compiler-Rule - from/to in the main match (but not in submatches yet) | |||
audreyt | jjore: so please commit away at the repo | ||
putter: rm -rf inc/ in re-override/ and try again? | |||
putter | fglock: re PCR testing, rather than spot checking match characteristics, as existing re engine suites do, it could be worth creating a match_is test which takes a complete match spec and checks that it's, err, matched, in every respect. random idea. perhaps not for right now, but for future... | ||
trying... | |||
audreyt | fglock: are you working on from/to in submatches, or should we just roll this release as-is? | 19:16 | |
putter | worked. thanks audreyt | ||
audreyt | thanks for reporting :) | ||
fglock | audreyt: I'm working on it - but it's hard (submatches, non-achored, etc) - I'm ok with releasing (and maybe document what's not ok yet) | 19:17 | |
putter | rgs: ping? | ||
ruoso | fglock, hmmm... the parser today depends on the emitter for macro expanding. | ||
audreyt | fglock: ok. review the TODO? I'm adding proper PODs now | ||
fglock | audreyt: re non-anchored - does it work if I do '.*?' ~ $match? | ||
19:18
K joined
|
|||
ruoso | fglock, it works because the emitted code is evaluated statement-by-statement | 19:18 | |
audreyt | fglock: sure, why not | ||
fglock | ruoso: yes - the body must be executed | ||
ruoso | fglock, hmm... we need to workaround it to bootstrap a compiler... | ||
fglock | audreyt: this way it makes from/to easier | ||
jjore | So supposedly I have a commit bit. Um... I dunno what my password is. Where do I resolve that? | ||
audreyt | fglock: it involves additional backtracking steps tho | 19:19 | |
nothingmuch | jjore: let me have a look | ||
fglock | ruoso: that's what the 'state' is for :) | ||
audreyt | fglock: but sure, for 0th cut, why not | ||
ruoso | fglock, this way the user can't define new macros | ||
fglock | audreyt: maybe [.:]*? | ||
nothingmuch | jjore: what nick? | ||
audreyt | fglock: yup, that'd work | 19:20 | |
ruoso | fglock, it just can use the ones defined in the state file | ||
nothingmuch | i see neither jjore nor diotalevi | ||
audreyt praises backtracking control | |||
19:20
Southen joined
|
|||
nothingmuch | maybe you never answered the invitation? | 19:20 | |
fglock | audreyt: if ':' were implemented yet ... - it would not be difficult, but too distracting | ||
ruoso | fglock, the rule "macro_decl" should define the rule for the new macro | 19:21 | |
putter | audreyt: re-override-PCRE's Makefile.PL is currently broken. beyond just the syntax error. | ||
fglock | bbiab - I'll commit what I have here... | ||
(nothing new) | |||
rindolf | Man, the pugs errors are currently not very helpful. | ||
I used . instead of ~, and it warned me on the beginning of the for loop (which was OK) | 19:22 | ||
nothingmuch | rindolf: want to start Doc::Diagnosis::Syntax? | ||
see Hierarchy.pod for inspiration | |||
jjore | nothingmuch: use jjore. | ||
jjore can't find his invitation. :-( | 19:23 | ||
nothingmuch | jjore: email? | ||
wait | |||
jjore | [email@hidden.address] | ||
nothingmuch | this is a publicly logged channel | ||
might want to... err | |||
/msg that | |||
PerlJam | Is anyone working on perl6doc? | 19:24 | |
jjore | *shrug* [email@hidden.address] goes there. *That's* public. | ||
nothingmuch | jjore: make sure to check your spam filter, some people have missed their invitations because it's coming from .tw | ||
jjore | It's gmail. It's gmail's filter. | ||
ruoso is thinking how the rule "macro_decl" could define new rules | |||
nothingmuch | jjore: fair enough, I don't really bother with that, it's just that some people do | ||
Juerd | People block all main from .tw? | 19:25 | |
That makes no sense. Spammers live in .pl and .ru, not .tw ;) | |||
I mean: blacklisting countries is bad! ;) | |||
nothingmuch | Juerd: i've been asked by at least two people why they didn't get invitations and told them to see their spam box, and that worked | 19:26 | |
maybe it's bayesean filtering | |||
maybe it's just .tw raising the score | |||
i dunno | |||
Juerd | I don't use a spam box | ||
jjore | Most of my spam is in English. | 19:27 | |
Juerd | If my spamassassin is convinced that it is spam, qpsmtpd nicely bounces the message. | ||
audreyt | I was caught by entire .tw-blocker at least 10 times. | ||
Juerd | audreyt: :| | ||
audreyt: All the more reason to move to .nl one day ;) | |||
nothingmuch | jjore: but is any of your ham in chinese? | 19:29 | |
;-) | |||
nevermind, just something to look out for | |||
Juerd: at what threshold? | |||
Juerd | nothingmuch: 7 | 19:30 | |
nothingmuch has gotten ham at 6.3 or so | |||
my threshold for to the spam box is 6.7 | |||
Juerd | nothingmuch: If it's important, then they can call me. | ||
nothingmuch | my threshold for bounce is 18 or so =) | ||
heh | |||
true =) | |||
suspected spam is marked from 2.4 or so | 19:31 | ||
Juerd | nothingmuch: And if they ignore the bounce, then it probably wasn't important anyway. | ||
nothingmuch | so it gets highlighted an aweful pink in the mutt inbox | ||
Juerd | Oh, I mark from 5 | ||
And bounce from 7 | |||
Works well for me | |||
19:31
larsen joined
|
|||
Juerd | Very few get marked | 19:31 | |
svnbot6 | r9529 | audreyt++ | * re::override::PCRE - fix Makefile.PL by adding M::I::Compiler | ||
r9529 | audreyt++ | to the inc/ mix. | |||
jjore | nothingmuch: so did you resend the invitation or what? | 19:32 | |
fglock | $work & | ||
putter | bye fglock | ||
19:32
Arathorn is now known as Aragone,
fglock left
19:33
dduncan joined
|
|||
ruoso | hhmmm... every p6->p5 file will have to load the compiler prelude... or at least the macros | 19:34 | |
19:35
K joined
|
|||
ruoso thinking better | 19:35 | ||
TimToady | rehi | 19:36 | |
ruoso | actually no... it will need to "use" the file with the macros... sure... it's just because the current version of lrep has some standard macros | ||
svnbot6 | r9530 | audreyt++ | * from/to tests now passes. | 19:37 | |
nothingmuch | jjore: yes i did | 19:38 | |
19:38
K joined,
meppl joined
|
|||
ruoso adding "require p6primitives" to all generated files by lrep... | 19:38 | ||
jjore | Just now? Or earlier? | 19:39 | |
ruoso adding "require p6rule" to all generated files that declares macros.. | 19:41 | ||
svnbot6 | r9531 | audreyt++ | * PCR: change t/03-match.t to use the new constructor form. | ||
nothingmuch | jjore: earlier | ||
when we talked about it | |||
just before mentioning the spam issue | |||
jjore | Does it normally take a long time to send and be delivered? | 19:42 | |
audreyt | nope | ||
nothingmuch | jjore: no, normally it's instantaneous | ||
jjore | :-( | ||
nothingmuch | want to try another account? | ||
jjore | No, not really. I don't check anythign else. | 19:43 | |
nothingmuch | i think you can change the email after you've signed up | ||
jjore | Oh well in *that* case... | ||
nothingmuch | also, you only get mail when someone changes your status | ||
e.g. you become admin | |||
or are invited to another project | |||
jjore sent you a msg with a different address. | 19:44 | ||
nothingmuch | are you IDENTIFY'd with NickServ? | 19:45 | |
jjore | Dunno. | ||
I'm here chatting aren't I? | |||
nothingmuch | yes, but you can't /msg until you IDENTIFY | 19:46 | |
freenode crap | |||
/msg me on another network? | |||
jjore | ok, perlmonks. | ||
nothingmuch | goody | 19:47 | |
jjore | Or... scalar(reverse q<moc.bootkam@erojj>) | ||
spam crawlers won't read that. | 19:48 | ||
nothingmuch | sent | ||
nothingmuch goes to host guests | |||
jjore: if it doesn't work, a ton of others are also admins for pugs | 19:49 | ||
ciao | |||
jjore | That account already exists. however you checked and didn't see 'jjore', you just didn't see it. | 19:50 | |
blargle flargle! except it doesn't exist? | 19:51 | ||
the pw reminder thing says I don't exist. | 19:52 | ||
registration says I do. | |||
Oh well. I just used a different name. | 19:54 | ||
:-( | |||
19:55
jjore is now known as diotalevi_
19:58
mauke joined
|
|||
svnbot6 | r9532 | diotalevi++ | ' is also a package delimiter. | 19:58 | |
20:05
beppu joined
|
|||
svnbot6 | r9533 | putter++ | Move re-override and re-override-PCRE back to perl5/. pX/Common/ seems too flakey and environment for released cpan modules. | 20:07 | |
20:07
szabgab joined
|
|||
audreyt | putter: they are deleted from cpan already, but okay :) | 20:11 | |
20:12
larsen joined,
shachaf joined
20:13
justatheory joined
|
|||
svnbot6 | r9534 | audreyt++ | * Module::Compile - sync to 0.13 | 20:13 | |
r9535 | audreyt++ | * Makefile.PL - disable building of XS modules by default. | 20:16 | ||
audreyt | putter: so, what's the AUTHORS/COPYRIGHT line you mentioned yesterday? | 20:17 | |
I'd need one for Pugs::Compiler::Rule, and I'd also like to fix re::override | |||
=head1 AUTHORS | 20:18 | ||
The Pugs Team E<lt>perl6-compiler@perl.orgE<gt>. | |||
=head1 COPYRIGHT | |||
Copyright 2006 by Flavio Soibelmann Glock and contributors. | |||
how does this look? | |||
(this is P::C::R) | |||
szabgab | I have started to write Perl6 course material, it is really still the first sketch but you might want to take a look | 20:19 | |
www.szabgab.com/perl.html | |||
audreyt | szabgab++ # wow | ||
20:20
Spawn311 joined
|
|||
svnbot6 | r9536 | putter++ | move regexp/p6parser spike into a subdir of Common | 20:20 | |
20:21
Squall` joined
|
|||
Spawn311 | all perl6 n00b here: is perl6 going to have scripts run-thur compiler to get them into bytecode then a have separate runtime to run said bytecode file. | 20:22 | |
audreyt | Spawn311: well, depending on the runtime. | 20:24 | |
if the runtime is perl5, yes, the bytecode is called .pmc | 20:25 | ||
if the runtime is parrot, the bytecode is called .pbc | |||
if the runtime is javascript, the bytecode is .js | |||
etc. | |||
(and if the runtime is the current reference runtime is haskell, the "bytecode" could be .pm.yml (or .pm.yml.gz)) | 20:26 | ||
s/is haskell/in haskell/ | |||
TimToady | Spawn311: or are you asking if you'll be *forced* to use bytecode when you don't want to? | ||
szabgab | audreyt: but I guess there will be also stand alone perl executor | ||
audreyt | Spawn311: but by default, while the main executable may write a bytecode as cache, it always just runs the file. | 20:27 | |
szabgab | sort of what perl5 is now | ||
putter | audreyt: I dropped myself from the AUTHORS section of the pod. That's all. | ||
audreyt | szabgab: the very next line :) | ||
TimToady | what we tell you 3 times is true. | ||
audreyt | putter: I saw your commit... but you also mentioned AUTHORS as "the pugs team" or something is preferred, but I can't quite recall | 20:28 | |
<- at the final stages of relenging Pugs::Compiler::Rule | |||
putter | audreyt: re proposed copyright, no, should be a person or organization. one can't get permission later from "and contributors". :) | ||
audreyt | putter: ok... firefox says Copyright 2005 Contributors. | 20:29 | |
putter | audreyt: the Changes file has an Implemented by field. that became The Perl6 team. | ||
Ara4n | that's 'cos they can't nail down everyone who contributed, though | 20:30 | |
azuroth | ragr | 20:31 | |
spinclad | firefox has a list of @Contributors under a Credits button... | ||
audreyt | putter: ok. I see three options: one is to look at commit log and maintains a list of people who commits to that subdir; two is to summarily assign it to the initiator (fglock in this case); three is to sign over the copyright formaly to The Perl Foundation. | 20:32 | |
Ara4n | isn't that for kudos rather than copyrightness, though? | ||
svnbot6 | r9537 | putter++ | rename Common/regexp-spike Common/regexp_and_parser_spike | 20:33 | |
audreyt | that's my impression | ||
perl5 btw goes with option 2; it's copyrighted by "Larry Wall and others" | 20:34 | ||
TimToady | I didn't add the "and others", FWIW... :) | ||
svnbot6 | r9538 | diotalevi++ | Use lexical handles instead of globals. | ||
r9538 | diotalevi++ | Clarified a few return values. | |||
r9538 | diotalevi++ | More error checking during .pmc writing. | |||
szabgab | my version has only Larry | ||
Copyright 1987-2005, Larry Wall | |||
TimToady | So I guess that phrase would be copyrighted by those others in questions... :) | ||
*question | 20:35 | ||
putter | the copyright should be simple. fglock, you, or tpf. tpf has the advantage of one-stop-shopping if, for instance, one wants to include pod pages in a book or some such. author is of course typical for cpan. perhaps give fglock the choice of himself or TPF? | ||
audreyt | k. | ||
I'll wait till fglock is back, and go with "fglocks and others" | 20:36 | ||
TimToady | That would seem to cover most bases of the paranoid variety. | ||
audreyt | "base 13 paranoia" | ||
putter | err, | ||
audreyt | s/go with/for now commit a temp version with/ | ||
TimToady | Copyright 2006 by Triskaidekaphobia... | ||
'Course, if we want the copyright to last forever, maybe we should assign it to Disney... | 20:39 | ||
integral | or peter pan | ||
Spawn311 | 10audreyt:01: right now all I have .pl and .cgi scripts and just run them thur the main perl.exe - under perl6 from what I read it seems like the process is taking a more java like approach | ||
integral | Spawn311: umm, by using black as your text colour it means I can't read *anything* you say | 20:40 | |
audreyt suddenly feels cyanish | |||
putter | The point is, if one wishes to do something with the code that is out of license, one has to contact the copyright holder. It is, in general, not tractable to contact "and others". Which has killed, for instance, the debian usage of assorted software. Say gpl3 or gpl4 or whatever ends up not quite compatible whatever license you attach (btw, what license _are_ you going to attach?:). With "and others", you are stuck. | ||
Ara4n | how did disney get 'round the mouse copyright? | ||
Ara4n crawls off to wikipedia | |||
audreyt | putter: er, Pugs itself is Artistic 2.0b5+ | 20:41 | |
but I'm really waiting for the public review comment of Artistic2 | |||
Spawn311 | audreyt: is that any better | ||
20:41
ruz joined
|
|||
audreyt | which... has been in the pipes for quite a while | 20:41 | |
diotalevi_ | Spawn311++ You're readable now! | ||
audreyt | chmod a+r Spawn311 | ||
20:42
cdpruden joined
|
|||
audreyt | putter: but for CPAN p5 modules, I think the standard "same as perl" would suffice. | 20:42 | |
putter | agreed | ||
Spawn311 | 10r01ight now all I have .pl and .cgi scripts and just run them thur the main perl.exe - under perl6 from what I read it seems like the process is taking a more java like approach10 | ||
audreyt | Spawn311: ok. to answer your question | ||
Spawn311: you can run it with /usr/local/bin/pugs -- and in the future, /usr/local/bin/perl6 | |||
Juerd | Spawn311: Your line begins with one coloured "r" and the rest is black (on a black background) | 20:43 | |
Spawn311: Please fix that | |||
audreyt | and in the maybe farther future, /usr/local/bin/perl | ||
putter | but the A2 illustrates the point with "and others". you would technically need to all "and others" peoples' permission to relicense their work as A2. | ||
integral | I guess he's using mirc which *copies* colours :-( | ||
Juerd | audreyt: Do you have +o right here? If so, please set channel mode +c | ||
audreyt: That filters out color. | |||
Spawn311 | 10integral: actually it is much worse | 20:44 | |
audreyt | Juerd: ok... a sec | ||
Spawn311 | 10it is trillian's sorry excuse for irc client | ||
20:44
audrey joined,
audrey is now known as autrijus
|
|||
integral | oh :-( | 20:44 | |
Spawn311 | 10normally at home I use irssi | ||
20:45
ChanServ sets mode: +o autrijus
|
|||
putter | oh, wow. haven't seen that in a while. | 20:45 | |
Spawn311 | 10but I am at work right now and no access to fbsd machine | ||
20:45
autrijus sets mode: +c
|
|||
Juerd | Thanks, audreyt | 20:45 | |
Ara4n | iirc ctrl-k in trillian lets you fix your colour | ||
(much as it does in mIRC) | |||
Juerd | Spawn311: Freenode's pedantry is good for a change. It fixes your colours now :) | ||
audreyt | np | 20:46 | |
Spawn311 | so you can all read everything I typing now | ||
putter | audreyt: re re::override no longer being on cpan... ha! you've shown me a way to get out of perlguts and make it someone else's problem! ha! :) | ||
Juerd | Spawn311: Much better :) | 20:47 | |
Spawn311 | so audreyt: I use pugs to run the .pl and .cgi scripts or am I missing the boat here | ||
putter is getting quite tired of reverse engineering c code. | 20:48 | ||
Juerd | putter++ # heh. | ||
Ara4n | Spawn311: pugs is currently just for experimenting | 20:50 | |
it's not (necessarily) going to be the end /usr/bin/perl | |||
Spawn311 | clear | ||
Ara4n | right now they're experimenting with using loads of different backends for actually running the perl6 code - all of which take some kind of intermediary format | ||
20:52
hexmode joined
|
|||
Ara4n | if you scrollback and check what audreyt & TimToady wrote, it says it all. | 20:52 | |
Spawn311 | Ara4n: in a former life I developed java applications. We made .java file ran it thur javac (compiler) which returned bytecode in .class files and then used java.exe to run said .class files - is perl6 going to work like that or is it too early to know? | ||
TimToady | perl6 will do absolutely everything you ever wanted it to, plus more. | 20:53 | |
;) | 20:54 | ||
szabgab | Spawn311: it will work as you said but in also without the separate steps | ||
Ara4n | Spawn311: it's too early to tell, but my educated(?!) guess would be that it will do both | ||
szabgab | having both javac and java.exe in one file | ||
TimToady | We are not interested in breaking the parts of Perl that people like unless we have a Really Good Reason that they'll like better (eventually). | 20:55 | |
szabgab | Java is a 3 day development tool: write/compile/run | ||
Perl5 is 2 step: write /run | |||
Perl6 should be one step tool | 20:56 | ||
Spawn311 | szabgab: thanks that helps - clear | ||
TimToady | Er, would that be write or run? | ||
szabgab | I am not sure yet, I think we are waitong for you to decide :-) | ||
FurnaceBoy | just 'think!' | ||
diotalevi_ | szabgab: er, does that mean we never get to run perl6? | 20:57 | |
TimToady | So you just run 'perl6' and it does what you want. Now that's an idea... | ||
It'd be more useful if you just write it, and the stuff runs itself. | |||
diotalevi_ imagines a doomsday device... | |||
Oh heck! | |||
szabgab | that would make typos much more fun... | ||
TimToady | Especially when discussing "rm -rf /"... | 20:58 | |
audreyt | Perl7 needs to be a 0-step tool | ||
svnbot6 | r9539 | audreyt++ | * P::C::R - general cleanup, docs, etc. | ||
TimToady | It needs a -1-step tool so we can have it now. | 20:59 | |
audreyt | that'd be Perl8 | ||
TimToady | -2 | ||
audreyt | I think we just proved that Perl7 is the singularity :) | ||
TimToady | 'Course, if it were -3 and Perl8 we wouldn't need v6.pm... | ||
21:00
penk joined
|
|||
TimToady | That's theologically sound. | 21:00 | |
21:01
Spawn311 left
|
|||
TimToady | Y'know, maybe we could bootstrap the self-running Perl code with some of that Turing-complete Unicode nothingmuch was proposing earlier... | 21:04 | |
audreyt | ./pugs -CUnicode | ||
sounds like a plan | |||
but too bad there's no runtime yet | |||
perlcabal.org/~autrijus/tmp/Pugs-Co...re0.tar.gz | 21:06 | ||
TimToady | We know how do bootstrap. Er, we *do* know how to bootstrap, don't we? | ||
obra | *laugh* | ||
TimToady++ | |||
Juerd hides | 21:07 | ||
Juerd pretends he didn't see this | |||
21:07
arcady joined
21:08
pawel joined
|
|||
audreyt | can someone try pre0 on 5.6? | 21:08 | |
21:08
pawel is now known as pmurias
|
|||
audreyt | I tried 5.8 and 5.9-blead, bothpasses | 21:08 | |
Juerd | One of the downsides of using Debian everywhere is that you have no natural old perls anywhere :) | ||
audreyt | ditto freebsd :/ | ||
audreyt goes asking in #perl | |||
obra looks around and realizes he has no 5.6 | 21:09 | ||
Juerd | But freebsd defaults to a very old perl, doesn't it? :) | ||
arcady | and then there's debian stable... | ||
audreyt | no, it defaults to no perl :) | ||
Juerd | audreyt: Too bad I promised the people mailing to [email@hidden.address] that their address wouldn't be used for other purposes. There are a few 5.6's there ;) | ||
audreyt | it was 5.005, then just nothing | ||
Juerd | Ah | ||
21:11
fglock joined
|
|||
KingDiamond | does the "CAN" syntax for introspection (still?) exist? | 21:11 | |
fglock | back - irc logs have been *big* lately | 21:12 | |
putter | did rgs ever find the lexical scoping hints? | ||
re irc logs, oh yes. probably have to work our some social conventions for tagging things if general backlog reading is to remain feasible. | 21:13 | ||
audreyt | Alias_: the FIRST_MAKEFILE thing you used in M::I is not portable to EU::MM 5.x | ||
Juerd | putter: But you can not now when you're writing something that it will be important | 21:14 | |
audreyt | putter: no, I don't think; maybe mail him + mjd ? | 21:15 | |
KingDiamond: .can('method') works yes | |||
TimToady | but note that .can is supposed to return the lazy list of potential candidates so that "next METHOD" still works. | 21:16 | |
much like &foo:(Int) can return a list of MMD candidates. Or whatever the syntax is these days... | 21:17 | ||
audreyt | &foo.variants(Int)? neither is specced iirc | 21:18 | |
fglock: ok. can you look over the two pods? | 21:19 | ||
P::C::Rule and P::R::Match | |||
in particular, to not confuse CPAN indexer etc, the match object is now P::R::Match not ::Match | |||
fglock | audreyt: how about the "not sure if specified" section: 'literal' "literal" <!n,m> <!{n..m}> - is this (in)valid syntax? | ||
audreyt | <'literal'> | 21:20 | |
I don't know about the others. | |||
TimToady | There is no <n.m> since Apo days. | ||
audreyt | <"literal"> is perhaps interpolated literal at rule compilation time | 21:21 | |
TimToady | All general quantifiers are **{$n..$m} | ||
fglock | ok - removing bad forms from TODO | ||
audreyt | fglock: also, README is now genned with pod2text | ||
21:21
meppl joined
|
|||
audreyt | so changes go into the pod directly | 21:21 | |
fglock: also, check if AUTHORS/COPYRIGHT line is okay with you | |||
TimToady | No, it interpolates at use time, I expect. | ||
<"$1"> should mean the same as $1. | 21:22 | ||
audreyt | ok... but it still sees the pad at compilation site | ||
TimToady | That seems fine. | 21:23 | |
audreyt | fglock: there you go :) | ||
KingDiamond | audreyt: can doesn't work on built-in objects. For example, I'm trying to test whether an object responds to readline -- $obj.can("readline") - I thought this returns a bool? (maybe I'm just messing things up) | ||
ruoso | fglock, are you planning where the rest of p6prelude will go? another Pugs::Compiler::* module? | 21:24 | |
audreyt | KingDiamond: readline is a multisub, and hence doesn't respond to .can | ||
hm, should multisubs respond to .can? | |||
seems too crazy if it'd. | 21:25 | ||
fglock | ruoso: yes, but it will follow the standard P6 AST, not the mini-AST lrep uses - so a lot of work ahead | ||
PerlJam | fglock: um ...In "<!n,m> <!{n..m}>", what were those ! meant to signify? Should the question have been regarding **{!($n..$m)} ? | ||
fglock | PerlJam: yes - I read this somewhere (probably an out of date A05) | 21:26 | |
TimToady | &foo:(Int) is supposed to act like multimethod 'can'. | ||
PerlJam | fglock: so, quantifier negation? | ||
fglock | audreyt: I find $match->() confusing (but it works) | ||
audreyt | TimToady: &readline:($obj)? | 21:27 | |
fglock: it is confusing (but is specced) | |||
TimToady | quantifiers are no longer assertions, so not subject to <!...> syntax. | ||
fglock | PerlJam: yes - it returns an array of matches, except those ones | ||
PerlJam | I forget, is that an arbitrary closure in **{$n..$m} ? | 21:28 | |
ruoso | fglock, So I think I'll stay working with the p6prelude I have, to make the bootstrap... then later is just a matter of switching to another module... | ||
TimToady | PerlJam: yes, that's why it's now .. there instead of , | ||
21:28
EduG joined
|
|||
fglock | audreyt: 0+ "returns stringified" should read "numified"? (does the word exists?) | 21:28 | |
KingDiamond | audreyt: okay, I'm confused. shouldn't it be the object that either responds or doesn't to can? readline is just a method being checked for. or, in other words, can should prolly return false or something... but I get a "no method &can" error | ||
audreyt | numified, sorry. please fix away | ||
TimToady | So you can say **{0..^$n, $m^...} | ||
PerlJam | Right-o. | 21:29 | |
21:29
kanru joined
|
|||
fglock | ruoso: ok! | 21:29 | |
TimToady | Hmm. I guess that means you can say **{^5} to match 0..4 times. | ||
Assuming we straighten out the unary ^ mess... | 21:30 | ||
audreyt | KingDiamond: ah, you are calling it on a native str, and autoboxing is currently broken in default runtime. can you commit a test? | ||
PerlJam | I suppose this is another one of those things where it'll stick with use. (Since I just dabble in perl6 at this point, I don't use it much) | ||
audreyt | KingDiamond: just test "str".can('split') | ||
KingDiamond: but more generally | |||
21:30
EduG left
|
|||
Juerd does not like unary ^ for ranges | 21:31 | ||
audreyt | perl6 distinguishes between class/role methods versus multisubs | ||
most of the builtins are multisubs instead of methods | |||
KingDiamond | audreyt: yep, doesn't work | ||
audreyt | what this means is that for e.g. concatening infix ~ | ||
it's not a method of the LHS string | 21:32 | ||
clkao | i still don't quite get the behaviour of roles. when A does B, it's taking B's implementation unless overriden, right? | ||
audreyt | clkao: yes | ||
KingDiamond: so in ruby you have String#+ biased to LHS | |||
svnbot6 | r9540 | fglock++ | Pugs-Compiler-Rule - updated TODO, assorted cleanup | ||
audreyt | KingDiamond: but in perl6 it's a multisub infix:<+> with nonbiased two invocants (Str, Str) | 21:33 | |
er | |||
infix:<~> | |||
as a result, you can't see it from the Str method table. | |||
PerlJam | clkao: I think "overridden" isn't quite the right word there though. | ||
audreyt | and that's true for must of the builtins. | ||
KingDiamond | I think I'm getting some hang now :) | ||
PerlJam | clkao: A does B means A uses B's implementation unless it defines its own implementation (inherited ones don't count) | 21:34 | |
audreyt | the advantage is that, well, it's nonbiased and easier to specialize | ||
the disadvantage is that there's no fast way to enumerate the methods. | |||
PerlJam | ("overridden" triggers "inheritance" in my head) | ||
TimToady | &infix:<~>:(Str,Any) maybe? | 21:35 | |
clkao | ya, it's just a bit weird because in my sketch of svk classes in perl6 i never seem to need a stub implementation to be copied by things does this role | ||
svnbot6 | r9541 | fglock++ | Pugs-Compiler-Rule - added note "perl5 syntax inside closure" | ||
fglock | audreyt: I'm ok! | ||
audreyt | TimToady: Infix:<~> as Str, as Str :D | ||
clkao | it's mostly for contracting for me, no code reuse | ||
21:36
khisanth_ joined
|
|||
svnbot6 | r9542 | putter++ | override.pm - added TODO, and design overview. | 21:36 | |
audreyt | fglock: check perlcabal.org/~autrijus/tmp/Pugs-Co....01.tar.gz | ||
it's been verified on 5.8.8, 5.9-blead, 5.6.1 | 21:37 | ||
KingDiamond | audreyt: so should I commit some of tests I've been playing with... speaking of which, is there some guideline to be followed or something? (my tests are just the bits of code I've written as is) | ||
TimToady | clkao: roles are certainly allowed to degrade to interfaces if that's how they turn out to be useful in a particular situation. | ||
audreyt | KingDiamond: yes, please look at t/oo/* and t/pugsbugs/* before checking in those dirs | ||
fglock: if it's sane to you, cpan-upload it and celebrate | 21:38 | ||
KingDiamond | audreyt: okay, cool | 21:39 | |
TimToady | I'm about 2 hrs overdue for nutrients, so self.bbiab() | ||
audreyt instinctively wants to rewrite it as $.bbiab | |||
TimToady | That too. & | ||
21:40
m joined
|
|||
fglock | audreyt: sent! audreyt++ putter++ | 21:43 | |
audreyt | fglock++ fglock++ | 21:45 | |
21:45
szabgab left
|
|||
fglock | we still have some days to go until apr. 1st | 21:46 | |
audreyt: you didn't document the *xx = $rule syntax - is that on purpose? | 21:49 | ||
svnbot6 | r9543 | diotalevi++ | 2 arg open -> 3 arg open. | ||
r9543 | diotalevi++ | Protect $@ in an eval. | |||
r9543 | diotalevi++ | Better error messages when deleting errant .pmc | |||
r9543 | diotalevi++ | Localize $_ for other's sanity. | |||
r9543 | diotalevi++ | Whitespace fixes for regex (more needed). | |||
21:49
GabrielVieira2 joined
|
|||
fglock | audreyt: *xx = $rule->code; | 21:49 | |
PerlJam | What would be cool for an April fool joke this year would be to announce a perl6 release and actually have one ready to go on Apr 2. (in a vein similiar to parrot ;-) | 21:50 | |
Juerd | #perl6 is fast, but not THAT fast | 21:55 | |
eric256 | nah but you could have saved M::C to release on the second. ;) | 21:58 | |
diotalevi_ | On which second? | 22:00 | |
22:03
justatheory joined
|
|||
diotalevi_ happens to hink M'C is a nice way to write better p5 and that p6 can benefit is... less relevant. | 22:04 | ||
22:08
SamB joined
|
|||
Ara4n | !remindme in 5 minutes to take the pizza out | 22:10 | |
uh, wrong channel | |||
eric256 | anyone know if/when rule config { %hash := [(key) (value)] }; will work? | 22:11 | |
diotalevi_ | Ara4n: Take the pizza out. | 22:15 | |
fglock | eric256: would you like to implement it? | ||
diotalevi_ | :-) | ||
eric256 | wouldn't mind if i had any idea how ;) | ||
Ara4n | diotalevi: thanks :) | ||
(you didn't sms me, though ;D) | 22:16 | ||
KingDiamond | audreyt: I just wrote some test for the "can" failure - can you see if I'm doing the tests the right way: sial.org/pbot/16302 | ||
audreyt: just so I could be more useful in the future :-) | |||
svnbot6 | r9544 | putter++ | override.xs - integrate some development progress (but not a sync - api remains unchanged so other code doesn't have to be modified). Add development notes to end of file. | 22:19 | |
fglock | eric256: it can be implemented in Pugs::Compile::Rule (but it needs a cleanup first) | ||
audreyt | KingDiamond: please commit to t/oo/can.t, looks good | ||
eric256 | where is Pugs::* | 22:20 | |
audreyt | eric256: the idea is to switch from PGE to P::C::R soonish :) | ||
(unless, of course, when targetting parrot) | |||
eric256: perl5/Pugs-Compiler-Rule | |||
fglock | eric256: perl5/ - named captures are the last subroutine in file: svn.openfoundry.org/pugs/perl5/Pugs...e/Perl5.pm | 22:21 | |
eric256 | i'll look around. thanks. so thats p6 code being compiled to p5 code with IE? | 22:22 | |
fglock | eric256: only the grammar is p6 (rule parser) | ||
putter | audreyt: re-override updates and docs are in. | 22:23 | |
fglock | home & | ||
eric256 | we need some flow charts ;) | ||
putter | yes | ||
eric256 | rules are parsed with rules? boot strapped rules? | ||
putter | bye fglock :) | ||
fglock | eric256: yes! | ||
eric256 | crazy ness | 22:24 | |
you need a full time librarian just to keep all this magic documented | |||
putter | audreyt: feel free to change of course. cpan as you see fit. | 22:25 | |
"Wanted - pugs project librarian. Apply freenode #perl6." | |||
22:26
slurpee joined,
fglock left
|
|||
svnbot6 | r9545 | diotalevi++ | Truth in advertising. | 22:26 | |
slurpee | are the docs in quickref just what's been implemented out of the synopsis? | 22:27 | |
svnbot6 | r9546 | premshree++ | can tests | 22:30 | |
putter | Overriding with regexp-spike derivative, it still has a segfault 30~ tests into split. but if that's commented out, its a 65% pass. regexp.t is 82%. pat.t is problematic. aside from a lot of (??{}), scoping problems mean the utf8 _implementation_ uses the override, which the spike is too slow for. | 22:32 | |
fyi | |||
utf8 isnt really supported. | 22:33 | ||
let me know if you have any questions. | 22:34 | ||
slurpee: the docs in quickref are just what people got around to documenting. ;) the most up to date documentation is in docs/Perl6 | 22:38 | ||
slurpee | okee, thx | 22:39 | |
22:41
Limbic_Region joined
|
|||
audreyt | ingy: maybe use Module::Compile-base; can export FILTER to allow dropin replacement? | 22:41 | |
kinda like Module::Install offered WriteMakeFile | 22:42 | ||
putter still thinks it would be a good idea to separate pmc management and filtering into two separate modules... | 22:44 | ||
The failure to do so was the bane of Inline. | 22:46 | ||
eric256 stares at Emitter/Rule.pm and tries to decipher what it does. lol | 22:50 | ||
can i use Pugs::Compiler::Rule to process p6 rules in pugs yet? and if so how do i test it to see if it has the same problem that pge does? | 22:53 | ||
23:08
rantanplan_ joined
23:11
Arathorn joined
|
|||
Arathorn | are folks still looking for a 5.6 perl to test with, btw? | 23:13 | |
putter | I believe the release when out. | 23:16 | |
s/when/went/ | 23:17 | ||
Arathorn wades through irc.pugscode.org | |||
looks like a 5.6.1 got found anyway | 23:18 | ||
when people are talking about a 'spike' currently, are they referring to an experimental development tangent? | |||
Arathorn wonders if this is some funky XP terminology he hasn't heard of before | 23:19 | ||
eric256 | no thats an EDT man!!! lol | ||
j/k where did you hear 'spike'? | 23:20 | ||
Arathorn | all over the logs | ||
audreyt | Arathorn: yeah, that's XP terminology. | ||
Arathorn | ah, cool | 23:21 | |
$ wget -q irc.pugscode.org -O - 'colabti.de/irclogger/irclogger_log/...006-03-13' | grep -ic spike | |||
6 | 23:22 | ||
(well, almost all over the logs) | |||
diotalevi_ | What was asked to be tested with 5.6? I have a 5.6.0. | ||
Arathorn looks to c2.com for enlightenment | |||
diotalevi: Pugs-Compiler-Rule-0.01 i think | 23:23 | ||
pX' | 23:27 | ||
svnbot6 | r9547 | premshree++ | p5 tests | ||
Arathorn | uh, 'pX' is the spike in question here, right? which incorporates the M::C and M::I and v6 stuff? | ||
diotalevi_ | :-( seems to require lots of stuff. | 23:29 | |
audreyt | Arathorn: pX is the spike; it generated lrep, the iterator engine, which gets moved out to perl5/ space as Pugs::Compiler::Rule | 23:31 | |
Arathorn: at which time I think the pX/lrep spike "worked", and hence starts to prepare for it for real | 23:32 | ||
M::C and v6 are made for it | |||
Module::Install is an earlier project that happens to be helpful. | |||
Arathorn | right - thanks | 23:33 | |
Arathorn fulfils his role of the confused visitor, and svn ups to actually have a play | 23:34 | ||
audreyt | pX also generated Regexp::ReplaceEngine, which is currently also partly in perl5/ as re::override, it may or may not hit "worked" stage soon | ||
if it does, then we chain it up with PGE and/or Pugs::Compiler::Rule, and then you get to use rules in p5 using normal =~ // syntax. | |||
if it doesn't, there are other possible tricks that involves Module::Compile. | |||
Arathorn nods. | 23:37 | ||
23:39
nothingmuch joined
|
|||
svnbot6 | r9548 | ruoso++ | lrep-compiler is a copy of lrep focused on providing a working compiler. The code was just rearranged, some package names organized. And other small changes. It works as a standard compiler and not executing everything. Macro definitions still doesnt work because of that. | 23:48 | |
23:50
rjbs joined
|
|||
svnbot6 | r9549 | eric256++ | r17968@feather: eric256 | 2006-03-14 00:48:23 +0100 | 23:50 | |
r9549 | eric256++ | Added rules example directory, and a short example of using rules | |||
Limbic_Region | well, except for the purse | 23:55 | |
svnbot6 | r9550 | ruoso++ | fixes on macro definition. The definition works, but the use still fails on compilation. | ||
nothingmuch | 5/win11 | 23:57 | |
svnbot6 | r9551 | putter++ | Regexp-Test-Perl5Tests - make test now runs. Unfortunately required editing the test files (to comment out @INC="../lib"). And taint.t is looking for a ./perl - that should be changed. | ||
audreyt | Limbic_Region: yeah, the purse is kinda bad | 23:59 | |
23:59
KingDiamond joined
|
|||
audreyt | let me change it to another one where purse is less visible | 23:59 |