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
*print
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