Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-03-13

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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