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 |