Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-02-14

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:14 avar joined perl6
00:14 Cryptic_K joined perl6
00:17 ozone_ joined perl6
00:20 K_ joined perl6
00:30 avar joined perl6
00:42 avar joined perl6
01:24 stevan_ joined perl6
01:24 kanru joined perl6
01:38 Cryptic_K joined perl6
01:47 putter anyone around?
01:50 * putter , weary, wonders whether to simply declare this a hacking-free day. :/
01:58 putter One fun possibility is to extend the existing spike, which has p5-syntax regexps, with subrules (<foo>).  Which should be fairly easy.  Then create a dynamic rule (eg, it has an array of possibilities to try) generator, easy.  That's the kind of thing a p6 parser uses for the <statement> rule in the grammar.
02:01 dduncan do whatever you want
02:01 putter it gets filled in by  macro statement_control:<while> (???) is parsed(rx:perl5/while \( <expr> \) { <statements> }/ {...}  or some such.  oh, the same trick is also used for <ws>.  <token>, used by <expr> is similar, but tries the posibilities in longest-match-first order.  <expr> itself is different, a bottom up operator
02:01 putter precedence parser.
02:02 putter dduncan: ;)
02:02 putter just trying to get psyced.  three cups of caffine and I'm still falling asleep.
02:04 putter dduncan: working on anything interesting?
02:08 dduncan well, if you want to know, I just submitted my OSCON 2006 talk proposal
02:08 dduncan I can nopaste its main parts for your (and others') perusal
02:13 pasteling "dduncan" at 24.69.53.198 pasted "my OSCON 2006 45-min talk proposal" (76 lines, 3.1K) at http://sial.org/pbot/15860
02:13 dduncan there you go
02:13 putter neat!
02:13 putter reading...
02:14 dduncan fyi, the deadline is tonight, pst ... in under 6 hours ... so if you want to propose something and haven't, that's how much time you have ... remember, acceptance means free admission
02:17 putter lol
02:17 dduncan what part?
02:17 * tewk has transcoded PGE's OPTable.pir to p5 OpTable.pm,  the add_token method works, cleaning up the parse method presently and relearning perl5 reference semantics.
02:18 dduncan if its anything really bad, I have 5 hours in which I can submit edits, though hopefully they'll let me after the deadline too
02:18 putter nice life's work.  we should talk semantic net sometime.  re lol, the thought of doing a paper deadline crunch to get into oscon.  not sure why it was lol, but was.
02:18 * tewk 's perl5 knowledge is limited, and what he does remeber is rusty :)
02:19 putter would you like word smithing suggestions.  a couple of points in the beginning i rather stumbled reading it...
02:19 dduncan I only had to get the proposal in within 5 hours, not the talk itself
02:19 putter k
02:19 dduncan I have up to mid-june or so to submit slides, and until the day itself to prepare
02:20 dduncan and I won't really bother with most of that until the end of march, where I find whether the proposal was accepted or not
02:20 f0rth_ joined perl6
02:20 dduncan putter, you're welcome to give smithing suggestions
02:20 * putter shakes head.  just in time talk preparation... I've no doubt encountered scarier concepts... just can't think of any at the moment...
02:20 dduncan the short text is for web ads, and the long text for the convention book, I think
02:21 dduncan I'm not going to JIT the talk, though I know some people do
02:21 dduncan I think audreyt is one of them
02:22 dduncan the con is in late july, fyi
02:22 putter tewk: oooo, neat !  does it handle defining ops with precedence relations relative to other ops?  
02:22 * putter looks at oscon side, wordsmithing...
02:23 dduncan while you're at it, if the long description can be made 10-20% shorter without losing the good stuff, that would be great ... I think it had exceeded the 250 word max
02:24 dduncan the shorter desc had to be under 50, and I think it is
02:24 putter dduncan: what is the relationship of the two clauses in the first sentence?  aren't...(because?) making...?
02:25 dduncan ...
02:26 dduncan I'm not sure what the problem is ... elaborate please
02:27 putter ...introduces "Rosetta", ***, native for...    felt there was a missing bit "***" - R is a module? framework? mumble?
02:27 putter re elaborate,
02:28 dduncan so I should be more specific than "solution"?
02:28 dduncan how about: This talk introduces the "Rosetta" framework, an unprecedented solution, in native Perl 5 and Perl 6, that makes it easy to create and use relational databases that are very reliable, powerful, portable, and efficient.
02:29 dduncan I added 2 words around R
02:29 putter "Many Perl developers aren't using databases effectively; making reliable solutions is error prone and slow."  consider it as two sentences.  "Many Perl developers aren't using databases effectively.  Making reliable solutions is error prone and slow."  Are these independent observations?  Or are databases being used ineffectively _because_ making reliable solutions is ...?   Or something else?
02:30 dduncan those are 2 related observations
02:30 putter s/that makes/which makes/  I think, but that's exactly it.  :)
02:30 dduncan or the second elaborates on the first
02:31 dduncan in other words, many Perl developers are having an error prone and slow time making reliable databases, because they aren't using them effectively
02:32 dduncan or it could be said that those are 2 symptoms of a problem, if not that one causes the other
02:32 dduncan I could make them 2 sentences
02:32 putter ok, "effectively" needs a question, but first...
02:32 putter re "makes it easy to create and use relational databases that are very reliable, powerful, portable, and efficient".  So "Rosetta" doesn't work with databases that are unreliable, not particularly powerful, portable, or efficient? ;)
02:33 dduncan I admit, that is a bit of hyperbole.
02:34 dduncan it is explained further why this is the case, in the longer desc
02:34 putter oh, i see.  i parsed databases as "oracle, mysql, etc".  not "sales, customers, etc".
02:34 dduncan I could point form it a bit
02:35 dduncan you are right
02:35 putter new framework?
02:35 dduncan yes and no
02:35 stevan joined perl6
02:35 dduncan its a rewrite of something I've been putting on cpan for the last 3 years
02:35 dduncan here's a bit of terminology ...
02:36 dduncan 1. Oracle, MySQL etc are "database management systems", or DBMSs
02:36 dduncan 2. sales, customers, etc are databases
02:36 dduncan the former is an app and the latter is data it processes
02:36 dduncan Rosetta is a DBMS
02:37 dduncan perhaps I should add that detail
02:38 dduncan now both long and short versions say: This talk introduces the "Rosetta" DBMS framework,  ...
02:38 * dduncan has to go for dinner
02:39 putter This talk introduces the new "Rosetta" framework, which makes it easy to create and use relational databases in a very reliable, powerful, portable, and efficient way.  Making reliable solutions need not be error prone and slow.  You can easily use databases effectively.  Perl 5 and 6 implementations.  Includes examples of use.
02:40 putter This talk introduces the new "Rosetta" DBMS framework...
02:41 putter perhaps something like that.  enjoy dinner &
02:44 putter re new, if the thing on cpan wasn't called "Rosetta", and the changes are substantial, then "new" fits.  Regardless of whether you, the developer, see them as a one chain of evolution.  Oh, better - the question is whether the audience, after hearing the talk, would consider it a "new" framework.
02:48 putter tewk: re rusty p5, I writing p6 flavor p5.  I suspect that will become a large scale occurrence at some point. :)
02:48 * putter goes look at OpTable...
02:53 putter tewk: what is Match.rb's @corotine?
02:55 tewk that's from PGE, I think it allows the match to be executed again, need to go look.
02:57 putter hmm... ok, question:
02:58 putter what's the "one liner" role breakdown for Rule vs OpTable vs Match?
02:58 svnbot6 r8983 | tewk++ | Attempt at moving OpTable to p5, feedback wanted
02:59 * putter notes we're going to collective have to come up with some scheme for differentiating references to "role" english vs perl6.  and "grammar".  it get's confusing. ;)
03:00 tewk I'm still learning the PGE model.
03:00 * tewk looks at parrot PGE source
03:02 * putter notes PGE need not be a cannonical reference...
03:03 putter re addtok.t, ooohhhhh, there all ops in the p6 _regexp_ optable...
03:04 * putter wasn't thinking about creating arbitrary operators in regexps... but in retrospect that seems a neat idea...
03:05 tewk Ok OpTable is used to parse P6Rules, p5regexp, etc I believe.
03:05 putter makes sense
03:06 tewk You build up a parse tree that represents how a specific regex/rule will execute.
03:06 * putter wonders how one declares (in p6) a whitespace operator...   didn't think you could stack grammatical categories... macro whitespace:infix:<foo> (...) is parsed(...) {...}
03:07 putter but then again, I'm fuzzy on grammatical categories
03:08 tewk In PGE the parse tree nodes are subtypes of Exp in Exp.pir.  Walking the parse tree generates PIR code that evaluates the regex/rule.
03:09 putter hmmm...
03:10 arcady joined perl6
03:11 putter do you have feel for what gets done where?  what in Match, Rule, and OpTable?
03:12 tewk Somewhat, it's becoming clearer. Rule is a subtype of Match.
03:13 * putter *blinks*
03:14 putter "OPTable" is only mentioned once (I'm back to the rb sources).  in it's class declaration.  so there's a missing piece?
03:15 * putter goes over to parrot sources...
03:15 tewk There you go,  stop looking at the ruby stuff and go look at PGE
03:15 putter didn't realize this stuff was coming from pge...
03:16 putter actually, my biggest puzzle in this area is,
03:18 putter tokens of the form   is parsed(/<expr> foo <expr>/ ...    the operator decent parser part doesn't care?  either that the token is sucking stuff away from it (lhs), or absorbing expressions, perhaps to end of stream, on the rhs?  it just gets dealt with by the token choice, and thus shift-reduce choice, being backtrackable?
03:19 putter (oh, and the token itself being given a chance to backtrack itself)
03:20 putter does that sound right, or am I missing something?
03:21 * putter has a hard time reading pir... :(
03:22 putter local meaning is clear, larger scale less so
03:22 tewk is parsed(/<expr> foo <expr>/ ... ??? I'm trying to understand is this P6 code ?
03:24 tewk are you talking about parsing P6Rules or how P6Rules parse plain text ?
03:25 putter ah, ok,
03:25 * dduncan is back
03:26 dduncan putter, I saw your comments after I left ... processing ...
03:28 dduncan putter, re newness, while the name Rosetta has been published for 3 years, the fact it never worked before and is being rewritten now to work soon, means that it is new for users
03:28 dduncan so using the word "new" is appropriate
03:28 dduncan even though the name is unchanged
03:29 putter p6 code:   macro token:<lispish_call> (Match $m) is parsed(/ \( $<f>:=<expr> $<args>:=[ <ws> <expr> ]* \) /) { "$/<f>\({$/<args>.join(",")}\)" }     takes   3 + (mult 2 4)  to   3 + mult(2,4)
03:29 putter or something like that, I think
03:31 putter the more interesting case is something like a token   + <expr> + , ie, circumfix:<+ +>.  if you cant backtrack through tokens and the oop, that gets odd.  even then, that's odd.
03:32 putter oh, my example lispish_call has bugs.  used $/ rather than $m for example
03:33 putter and actually, I don't know that token macros can be string returning macros.  that's another complication.
03:35 tewk Ok I follow your example now.
03:35 putter (this may be the only time that i've every been glad to have a parser engine with only a one token window.  if the input stream is in flux... *eep*.   nice, safe, one token at a time.)
03:38 putter interesting to see pm's take on things.  i've been considering Rules and Matches as much more declarative "places to hang stuff".  Eg, while Rules need to be callable to match spec (i think, maybe), I imagine there will be multiple engine implemenations.  and they can't be fighting over Rules.  so perhaps a Rule ends up
03:40 dduncan putter, ...
03:40 dduncan deriving from your example, this is my new Short Description:
03:40 dduncan This talk introduces the new "Rosetta" DBMS framework, which makes it easy to create and use relational databases in a very reliable, powerful, portable, and efficient way.  Making reliable solutions need not be error prone and slow.  Native Perl 5 and 6 implementations.  Includes examples of use.
03:40 dduncan 47 words or so
03:42 putter a place to hang the pattern, information about what Rules where linked to it when the pattern compiled, various modules concepts of what an ast looks like, and various executable forms of the same.  then compiled rules of form/vm/engine foo, can just look up Rule  statement  say, and ask (multi methods) for the version they can work with (or, if it doesnt exist yet, compile the pat, with its listed bindings, cache in the Rule, and... back t
03:42 putter dduncan: great :)
03:43 putter i like
03:43 putter much clearer
03:43 dduncan thanks to you
03:43 putter a second set of eyes is always a valuable resource :)
03:43 dduncan deff nut lee
03:46 tewk Why multiple engine implementations?
03:46 dduncan that's the main way we get portability
03:47 dduncan a separate engine optimized to a particular storage method
03:47 dduncan one, called Native, is completely self contained
03:47 dduncan some others will use various products like Oracle etc to do most of the work
03:48 putter I've been treating Match/es similarly.  Though there it doesnt work as well.  For instance, rx:perl5/(a\1)/ matches "aa".  it think.  ooooh.  never mind, I know how to handle that case.  but there are others, eg,
03:49 dduncan in the latter case, if Rosetta reverse-engineers an existing database, it can (try to) use the existing database as is, or help migrate it to something else, like Postgres or whatever
03:49 putter dduncan: I think he meant rules engines. :)  but your answer worked right up to the Oracle part... ;)
03:50 dduncan well, Native will work the best, aside from speed issues resulting from not being written in C
03:50 putter tewk: ... first principles?  because if you can't have them, then tisntmtowtdi? ;)
03:50 dduncan the point is, separating interface from implementation lets several people have a whack at implementing it
03:50 putter exactly
03:51 dduncan and an engine is an implementation
03:53 putter re Match, an issue I'm not really clear on is the relation between a Match, the thing which describes captures, and the "as yet unnamed"? thing which... wait, I've been here before, just a sec...
03:56 putter brain is tapioca.  you have these pieces: a Grammar, a Rule, a search state thingy, which I don't think I've seen a name for?, and Matches.  Rules may be multi methods or multi subs.  I'm not sure how useful it is for a rule to be handed it's grammar, given that it's bindings are actually lexical, and thus may have no connection to it.
03:59 putter Rule info - pattern, who got bound to it, ast's, executable forms, etc, can go in attributes.  though at some point you find yourself wishing you can do type dispatch on the arguments to attributes, which... oh, wait.  attributes are just role triggers which can suck in arbitrary fields.  arg.
04:00 * putter keeps thinking of multi method/subs as not being real honest to goodness objects, which can have arbitrary extra data and methods.  sigh.  brain regresses to C.
04:01 putter close to end of day for me I think.
04:01 putter where were we?
04:03 chen joined perl6
04:03 chen left perl6
04:04 putter what I'd really like to have is a box I could pour operators with precedence info ("prec < infix:=") into, and could be asked "op1 <=> op2".  ie, it manages the precedence graph.
04:06 dduncan putter, unless you explicitly tell me otherwise, I'm mentioning that you (Mitchell N "putter" Charity) were my "second set of eyes" in the email I'm sending to the Oreilly people, having the updates for the proposal
04:06 dduncan as a credit of sorts, though I don't expect it to carry further than that
04:06 justatheory joined perl6
04:06 putter just a rev0.  doing it for real is quite hard, as different branches of multi sub might have different precedences (so you would need to index by signature), and as you go in and out of lexical scopes, operators come into existence and go away.
04:06 dduncan specifically I said ...
04:07 dduncan Utilizing a second set of eyes (Mitchell N "putter" Charity), I have edited and/or rewrote some parts of my proposal, in particular, the short description, but also the long description has some changes.
04:07 putter oh, err, "I explicitly tell you otherwise".
04:07 putter sorry, I...
04:07 putter default to low profile.  or try.
04:07 dduncan so I shall remove your name from the email?
04:08 dduncan okay; remove you I shall ...
04:08 putter yes, thanks.  sorry for the inconvenience.
04:08 dduncan and I'm sure you're glad I asked you
04:08 putter the other would have been fine to.  just if given the choice...
04:08 dduncan what do you mean?
04:09 putter err, which part?
04:09 dduncan "the other would have been fine too
04:09 putter "the other" == "email going out with me in it"
04:09 dduncan okay, so you're saying that leaving it as it was wouldn't have been a problem, but since I asked, you preferred to be left out?
04:10 putter yes, exaclty
04:10 putter exactly even
04:10 dduncan okay, sending ...
04:10 putter :)
04:10 Daveman` joined perl6
04:11 putter hmm... so is that the final cut of the body that goes in the catalog, or is there a later deadline for that...
04:12 dduncan I expect there is more time
04:12 putter ok
04:12 dduncan the brief summary should appear online on the first of April, if my talk is accepted
04:13 putter I'm just noticing "The daily work of many Perl developers involves databases, which their applications depend on to manage information, or to store their objects persistently." -> "The daily work of many Perl developers involves databases.  Their applications depend on to manage information, or to store their objects persistently."
04:13 putter err, Their applications depend on them to manage information, or store objects persistently.
04:14 Amnesiac joined perl6
04:14 dduncan the longer one, I'm not sure ... actually, it'll probably appear then too
04:14 dduncan online that is, 'cause I think each talk has its own web page
04:15 putter the idea of breaking up a long, comma-ed sentence, down into 2 or 3 simpler ones, seems to apply to other parts of that first paragraph too.
04:15 dduncan I hear that ... this isn't worth resending the proposal over, though
04:15 dduncan I expect they would have their own edits to make too
04:15 dduncan and not simply take mine verbatim
04:16 putter ok.  I just note that if there is a printed version, the deadlines to get things off to the printer are sometimes surprisingly early.  so one wants to avoid something there that in restrospect on might regret.  random thought.
04:17 dduncan I would expect them to not print these to paper any sooner than a month before the conference, which means late june at the earliest
04:17 dduncan more so because they are probably making changes themselves in the last days
04:17 putter re "their own edits"... that might be optimistic... being stretched thin for resources seems a universal property of conference organizatino...
04:18 putter ah, ok
04:18 dduncan maybe, but the organizers *are* a major book publisher
04:18 dduncan I'd expect them to just notice some things by habit
04:21 putter :)
04:23 putter tewk: too tired to think.  are you going to be around tomorrow at all?
04:23 tewk Yep
04:23 Daveman` is now known as Davemon
04:25 putter dduncan: neat talk.  i probably will miss it, but look forward to the slides. :)
04:25 putter tewk: :) ok, see you then.
04:25 putter g'night &
04:26 amv_ joined perl6
04:30 drbean joined perl6
05:15 grayson joined perl6
05:17 penk joined perl6
05:53 r0nny joined perl6
06:03 Medvekoma joined perl6
07:07 justatheory joined perl6
07:18 iblechbot joined perl6
07:48 audreyt greetings
07:49 gaal welcome, audreyt :)
07:49 audreyt gaal++ # wonderful place
07:49 audreyt (with instant-on tcp/ip)
07:49 gaal thanks! so cool to finally meet you in person
07:49 audreyt :D
07:49 audreyt and connection to feather is much faster
07:50 gaal speed of light advantage. at leo's it'll probably be even better
07:50 szbalint yeah. :)
07:50 szbalint Its quite nice from here in .hu
07:51 marmic joined perl6
07:52 GeJ morning audreyt
07:52 svnbot6 r8984 | Darren_Duncan++ |  r2435@darren-duncans-power-mac-g4:  darrenduncan | 2006-02-13 23:51:18 -0800
07:52 svnbot6 r8984 | Darren_Duncan++ |  /ext/Rosetta : added docs/OSCON2006SessionProposal.txt, whose name should be self explanatory
07:52 dduncan I ditto that
07:53 dduncan fyi, the committed new file is newer than that nopaste I did around 5 hours ago
07:53 dduncan now that's bad grammar
07:57 * audreyt is still catching up email and stuff
08:10 grayson joined perl6
08:11 G2 joined perl6
08:30 bsb joined perl6
08:32 xern joined perl6
08:49 MrFarts hey, could someone tell me what qw() means under perl 5 ?
08:50 lhooq joined perl6
08:52 GeJ it's the quoting operator mostly used for list creation. But you'll be able to get more information on #perl.
08:52 GeJ this channel is perl6-related
08:53 MrFarts GeJ, thanks
08:53 GeJ you're welcome
08:54 drrho joined perl6
08:58 leif joined perl6
09:15 avar joined perl6
09:16 arcady is IO in perl 6 asynchronous by default now?
09:25 xinming joined perl6
09:34 ayrnieu arcady - I'd hope not.  Why do you think it would be?
09:34 arcady probably because I don't know how to do IO properly
09:34 arcady however, file handles seem to have a readline method
09:35 arcady which seems to be non-blocking
09:35 arcady returning undef if nothing has been read
09:38 arcady where is IO even documented?
09:50 elmex joined perl6
10:03 Odin-LAP joined perl6
10:09 Aankhen`` joined perl6
10:09 Odin- joined perl6
10:13 nnunley joined perl6
10:44 wilx joined perl6
11:00 audreyt short-term hackathon topics today with gaal
11:00 audreyt - finish recursive data structure in Data.Yaml.Syck
11:01 audreyt - implement -CParse-YAML and convert precompiled prelude to use that
11:01 audreyt - grok the book "the art of metaobject protocol"
11:01 audreyt - resume journaling of recent developments
11:02 wolverian yay! audreyt++ and gaal++
11:02 audreyt :)
11:05 theorb Implement -CParse-YAML?  I thought it was working weeks ago?
11:05 theorb journal++
11:05 wilx`` joined perl6
11:06 integral I don't think Parse-YAML produces everything you need for precomp at the moment,  at least when I tried to get this working, I couldn't figure out how it would work :-/
11:07 audreyt it doesn't
11:07 audreyt because it doesn't handle tvars correctly
11:08 integral ah, that's why there's lots of gaps!
11:09 audreyt to handle tvars we need to use stableptr to ensure that same tvars gets mitted as yaml anchors
11:10 audreyt also, DriFT.YAML needs a fromYaml form
11:10 audreyt that part you can help, actually, if you've got tuits :)
11:10 audreyt we'll start by porting my YAML::Syck (p5) logic of anchor resolution etc to haskell
11:11 audreyt but he's off to return the car or something, so this will start in ~1.5hrs instead of now
11:11 audreyt (and I get to take a timezone-adjusting short nap. maybe.)
11:15 spinclad audreyt: 1) YAML first makes lots of sense to me;  2) is targetting PIL2/PILN on the longer-term target screen?
11:19 audreyt spinclad: we need to work out the pad structure first
11:19 audreyt that's the ->PILN blocker
11:19 audreyt and also gaal's pet project blocker (variable export)
11:19 spinclad in particular, putter was remarking yesterday or so about PIL's unsupport of Class info, and thinking of working around that by consulting yaml, or even p5 regexing for it (!)
11:20 audreyt yes, I'm aware of that, and we need to remedy that on the compiler level
11:20 audreyt though definitely he can take -CParser-YAML when it's tehre
11:20 spinclad (the pad structure?)
11:20 audreyt because it's the same info pugs' main runtime uses
11:21 audreyt pad structure is the "Pad" data structure that the compiler builds to refer each lexical pad to the outer one
11:21 spinclad ah, right, thx
11:21 audreyt and also controls symbol initiation, multi vs single dispatch, etc
11:21 audreyt and we also need to add "proto" support
11:21 audreyt so we can truly do class{...} as a closure just like S12 says
11:22 spinclad good-o.  S12++
11:22 audreyt I'm glad to be back :)
11:23 spinclad as are all of us, I'm sure!
11:23 integral audreyt++ # brilliant to have you back :)
11:23 audreyt my hope is by the time we hit the real hackatohn
11:23 audreyt (~1wk from now)
11:24 audreyt we'd have a concrete enough compartmentized low-hanging fruits for perl5 hackers there (~10 of them) to cobble together a perl5 runtime
11:24 audreyt using p6 or hs or p5 or whatever else to fill in the gaps
11:24 audreyt including reviving the Perl6-ObjectSpace PILN evaluator if needed
11:25 audreyt and result in a runnable 6.28.0-level Perl 6, using perl5 as a virtual machine, by OSDC.il
11:25 audreyt at least that's my pet plan. :)
11:25 scook0 joined perl6
11:25 audreyt (and if that works, it becomes much easier to stay in Leo's place afterwards, and port the same thing to parrot)
11:26 rantanplan_ joined perl6
11:26 audreyt more details later in the journal :)
11:26 spinclad :) :)
11:27 audreyt I'll brb :)
11:34 f joined perl6
11:45 azuroth joined perl6
11:46 G2 joined perl6
12:05 drbean joined perl6
12:09 iblechbot joined perl6
12:14 xinming1983 joined perl6
12:24 Odin- joined perl6
12:26 xinming joined perl6
12:41 drbean_ joined perl6
13:05 azuroth joined perl6
13:19 nnunley joined perl6
13:51 gaal joined perl6
13:52 Nouk joined perl6
13:57 audreyt gaal:
13:57 audreyt    autocmd BufNewFile,BufRead *.hsc        setf haskell
13:57 audreyt    autocmd BufNewFile,BufRead *.hs-drift   setf haskell
13:58 * azuroth wonders what the terminology for having multiple partitions (is same hard drive possible?) on one mount point is
14:01 GeJ audreyt: aren't you guys together currently? (/me is not sure to grok the mini-hackathon thingy)
14:01 gaal azuroth: I think I've heard "multimount" used
14:01 gaal GeJ: we're approx. 1 foot away from each other now
14:03 kanru joined perl6
14:03 azuroth thanks gaal
14:04 GeJ gaal: hum, oki. That's what I thought. hence my question about audrey pasting here instead of telling you offline
14:05 gaal GeJ: useful for others as well :)
14:05 audreyt and I don't think gaal has builtin voice recognition that turns voice into .vimrc
14:05 audreyt if we do we'd be using ip-over-voice
14:06 GeJ audreyt: yes, I thought about the ^C^V thing but too late :)
14:06 azuroth ip over voice. :D
14:21 svnbot6 r8985 | audreyt++ | * put a scary warning block of text to all DrIFT-generated
14:21 svnbot6 r8985 | audreyt++ |   files so that people wouold not edit it and see their edits
14:21 svnbot6 r8985 | audreyt++ |   being reverted once the .hs-drift source file changes.
14:24 Kattana joined perl6
14:25 grayson joined perl6
14:27 svnbot6 r8986 | audreyt++ | * Data.Yaml.Syck: emitting '~' should add quotes.
14:29 audreyt ?eval '~'.yaml
14:29 evalbot_8966 is now known as evalbot_8985
14:29 evalbot_8985 "--- ~\n"
14:34 kolibrie joined perl6
14:34 audreyt ?eval '~'.yaml
14:34 evalbot_8985 is now known as evalbot_8986
14:34 evalbot_8986 "--- \'~\'\n"
14:37 Qiang joined perl6
14:44 clkao audreyt: do you fix yaml::syck.pm for ~ as well?
14:44 audreyt clkao: sure
14:44 audreyt I'm now backporting from YAML::Syck 0.33
14:47 drbean_ left perl6
14:48 clkao cool.
14:51 audreyt okay, backporting complete
14:51 audreyt now fixing dumping recursive structures.
14:55 svnbot6 r8987 | audreyt++ | * Upgrade syck to the same version as YAML::Syck 0.33.
14:55 vel6608 joined perl6
15:18 chris2 joined perl6
15:24 kanru joined perl6
15:26 hexmode joined perl6
15:27 estel joined perl6
15:47 Aankhen`` joined perl6
15:58 svnbot6 r8988 | audreyt++ | * Dumping recursive data structures in @foo.perl should now work properly.
16:06 dada joined perl6
16:15 SamB joined perl6
16:15 svnbot6 r8989 | audreyt++ | * don't emit the "$_:=" thing for nonrecursive data structures
16:15 svnbot6 r8989 | audreyt++ |   in .perl.
16:16 audreyt ?eval my @a; @a = (1, \@a, [\@a]); @a.perl;
16:16 evalbot_8986 is now known as evalbot_8988
16:16 evalbot_8988 $_ := "\$_ := [1, \\\$_, [\\\$_,]]"
16:19 audreyt ?eval my @a; @a = (1, \@a, [\@a]); say @a.perl;
16:19 evalbot_8988 OUTPUT[$_ := [1, \$_, [\$_,]] ] $_ := bool::true
16:31 TMTOWTDIt joined perl6
16:33 Java-er Hello all
16:34 Java-er guys, is perl 6 backward compatiable ?
16:34 audreyt what do you mean? :)
16:34 Java-er compatible*
16:34 audreyt perl6 is specced to run perl5 intact
16:34 svnbot6 r8990 | gaal++ | * add fromYAML to DrIFT.YAML instances
16:35 Java-er this mean I can run perl 5 code with perl 6 ?
16:35 Java-er another question, does perl 6 use interpreter or virtual machine like java?
16:36 audreyt perl 6 compiles to a virtual machine
16:36 audreyt or rather, multiple virtual machines
16:36 Java-er like JVM ?
16:36 audreyt yeah, e.g. "Parrot"
16:36 audreyt but we also compile to javascript and (soon) perl5
16:36 audreyt it's not impossible to compile to JVM if there is a need.
16:37 Java-er cool
16:37 Java-er what about PHP ? :)
16:37 audreyt again, if someone is willing, why not
16:38 Java-er last thing, are there any binaries for perl 6 or I have to build it myself ?
16:39 chris2 joined perl6
16:40 elmex joined perl6
16:42 audreyt what is your platform?
16:47 xinming audreyt: in Prim.hs, for the `op1 slurp`, It seems must do decodeUtf8 first. :-P
16:48 xinming Java-er: there are compiled binaries for win 32, and It isn't hard to compile on Linux.
16:48 audreyt xinming: ok, feel free to fix it
16:50 xinming audreyt: >_< I just say that, and I don't know how to fix it in fact, Ever tried to read Old pugs source, It's too far beyond my ability. >_<
16:57 xinming God bless me... I am compiling the modified version...
16:58 xinming fixed...
16:59 xinming First commit in Pugs core source. :-P
17:00 audreyt yay
17:12 spinclad ?eval my @a; @a = (1, \@a, [\@a]); say @a.perl;
17:12 evalbot_8988 is now known as evalbot_8990
17:12 evalbot_8990 OUTPUT[$_ := [1, \$_, [\$_,]] ] bool::true
17:13 nnunley_ joined perl6
17:14 bsb audreyt: what is the "proto" support mentioned earlier?  (or should I wait for the journal)
17:17 svnbot6 r8991 | tewk++ | Continued exploration of porting PGE to P5
17:17 svnbot6 r8992 | audreyt++ | * Data.Yaml.Syck: Support for emitting lazy (infinite, self-recursive)
17:17 svnbot6 r8992 | audreyt++ |   YamlNode structures.
17:18 audreyt bsb: see S12...
17:19 audreyt "proto" is a forward declartion of multis
17:19 audreyt no multis can be more generic than proto
17:19 audreyt it's in S12
17:19 audreyt I think
17:20 audreyt http://dev.perl.org/perl6/doc/design/syn/S12.html
17:21 bsb Thanks, looking now
17:24 xinming audreyt: will haskell' become 'haskell 2'?
17:27 audreyt xinming: no, it will become "haskell 06" most probably
17:27 audreyt haskell 2 is more vague
17:29 xinming audreyt: hmm, So, haskell' will always become the newest haskell branch, and `haskell \d\d` will be the specified version, right?
17:31 audreyt well, I'm not sure that will stay the case, but it's possible, yes
17:31 xinming dist/build/libHSPugs-6.2.11​.a(PIL2.o):(.rodata+0x5c)ld returned 1 exit status
17:31 xinming Build failed: 256 at util/build_pugs.pl line 178.
17:31 xinming make: *** [pugs] Error 2
17:31 xinming ... there are many lines like this.
17:33 xinming recompiling with `make clean'. bbl
17:45 justatheory joined perl6
17:47 stevan she's free from $work!!!!!!
17:47 * stevan just finished backlogging :)
17:47 stevan hey audreyt, gaal  :)
17:48 audreyt greetings :)
17:48 * stevan ponders a falafel for lunch in a vain attempt to participate in the .il pre-hackathon
17:48 xinming lol, She needs sleep... Sleeplessness causes whelk
17:49 xinming :-P
17:49 stevan sleep is for post-hackathon :P
17:50 * stevan dumps his coffee grounds into his cup in a sad attempt to make turkish coffee
17:53 rantanplan_ joined perl6
18:00 gaal hey stevan!
18:02 audreyt yo stevan
18:02 putter joined perl6
18:02 putter "And then, its Miller^B^Whacking time." :)
18:02 audreyt hey putter :)
18:03 putter hi audreyt :)
18:04 putter yay recursive .perl :)
18:05 audreyt recursive .yaml coming soon :)
18:05 audreyt then, precompiled prelude via yaml
18:05 audreyt (and useful class composition info via -CParse-Yaml)
18:06 clkao WHOOT
18:07 putter audreyt: what's the next level of detail on "precompiled prelude via yaml"....?
18:08 * putter is intrigued, but fuzzy...
18:08 putter s/fuzzy/hazy/
18:09 sili joined perl6
18:09 audreyt putter: src/Pugs/PreludePC.hs is currently haskell expressions
18:09 audreyt huge ones
18:10 audreyt just to handle construction of TVars
18:10 audreyt it's a bad way to serialize Exp
18:10 audreyt and load it back
18:10 audreyt because there were no other ways to serialize the Exp
18:10 audreyt (can't do it over pure expresisons as Exp contains sideeffectful storage)
18:10 audreyt (via TVar contained in Pad/Sym)
18:10 audreyt (and Val also)
18:12 audreyt but now we have Yaml, we can just dump the prelude's parsed Exp as a .yaml
18:12 audreyt and load it back during runtime
18:13 putter ah, ok.  yamlified Exp.
18:13 svnbot6 r8993 | yiyihu++ | Fix a bug which is while slurp a file contains utf8, Pugs can't display it correctly.
18:14 putter yiyihu++
18:15 putter audreyt: so, you looked at the parser-on-p5 spike-in-progress?  any feedback?
18:17 putter (obviously, is currently just a p5 regexp engine using a rec-decent backtracking idiom...)
18:18 putter I was thinking of trying to wrap up the spike today, with
18:21 putter parsing a enough  whitespace, statement_control, and token decls  to do a parsetree for "say 3".  Or maybe infix too, and "say 3 + 4 * 5".  but I don't think i really understand how one writes an operator precedence parser which deals operators which have fixities.
18:22 putter Have to go back to try to understand Pm's OpTable again.
18:22 putter Anyone around who can lend me a clue?
18:23 * stevan dusts off an old clue he found under his desk and hands it to putter
18:23 stevan doubt it will do any good though
18:23 * putter thanks steven, turns it around, wonders how to open it.
18:23 putter ah well.
18:24 * putter adds steven's clue to the clutter on his desk.  you never know, it might be useful someday.
18:24 stevan :)
18:25 putter maybe I'll just spike a very simple oop.  which will give the 3+4*5 parsetree.  and worry making it real later.  though that's a bit un-spikish.
18:26 audreyt but useful-ish
18:26 putter *chuckle*
18:29 svnbot6 r8994 | audreyt++ | * Dumping recursive YAML structures (currently only TVar) in DrIFT.YAML.
18:30 lhooq joined perl6
18:32 bsb left perl6
18:35 svnbot6 r8995 | audreyt++ | * Instead of using unsafePerformIO, DrIFT.YAML now
18:35 svnbot6 r8995 | audreyt++ |   uses a proper reader monad to store the "seen" cache
18:35 svnbot6 r8995 | audreyt++ |   to handle recursive structures.
18:50 svnbot6 r8996 | audreyt++ | * DrIFT.YAML: Generalize the asYAML instance for (TVar a) into
18:50 svnbot6 r8996 | audreyt++ |   asYAMLwith, which deals with anything that may (recursively)
18:50 svnbot6 r8996 | audreyt++ |   contain any other thing, as long as both have a YAML instance
18:50 svnbot6 r8996 | audreyt++ |   that goes with them.
18:55 larsen joined perl6
18:56 grayson joined perl6
19:03 rantanplan_ joined perl6
19:04 rantanplan_ joined perl6
19:36 robkinyon joined perl6
19:47 hexmode` joined perl6
19:47 putter joined perl6
19:47 putter colabti.de/irclogger ++
20:02 svnbot6 r8997 | audreyt++ | syck.h: avoid redefinition of HAVE_STRING_H and HAVE_STDLIB_H.
20:02 svnbot6 r8998 | putter++ | regexp_engine_demo.pl - first cut at spike-ish support for <subrules> in p5 regexps.
20:04 tewk putter: what is a spike, a quick prototype.  I hope to get my attempted port of PGE done this evening.  today is a $THESIS day.
20:05 putter does this look plausible, Snn/p6l-wise?   token whitespace:<basic_whitespace> :perl5 { \s+ }
20:05 audreyt putter: yes.
20:08 putter thanks :)
20:08 audreyt whew. recursive .yaml dumping finally implemented
20:09 audreyt gaal is working on VRef dumping; once that's there, we need only loading-Exp-from-YAML and the precomp prelude<->yaml cycle will be complete
20:11 Ovid joined perl6
20:11 putter which will remove the "can't add stuff to src/perl6/Prelude.pm because it makes the precompiling the prelude too slow" constraint.  permitting Prim.hs to be gutted out to Prelude.pm.  huzzah!
20:13 putter actually, which raises a question.  what namespace do internals go in.  Pugs::Internals is fine for a pugs-specific prelude.  but for a backend-neutral one, perhaps something like Perl6::Internals?  or somesuch?
20:14 fglock joined perl6
20:14 putter though Pugs::Internals could be taken as a "internals api standard" declaration
20:14 putter s/declaration/selection/
20:14 integral if it's internals anything should be ok since nothing external should rely on it :)
20:14 putter ok, never mind ;)
20:14 audreyt and Perl6::Internals is funny
20:15 audreyt Perl6::Prelude::* makes more sense probably
20:15 audreyt but whatever works works :)
20:15 putter integral: the "hoped to be backend-nonspecific" src/perl6/Prelude.pm does/will rely in Internals
20:15 putter s/in/on
20:15 integral sure, but it's still internal to the pugs project.  It's not going to work with TPF's perl6
20:16 audreyt if it is, then we are essentially speccing the runtime API any underlying runtime needs to provide
20:16 audreyt (which is what Pugs::Internals::* was meant to be)
20:16 integral I thought perl6-language didn't want a layered spec like that?
20:16 audreyt but that's not part of p6 language proper, so calling it Perl6::Internals would be a bit of misnomer
20:17 audreyt integral: we are in vehement agreement
20:18 putter yes.  at least partly in a good way.  eg, with the math library, when a simple call to say a double sub sin can be separated from a more complex p6-side "it's a multi method, and takes Num, and...".
20:18 audreyt *nod*
20:18 putter my "yes" was re "essentially speccing the runtime API"
20:21 putter so Perl6::Prelude::SupportingApiPugs0  is a nice concept.  with the current Pugs::Internals fine for now.
20:21 cjeris joined perl6
20:21 audreyt yes.
20:23 svnbot6 r8999 | audreyt++ | * first cut (incomplete) of dumping recursive YAML
20:23 svnbot6 r8999 | audreyt++ |   structures via .yaml. SYMID resolution still needs work.
20:23 svnbot6 r8999 | audreyt++ |   At least it doesn't infinite loop now...
20:24 putter multi infix:<+> ($a,$b) has precedence(:lt(infix:<+>)) {...}    look plausible?  I'm making up the precedence attribute. But I didn't quickly find a specced syntax... still looking...
20:24 audreyt "is tighter", "is looser"
20:24 audreyt S06
20:24 audreyt and "is equiv"
20:24 audreyt I have to sleep now :-/
20:25 audreyt see you tomorrow :)
20:25 audreyt *wave* &
20:25 putter awesome, thanks.
20:25 putter good night &
20:26 * putter ponders that if audreyt was in GMT+0 or so, we might overlap more.. ;)
20:28 fglock hi putter
20:31 putter hi fglock! long time no see
20:31 putter how goes?
20:31 fglock I was on vacation, and after that, too much $work
20:32 fglock now it's back to normal, I think :)
20:33 spinclad ?eval my @a; @a = (1, \@a, [\@a]); say @a.yaml;
20:33 evalbot_8990 is now known as evalbot_8999
20:33 evalbot_8999 OUTPUT[---  - 1 -    - 1   - ~   -      - ~ -    -      - 1     - ~     -        - ~  ] bool::true
20:33 putter good vacation?
20:33 fglock I was on the beach for almost a month. I'll start my PhD on march - I'm anxious about it
20:33 Amnesiac joined perl6
20:33 * putter wonders if the yaml output is Morse encoded...
20:34 putter fglock: ooo.  what country?
20:34 fglock south of Brazil
20:35 putter lol.  err, the phd.  though the beach sounds nice too ;)
20:36 fglock Brazil too - I'll be working on a wearable device to monitor neurological patients
20:37 putter macro statement_control:<simple_call> (Match $m --> Match) is parsed(rx:perl5:w/<identifier> <expr>;/) {$m} look plausible?
20:38 putter Brazil has a us model phd system?
20:38 spinclad I hear that long coast from Rio south is pretty damn nice
20:38 putter s/us/US/
20:38 nnunley_ is now known as nnunley
20:38 * spinclad finds the yaml version of @a less compelling than the perl...
20:38 putter fglock: monitor neurologically?
20:39 fglock putter: I think it is more or less the same system - about 4 years work, and a thesis
20:40 fglock it's in the Medicine School - Experimental Neurology - they make drug trials for epilepsy
20:40 Khisanth joined perl6
20:41 putter so the monitoring is... mobile EEG?
20:41 fglock yes, with wireless communications
20:42 putter spinclad: nice ==  big, unbuiltup, beautiful, warm?
20:43 fglock spinclad: it's a bit more south - colder water here, but very sunny
20:43 spinclad near sao paulo or farther south toward uruguay?
20:44 putter fglock: ah.  hmm.  i very fuzziliy recall someone talking about doing that around boston...  Is this a thing which has been done, and the thesis is a variation on a theme, or the thesis breaking new ground?
20:44 fglock Porto Alegre - near Uruguay. The beach was Capão da Canoa
20:45 spinclad nice as in beautiful and warm in climate and people (but I've never been there myself)
20:45 fglock putter: EEG has been done many times, and portable monitoring too. I hope I can find something new enough about it
20:46 putter a Porto Alegre webcam?  :)  http://www.wcams.com.br/camera3_eng.htm
20:47 fglock it's night, you can't see anything :)
20:48 fglock we will have YAPC::Brasil in april - it would be a good time to visit here
20:51 putter that can't be the right thing:  I find my self wanting to write   rule simple_call :perl5:w { <identifier> <expr>; }
20:51 putter macro statement_control:<simple_call> (Match $m --> Match) is parsed(rx:perl5/<simple_call>/) {$m}
20:51 putter so the Match get's set up correctly.  hmm...
20:52 putter I suppose it could be the right thing...
20:54 * fglock is trying to understand it
20:58 putter statement_control: means it gets added to the list of things tried by <statement> in the p6 source grammar.
20:59 fglock putter: how is $m bound in the macro, given this rule?
20:59 putter is parsed(//) gives a rule to match it's syntax against the input stream.  only macros can do "is parsed", so that makes it a macro.
21:00 putter yes.  not specced, but it seemed plausible.
21:00 putter s/not specced/i dont remember seeing it specced but havent really looked too hard/
21:02 putter macros can return strings, and as-yet-undefined ast's... I'm hoping maybe Match's too.  or at least for this spike they can, since I don't want string, and I can't deal with the complication of asts.
21:04 putter hmm... or, i guess i'm just using Match as my ast node type..?
21:04 fglock ok, I found out that the rule will parse $m - which means $m is a string?
21:05 putter huh?
21:05 putter $m is the Match object returned by successfully calling the "is parsed" rule on the input stream
21:07 putter though it's probably not what your asking, Match objects do stringify if you ask them to, but here that would be problematic, since it would stringify to the original code, and the parser would try again, and loop(?).
21:11 putter the parser will be looking at  input "say 3; ...", and have gone down from <Perl.prog> to <Perl.statement>, and be trying to find something to eat more of the input.  It will try all the whitespace:foo tokens, and then all the statement_control: macros.  it will try macro statement_control:<mumble>, whose is parsed regex /<simple_call>/ will match, so it will call the
21:12 Ovid joined perl6
21:12 putter macro with the Match result, and... well, normally it would get back either ast, which it would collect, or string, which it would stick back on the front of the input stream.  for my spike at least, the Match object is also serving as the ast object, so the parser just collects it.
21:15 fglock what you wrote is the same as "macro statement_control:<simple_call> is parsed(rx:perl5/<simple_call>/) {$_}" but with named args?
21:16 putter so the objective is for  "say 3" =~ /<Perl.prog>/  to return a Match tree vaguely like   {RULE=>'Perl.prog',statements=>{RULE=>'mumble​',identifier=>{RULE=>'identifier',str=>'say'}​,expr=>{RULE=>'literal_integer',str=>'3'}}}
21:16 dduncan joined perl6
21:18 putter fglock: only if sub/macro parameter lists are optional... which I kind of doubt, but could be wrong.
21:19 putter my example is better written as: macro statement_control:<mumble> (Match $m --> Match) is parsed(rx:perl5/<simple_call>/) {$m}
21:20 putter (the two uses of "simple_call" were actually in different namespaces.  but giving them (the macro and the rule) different names avoids confusion.
21:26 fglock I have to go - I'll read misc/pX off-line
21:27 fglock left perl6
21:31 putter fglock: ah, ok.  hopefully a bit more there by end of day.  cheers
21:34 justatheory joined perl6
21:40 DesreveR joined perl6
22:03 DesreveR is now known as r0nny
22:53 stennie joined perl6
23:02 sapper joined perl6
23:08 drbean joined perl6
23:11 dduncan this may be expected, but currently pugs won't build for me with a plain "svk pull" and "make"
23:12 dduncan warnings at compile time may not be an issue, but it seems to be a linking problem that kills it
23:12 dduncan its related to 4 undefined Yaml related symbols
23:13 dduncan but I don't need to run Pugs now anyway, or for awhile, so nothing needs to be done for my benefit
23:13 dduncan my report is just fyi
23:44 carlos-the-man joined perl6
23:44 carlos-the-man hi guys! is it possible to trnaslate this P.O.S. into an .htaccess file? my webhosting provider is giving me a hard time http://pastebin.com/555177
23:52 TMTOWTDIt left perl6
23:56 cognominal carlos-the-man:  EWRONGCHANNEL this is not a channel about hosting or mod_perl, it is a development channel about a future version of Perl
23:57 carlos-the-man oh, sorry

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

Perl 6 | Reference Documentation | Rakudo