6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6
Set by wolverian on 12 February 2006.
00:14 avar joined, Cryptic_K joined 00:17 ozone_ joined 00:20 K_ joined 00:30 avar joined 00:42 avar joined 01:24 stevan_ joined, kanru joined 01:38 Cryptic_K joined
putter anyone around? 01:47
putter , weary, wonders whether to simply declare this a hacking-free day. :/ 01:50
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. 01:58
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
precedence parser.
dduncan: ;) 02:02
just trying to get psyced. three cups of caffine and I'm still falling asleep.
dduncan: working on anything interesting? 02:04
dduncan well, if you want to know, I just submitted my OSCON 2006 talk proposal 02:08
I can nopaste its main parts for your (and others') perusal
pasteling "dduncan" at 24.69.53.198 pasted "my OSCON 2006 45-min talk proposal" (76 lines, 3.1K) at sial.org/pbot/15860 02:13
dduncan there you go
putter neat!
reading...
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:14
putter lol 02:17
dduncan what part?
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.
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.
tewk 's perl5 knowledge is limited, and what he does remeber is rusty :)
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
putter k
dduncan I have up to mid-june or so to submit slides, and until the day itself to prepare
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
02:20 f0rth_ joined
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...
dduncan the short text is for web ads, and the long text for the convention book, I think
I'm not going to JIT the talk, though I know some people do 02:21
I think audreyt is one of them
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?
putter looks at oscon side, wordsmithing...
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:23
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...?
dduncan ... 02:25
I'm not sure what the problem is ... elaborate please 02:26
putter ...introduces "Rosetta", ***, native for... felt there was a missing bit "***" - R is a module? framework? mumble? 02:27
re elaborate,
dduncan so I should be more specific than "solution"? 02:28
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.
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?
dduncan those are 2 related observations 02:30
putter s/that makes/which makes/ I think, but that's exactly it. :)
dduncan or the second elaborates on the first
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:31
or it could be said that those are 2 symptoms of a problem, if not that one causes the other 02:32
I could make them 2 sentences
putter ok, "effectively" needs a question, but first...
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? ;)
dduncan I admit, that is a bit of hyperbole. 02:33
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".
dduncan I could point form it a bit
you are right 02:35
putter new framework?
dduncan yes and no
02:35 stevan joined
dduncan its a rewrite of something I've been putting on cpan for the last 3 years 02:35
here's a bit of terminology ...
1. Oracle, MySQL etc are "database management systems", or DBMSs 02:36
2. sales, customers, etc are databases
the former is an app and the latter is data it processes
Rosetta is a DBMS
perhaps I should add that detail 02:37
now both long and short versions say: This talk introduces the "Rosetta" DBMS framework, ... 02:38
dduncan has to go for dinner
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:39
This talk introduces the new "Rosetta" DBMS framework... 02:40
perhaps something like that. enjoy dinner & 02:41
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:44
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...
tewk: what is Match.rb's @corotine? 02:53
tewk that's from PGE, I think it allows the match to be executed again, need to go look. 02:55
putter hmm... ok, question: 02:57
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
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. ;) 02:59
tewk I'm still learning the PGE model. 03:00
tewk looks at parrot PGE source
putter notes PGE need not be a cannonical reference... 03:02
re addtok.t, ooohhhhh, there all ops in the p6 _regexp_ optable... 03:03
putter wasn't thinking about creating arbitrary operators in regexps... but in retrospect that seems a neat idea... 03:04
tewk Ok OpTable is used to parse P6Rules, p5regexp, etc I believe. 03:05
putter makes sense
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(...) {...}
but then again, I'm fuzzy on grammatical categories 03:07
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:08
putter hmmm... 03:09
03:10 arcady joined
putter do you have feel for what gets done where? what in Match, Rule, and OpTable? 03:11
tewk Somewhat, it's becoming clearer. Rule is a subtype of Match. 03:12
putter *blinks* 03:13
"OPTable" is only mentioned once (I'm back to the rb sources). in it's class declaration. so there's a missing piece? 03:14
putter goes over to parrot sources... 03:15
tewk There you go, stop looking at the ruby stuff and go look at PGE
putter didn't realize this stuff was coming from pge...
actually, my biggest puzzle in this area is, 03:16
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:18
(oh, and the token itself being given a chance to backtrack itself) 03:19
does that sound right, or am I missing something? 03:20
putter has a hard time reading pir... :( 03:21
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 ?
are you talking about parsing P6Rules or how P6Rules parse plain text ? 03:24
putter ah, ok, 03:25
dduncan is back
putter, I saw your comments after I left ... processing ... 03:26
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
so using the word "new" is appropriate
even though the name is unchanged
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
or something like that, I think
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:31
oh, my example lispish_call has bugs. used $/ rather than $m for example 03:32
and actually, I don't know that token macros can be string returning macros. that's another complication. 03:33
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.)
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:38
dduncan putter, ... 03:40
deriving from your example, this is my new Short Description:
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.
47 words or so
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
dduncan: great :)
i like 03:43
much clearer
dduncan thanks to you
putter a second set of eyes is always a valuable resource :)
dduncan deff nut lee
tewk Why multiple engine implementations? 03:46
dduncan that's the main way we get portability
a separate engine optimized to a particular storage method 03:47
one, called Native, is completely self contained
some others will use various products like Oracle etc to do most of the work
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:48
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... ;)
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? ;)
dduncan the point is, separating interface from implementation lets several people have a whack at implementing it
putter exactly
dduncan and an engine is an implementation 03:51
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:53
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:56
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. 03:59
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:00
close to end of day for me I think. 04:01
where were we?
04:03 chen joined, chen left
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:04
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
as a credit of sorts, though I don't expect it to carry further than that
04:06 justatheory joined
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 ...
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".
sorry, I...
default to low profile. or try.
dduncan so I shall remove your name from the email?
okay; remove you I shall ... 04:08
putter yes, thanks. sorry for the inconvenience.
dduncan and I'm sure you're glad I asked you
putter the other would have been fine to. just if given the choice...
dduncan what do you mean?
putter err, which part? 04:09
dduncan "the other would have been fine too
putter "the other" == "email going out with me in it"
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?
putter yes, exaclty 04:10
exactly even
dduncan okay, sending ...
putter :)
04:10 Daveman` joined
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:11
dduncan I expect there is more time 04:12
putter ok
dduncan the brief summary should appear online on the first of April, if my talk is accepted
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
err, Their applications depend on them to manage information, or store objects persistently.
04:14 Amnesiac joined
dduncan the longer one, I'm not sure ... actually, it'll probably appear then too 04:14
online that is, 'cause I think each talk has its own web page
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
I expect they would have their own edits to make too
and not simply take mine verbatim
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:16
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
more so because they are probably making changes themselves in the last days
putter re "their own edits"... that might be optimistic... being stretched thin for resources seems a universal property of conference organizatino...
ah, ok 04:18
dduncan maybe, but the organizers *are* a major book publisher
I'd expect them to just notice some things by habit
putter :) 04:21
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
putter dduncan: neat talk. i probably will miss it, but look forward to the slides. :) 04:25
tewk: :) ok, see you then.
g'night &
04:26 amv_ joined 04:30 drbean joined 05:15 grayson joined 05:17 penk joined 05:53 r0nny joined 06:03 Medvekoma joined 07:07 justatheory joined 07:18 iblechbot joined
audreyt greetings 07:48
gaal welcome, audreyt :) 07:49
audreyt gaal++ # wonderful place
(with instant-on tcp/ip)
gaal thanks! so cool to finally meet you in person
audreyt :D
and connection to feather is much faster
gaal speed of light advantage. at leo's it'll probably be even better 07:50
szbalint yeah. :)
Its quite nice from here in .hu
07:51 marmic joined
GeJ morning audreyt 07:52
svnbot6 r8984 | Darren_Duncan++ | r2435@darren-duncans-power-mac-g4: darrenduncan | 2006-02-13 23:51:18 -0800
r8984 | Darren_Duncan++ | /ext/Rosetta : added docs/OSCON2006SessionProposal.txt, whose name should be self explanatory
dduncan I ditto that
fyi, the committed new file is newer than that nopaste I did around 5 hours ago 07:53
now that's bad grammar
audreyt is still catching up email and stuff 07:57
08:10 grayson joined 08:11 G2 joined 08:30 bsb joined 08:32 xern joined
MrFarts hey, could someone tell me what qw() means under perl 5 ? 08:49
08:50 lhooq joined
GeJ it's the quoting operator mostly used for list creation. But you'll be able to get more information on #perl. 08:52
this channel is perl6-related
MrFarts GeJ, thanks 08:53
GeJ you're welcome
08:54 drrho joined 08:58 leif joined 09:15 avar joined
arcady is IO in perl 6 asynchronous by default now? 09:16
09:25 xinming joined
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
however, file handles seem to have a readline method
which seems to be non-blocking 09:35
returning undef if nothing has been read
where is IO even documented? 09:38
09:50 elmex joined 10:03 Odin-LAP joined 10:09 Aankhen`` joined, Odin- joined 10:13 nnunley joined 10:44 wilx joined
audreyt short-term hackathon topics today with gaal 11:00
- finish recursive data structure in Data.Yaml.Syck
- implement -CParse-YAML and convert precompiled prelude to use that 11:01
- grok the book "the art of metaobject protocol"
- resume journaling of recent developments
wolverian yay! audreyt++ and gaal++ 11:02
audreyt :)
theorb Implement -CParse-YAML? I thought it was working weeks ago? 11:05
journal++
11:05 wilx`` joined
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:06
audreyt it doesn't 11:07
because it doesn't handle tvars correctly
integral ah, that's why there's lots of gaps! 11:08
audreyt to handle tvars we need to use stableptr to ensure that same tvars gets mitted as yaml anchors 11:09
also, DriFT.YAML needs a fromYaml form 11:10
that part you can help, actually, if you've got tuits :)
we'll start by porting my YAML::Syck (p5) logic of anchor resolution etc to haskell
but he's off to return the car or something, so this will start in ~1.5hrs instead of now 11:11
(and I get to take a timezone-adjusting short nap. maybe.)
spinclad audreyt: 1) YAML first makes lots of sense to me; 2) is targetting PIL2/PILN on the longer-term target screen? 11:15
audreyt spinclad: we need to work out the pad structure first 11:19
that's the ->PILN blocker
and also gaal's pet project blocker (variable export)
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 (!)
audreyt yes, I'm aware of that, and we need to remedy that on the compiler level 11:20
though definitely he can take -CParser-YAML when it's tehre
spinclad (the pad structure?)
audreyt because it's the same info pugs' main runtime uses
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
audreyt and also controls symbol initiation, multi vs single dispatch, etc
and we also need to add "proto" support
so we can truly do class{...} as a closure just like S12 says
spinclad good-o. S12++ 11:22
audreyt I'm glad to be back :)
spinclad as are all of us, I'm sure! 11:23
integral audreyt++ # brilliant to have you back :)
audreyt my hope is by the time we hit the real hackatohn
(~1wk from now)
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
using p6 or hs or p5 or whatever else to fill in the gaps
including reviving the Perl6-ObjectSpace PILN evaluator if needed
and result in a runnable 6.28.0-level Perl 6, using perl5 as a virtual machine, by OSDC.il 11:25
at least that's my pet plan. :)
11:25 scook0 joined
audreyt (and if that works, it becomes much easier to stay in Leo's place afterwards, and port the same thing to parrot) 11:25
11:26 rantanplan_ joined
audreyt more details later in the journal :) 11:26
spinclad :) :)
audreyt I'll brb :) 11:27
11:34 f joined 11:45 azuroth joined 11:46 G2 joined 12:05 drbean joined 12:09 iblechbot joined 12:14 xinming1983 joined 12:24 Odin- joined 12:26 xinming joined 12:41 drbean_ joined 13:05 azuroth joined 13:19 nnunley joined 13:51 gaal joined 13:52 Nouk joined
audreyt gaal: 13:57
autocmd BufNewFile,BufRead *.hsc setf haskell
autocmd BufNewFile,BufRead *.hs-drift setf haskell
azuroth wonders what the terminology for having multiple partitions (is same hard drive possible?) on one mount point is 13:58
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
GeJ: we're approx. 1 foot away from each other now
14:03 kanru joined
azuroth thanks gaal 14:03
GeJ gaal: hum, oki. That's what I thought. hence my question about audrey pasting here instead of telling you offline 14:04
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
if we do we'd be using ip-over-voice
GeJ audreyt: yes, I thought about the ^C^V thing but too late :) 14:06
azuroth ip over voice. :D
svnbot6 r8985 | audreyt++ | * put a scary warning block of text to all DrIFT-generated 14:21
r8985 | audreyt++ | files so that people wouold not edit it and see their edits
r8985 | audreyt++ | being reverted once the .hs-drift source file changes.
14:24 Kattana joined 14:25 grayson joined
svnbot6 r8986 | audreyt++ | * Data.Yaml.Syck: emitting '~' should add quotes. 14:27
audreyt ?eval '~'.yaml 14:29
14:29 evalbot_8966 is now known as evalbot_8985
evalbot_8985 "--- ~\n" 14:29
14:34 kolibrie joined
audreyt ?eval '~'.yaml 14:34
14:34 evalbot_8985 is now known as evalbot_8986
evalbot_8986 "--- \'~\'\n" 14:34
14:37 Qiang joined
clkao audreyt: do you fix yaml::syck.pm for ~ as well? 14:44
audreyt clkao: sure
I'm now backporting from YAML::Syck 0.33
14:47 drbean_ left
clkao cool. 14:48
audreyt okay, backporting complete 14:51
now fixing dumping recursive structures.
svnbot6 r8987 | audreyt++ | * Upgrade syck to the same version as YAML::Syck 0.33. 14:55
14:55 vel6608 joined 15:18 chris2 joined 15:24 kanru joined 15:26 hexmode joined 15:27 estel joined 15:47 Aankhen`` joined
svnbot6 r8988 | audreyt++ | * Dumping recursive data structures in @foo.perl should now work properly. 15:58
16:06 dada joined 16:15 SamB joined
svnbot6 r8989 | audreyt++ | * don't emit the "$_:=" thing for nonrecursive data structures 16:15
r8989 | audreyt++ | in .perl.
audreyt ?eval my @a; @a = (1, \@a, [\@a]); @a.perl; 16:16
16:16 evalbot_8986 is now known as evalbot_8988
evalbot_8988 $_ := "\$_ := [1, \\\$_, [\\\$_,]]" 16:16
audreyt ?eval my @a; @a = (1, \@a, [\@a]); say @a.perl; 16:19
evalbot_8988 OUTPUT[$_ := [1, \$_, [\$_,]] ] $_ := bool::true
16:31 TMTOWTDIt joined
Java-er Hello all 16:33
guys, is perl 6 backward compatiable ? 16:34
audreyt what do you mean? :)
Java-er compatible*
audreyt perl6 is specced to run perl5 intact
svnbot6 r8990 | gaal++ | * add fromYAML to DrIFT.YAML instances
Java-er this mean I can run perl 5 code with perl 6 ? 16:35
another question, does perl 6 use interpreter or virtual machine like java?
audreyt perl 6 compiles to a virtual machine 16:36
or rather, multiple virtual machines
Java-er like JVM ?
audreyt yeah, e.g. "Parrot"
but we also compile to javascript and (soon) perl5
it's not impossible to compile to JVM if there is a need.
Java-er cool 16:37
what about PHP ? :)
audreyt again, if someone is willing, why not
Java-er last thing, are there any binaries for perl 6 or I have to build it myself ? 16:38
16:39 chris2 joined 16:40 elmex joined
audreyt what is your platform? 16:42
xinming audreyt: in Prim.hs, for the `op1 slurp`, It seems must do decodeUtf8 first. :-P 16:47
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
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:50
God bless me... I am compiling the modified version... 16:57
fixed... 16:58
First commit in Pugs core source. :-P 16:59
audreyt yay 17:00
spinclad ?eval my @a; @a = (1, \@a, [\@a]); say @a.perl; 17:12
17:12 evalbot_8988 is now known as evalbot_8990
evalbot_8990 OUTPUT[$_ := [1, \$_, [\$_,]] ] bool::true 17:12
17:13 nnunley_ joined
bsb audreyt: what is the "proto" support mentioned earlier? (or should I wait for the journal) 17:14
svnbot6 r8991 | tewk++ | Continued exploration of porting PGE to P5 17:17
r8992 | audreyt++ | * Data.Yaml.Syck: Support for emitting lazy (infinite, self-recursive)
r8992 | audreyt++ | YamlNode structures.
audreyt bsb: see S12... 17:18
"proto" is a forward declartion of multis 17:19
no multis can be more generic than proto
it's in S12
I think
dev.perl.org/perl6/doc/design/syn/S12.html 17:20
bsb Thanks, looking now 17:21
xinming audreyt: will haskell' become 'haskell 2'? 17:24
audreyt xinming: no, it will become "haskell 06" most probably 17:27
haskell 2 is more vague
xinming audreyt: hmm, So, haskell' will always become the newest haskell branch, and `haskell \d\d` will be the specified version, right? 17:29
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
Build failed: 256 at util/build_pugs.pl line 178.
make: *** [pugs] Error 2
... there are many lines like this.
recompiling with `make clean'. bbl 17:33
17:45 justatheory joined
stevan she's free from $work!!!!!! 17:47
stevan just finished backlogging :)
hey audreyt, gaal :)
audreyt greetings :) 17:48
stevan ponders a falafel for lunch in a vain attempt to participate in the .il pre-hackathon
xinming lol, She needs sleep... Sleeplessness causes whelk
:-P 17:49
stevan sleep is for post-hackathon :P
stevan dumps his coffee grounds into his cup in a sad attempt to make turkish coffee 17:50
17:53 rantanplan_ joined
gaal hey stevan! 18:00
audreyt yo stevan 18:02
18:02 putter joined
putter "And then, its Miller^B^Whacking time." :) 18:02
audreyt hey putter :)
putter hi audreyt :) 18:03
yay recursive .perl :) 18:04
audreyt recursive .yaml coming soon :) 18:05
then, precompiled prelude via yaml
(and useful class composition info via -CParse-Yaml)
clkao WHOOT 18:06
putter audreyt: what's the next level of detail on "precompiled prelude via yaml"....? 18:07
putter is intrigued, but fuzzy... 18:08
s/fuzzy/hazy/
18:09 sili joined
audreyt putter: src/Pugs/PreludePC.hs is currently haskell expressions 18:09
huge ones
just to handle construction of TVars 18:10
it's a bad way to serialize Exp
and load it back
because there were no other ways to serialize the Exp
(can't do it over pure expresisons as Exp contains sideeffectful storage)
(via TVar contained in Pad/Sym)
(and Val also)
but now we have Yaml, we can just dump the prelude's parsed Exp as a .yaml 18:12
and load it back during runtime
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.
putter yiyihu++ 18:14
audreyt: so, you looked at the parser-on-p5 spike-in-progress? any feedback? 18:15
(obviously, is currently just a p5 regexp engine using a rec-decent backtracking idiom...) 18:17
I was thinking of trying to wrap up the spike today, with 18:18
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:21
Have to go back to try to understand Pm's OpTable again. 18:22
Anyone around who can lend me a clue?
stevan dusts off an old clue he found under his desk and hands it to putter 18:23
doubt it will do any good though
putter thanks steven, turns it around, wonders how to open it.
ah well.
putter adds steven's clue to the clutter on his desk. you never know, it might be useful someday. 18:24
stevan :)
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:25
audreyt but useful-ish 18:26
putter *chuckle*
svnbot6 r8994 | audreyt++ | * Dumping recursive YAML structures (currently only TVar) in DrIFT.YAML. 18:29
18:30 lhooq joined 18:32 bsb left
svnbot6 r8995 | audreyt++ | * Instead of using unsafePerformIO, DrIFT.YAML now 18:35
r8995 | audreyt++ | uses a proper reader monad to store the "seen" cache
r8995 | audreyt++ | to handle recursive structures.
r8996 | audreyt++ | * DrIFT.YAML: Generalize the asYAML instance for (TVar a) into 18:50
r8996 | audreyt++ | asYAMLwith, which deals with anything that may (recursively)
r8996 | audreyt++ | contain any other thing, as long as both have a YAML instance
r8996 | audreyt++ | that goes with them.
18:55 larsen joined 18:56 grayson joined 19:03 rantanplan_ joined 19:04 rantanplan_ joined 19:36 robkinyon joined 19:47 hexmode` joined, putter joined
putter colabti.de/irclogger ++ 19:47
svnbot6 r8997 | audreyt++ | syck.h: avoid redefinition of HAVE_STRING_H and HAVE_STDLIB_H. 20:02
r8998 | putter++ | regexp_engine_demo.pl - first cut at spike-ish support for <subrules> in p5 regexps.
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:04
putter does this look plausible, Snn/p6l-wise? token whitespace:<basic_whitespace> :perl5 { \s+ } 20:05
audreyt putter: yes.
putter thanks :) 20:08
audreyt whew. recursive .yaml dumping finally implemented
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:09
20:11 Ovid joined
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:11
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:13
20:14 fglock joined
putter though Pugs::Internals could be taken as a "internals api standard" declaration 20:14
s/declaration/selection/
integral if it's internals anything should be ok since nothing external should rely on it :)
putter ok, never mind ;)
audreyt and Perl6::Internals is funny
Perl6::Prelude::* makes more sense probably 20:15
but whatever works works :)
putter integral: the "hoped to be backend-nonspecific" src/perl6/Prelude.pm does/will rely in Internals
s/in/on
integral sure, but it's still internal to the pugs project. It's not going to work with TPF's perl6
audreyt if it is, then we are essentially speccing the runtime API any underlying runtime needs to provide 20:16
(which is what Pugs::Internals::* was meant to be)
integral I thought perl6-language didn't want a layered spec like that?
audreyt but that's not part of p6 language proper, so calling it Perl6::Internals would be a bit of misnomer
integral: we are in vehement agreement 20:17
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*
putter my "yes" was re "essentially speccing the runtime API"
so Perl6::Prelude::SupportingApiPugs0 is a nice concept. with the current Pugs::Internals fine for now. 20:21
20:21 cjeris joined
audreyt yes. 20:21
svnbot6 r8999 | audreyt++ | * first cut (incomplete) of dumping recursive YAML 20:23
r8999 | audreyt++ | structures via .yaml. SYMID resolution still needs work.
r8999 | audreyt++ | At least it doesn't infinite loop now...
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"
S06
and "is equiv"
I have to sleep now :-/
see you tomorrow :) 20:25
*wave* &
putter awesome, thanks.
good night &
putter ponders that if audreyt was in GMT+0 or so, we might overlap more.. ;) 20:26
fglock hi putter 20:28
putter hi fglock! long time no see 20:31
how goes?
fglock I was on vacation, and after that, too much $work
now it's back to normal, I think :) 20:32
spinclad ?eval my @a; @a = (1, \@a, [\@a]); say @a.yaml; 20:33
20:33 evalbot_8990 is now known as evalbot_8999
evalbot_8999 OUTPUT[--- - 1 - - 1 - ~ - - ~ - - - 1 - ~ - - ~ ] bool::true 20:33
putter good vacation?
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
putter wonders if the yaml output is Morse encoded... 20:33
fglock: ooo. what country? 20:34
fglock south of Brazil
putter lol. err, the phd. though the beach sounds nice too ;) 20:35
fglock Brazil too - I'll be working on a wearable device to monitor neurological patients 20:36
putter macro statement_control:<simple_call> (Match $m --> Match) is parsed(rx:perl5:w/<identifier> <expr>;/) {$m} look plausible? 20:37
Brazil has a us model phd system? 20:38
spinclad I hear that long coast from Rio south is pretty damn nice
putter s/us/US/
20:38 nnunley_ is now known as nnunley
spinclad finds the yaml version of @a less compelling than the perl... 20:38
putter fglock: monitor neurologically?
fglock putter: I think it is more or less the same system - about 4 years work, and a thesis 20:39
it's in the Medicine School - Experimental Neurology - they make drug trials for epilepsy 20:40
20:40 Khisanth joined
putter so the monitoring is... mobile EEG? 20:41
fglock yes, with wireless communications
putter spinclad: nice == big, unbuiltup, beautiful, warm? 20:42
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?
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ōæ½xE3o da Canoa
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
putter a Porto Alegre webcam? :) www.wcams.com.br/camera3_eng.htm 20:46
fglock it's night, you can't see anything :) 20:47
we will have YAPC::Brasil in april - it would be a good time to visit here 20:48
putter that can't be the right thing: I find my self wanting to write rule simple_call :perl5:w { <identifier> <expr>; } 20:51
macro statement_control:<simple_call> (Match $m --> Match) is parsed(rx:perl5/<simple_call>/) {$m}
so the Match get's set up correctly. hmm...
I suppose it could be the right thing... 20:52
fglock is trying to understand it 20:54
putter statement_control: means it gets added to the list of things tried by <statement> in the p6 source grammar. 20:58
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.
yes. not specced, but it seemed plausible. 21:00
s/not specced/i dont remember seeing it specced but havent really looked too hard/
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:02
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?
putter huh? 21:05
$m is the Match object returned by successfully calling the "is parsed" rule on the input stream
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:07
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:11
21:12 Ovid joined
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:12
fglock what you wrote is the same as "macro statement_control:<simple_call> is parsed(rx:perl5/<simple_call>/) {$_}" but with named args? 21:15
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
21:16 dduncan joined
putter fglock: only if sub/macro parameter lists are optional... which I kind of doubt, but could be wrong. 21:18
my example is better written as: macro statement_control:<mumble> (Match $m --> Match) is parsed(rx:perl5/<simple_call>/) {$m} 21:19
(the two uses of "simple_call" were actually in different namespaces. but giving them (the macro and the rule) different names avoids confusion. 21:20
fglock I have to go - I'll read misc/pX off-line 21:26
21:27 fglock left
putter fglock: ah, ok. hopefully a bit more there by end of day. cheers 21:31
21:34 justatheory joined 21:40 DesreveR joined 22:03 DesreveR is now known as r0nny 22:53 stennie joined 23:02 sapper joined 23:08 drbean joined
dduncan this may be expected, but currently pugs won't build for me with a plain "svk pull" and "make" 23:11
warnings at compile time may not be an issue, but it seems to be a linking problem that kills it 23:12
its related to 4 undefined Yaml related symbols
but I don't need to run Pugs now anyway, or for awhile, so nothing needs to be done for my benefit 23:13
my report is just fyi
23:44 carlos-the-man joined
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 pastebin.com/555177 23:44
23:52 TMTOWTDIt left
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:56
carlos-the-man oh, sorry 23:57