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:01 PaulWay[w] joined
xinming hmm, May I know what's wrong with the progress of perl 6 self-hosting please? Now, We have a half-working perl 6(pugs), Why can't we use pugs the write a parser which will compile perl 6? :-/ 00:10
Sorry, I still don't understand... :-/ 00:11
00:18 khisanth_ joined
putter hi xinming, 00:30
xinming putter: hi :-) 00:32
putter re your question, basically because of the "half-working" part. it's not quite the right "half". ;)
xinming putter: do you mean the rule engine? 00:33
putter: IMHO, It's possible to write the perl 6 itself right now. :-P, though, It's a bit like a more advanced C language. :-/ 00:34
Juerd putter: What relevant functionality does Perl 5 have that Perl 6 does not yet? 00:38
Perl 6 as implemented by Pugs today, that is.
putter hmm, let me try to be precise. if you do something big in current-pugs-p6, like a parser or compiler, you will hit pugsbugs. each one can either be avoided, fixed, or it stops the show. fixing is somewhat feasible by oneself, much more feasible with audreyt's help. pugs at the moment has accumulated 00:39
Juerd accumulated$ 00:40
Isn't hitting pugsbugs valuable by itself?
And consider that you'll also find design bugs in Perl 6, making your own work easier, because then they can be solved before you fully supported them... 00:41
putter a largish set of things that cannot be easily fixed even by audreyt. this is normal aspect of exploratory development. you build something, evolve it, it gets crufty, and you eventually replace it. some of pugs is on the "need replacing when we have the tuits" list. bottom line,
fixing isn't too dependable a strategy at the moment. so the question is, what are the odds you will be able to avoid (workaround) pugsbugs you encounter. modulo perhaps getting audreyt to fix some. now, experience with large p6 projects is limited. but my own experience/impression at least, is that 00:45
avoidance isn't a viable large scale strategy. one ends up wandering a constraint maze of different workarounds tickling different pugsbugs. 00:47
so the idea behind "build something on another platform for now", is that while p5 sucks compared to p6, we can anticipate (almost;) exactly what works and doesnt in p5, permitting better large scale planning. 00:48
I think that's the argument.
Juerd: so re "What relevant functionality does Perl 5 have that Perl 6 does not yet?", perhaps "predictability". 00:49
Juerd I see. 00:51
putter Juerd: re "Isn't hitting pugsbugs valuable by itself?", yes, though less so than it has been at times in the past. some of them will now be "yes, known to be broken, rewrite coming soon for some value of soon". so the question is, is the value of the pugsbugs you turn up comparable to the development cost you pay encountering them. 00:53
p5 has the nice property that if the code doesn't do what you intended, it's clearly your fault. ;) 00:54
00:55 Limbic_Region joined
avarab putter: not always 00:55
putter :) 00:56
Besides, CPAN has needed a _backtracking_ recursive descent parser for *years*. :) 00:57
Also note that a big hunk of the work creating a p5 impl of p6, is the Prelude, written in p6. Which pugs needs anyway. The only question is will the p5 stuff, or PIL^N, be ready to run it first. :) 01:01
xinming hmm, by the way, for perl 6, Array and Scalar are in different namespace. So, `class A { has $.a; has @.a };' what will ` A.new.a' return? :-) 01:06
an array or a scalar?
putter hmm... good question. I don't know. 01:07
xinming I'll ask on p6l 01:08
putter my guess is it creates a rule'ish conflict, generating a warning and no accessors. but... what if one is declared write only, the the other is the default read only. no conflict! but do you really want read and write applying to different variables? maybe that's just a warning? 01:13
xinming My guess is @larry will tell us, if It is list context, It will return the @, if It is scalar context. then, become $. If only there is only @, then, and the context is $, It will then trun the list into scalar. 01:18
hmm, I am not sure either. :-) 01:19
oops.. even myself can't read what I typed just now. :-P 01:20
putter :)
01:22 grayson joined 01:23 Shachaf joined 01:34 justatheory joined
xinming why my post to perl 6 language will become 'YTsgaGFzIEAuYSB9OwoKd2hhdCB3aWxsIE' things? 01:41
:-/
hm, I think I know, utf-8 encoding. :-/
Juerd putter: There is no good use for a write only accessor. 01:42
02:30 < xinming> My guess is @larry will tell us, if It is list context, It will return the @, if It is scalar context. then, become $. 01:43
If only there is only @, then, and the context is $, It will then trun the list into scalar.
That would be very bad.
My guess is that the second declaration overwrites the accessor and emits a warning.
While retaining both $.a and @.a as individual instance-private variables. 01:44
svnbot6 r8976 | putter++ | regexp_engine_demo.pl update - it's been a few hours since the last check in. things are actually starting to work. speed and space look good so far. 01:45
xinming Juerd: hmm, How about the accessor? 01:46
Juerd xinming: As said: overwritten. 01:47
xinming Juerd: hmm, yes, your proposal is much better than mine. :-)
Juerd xinming: Also more consistent with the definition of the has operator. 01:48
putter Juerd: re write-only accessor, why not? clients can set it, and the class can read it internally. no? 01:50
Juerd putter: Which would mean you'd need a method to be fired to do anything with the variable, in which case it's very highly more likely that the value should have been passed as an argument. 01:51
Write only only ever makes sense for security of sensitive data, for example when creating a data backup automatically: you don't want someone compromising that script's identity to be able to read the backups, in some cases. 01:53
Within a programming language I cannot think of any reason to have this, especially if you have direct memory access as an option to evade it.
It would only create a great false sense of security.
This is why I do propose <-> in addition to ->, and not <-. 01:54
(Though <- is also made unattractive by clashing with <>)
(Something <= already does, mind you.)
putter re "very highly more likely that the value should have been passed as an argument", oo, what a pythonic argument. timtowtdi, or something vaguely like that. ;) 01:56
Juerd I request you to take that back
putter *lol* :)
taken back
Juerd Thanks :)
putter :) 01:57
Juerd And good night :)
(3am)
putter eeep. good night &
putter wonders if it's a good thing, or a bad thing, that you can leave all sorts of printf-style debugging code turned on, and prove still works flawlessly. nice for development, not so nice when you download a cpan module which debugs at you. mabye prove has an option to toggle tolerance.. 02:00
bah. >5 failing tests because (a|b)* is capturing the first match, rather than the last. mumph. 02:03
02:07 vel joined 02:09 kanru joined
putter ah. fixed 02:19
02:31 xinming joined 02:37 drbean joined 02:40 hcarty joined, hcarty left
svnbot6 r8977 | putter++ | regexp_engine_demo.pl added \1 backrefs and non-greedy quant. half of re_tests now passes. 02:43
putter ah well. so much for doing it one calendar day. ;) 02:44
02:48 vel joined
Alias_ purl, seen audreyt? 02:48
seen audreyt 02:49
(damned muscle memory)
putter ;)
hmm. the engine looks like it's running re_tests in 6x the time it takes p5. failing half the tests though, which no doubt saves time. ;) 02:52
well, woot diddley doot. half was failing because things went book half way through. now at 82% pass. :) 03:07
and 8x runtime. :) 03:08
putter wonders if it would be mission creep to knock that up to 90+%, now that the purpose of the exercise, to see if such a thing was feasible, has been completed. 03:10
03:23 scook0 joined 03:42 MrFarts joined
MrFarts hey, is there anything i can do about cpan freezing ? 03:42
for some reason it's taking forever to read an index from a mirror
when i do it manually, everything is ok ...
anyone ? :( 03:48
putter perhaps as in #perl ? 03:50
s/as/ask/
MrFarts #perl is evil 03:51
this channel has been much more helpful
kattana_ perhaps because there is no perl6 people have more time to help here.
MrFarts :) 03:52
cpan is throwing a fit ..
Alias_ which #perl? :) 03:53
MrFarts the one here 03:54
i don't go in there after i got banned for saying that 'sleep' is not my idea of a proper timer
Alias_ heh
I'm sure it wasn't that simple, but still, heh
MrFarts well i offended some "guru" i guess 03:55
Alias_ You know about Time::HiRes of course?
:)
MrFarts i was asking about some pointers on setting up timers in perl
yeah i know about it now
the guy said "use sleep"
i said "sleep isn't what i'm looking for"
he said "yes it is" 03:56
i said "no it's not"
he did +kb
:)
lovely guy :)
Alias_ The trouble with asking for help in technical channels, is that there's a lot of anal retentives, and you never get as much information across as you think, because of missing subtext
So you have to ask very very specific questions
MrFarts Alias_, any idea why cpan is throwing a fit ? 03:57
Alias_ no, sorry
Except to comment "you are using the latest version, right?"
MrFarts as far as i know
Alias_ x.83
MrFarts it can't download anything though
how can i check the vresion ?
Alias_ perl -MCPAN -e 'print $CPAN::VERSION . "n"' 03:58
MrFarts 1.7601
Alias_ default version
try installing Bundle::CPAN
MrFarts i don
Alias_ (which will upgrade you to current)
MrFarts t think it'll do anything 03:59
but let me try
Alias_ neither do I, but it's general medicine :)
MrFarts Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
LWP failed with code[404] message[File '01mailrc.txt.gz' not found]
wtf
the file is there
Alias_ oh right :)
That looks familiar
Are you on Windows perchance?
MrFarts nope
Alias_ I've seen that error emit due to FTP problems 04:00
When an attempt at using active FTP fails
MrFarts right now one of the ftp.perl.org servers is down
Alias_ As a guess, try setting export FTP_PASSIVE=1
ah
You might also have hit a bad server in the rotation
MrFarts yeah, i did ...
it's doing something after the server timed out .. 04:01
Alias_ ignore 404, it's a catchall error
MrFarts pretty lame :
:)
Alias_ It's been thrown incorrectly before
MrFarts it shouldn't tell me 404 if it's not really a 404
Alias_ it's a bug
MrFarts it's a transport error in reality
Alias_ Somewhere in LWP or Net::FTP
MrFarts nice :)
Alias_ yeah
MrFarts cpan has a lot of dependencies apparently ... 04:02
doesn't sound like the 404 should be a hard one to track down .. 04:03
Alias_, it's working now 04:05
thanks a lot
Alias_ (phone) 04:06
MrFarts: That particular 404 is trickier than you might think. I've managed to to debug my way down to it _once_, but I've never been able to accurately replicate the situation in a standalone test case 04:18
Add to that you have three different authors for Net::FTP, LWP and CPAN
sort of
:)
MrFarts Alias_, it seems to happen as a result of a dead host 04:19
Alias_ or failed active FTP
or a few other reasons
MrFarts one of the perl.cpan.org machines goes down and if it hits that machine the 404 occurs
Alias_ It's not quite that simple :)
MrFarts i guess not
but thanks anyway
cpan is working well enough for me to do what i wanted 04:20
Alias_ It's being used as a default error in some specific context, and fixing it means understanding every OTHER way you'd need to error :)
MrFarts yeah, but that's not too hard
it's just a pain :)
Alias_ right
especially when you aren't the author :)
MrFarts find the author and tell him to stop being so sloppy 04:21
:)
Alias_ we call that rt.cpan.org
MrFarts rt ?
Alias_ Feel free to file a bug for your specific case
The CPAN bug tracker
A seperate bug queue for all 9000 dists in CPAN
MrFarts if it happens again with new cpan i'll put in a bug report 04:22
Alias_ ok
04:27 stevan joined
putter hey stevan 04:30
pasteling "DigiLife" at 80.190.252.124 pasted "xchat perl script to notify on dialog" (24 lines, 495B) at sial.org/pbot/15848 04:44
DigiLife sorry :/ 04:45
Alias_ ponders the idea of hooking up summonning to SMS
04:47 Khisanth joined
Daveman :o 04:50
putter is looking for a heavily backtracking, large target string, regexp. any thoughts? 04:51
say order 1000 terms and a target of order 10k or 100k bytes. 04:52
obra a grammar for C? 04:53
putter yeah, I was trying to find one of those I did years ago, but, well, sigh. anything on cpan? i search briefly, but only found little "parse the declaration" things. 04:54
svnbot6 r8978 | Darren_Duncan++ | r2400@darren-duncans-power-mac-g4: darrenduncan | 2006-02-11 20:36:53 -0800 04:58
r8978 | Darren_Duncan++ | /ext/Rosetta : continued rewrite of Language.pod
r8979 | Darren_Duncan++ | r2406@darren-duncans-power-mac-g4: darrenduncan | 2006-02-12 00:27:26 -0800
r8979 | Darren_Duncan++ | /ext/Rosetta : continued rewrite of Language.pod
r8980 | Darren_Duncan++ | r2424@darren-duncans-power-mac-g4: darrenduncan | 2006-02-12 20:52:05 -0800
r8980 | Darren_Duncan++ | /ext/Rosetta : chopped half of Overview.pod, some Language.pod updates, minor TODO.pod updates
dduncan those first 2 are actually duplicate pushes 05:01
05:10 Alias_ left
spinclad putter: something genesearchy, maybe? sorry, no specific suggestions... 05:45
05:47 Cryptic_K joined
putter spinclad: ah, well. thanks for the idea. :) 05:50
matching this ((a)*)*x against a long string of aaaaaab, 05:51
a 500 "a" string is taking 12sec and 200mb, 3sec if one uses non-capturing parens. 05:52
I *think* that's good, yes?
kattana_ compare it to pcre and see. 05:53
putter the problem is this is a standard special case to... well, special case. ;)
but, yes, that's a definitely good diea 05:54
idea even
06:12 usr-src joined, penk joined 06:13 penk joined
putter kattana_: thanks! pcre has an interactive ./pcretest, and... 06:13
well, I'm not sure I completely understand what's going on, which is always the kiss of death when profiling. but...
with (?:(?:a)*)*x , pcre gives up (PCRE_ERROR_MATCHLIMIT) on measely little 30 "a" strings. once you mess with the end a bit (add a "aaax") to defeat "oh, that just can't match" optimization. and even with capturing groups, the new engine is doing 500. and I'm positive it's not optimizing ;) 06:18
so... maybe not entirely unusable. perhaps.
06:24 Cryptic_K joined 06:29 Cryptic_K joined
putter p5 tailcalls ++ # aka, goto &$sub 06:40
svnbot6 r8981 | putter++ | regexp_engine_demo.pl update. Now 90+% of re_tests passes, with for me a 3sec run. Limited time and space performance tests are good enough to suggest continuing down this development path. So the next steps are to make sure the last few percent aren't hiding gotchas, and then do a major cleanup for maintainability. And then on to p6 syntax, using Regexp::Parser's Perl6::Rule::Parser. japhy++
putter 06:41
MrFarts man, this is pissing me off 06:43
putter If someone was looking for a little CPAN module to write, using Regexp::Parser one can easily write a p5 to p6 regexp converter. just decorate the Objects.pm nodes with a conversion method. where conversion method is, well, quite trivial. the hardest things to do are figuring out RP, and wrapping it for cpan. ;) 06:44
MrFarts i put in a localtime line and part of th eprogram no lionger works
it's not related to that line
no variables are being affected by that line
f*cking voodoo
what in the world could calling "localtime" possibly do ?
ayrnieu MrFarts - paste? 06:45
putter It looks like I'll need something like it tomorrow or so...
MrFarts ayrnieu, pastebin ?
ayrnieu MrFarts - topic?
06:46 r0nny joined
pasteling Someone at 71.198.129.75 pasted "my ($sec,$min,$hour,$mday,$mon" (18 lines, 819B) at sial.org/pbot/15853 06:48
MrFarts if i take out the localtime line it works as supposed to
friggin' bizarre
ayrnieu oh, this is perl5? 06:49
MrFarts yes
ayrnieu You don't have to bind the entire return: perl -le 'print 1900+(localtime(time))[5]' 06:50
also, you might ask over in #perl , where they assume perl5 :-) 06:51
MrFarts pardon ?
#perl is evil
integral but they know perl5 backwards :) 06:52
MrFarts actually my experience is that this channel is much more knowledgable
what could possibly cause this problem 06:53
i'm almost inclined to blame the perl compiler
it's just screwy
putter audreyt: liked your ltu post. though "hermeneutics"... there is a word from cultural anthropology which means exactly what you said... and I have no idea what it is at the moment. :/ 06:54
way past end of day for me. good night folks & 06:55
integral my question is: "what does 'doesn't work' mean this week?"
MrFarts: I bet it's failing when $mon, $mday or $year is a single-digit
try using POSIX::strftime to format your dates. 06:56
MrFarts integral, nothing is visibly failing
the program finishes executing
but that mail block never happens
integral right, so how do you know something is wrong.
MrFarts because no message is delivered
the only thing i can imagine is there is something weird going on with scoping
integral no, you just know that no message is delivered. Have you checked your smtp server logs to see if a message is _received_?
MrFarts integral,yes 06:57
integral, there is no message going out
the smtp server and netstat both confirm this
integral okay, now that's useful to know.
So how about my point about $mon or $mday being a single digit?
MrFarts integral, they *are* a single digit 06:58
integral, but what does that have to do with the mail block ?
integral okay, so the file is called "$MESSAGEDIR/csv/$puid.2132006.csv?
rather than .02132006.csv
07:00 blm joined
integral umm? 07:03
07:04 blm joined
MrFarts integral, no 07:04
integral, that is set elsewhere 07:05
integral "no"? so that means it is called .2132006. hmm. much weirder problem then
MrFarts no it's called .0213206
integral well that's not the filename you're constructing.
MrFarts integral, yes it is
integral There will not be a leading zero added to $mon.
MrFarts the filename is built with something else
different scope
integral not in the code you pasted, it is built on the last line.
MrFarts i pad that stuff
integral eval: my ($sec, $min, $hour, $mday, $mon) = localtime time; "$mon$mday" 07:06
p5evalbot integral: Return: 113
MrFarts integral, one sec ...
you want to see where the filename are written ? 07:07
ayrnieu eval: join '', (localtime(time))[4,3]
p5evalbot ayrnieu: Return: 113
integral The filename is built in the code you pasted on the last line.
MrFarts no it isn't
integral Yes, IT IS.
MrFarts let me take a look
integral file => "$MESSAGEDIR/csv/$puid.$mon$mday$year.csv" specifically
MrFarts oh crap
:)
integral In future, please do not be so fucking offensive when someone is trying to point out the obvious to you. And #perl would have been perfectly capable of handing this, since I am also there. 07:08
MrFarts offensive ?
what did i say that was so offensive ?
integral the swearing, the lying, calling #perl evil, and your general tone. 07:09
MrFarts lying ?
swearing ?
now i'm going to swear:
are you fucking delusional ?
ayrnieu he and I both! :-) 07:11
MrFarts seems like it
i wasn't cursing or lying
ayrnieu No, you definitely were. 07:12
MrFarts cursing is arguable
ayrnieu It'd probably help to see that 'lying' here doesn't require malicious intent.
MrFarts why would i lie about something ?
integral As far as I'm concerned you were making me looking publically stupid for asking the questions I did.
integral leaves now
MrFarts integral, get over yourself
07:14 GeJ joined 07:21 drbean joined 07:22 iblechbot joined 07:23 Cryptic_K joined 07:30 Cryptic_K joined 07:33 Cryptic_K joined
spinclad MrFarts: get over yourself 07:38
and take it to #perl 07:39
GeJ morning gentlemen 07:41
has anything been decided on the evolution of pugs?
gaal putter: url to audrey's ltu post? 07:50
08:01 drrho joined 08:07 xern joined, G2 joined 08:11 Cryptic_K joined
audreyt I'm off to airport now 08:12
gaal: 08:13
lambda-the-ultimate.org/node/1298#comment-14589
gaal audreyt: have a great flight!
audreyt thanks! 08:14
gaal I was thinking of 7 as I read that too :-) 08:16
08:49 kanru joined 09:02 dada joined 09:28 szbalint joined 09:47 bsb joined 10:04 avarab joined 10:19 grayson joined 10:29 avarab joined, drbean left 10:35 avarab joined 10:52 Nouk joined
audreyt greetings from the CKS airport 11:04
audreyt starts reading up on p5-rules spike work 11:05
meppl good morning audrey 11:08
audreyt hey meppl 11:15
11:16 Nouk is now known as Kuon 11:23 Aankhen`` joined 11:28 Odin-LAP joined
audreyt boarding now... see you :) *wave* 11:37
meppl cya 11:42
12:24 drbean joined 12:31 chihchun joined 13:03 grayson joined 13:14 chris2 joined 13:23 s7n joined 13:40 stevan joined 13:56 drbean left 14:02 Qiang joined 14:03 stevan joined 14:24 iblechbot joined 14:33 nnunley joined 14:43 vel joined 14:52 vel joined 14:55 vel joined 14:56 vel joined 15:02 rantanplan_ joined 15:10 Southen joined 15:39 hcarty joined, hcarty left 15:46 Amnesiac joined 15:52 Jetpack joined, Jetpack left 16:02 SamB joined 16:24 Nouk joined 16:25 Nouk is now known as Kuon 16:32 elmex joined 16:37 mncharity_ joined, mncharity_ is now known as putter 17:02 audreyt joined
gaal BKK? 17:10
17:18 Aankh|Clone joined 17:25 justatheory joined 17:27 PerlJam joined
putter One-line summary of the new p5 parser spike development plan: fork demo file; one side gets cleaned up to gestate a backtracking macro api to simplify writing this stuff; the other gets rules (yes, on p5), and :parsetree, just enough to shift off the Regexp::Parser ast onto something simpler that we can also do p6 on. 17:34
svnbot6 r8982 | putter++ | regexp_engine_demo.pl - added notes on the new/current development plan.
putter Oh, we'll then be able to spike a real, fully flexible, p6 parser. Albeit one which only understand rx:perl5//'s. More than one day (10 hrs) development away, less than seven. :) 17:36
wolverian what does it output? 17:37
putter I hope to have a few hours for it this evening.
what does what output? ;)
wolverian the parser :)
putter oh, the parser spike? ast. :parsetree-like output.
let's see, where's a :parsetree reference... 17:38
wolverian ..oh, I'm just now learning haskell for real finally. I can parse an irc log! I haven't been this pitifully proud of myself since I learned scheme, I think :) 17:39
PerlJam wolverian++
putter congrats! :)
wolverian I mean, I had to use liftM! that's deep magic to me ;)
integral o_O I've never used that, you must be doing really cool stuff :) 17:40
gaal putter spikes the punch and now look, wolverian is learning haskell.
world domination has never been closer
wolverian integral, I split the readFile into lines. 17:41
which isn't that special and not even the only way to do it, but still..
putter I guess :parsetree is now called :keepall. and doesn't have the implication that nodes are blessed. Hmm. Well, what the parser spike returns _wont_ include all the whitespace etc stuff. The objective is just to get to a bunch of nested hashes, blessed into classes.
putter should update the dev plan to say this. isn't going to happen just now. 17:42
wolverian ah. and the classes are what?
putter Rule <foo> creates a class Someprefix::foo. One which is Match. 17:43
The blessing doesnt really need to be entangled with the parsing, which i guess is why it didnt make the Snn. 17:44
Because it's a simple postprocessing step to walk a Match tree and rebless or copy it into an ast. 17:45
The key line from dev.perl.org/perl6/doc/design/syn/S05.html is 17:47
given $source_code { $parsetree = m:keepall/<Perl.prog>/; }
wolverian right. 17:48
putter I *think* it's only a couple of solid days' work. But will see. 17:51
Oh, and just in case I ever forget to say it, japhy++ japhy++. 17:53
18:10 G2 joined
putter bbl & 18:12
18:13 elmex joined 18:21 jp-autark joined 18:22 arcady joined 18:32 Aankh|Clone is now known as Aankhen`` 18:36 TMTOWTDIt joined 18:50 nnunley joined 19:09 dduncan joined 19:16 nnunley joined 19:17 marmic joined 19:34 grayson joined 19:35 jp-autar1 joined 20:05 stennie joined 20:45 jp-autark joined 21:13 p5evalbot joined 21:23 usr-src left, p5evalbot joined 21:39 DesreveR joined 21:41 p5evalbot joined 21:54 jp-autark joined 22:08 bsb_ joined 22:12 larsen joined 22:34 grayson joined 22:52 Supaplex joined 22:56 Supaplex joined 23:09 jp-autark joined 23:11 TMTOWTDIt left 23:20 avar joined 23:36 putter joined