Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | www.treehugger.com/files/th_images/paradigm.jpg [set by audreyt on 2006-08-29 05:26:57 -0700]
Set by Akwa|user on 14 September 2006.
TreyHarris though i don't think you have power "over" someone quite so literally, but i can't remember that construction in latin 00:00
anyway.
TreyHarris &
00:07 Qiang joined, putter joined
putter backlogs... 00:07
lambdabot putter: You have 1 new message. '/msg lambdabot @messages' to read it.
00:08 weinig joined
putter re markstos r13524 colabti.de/irclogger/irclogger_log/...sel=20#l40 , err, are those really the definitions of eval_ok and die_ok? I wouldn't have thought so... 00:09
lambdabot Title: #perl6 2006-09-21,Thu, tinyurl.com/oypar
TreyHarris putter: no, but did you look at the diff? i think the actual diff is ok 00:10
i had the same reaction to the log
though... 00:11
putter ah, no, I haven't seen the diff. thanks :) 00:12
TreyHarris @tell markstos when you use the Test::eval_* functions, note that the string's scope is inside of the Test::eval_* you called. I'm trying to fix that with a macro (hopefully immediately after the .13 release?). But until then, use 'my $foo is context' and then '$+foo' in your eval string... 00:13
lambdabot Consider it noted.
putter re parsing p6 without p6,
I think it a qualitative question... some p6 can be parsed by emacs, now. 00:14
at the other end of a continuum,
TreyHarris putter: yes, but i'm really fighting emacs every day 00:15
putter there is no way editors are going to be able to deal well with string macros and dynamic parser grammar changes.
TreyHarris i still find it more useful to leave cperl-mode turned on than off, but just barely.
putter (no way without a p6 backend helper, of course)
TreyHarris putter: string macros, granted, but AST macros, even parsed ones... it can do it if it *uses* Perl to generate an AST it then uses to highlight
oh. yes.
putter so the question is what style of code people will be writing.
SamB isn't that dangerous? 00:16
actually all this reminds me of CL
TreyHarris oops, nevermind... you said "parsing p6 without p6" and I immediately read that as "parsing p6 outside of p6". yes, of course... i just want to be sure that perl can be called in a non-dangerous way to parse and generate a syntax tree that an editor can use 00:17
putter I am dsl-oriented, and find perl syntax less than pleasant, so will perhaps use such (macros, parser mods) more often than some others.
re cperl...
SamB in CL there are three different ways you can process a file...
TreyHarris SamB: is what dangerous?
SamB TreyHarris: running macros just to highlight something in your editor 00:18
putter have you tried the other perl-mode? I've found it nicer for p6 than cperl.
SamB at least, I think it is three ways...
one is compiling
one is loading
SamB forgets the other one...
TreyHarris putter: oh... i didn't think the other perl mode knew anything about perl 6. 00:19
SamB: brb 00:20
putter SamB: eval
SamB I guess so
putter www.cs.queensu.ca/software_docs/gnu...l_257.html
lambdabot Title: ANSI and GNU Common Lisp Document - eval-when, tinyurl.com/ghhar
TreyHarris SamB: macros should be like BEGIN blocks, as nondestructive as is possible. people run perl -cw all the time, and actual code in BEGIN that causes problems when you do that is evil and should be stamped out. same for code in macros 00:21
SamB it seems fairly complicated to figure out when to have your defmacros and such run
TreyHarris will brb really now
SamB TreyHarris: I'm thinking like malicious code
TreyHarris SamB: i would assume the editor would run perl in safe mode
SamB TreyHarris: safe mode?
TreyHarris really really... i have to run, back in 10 ;-)
00:21 markstos joined
putter TreyHarris: the other perl mode doesn't :) but since it is a much more... low key, less ambitious mode, it ends up being unobtrusive. 00:22
SamB at least read macros are fairly rare in CL...
putter (something putter has always regretted :) 00:23
in a similar vein, and tying back to a conversation a few days ago, 00:24
currently there is the following, the editor edits a source file, the compiler knows line numbers and talks back to the editor (eg compile errors), the runtime knows line numbers and also talks back to the editor/ide (eg runtime errors), and the program has access to line number info. 00:26
The only missing part of that picture is that programs do not usually talk with editors. Perhaps they should. Especially if the editor can present nice alternate/suplemental views of code. 00:27
00:28 lownoma925 joined
putter Oh, doc strings, especially when they can be modified at runtime, and accessed via an ide, are a similar thing. 00:28
markstos TreyHarris: Thanks for the eval/is context tip.
SamB hmm
markstos I would an example script in pugs that has as() in it, but that breaks now. Was as() renamed to something else ? 00:29
putter fmt
markstos s/would/found/
putter .as is now .fmt
stevan putter!
putter (i think, so I heard go by on the channel) 00:30
stevan! :)
markstos putter: I confirmed that works. Thanks.
TimToady thought I fixed all those a day or two ago.
stevan putter: I am planning on attending the Boston.pm meeting,... but not the Harvard one
SamB Boston.pm?
stevan putter: I assume I will see you there?
putter stevan: :) :(
;)
obra stevan: you're coming to town?
SamB had no idea boston was so pathetic that you could implement it in a single module 00:31
stevan obra: yes sir
obra: for the Damian talk next monday
putter stevan: most likely. sure, if you're likely to be there.
obra stevan: maybe food or coffee or something?
stevan obra: defintely
obra cool!
00:31 frederico joined
stevan :) 00:31
obra oh. I have a new toy. 00:32
"extract method" for perl5
svnbot6 r13549 | markstos++ | spiral_numbers.pl -> s/as(/fmt(/
putter mmm, foood
obra it writes out a method or function call, a sub wrapper and a subroutine signature
without PPI or B
stevan obra: yes, I saw Pier's blog post, but didnt look closely yet
obra :)
it's EEVIL
putter how?
stevan :)
obra hang on a sec for lighting talk url 00:33
putter ruby has evil.rb (with things like .become, and multiple inheritance). maybe we need a Perl6::Evil:: to go with Acme?
stevan putter: Perl 6 *is* evil 00:34
by its very nature
thats why we all love it soo much
obra perl _5_ is evil
TimToady perl 6 is wicked cool
SamB the Evil Mangler is written in perl 5 00:35
obra TimToady: indeed it is. Perl 6 excites me a lot. And I'm more psyched than ever about it
SamB actually I was disappointed by how un-evil the Evil Mangler seems to be...
obra putter: if you have a mozilla based browser: fsck.com/~jesse/refactoring/extract...e.2006.xul 00:36
lambdabot tinyurl.com/ghwca
SamB anyone looked at the evil mangler?
obra SamB: url? 00:37
SamB calculates it
putter then again, I've never been entirely comfortable using "evil" in this context. just because you happily tend to not need the word much in every day life doesn't mean it lacks a well defined meaning... I wouldn't be a great fan of using genocide, rape, or ethnic cleansing as redefined words either... ah well, I'm a great fan of language evolution, so should just deal :)
SamB darcs.haskell.org/ghc/driver/mangler 00:38
lambdabot Title: Index of /ghc/driver/mangler
putter obra: looking...
SamB putter: nobody else wants to use those words for software either, afaik!
cleansing, maybe! but not ethnic. 00:39
putter "Scares me" lol
SamB because software has no ethnicity
putter Oh, very cute. :) 00:41
lownoma925 any perl windows clients?
TreyHarris SamB: safe mode is how evalbot runs for instance. certain operations (touching the filesystem or network, for instance) are disallowed entirely. you'd want your editor to run perl that way, i think. possibly with a global ignore-and-continue attached to the SafeException or whatever it's called...
obra putter: and it works :) which pleased me greatly
putter SamB: :)
SamB TreyHarris: oh, point
putter err, the lol and cute were re obra. ;)
TreyHarris putter: I've found Object#instance_eval quite useful in ruby. I'm still cogitating on whether we need it in Perl 6 or not 00:42
markstos obra: I read the slides, but I still didn't really "get" what the technique as good for. The example didn't grab me. 00:43
putter obra: putting on my encourage collegiality hat, was a dig at ruby really necessary? ruby doesn't need to, because, like, it actually engineered that part nicely...
obra markstos: are you familiar with the 'extract method' refactoring pattern?
markstos No. That might be the problem...
SamB putter: your what hat? 00:44
obra putter: from talking to piers, who is lately a ruby person, apparently this is actually _hard_ in ruby
and it got people to giggle. even the ruby hackers.
it was all about getting people to giggle
markstos: "take some part of a method and pull it out into its own method"
markstos Got it.
obra the hard part is traditionally figuring out the method signature. "what vars does the code use?"
SamB hmm, aren't they supposed to be Peril Sensitive? 00:45
obra SamB: depends who you ask.
This was a "Sick Perl" talk
SamB is perl available with feelies? 00:46
putter SamB: encourage collegiality - eg, the perl and python folks would benefit from talking nicely about the common needs of their very similar languages, rather than silly sniping at each other all the time. fortunately its gotten much better in recent years. 00:47
obra putter: think of it as good-natured ribbing. 00:48
they were telling me that they've been taking bets on whether p6 or ruby 2.0 comes out first
Their money is apparently all on Perl 6
putter obra: re hard, err, no... oh, but I have a working Ripper. so easy in 2.0, less so in current release. though even there... one sec 00:49
www.zenspider.com/ZSS/Products/ParseTree/
lambdabot Title: ParseTree, tinyurl.com/oz9nd
putter that sufficient? 00:50
TreyHarris obra: i lost the referent there. who was "they" who were betting on Perl 6?
obra " * Only works on methods in classes/modules, not arbitrary code.
putter: that implies that no, it's not
SamB obra: how will anyone get any money for winning if noone bets on Ruby 2.0 00:51
obra but. I was only talking about that one technique. as ruby has no 'strict'
putter obra: re giggles, :)
obra SamB: I don't believe anyone cares about winning money
TreyHarris: Ruby hackers
markstos I'm trying to install v6.pm plus dependencies into a local (non-system) directory, and I can't figure out a good/easy way to do that.
The Module::Install docs seem to focus on how to build a Makefile.PL, rather than how to use one.
SamB can we still snipe at ruby people for having such goofy closures? 00:52
obra markstos: "perl Makefile.PL"
SamB or maybe at ruby anyway?
markstos obra: huh? perl Makefile.PL just starts the process of attempting to install in system-wide directories.
putter re only class/modules, though that of course is not a large restriction in ruby :). though it does have some other unfortunate aspects - it deals with ast rather than source, which is often a very one-way lossy transformation (src->ast that is). 00:53
obra ah. sorry. it supports PREFIX like MakeMaker
putter s/it does/parsetree does/
TreyHarris markstos: perl Makefile.PL PREFIX=~/lib/perl or whatever
markstos TreyHarris: Thanks.
obra but if you're up for writing more docs, markstos, I'll happily commit them for you
putter SamB: 2.0 has a real lambda. 00:54
SamB how about perl hackers? can I snipe at perl hackers?
TreyHarris does 2.0 have a strict? that bit me so many times....
SamB is a python-er hacker
SamB is a Haskellite now though 00:55
putter TreyHarris: don't know, sorry
TreyHarris ok, time to go for real this time, only an hour after i said i would.... & 00:56
putter re collegiality, besides, once Language::*::OnPerl6 starts getting populated, ruby/perl/tcl/php etc programmers will *be* p6 programmers :)
TreyHarris: bye 00:57
obra: re ruby source transformation - so the real answer is ruby 2.0 will have a working Ripper module, which will do whitespace preserving source->ast which can be losslessly unparsed back to source. 00:58
SamB putter: I notice the absense of Python on that list
putter one advantage of having a language which is "parse completely before execute"
python too, definitely. 00:59
obra putter: I hear 5.10 will get you roughly that too
putter actually, the second one, "perl", should have been "python", but "p" misindexed.
re 5.10, refactorable perl? oh my. 01:00
the ability to take cpan modules whose authors were on acid, err, who have... rich creative personal styles, and boil them down to some standard perl? 01:02
obra putter: MAD_PROPS will get you a sane AST you can munge
lwall++ # Mad props
putter wonders if p6 will need a "standard p6" definition, to avoid businesses... and villagers, from being scared of by peoples unicode macro parser-mod games. 01:03
obra: but can you get losslessly back to source?
theorbtwo putter: Yes. 01:04
obra putter: I defer to TimToady
theorbtwo I'm less then sure he's still awake.
Er, s/awake/with us/, since I suppose he's not in anything close to this TZ (GMT). 01:06
putter obra: re when 2.0 comes out, curious, I hadn't heard it was an issue. ruby vcs head is fairly usable, and is draft 2.0, so I think of my self a usually using 2.0. (forced to it by the need for real lambda)
TreyHarris: instance_eval++ 01:07
re 2.0, also, until it comes out, I can retain hope that the "objects can't be nil, so you simply can't create real proxy objects" bug will be fixed. 01:08
stevan obra: extract_method++ 01:12
so very cool :)
obra stevan: next challenge: rename_variable 01:13
and rename_subroutine
oh god.
I think I know how to do a credible rename_subroutine, assuming proper test coverage. 01:14
putter lol
obra UNIVERSAL::AUTOLOAD + Carp to find calls. 01:15
putter fglock, etal: rules don't backtrack anymore?!? or r13533 was just a quick workaround?
stevan slowly backs away from obra
although it would probably work ;)
obra stevan: I'm feeling very machiavellian about refactoring
The Ends Justify the Hacks
stevan The Ends Jiftify the Hacks :) 01:16
obra I think I really want B::Deparse or MADPROPS here.
theorbtwo You can do quite a bit with iterating over the opcode tree and asking via B what function is really going to be called.
That'll help for renaming functions, but not methods, obviously.
stevan theorbtwo: how does it handle methods though?
theorbtwo Heh. 01:17
putter "assuming proper test coverage" sounds sort of like the head of Boeing saying their lobbying wasn't problematic because of the... wisdom and judgment of our congressional representatives. everyone was too polite to ask why an engineer was building on counterfacturals ;)
stevan obra: the only problem with UNIVERSAL::AUTOLOAD is if there is another AUTOLOAD in the class hierarchy
that could get hairy 01:18
obra mm.
stevan however,.. doing a swap might work
my $old = \&foo;
obra *nod* a swap does feel cleaner.
stevan *foo = sub { print 'rappin'; $old->(@_) }
*bar = $old;
obra I'd been starting to go there, but I got distracted by the evil
nah. you don't want a pure swap
you want to die instead of wrap
and trap the errors ala this code 01:19
stevan true
stevan smells a hackathon coming on monday night :)
obra oo. 01:20
ok. sleep time for me. i'm still in the uk
stevan cheerio then,.. I am off to watch a movie myself 01:21
obra enjoy
. o O {We might be albe to use ACK} 01:22
01:22 Aankhen`` joined
theorbtwo ACK? 01:23
putter wonders why folks are so enthused by non-backtracking. LR(1) is so rarely what one wants.
obra ACK == petdance's too 01:24
tool
SamB dunno!
SamB likes happy fairly well
01:25 rodi joined 01:27 frederico joined
markstos Has collapse() been renamed to something ? 01:41
01:44 kanru joined 01:55 weinig is now known as weinig|exhausted 02:02 mjk joined
svnbot6 r13550 | fglock++ | Pugs-Compiler-Rule - more detailed quantifier parsing; 02:09
r13550 | fglock++ | added '**{range}' quantifier (needs emitter support)
02:21 kanru2 joined 02:30 mako132_ joined 02:33 mako132_ joined 02:49 avarab joined 02:58 mdiep joined 03:01 avarab_ joined 03:03 cognominal joined 03:04 evalbot_r13548 is now known as evalbot_r13550
TreyHarris what is collapse()? 03:07
03:09 fglock joined 03:11 weinig|exhausted is now known as weinig|zZz 03:16 fglock joined 03:17 azr|elious joined 03:20 TreyHarris joined
fglock putter: re non-backtracking - plain 'regex' backtracks; 'token' and 'rule' are mostly used to write parsers, and only backtrack where they are told to 03:28
03:29 bsb joined
ingy hola good folk 03:29
anyone know a module that can easily trace my subroutine calls
possibly with input and output values 03:30
possibly indented by level
I'm looking for such a module most excellent 03:31
fglock Devel::Trace almost does that - you would need to supress non-calls 03:34
03:35 Qiang_ joined
audreyt Devel::SimpleTrace too 03:35
fglock 'trace subroutine' in search cpan has quite a few modules - all new to me 03:36
"Debug::Trace instruments subroutines to provide tracing information upon every call and return" 03:37
ingy: are you translating pyyaml to perl5? 03:39
ingy fglock: yeah 03:41
fglock I looked at the code - it is quite big - I wonder if writing a python translator reusing the v6.pm infrastructure would be too difficult 03:42
ingy fglock: I thought of that but I'm not sure it's a good way to go 03:43
I've been doing all the porting by hand and while it is pretty one to one there are somethings that might be hard to detect 03:44
TreyHarris ?eval Test::is(3, 3, 'yes')
evalbot_r13550 Error: No compatible subroutine found: "&Test::is"
ingy I could be wrong
Debug::Trace rquires me to name the subs I want to trace
ick
I want to say "trace all the subs in modules beginning 'YAML::'" 03:45
fglock it would be interesting if you could document some of these problems - I'd like to give it a try
mugwump I have most of the YAML spec as perl5 regex somewhere, been meaning to translate it to rules 03:46
doing the CFG nesting and item productions were a bit insane and didn't get finished
ingy fglock: my idea was port it first, then use that as a test result to try to translate to
TreyHarris hi, audreyt! been busy with $job? 03:47
ingy but mostly I am trying not to get sidetracked by temptations like this
:P
hi mugwump 03:49
03:49 Yappo joined
mugwump howsit, ingy ? 03:49
ingy I saw naked lunch last night
mugwump excellent
ingy audreyt: Devel::SimpleTrace looks not what I want
WHY HASN'T THIS BEEN WRITTEN???!!! 03:50
mugwump perl -d with trace on?
ingy yeah it was a cool movie
audreyt Devel::STrace? 03:51
ingy I want a nice indented log of sub calls
fglock ingy: agreed - I was implementing eval(:lang<yaml>) today, and I was wondering about :lang<python> and such
ingy devel::strace has binary output I think
audreyt oh. indented 03:52
Devel::TraceSubs has that
Devel::TraceCalls has limiting-concern API
TreyHarris ?eval sub moose (Bool $red) { say "{$red ?? 'red' !! 'black'}" } ; moose(undef)
evalbot_r13550 OUTPUT[black ] Bool::True
TreyHarris ?eval sub moose (Bool $red) { say "{$red ?? 'red' !! 'black'}" } ; &moose.call(\(undef)) 03:53
evalbot_r13550 pugs: src/Pugs/Val.hs:(97,4)-(98,39): Non-exhaustive patterns in function asBit
TreyHarris what's that last errmsg mean?
ingy Devel::TraceSubs!
my faith in the community is restored
I was about to have a coniption
audreyt TreyHarris: a sec
what is this coniption thing? 03:54
TreyHarris conniption, a fit of rage or hysterics
ingy fglock: svn.yaml.com/repo/trunk/PlYaml/lib/...Scanner.pm
lambdabot tinyurl.com/j27gb
ingy fglock: as you can see I am porting with all the original Python inline 03:55
fglock: so that is basically my porting notes
I'll also make secial notes for the weird cases.
for the most part Python is very translatable 03:56
but again, I don't want to get into this fun experimenting until my work is done
fglock ingy: that helps a lot - thanks!
ingy fglock: I am using a special YAML::Base to ease the OO pain. (ala Spiffy but not using Spiffy) 03:57
03:57 christopher joined
ingy basically just exporting 'field' everywhere and doing a %INC trick to make -base work with inline classes 03:58
03:59 justatheory joined
ingy python seems to use classes and objects a lot more than a perl hacker would 03:59
I assume objects are much lighter weight in Python
pyyaml's only pitfall (IMHO) is the typical Python thing of importing whole big classes into other big classes 04:00
so there is a Parser and a Scanner, but instead of making a Scanner object for the Parser to talk to, Parser just imports all of Scanner into it 04:01
which makes it hard to figure out which parts are from where 04:02
I mean the whole idea of having abstractions is to keep things separated
maybe I'm just a grumpy old fart
fglock mm - maybe importing is related to making method dispatch lighter weight 04:05
ingy fglock: it does have that effect, yes... 04:07
$parser->scanner->next_token
becomes $parser->next_token
audreyt TreyHarris: try r13551 04:09
svnbot6 r13551 | audreyt++ | * Handle asBit for VUndef and VNative cases.
TreyHarris audreyt: thanks... do i want to know why that meant you couldn't use undef in captures? 04:10
audreyt you can
it's just the ~undef coerce wasn't written
someone as being too lazy
probably me.
TreyHarris ?eval my $capt = \(1,2,3); [,] $capt 04:11
audreyt I mean ?undef.
evalbot_r13550 (CaptSub {c_feeds = [MkFeed {f_positionals = [VPure (IFinite 1),VPure (IFinite 2),VPure (IFinite 3)], f_nameds = {}}]},)
TreyHarris nods
hmmm... how do I get 1,2,3 back out of $capt?
fglock audreyt: btw, i implemented Match.yaml today 04:12
audreyt: we could agree on Match internals to make translation easier 04:13
ingy fglock: what's that?
audreyt fglock: oooh nice
fglock: then I can make use of the Capture field too
$$/ that is
fglock ingy: Match == object returned by Rules 04:14
audreyt I'd be happy to use whatever you come up with but, I need to run now, already late for $job :)
bbl
fglock audreyt: ok
TreyHarris fglock: do you have any idea how i can get 1,2,3 back out of $capt? given that | doesn't exist yet? 04:16
ingy [particle]: pin
g
seen [particle] 04:17
jabbot ingy: [particle] was seen 7 hours 35 minutes 48 seconds ago
fglock TreyHarris: looking
?eval my $capt = \(1,2,3); $capt[1] 04:21
evalbot_r13550 \undef
fglock mm - it doesn't behave like Match 04:22
TreyHarris yeah... i was trying to write a test for the now-implemented .call, but i can't figure out how to actually pass the capture .call requires 04:23
audreyt it should, it just doesn't yet.
TreyHarris oh, ok. 04:24
audreyt ?eval sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\(undef))
evalbot_r13550 pugs: src/Pugs/Val.hs:(97,4)-(98,39): Non-exhaustive patterns in function asBit
audreyt ?eval sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\(1))
evalbot_r13550 OUTPUT[1 ] Bool::True
fglock ?eval my $capt = \(1,2,3); $capt -> @a { say @a } # bind to a signature 04:25
evalbot_r13550 Error: Unexpected "->" expecting comment, operator, statement modifier, ";" or end of input
TreyHarris sure, but i meant as a non-literal capture
audreyt ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call($c)
evalbot_r13550 pugs: don't know how to toVV': VRef <Scalar:0xb79a9f04>
audreyt hm. that's pretty broken. 04:26
sorry, really gotta run. bbiab :)
fglock gotta sleep :) 04:27
TreyHarris fglock: sweet dreams!
phew, i'm just glad it's actually broken and it wasn't just me being stupid :-)
fglock &
04:27 fglock left 04:34 simcop2387 joined 04:35 evalbot_r13550 is now known as evalbot_r13551, putter joined
putter oh, fribble. just missed fglock. :( 04:35
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call($c) 04:36
evalbot_r13551 pugs: don't know how to toVV': VRef <Scalar:0xb7aa9f04>
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\(undef))
evalbot_r13551 OUTPUT[2 ] Bool::True
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\1)
evalbot_r13551 pugs: don't know how to toVV': VRef <Scalar::Const:0xb7b426f8>
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\(1))
evalbot_r13551 OUTPUT[1 ] Bool::True 04:37
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\$c)
evalbot_r13551 pugs: don't know how to toVV': VRef <Scalar::Const:0xb7acb498>
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call(\($c))
evalbot_r13551 pugs: don't know how to toVV': VRef <Scalar:0xb79a9a90>
putter fglock, audreyt: a while back in t/rules there was a p6 transliteration of p5's re_tests (which still exists in munged form at t/rules/perl5_\d.t). My very fuzzy recollection is I did one, and then someone else did a better one, or cleaned it up, or some such. It's not there now. Any idea what happened to it? 04:38
svnbot6 r13552 | audreyt++ | * in .call, both the cv and the capt are rvalue
putter Did it get deleted in one of the "oh, we can just move all this stuff to parrot and not worry about it" things? 04:39
Ah well. I'll look for it tomorrow. I just started looking at the PCR runtime. I wanted to do a time trial against re_tests to get a feel for its performance. 04:42
Perhaps it got t_disabled at some point when PGE was choking on it, and disappeared from there?
I'll look later. Just thought someone might remember. Tnx. 04:44
g'night &
TreyHarris ?eval 1 04:46
04:46 evalbot_r13551 is now known as evalbot_r13552
evalbot_r13552 1 04:46
TreyHarris ?eval my $c = \(1); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call($c)
evalbot_r13552 OUTPUT[1 ] Bool::True
TreyHarris ?eval my $c = \(undef); sub f (Bool $x) { say ($x ?? 1 !! 2) }; &f.call($c)
evalbot_r13552 OUTPUT[2 ] Bool::True
TreyHarris audreyt++ 04:48
05:12 iblechbot joined
christopher The tests for v6 Test.pm are very confusing, as documentation. 05:12
For some of them, failure is the _desired effect_
and this is indicated by a :todo mark.
05:14 BooK__ joined
christopher something like Test::Warn is needed to check that fails happen correctly... 05:17
05:24 dj_goku_ joined, BooK__ joined, iblechbot joined, simcop2387 joined, justatheory joined, christopher joined, Yappo joined, Qiang_ joined, bsb joined, TreyHarris joined, azr|elious joined, cognominal joined, avarab_ joined, mdiep joined, kanru2 joined, mjk joined, Aankhen`` joined, weinig|zZz joined, awwaiid joined, SubStack joined, buubot joined, mako132 joined, araujo joined, Patterner joined, mauke joined, crem joined, zeriod joined, kane-xs_ joined, masak joined, ayrnieu joined, scw joined, f0rth joined, plural joined, xerox joined, ajs_ joined, idiotmax joined, ruz joined, lisppaste3 joined, stevan joined, webmind joined, gugod joined, baest joined, mtve joined, ofer0 joined, Eidolos joined, nothingmuch joined, wilx joined, jdv79 joined, theorbtwo joined, glasser joined, lampus joined, miyagawa_ joined, thepler joined, lumi joined, TimToady joined, cookys joined, szabgab joined, amv joined, norageek joined, [particle] joined, Khisanth joined, c6rbon joined, gaal joined, revdiablo joined, PerlJam joined, pjcj joined, xinming_ joined, evalbot_r13552 joined, buu joined, autark joined, xern joined, frankg joined, mollmerx joined, LCamel joined, dvorak joined, spoop joined, rafl joined, Teratogen joined, perlbot joined, prism joined, drbean joined, rafl_ joined, spinclad joined, nine joined, hcchien joined, cj joined, kolibrie joined, orafu joined, statico joined, jabbot joined, Southen joined, meppl joined, gantrixx joined, kalven joined, svnbot6 joined, Grrrr joined, ajs_home joined, nnunley joined, takanori_ joined, nperez joined, ingy joined, qmole joined, Maddingue joined, kcwu joined, pmurias joined, broquaint joined, clkao joined, obra joined, wolverian joined, audreyt joined, jiing joined, cmarcelo joined, rgs joined, leo joined, chip joined, pmichaud joined, Juerd joined, Shabble joined, dj_goku_ is now known as dj_goku, silug joined
TreyHarris typically, the person implementing a new test will run it to be sure it fails (assuming it documents an unimplemented feature or a bug), and if it's for a feature, then :todo<feature> it. :todo<bug> is occassionally used when a bug requires large-scale changes to fix it, but it's much less common--ordinarily actual bugs are left un-todo'd 05:25
a new failing test is a sign to the compiler implementers that something went wrong with their work and they need to look at the test. so we don't do that for tests that won't work until something new is implemented. 05:26
does all that make sense?
christopher TreyHarris: take a look at the lives_ok and dies_ok tests
in ext/Test/t/1-basic.t
you can't simply put "ok ! dies_ok", because the dies_ok counts as a test too 05:27
and you can't put lives_ok, to test "not dies_ok"
because you want to test the dies_ok function 05:28
05:28 Yappo joined, lambdabot joined
TreyHarris christopher: i don't see what you're talking about. what revision of ext/Test/t/1-basic.t are you looking at? 05:29
christopher r13552 05:30
TreyHarris how odd. I don't see "ok ! dies_ok" anywhere in that file
christopher no, it's not there
but look for example at line 23
that test is intended to test that 2+2 == 5 doesn't satisfy ok, I think 05:31
(! dies_ok was just a reference to what I think you were suggesting I change these too) 05:32
TreyHarris oh, i see 05:33
how would you check that ok does not return ok when its argument is false? 05:34
christopher In my local copy, I tried adding a "invert_tests" variable, that gets checked right before Test::Proclaim 05:35
and you could set this locally in a block, if you wanted to do these kinds of tests
TreyHarris that would not be valid. you can't change code you're testing in your unit test
you need to have a failing test, and be sure it fails
:todo does that
christopher It's $Test::invert_tests 05:36
This isn't really a problem for testing any module but Test.pm itself, I think.
TreyHarris an "unexpectedly suceeding" would be something audreyt and so on would notice right away--in Test.pm, that would indicate a "failure" as well
christopher I would revise Test.pm so that "ok" and "not ok" are switched when $Test::invert_tests is set 05:37
so that 1-basic.t should produce entirely OK if it entirely works
TreyHarris that is not valid. if Test.pm fails, then we're in big trouble. it's very important that its tests exercise every function in a way no different from how it's used. and one of the things we must exercise it a failing test. if you switch it so every test succeeds, then we haven't exercised that code. 05:38
christopher TreyHarris: Test.pm isn't being exercised by its unit tests _now_. 05:39
After the "invert" switch, you'd at least be able to test that tests that are supposed to fail, do fail.
Right now, 1-basic.t does not document when dies_ok is supposed to fail. 05:40
Right now, 1-basic.t does not document when any test is supposed to fail, because such tests are marked :todo.
The results of 1-basic.t have to be interpreted differently from those of any other test in the p6 system that I'm aware of. 05:41
(currently, that is)
TreyHarris i'm sorry, I guess I'm just confused. right now, ok(2+2==5) fails. it's marked :todo so that the test *harness* accepts that failure as success. if ok(2+2 == 5), then it would unexpectedly succeed, and the harness would warn about that.
christopher The different interpretation is right there: "it's marked :todo so that the test *harness* accepts that failure as success." 05:42
Usually, ":todo" means that "passing would be correct behavior, but we haven't implemented correct behavior yet." 05:43
TreyHarris the way you're describing your invert toggle, it sounds like Test::proclaim would never receive a :cond(Bool::False). is that correct?
christopher No, the toggle would just apply C<not> to $cond.
I don't think the toggle's the right solution, really, but possibly an incremental improvement. 05:44
Really, I think each of the tests in 1-basic.t should be in a block, and stderr grepped for "ok", "not ok", or any other messages of interest. 05:46
Hence the Test::Warn suggestion.
TreyHarris i think the *right* solution if you're really unhappy with this overloading of :todo, and changing it to :todo<notReallyJustTesting> or putting big fat comments wouldn't make you happy either, is to create a test file not ending in .t, and then create a .t that runs the test file and scrapes its returns
christopher That would work. I'm happy with :todo<notReallyJustTesting> too. 05:47
(I think. I'm not sure how the :todo mechanism was intended to be tested.)
TreyHarris a Test::Warn-like solution is a bit fragile in pugs... you've probably noticed how often messages change :-) 05:48
christopher Regexes would make it less fragile, but that would increase the barrier to an implementation being able to 'use Test'. 05:49
05:51 agentzh joined 05:57 agentzh joined, lambdabot joined, Yappo joined, dj_goku joined, BooK__ joined, iblechbot joined, simcop2387 joined, justatheory joined, christopher joined, Qiang_ joined, bsb joined, TreyHarris joined, azr|elious joined, cognominal joined, avarab_ joined, mdiep joined, kanru2 joined, mjk joined, Aankhen`` joined, weinig|zZz joined, awwaiid joined, SubStack joined, buubot joined, mako132 joined, araujo joined, Patterner joined, mauke joined, crem joined, zeriod joined, kane-xs_ joined, masak joined, ayrnieu joined, scw joined, f0rth joined, plural joined, xerox joined, ajs_ joined, idiotmax joined, ruz joined, lisppaste3 joined, stevan joined, webmind joined, gugod joined, baest joined, mtve joined, ofer0 joined, Eidolos joined, nothingmuch joined, wilx joined, jdv79 joined, theorbtwo joined, glasser joined, lampus joined, miyagawa_ joined, thepler joined, lumi joined, TimToady joined, cookys joined, szabgab joined, amv joined, norageek joined, [particle] joined, Khisanth joined, c6rbon joined, gaal joined, revdiablo joined, PerlJam joined, pjcj joined, xinming_ joined, evalbot_r13552 joined, buu joined, autark joined, xern joined, frankg joined, mollmerx joined, LCamel joined, dvorak joined, spoop joined, rafl joined, Teratogen joined, perlbot joined, prism joined, drbean joined, rafl_ joined, spinclad joined, nine joined, hcchien joined, cj joined, kolibrie joined, orafu joined, statico joined, jabbot joined, Southen joined, meppl joined, gantrixx joined, kalven joined, svnbot6 joined, Grrrr joined, ajs_home joined, nnunley joined, takanori_ joined, nperez joined, ingy joined, qmole joined, Maddingue joined, kcwu joined, pmurias joined, broquaint joined, clkao joined, obra joined, wolverian joined, audreyt joined, jiing joined, cmarcelo joined, rgs joined, leo joined, chip joined, pmichaud joined, Juerd joined, Shabble joined
agentzh *cough* 05:59
christopher TreyHarris: Thanks for the clarification. I'll just add a comment to 1-basic.t instead of changing anything.
TreyHarris christopher: sure, sorry to have been a bit patronizing, i didn't recognize you by nick 06:01
svnbot6 r13553 | malon++ | ext/Test/t/1-basic.t - describe the strange use of ':todo' in this file 06:02
christopher TreyHarris: np
agentzh cron on feather says: "info: 453 smartlinks found and 50 broken." :) 06:09
06:12 b00t joined
TreyHarris agentzh: larry made a lot of changes in introducing | 06:15
06:16 agentzh joined
agentzh TreyHarris: yes, i've seen that in my mailbox. :) 06:17
| is much more concise than the ugly [,] :) 06:18
TreyHarris yes :-) 06:23
hah, is jonathan lang on here? 06:24
i was writing more or less exactly his question about first capture being invocant or first positional 06:27
that's just insane-crazy. i used the migration assistant to move my files from my old (panther OS X 10.3) iMac to my new (tiger 10.4) mac mini. it moved my sshd settings and public/private keys! 06:29
TreyHarris does the happy dance
TimToady t/xx-uncategorized/rule_recursive.t is looping. stopped it after 15 minutes of CPU 06:39
Eidolos You need to give infinite loops at least an hour to finish up. 06:40
06:42 kanru2 is now known as kanru 06:45 dj_goku joined, simcop2387 joined, f0rth joined, ajs_ joined, idiotmax joined, webmind joined, wilx joined, jdv79 joined, lampus joined, lumi joined, TimToady joined, [particle] joined, evalbot_r13552 joined, dvorak joined, perlbot joined, rafl_ joined, hcchien joined, cj joined, kolibrie joined, meppl joined, gantrixx joined, nperez joined 07:18 marmic joined 07:29 simcop2387 left 07:34 zakharyas joined 07:51 kane-xs joined 07:52 drrho joined 08:00 weinig joined 08:07 Gothmog__ joined 08:11 [MaKuBeX] joined
[MaKuBeX] Visit www.omgema.lt itōæ½xFFs good . Have a nice day! 08:12
lambdabot Title: .: OMgema :.
08:12 [MaKuBeX] left 08:20 gerard joined
gerard hi 08:29
08:44 penk joined 08:48 [mago] joined, ludan joined
ludan hola 08:48
09:20 gerard is now known as mezelf 09:27 chris2 joined 09:30 b00t joined 09:33 polettix joined 09:48 GeJ joined 09:50 ruoso joined 09:55 sri_ joined 10:09 elmex joined 10:14 mdiep_ joined 10:17 chris2 joined 10:19 buetow joined 10:23 mschmidt joined 10:35 silug joined 10:44 amv joined 11:41 markstos joined 12:10 xinming joined 12:11 Limbic_Region joined 12:19 Fuzie joined 12:30 lanny joined
lanny @seen gaal 12:31
lambdabot gaal is in #perl6 and #haskell. I don't know when gaal last spoke.
lanny @seen audreyt
lambdabot audreyt is in #perl6, #ghc and #haskell. I don't know when audreyt last spoke.
Limbic_Region lanny - you also know about the irc logs right?
lanny Read em first before I log on. 12:32
audreyt greetings.
Limbic_Region ;-)
lanny Just skimmed em today though. Can often catch those two in local morning.
audreyt I'm massively enjoying www.perl.com/lpt/a/983 :)
lambdabot Title: Perl.com: The State of the Onion 10
lanny Hi, audreyt. Was wondering if you can give some direction on putting things in the prelude. My simple examples don't seem to work. 12:33
Limbic_Region audreyt - the cygwin ghc you linked for me is source only (not bin dist) - which doesn't help since I need an existing ghc to build
audreyt also, alloced $job-free time from Sunday on to Wednesday morning, to finally get releng done
Limbic_Region and as of yet, no response from cvs-ghc dev list
Limbic_Region is going to whine a little louder today
woot 12:34
audreyt++
audreyt lanny: nopaste the diff?
Limbic_Region audreyt - you may be mildly interested in parenscript.org/
lambdabot Title: ParenScript 12:35
lanny Let me dig it up.
audreyt Limbic_Region: yeah, but Scheme2Js is more complete
(and easier imho to work with)
lanny ## srand and rand 12:36
Nope. How does one paste into the #perl6? cut-n-paste on this mac doesn't seem to do it
audreyt nopaste :) 12:37
TreyHarris perlbot: paste
perlbot Paste your code to sial.org/pbot/perl or erxz.com/pb and #perl will be able to view it.
lambdabot Title: sial.org Pastebot - pasteling
pasteling "lanny" at 206.109.40.208 pasted "simple prelude entries" (13 lines, 175B) at sial.org/pbot/19877 12:38
lanny magic.
TreyHarris bleh. setup the new computer and was very eager to see how fast compile and smoke took... but getting "Setup: cannot satisfy dependency mtl-any" again. i followed the instructions that worked for me the first time downloading extra-libs and using runhaskell to buld and install mtl and network...
audreyt lanny: "is builtin" 12:39
lanny aha.
audreyt otherwise they became Prelude::rand etc.
"is builtin" is shorthand of "exporting into global automagically"
lanny Ok. I got the impression from the docs and pi() that that was for variables.
Thanks!
audreyt np :) 12:40
now unfortunately I need to crash off again... been running Jifty tutorial for cow orkers two days straight now
be back in ~12 hours :)
TreyHarris Limbic_Region: you helped me with this last time, and i just copied the procedure you gave me... but it didn't work this time. i am running a newer ghc. any clue what might be wrong? 12:41
TreyHarris waves goodbye to audreyt
audreyt TreyHarris: is this win32? did you get the latest bindist, or are you using the known-working 0819?
TreyHarris audreyt: os x, i'm using the binary 0915 build 12:42
on intel
clkao audreyt: do they grok it alright?
audreyt clkao: sure, they are quite happy and we've alllocced two more tutorial sessions 12:43
TreyHarris: oh... I don't know much about the 0915 build
TreyHarris audreyt: well, i'll just use your build if it's still sufficient for pugs 12:44
audreyt sure! 12:45
TreyHarris cheers!
Limbic_Region TreyHarris - sorry, was AFK 12:50
you are using the ghc 6.6 bin build I built?
I am not having any problems with it in 2 different environments 12:51
what exactly is the problem?
oh nevermind
I see you aren't using my build - os x
my guess is third-party
but without a specific error - no clue
ah, scroll back 12:52
audreyt @tell fglock ./pugs -e "'x' ~~ /<null>+/" loops
lambdabot Consider it noted.
Limbic_Region yes, I can help with the mtl-any issue
audreyt @tell fglock this is making rule_recursive hang -- I've disabled it for now but please fix :)
Limbic_Region audreyt - TreyHarris just needs the cabal instructions for installing a package
lambdabot Consider it noted.
Limbic_Region from extra-libs 12:53
audreyt Limbic_Region: 14:41 < TreyHarris> Limbic_Region: you helped me with this last time, and i just copied the procedure you gave me... but it didn't work this time. i am running a newer ghc. any clue what might be wrong?
Limbic_Region paste.lisp.org/display/25124
oh, if those instructions aren't working - I am clueless than 12:54
TreyHarris sorry, i was in another window 12:56
ye, those instructions didn't work
svnbot6 r13554 | audreyt++ | * rule_recursive.t: temporarily skip infinite looping tests
TreyHarris but i'm just building a different known-good build now 12:57
Limbic_Region TreyHarris - didn't work in that mtl was not installed
or didn't work in that pugs still b1tched?
TreyHarris i see it installed. pugs still complained
Limbic_Region (getting it done)++
TreyHarris i should sleep now though...
TreyHarris &
Limbic_Region TTFN 12:59
svnbot6 r13555 | polettix++ | Cosmetic changes, added a note in the initial comments. 13:12
13:13 mschmidt left 13:14 discordja joined 13:15 discordja joined 13:19 fglock joined
fglock audreyt: ping 13:20
lambdabot fglock: You have 2 new messages. '/msg lambdabot @messages' to read them.
fglock audreyt: matching forever in '<null>+' is not a bug :) 13:21
13:25 cjeris joined 13:26 crem_ joined 13:28 dakkar joined
fglock audreyt: perl5 perlre says "the following match after a zero-length match is prohibited to have a length of zero" - does this apply to p6 regex? 13:29
13:36 avarab_ is now known as avar
kolibrie fglock: good morning! 13:40
fglock kolibrie: hi!
kolibrie fglock: thanks for the yaml support
fglock kolibrie: np :) 13:41
kolibrie is there a way for me to extract just the pieces I want from the $match and put those in YAML/XML/some other format?
[particle] fglock: i think the perl5 perlre statement can safely apply to perl6regex... it'll make the implementor's job *a lot* easier :) 13:42
fglock [particle]: ok
kolibrie: you can get to the return object with $$/ - $$/.yaml would give you the dump for the return object 13:43
kolibrie fglock: the dump of the whole return object. I'd like to be able to generate a structure with just the name of the token with its captured value (not the whole object) 13:45
but I also want something flexible enough so that I can change my mind about what I want in my structure 13:46
so I think I want a real emitter, but am not sure the best way to go about writing one
[particle] kolibrie: like $/<token> ?? 13:47
fglock kolibrie: try this: perl -e 'use v6-alpha' - ' my $content = "xyz abc"; $content ~~ / $<name> := (<alpha>+) { return { alpha => "$<name>" } } /; say $$/.yaml ' 13:49
13:51 mezelf left
kolibrie fglock: yes, that's the idea 13:52
13:52 rlb3 joined
audreyt fglock: you read it wrong I think 13:52
"Is prohibited" means "the match fails"
not "it loops".
i.e. perl -e '1 =~ /()+/' terminates 13:53
because on the second time it fails
and so () matched only once
fglock audreyt: yes, i got it - i'm fixing it now
audreyt cool. fwiw PGE loops here too. 13:54
13:54 jferrero joined
kolibrie fglock: is the name of the token available in the match object, so I do not have to hard-code the key name? 13:55
Limbic_Region out of curiosity - what do rules do in the situation of the following p5 regex s/(\d)\s+(\d)/$1$2/g; # with a $str of '2 3 4'
audreyt ?eval $_ = '2 3 4'; s:g/(\d)\s+(\d)/$0$1/ 13:56
13:56 evalbot_r13552 is now known as evalbot_r13555
evalbot_r13555 Error in rule: unknown parameter 'g' at /home/audreyt/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Compiler/Regex.pm line 61. Error in rule: unknown parameter 'g' at /home/audreyt/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Compiler/Regex.pm line 61. 1 13:56
fglock kolibrie: it is, but <alpha>+ creates an array called $<alpha> - you need a way to transform this array back into a string 13:57
audreyt ?eval $_ = '2 3 4'; s/(\d)\s+(\d)/$0$1/; $_
evalbot_r13555 \"23 4"
audreyt hm. fixing :g now
Limbic_Region ok - so it doesn't change behavior :-(
is there some magic that tells it to become '234' 13:58
fglock audreyt: is this correct? "<alpha>+ creates an array called $<alpha>"
audreyt :overlap
fglock: correct.
[particle] there is no magic in regexes, contrary to popular belief :)
audreyt Limbic_Region: :overlap
Limbic_Region woot
fglock i find this behaviour strange - it would be better if it created a Match with positionals 13:59
13:59 vel joined
kolibrie fglock: on my talk (feather.perl6.nl/~kolibrie/extraction.xul), slide 19 has the grammar that outputs slide 20. I want to update the grammar so that it outputs slide 22 13:59
lambdabot tinyurl.com/ggcvc
audreyt fglock: I actually agree
I don't know what was TimToady et al's motivation for this
maybe it makes it easier to tell a quantified match with a nonquantified? 14:00
fglock i find it makes the result more difficult to use 14:01
audreyt and I agree.
[particle] am i wrong in thinking pge does that?
audreyt PGE does create Array according to spec.
as does PCR, but fglock is finding the spec weird 14:02
and it seems weird to me too
[particle] but you get numbered positionals for free
$/<alpha>[0] 14:03
audreyt you get that too with $<alpha> set fo Match.
the thing you don't get with Array is
$<alpha>.from
$<alpha>.to
and that troubles me a bit.
you have to say
$<alpha>[0].from
$<alpha>[-1].to
and that only works because it was <alpha>+
if it was <alpha>* it gets more hairy. 14:04
fglock kolibrie: you need to process the matches with map() or something, in order to get the data structures
audreyt so thing is, why is it an Array, not a Match with only positional parts?
14:04 iblechbot joined
audreyt TimToady, pmichaud: ideas? 14:04
fglock you can't also use ~$<alpha> 14:05
audreyt which would stringify incorrectly, right.
all in all I find it weird design, but it may be I've missed something prodounf 14:06
profound, even.
fglock: perhaps p6l it?
[particle] yeah, p6l's a great idea
fglock given the language evolution, this behaviour might have been specified before they knew what match objects would look like 14:07
[particle] fglock: are you using pge's p6regex tests?
fglock [particle]: yes, but i'm implementing features in no particular order 14:08
[particle] just wondering if you were sharing the tests... since we designed them for sharability
audreyt [particle]: t/p6regex/regex_tests 14:09
fglock audreyt: re p6l - please do :)
[particle] ah, we've split that out into many files now
t/compilers/pge/p6regex/rx_*
much easier to maintain
[particle] updates his pugs wc 14:10
audreyt fglock: hm I see the motivation. 14:12
fglock: the motivation is
/<alpha> foo <alpha>/
see, now $<alpha> cannot be a Match
as its range is not contiguous
do you agree in that case an Array is warranted? 14:13
[particle] unless it's a multi-dimensional Match (but i think that's *ugly*)
fglock I really should have been writing my thesis project, but -Ofun is below zero
audreyt how can it be multidimentional?
what does it mean in this context, that is
[particle] nth dimension is nth appearance in the match
fglock audreyt: but it still works, you still have $/<alpha>[0] and all 14:14
audreyt fglock: but what will $<alpha>.from say?
and how would it stringify?
fglock it will look wrong in this particular case, but it is still useful for everything else 14:15
audreyt er, what I means is
have /<alpha> foo <alpha>/ still set $<alpha> to Array
but have /<alpha>+/ set it to Match
the Array is warranted because naively treating it as a Match will yield surprising results
fglock how about /<alpha> <alpha>+/ 14:16
audreyt in which case $<alpha> is still array
[0] is the first Match
and [1] is the Match that then has multiple positionals
makes sense?
fglock yes 14:17
same with /<alpha>+ <alpha>+/ 14:18
hmm - how about / [ x <alpha>+ ] / - this will not stringify correctly either 14:19
i mean - how about / [ x <alpha> ]+ / - but it looks ok this way
clkao fglock: i was to ask you something the other day 14:20
oh, the overlod thing is fixed. did ite hlp ?
fglock clkao: yes
clkao: there is a still a problem, but I need to write a test case
clkao what about it? 14:21
i am not entirely sure the readonly flag is right
fglock I'm not sure if it is Data::Bind fault
clkao the overload mechanism is totally crazy
fglock one sec
audreyt fglock: sent. 14:22
fglock clkao: t/xx-uncategorized/rule_recursive.t was ok in the first tests, and then it returned to the wrong behaviour; but I can't run it right now (fixing other things) 14:23
audreyt: thanks! 14:24
audreyt np :)
fglock audreyt: <null>+ is fixed 14:39
svnbot6 r13556 | fglock++ | Pugs-Compiler-Rule - Regex runtime detects infinite loop in <null>+ and fails
audreyt fglock: eggcellent
fglock ratchet would still fail - need to implement there too 14:40
svnbot6 r13557 | audreyt++ | * HsBridge: Hide warnings for now.
audreyt fglock: try this 14:41
regex r { <null> | x <r> }; "x" ~~/<r>/
I mean
fglock audreyt: it should be documented that <null><null> fails
audreyt regex r { <null> | x <r> }; "x" ~~ /<r>$/
it still loops 14:42
fglock looking
audreyt er, null><null> should work
it's just <null>+ should match only once
and <null>* too
compare /()()/ in p5
fglock right 14:44
[particle] no quantifiers (other than ?) allowed on zero-width assertions/rules... is that the proper wording? 14:45
s/rules/matches/
ajs_ Well, I'm getting ready to be beaten with a stick, but here comes my highly speculative checkin. 14:48
svnbot6 r13558 | ajs++ | First pass at macro API document as discussed with TimToady on IRC yesterday. This verison is really just a starting point for discussion. 14:49
audreyt [particle]: no... quantifiers are fine it's just always match once
14:49 ajs_ is now known as ajs_work
fglock audreyt: re "regex r { <null> | x <r> }; "x" ~~ /<r>$/" - I get a rule engine internal error; it is passing wrong parameters somewhere 14:54
audreyt I get a loop, weird. 14:56
if you delete the skip in rule_recursive.t and run with pugs, that's what I get
svnbot6 r13559 | ajs++ | postcircumfix can take "is parsed" if quote-like operators can... of course, this brings up the question of how balanced operators affect the parsing of program text inside them, but we have said it can happen somehow... or are quote-like operators a hairy special case? 14:57
kolibrie fglock: I finally have a script that mimics my slide example, but for some reason <( )> isn't changing the output. Which module is that in (I may have to reinstall)? 14:59
clkao fglock: rule_recurse. the 2 tests are different. if you change the 2nd test from "x" to "" it works. 15:00
fglock kolibrie: <( )> is defined in Pugs-Compiler-Rule 15:02
kolibrie fglock: ok 15:03
Limbic_Region smoke time IMO is very reasonable now even on a weak box fwiw 15:06
fglock clkao: I'll get back to debugging after lunch
Limbic_Region I am on 30 minutes on the weakest machine I smoke on
15:08 DaGo joined
TimToady blah 15:10
EMUSTWAITFORCOFFEETOBREW
ajs_work heh
SIGPAUSE 15:11
Limbic_Region . o O ( brain clicks on when coffee pot clicks off ) 15:12
audreyt gaal Juerd or anyone else with sudo/root on feather - can I get #ghc added to the list of allowed channels purty please 15:17
kolibrie fglock: it still seems not to work for me, though both t/04-rule.t and t/09-ratchet.t pass all tests 15:18
pasteling "kolibrie" at 66.239.158.2 pasted "fglock: script that seems to ignore <( )>" (43 lines, 932B) at sial.org/pbot/19883
ingy morning... 15:23
15:25 xinming joined
Limbic_Region salutations 15:25
xinming - do you have anything to do with the free X server for windows called xming?
15:28 mollmerx joined 15:31 snowstalker joined 15:32 justatheory joined 15:35 lanny joined, prefiks joined
fglock kolibrie: you can't use <(...)> and { return ... } at the same time, because they are trying to do the same thing 15:41
also, 'rule talk { <presenter> }' doesn't care about the object returned by <presenter> - it just makes the capture and sets .from and .to 15:42
lunch & 15:43
kolibrie fglock: taking out the one or the other doesn't change anything for me, it always returns the whole match 15:49
TimToady goto 5:30 15:51
xinming Limbic_Region: >_< 15:56
Limbic_Region: It's just a name with name which is like mine. >_< I did nothing on xming... >_< 15:57
lanny Hmm. If I create a module in ext/*, compile and see it in blib6/lib/*, write a script which use()'s it, and ./pugs -Iblib6/lib myscript; Is there something I've missed so that I don't get error 'Can't locate *'? 16:01
kolibrie fglock: I just retested all the code snippets from the channel that you've provided over the last day, and they all work. So that is baffling to me 16:02
16:03 mauke_ joined, weinig joined 16:04 Psyche^ joined 16:13 Psyche^ is now known as Patterner 16:18 mauke_ is now known as mauke 16:19 bernhard joined 16:20 fglock joined
pasteling "fglock" at 200.17.89.34 pasted ""got: beth"" (42 lines, 935B) at sial.org/pbot/19885 16:24
16:24 evalbot_r13555 is now known as evalbot_r13559, mozzz joined
fglock kolibrie: you must propagate the return object through the match chain 16:25
16:26 prefiks left
Juerd lsb end 16:31
That had to be /sb end
kolibrie fglock: so I need to add a return block to the other rule? or what do you mean? 16:33
fglock: oh, I just noticed your paste 16:35
fglock kolibrie: anyway, this only captures a single name 16:39
kolibrie fglock: that's why .+? is nice 16:40
is there a variable that contains the name of the rule we are in?
rule talk { { return $something }}; # where $something contains 'talk' 16:41
16:42 discordja joined
fglock kolibrie: &?ROUTINE.name might work 16:42
kolibrie fglock: will try later - must prepare for trip now
fglock kolibrie: I think m:g// works in pugs 16:43
kolibrie fglock: will try that too
fglock &?ROUTINE.name returns '&main::__ANON__' in v6.pm 16:44
kolibrie not so useful
[particle] fglock: i don't think that's currently specced in S05, but i've been requesting it as well
kolibrie TimToady: audreyt: others: please scrutinize my slides and post comments :) 16:45
&
TimToady slide 3 is a syntax error 16:47
s:g/5/6; needs a final / 16:49
ofer0 heya TimToady !
TimToady howdy 16:50
ć‚·ćƒ£ćƒÆćƒ¼ć—ć¾ć™ć€‚ļ¼† 16:52
16:53 aufrank joined 17:01 snowstalker_ joined 17:06 zeriod joined
pasteling "fglock" at 200.17.89.34 pasted "brian & Beth" (37 lines, 826B) at sial.org/pbot/19887 17:31
svnbot6 r13560 | fglock++ | v6 - m:c defaults to non-overlapping
17:31 buetow joined
fglock kolibrie: this version works - sial.org/pbot/19887 (please update v6.pm to r13560) - it does no backtracking and it is very fast 17:33
lambdabot Title: Paste #19887 from "fglock" at 200.17.89.34
17:34 rodi joined, evalbot_r13559 is now known as evalbot_r13560
fglock kolibrie: it uses lookahead instead of backtracking 17:35
hmm - the algorithm in sial.org/pbot/19887 may actually work for implementing .*? inside Token 17:42
lambdabot Title: Paste #19887 from "fglock" at 200.17.89.34
17:44 fglock left
TimToady audreyt: why does slurping a 37M file require 400M stack space? 17:52
(I have this *big* yaml file...)
obra *laugh* 17:53
PerlJam TimToady: it's okay because in the future, disk, CPU and RAM will all be cheap and abundant enough that you won't have to worry about it :) 17:54
TimToady seems like, of all languages, Haskell oughta be able to just mmap the file in as an immutable string and run with it... 17:56
[particle] (perl5) how do i get the number of times $a=~m/a/g matches? 17:57
PerlJam [particle]: $count =()= $str =~ m/.../g;
TimToady $num = () = ...
PerlJam use the goatse operator 17:58
TimToady I wasn't gonna say it...
[particle] ah, right! thanks.
=()=
cjeris ok, if that's the goatse operator, what's the unicode spelling? 18:03
wilx lol 18:05
18:07 ruoso joined
PerlJam perl5 tends to shy away from unicode operators. 18:07
Limbic_Region I tend to avoid the goatse and type that as ($count) = $str =~ m//; 18:18
PerlJam But that does the wrong thing. 18:19
you'd have to do @array = $str =~ m/.../g; then $count = @array 18:20
[particle] $count = @{[ $str =~ m/.../g ]} should work too 18:21
in fact, that's probably what i really wanted, since i was trying to evaluate in an expression if $count < 2 ... 18:22
but, an extra lexical won't hurt that code 18:23
18:25 weinig is now known as weinig|bbl 18:27 pmurias_ joined 18:31 Limbic_Region joined
Limbic_Region PerlJam - CGI:IRC disconnected. I realized my mistake nearly as soon as I hit return 18:31
PerlJam [particle]: I don't think perl has an optimization for the @{[...]} version. (i.e., it probably still copies the array and takes a reference to the copy) 18:32
[particle] pj: sure, but you can use it in an expression 18:33
18:35 foo\ joined
[particle] ...without parens for disambiguation. i guess it's no difference, really just style. 18:35
PerlJam well ... perl's motto is true ;) 18:36
[particle] print 'multi' if 1 < ($a =()= 'ababa' =~ m/b/g) # multi
print 'multi' if 1 < @{[ 'ababa' =~ m/b/g ]} # multi
18:37 glasser left, discordja joined
rodi ?eval grammar Foo { rule bar { baz } }; "baz" ~~ /<Foo.bar>/; # should this work? 18:43
evalbot_r13560 *** Cannot parse regex: <Foo.bar> *** Error: Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} )
rodi ?eval grammar Foo { rule bar { baz } }; "baz" ~~ /<bar>/; # should this work?
evalbot_r13560 *** Cannot parse regex: <bar> *** Error: Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} )
rodi Interesting. The latter actually works on my Pugs, same rev. 18:44
Err... by works, I mean it matches. 18:45
PerlJam I wouldn't have expected that one to work in any case. 18:46
18:46 beppu_ joined
rodi which one? neither? 18:46
PerlJam the latter
How does pugs know to use Foo.bar rather than Main.bar or Blah.bar or some other bar?
rodi I agree- I was surprised that it worked (for me on r13560) and the other did not. That seemed backward to me. 18:47
But I'm clearly doing something weird...
18:48 xdg joined 18:49 weinig|bbl is now known as weinig
rodi ?eval grammar A { rule b { c } }; "c" ~~ /<b>/ 18:52
evalbot_r13560 *** Cannot parse regex: <b> *** Error: Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} ) 18:53
rodi ?eval rule b { c }; "c" ~~ /<b>/
evalbot_r13560 *** Cannot parse regex: <b> *** Error: Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} )
18:53 idiotmax joined
rodi ?eval "c" ~~ /c/ 19:02
evalbot_r13560 Match.new( ok => Bool::True, from => 0, to => 1, str => "c", sub_pos => (), sub_named => {} ) 19:03
19:18 mdiep joined 19:31 buetow joined 19:48 fglock joined
svnbot6 r13561 | lanny++ | [ext/Math-Random-Kiss] 19:48
r13561 | lanny++ | - simple fast PRNG (Marsaglia)
r13561 | lanny++ | - has a working srand() but is *slow* (in pugs) so no Prelude for it
r13561 | lanny++ | [t/unspecced/sort.t]
r13561 | lanny++ | - minor cleanup
fglock I'm installing Perl6::Rules 19:58
TimToady planning to harvest the corpse? 19:59
fglock maybe - I wonder if it could complement PCR in some way - maybe each one does 30% of the job, so there is only 40% left to do :) 20:01
20:05 fglock joined 20:07 fglock joined
fglock is there a report on the status/problems of Perl6::Rules ? 20:08
TimToady fglock: I think that's an excellent idea.
the manpage has caveats at the end, I believe
fglock it would probably have to be tested against many versions of perl5 to be sure which parts can be reused 20:09
TimToady if I recall, one of the reasons it was abandoned was because of just such bitrot. 20:10
but perhaps the less adventurous parts of it are stable. 20:11
certainly to the extent that we can stay in P5's regex engine and not call P5 subs, we'll be a lot faster. 20:12
on the other hand, working around re's closure bugs may entail extra calls, so it might not be a win in some cases. 20:13
another approach might be Perl6::Rules with a replacement re engine. 20:14
fglock the cpan testers report it actually not so bad - maybe we can just choose P6:Rules/PCR based on which nodes we get in the syntax tree
TimToady: PCRE ? 20:15
TimToady dunno, I've never played much with pcre
having pre
:)
I think a lot of the current overhead is just handshaking between pugs and PCR though. 20:16
20:16 _bernhard joined
TimToady when I run a pugs program with lots of very simple regexes, it slows way down from :P5 20:16
about 60x
let me paste the program
fglock we could compare the pugs times with v6.pm 20:17
pasteling "TimToady" at 71.139.13.50 pasted "program that slows 60x under PCR" (19 lines, 387B) at sial.org/pbot/19889 20:18
TimToady the one :P5 in there is because it doesn't split right on big characters.
but if I change all the other regexen to :P5 it runs about 60 times faster
this is on my radicals dictionary, which you can find a copy of at wall.org/~larry/krads 20:19
fglock i wonder if pugs is calling pcr's :P5 or pcre's 20:20
TimToady dunno offhand
pasteling "TimToady" at 71.139.13.50 pasted "faster version with :P5" (19 lines, 405B) at sial.org/pbot/19890 20:25
fglock everything in that snippet can be translated to :p5 - actually, only Regex declarations are special, because they may be backtracked into
TimToady that's what I was saying to audreyt the other day. A lot of this stuff could be directly translated to p5
and it would obviously run a lot faster under the current setup. 20:26
fglock this is actually very easy to implement - I started with the difficult part 20:27
TimToady I suspect the bridge might actually be the slow part right now...
at least for trivial regexes 20:28
fglock but that's fixable - we can compile to :p5, and :p5 regexes are fast
so trivial regexes are not a problem 20:29
20:29 baest joined
TimToady well, yes, almost the entire approach of regex optimization in P5 is to avoid running the regex engine whenever possible. :) 20:29
but it would be nice if the bridge were fast too.
on the other hand, given the whole thing is kind of a bootstrap anyway... 20:30
the translation to :p5 is probably more useful.
fglock yes - pcr compiles <'xxx'> to ' substr() eq ... ' - it can continue doing that
TimToady and will enable a lot more to get accomplished in the medium range 20:31
so I think a hybrid approach is very workable 20:32
svnbot6 r13562 | fglock++ | Pugs-Compiler-Rule - added Pugs::Emitter::Rule::Perl5::Regex 20:34
kolibrie TimToady: thank you for your eyes on that s:g/5/6/ error 20:35
fglock: thank you for that paste
will play with it more when I get to Pittsburgh
TimToady ?eval '唐 otori'.split(/\s+/) 20:36
20:36 evalbot_r13560 is now known as evalbot_r13561
evalbot_r13561 ("Ć„ o", "ori") 20:36
fglock kolibrie: I wrote a version that does yaml, but it didn't compile right under v6.pm
TimToady should have said
("唐 o", "ori")
well, no, it should have said 20:37
("唐", "otori")
anyway, that's why I had to keep the :P5 on the split in my program
?eval "唐".say 20:38
evalbot_r13561 OUTPUT[唐 ] Bool::True
TimToady ?eval '唐 otori'.split(/\s+/) 20:39
evalbot_r13561 ("Ć„ o", "ori")
clkao ?eval "\x{2668}"
blah
evalbot_r13561 "\\x2668"
TimToady yow 20:40
that really messed up my terminal for a bit
clkao you messed up mine as well
kolibrie leaves before his terminal blows up &
TimToady ?eval ("唐", "otori").say
evalbot_r13561 OUTPUT[唐otori ] Bool::True
TimToady I wonder if evalbot is splitting the 唐 on "whitespace" somehow. 20:41
clkao i have a dejavu. did you mention this a few days ago?
TimToady doesn't happen in my own pugs. I get the (wrong) ("唐 o", "ori")
instead. 20:42
fglock the Perl5::Regex emitter will just have silly things like ' sub dot { "." } '
TimToady yes.
fglock: assuming /s
fglock TimToady: yes, /s is added by Pugs::Compiler::RegexPerl5, which already works (it makes the p5->pcr internal bridge) 20:46
TimToady any idea where the unicode mixup is? 20:47
fglock pcr uses plain '\s' - it must be somewhere between p5 and haskell 20:48
20:49 beppu_ joined
fglock ok, I've implemented some nodes - let's add some tests 20:49
20:57 ofer0 joined
svnbot6 r13563 | fglock++ | Pugs-Compiler-Rule - added tests to p5-regex emitter (not ready yet) 20:57
fglock should it compile <ws> to \s+ ? probably not...
TimToady looks to me like a mixup in counting characters vs bytes
character positions should really be independent of representation 20:58
<ws> does a lot more than \s+, and can be overridden... 20:59
fglock yes, so no :p5 for it
TimToady the nice thing about this kind of optimization is that you can just give up if you're not sure. 21:00
fglock TimToady: Pugs-Compiler-Rule$ perl -Ilib t/12-plain_regex.t 21:05
it works
svnbot6 r13564 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex emitter passes tests
fglock it is now possible to port things from Perl6::Rule, and see what breaks 21:06
TimToady fglock++ 21:13
svnbot6 r13565 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - captures, dot
r13566 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - alternation 21:16
obra [B[B [B[BMIT should be very compat 21:19
[B[A
21:19 jesse___ joined
svnbot6 r13567 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - non-capturing group 21:20
obra fglock: have you considered getting PCR to emit the same AST as Perl5 MAD_PROPS? 21:21
fglock obra: sorry, I don't know it - link? 21:22
but PCR is rule-specific
do you mean v6.pm ? 21:23
obra I did
mad props is larry's "perl5 to lossless AST" enhancement. it's what sage was using to translate p5 to p6
fglock v6.pm AST is a plain match tree, very close to the actual syntax - it sure can be transformed into something more useful 21:25
svnbot6 r13568 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - \s, \S, etc
fglock TimToady: it seems to be almost useful already 21:27
21:29 evalbot_r13561 is now known as evalbot_r13567 21:32 cjeris left
svnbot6 r13569 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - <before ...>, <!before ...> 21:32
r13570 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - <after ...>, <!after ...> 21:35
r13571 | markstos++ | [t/unspecced/sort.t] 21:38
r13571 | markstos++ | add comment to file asking for further clarification of the file itself.
r13571 | markstos++ | It includes an implementation of a spec'ed feature, yet exists in
r13571 | markstos++ | the "unspecced" directory of the test suite...
fglock perl5 /$/s is perl6 /$$/ ?
Juerd Perl 5's /s doesn't change $ in any way. 21:41
Perl 5's /s only changes .
fglock Juerd: thanks 21:45
svnbot6 r13572 | fglock++ | Pugs-Compiler-Rule - Perl5::Regex - ^ $ <null> 21:48
fglock obra: is there a page about MAD_PROPS ?
21:49 Limbic_Region joined
obra looks for timtoady 21:49
TimToady hides 21:50
I think MAD is far to P5 specific to serve for P6 21:51
*too
perl5 /^$/m is perl6 /^^$$/
obra TimToady: even for the output of the p6->p5 translator? 21:52
fglock @tell audreyt Pugs-Compiler-Rule$ perl -Ilib t/12-plain_regex.t -- compile Regex to :p5 or die; creates normal Match objects
lambdabot Consider it noted.
obra (Given that larry wrote it and I'm just pointy hair around these parts, listen to him and not to me)
fglock obra: :)
TimToady: I'm considering using something like [^|<after \n>] for ^^, so I can mix ^ and ^^ in the same sentence 21:53
TimToady alternately, just throw /m in there and use \A and \z for ^ and $ 21:54
I think that'd be a lot faster and simpler.
21:55 ofer0 joined
fglock plain :P5 uses /s by default, right? 21:56
TimToady I wouldn't think so.
21:56 Odin-LAP joined
TimToady ?eval "\n" ~~ m:P5/./ 21:57
21:57 evalbot_r13567 is now known as evalbot_r13572
evalbot_r13572 Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} ) 21:57
TimToady no, it doesn't
fglock ok
TimToady ?eval "\n" ~~ m:P5/(?s)./ 21:58
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 1, str => "\n", sub_pos => (), sub_named => {} )
TimToady that's how you turn /s on under :P5
fglock given that a Regex compiles ok to :p5, you can call pcre instead of pcr/pge, if pcre is faster 22:01
audreyt: ^^^ 22:02
TimToady or have a mode where you call all three and vote on the results. :) 22:03
fglock yup
TimToady ?eval "a\nb" ~~ /^a$$.^^b$/
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 3, str => "a\nb", sub_pos => (), sub_named => {} ) 22:04
TimToady ?eval "a\nb" ~~ m:P5/(?smx) \A a $ . ^ b \z/
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 3, str => "a\nb", sub_pos => (), sub_named => {} )
TimToady ?eval "a\nb" ~~ /^ a $$ . ^^ b $/ 22:05
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 3, str => "a\nb", sub_pos => (), sub_named => {} )
TimToady same thing.
?eval "a\nb" ~~ m:P5/(?smx) \A a $ . ^ b \Z/
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 3, str => "a\nb", sub_pos => (), sub_named => {} ) 22:06
TimToady ?eval "a\nb\n" ~~ m:P5/(?smx) \A a $ . ^ b \Z/
evalbot_r13572 Match.new( ok => Bool::True, from => 0, to => 3, str => "a\nb", sub_pos => (), sub_named => {} )
TimToady ?eval "a\nb\n" ~~ m:P5/(?smx) \A a $ . ^ b \z/
evalbot_r13572 Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} )
TimToady yes, $ turns into \z rather than \Z
fglock TimToady: added to TODO - i gotta go :( 22:08
thanks!
TimToady \n turns into (?:\n\r?|\r\n?) or some such
you're welcome
22:09 fglock left
svnbot6 r13573 | fglock++ | Pugs-Compiler-Rule - Perl5/Regex TODO list 22:09
22:15 putter joined
putter "If there's a particular problem that Perl is trying to solve, it's the basic fact that all programming languages suck." Onion '06. Oh yeah. 22:16
fglock: ping? 22:17
22:24 mako132_ joined
TreyHarris markstos: re your last commit, lanny discussed this on the channel at the time... there was no obvious place to put the pure-perl sort. putting it in prelude would be premature until it actually worked well. it came down to creating a new place for it, or just put it into unspecced. so that's where it went. 22:29
oh... wait, he's not here... that's odd, i didn't see his /part or /quit message
@tell markstos re your commit r13571, lanny discussed this on the channel at the time... there was no obvious place to put the pure-perl sort. putting it in prelude would be premature until it actually worked well. it came down to creating a new place for it, or just put it into unspecced. so that's where it went. 22:30
lambdabot Consider it noted.
putter notes there seems to be a lot of confusion about Test. haven't looked at it. perhaps needs cleanup? 22:31
TreyHarris putter: how so?
putter a number of curious misunderstandings about what the Test methods mean have been mentioned recently, by multiple people. 22:32
TreyHarris i've noticed this too, but i've taken it as misunderstandings about the subtleties of unit testing and how a test harness should work rather than a bad test api. the docs could bear improvement though. 22:33
and i am planning on merging my Test::eval_* as macros change as soon as this release goes out, which will make the vagaries of the eval tests somewhat less vague... 22:34
putter right. sorry, I was unclear. doc perhaps needs cleanup.
though, on reflection, dies_ok() is perhaps an unfortunate name, as unlike the other ok's, a true return value is very much not expected. 22:35
TreyHarris oh? i read the subs as, "is/does this <whatever>?" so ok(): "is this ok?" is():"is this?" eval_ok(): "does this eval ok?" dies_ok(): "does this die ok?" 22:37
putter or 'is' compares two values, 'ok' checks for true... 22:38
TreyHarris putter: well, in that case you'd have to have the right definition in your head for dies_ok and the name doesn't really matter that much. i don't get the mapping that results in dies_ok being reversed from everything else, though. but i know there must be such a gestalt, since several folks have said the same... 22:40
22:44 buubot joined
svnbot6 r13574 | putter++ | backtrack_api.pl - a bit of progress. Almost ready for PCR. 22:44
putter dinner &
23:01 discordja joined
ingy hola 23:11
23:11 fglock joined
obra hey ingysan 23:12
23:12 beppu_ joined
fglock ola 23:12
putter: we are quite out of sync
23:13 mjk joined
ingy obra! 23:13
obra: where is cl these days? 23:14
and where are you?
fglock putter: re backtrack_api.pl - it will be nice
ingy: I started the python parser - but nothing worth of showing yet
ingy fglock: cool :) 23:15
obra ingy: Flat 16, #12 Leinster Terrace, London W2
ingy is that home?
obra for cl
for me, no. I'm visiting
ingy ok
obra where are you? 23:16
ingy oh... Seattle 23:18
23:18 bcorn joined
ingy Living on capitol hill with hvc 23:19
she's working at amazon
we have a big old house
totally awesome
obra nice
ingy I don't see her much though. 23:20
TreyHarris ingy: oh, i didn't realize you were here in seattle. do you know if there's an active seattle.pm? the seattleperl.org says the next meeting will be may 16th, so i'm guessing no...
ingy just in passing mostly
TreyHarris: oh, yeah there's SPUG 23:21
very active
chromatic spoke last Tuesday
TreyHarris oh. what's their website? seattleperl.org says "SPUG", so i thought that was the one 23:22
ingy are you a Seattle noob or something
?
yeah, that website is out of date I guess 23:23
TreyHarris ingy: 3-year newbie :-) but when i first got here the spug meetings were rarely convenient, so i only came a few times. i was a regular at newyork.pm before
ingy get on the mailing list
where do you live?
23:23 fglock left
TreyHarris downtown. spug used to meet in the u-district. since i don't drive, that meant allowing an hour to get there by bus, and the meetings were at 6:30, and the corporate culture at $job did not look kindly upon people walking out the door at 5:30 ;-) 23:24
obra oh, trey, Nathan says hi. 23:25
TreyHarris obra: nathan says hi to you!
nothingmuch makes carpet noises
23:26 beppu_ joined
TreyHarris nothingmuch: what noise does a carpet make? 23:27
nothingmuch i don't know, it's a quote
ingy what's the way to make vim open the file whose path is under your cursor????
23:28 weinig is now known as weinig|bbl
nothingmuch freesound.iua.upf.edu/tagsViewSingl...id=2434_68 23:29
lambdabot tinyurl.com/q3vk7
TreyHarris ingy: drag over the path, type 'vim' into a new shell, and then click the middle button? ;-)
nothingmuch i think he means inside of vim itself
gvim, that is
TreyHarris nothingmuch: i know, i was just being an ass ;-) 23:30
nothingmuch TreyHarris: the quote is from a sketch by some israeli band 23:31
he.wikipedia.org/wiki/היפו×Øי_פוגי
lambdabot he.wikipedia.org/wiki/היפו×Øי_פוגי
TreyHarris nothingmuch: ah. l'shanah tovah, by the way
nothingmuch thank you lambdabot
bah 23:32
jewish holidays stink ;-)
TreyHarris lol
nothingmuch prefers christmas at grandma's
TreyHarris no cholent for you?
nothingmuch i mean seriously, wtf is up with eating fish head?
hell no ;-
TreyHarris giggles
nothingmuch no gefilte fish either
TreyHarris gefilte pork-chop? 23:33
Patterner *BZZT* no halal
nothingmuch i think that would still be awful
the gefilte part ruins everything
TreyHarris mmm.. yeah
nothingmuch european jewish cuisine has this tendancy to be able extract just the nastiness out of the ingredients ;-)
TreyHarris lol. i'm quite fond of the occassional kreplach or brisket. but hold the gefilte fish, or the tongue... 23:35
23:35 mako132_ joined
TreyHarris ingy: thanks, i subscribed. i'll try to make it next time. i wonder if audrey's made contact with anybody in spug, she's swinging up here next month. her flight doesn't arrive until thursday evening, though, so there may not be time for anything 23:37
beppu_ ingy: gf 23:39
that's how you open a file that your cursor is over in vim.
TreyHarris beppu_: oh, i thought you were greeting ingy with the traditional salutary, "girlfriend!" 23:41
beppu_ ;)
TreyHarris would sub looks_like_number ($x) { +$x eqv $x } work as a reimplementation of looks_like_number? or would you have to say (+$x).Whatever eqv $x.Whatever to avoid the type correspondence check? or am i missing another wrinkle? 23:46
(neither work in current pugs, so i may very will be missing something) 23:48
audreyt +$x eq $x 23:52
lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
audreyt is more like it
lambdabot: @messaes
lambdabot fglock said 2h 25s ago: Pugs-Compiler-Rule$ perl -Ilib t/12-plain_regex.t -- compile Regex to :p5 or die; creates normal Match objects
nothingmuch hiya audreyt
is it already saturday morning?
audreyt heya nothingmuch
ingy hi audreyt!
audreyt it is, and I have to run to $job, and once I'm back we can hack on MI a bit 23:53
nothingmuch okay
i need to sleep
so it should be in sync
audreyt I have all day tomorrow until wednesday
nothingmuch ah
TreyHarris audreyt: ah, good point, thanks
nothingmuch sunday is slightly swamped, monday might also be
audreyt have you done the polishing?
nothingmuch but after that I should have a bit of spare time
nope, i've been sitting and thinking of other stuff
but it's a 30 minute fix
2-3 smallish refactorings
audreyt oh ok. then perhaps find that 30 minutes once you wake up
nothingmuch *nod* 23:54
audreyt and we'll go from there
if you're not online I'll do releng stuff
ingy beppu_: thanks!!
nothingmuch *nodnod*
morning is reserved for you
or at least MO
then I go hiking with Neama
beppu_ ingy: you're welcome.
nothingmuch and in the evening I belong to Ann
feck! 23:55
drink and arse too, for good measure
nothingmuch wants tehre to be a portable font acquisition type thingy to make Imager::Font easier to use
e.g. it searches in the "normal" places for each platform 23:56
and can also accept additional include path
and lets you find fonts by charecaristics and name
hmm 23:58
\search.cpan.org/~rpagitsch/Win32-Fo...01/Info.pm
that's a nice begining
lambdabot Title: Win32::Fonts::Info - Perl extension for get a list of installed fontfamilies on ..., tinyurl.com/j5w8n
nothingmuch if i could have that (or a subset of that) on OSX and *x that'd be nice