Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by stevan on 15 August 2005.
svnbot6 r6551 | fglock++ | * PIL-Run - implemented postfix:<...> 00:01
r6551 | fglock++ | - doesn't work yet, has problems with 'Inf'
r6552 | putter++ | New $?PUGS_BACKEND defined by Pugs/Run.hs and perl5/PIL-Run/lib6/P5Runtime/PrimP6.pm. "BACKEND_PUGS" and "BACKEND_PERL5". I didnt get a chance to give PIL2JS one too.
putter btw, the BACKEND_foo names were chosen mainly to be easily changed later...
Change in plans I think. Back now for a bit. 00:12
svnbot6 r6553 | fglock++ | * perl5/Container - added simple Hash stringification 00:49
putter Blarg. Had a pile of code to run perl/py/rb interpreters as subprocesses, complete with proxying, gc handling. Would be great for Inline::Pugs. Darned if I can find it. Maybe it was on an unbackedup disk which died. Just a wee tag frustrating. 00:50
Was such a nice bootstrap exercise. Start interpreter foo with minimal repl, then inject the code for whatever flavor(s) of repl you want to use for this connection. Individual sub calls can run their own protocalls for, eg, binary data transfer. Sigh. 00:53
fglock putter: where is the place to implement '{ pair, pair }' - is there a circumfix:<{ }> ? 00:59
putter fglock: too... 01:06
assemble pairs into a hash? 01:07
fglock I found circumfix:<{}> - trying ...
yes - I'm implementing hash 01:08
putter I'm afraid that has to be real syntax... I dont think PIL hashes are payed attention to yet... checking...
nope, your right. np. 01:10
(I just did, in crude_repl, first :v to toggle verbosity on, and then {a=>3} , which gave both PIL and error message. 01:11
Perl6::Instance::JS ? Perl6::Run::JS ? for Mumble->new->eval('say "hi"') 01:19
fglock: Perl6::Run::JS::Simple ? 01:37
fglock Perl6::Run::JS 01:38
putter does that sound vaguely plausible for a "each object is a js interpreter running p6, but with no object proxying"
I was thinking of saving Perl6::Run::JS for the full object proxying version... but shorter is better. ok
fglock If you improve it you can call it Perl6::Run::JS2 :) 01:39
putter :) 01:40
Hmm... Perl6::Run::JS::Basic? ::JSSM? The idea being proxying games have a performance cost, so even when the full version exists, you might want to use the simpler. Perl6::Run::JS just seems too grand a name for this little bit. If JavaScripdt::ScriptMonkey had a shorter name, I'd use that. 01:43
Thus the JSSM.
Ah well. A ::Basic could be spun off later...
fglock the hash constructor works - but there are a few bugs to fix in perl5/Hash 01:48
svnbot6 r6554 | fglock++ | * PIL-Run - implemented {1=>2,4=>5} hash constructor
r6554 | fglock++ | - perl5/Hash needs some work
putter ooo, neat! 01:51
Perl6::Run::JS is in. 01:54
svnbot6 r6555 | putter++ | New Perl6::Run::JS wraps JavaScripdt::SpiderMonkey, and uses PIL2JS to provide a p6 ->eval(). This is a new role for PIL2JS, and stderr is currently noisy. iblech++
r6556 | fglock++ | * perl5/Hash - fixed stringification
fglock now you can do {1=>2,4=>5} in PIL-Run 01:55
time to go & 01:56
btw - since keys can be objects, this works too: { (1=>2)=>(3=>4) } 01:57
putter good night 01:58
putter stares at example in puzzlement...
I didnt know you could do that... 01:59
:)
what's perl6 for read a line from STDIN? 02:25
=<> 02:27
geoffb what does the "repl" in "crude_repl" stand for? 03:11
revdiablo read eval print loop?
geoffb Ah!
revdiablo (just a random guess based on standard meaning of 'repl')
geoffb I'd never seen it as an acronym, only spelled out completely 03:12
thanks, revdiablo
putter hi geoffb 03:20
weeeee... # translating ruby to p6 03:21
Interesting that just when ruby is depreciating .id(), replacing it with .object_id(), p6 chooses .id() 03:37
re repl as an acronym, I was worried for a moment, but google suggests its not uncommon. en.wikipedia.org/wiki/Read_Eval_Print_Loop 04:22
QtPlatypus putter: Its very common, comes from the lisp community, like all good things. 04:25
putter If you are running pugs on windows, you might generate (takes a while) and upload a smoke to iblech's most excellent Pugs Smokehouse (smokeserv). m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl
QtPlatypus: thanks.
general fyi, I found some old code to run a child ruby under perl5, and I'm mutating it to do a child perl6. It vaguely looks like it might work. If so, the proxy stuff can be used for Inline::Pugs and Perl6::Run::JS. 04:30
geoffb bak . . . hi putter 04:32
putter ;) 04:33
iblech: this works, run in perl5/PIL2JS/ perl -Ilib -e 'use Perl6::Run::JS; Perl6::Run::JS->new->eval(q/say "Hello from PIL2JS!"/);' but it doesnt (cant find Precompiled Prelude) when run from root by perl -Iperl5/PIL2JS/lib -e 'use Perl6::Run::JS; Perl6::Run::JS->new->eval(q/say "Hello from PIL2JS!"/);' 04:40
geoffb yawns to clear his mind 04:47
Get a little more oxygen in there . . .
Man, it is just freaky quiet in IRC land . . . all of the channels I'm on are simultaneously quiet. 04:53
autrijus purrs 04:58
luqui hi autrijus 05:00
geoffb *scritchscritchscritch*
luqui how can I help with PIL2?
geoffb How's it going, autrijus?
autrijus just woke up.
geoffb awake is good, we can work with that 05:01
Monday there, yes?
autrijus yeah.
still a bit dizzy. I'll grab food and brb
geoffb k
oh for heaven's sakes . . . sigh 05:02
luqui lilo is the spambot 05:03
geoffb heh
putter In the absence autrijus's journal, I'll note that today was interesting. iblech created a server for the sharing of smokes ( m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl ), and fixed the long-standing PIL2JS bug of .pairs not working. fglock continued to put flesh on the infant perl5 runtime, moving from Arrays, including lazy ones(!), on to Hashes. And it turned out that JavaScripdt::SpiderMonkey could run the PIL2JS generated J 05:04
avaScript, so now there are the beginnings of a Perl6::Run::JS perl6-on-spidermonkey-embedded-in-perl5 runtime. And autrijus connected PIL-Run and Inline::Pugs for the first time. And leo stopped by to share the great news of PyPy's milestone.
geoffb For putter's birthday, I'm going to buy him a couple extra enter keys . . . .
putter lol :) ahh. sorry. 05:05
geoffb putter, np, it's just getting to be a running joke. :-)
putter ;)
good night all &
geoffb g'night, putter
autrijus baack 05:11
geoffb runs in fear and hides in a hidden room accessed through a false door in his closet 05:12
Oh, wait, it's just autrijus, phew
QtPlatypus wb autrijus. 05:13
autrijus rehi :) 05:15
geoffb Are you all moved, autrijus?
autrijus geoffb: partly; will probably take another weekend
luqui: you can help by noting -- and collecting -- desugar rules 05:16
geoffb How far apart are the old and new places?
autrijus geoffb: ~40min
by car
geoffb mmm, desugar. I could use some of that, for all of the sickeningly sweet foods sold in the U.S.
not too bad
autrijus as we know perl6 has +Inf layers of syntactic aspartame... 05:17
geoffb Wait, you're on an island. Do you own a car?
heh
(Last I heard cars on islands were expensive!)
autrijus yup, and no I don't, my family helps driving and moving things
geoffb Something I never would have thought of until someone explained the cost of a Hyundai on the island he worked on. 05:18
cool.
autrijus plays with perl6-on-spidermonkey-embedded-in-perl5. 05:20
geoffb And you thought you were pushing the bleeding edge of sanity compiling Perl 6 to Haskell . . .
luqui autrijus, do I put those in code form or in doc form? 05:23
autrijus luqui: whichever one you prefer, but for now I think doc form showing how p6 is rewritten with p6 will help 05:24
luqui okay, can do
autrijus luqui: also, the builtin traits are too magical 05:25
luqui autrijus, btw, I am now proficient in haskell, having used most of the abstractions to build real things
I don't know pugs yet, but barebones haskell is not a problem
autrijus oh wow. real things?
luqui like tic tac toe with an AI :-)
autrijus the builtin traits -- like "export" and container annotation -- are so magical that currently we hard code checks for them in the consumer code
but theoretically it needs to be done with trait_auxillary:<is> 05:26
luqui hmmm...
autrijus only that how it works, and how much still need runtime support, is a blur
luqui well, some of them could well just be markers that are checked at some hook point
autrijus well yes, I know the process, but I can't write them down as code yet
that's desugaring
luqui aa soo
autrijus tic tac toe with AI sounds fun 05:27
luqui so basically we take all the abstract BS that we've been spouting on the list and make it into real code
autrijus I saw the crazy thing that is Symbol::Opaque 05:28
yes, because as currently stands the BS needs to be hardcoded into each runtime
and the interaction is becoming hard to reason about
luqui ahh, what'd you think about Symbol::Opaque?
autrijus so some BS simply doesn't get fixed or implemented quickly enough
so the lag between p6l and p6c may become greater because of this -- and if all of the BS are exposed as rewrite rules and trait_auxillary:<is>, then we can deal with them sanely 05:29
luqui good, I like that approach
autrijus I think it's clever, but I want Devel::TypeCheck to work with that too 05:30
...and I want a ponie-shaped cake
luqui :-)
data constructors really change the way that I can approach problems though
it made my type inferencer sketch very much easier
autrijus have you read about the "expression problem"? 05:31
luqui nopers
autrijus ok. I think it's a very good read, and shed a lot of light on p6 design
orignial problem statement: www.daimi.au.dk/~madst/tool/papers/...ession.txt
Scala's solution: www.daimi.au.dk/~madst/tool/papers/...dently.pdf 05:32
chase its biblio to see other language's solutions -- so far Scala's is one of the most convincing ones
ingy hi autrijus
autrijus as soon as I learned about the expression problem, I saw that in all large-scale programs I write
which makes me much more careful :)
ingy: hey!
luqui hmm 05:33
ingy autrijus: msged you...
autrijus ingy: didn't see it
ingy autrijus: just tried again... I saw you 05:34
autrijus ingy: nope, not getting thru. weird. try skype? 05:35
ah
I know, maybe I wasn't identified
try again 05:36
ingy I did
ichat?
autrijus I need to reboot for that
ingy what is your skype?
autrijus autrijus 05:37
bbl... 05:42
Supaplex 00:29 -!- Irssi: Join to #perl6 was synced in 84295 secs 06:32
like wtf? :P
Supaplex beats irssi down like a red headed step child
coral heh, wow 06:40
geoffb You know you're having a bad sysadmin day when you find yourself debugging server problems by telneting to a port and speaking raw protocol 07:17
Juerd geoffb: I have too many bad sysadmin days :( 07:38
Juerd always speaks raw SMTP to test SMTP servers. 07:39
And raw POP3 to test user's passwords :)
geoffb heh
Juerd I don't trust clients (software. although I often don't trust the people either)
geoffb is trying to upgrade IMAP servers, and of course they do everything differently
heh
Juerd IMAP I do not usually speak raw
For IMAP I have Mutt. 07:40
geoffb Yeah, I started by playing with Mutt, but realized that I wasn't sure if I was giving Mutt bad info, or the server bad config 07:41
hence dropping to raw
Juerd The most awful thing about upgrading/switching IMAP servers is the uidvality thingy
I want to get rid of courier on some boxes
And install dovecot on it
geoffb come to think of it, I think that's the very upgrade I'm doing
:-/
Juerd But that means I have to patch dovecot to mimic courier's values, or all clients will see all mail as new :(
And error when trying to receive any of the old messages 07:42
It is a fairly straightforward patch, but I'm afraid to do it
I've been postponing this for more than a year now.
These things do teach me that ignorance is indeed bliss 07:43
geoffb grrr, this is pissing me off 07:44
Juerd What's up? 07:45
geoffb actually, flags on messages look fine, I'm not sure that's still a problem . . .
Juerd Do you have any Outlook client? 07:46
(non-express)
geoffb What's getting me now is that I can't seem to invoke the magic to make it understand I want to keep /var/mail/... for INBOX
Juerd Hmm
geoffb No, just OS X and Linux
Juerd I use ~/Maildir, and dovecot picked that up by default... somehow... 07:47
geoffb There's a config line for setting INBOX that way, but either the example in the config file is wrong, or I'm doing something fubar.
oh, wait!
Juerd waits patiently 07:48
geoffb dammit, I thought it might be a permissions issue 07:49
nsl
Juerd What's your default_mail_env set to?
That may be easier than finding the right place to get MAIL set
geoffb give me a sec, trying a couple combinations of things first 07:50
Juerd gej' is esperanto for gay. 07:52
geoffb As in happy, or as in homosexual?
GeJ that and in polish also IIRC
Juerd As in homosexual
Happy-gay would be gaj
GeJ thanks for reminding me this difficult episode of my life (as in my first days on IRC when all the polish guys around were asking me on a date) 07:53
thanks
geoffb oy
Juerd Hehe
I'd first have to see a picture :P
GeJ could we change the topic? Junctions, Metamodel, Type inference, anything? :) 07:54
geoffb Juerd, OK, I've tried all combinations of not setting default_mail_env (to get autofind), setting mbox:~/Mail/:INBOX=/var/mail/%u, and setting mbox:%h/Mail/:INBOX=/var/mail/%u 07:55
keep getting "Imap command "SELECT" failed" from OS X mail, and while I see the ~/Mail folder contents, I get nothing out of /var/mail/foo
bah
GeJ, sorry, Juerd and I were ranting at each other about sysadmin hell, in particular, upgrade of Courier IMAP to Dovecot IMAP, when you walked in. 07:56
OT, but definitely on my mind. :-)
GeJ geoffb: no problemo. Sysadmin day was a few weeks ago. Time to get the rants back gain. :) 08:01
Juerd geoffb: Try stracing the server 08:02
That usually provides valuable insight
In particular, I recommend "strace -feopen $whatever_you_use_to_start_the_thing"
And remove the "eopen" if this doesn't already give enough info 08:03
geoffb that is definitely something to do when it is not 1 AM local . . . .
OK, will try
Juerd Why so?
geoffb Because I'm falling over tired
Juerd Then take a short brake and submerge your head in some cool water 08:04
geoffb heh
I'm thinking of submerging my head in a cool pillow, actually
g'night, folks 08:05
GeJ 'night geoffb
Juerd Heh
That works too
Good night
nothingmuch morning 08:08
GeJ morning
Juerd Hi
nothingmuch makes cute animal sounds 08:44
QtPlatypus looks oddly at nothing much and makes cute animal sounds back.
GeJ should we call it purrrrl6 now? 09:05
QtPlatypus laughs. 09:06
GeJ I hate my life. 09:16
lhooq GeJ: sorry, you can't have another one 09:17
GeJ I found a new programming technique. Along XP, TDD, Agile methods, I think I just found a new one I will call "Nonsense Programming" and prolly write books about it. 09:18
No matter what angle I choose to explore this code, I just can't figure out how to maintain it and even extend it.
The perfect example of "Big Ball of Mud" 09:20
svnbot6 r6557 | Stevan++ | Perl6::MetaModel 2.0 - 09:36
r6557 | Stevan++ | * reworking of some aspects of the relationship between $::Class and $::Object
09:43 Southen_ is now known as Southen
QtPlatypus Can some people test MIME-Base 64 and tell me how long it takes? 09:56
?seen putter 10:28
seen putter
svnbot6 r6558 | Stevan++ | Perl6::MetaModel 2.0 - 10:48
r6558 | Stevan++ | - the new metamodel is now bootstrapping
r6558 | Stevan++ | * added class:: pseudo package to handle class
r6558 | Stevan++ | method dispatching
r6558 | Stevan++ | * added tests for Point example from A12
11:33 ChanServ sets mode: -s
ods15 ? 11:57
i want to match either digits, literal ., or : 11:58
Juerd Why? 12:00
What do the digits and dots represent?
ods15 a proxy server 12:01
Juerd An IP address?
'cause 123.456.789.0 is an invalid IP
ods15 yes 12:02
hehe
i'
err
i'm not that anal, i just want it to match right
hell that pattern will even match 1234567889 or ..... :P
Juerd Then why even be specific?
ods15 my input is valid, just want to be sure i'm parsing it right 12:03
and apperantely i'm not cause i'm grabbing nothing :/
Juerd Can't you just split it on delimiters?
ods15 there is no delimiter, it's a "complicated" text file
they used '*******************************' as a frggin "delimiter" 12:04
stupid
anyway, bbl
doh, i did =0 instead of =1 ... 12:05
hoowa hi tang are you here ? 12:30
13:13 webmind is now known as webmind- 13:24 GeJ is now known as GeJ_ 13:25 GeJ_ is now known as GeJ
nothingmuch hates the sourceforge download links 14:02
why do they say 'foo-1.2.3.tar.gz' as a link if it's not really that file?
why isn't it 'select mirror for foo-1.2.3.tar.gz'?
(this is WRT to external pointers, like for example, the project's home page) 14:03
fglock nothingmuch: they used to send you to an html page with a redirect to the actual file. Download managers are supposed to deal with this 14:06
putter QtPlatypus: re MIME-Base64, I'm still >5min, but my pugs installation is a bit bOrked at the moment (left old pugs in path during build. concequences... interesting. which is probably a bug.) 14:13
I may not actually be seeing any new code. 14:14
fglock hi putter
putter hi fglock. how goes? 14:15
fglock trying to figure out the implementation of %a{1,2,3}=(4,5,6) 14:16
putter ah. :)
fglock I think %a{1..Inf} is valid, but everybody say it doesn't 14:17
PerlJam fglock: valid but not likely to finish :)
fglock why? it can be lazy 14:18
for example %a{1..Inf}.keys --> (1..Inf) 14:19
PerlJam fglock: would you also expect %a{'a'..'z'}.keys to give you 'a'..'z' instead ov <a b c d e f g h i j k l m n o p q r s t u v w x y z> ? 14:20
fglock sure
PerlJam Hmm. 14:21
putter oh, drat. blew away the log file of the bOrked make. :( Basically, pugs build directory b1 was in PATH, while make'ing build b2. The b2 og began with a lot of ext/ "skip because b1 foo.pm is unchanged". Which is not quite the right thing. I believe I saw b1 appearing elsewhere in the make output as well. fyi.
PerlJam fglock: I guess as long as it's clearly defined where laziness is no longer lazy that would be fine. I kind of expected .keys to be one of those places where the lazy became eager. 14:23
Same thing for assignment, but the eagerness propagates from the RHS to the LHS so that %a{1..Inf} = 'a'..'z' would be fine, but %a{1..Inf} = 1..Inf wouldn't. 14:24
fglock %a{1..Inf} is resolved to %a{1..26}='a'..'z'; %a{27..Inf}=(undef)xInf; 14:26
just like lazy array slices 14:27
%a{1..Inf} = 1..Inf is the simplest case
PerlJam fglock: I guess I just don't have a good mental model of when Lazy becomes Eager 14:36
fglock I think it only happens when you ask **@a 14:37
putter QtPlatypus: re Base64.t, with a fresh r6558, and a command of ./pugs -Iblib6/lib ext/MIME-Base64/t/Base64.t after 5+ pugs cpu minutes, nothing has happened beyond "1..3". fyi. 14:46
x86_64 linux FC3
later &
svnbot6 r6560 | fglock++ | * perl5/Array - Added support for store() past the end of the array 14:57
r6561 | fglock++ | * perl5/List - new methods shift_n() pop_n() - provide lazy access to sublists 16:52
16:54 Eryadan is now known as ery_away
vkon ?eval say $?PUGS_VERSION 17:18
zaphod QtPlatypus: for what it's worth, my Base64.t is running now has 38:44 minutes CPU time, 96,204kb RAM allocated, and still it says "1..3" 17:24
QtPlatypus: pugs r6557 on WinXPpro
vkon does ?eval working? I saw a message that evalnot has quit irc; something broken? 17:25
zaphod perlbot: seen evalbot6? 17:26
vkon s/evalnot/evalbot/; it isn't working?
zaphod vkon: I don't see him here
vkon aha... if it isn't here then no '?eval'... okay, will know 17:27
zaphod vkon: I'm starting one right now 17:29
vkon a file t/rules/rules.t is obviously generated somehow from perl5's tests; but it is not mentioned which script was used; yet it contains some documented bugs; any information on this? 17:30
zaphod wow, that's _slow_ :-)
vkon: sorry, no 17:31
vkon zaphod: thanks
?eval say $?PUGS_VERSION
zaphod vkon: is still not connected... 17:32
mmm no, wait 17:33
is connected, but didn't join the channel :-)
ohhhhh sh*t
evalbot's README.pod is b0rked 17:34
finally! 17:36
?eval $?PUGS_VERSION
pugsbot (no output)
zaphod ?eval 2+2
pugsbot (no output)
zaphod mmm :-)
vkon ?eval say $?PUGS_VERSION
pugsbot (no output)
zaphod I get a 'Can't locate BSD/Resource.pm in @INC'
let's try again 17:37
vkon as long as evalbot is on feather.perl6.nl, and it is working there (just tried), there should be no error message :) 17:38
zaphod vkon: no, this one is running on my machine
?eval 2+2
pugsbot (no output)
zaphod ohhhh 17:39
vkon zaphod: however, I'm fine without evalbot; it just strange to see it not working...
zaphod I guess evalbot can't run on Win32
?eval 2+2 17:46
pugsbot Impossibile trovare il percorso specificato.
zaphod stupid, stupid bot :-)
?eval $?PUGS_VERSION
pugsbot Impossibile trovare il percorso specificato.
zaphod bah 17:47
vkon zaphod: your perlmonk's nick is dada, isn't it? 17:49
svnbot6 r6562 | iblech++ | examples/network/evalbot/README.pod: Added more documentation, zaphod++. 17:51
zaphod vkon: yes, it is 17:55
I _am_ dada, in fact, but freenode doesn't know :-)
vkon zaphod: mine is Courage... Now, that I read readme on evalbot, I'll try restarting it myself from feather.perl6.nl 17:56
iblech vkon: Try perl -MBSD::Resource -we 1 first -- if it doesn't work, evalhelper.p5 won't either 17:57
Hi all BTW :)
vkon yes, it isn't there... 17:58
zaphod hi iblech :-)
vkon ?eval say $?PUGS_VERSION 18:00
geoffb (big crowd cheering) I-BLECH! I-BLECH! I-BLECH! I-BLECH! 18:01
:-)
zaphod ?eval 2+2
pugsbot (no output)
zaphod ?eval $?PUGS_VERSION
pugsbot (no output)
zaphod sheesh
iblech geoffb: :D
geoffb: BTW, I've noticed your memo a few minutes ago 18:02
geoffb um, what memo?
iblech geoffb: And the answer is no, state doesn't work yet in PIL2JS 18:03
geoffb oh, from several days ago?
right, gotcha
They need to make memos a tad more obvious
iblech (It's because Pugs.Parser does some hacks to make state work in the normal runcore, and these hacks cause all things containing state variables to not even compile to PIL) 18:04
geoffb Time to beat Pugs.Parser into submission?
Or are there bigger fish to fry?
iblech Yep, currently working on getting P5-regex support into PIL2JS (putter created a Prelude/JS/Rules.pm, I'm integrating it now) -- according to putter, this will give PIL2JS approx. +10% test passes :) 18:06
vkon ?eval say $?PUGS_VERSION
geoffb w00t! 18:07
zaphod vkon: ooooooh, you are also perlce's admin! 18:14
masak ?eval $?PUGS_VERSION 18:16
vkon zaphod: unfortunately I didn't did anything useful on perlce for a long time... but still hope to improve that project...
Xyo welcomes all! 18:17
zaphod vkon: I know, I know. I follow the ML, I also posted some times ago :-) 18:18
vkon: I'm the one that was unhappy with the console
geoffb ping Juerd 18:19
Xyo I have a question from a beginner (don't kill me, please). When I try to compare IP address with string "0.0.0.0/0" , prel says: Argument isn't numeric in numeric ne (!=). How can I fix it? 18:22
zaphod Xyo: wrong channel, this is #perl6. join #perl instead 18:23
Xyo ok, bye
vkon file t/rules/rules.t bothers me... it states it was generated, but no mention like /do not edit, your changes will be lost/; last-author=putter ... is it edited manually now? or will be re-generated? 18:33
zaphod vkon: it says "# This file has been generated from re_tests-file (in perl5-sources). 18:35
"
iblech vkon: IIRC someone converted perl5's rules test to PGE's format for inclusion in Parrot, and then somebody converted it to Perl 6 for inclusion in Pugs's testsuite. I don't think that it still gets autogenerated 18:41
svnbot6 r6563 | iblech++ | * Added "smoke-*.html" to the svn:ignore of ".". 18:42
r6563 | iblech++ | * PIL2JS: More work on P5-style regexes.
r6563 | iblech++ | * PIL2JS.js: Improved support for calling methods on objects which are, even
r6563 | iblech++ | though they're boxed, don't belong to us.
r6563 | iblech++ | * PIL2JS.js: Added "Rul" and "Match" classes, with appropriate
r6563 | iblech++ | stringification, numification, and booleanification.
r6563 | iblech++ | * Prelude::JS::Rules: Integrated putter++'s work -- this means that
r6563 | iblech++ | if $str ~~ rx:P5/.../ {...} # works now
r6563 | iblech++ | say $/[0]; # does not work yet
r6563 | iblech++ | * README: Added section about regexes.
iblech xinming: I'm reviewing your changes to slurpy_param.t now 18:47
xinming: Great work, didn't found any mistakes :) 18:53
vkon iblech: thanks 18:54
masak iblech: what's the "Rul" class? I've been away for a while 19:00
Khisanth probably a typo :) 19:01
iblech masak: You'll have to ask putter for the details -- basically, Rule is a role, and Rul is the standard class which does Rule 19:02
(rx/.../).ref =:= Rul
masak ah, I think I get it
Khisanth that is a pretty lousy naming scheme!
PerlJam I agree
zaphod agrees too
masak got any better ideas? :) 19:03
zaphod Rulez? :-)
masak lol
Khisanth Lure ;)
PerlJam Just use Rule. roles function as classes when used as such.
masak that's right
so why don't we here? 19:04
maybe I should ask putter... 19:05
PerlJam If you must have 2 same-named-but-different-implementation things, at least hungarianize the names.
luqui poke autrijus 19:06
masak PerlJam: there's a big misunderstanding about Hungarian notation. maybe you know this 19:08
www.joelonsoftware.com/articles/Wrong.html
PerlJam masak: yes, I know this. 19:12
masak PerlJam: good, I wasn't sure by your comment :) 19:13
luqui is reading it
hmm, this is an interesting technique 19:16
what we would really like to do, though, is to put that logic in the type checker 19:17
yay for hookable type checkers
masak has been wishing for a typesafe scripting language lately 19:18
...maybe perl6 will be it 19:19
luqui sure hopes so
recent developments in my brain have convinced me that typechecking isn't all bad
just Java/C++ typechecking is bad
masak :( yes
QtPlatypus zaphod: Ok thanks.
luqui of course, this is totally easy with data constructors :-) 19:20
masak luqui: how do you mean? 19:21
luqui data Unsafe a = Unsafe a ; request :: String -> Unsafe String ; encode :: Unsafe String -> String
you can't print an Unsafe String, because it has no print hook
(no Show instance :-)
luqui is very much liking haskell
QtPlatypus wonders about this, for him the Base64.t takes a few seconds but for other people it takes extreemly long "I wonder if its a matter of 64bit vs 32bit hardware"
masak likes what he understands of haskell... 19:22
zaphod QtPlatypus: BTW, I've killed it :-) 19:23
luqui wonders if he can massage C++ into having data constructors
probably need a set of macros :-(
and then there's the expression problem 19:24
QtPlatypus So it never terminated?
zaphod QtPlatypus: no
masak luqui: would it be possible in perl5 today? 19:25
QtPlatypus damn
iblech QtPlatypus: Just tried Base64.t here (x86, Gentoo Linux), I ^Ced after ~~30s (no output except the "1..3" plan)
zaphod QtPlatypus: it was running since 1 hour at 100% CPU fixed, so I killed it
luqui masak: already did it: see Symbol::Opaque
but it would be a runtime check, of course
masak luqui: of course. thanks, i will. 19:26
QtPlatypus What platform do you guys use?
zaphod QtPlatypus: WinXPpro on Pentium4 19:34
putter hey folks. 19:44
let's see...
fglock hi
masak putter: what's the exact difference between Rule and Rul? 19:46
putter zaphod: rules.t's days of being autogenerated are long gone. Originally created for an obsolete spec of regexs, its been hand maintained for a while. Might be worth recreating from scratch. But that might be easier with a regex parser. Which will exist as soon as a few pugsbugs are fixed, or... PIL2JS may almost be ready for it... hmm... 19:48
ah, next question, Rul vs Rule vs Pugs::Internals::VRule. Rul is intended to be a class implementing a role Rule. Name analygous to Int vs Integer, Str vs String, etc. Not spec! Basically, there are. and are going to be, a variety of rule implementations kicking about for a while. <enter for geoffb> 19:50
masak putter: someone asked, if Rul is just a class implementing the role Rule, why not use the same name for both? 19:51
putter Some primitive, some native, some hybrids. Some participating in object system, some faking it, some not. So it seemed worth separating ui, Rule, from all implementation stuff. pugs has Pugs::Internals::VRule, and a Rul, which is not yet being used because of pugsbugs. PIL2JS... well, that's my Xmass present for the day. I haven't opened it yet. ;) 19:52
EOF 19:53
masak putter: I think I see the difference now. thanks for the explanation 19:54
putter masak: basically because all rules development at this point is still "everything is really buggy, try to find a way to weave through it to get functionality". So the primary, buy a long shot, design criteria is "what might help bug dodging". Reducing coupling is one approach. 19:55
svnbot6 r6564 | Stevan++ | Perl6::MetaModel 2.0 - 20:03
r6564 | Stevan++ | * adding on the UI/macro layer in Perl6::MetaModel
r6564 | Stevan++ | - class 'Foo-0.0.1' => sub { ... } working (see docs)
masak putter: ah, so it will get better eventually. I can live with that. :) 20:06
putter :) 20:15
brentdax autrijus: ping 20:17
svnbot6 r6565 | fglock++ | * perl5/Array - some cases of splice() that were not lazy are fixed. 20:33
r6565 | fglock++ | - a few tests now fail because arrays are now sharing lazy lists
r6566 | vkon++ | clean some errors from t/rules/rules.t 20:48
putter iblech: ping? 20:52
iblech putter: pong 20:54
putter: I got $/[0] etc. mostly working :)
putter :)
I've (it was easy) added m// and //. (Though without p6 rules support, // is just a way to an error message.) Would you prefer large chunk checkins, or nibble ones? 20:56
iblech large chunks are fine with me 20:59
svnbot6 r6567 | fglock++ | * perl5/Array - added more tests for splice()
r6568 | fglock++ | * fixed comments
r6569 | iblech++ | * pugs::hack: Minor cosmetic fixes.
r6569 | iblech++ | * t/var/refs_point_to_containers.t: Fixed a test (but it could be said that the
r6569 | iblech++ | test was correct, I don't think that has been specced yet).
r6569 | iblech++ | * t/rules/*: Fixed the skip_rest_unless_p5style_regexes_are_available_guards.
r6569 | iblech++ | * PIL2JS: $/[0] etc. works!
r6569 | iblech++ | * PIL: (Hack) Subs named /^&PIL2JS::Internals::Hacks::init_foobar/ are run at
r6569 | iblech++ | INIT time.
r6569 | iblech++ | * Prelude::JS::Rules: $/ := $match, .[] for Match objects
r6569 | iblech++ | * PIL2JS: PIL2JS.js: (HacK) All things which .isa(Num) are .isa(Int) .isa(Rat)
r6569 | iblech++ | now, too.
fglock iblech, putter: I'll restart working on hashes soon. I need to know - is it acceptable to have a hash slice take a lazy list? 21:02
putter iblech: ok, tnx
fglock: I sooo have no idea. anyone? 21:03
iblech fglock: I think a hash slice can of course be lazy (%hash{"a".."z"}), but assigning to an infinite hash slice should probably not work, as we have subs for that. Not sure though, ask p6l?
I.e. %hash{"a" .. "z"} = ... (no problem), %hash{3...} = ... (error) 21:04
But I'm really not sure...
fglock do you mean "subs" == plain functions? 21:05
iblech Yep. 21:06
fglock just in case, before I ask in p6l - why %hash{3...} should be an error? It could slurp the arguments and then stop 21:08
putter iblech: there is no immediate need, but for completeness, I note Match also has an integer value. bool, int, str, arr, hash. I left that out of the sketch for simplicity, not realizing, silly me, it would all magically come into existence a day later. ;) sorry. 21:09
iblech fglock: Sorry, I was unclear. %hash{3...} = <a b c> shouldn't be a problem, but anything which makes the hash become infinite should raise an exception (e.g. %hash{3...} = (3...)). 21:10
svnbot6 r6570 | putter++ | Rules.pm: now accepts m// and // in addition to rx//.
iblech putter: +$match == +~$match, right? 21:11
putter: IIRC there was some discussion that +$match should return the number of submatches, but that was quickly ditched 21:12
putter hmm, the last I've seem (but I havent been looking) was Damian's capture post of... 21:14
www.nntp.perl.org/group/perl.perl6....uage/20985 21:15
which has a distinct integer value, usually 1, except in :g and :x. But that was May, and preliminary, so perhaps its changed... 21:16
googling... 21:17
iblech IIRC it was changed to mean the numification of the stringification in the very same thread
putter hmm... there's a thread here (reading...) groups.google.com/group/perl.perl6....19a979a749 21:20
svnbot6 r6571 | fglock++ | * perl5/Array - arrays are fully "sparse" 21:21
r6571 | fglock++ | - you can now assign values to any array address 0..maxint
iblech Larry: "I think we already said something like that once some number of 21:23
months ago. +$1 simply has to be the numeric value of the match. "
putter ok. weee. some really insane (declined) proposals there. sounds good.
geoffb fglock, haven't looked at the code yet, but are fully sparse arrays still O(1) for access to keys in "normal" range? In other words, is the Big-O performance profile still good for non-sparse usage?
putter iblech: tnx 21:24
iblech putter: np :) Rerunning smoke now... 21:25
chip I've been reading the standard, and it seems there's no way to get writeable access to the contents of a std::string. This seems ... odd. Is it really true? 21:26
svnbot6 r6572 | putter++ | Rules.pm: separate out (still unimplemented) :global case.
chip ww
fglock geoffb: no, I've simplified the algorithm - I'll do optimizations after everything works 21:28
I'm coding the hard cases - the easy (fast) cases can be added later 21:29
geoffb fglock, fair enough -- as long as the optimizations come some day. :-)
fglock in an ideal world, if you don't use arrays as objects, Perl 6 should generate code for native arrays 21:31
geoffb Man, I love having 'updatedb' run in 1 second . . ..
fglock, that's a real damn ideal world you're thinking of 21:32
svnbot6 r6573 | iblech++ | t/var/refs_point_to_containers.t: Revert my r6569, my bad, I was wrong, the
r6573 | iblech++ | test was correct.
r6574 | iblech++ | * Usual svn props. 21:34
r6574 | iblech++ | * PIL2JS: PIL2JS.js: Unbreak method calls on Bools.
geoffb iblech, how's PIL2JS doing against the test suite? Is everything in to get that extra 10%? 21:35
iblech geoffb: I had to restart the smoke a minute ago, so we will know in ~~40min 21:36
geoffb (y)
iblech (y) == why? -- Because I accidentally broked method calls on Bools, see commit message of r6574 :) 21:38
putter iblech: what are your feelings about Perl6::Run::JS? cute toy, or useful way to use PIL2JS? If latter, could get access to system(), parrot, etc, via perl5. 21:39
svnbot6 r6575 | fglock++ | * perl5/Array - removed last pieces of non-lazy algorithms in splice()
geoffb sorry, no, (y) is a thumbs-up emoticon on some clients (similarly, (n) gives thumbs-down)
fglock should lazy Arrays warn when you are doing something stupid? like '@a=lazy_read_from_file; @b=@a; shift @b;' - @a no longer points to the first line of file
iblech putter: Everything related to Pugs is a cute toy :) But Perl6::Run::JS is definitely useful, too :)
geoffb Got in the habit at a previous company, and it stuck (even though my current client doesn't translate it at all :-) 21:40
iblech geoffb: ah, ok :)
fglock: oooh! If it's possible to warn from an implemention point of view, then definitely, yes! :)
fglock another possibility would be to create a shared buffer that would compensate for this problem 21:43
I'm dealing with this problem on a test failure right now 21:44
putter iblech: I ran ./pugs-smokejs on rules/perl5.t... but I had to kill pil2js as it went by 3GB
:(
iblech fglock: I like that even more :) 21:45
putter: :( Sadly I think it's perl5 which has a memory leak, not my code
putter: (Because a lone "$self;" changes thing drastically, perl's internal state or whatever are b0rked, I assume) 21:46
Might be worth to try it with 5.9.x
putter ok. I think I even have one around. also, looking at at perl5.t, a little "common case optimization" might dramatically improve the test results. (though I'm not sure what js provides beyond ecma) 21:50
iblech will rewrite PIL::PApp:131-153 to use no closures (i.e., I'll manually lambda-lift) when the smoke finishes, maybe this helps
...And if JS had goto, we would instantly be twice as fast... 21:51
Maybe there's __spidermonkey_internals_hack_do_not_use_goto? :)
putter I'm going to do global first, get the captures to be matches, and then look at test results / optimize some common cases (eg, I'm not sure js has (?i)...) 21:52
geoffb There's something for you to do -- add goto to spidermonkey. :-)
putter lol
iblech putter: Great! 21:53
putter actually, given the pain of installing JavaScripdt::SpiderMonkey, and the glacial rate of jssm development, adding a patch wouldnt cost tooo much install pain. could codegen differently for slow/portable and fast/hack versions... ;)
or do JavaScripdt::StrangeMonkey which has spidermonkey included, and patched, and thus the whole thing easier to install than JavaScripdt::SpiderMonkey is... 21:54
putter isnt sure if this is all good insane or bad insane... the line is so fuzzy sometimes ;) 21:55
geoffb The only way to know is to cross the line and see what happens. :-)
fglock create a fork and name it SpiderParrot 22:01
svnbot6 r6576 | fglock++ | * perl5/Array - updated TODO 22:12
putter iblech: what does [] become in js? 22:26
iblech putter: &circumfix:<[]>(...)
Beh, ran into perl's alligator :( 22:32
luqui ?
brentdax <random>I wonder if there's enough magic in Perl to make "a"... work.</random>
luqui hmmm? 22:33
iblech luqui: perl5.8.7 seems to swap variables or so... a lone "$self;" used to "fix" it 22:34
brentdax "a"... ~~ "a", "b", ..., "aa", "ab", ...
luqui eeeew