svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/
Set by putter on 11 February 2007.
TimToady_ does it look like -STD is on the path toward sanity to you? 00:00
putter moritz: good night *wave* 00:17
TimToady_: re "stop", :)
re "sanity", let's see... 00:18
yes 00:21
:)
putter I haven't looked closely at most of it. And the real way to detect problems will be to try and run it. But 00:23
basically what it provides is a reference, a spec, which it achieves regardless of any bugs present. 00:24
putter hmm. with delighted emphasis "a reference! :)". 00:26
feel free to use a simple text macro for the token category decls. slightly more work for a preprocessor vs clarity. 00:29
TimToady yah 00:30
putter sigh. more name pain. since what was called a "rule" is now called a "named(?) regex", "subrule" needs to be renamed. "subregex"? 00:54
putter Is there some way to do relative addressiing within the numbered capture hierarchy? starting with "give me the leaf match which encloses the current part of the regex". I don't immediately see that. Looks like one has to nonlocally (within a regex) navigate from the top $/ down. 00:58
audreyt putter: $/[-1] ? 01:04
putter I'm not yet sure what the p6 senario is, but at least in p5, the match array is prepopulated with failed matches. At least that's my fuzzy recollection. 01:13
((((( (.) { $foo[0] } ))))) with some foo would avoid having to count parens and say $/[0][0][0][0][0][0]. 01:14
"bxa" =~ /^(?(1)a|b)(x)(?(1)a|b)$/ works. so, at least nominally, \1 exists before it is reached, even during execution. 01:18
obviously one would usually use names. and one could alias the needed match. (((( $foo := ( (.) { $foo[0] } ))))) or something like that. 01:20
i suppose one might have a $/.current or somesuch
TimToady sorry, network problems, have to reboot & 01:21
TimToady we still call them subrules 01:28
it's an inconsistency we can live with
putter (none of my questions were pressing. just things which popped up as I went coding by) 01:28
TimToady and yes, $/[-1] or $-1 is supposed to be the previous () 01:29
audreyt TimToady: the Syn does not mention $-N anymore
TimToady also you can $0 := ... to start the numbering over
hmm.
audreyt neither does STD 01:30
putter re inconsistency, *shudder*. just as p[45] set the standard for regexps, p6 will like set a new standard. future generations will hate us less if we put together a sane nomenclature.
s/like/likely
audreyt neither does pugs :) which makes it noncanonical atm...
TimToady well, ideas welcome
also wondering how far context variables go in emulating attribute grammar attributes 01:31
avar audreyt: I'll cpan re::engine::POSIX tomorrow:) 01:32
TimToady also thinking about some kind of :inline( my $x is context )
audreyt avar: moose!
avar momo:)
audreyt my doctor just went in to tell me I'll be discharged tomorrow 01:33
avar You have internet at the hospital?
audreyt ah, this is .tw
avar (.tw)++
audreyt in taipei we have internet on public transportation (and taxis) :) 01:34
putter lol
avar oh man
crazy asian people, me like! (long time *snicker*)
audreyt for <usd$100/year
TimToady I used to have that back when my Ricochet modem worked... :( 01:35
audreyt so yeah, for all my wandering around the globe, taipei is still quite compelling a base station for me :)
TimToady now I have it again, since Google has re-wire(less)ed Mountain View
putter please do some internet equivalent of launching a satellite. the US really needs a "we are falling terribly behind!" wireless panic.
audreyt ooh nice. (even more excited at visiting mountain view) 01:36
putter s/a satellite/the first satellite/ 01:37
audreyt avar: so ::POSIX goes thru ::Plugin? or is it native? and are you also planning to do the plan9-engine thing?
avar native, I'm just using STD posix, dmq thought plan9 would be neat, haven't looked at it:)
but I'm getting pretty good at this:)
audreyt :D 01:38
avar++
avar I'm not shipping a posix regex libary though and just using whatever the system has (no workie on windows) 01:39
audreyt sure. it's proof-of-concept anyway
avar mm
putter avar: has anyone done a simple passthru, ie, do a plugin which uses the usual p5 engine... and then run all the p5 tests related to regexps? like substr.t, split.t, etc? 01:40
avar good resource on plan9 regexps?
putter: nope
putter :/
avar well, once you override the engine it'll work everywhere (probably not what you meant) but then again I'm not sure what you mean:) 01:41
re::engine::Perl; which did what you have by default would be a 20 line plugin with an arary of the function pointers it's using anyway
*array 01:42
audreyt avar: consider a ::Plugin::Perl5 that goes to userland and back
I believe that's what putter has in mind
avar ah, that's another issue though
audreyt but it ensures completeness around edge cases
avar mm, indeed
audreyt which is what we'll need for full fledged ::PCR
avar ::Plugin is far from complete as you may have noticed
but the framework around it is pretty good IMO, which is why I released it in its infant state:) 01:43
putter the biggest obstacle with the old plugin stuff was that the rest of p5 core, the substr node code in particular, was... taking liberties. do anything interesting (like accessing a variable) in a plugin, and you got later segfaults.
avar yeah, there are a lot of liberties:)
putter call. bbiab
avar audreyt: well, depending on what the edge cases are... 01:47
tracking down any stuff that presumes perl5-engine semantics on $your_engine is the most important stuff:) 01:48
audreyt *nod*
still a userland roundtrip test should be a good test to ::Plugin itself in t/ 01:49
avar mm
aren't plan9 regexes notable because of the implementation, not because of external interface/syntax? 01:52
avar tries to find some more on them 01:53
audreyt avar: are you not about to sleep? :) 01:58
avar mm, sleep:)
audreyt naps a bit :) & 02:02
putter back 02:06
yes, what audreyt said. 02:07
and turning up core problems will give p5p something to chew on, since apparently there is interest 02:08
devbot6 dev: WikiStart edited by malon <dev.pugscode.org/wiki/WikiStart> 02:32
putter wikibot++ 02:42
devbot6 dev: WikiStart edited by audreyt <dev.pugscode.org/wiki/WikiStart> 03:45
putter TimToady: in S05, shouldn't "token ident" and regex ident be \w* rather than \w+ ? 04:25
PerlJam putter: perhaps in the language exemplified by that example, all identifiers must be at least 2 characters :) 04:45
of course, S02 says "An identifier is composed of an alphabetic character followed by any sequence of alphanumeric characters. The definitions of alphabetic and numeric include appropriate Unicode characters. Underscore is always considered alphabetic." 04:46
depends on how you interpret "any sequence" really. 04:47
specbot6 r13591 | larry++ | wrong quantifier on ident noted by putter++ 04:55
putter wonders if w is <alphanum> 05:00
putter hmm, so does unicode alpha always include _, or is <alpha> ne <unicode alpha> ? 05:02
TimToady unicode alpha doesn't include _ 05:03
devbot6 planet6: Audrey Tang: Intermission over. <pugs.blogs.com/pugs/2007/02/intermi...v.html>
TimToady \w does, dunno about <alpha>
I think <alpha> is probaby unicode alpha
just to be consistent 05:04
putter blech, what ugly code. sigh. 05:16
svnbot6 r15313 | putter++ | yet_another_regex_engine - Began p6 regex support. Parrot rx_* tests currently 36% ok, 12 sec. 05:17
putter It would be nice to have a cannonical printed form for Matches. Perhaps ideally one line. So, for instance, the parrot rx_* tests could validate the entire match result, rather than just spotchecking it. 05:22
audreyt putter: Match("all matched": "positional", "captures" :named("capture") :another("named")) 05:30
something like that?
putter yes, I think. 05:32
audreyt that seems as canonical as I can fathom 05:33
putter perl Regexp_Module.pm --repl (subliminal advertising "tryyyyy itttt") shows its results as <1,"a",[],{},0,1> 05:34
audreyt though there's still the ok/from/to info
putter i really don't understand Match("all matched": "positional", "captures" :named("capture") :another("named")) 05:36
audreyt it's a piece of perl 6 that constructs a Match object with the slots of $$/, @$/ and %$/ spelled out
it doesn't have the ?$/ $/.from $/.to info, though
though ?$/ (whether match succeeded) can be represented by encoding failure as simply Match() 05:38
putter a(b) --> ???
audreyt ?eval :named("capture")
evalbot_r15306 ("named" => "capture")
TimToady ?eval Match.true 05:39
?eval Match.true
evalbot_r15306 Bool::False
audreyt protoobj is false.
tene ?eval Match("all matched": "positional", "captures" :named("capture") :another("named"))
evalbot_r15306 Error: No compatible subroutine found: "&Match"
audreyt ?eval \("all matched": "positional", "captures" :named("capture") :another("named")) 05:40
evalbot_r15306 CCall "perl" CaptMeth {c_invocant = VPure (CaptMeth {c_invocant = VPure (MkStr {unStr = "all matched"}), c_feeds = [MkFeed {f_positionals = [VPure (MkStr {unStr = "positional"}),VPure (MkStr {unStr = "captures"})], f_nameds = fromList [("named",[VPure (MkStr {unStr = "capture"})]),("another",[VPure (MkStr {unStr = "named"})])]}]}), c_feeds = [MkFeed {f_positionals = [], f_nameds = fromList []}]}
audreyt ok... that's a reminder that I should finish the MO bridge ;)
(it's a new-land Capture object that doesn't take methods yet)
tene Expand "MO"? 05:41
audreyt metaobject.
since haskell has no native object system
we invented one for it
lives in src/MO/*
tene Thanks. 05:42
audreyt np :)
putter a(b) --> ??? Match("a",[Match("b")]) ??? but that doesn't seem to be what you were suggesting...
audreyt putter: something like 05:43
audreyt Match("ab": Match("b")) 05:43
or, abbreviated:
\("ab": \("b"))
it may be reasonable to simply discard from/to info and compare the capture tree. maybe. 05:44
putter "if it isn't tested, it doesn't work" 05:45
audreyt \(0;2;"ab": \(1;2;"b")) 05:46
better?
putter is confused by all the ; and : ;)
TimToady and what units are those numbers? 05:47
tene :)
audreyt \(FROM ; TO ; MATCH : POS1, POS2, POS3 :N1(NAMED1) :N2(NAMED2))
audreyt TimToady: as this is part of spec-based test, I expect it to be whatever unit the test operates under 05:48
TimToady okay
I think : binds tighter than ; 05:49
audreyt it does
\(MATCH: POS1, POS2 :N1(NAM1) :N2(NAM2) ; FROM ; TO) # this, then?
putter probably want unit constructors so 1 grapheme can .perl as grapheme(1) or somesuch 05:50
though for here, bytes is the lowest common denominator, and knowing bytes, you know everything, yes? 05:51
audreyt hm. if the MATCH: is not specially crafted by "return" then we just write from and to 05:52
a(b) ==> \(\(;1;2);0;2) 05:53
TimToady loses information differently, anyway...
audreyt a(b) ==> \(0;2;\(1;2))
putter (see previous remark ending in "then it doesn't work") 05:54
audreyt why? 05:54
when we just record the matched string, sure it's bogus because it can occur multiple times.
but by knowing the original string-to-match, doesn't from/to encode the matched string uniquely? 05:55
failing to see why it doesn't work
putter Murphy. If matches are permitted to be confused about what their matched text is, they will be.
audreyt fair enough, spell it out then.
putter So yes, it is a viable minimal rep. But that minimalism is at odds with the testing objective. 05:56
audreyt kk.
TimToady or include enough info to retreive the original uniquely
not clear that .WHICH is going to be less than the whole string, though... 05:57
putter I suppose you could separately test that the minimal constructors actually work, and then rely on object comparison with the test result.
Paranoid object comparison.
audreyt \('ab':\('b';1;2);0;2) # then
TimToady $a ==== $b
audreyt it doesn't look that bad, actually :)
tene need more '=' I think 05:58
TimToady $a =:=:=:=:= $b
putter considers hitti
TimToady maybe 'ab'(1,2) can be some kind of weird constructor 05:59
putter ng the unicode table to generate a stream of alternating equality-like symbols. but no.
TimToady er, 0,2
putter Is the capture-match relationship described somewhere?
audreyt conceptually cleaner. doesn't save space/typing, though
S03.pod:the C<Match> object is a kind of C<Capture>, which has these capabilities. 06:00
TimToady thing is, 'ab' and (0,2) are isomorphicish
audreyt yup.
TimToady and I was thinking along the lines of sigs that re-analyse an arg: :( $node ($left,$right) )
audreyt so instead of calling &ab like in perl5, this time we annotate Str? 06:02
TimToady seems like one ought to be able to construct an arg similarly
not necessarily string, but some notation that builds a tree node as one thing.
I suppose that just means the invocant is also a capture... 06:03
audreyt yeah.
TimToady \( \("ab": 0,2): \("b": 1,2)) or some such
audreyt we already have a generic xexpr
*nod* 06:04
TimToady or \( \("ab": :from(0),:to(2)): \("b": :from(1),:to(2))) 06:05
audreyt though conceptually it's at the wrong level
a match can from 0 to 2
but has a completely irrelevant $$/
built from {return}
hence the choice of outofband semicolon 06:06
TimToady seems like returns makes it too easy to lose positional info 06:07
audreyt uh how? 06:08
putter 1am. good night all &
TimToady if you return your own object it's unlikely to have .from and .to 06:09
I foresee someone building up a tree of these and then trying to produce a meaningful error message
and saying "oops"
audreyt mm? the Match still responds to .from and .to
it just delegates all other methods to that obj
if you want we can even shift to .:from and .:to 06:10
TimToady hmm
audreyt so the obj is never actually replacing the Match
of course we still have the positional trees
TimToady I guess I'm actually too tired to think abou this now 06:11
audreyt :) sleep then 06:12
TimToady well, I'd just like to say that I'm glad you're recovering. 06:13
so...I'm glad you're recovering.
pace yourself. :)
TimToady zzz 06:14
&
audreyt :D
that I will.
I'll try to contain my excitement at having my brain back :D
brad__ hi 06:24
tene hi 06:25
brad__ not much going on? 06:26
tene Not anymore.
brad__ just missed the excitement and high drama?
tene You missed the discussion about potential canonical representations of a Match.
brad__ hmm, would have been interesting to listen to (doubt i could add anything intelligent) 06:27
tene So stay logged in all the time and read the scrollback whenever you come back.
brad__ nah, too expensive to leave my pc on all the time
audreyt brad__: irssi+screen solves that problem :) 06:28
brad__ i am on irssi+screen now
audreyt a screen that lives on another host :)
brad__ ah
audreyt for example, perlcabal.org, aka feather
brad__ yes i have access to about 10,000 or so idle servers at yahoo i could use
audreyt is the host many of us uses :)
(I was about to say that :))
brad__ irc logs are always there too 06:29
audreyt yeah, but with offsite screen people can /msg you etc
brad__ audrey, i gave up trying to use darcs to get pugs...reverted to svn
"/msg"...i learn something new every day 06:30
guess i could rtfm on irc some day
audreyt oy. I broke darcs a week or so ago
fixing.
brad__ no problem, i have the svn checkout
speaking of haskell, have you tried "goa"? 06:31
ghci on acid
i would love to see perl -de 0 do stuff like that
a repl that talks back....intelligently! 06:32
audreyt fixed. 06:33
brad__ wow you are fast
svnbot6 r15314 | audreyt++ | * Fix darcs link at pugscode.org: The canonical URL is darcs.pugscode.org/. 06:34
lambdabot Title: Index of /
brad__ well i have to scram but thanks for fixing darcs audrey 06:36
take care and good night!
audreyt have fun :) 06:37
ingy happy new year audreyt 06:57
audreyt ingy: thanks!
though I ended up spending the new year alone in this cell^Wroom 06:58
ingy are you in a hospital?
audreyt yes.
(see pugs.blogs.com/)
lambdabot Title: Pugs
ingy well I hope they are hospitable :)
audreyt they in fact will discarge me tomorrow :) 06:59
ingy better than a Hostel; I hear they can get hostile
oh yay!
audreyt yeah. small price is no methylphenidate for me in the next month or so 07:00
(it taxes liver; also it masks tiredness)
but yeah, definitely beats liver failure
tene Hmm. 07:01
ingy isn't estrogen hard on the liver? 07:02
tene Should pugs play nice with perl5 modules that uses XSLoader?
audreyt ingy: yeah :/ so no estradiol for me, either. this is going to be fun
tene That is to say, it doesn't seem to be. Is that expected?
audreyt $ ./pugs -Mperl5:YAML::Syck=Dump -e 'say Dump [1,2,3]' 07:03
---
- 1
- 2
- 3
worksforme (YAML::Syck uses XSLoader)
tene What is the "=Dump" syntax?
audreyt same as in perl5. 07:04
tene Hmm.
ingy glad to hear you are doing so well audreyt. can't wait to see you in April. good night...
audreyt perl -MCGI=:standard
ingy: g'nite!
dduncan nice that you're writing blogs again ... those are interesting to read 07:05
audreyt :)
hello 07:07
dduncan hello
audreyt (er. that was my gf.)
dduncan who?
or did you type in here by mistake? 07:08
nevermind
audreyt no, isis typed "hello" at my keyboard whilst I was away. I guess that's a hint that I should bbiab :)
or rather, bbl...
dduncan I just figured that out, hence the nevermind
audreyt :D
so, uhm, bbl :) *wave* & 07:09
dduncan yes
get lots of rest
gaal mooses 07:41
tene Any examples yet of wrapping a C library in perl6? 07:43
Aankhen`` sneaks up behind gaal and whispers "Boo!".
gaal Aankhen``! hey :) 07:45
Aankhen`` Hiya. ^_^
What's shakin'? 07:46
gaal tene: nope, but if you're looking for p5 there's the newly revived FFI.pm...
Aankhen``: just random moose here and there... hopefully much more hacking to be resumed! 07:48
Aankhen`` Kewl.
elmex yay, GPWS! 13:31
specbot6 r13592 | larry++ | Conjecturalized the delegation-via-hash syntax for now. 16:37
gaal maudnewton.com/blog/?p=7300 # -lcamel 20:16
lambdabot Title: Maud Newton: Blog
rindolf gaal: did you see the video on youtube about Vista Voice Recognition and writing a Perl script? 20:17
gaal I did. 20:18
rindolf gaal: yes, it was very amusing.
Press Caps lock.
"Info"
jisom he never tried upper case info! 20:20
I don't know if that'd work 20:21
ashleyb is there a web interface to browse the source code the repository where the official Synopsis' live (i.e. not the pugs repository trac interface)? 22:36
[particle] svn.pugscode.org ? 22:43
bsb ashleyb: like svn.perl.org/perl6/doc/trunk/design/syn/ ?
lambdabot Title: Revision 13592: /doc/trunk/design/syn
ashleyb yes that's it -- hmm but there's no diff-ing capabilities... 22:44
that's really what I was looking for
bsb ashleyb: checkout a copy with svn and diff locally: svn diff -r PREV:HEAD S29.pod 23:10
ashleyb ok cool, thx 23:11
bsb nws 23:13