6.2.5 released! | Your opinions wanted: perlmonks.org/?node_id=459750 | pugscode.org <Overview Journal Logs> | pugs.kwiki.org Set by Limbic_Region on 25 May 2005. |
|||
drbean | IF I substitute system 'svk info' for qx/svk info/, I get asked if I | 00:00 | |
theorbtwo | If it sends TCP/IP packets, it's good enough for me. | ||
drbean | want to create a depotmap for root | ||
But it doesn't hang | 00:01 | ||
theorbtwo | What OS? | ||
drbean | Fedora 2, I think | 00:02 | |
theorbtwo | Try changing the command to qx(svk info </dev/null) | ||
Does that hang? | |||
drbean | Wait | ||
No, it still hangs. I think it is an output problem. Probably to stderr | 00:05 | ||
As it is an error message about no depotpath. | 00:06 | ||
theorbtwo | Stderr at this point should be the same as when you invoked make. | 00:08 | |
drbean | Anyway ctrl-c lets the build continue too. | ||
theorbtwo | What's the output when you run it by hand? What do you mean by "it asks..."? | 00:09 | |
autrijus | hey | ||
theorbtwo | Hey, autrijus! | 00:10 | |
autrijus | anyone having account on feather? | ||
I'd like to find people to try this | |||
svk depot '' /home/autrijus/.svk/local | |||
svk co //mirror/pugs | |||
-- and see if it works | |||
theorbtwo doesn't (but may ask for one if he can't get this perl5 embedding thing working... it's really strange). | |||
drbean | By hand: path /usr/local/cpan/5.8.3/build/Perl6-Pugs-6.2.5 is not a checkout path. | ||
AtnNn | Depot '' already exists; use 'svk depotmap --detach' to remove it first. | 00:11 | |
Limbic_Region | autrijus - on winbugs? | ||
autrijus | AtnNn: hm, you already having a svk? | ||
Limbic_Region: no, on feather | |||
a svk repo, that is | |||
Limbic_Region | oh - nevermind then | ||
AtnNn | no, i dont | ||
Limbic_Region is just happy to have net access again | |||
autrijus | ok try this | ||
svk depot --relocate '' /home/autrijus/.svk/local | |||
svk co //mirror/pugs | 00:12 | ||
drbean | using system instead of qx//, svk asks me if I want to set up .svk/local | ||
theorbtwo | Could you please provide the exact output? I'd like to grep SVK for it, so I can figure out how to keep it from asking. | ||
It seems quite odd that it asks when run from make, but not when run by hand. | |||
drbean | I copied the exact output into the line starting > By hand: | 00:13 | |
autrijus | AtnNn: does that work? | ||
pasteling | "AtnNn" at 66.36.154.23 pasted "svk errors" (18 lines, 1.1K) at sial.org/pbot/10416 | ||
drbean | Try running svk info on an arbitrary directory | ||
autrijus | AtnNn: ok, try this | 00:14 | |
theorbtwo | Er, no, what's the output when you run it via system? | ||
drbean | Sorry, when substituting system for qx// | 00:15 | |
autrijus | AtnNn: | ||
cp ../autrijus/config .svk/config | |||
svk co //mirror/pugs | |||
AtnNn | U pugs | ||
drbean | As root or as /me, who has a svk repo | 00:16 | |
That was a question. | |||
autrijus | AtnNn: so that worked :D | ||
AtnNn | yep :) | ||
autrijus | AtnNn: now cd into pugs | ||
svk pull | |||
theorbtwo | As root. | ||
svnbot6 | r3885, mugwump++ | Various Parts of the Perl class model moved from docs/src/ to ext/Perl-MetaModel/lib/Perl/; | ||
r3885, mugwump++ | Pugs-based classes moved from ext/Perl-MetaModel/lib/Perl to ext/Perl-MetaModel/lib/Pugs | |||
r3886, Limbic_Region++ | Added missing . in hyper deref tests | |||
AtnNn | seems to work | 00:17 | |
autrijus | yay. | ||
drbean | As root from the command line: path /usr/local/cpan/5.8.3/build/Perl6-Pugs-6.2.5 is not a checkout path. | 00:18 | |
autrijus | Juerd: can you add the comments in ~autrijus/config to MOTD? | 00:19 | |
Juerd: that will likely save lots of bandwidth | |||
drbean | That was sudo /usr/bin/perl -Iinc util/version_h.pl src/Pugs/pugs_version.h | ||
theorbtwo | Um, you mentioned something earlier about it asking you a question. | 00:20 | |
drbean | But run as part of make as root: Repository /root/.svk/local does not exist, create? (y/n)7 | ||
theorbtwo | There we go, thank you. | ||
drbean | Sorry about the 7. | ||
AtnNn | maybe you can put the svk config in /etc/skel? | 00:21 | |
theorbtwo | Uff, svk tries to open /dev/tty if STDIN isn't a TTY. | 00:24 | |
svnbot6 | r3887, autrijus++ | * Method invocation into Perl 5 now carries the current | ||
r3887, autrijus++ | context around. | |||
r3888, autrijus++ | * fix double-evaluation bug for Perl 5 method invocation; | |||
r3888, autrijus++ | reported by Gruber. | |||
r3889, clkao++ | Basic Benchmark.pm. | |||
autrijus | clkao++ | 00:25 | |
clkao | autrijus: where's hashref and call_later ? | ||
karma clkao? | |||
jabbot | clkao: clkao? has neutral karma | ||
clkao | karma clkao | ||
jabbot | clkao: clkao has karma of 46 | ||
autrijus | clkao: I've been fixing a insidious double-eval bug and cxt propagation | ||
clkao | you should have asked me | 00:26 | |
hah | |||
autrijus | clkao: now perl6 cxt carries over to perl5 | ||
clkao | cool. | ||
mrborisguy | does a name with ++ increase karma, or what? clkao++ | ||
autrijus | mrborisguy: right | ||
mrborisguy | arbitrarily... | ||
theorbtwo | mrborisguy: Yep | ||
perlbot, help | |||
perlbot | Syntax: (fact) :: tell (who) about (what) :: (who) > (what) :: learn (what) as (info) :: relearn (fact) as (info) :: facts (search term) :: shorten (url) :: shorten it :: search (module) :: docs (module) :: perldoc -f (function) :: math :: fortune :: flip :: host (type) (record) :: rot13 :: roll (die) :: tempconv (temp) :: scramble (text) :: 8ball :: slap :: diss :: what time is it :: highest karma :: lowest karma | ||
theorbtwo | perlbot, highest karma | ||
perlbot | The top 5 karma entries: autrijus: 442, iblech: 317, C: 316, stevan: 123, nothingmuch: 76 | ||
clkao | now i should sleep. you want to see bin/svk in perl6 right? :) | ||
mugwump | perlbot, what time is it? | ||
perlbot | Wed May 25 17:26:58 2005 Pacific Time | ||
autrijus | Feather users: perlcabal.org/~autrijus/ | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | 00:27 | |
autrijus | clkao: right :) | 00:27 | |
clkao | also Getopt::Long would be a good example. as it will modify p6 data | ||
theorbtwo | Allo, vcv-without-dashes. | ||
clkao | i guess rewriting getopt::Long is hateful. | ||
autrijus | the MOTD should say "We apologise that this machine's svk is still in Perl 5. This situation will be remedied" | ||
clkao | lol | 00:28 | |
ha, should put a link to my paypal after that | |||
autrijus | XD | ||
theorbtwo | clkao++ # Not so arbitaraly. | ||
mrborisguy | theorbtwo: hahaha | 00:29 | |
svnbot6 | r3890, mugwump++ | Sorry, more moves - being more consistent | ||
clkao | autrijus: ok, see what you can get me before i wake up :) | ||
autrijus | clkao: prolly not much but I'll try | 00:30 | |
sleep well! | |||
clkao | the working call_later example willbe extremely helpful | ||
nite! | |||
autrijus | hm come to think about it | ||
my $cv = eval_perl5('sub { $_[0]->() }'); | 00:31 | ||
$cv.({ say "callback" }); | |||
if I get _this_ to run | |||
you should be home free right? | |||
clkao | dear autrjus | ||
please look at method.t | |||
that has the same thing | |||
autrijus | yeah but you was using meth | 00:32 | |
principally the same, sure | |||
clkao | try. but. | ||
theorbtwo | autrijus: Looked into the p5emb problem, and not liking what I'm seeing. When I directly include the header for the crypt thing, it doesn't help. The header in question makes it conditional on __USE_GNU, which AFACS should def. be set. | ||
clkao | but if call_later makes it simpler you can do that and i do the ugly perl5 part | ||
autrijus | clkao: ok ok. you want a thunk in perl5 land. I get that much | ||
clkao: I'll see what I can do. | 00:33 | ||
you know, a genuine thunk like that carries the entire context around | |||
clkao | i am trying to keep you away from perl5guts :) | ||
autrijus | so you can do continuations :) | ||
clkao giggles | |||
autrijus | or coroutines | ||
since pugs controls the runloop | |||
not p5 | 00:34 | ||
clkao++ # embperl == good idea | |||
theorbtwo: hrmph. | |||
theorbtwo: I wish I have a machine to debug :-/ | |||
theorbtwo: try replicating it on perlcabal? | |||
I mean, feather | |||
clkao | autrijus: just trying the usual thing to make use of existing stuff and do things via the fastest path | 00:35 | |
cdpruden | theorbtwo: I ran into the same problem earlier; I use a binary install of ghc(non-debian), and installed the hs-plugins (and it's requirements) from source, all of those in /usr/local -- and I no longer get the _crypt problem | 00:36 | |
but I do get a different compile problem now | |||
autrijus | clkao: ok. sure. also we need to handle vararg return | ||
theorbtwo | I don't have a feather account. | ||
autrijus | but that's another story for another time. you sleep | ||
theorbtwo | You still have an account on lilith, I think. | ||
Oh, no, you don't. Recreating it. | 00:37 | ||
mrborisguy | anybody know if there is perl6 syntax highlighting for vim yet? | 00:45 | |
autrijus | mrborisguy: see util/perl6.vim | ||
$ ./pugs -e 'say eval_perl5("wantarray ? LIST : SCALAR")' | |||
LIST | |||
$ ./pugs -e 'say scalar eval_perl5("wantarray ? LIST : SCALAR")' | |||
SCALAR | |||
fun! | |||
mrborisguy | autrijus: okay, thanks! | ||
theorbtwo | Woo, cool, autrijus! | 00:46 | |
mrborisguy: There's a file for that in the pugs svn. | |||
util/perl6.vim | |||
Juerd | Compiling Pugs.Embed.Perl5 ( src/Pugs/Embed/Perl5.hs, src/Pugs/Embed/Perl5.o ) | 00:47 | |
src/Pugs/Embed/Perl5.hs:18:23: Not in scope: type constructor or class `CInt' | |||
make: *** [unoptimized] Error 1 | |||
autrijus: Thanks for the svk instructions | |||
autrijus: Can you change "../autrijus" to "~autrijus", and add "mkdir ~/.svk"? | |||
theorbtwo | Juerd: Can I get a feather account? (Username theorb, please.) | ||
Juerd | theorbtwo: Yes, email me. | ||
svnbot6 | r3891, autrijus++ | * perl5_eval now honours Perl 6 side context too. | 00:51 | |
Juerd | ls -l | 00:55 | |
eh | |||
that doesn't work on irc :) | |||
Juerd meant /names :) | |||
theorbtwo | Heh. | ||
Juerd | theorbtwo: I haven't received your email yet | ||
theorbtwo | Hm, I sent it... | 00:56 | |
autrijus | Juerd: fixed. looks ok? | ||
svnbot6 | r3892, autrijus++ | * p6ify Benchmark's pod | 00:57 | |
r3893, autrijus++ | * fix nonembed build | |||
r3894, autrijus++ | * really fix nonembed, as reported by Juerd | |||
theorbtwo | Hm, I think I'm going to go away for a while and read, and possibly sleep. | ||
Later, guys. | 00:58 | ||
autrijus | theorbtwo: sleep well | ||
Juerd | autrijus: We'll see in 1 minute, when the next autobuild goes | ||
:) | |||
autrijus: Its stderr is redirected to ~juerd/auto/autobuild.err, should you want to inspect it | 00:59 | ||
autrijus: It runs every 15 minutes | |||
autrijus: And /usr/local/bin/pugs is a symlink to ~juerd/auto/pugs/pugs | |||
knewt | Juerd: what's the fingerprint of feather supposed to be please, as an authenticity check | 01:00 | |
autrijus | Juerd: I meant the svk instruction :) | ||
knewt: 74:fb:62:f5:86:3b:61:cd:f4:87:94:56:14:a6:2e:59. | |||
Juerd | autrijus: Where do you get that fingerprint? | 01:01 | |
knewt | Juerd: ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key | ||
mrborisguy | Juerd: you just gotta guess | ||
autrijus | Juerd: by typing "ssh localhost" on feather | ||
mrborisguy | Juerd: okay, i guess nevermind | ||
Juerd | autrijus: Almost - it's better if you don't assume it's done from one's homedir at all, I think :) | ||
autrijus: ~ is always the user's homedir (and ~foo is foo's) | |||
OTOH, it does say it's suppose to be run from the homedir | 01:02 | ||
I overlooked that | |||
autrijus | fixed that too. | 01:03 | |
now it's all ~/ | |||
Juerd | autrijus: Thanks | ||
autrijus | np :) | ||
please verify it works :D | |||
Juerd | verified | 01:04 | |
autrijus | cool | ||
Juerd | And the automatic build went well too | ||
knewt | Juerd: ok, ssh key put in place and password randomized to something i have absolutely no idea of whatsoever | 01:06 | |
autrijus | Juerd: I see no ~juerd/auto/pugs/pugs | 01:08 | |
Juerd | autrijus: That means the last build failed, which is correct, because I'm fooling around trying to get parrot compiling | 01:09 | |
parrot needs c++, which wasn't installed | |||
stevan | Juerd++ # just got my feather account info | ||
autrijus chuckles good-naturely at castaway's "Perl 5 mostly didn't have significant syntax change, right?" post | 01:10 | ||
# perlmonks.org/?node_id=459818 | |||
Juerd: parrot does not need c++ | |||
Juerd: or it really does? where? | 01:11 | ||
Juerd | autrijus: It does complain if it's not installed, and it no longer complains when it is. | ||
Configure.pl complained | |||
autrijus | ah. then that complaint is out of date. | ||
Juerd | What's the right separator for PUGS_EMBED? | 01:14 | |
autrijus | anything not \w | ||
Juerd: you okay if I host pugs's darcs repo on feather too? | 01:15 | ||
seeing how you have darcs installed | |||
Juerd | Anything that doesn't use wild bandwidth, and has to do with perl 6, is allowed | ||
autrijus | sure. darcs repo is quite bandwidth friendly overhttp | 01:16 | |
Juerd | We have to try and stay under 100 GB per month | ||
autrijus | sure, that's easily done | 01:17 | |
normal dev can't use that much | |||
not at least until we have ext/Net-Torrent/ | |||
Juerd | :) | 01:18 | |
autrijus | oh. I'd need gnu screen | ||
Juerd | It should be installed | ||
But it isn't. Weird | |||
It was on the requests list though | |||
autrijus | 'kay | ||
Juerd | Installed now. | 01:19 | |
autrijus | danke | ||
Juerd | Heh | 01:20 | |
It's probably wise to enable autoflush for embedded perl 5 | |||
pugs -e'eval_perl5 q[$a = 42; *b = *a; print $b;]; say' | |||
automatic build cycle now includes parrot, and embeds perl 5 and parrot in pugs | 01:21 | ||
autrijus: Do you know if something like ccache exists for ghc? | 01:23 | ||
mrborisguy | anybody know what this error is all about: /tmp/ghc25611.hc:1740: warning: implicit declaration of function `boot_DynaLoader' | 01:25 | |
when trying to compile Pugs.Embed.Perl5 | |||
autrijus | Juerd: not sure | 01:26 | |
mrborisguy | i guess this is the only line that says "error", but it's before about 20 lines of errors: /usr/lib/perl/5.8/CORE/reentr.h:611: error: field `_crypt_struct' has incomplete type | ||
(i mean, 20 lines of warnings) | |||
autrijus | mrborisguy: it's not error and the lack of prototype is normal | 01:27 | |
but the _crypt_struct is error and I'm not sure how or why | |||
cdpruden | I got that until I installed the hs-plugins package | ||
but now I get a different problem building | 01:28 | ||
kelan | jabbot karma | 01:30 | |
hmm | |||
Juerd | finished mailing lots of people their passwords... | 01:31 | |
That sucked :) | |||
autrijus | Juerd++ | ||
Juerd | :) | ||
autrijus | dev.pugscode.org also aliased to feather aka perlcabal.org | 01:32 | |
new darcs repo up at perlcabal.org/~autrijus/darcs/pugs/ | 01:33 | ||
syncing not yet in place | |||
mrborisguy | hmm... does Perl5 use a specific crypt library or something? | ||
autrijus | mrborisguy: that's possible | ||
Juerd | mrborisguy: I think not | 01:36 | |
robkinyon | anyone gotten the svk co procedure outlined in ~autrijus/config to work on feather? | 01:38 | |
knewt | yes | ||
Juerd wonders why robkinyon's user name shows up as his uid when you do "ps aux" | |||
It says 1001 where it should say robkinyon | |||
robkinyon has no idea, juerd | |||
Juerd | Oh, hi, robkinyon | ||
robkinyon: Yes, I tested it | |||
robkinyon: Where do things go wrong? | |||
robkinyon | it's telling me that /mirror/pugs is not a URL | 01:39 | |
mrborisguy | Juerd: check if robkinyon is in the passwd file | ||
autrijus | robkinyon: //mirror/pugs | ||
robkinyon | i'm in /etc/passwd as user 1001 | ||
autrijus | did I type it wrong? it should be double slash | ||
Juerd | mrborisguy: It is. | ||
robkinyon | 1;0 robkinyon@feather:~$ svn co //mirror/pugs ~/pugs | ||
svn: '/mirror/pugs' does not appear to be a URL | |||
Juerd | robkinyon: svK | ||
autrijus | did you use svk? | 01:40 | |
you may need to alias svn to svk for a bit | |||
;) | |||
robkinyon | wow ... n vs. k | ||
robkinyon feels dumb | |||
Juerd | autrijus: Maybe add "# That's svk, not svn." | ||
robkinyon | yeah ... my fingers type "svn" w/o thinking | ||
Juerd made the same mistake the first time | |||
autrijus | Juerd: not going to help people in the long run :) | ||
Juerd | robkinyon: Same here :) | ||
autrijus | but sure | ||
robkinyon | oh - anyone know vim functions well? | ||
my perlide.vim works w/gvim, but not vim | 01:41 | ||
Juerd | robkinyon: I do, well enough, but don't really feel like spreading the gospel today :) | ||
robkinyon is a cut'n'paste master | |||
Juerd | robkinyon: If you want another editor, ask for one | ||
robkinyon | i love vim ... i just never bothered learning its scripting language | ||
Juerd | I see | ||
I don't use scripts for it. | 01:42 | ||
autrijus | added | ||
robkinyon has only been using g?vim? for over a decade ... | |||
autrijus | I'm glad I switched to bash ;) | ||
the .bashrc and .vim worked perfectly | |||
Juerd | bash rocks :) | ||
autrijus | I can't go anywhere without minibufexpl.vim | 01:43 | |
mauke | what does it do? | ||
autrijus | mauke: it is the tabbed browsing extension for vim. | ||
see my ~/.vim* on feather :) | 01:44 | ||
robkinyon | tabbed browsing extension? | ||
autrijus | robkinyon: editing multiple files at once | ||
robkinyon | isn't that what buffers are for? | ||
autrijus | displaying a row of tabs of the opened files | ||
well yes, but I can't remember buffers well | |||
robkinyon | :buffers | 01:45 | |
autrijus | sure, but it's like tabs vs multiple windows :) | ||
robkinyon | nomap ,b :b<cr> | ||
nomap ,b :buffers<cr> | |||
autrijus | anyway, a tab row is nonmodal | ||
it's always there | |||
so it fits my brain better :) | 01:46 | ||
robkinyon | ahhh ... vim or gvim? | ||
autrijus | both works | ||
robkinyon | huh | ||
mrborisguy | cdpruden: where did you get hs_plugins? | ||
autrijus | robkinyon: www.wavell.net/vim/vim_screenshot.gif | 01:47 | |
cdpruden | from the pugs readme, ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/snapshots/ | ||
autrijus | I put them at bottom, though | ||
robkinyon | oh, wow. That just looks ... weird. I'm from 80-col/23-line vt220 land. I still barely can handle X, let alone all this craziness. :-) | 01:48 | |
mrborisguy | cdpruden: thanks | ||
cdpruden | nopaste? | ||
pastebot? | |||
mrborisguy, it has a couple of prereqs, too | 01:50 | ||
I think they're listed in it's readme | |||
pasteling | "cdpruden" at 68.248.14.17 pasted "Now I get this when trying to build" (10 lines, 1.5K) at sial.org/pbot/10419 | 01:51 | |
autrijus | cdpruden: did you rerun perl Makefile.PL? | 01:52 | |
mauke | hmm, looks like minibufexpl.vim is buggy | ||
cdpruden | autrijus; yes -- even have been making distclean each time | 01:53 | |
autrijus | cdpruden: ok, I committed something | ||
cdpruden | oooh | ||
autrijus | try running Makefile.PL again | ||
mauke | vim kamil-1.pl; :e kamil-2.pl (minibufexpl window appers); :q (kamil-2.pl and minibufexpl disappear), kamil-1.pl is displayed without syntax coloring | ||
svnbot6 | r3895, autrijus++ | * add package eval | ||
Juerd | ccache++ | 01:54 | |
autrijus | Juerd: you got it working with ghc? | ||
cdpruden | ahh, yes... unknown package: eval at compile time... where should I look for eval? | ||
Juerd | autrijus: No, I wouldn't know how | ||
autrijus | cdpruden: "make register" | 01:55 | |
in hsplugins | |||
I think I said that somewhere :) | |||
cdpruden | right; I actually did that already | ||
autrijus | strange then. | ||
did you install first? | 01:56 | ||
cdpruden | yup; repeating that and register just in case | ||
mrborisguy | so in hsplugins... make, make register, make install? | ||
cdpruden | make, make install, make register, actually | 01:57 | |
mrborisguy | oh, okay | ||
autrijus | cdpruden: I see | ||
gimme a sec | |||
cdpruden | so, is there a ghc equivalent to perl -MModule::I::THINK::I::HAVE ? | ||
autrijus | ghc-pkg | ||
cdpruden: are you in AUTHORS? :) | 01:59 | ||
svnbot6 | r3896, autrijus++ | * don't keep tmp files anymore. | ||
cdpruden | nope :) | ||
autrijus | ok. please add yourself in :) | 02:00 | |
(and give me your email addr so I can make you a committer to add yourself in, if that's okay by you) | |||
Juerd | robkinyon: Please use nice | ||
robkinyon | sorry bout that. | 02:01 | |
Juerd | It's okay | ||
cdpruden | autrijus, could you paste your ghc-pkg -l so I can compare it to mine? | ||
robkinyon | can i default my nice to something? | ||
i'd like to default it to 19, if possible | 02:02 | ||
autrijus | cdpruden: try r3898 first? | ||
Juerd | robkinyon: 19 means your process'll hardly ever get a chance :) | ||
robkinyon | heh | ||
it seems to be going ok | |||
cdpruden | oooh! Rock! | 02:03 | |
Juerd | I don't think there's a way to set a default | ||
cdpruden | it works, err... farther :) | ||
one problem down | |||
autrijus | heh :) | ||
cdpruden | do you use a threaded perl or not? | ||
autrijus | cdpruden: invitation sent, please add yourself to AUTHORS, welcome aboard! | ||
cdpruden | thanks! | ||
autrijus | I don't | ||
cdpruden | (I kind of thought it might be a bad idea to use a threaded perl for this, but I did it anyway) | 02:04 | |
autrijus | so what was the errmsg? | ||
japhy | juerd - your perl6 server will be fully stocked? that is, it'll have all the tools needed to develop and submit updates? | ||
Juerd | japhy: What do you mean, "will be"? | ||
svnbot6 | r3897, autrijus++ | * fix hs-plugins build; cdpruden++ for catching this. | ||
r3897, autrijus++ | We now require a newer "-package plugins" version of hs-plugins. | |||
r3898, autrijus++ | * even more fix | |||
japhy | oh, you've got it already? | ||
Juerd | japhy: Is anything you need missing? | 02:05 | |
yes :) | |||
japhy | last I heard, people were bitching over the name. | ||
well then, I'd like an account :) | |||
Juerd | That was so yesterday. | ||
robkinyon | like 6 people are building on it simul. | ||
pasteling | "cdpruden" at 68.248.14.17 pasted "Threaded perl build error message" (33 lines, 2.8K) at sial.org/pbot/10420 | ||
Juerd | japhy: Email me | ||
robkinyon | that was so this morning, you mean. :-) | ||
japhy | will do. | ||
Juerd | If you do it now, I'll create an account for you just before I go to bed | ||
(it's 4:11 am | |||
robkinyon | ahhh | ||
japhy | ok :) | ||
robkinyon | only 10p here | ||
autrijus | cdpruden: same bug as theorbtw1's then | ||
Juerd | and I've been busy with feather since 17:00...) | 02:06 | |
autrijus | cdpruden: I'm 'fraid until that's fixed you need to build w/o embperl :-/ | ||
cdpruden: we'll eventually figure it out. you're also welcome to trace and ask around | |||
cdpruden | sure; let me know if there is anything I can do to help -- I'll try again with a non-threaded perl and such | ||
autrijus | that'd rock. | ||
japhy | what should I put in the email? u/p request? | 02:07 | |
Juerd | japhy: just the request and a username | ||
japhy | ok | ||
Juerd | password will be made for you, and you'll have to change it yourself | ||
japhy | gotchya. | ||
kelan | what is hs-plugins? | ||
mrborisguy | i still get this: /usr/lib/perl/5.8/CORE/reentr.h:611: error: field `_crypt_struct' has incomplete type even after hs-plugins | 02:08 | |
autrijus | kelan: it's the thing that makes eval_haskell() and using haskell modules work | ||
japhy | ok | ||
autrijus | mrborisguy: yeah, seems you cdpruden and theorbtw1 got the same problem | ||
japhy | err..... | ||
pay no attention to the public message. | |||
autrijus | currently embperl is verified to work on freebsd and osx | 02:09 | |
and verified as broken on linux and win32 | |||
mrborisguy | yeah, i guess i can say mine's on linux | ||
so chalk that one up | |||
and i won't take it so hard on myself anymore ;) | 02:10 | ||
autrijus | but somehow Juerd got it working on feather | ||
which is debian sid | |||
so I'm not at all sure what's involved | |||
mrborisguy | a'ight... i'm on debian sarge i'm pretty sure | ||
japhy | ah, perl6.nl | ||
mrborisguy | but i installed perl from source | ||
so i'll just wait i guess, see what comes of it. as for now, i'm out... too much failure for one night! ;) | 02:11 | ||
Juerd | autrijus: "somehow"? | 02:13 | |
autrijus: It just worked. | |||
autrijus: I did nothing special for that :) | |||
autrijus | ok :) | 02:14 | |
kelan | i thought you used elfish magic! | 02:16 | |
isnt there a special incant for embperl? | |||
autrijus | env PUGS_EMBED=perl5 | 02:19 | |
env PUGS_EMBED=perl5 perl Makefile.PL | |||
kelan | but how do you say that in elfish :) | 02:20 | |
Juerd | Good night | 02:21 | |
autrijus | Juerd: nite! | 02:22 | |
svnbot6 | r3899, cdpruden++ | <autrijus> cdpruden: invitation sent, please add yourself to AUTHORS, welcome aboard! | ||
autrijus | kelan: Ā«Ar Eru ontanĆ« i altĆ« Ć«arcelvar ar ilya i ĆŗvĆ« cuinĆ« onnaiva i rihtar i nenissen, nostalentassen, ar ilyĆ« rĆ”mavoiti onnar nostalentassenĀ» | ||
(okay, not quite that. ;)) | |||
kelan | hah | ||
autrijus | but I really need to nap a bit. | 02:25 | |
see ya! & | |||
kelan | bye | ||
robkinyon | how do you make the hyperoperators in vim? | 02:27 | |
nm - i figured it out | |||
kelan | two angles? | ||
ctrl-k! | |||
robkinyon | Ctrl-K,>> | 02:28 | |
meppl | gute nacht | 02:37 | |
robkinyon | Shouldn't the following be identical: | 02:40 | |
my @y = [[@x],[@x],[@x],[@x],[@x],[@x]]; | |||
my @y = [ map [@x], 0..+@x ]; | |||
where my @x = (undef,0..4); | |||
kelan | map always takes a code ref | 02:41 | |
robkinyon | thanks | ||
kelan | so your second would probably die | ||
robkinyon | it has been :) | ||
mugwump | autrijus, would it be very hard to have a debug version of the EvalMonad that calls a function each time the EvalMonad steps? | 02:51 | |
svnbot6 | r3900, autrijus++ | * usual props on Benchmark.pm | ||
mugwump | preferably DB::db(). Oh, and it should pass other information in bizarre and unusual places, so that in 10 years' time people can spend hours poring over the code | 02:52 | |
Obviously this needs to be a non-reentrant hook, so that within the hook code it doesn't keep calling itself :) | 02:54 | ||
mugwump adds the request to autrijus' journal and PerlMonks posting | 03:00 | ||
drbean | t/oo/class/TestFiles didn't make it into 6.2.5 so those tests didn't pass | 03:27 | |
the tests in t/oo/class/nested_use.t | 03:28 | ||
svnbot6 | r3901, autrijus++ | * Perl 6 values now roundtrip into Perl 5 land and back. | 04:04 | |
TheBeast | when is perl6 going to be released?:) | 04:05 | |
jql | what part do you want? | 04:11 | |
svnbot6 | r3902, autrijus++ | * oops, .isa() check was broken | ||
jql | perl6 is a fluid thing. some works now. some will work later. some will need to wait till 6.1.0 | 04:12 | |
:) | |||
TheBeast | oh | 04:13 | |
Khisanth | jql: so ... what will perl 7 be like? :) | 04:33 | |
revdiablo | isn't perl 7 supposed to be perfection, completeness? | 04:41 | |
japhy | perl 6.6.6.... the programming language of the beast | 04:42 | |
aww, thebeast left the channel. | 04:43 | ||
bummer. | |||
Khisanth | wasn't it recently discovered the number of the beast was some other value? | 04:47 | |
ihb | Khisanth: ah, like that? | 04:50 | |
err, s/t/w/ | |||
mugwump | well, 666 is a lucky number in the Orient where pugs svn is held | 04:59 | |
Khisanth | it is? | 05:00 | |
mugwump | or, rather, 6 is a lucky number and 666 has it three times! | ||
444 would seem more evil | 05:01 | ||
or 4444 | |||
Khisanth | 1453! :) | 05:02 | |
mugwump | the end of Constantinople's reign? or something else? | 05:08 | |
Khisanth | mugwump: depending on the dialect it can mean "certain death" :) | 05:34 | |
mugwump | hmm, interesting. I know that the word for "4" (sƬ) sounds like the word for "death" (si, not sure of tone), is that phonetic? | 05:40 | |
Khisanth | that is correct in at least a few places :) | 05:42 | |
mugwump: do you know if there has been any change to system() in p6? | 05:55 | ||
gaal | so, anyone had any luck with embdperl5 on win32? | 06:20 | |
...or on debian? | |||
mugwump | sorry Khisanth, I've got no idea :) | 06:24 | |
wolverian | Khisanth: 616 (re: number of the beast) | 06:29 | |
gaal | building the latest hs-plugins package, i get an error about Data.List. ideas? | 06:31 | |
ghc-6.4, debian | |||
knewt | gaal: yes. download hs-plugins-20050424 instead, there's known problems building more recent stuff | 06:36 | |
gaal | thanks! | ||
nothingmuch | morning | 06:56 | |
gaal | i'm getting "Could not find module `System.Eval':" whether i embperl5 or not. this is after a clean co. | 06:59 | |
hmm, r3897 say ' We now require a newer "-package plugins" version of hs-plugins.' <- any explanation about what this implies? | 07:01 | ||
Juerd | svk-- svn-- | 07:11 | |
They ought to exit 1 instead of 0 when there are no updates :( | 07:12 | ||
Then you can script against it, and skip the compile phase | |||
wolverian | Juerd: send a patch? | ||
Juerd | I can't imagine this is a bug or oversight, to be honest | 07:13 | |
There's probably a good reason | |||
wolverian | me neither, really. I'd ask the mailing list/equivalent | ||
nothingmuch | Juerd: look in util/smoke_loop.sh | 07:23 | |
it works reliably enough | |||
Juerd | ah, thanks | ||
nothingmuch | it's ugly though | ||
gaal | Juerd, should we only make unoptimized on feather? | 07:27 | |
Juerd | Probably | ||
gaal | k | ||
Juerd | Though you can try an optimized build if load is low | ||
But please do nice it :) | |||
(nice -n 5 make) | |||
gaal | sure :) is there a %ENV<PARROT_PATH> i can reuse? | ||
Juerd | automated builds are in ~juerd/auto | 07:28 | |
of parrot and pugs | |||
gaal | k | ||
Juerd | nothingmuch: That won't trigger anything if only onefile changed, and that is a likely thing. | 07:29 | |
Aankhen`` | Morning. | 07:30 | |
nothingmuch | okay, in that case maybe 'svn up -q' printing nothing means no update | ||
i'll test | |||
Juerd | Ah, that's a good one | ||
gaal | feather is a hella fast! | 07:31 | |
nothingmuch | ā¢ [syeeda:/usr/local/src/pugs] nothingmuch % svn up -r 3672 README | ||
U README | |||
Juerd | gaal: Really? :) | ||
nothingmuch | Updated to revision 3672. | ||
Juerd | gaal: What are you used to then? | ||
nothingmuch | 2 lines | ||
Juerd | nothingmuch: Oh, hm | ||
gaal | slow, i guess! :) | 07:32 | |
Juerd | nothingmuch: I thought there'd be no Updated... line | ||
nothingmuch | both on out, btw | ||
gaal | aaah, no -- i forgot, i did make unoptimized ;) | ||
*that*'s fast. | |||
nothingmuch | so need to even redirect err... how's that for good interface design... peh | ||
Juerd | sh-- # stupid :) | 07:33 | |
[ foo ], but not [foo] | |||
nothingmuch | oh, sh is very stupid sometimes | ||
Juerd | anyway, it appears to work | ||
nothingmuch | but you get used to typing that stuff after a while, and forget it's a problem | ||
Juerd | We'll see if we start lagging behind updates ;) | ||
nothingmuch | Juerd: smoke loop | 07:34 | |
? | |||
or are you trying something else | |||
Juerd | No, ~juerd/autobuild.sh | ||
Which caters /usr/local/bin/{parrot,pugs} | |||
nothingmuch | no acct yet | ||
in that case: | |||
Juerd | Request one then :) | ||
nothingmuch | nothingmuch, [email@hidden.address] Yuval Kogman | ||
gaal | juerd, i suspect we need a little more than your auto/parrot | ||
Juerd | By email please | ||
nothingmuch | allrightey then | ||
gaal | because while it builds, other people can't build against it :) | ||
Juerd | eh | ||
You did request an account | |||
And you have it. | |||
nothingmuch | oh, coolness | ||
Juerd | And I mailed you a password early this morning... | 07:35 | |
nothingmuch | i don't recall getting a mail though | ||
Juerd | weird | ||
gaal: Perhaps a local svn mirror would be nice. Would you set one up for others to use? | 07:36 | ||
I don't think disk space will be a problem soon | |||
Everyone needs their own working copy anyway, because your build will be very, ehm, "interesting" if your tree is updated midbuild :) | 07:37 | ||
gaal | true. | ||
wolverian | heh. | 07:38 | |
gaal | my scm-fu is limited, so i'd rather someone else take up this task | ||
oaky, why doesn't this work? env PERL5LIB=/home/gaal pugs -e 'use Hello5--perl5; say Hello5.greet' | 07:41 | ||
oh, because i forgot to end the module with '1;' | 07:42 | ||
use --perl5 doesn't die on module load errors. | |||
wolverian | "modules must return a true value"; | ||
gaal | bugs find bugs :) | ||
juerd, on feather perl and ghc are just the vanilla debian perl and ghc-cvs ? | 07:45 | ||
clkao | Juerd: with svk you can up -C first, see if there's menaingful update | 07:46 | |
Juerd | gaal: Yes | 07:52 | |
gaal | i just don't understand why my linux machine isn't embedding perl5 then | 07:53 | |
its config is almost identical | |||
clkao | lazy autrijus :p | ||
Juerd | clkao: That's very useful - thank you | ||
clkao: But it also works with output rather than exit codes, so it doesn't simplify scripting | |||
gaal: Do you have libperl-dev installed? | 07:54 | ||
clkao | *nod* but it's not really a failure when there's empty update. | ||
Juerd | clkao: I know. | ||
gaal | yes | ||
Juerd | clkao: But sometimes one has to be creative in order to support nice features :) | ||
clkao: Especially MS-DOS programs made good use of this feature | 07:55 | ||
IF ERRORLEVEL 4 GOTO four | |||
metaperl wonders how far from an interpreted C++ perl6 will be | 07:57 | ||
Juerd | metaperl: Why do you say such mean things? | 07:58 | |
metaperl | mean? C++ appears to rock... | ||
look at all the apps written in c++ | |||
webmind | lol | 08:00 | |
Juerd | C++ is often seen as a needless upgrade to C, that makes things much worse in many ways | ||
C++ proponents usually respond saying that the C hippies just aren't ready for more advanced mechanisms yet | 08:01 | ||
metaperl | there are beautiful languages and practical languages. talkers and doers | ||
Juerd | And then flame wars begin. | ||
scook0 | karma C | ||
jabbot | scook0: C has karma of 74 | ||
Juerd | Perl 6 has been called perl++ in the negative context of C++ some times already. | ||
metaperl | what time is it in England? 2 fotango people in the last 5 minutes have come n | ||
Juerd | 9 am :) | 08:02 | |
metaperl | what is your opinion on that Juerd? is Perl 6 an improvement? A big one? | ||
Juerd | It's a big and important improvement that I think the world isn't ready for | 08:05 | |
I fear that Perl 6 is much too complex (it has to be, though), and that this will be a reason for many decision makers to use other languages. | |||
metaperl | ok Juerd, one more question. if it were your choice, would method invocation use "." or "->" ? | ||
Juerd | ., definitely. | 08:06 | |
scook0 | "->" is such a pain to type | ||
Juerd | Although -> communicates action, while . is a full stop, . is MUCH easier to type, and easier on the eyes as well, if you chain them. | ||
metaperl | hmm, I _love_ "->" | ||
I am going to miss it... if p6 ever makes it into the real world | 08:07 | ||
Juerd | Yes, but hadn't we already established that even for a Perl guy, you're pretty weird? | ||
metaperl | :) | ||
s/weird/unique | |||
Juerd | Whatever you wish to call it. | ||
metaperl | lol | 08:08 | |
scook0 | it is kind of funny how . has been associated with member access & method calls | ||
osfameron | Juerd: will Perl 6 really be too complex? | ||
metaperl | scook0, funny? | ||
osfameron | I can imagine using [+], but will probably leave [>>^+<<] well alone, | ||
and I guess a lot of really complex idioms will be possible, but probably not much used in the wild. | |||
Juerd | osfameron: The mere possibility of using it is scary for many | 08:09 | |
scook0 | I remember looking at an old Algol book which used . in regular identifiers | ||
Juerd | osfameron: I think things like .?, .+ and .* are unneeded, and make things to complex | ||
scook0 | It was /really/ hard to read :) | ||
metaperl | hi Yoval | ||
Juerd | Many things in the OO system are very complex. | ||
metaperl | like roles | 08:10 | |
osfameron | Juerd: oh, I've not really followed that: where is .? etc documented? (I see that as a regex quantifier right now) | ||
Juerd | osfameron: S12 | ||
Aankhen`` | Building Pugs seems to be even slower than usual. o_O | ||
Juerd | The whole private method|attribute thing is highly inconsistent | ||
scook0 | The OO system as a whole is pretty scary, but most people should be able to get by with just a sane subset of it | ||
Juerd | And for that, you don't even get real privacy in return. | ||
osfameron | ghci-- # doesn't respond to quit/exit/q/x/Ctrl-C | 08:11 | |
Juerd | scook0: Yes, to write software. | ||
scook0: But to *understand* written software, you have to simply know all routes to a certain point. | |||
scook0 | Juerd: the Perl curse... | ||
nothingmuch | morning | ||
damn connection | |||
Aankhen`` | Hi nothingmuch. | ||
nothingmuch | Juerd: i think the best way to manage feather source code wise is: | 08:12 | |
svn mirror | |||
Juerd | scook0: Yes, and it's made many times worse. Some of that is needed, some of that I think is utter bloat. | ||
nothingmuch | everyone compiles their own version | ||
but theres a ccache | |||
wrapped with a shell script that does umask 0 | |||
and writes to a public dir | |||
Juerd | I had ccache public yesterday, but forgot the umask thing | ||
:) | |||
osfameron | Juerd: I can get .? - shortcut for $obj->meth if $obj->can('meth') | ||
Juerd | You don't need to have a wrapping shell script | ||
There's an env variable you can use to have ccache use a certain umask | 08:13 | ||
nothingmuch | ah | ||
that's cool | |||
Juerd | osfameron: But I don't think that's what it does. | ||
osfameron | Juerd: in that case, I'm scared | ||
nothingmuch | anyway, back to work | ||
Khisanth | osfameron: didn't try ctrl+d? :) | ||
Juerd | osfameron: .?, .* and .+ really have to do with 0-or-1, any-amount and 1-or-more. | ||
Aankhen`` | Is Pugs.Parser taking an abnormally long time to compile for anyone else? | 08:14 | |
Juerd | Likewise, .., ^.., ..^, ^..^ | ||
I think .. is more than enough to have. | |||
osfameron | Khisanth: heh, nor Ctrl-z | ||
Juerd: but how can you have any number of methods with the same name | |||
unless they have different type signatures | |||
Juerd | osfameron: multimethods, inheritance, roles | 08:15 | |
osfameron | in which case, presumably only one of those signatures would match the argument list anyway? | ||
Juerd | osfameron: I don't know the exact semantics. I, for one, am too intimidated by the sheer size of S12 and the numerous complexities in it. | ||
Aankhen`` | `nmake` has been running for about 45 minutes now, out of which atleast 15 have been spent on Pugs.Parser alone. | ||
metaperl | S12 is the kind of thing that you look at and realize how much S12 is strongfrom S12: | 08:16 | |
from S12 | |||
.doit.() # okay, no arguments, same as .doit() | |||
why is the second "." ok? | |||
Juerd | metaperl: .(), .<>, .[], .{} can all be written without their dots. | ||
Aankhen`` | IIRC, any sub/method can be called by appending either () or .()... | 08:17 | |
Like he said. :-P | |||
Juerd | metaperl: But syntactically, they're all subscripting, including the sub calling (). | ||
Don't see the . in these as dereferencing | |||
Dereferencing is done, if needed, but not by the dot. | |||
metaperl | I am very grateful to have been in #perl6 and talking with you guys. It has renewed my interest in getting away from Perl and into Haskell... perl6 is going to be huge mess | 08:18 | |
Juerd | (It's okay to explain to perl 5 people that it is, to make things simpler for them) | ||
metaperl | and very poorly received | ||
Juerd | Hi, rgs | 08:31 | |
rgs | hi Juerd | ||
08:43
nnunley_ is now known as nnunley
|
|||
wolverian | metaperl: it's very logical and unmessy that .() is a method. | 08:43 | |
svnbot6 | r3903, rgs++ | * More accurate display of the "Thread support disabled" configuration message | ||
r3903, rgs++ | * indent nits | |||
ihb | without giving this a second thought: perhaps "logicity" (word?) in a language can make it seem messy? before you see the logic it doesn't seem like sane construction, just (perhaps poor) arbitrary rules. people are perhaps used to non-to-logical rules but that makes instant (shallow) sense? | 08:54 | |
wolverian | that is a deep thought. :) | 08:57 | |
scook0 | so if the logic isn't immediately intuitive, people will think it's messy/illogical, because they don't understand the logic behind it | 08:58 | |
wolverian | fortunately people don't _have_ to mess with these OO properties to write perl6 code. | ||
_that_ is why java and such are so horrible. | |||
alright quite likes java | 09:06 | ||
09:06
alright is now known as Ummbop
|
|||
f0rth is poor java user | 09:07 | ||
09:14
Ummbop is now known as umnop,
umnop is now known as umbop
|
|||
ihb | broquaint++ for Switch::Perlish | 09:16 | |
rgs | anyone got pugs working compiled against a shared perl 5 (with libperl.so) ? | 09:19 | |
broquaint_ | Thanks, ihb, I hope it's useful and not too buggy :) | 09:20 | |
09:22
broquaint_ is now known as broquaint
|
|||
Gruber | rgs, yes | 09:23 | |
rgs | any special trick ? my ./pugs says "error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory" | 09:24 | |
apparently pugs doesn't take ccdlflags from perl 5's config | 09:27 | ||
Gruber | rgs, what os, and what does ldd say? | ||
and what perl5? :-) | |||
rgs | $ perl -V:ccdlflags | ||
ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.7/i386-linux/CORE'; | |||
on linux | |||
ld doesn't say anything, a pugs executable is produced, except that its rpath doesn't contain the above mentioned directory | 09:29 | ||
Gruber | ldd | ||
ldd pugs | |||
rgs | wait a minute... | ||
$ ldd pugs|grep perl | 09:30 | ||
libperl.so => not found | |||
Gruber | hmm, interesting; rgs, just in case, have you tried to make realclean before build with perl5 embed? | ||
rgs | yes. and also from the cpan tarball (just in case :) | ||
broquaint | Make sure libperl.so is in your library path too. | 09:33 | |
Gruber | broquaint: no, that should not be necessary | ||
rgs | broquaint: obviously this will work but I'd rather not doing it | ||
Gruber | -rpath is supposed to take care of that | ||
rgs | and it seems to be ignored | 09:34 | |
Gruber | rgs: uh well, "it just works" here (FreeBSD) | ||
broquaint eyes -rpath suspiciously | 09:35 | ||
rgs | well, -Wl,-rpath isn't passed on the ghc command line | 09:36 | |
rgs tries to patch the Makefile.PL | 09:39 | ||
Juerd | Heh | 09:46 | |
My driving instructor called me to ask how things were going | |||
I've had my license for 6 months now | |||
"Do you have a car yet?" "Yea - my 2nd even." | |||
That was funny :) | |||
rgs | woot | 09:53 | |
Gruber: by adding -optl $Config{ccdlflags} on the ghc command line it works | 09:54 | ||
Gruber: I'll commit and see if everything else breaks :p | 09:55 | ||
Gruber | whee | 09:59 | |
svnbot6 | r3904, scook0++ | * Haddocks for Internals.hs | ||
r3904, scook0++ | * Renamed 'enterLoop' to 'enterWhile' | |||
r3905, rgs++ | * Fix linking with embedding perl 5 against shared libperl.so (at least on | |||
r3905, rgs++ | Linux) by adding -optl $Config{ccdlflags} to the ghc command-line | |||
Juerd | Because svnbot6 lags, by the time the messages arrive on irc, feather's automatically built pugs already has the changes compiled in :) | 10:06 | |
autrijus | rgs++ | 10:38 | |
svnbot6 | r3906, autrijus++ | * starting single-invocant feature branch. | ||
r3906, autrijus++ | (maybe laso do multi-level MMD param here?) | |||
r3907, autrijus++ | * Correct parsing for invocants; there can at most be one invocant. | |||
r3908, autrijus++ | * repair $obj.isa("Type") | |||
autrijus finally implemented half of Damian's blasted new revelation | |||
rgs | hey autrijus | 10:39 | |
autrijus | yo rgs | ||
hm, does that mean parrot-config can use a similar fix? | 10:40 | ||
in Makefile.PL | |||
rgs | probably | 10:42 | |
no parrot here to test | 10:43 | ||
Gruber | rgs, I am happy to report that your fix did not break FreeBSD compilation of pugs :-) | 10:47 | |
Juerd | rgs: You can request access to feather if you want a parrot to test with :) | ||
rgs | Juerd: I have this project to make an rpm of parrot, too | 10:48 | |
Juerd | For which of the many RPM-based systems? | 10:49 | |
Or statically compiled? | |||
rgs | for only one rpm-based system : the one my employer makes :) | 10:51 | |
Juerd | Who is your employer? | 10:52 | |
rgs | mandriva | 10:53 | |
Juerd | Rings no bell TBH | ||
rgs | formerly known as mandrakesoft | ||
and conectiva | |||
Juerd | Those do ring bells | 10:54 | |
ls -l | 11:10 | ||
autrijus | Juerd: hey | ||
Juerd | argh :) | ||
Wrong /names again | |||
Hey | |||
autrijus | $foo.blah() | ||
$foo is inv | |||
blah($foo) | |||
is $foo inv? | |||
(inv = invocant) | |||
Juerd | If there is no &bar in scope, yes. | ||
autrijus | &blah you mean? | ||
Juerd | Yes. | ||
autrijus | but that's a runtime check | 11:11 | |
Juerd | Indeed | ||
autrijus | because you may eval blah into existence | ||
right before blah() | |||
so it's safest to put it as a arg | |||
Juerd | I don't think you may. | ||
autrijus | and promote to inv? | ||
hm? | |||
eval '&*blah = sub { ... }'; | |||
blah($foo); | |||
Juerd | Oh, that's allowed? | ||
autrijus | I don't know, I'm asking you :) | 11:12 | |
Juerd | I thought that when undeclared, you had to use symrefs to get to it | ||
autrijus | but if blah is not in scope | ||
blah($foo, $bar) | |||
will not promote any of $foo or $bar as invs | |||
because there can be atmost one inv | |||
so that's wildly inconsistent | |||
Juerd | Do note that I don't understand why invocants would be much different from normal arguments | ||
And how multiple invocants can work | 11:13 | ||
autrijus | neither I. | ||
there's no multiple invocants in the caller side | |||
Juerd | And why on earth this flexibility in syntax exists. | ||
autrijus | thanks. :-/ | ||
Juerd | Well, I know why it exists, but I don't agree that that is a good reason. | ||
autrijus | ok. so this is what I'll do | 11:15 | |
$foo.bar; # $foo is invocant | |||
bar($foo); # $foo is always argument; but on runtime, if bar is not in scope, $foo is promoted to inv. | |||
because that's the only sane way I see it working. | |||
all other ways require much earlier binding than perl is accustomed to do | 11:16 | ||
(unless we are now suddenly an early binding language) | |||
yay, all syntax level invocation fixed for perl5 method calls | 11:29 | ||
bbl & | 11:31 | ||
Aankhen`` | How should a module like CGI, which supports both function style and OO style, be translated into Perl 6? | 11:33 | |
svnbot6 | r3909, autrijus++ | * `bar($foo)` is now never parsed as `$foo.bar()`; it's only | ||
r3909, autrijus++ | promoted to invocant during runtime. So this now works: | |||
r3909, autrijus++ | use Digest--perl5; | |||
r3909, autrijus++ | say Digest.SHA1.add("Pugs!").hexdigest; | |||
nothingmuch | oh crap | 11:34 | |
that's wonderful | |||
if only my laptop could keep up with pugs | |||
the problem is that by the time it finishes compiling a new major feature is already in | 11:35 | ||
Aankhen`` | Heh, same with m. | ||
s/m\.$/me/ | |||
I decided that I'll just compile once a day (in the morning). | |||
nothingmuch | maybe i ought to take binaries out of eris | ||
the problem is that my computer is very weak | 11:36 | ||
400mhz | |||
Aankhen`` | Hrm, mine isn't quite that bad. | ||
nothingmuch | it's a portal basically | ||
it has 1gb of ram | |||
Aankhen`` | module CGI { class CGI { ... } } -- does that create the class CGI or CGI::CGI? | ||
nothingmuch | and a pretty good uptime, despite having been dropped on the floor on several occasions | ||
so i get to have my 50 browser windows, and 10 terminals, and 30 VIs | 11:37 | ||
gvims, actually | |||
Aankhen`` | Perhaps it would be better if I asked: does that create the class ::CGI or CGI::CGI? | ||
nothingmuch | but if i try to actually compute anything, i better have something else to do | ||
IIRC it creates CGI::CGI | |||
autrijus | nothingmuch: you can use feather :) | ||
Aankhen`` | OK. | ||
nothingmuch | autrijus: i have eris at home, and feather | ||
autrijus | pugs -MDigest--perl5 -e 'say Digest.MD5.add("Pugs!").hexdigest' | ||
f08bcb32d6eea3d3c9ec2f924ce33067 | |||
nothingmuch | and i have safta here, which is a real work horse | ||
i also have aix, hpux, sunos, tru64 and windows work horses | 11:38 | ||
Aankhen`` | So then how should it be translated if it needs to support both the OO interface and the functional interface | ||
? | |||
autrijus | bbiab. :) | ||
nothingmuch | very fat hw (8gb ram mostly, etc) | ||
svnbot6 | r3910, autrijus++ | * `pugs -MFoo` should mean `use Foo` not `require Foo`. | ||
Aankhen`` | Or should one of those interfaces just be scrapped | ||
? | |||
nothingmuch | but it's lots of overhead | ||
i do pugs nonesense mostly on eris | |||
s/here/at work/ | |||
pjcj | Aankhen``: You're porting CGI? | 11:52 | |
Please take the opportunity to clean up the interface. | 11:53 | ||
nothingmuch | yeah, like not making it do HTML | 11:54 | |
pjcj | Maybe creating a number of specialist modules which can interact well together | ||
nothingmuch | pjcj++ | ||
reuse of HTTP::Headers, etc is a nice example | |||
in existing p5 lib i love the consistency | |||
Juerd | 13:58 < pjcj> Aankhen``: You're porting CGI? | ||
13:59 < pjcj> Please take the opportunity to clean up the interface. | |||
nothingmuch | that LWP uses the same header library as Mail::Box and Catalyst | ||
Juerd | Please take the opportunity to re-use ABSOLUTELY NOTHING from the p5 CGI.pm | 11:55 | |
And don't call it CGI.pm | |||
nothingmuch | CGI::Query makes sense | ||
to encapsulate the request data | |||
Juerd | For query parsing, yes | ||
But that too is NOT CGI specific. | |||
It has to do with HTTP | |||
nothingmuch | makes sense | ||
CGI::Response should maybe be an HTTP::Response that knows where it came from | |||
HTTP::Query is nicer, but it's got two meanings | |||
Juerd | (partly URI, but POST isn't in the uri, so the URI:: namespace isn't good) | 11:56 | |
nothingmuch | the request you send, and the one you receive | ||
are they symmetrical? | |||
i think they are... | |||
Juerd | nothingmuch: This way of sending things has a name. Look it up and let it inspire :) | ||
nothingmuch | HTTP::Request isa HTTP::Query | ||
Juerd: eh? | |||
damnit! 1540-5215 (I) No licenses available. Contact your program supplier to add additional users. Compilation will proceed shortly. | |||
i hate AIX | |||
Juerd | I personally don't see a special need for a Query class if that can just be in Request/Response | ||
nothingmuch | is a request the same thing on both sides of the socket though? | 11:57 | |
does that make sense API wise? | |||
btw, i think a CGI.pm is useful for tying this object cluster together | 11:58 | ||
my $q = query; | |||
builds an HTTP::Request from $ENV{QUERY_STRING}, STDIN, etc | |||
do you think that's a bad thing? | |||
Juerd | nothingmuch: A request is the same thing on both sides. | 12:09 | |
nothingmuch | well, ok, | ||
Juerd | nothingmuch: It may have an extra header added, or be munged a bit | ||
But its structure is equal | |||
nothingmuch | true that | ||
okay, that's neat | 12:10 | ||
work calls | |||
pjcj | My big concern with porting Perl5 modules is that we don't miss the opportunity to learn from our mistakes. Or the opportunity to enhance interfaces based on new Perl6 features. | 12:11 | |
Juerd | And re CGI.pm, no, any common technology should not have its top level thing | ||
DBI is the name of the module, not an existing protocol | |||
CGI is a protocol. It has no good reason to be toplevel. | 12:12 | ||
Just like HTTP.pm would be bad. | |||
Yes, HTTP::something is okay. | |||
pjcj: I share that concern | |||
wolverian | me too. | 12:13 | |
Juerd | pjcj: And I'm very, very much for prefixing Perl5 to existing modules, loaded via embedded perl 6, via ponie, or even when ported | ||
osfameron | when ported? | ||
Juerd | Loading CGI--perl5 as CGI:: is wrong... | ||
osfameron: Yes - to indicate it's temporary, a direct port, without any thought put in a redesign. | |||
Which may be necessary for all old crufty modules. | 12:14 | ||
Like DBI, like CGI | |||
osfameron | surely it should still be CGI--(porter's name) ? | ||
Juerd | It shouldn't look like it's final if it's not. | 12:15 | |
osfameron | to distinguish it from running a version in embedded p5/ponie? | ||
Juerd | I'm talking about the namespace | ||
Not the long name of the module. | |||
Aankhen`` | I don't mind changing the interface -- I agree that it could be cleaned up a lot -- but I'm wary of breaking backward compatibility... if we can use P5 modules directly, though, that wouldn't matter, right? | ||
Juerd | When porting a project from perl 5 to 6, there will be a stage in which you need both the old and the new module | ||
And if the porter of the module was smart, he probably didn't use the exact same interface. | |||
So the two modules MUST have different namespaces. | 12:16 | ||
wolverian | I agree with you, Juerd. | ||
Juerd would even not mind having a wholly different namespace separator | 12:19 | ||
:: sucks anyway :) | |||
osfameron | . ! | 12:20 | |
Juerd | osfameron: Certainly possible, but probably very confusing | ||
wolverian | Foo.Method.new; # ouch | ||
osfameron | yeah yeah, not serious (but how it is in Java) | ||
wolverian | yes, it does look clean, but that's only the surface. | 12:21 | |
Aankhen`` | Speaking of namespaces, I think grammars ought to have a seperate namespace from packages/modules/classes. | ||
But that's just me. :-P | 12:22 | ||
Juerd | I'd like dropping ^ for one(), and like, visually, stuff like WWW^Mechanize | ||
wolverian | ewhg. | ||
osfameron | I'm not sure I like grammar's being split from modules | ||
'cos isn't that the "secret regexist attitude" that we're supposed to be moving away from. | |||
Juerd | Aankhen``: rule foo { ... } sub bar { $^foo =~ /<foo>/ } bar(...) | 12:23 | |
Aankhen`` | Well... if you have `module XML { grammar XML { ... } }`, how do you access the grammar? | ||
Juerd | Aankhen``: It's rather convenient that they do share namespace. | ||
Aankhen``: Well, a "grammar" has rules, a "class" or "role" has methods, a "package" has subs, but that's all just theory. In practice, a "namespace" has rules, methods and subs. | 12:24 | ||
wolverian | I'm not sure I like a module called XML | ||
Juerd | I don't like a module called XML, for the reason I described a few minutes ago. | 12:25 | |
Aankhen`` | wolverian >> I picked that as one example. | ||
wolverian | Aankhen``: sure, but I think it generalises. | ||
Juerd | Unless you're *creating* the technology, don't make the technology's name the only part of the module name. | ||
wolverian | whenever you have a grammar for a protocol/format, the class/module is _not_ called the same | ||
Aankhen`` | OK. | ||
[17:26:19] <nothingmuch> HTTP::Request isa HTTP::Query # shouldn't that be the other way around? | 12:27 | ||
Juerd | Neither, I think. | ||
nothingmuch | i have no clue | ||
wolverian | what is a http query? | ||
Aankhen`` | Perhaps I didn't understand HTTP::Query in that case. | ||
nothingmuch | Juerd: knows much more | ||
Juerd | $request->query should return the query string | 12:28 | |
or better: a query object, that stringifies as the original query string | |||
Aankhen`` | Maybe the part of CGI.pm that deals with generating HTML ought to be in HTML::Writer instead. | ||
Juerd | $request->post should return a filehandle/query object hybrid | ||
And never should POST data be parsed automatically. | |||
wolverian | CGI.PM WILL NOT GENERATE HTML | 12:29 | |
Juerd | (Never ever.) | ||
wolverian | EVER AGAIN | ||
Aankhen`` | wolverian >> Indeed. | ||
Juerd | wolverian++ | ||
Aankhen`` | I'm just suggesting a name for the replacement. | ||
(for that portion of P5's CGI.pm) | |||
wolverian | Juerd: what is the 'query string'? | ||
Juerd | wolverian: Whatever comes after the question mark | ||
Aankhen`` | index.cgi?foo=bar&baz=quux | ||
In that, the query string would be: foo=bar&baz=quux | 12:30 | ||
Juerd | foo=bar&baz=quux in Aankhen``'s example | ||
$request should play hash, for easy access to variables | |||
And this shortcut can perhaps combine get with post, if in the creation of the object, that was requested. | |||
Aankhen`` | Juerd >> Have you looked at the port so far? | 12:31 | |
Juerd | That is: $request<foo> is short for $request.param('foo'), which does either $request.query<foo> (which does $request.query.param('foo')) or $request.post<foo> // $request.query<foo> | 12:32 | |
And perhaps query should be called get, for symmetry and huffman-happiness | |||
Aankhen``: Not at all. | |||
Aankhen`` | OK. | ||
If it is to be split up into seperate modules, perhaps that is a good thing. :-) | |||
Juerd | What exactly do you mean, "perhaps". | 12:33 | |
Aankhen`` | Because so far it's a straight port -- whoever's worked on it has tried to emulate P5's CGI.pm as closely as possible. | ||
Juerd | Straight port be bad, especially in the case of CGI.pm | ||
wolverian | KILL IT WITH FIRE | 12:34 | |
Juerd | autrijus: Is there a way yet to have an object be used as a hash, the hash being tied? | ||
Aankhen`` | Hmm, how about if ::CGI was a class which used delegation to glue together all the modules that CGI--perl5 is split into? | ||
Juerd | Aankhen``: No, the interface must be different. | ||
wolverian | Aankhen``: no. if you want that, just use the perl5 CGI.pm | ||
Juerd | Aankhen``: CGI.pm is wrong on too many levels. | ||
wolverian | Aankhen``: perl6 will never have that kind of cruft in the core. never. | 12:35 | |
Aankhen`` | Alright. | ||
Juerd | Aankhen``: The name, the interface, the bloat, the programming, the documentation | ||
Aankhen`` | That's perfectly fine by me. | ||
Juerd | None of these must find its way into a Perl 6 equivalent | 12:36 | |
Aankhen`` salutes. "SIR YES SIR!" | |||
Juerd | Except perhaps a backwards compatible port, which should be named Perl5::CGI, not CGI. | ||
Aankhen`` | I was wondering whether a backwards compatible port is required -- if backwards compatibility is necessary, can't people just `use CGI--perl5;` and be done with it? | 12:37 | |
wolverian | I don't like the author being called perl5. that's not the author. | ||
I'd rather use Perl5::CGI | |||
or else add a language field to the long name | |||
osfameron | use Perl5 qw/CGI/; ? ;-> | ||
Aankhen`` | Well, whatever way is chosen to refer to Perl 5 modules when importing them... | ||
I like the idea of an adverbial modifier, personally. | 12:38 | ||
Though that's somewhat mitigated by the fact that `use:perl5` looks a little ugly to me. | |||
Juerd | I think Perl5 must be part of the *namespace*, not just the long name. | 12:39 | |
It must be visible in every call | |||
And if someone doesn't want that, they can alias manually | |||
::CGI ::= ::Perl::CGI | |||
s/Perl/Perl5/ | |||
osfameron | yes, which is why somehthing like a "use Perl5" module would be cool | ||
Juerd | osfameron: Why? | ||
osfameron | 'cos it could automatically do that aliasing for you. | ||
Juerd | It could, but it shouldn't. | 12:40 | |
svnbot6 | r3911, autrijus++ | * castFail from SV no longer segfaults. | ||
r3911, autrijus++ | * all save one from method.t passes. | |||
Juerd | The Perl 5 stuff must be kept separate | ||
And if someone chooses to intergrate it, that must be an explicit choice. This must not be made too easy. | |||
Aankhen`` goes to peruse the CGI.pm documentation and plan the modules. | 12:42 | ||
(let me say here that if anyone feels (s)he would be better able to do it, (s)he should feel welcome to) | 12:43 | ||
Juerd >> May I PM you? | 12:47 | ||
Juerd | Aankhen``: Yes, always. | 12:49 | |
nothingmuch | the memory could not be "read" | 12:50 | |
got to love those windows errors | |||
otherwise you get frustrated | 12:51 | ||
*sigh* | |||
at least it's not as bad as "i could not load the page, the error could be one of these: dns is broken, you don't have ssl, the server is down, it's tuesday", without it being mentioned that the return code was 5xx | |||
autrijus | Juerd: aha, Tieable. if you can write a test, I can write an implementation. | ||
Juerd: you know how it works :) | |||
clkao | morning autrijus | 12:52 | |
Juerd | autrijus: I have no idea what the syntax would be | ||
clkao | i was so sad not being able to do much aboujt bin/svk this morning | 12:53 | |
autrijus | clkao: ...actually most of your pieces are in. | 12:55 | |
I was dealing with damian's blasted change of syntax. | |||
dinner, bbiab | 12:56 | ||
clkao: all Val<->SV now roundtrips | 12:57 | ||
clkao | not hash? | ||
mmm.. i don't see the code doing actualy invocation from p5, what's the magic? | |||
mmm | 13:04 | ||
src/perl5/perl5.o(.text+0xc): In function `xs_init': | |||
: undefined reference to `boot_DynaLoader' | |||
autrijus | clkao: you don't have Dynaloader.a linked in? | 13:09 | |
also rgs tweaked something -- not sure if it's relevant -- also make sure your pugs_config.h is gone | |||
I'm working on the last test of method.t | 13:10 | ||
rgs | clkao: I had that this morning, but make distclean made it work again | ||
autrijus | rgs: hey, say I want to make all the blessed p6 val thing in p5 land dispatch back for all operations | 13:11 | |
nothingmuch | autrijus: the perl 5 support is amazingly goof for advocacy | ||
autrijus++ | |||
i made 3 people say 'wow! cool' today | |||
autrijus | rgs: will it be simpler to put a global dispatch-back to %OVERLOAD -- sort of like a AUTOLOAD where you pass in the op, args back to p6 land | ||
rgs: or will it be better to not rely on overload and set up the neccessary mg by hand? | 13:12 | ||
I'm not sure from looking at mg_type on how the various mg interact w/ each other | |||
and %OVERLOAD looks one level more abstracted | |||
rgs | magics are executed in chain... but %OVERLOAD isn't by cup of tea | ||
autrijus | actually, s/(?=rgs:)/clkao:/ too | 13:13 | |
rgs | s/by/my/ | ||
misc ! | |||
autrijus | the chain is like an apache handler chain? | ||
where each MGVTBL may do something then pass on to next MG? | |||
clkao | owrks now | ||
rgs | sort of | 13:14 | |
autrijus: what do you want to dispatch exactly ? overload won't handle method calls | |||
autrijus | so, a concrete example | ||
say I want to overload &{} | |||
clkao | Not a CODE reference at (eval 2) line 21. | ||
autrijus | clkao: I'm asking that :) | 13:15 | |
clkao | right, so i wasn't blind | ||
autrijus | I don't see a MG that deals with that | ||
clkao | so. | ||
autrijus | clkao: what's preserved is stableptr; the casts from both sides aren't there yet | ||
clkao | you need to bless things into specialnamespace in p5 land. have to namespace with autolaod in the p5 init code | ||
autrijus | I'm trying to avoid %OVERLOAD->{&{}} | ||
clkao | anyway | ||
autrijus | clkao: sure they are already blessed as pugs | 13:16 | |
"pugs" SvRVs | |||
clkao | give me the call_later implemented | ||
*nod* | |||
autrijus | give me the prototype of call_later again? | ||
THUNK call_later(SV *fun, SV* inv, SV** args); | 13:17 | ||
like that? | |||
and assume all the SV* there are SvRV to pugs? | |||
SV* force_call(THUNK *thunk); | |||
like that? | |||
clkao | don't need to be sv (perl5 specific) | 13:18 | |
just make something into c and callback to pugs. | |||
autrijus | ok, then I'll use PugsVal* | 13:19 | |
and PugsExp* | |||
good enough for you? | |||
I think use PugsVal* first | |||
autrijus has this feeling that we're doing pugsembed api | |||
autrijus discovers tryAMAGICunDEREF | 13:20 | ||
rgs: hm, seems that in $foo->() position | |||
the only working magic is A | |||
aka PERL_MAGIC_overload | |||
sad | |||
nothingmuch: thank you! 3 real people or 3 online people? | 13:21 | ||
rgs | $foo being ? | ||
clkao | autrijus: oh, i got 3 real people yesterday. or 4 | ||
autrijus | rgs: $foo being a SV that represents PugsVal* | ||
nothingmuch | 1 person I know IRL but talked to online | ||
autrijus | rgs: currently using SvIV(SvRV) | ||
rgs | ok | ||
nothingmuch | 1 person wwho i ahve not met but is pretty real (he mailed me chocl0olate once) | ||
autrijus | but that is implementation detail | ||
rgs | SvIV(SvRV) ? that's evil | ||
autrijus | rgs: I need to stuff a void* | 13:22 | |
better suggestions welcome | |||
nothingmuch | and the other - well, I told him, but he didn't say "wow cool" yet, because he's asleep | ||
autrijus | rgs: the point being that SV carries the haskell side StablePtr | ||
nothingmuch: ok. still good :) | |||
clkao: you are in a concentration of mad orange ninjas; your real people are mad anyway :) | |||
clkao | bwah | 13:23 | |
rgs agrees with autrijus | |||
autrijus stresses that Perl5 integration is there for Normal People | |||
rgs: so, better ideas to carry a PV around? | |||
rgs | autrijus: well, the Core does that already anyway. | 13:24 | |
autrijus | I'm using | ||
SV * | |||
perl5_newSVptr ( void * ptr ) | |||
{ | |||
SV *sv = newSV(0); | |||
sv_setref_pv(sv, "pugs", ptr); | |||
return(sv); | |||
} | |||
rgs | and you don't plan to embed pugs in ponie, do you ? | ||
nothingmuch | Error: The function "alloca" must have a prototype. | ||
beh! | |||
rgs | or vice-versa (head hurts) | ||
autrijus | rgs: embed ponie in pugs is indeed my goal | ||
rgs: but that will couple with a pir runloop | |||
nothingmuch | why couldn't this error look like what GCC says when it doesn't know what function you want? | ||
autrijus | so won't be like that, so don't worry :) | 13:25 | |
i.e. the ptr will be a PMC already | |||
rgs | autrijus: so you need to tell Nicholas about this PV thing, since it'll be wrapping pmcs | ||
ah ok, well :) | |||
autrijus | so we can restrict ourselves of dealing with a bad C-based runloop that is perl5 vm | ||
bad, as in bad ass, not as in bad quality | |||
clkao: | 13:34 | ||
PugsVal pugs_Eval ( PugsVal sub, PugsVal inv, PugsVal *args ); | |||
PugsVal pugs_Apply ( PugsVal thunk ); | 13:35 | ||
PugsVal pugs_IvToVal ( IV iv ); | |||
PugsVal pugs_NvToVal ( NV iv ); | |||
PugsVal pugs_PvToVal ( char * pv ); | |||
PugsVal pugs_SvToVal ( SV * sv ); | |||
SV * pugs_ValToSv ( PugsVal val ); | |||
PugsVal pugs_MkSvRef ( SV * sv ); | |||
SV * pugs_MkValRef ( PugsVal ptr ); | |||
how's that for a start? | |||
clkao | so that is exported and i can call from c land? | 13:38 | |
autrijus | yeah | ||
that's the idea | |||
makes sense? | |||
the Mk*Ref always creates ref (boxes) | 13:39 | ||
the SvToVal and ValToSv form unboxes when it can | |||
clkao | sur and the blessed scalar is the one i can use for pugs bacl right? | ||
autrijus | otherwise boxes | ||
clkao | pugs val | ||
autrijus | you can obtain a PugsVal using pugs_SvToVal on that blessed scalar. | ||
or you can manufacture one using pugs_MkSvRef | |||
or any of the ToVal calls | 13:40 | ||
but in general, _any_ SV can be made into Val using pugs_SvToVal | |||
it promotes when it's bare SV | |||
demotes when it's a ValRef | |||
clkao | ok, i think that should work. | ||
don't accidentally take my fun! | |||
autrijus | heh. | ||
clkao | just implement the above and no more please XD | ||
autrijus | XD | ||
you are mean | 13:41 | ||
clkao | no, you are mean! | ||
autrijus | alright. we are all the arithmetic mean of insanity | ||
clkao | autrijus: ping me when you get that committed | 13:45 | |
autrijus | k. | ||
it's not exactly trivial ;) | |||
nothingmuch | 3 minutes instead of 1? | 13:46 | |
autrijus | heh | ||
nothingmuch | woww... what fun! | 13:48 | |
const char **descrArr = static_cast<const char **>(alloca(sizeof(const char *) * allDescriptionsNumber)); | 13:49 | ||
autrijus | clkao: pugsembed.h is in. start coding! | 13:50 | |
svnbot6 | r3912, autrijus++ | * pugsembed API, draft #1 | ||
nothingmuch | 5 minutes, 3 minutes, what's the diff | ||
hah, i knew it | 13:51 | ||
clkao | autrijus: damnit! i'm still working! | 13:57 | |
but just .h. bah | |||
autrijus | clkao: I'm thinking about how to carry execution context. | 14:11 | |
clkao: I mean, if you do | |||
pugs_Eval("$x"); | |||
obviously it needs to resume the lexical context | |||
pugs_Eval("return 1"); | |||
will need to resume the control context | |||
integral | my $ctx = Pugs::Context->new; $ctx->eval("return 1"); | 14:12 | |
autrijus | both are, amazingly, trivial | ||
but the other way is _hard_ | |||
perl5_eval('$x') | |||
perl5_eval('return 1') | |||
I don't think perl5 can reify them | |||
or do I just store SP? | |||
nah. have to undump | |||
autrijus blames C | |||
Limbic_Region is playing hookie from work today | 14:13 | ||
integral | autrijus: doesn't Coro manages to reify the stack? | ||
autrijus | integral: ah. right. | ||
but I don't want to duplicate Coro code | |||
so maybe we just depend on Coro. | |||
that would actually rock. | |||
each language can see each other's lexical scope transparently | 14:14 | ||
and yield control to each | |||
integral | autrijus++ | ||
autrijus | so it looks like a single runloop | ||
whilst it's actually reified ContT serving as context annotators thru IO calls | |||
autrijus thinks monadic typing is an excellent way to actually grok interepreter/compiler theory | 14:15 | ||
Limbic_Region | is current build b0rk on Win32? | ||
autrijus | Limbic_Region: I don't know, what's the error? | ||
Limbic_Region | perlbot nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "Limbic_Region" at 24.35.57.240 pasted "Error Building Pugs on Win32" (20 lines, 1.3K) at sial.org/pbot/10429 | 14:16 | |
Limbic_Region | VoIP++ btw | 14:18 | |
autrijus | Limbic_Region: try building without embperl. | 14:19 | |
Limbic_Region | was in the process of doing that now | 14:20 | |
;-) | |||
so far so good | 14:22 | ||
osfameron | gah, I still get makefile errors on Win32... | ||
nothingmuch | autrijus: what's the situation with the O(1) serializable continuations and pugs? | 14:23 | |
autrijus | nothingmuch: I've got the design done; oleg provided the code; just need to get it into place | ||
nothingmuch: basically the Eval context will become a Zipper with (initially) one cursor | 14:24 | ||
over the Exp structure | |||
Limbic_Region | autrijus - I am going to go out on a limb and say that not enabling p5 embedding is gonna make it work | ||
autrijus | instead of the current way of embedding ContT as functions | ||
Limbic_Region: nod. | |||
nothingmuch | autrijus: 3rd person just said "does pugs have continuations" instead of "wow! cool" | 14:25 | |
and I said "yes, see t/unspecced/cont.t" | |||
so he said "are they serializable?" | |||
i said "autrijus was working on it" | |||
autrijus | you can reply that it's already reified | ||
(in memory) | |||
dumping that reification to disk is in the works. I'm pretty sure it can work. | |||
nothingmuch | so then i quoted chat | 14:26 | |
and i said "so come join the fun" | |||
and now he said "breakfast first" | |||
autrijus | heh | ||
nothingmuch | C++ is driving me insane! | ||
maybe once I lose it I can start grokking haskell | |||
autrijus | you can program solely in the functional subset of C++ ;) | 14:27 | |
I know of people who do that. | |||
nothingmuch | no i can't, because I'm doing maintenance work | ||
autrijus | (that subset is known as templates) | ||
ah. sad | |||
nothingmuch | our project forked off into a new version | ||
people have been doing code cleanup & review for 2-3 months now | 14:28 | ||
compiling it with VC++ | |||
so today someone tells me "i need a linux build" | |||
i finished making linux compile after 4-5 hours | |||
then did solaris | |||
q[merlyn] | cool. after rebuilding ghc to not need a local dlopen, I'm now in "make test" of Perl6::Pugs! | ||
nothingmuch | now working on aix and hpux | ||
q[merlyn] | it took about 4 hours to rebuild ghc. :) | ||
nothingmuch | q[merlyn]: you can use dlcompat on OSX | 14:29 | |
which IIRC you are using | |||
q[merlyn] | the problem was too many of those | ||
I had one in /usr/lib and one in /opt/local/lib | |||
so I got problems duing link | |||
rebuilding ghc got rid of that. | |||
nothingmuch | hah | ||
darwinports + makeshift? | |||
q[merlyn] | just darwinports | 14:30 | |
ghc built a few monhts ago | |||
nothingmuch | oh, so yyou're on tiger | 14:31 | |
and /opt/local/lib is leftover darwinports dlcompat? | |||
q[merlyn] | it was | ||
until I removed it | |||
but that required rebuilding ghc | |||
autrijus | q[merlyn]: cool! and since you're on osx, you can actually enjoy embperl | 14:32 | |
(as well as embparrot) | |||
crysflame | stupid irssi | ||
autrijus | DBI applications would work fine in pugs already... except you can't dereference the result set in perl 6 land yet. working on that | 14:33 | |
<- applying all this to $job soon | |||
kungfuftr | anyone recommend any documentation on using shift_jis characters within vim? (specifically encodings) | 14:34 | |
svnbot6 | r3913, fireartist++ | * more tests for array/hash slices | ||
crysflame | is your vim compiled with multibyte char support? | 14:35 | |
q[merlyn] | so far, all tests seem OK | 14:36 | |
kungfuftr | crysflame: yes | ||
crysflame | that's all i know about shiftjis. | 14:37 | |
q[merlyn] | Hmm. program_that_does_not_exist.exe: command not found | ||
is that a problem? | |||
autrijus | no. | ||
that's intentional | |||
q[merlyn] | any way to not get that to be output during testing? | 14:38 | |
autrijus | we should add _please_ignore_this | ||
crysflame | s/does_not/should_not/ | ||
yeah, and /_really_this_isnt_a_bug/ | |||
autrijus | maybe by closing $*ERR. | ||
want to investigate a bit? :) | |||
q[merlyn] | I'd have to learn Perl6 first. :) | ||
there should be a book on it. Maybe called "Learning Perl". :) | 14:39 | ||
autrijus | :) | ||
q[merlyn] | Teach Yourself Perl6 in [nnn] Days. :) | ||
s/Teach/Write/ | |||
autrijus | the test is t/builtins/system.t | ||
what will you do if this is in perl5? | 14:40 | ||
q[merlyn] | smile? :) | 14:41 | |
autrijus | ok :) | ||
autrijus smiles | |||
q[merlyn] | t/oo/class/nested_use failed 1-9 of 9 | 14:44 | |
is this known? | |||
q[merlyn] hears crickets | 14:45 | ||
autrijus | q[merlyn]: yes... you're using release tarball :) | 14:46 | |
q[merlyn] | correct. | ||
autrijus | so yes, and fixed. | ||
q[merlyn] | I mirror the SVN, but I install only the releases | ||
autrijus | nod. | 14:47 | |
Limbic_Region_ | yep - built fine without embedding p5 | ||
is that a known issue? | |||
autrijus | on win32? yeah | 14:48 | |
don't know why though :-/ | |||
svnbot6 | r3914, iblech++ | svnlog2graph.pl -- Updated scaling, as we're close to r4000. | 14:49 | |
r3915, iblech++ | * Usual svn properties added to ext/Benchmark, and | |||
r3915, iblech++ | ext/Perl-MetaModel/Perl-MetaModel, and t/unspecced/p5/roundtrip.t. | |||
r3915, iblech++ | * Fixed anon_block.t (the usual eval_is with lexival vars thing). | |||
r3916, iblech++ | Makefile.PL -- Minor cosmetical fix (Makefile.PL outputted two instead of one | 14:52 | ||
r3916, iblech++ | blank line between the "*** notes". | |||
r3917, iblech++ | * Unbreak [+]Ā«, [+]<<, and &::("infix:<+>"). | |||
r3917, iblech++ | * Usual svn properties added to src/perl5/. | |||
q[merlyn] | "rules support appears to be missing". | 14:56 | |
autrijus | q[merlyn]: you don't have parrot in path. | 14:57 | |
nor bulit with embparrot | |||
q[merlyn] | ahh yes. I also mirror parrot, but don't install it eeither. :) | 15:02 | |
autrijus | :) | 15:03 | |
you don't need to install it | |||
just symlink it somewhere or add it to PATH | |||
q[merlyn] | well, I'd have to build it, then. :) | 15:04 | |
drbean | I missed the notice about PUGS_EMBED with 6.2.5 | ||
and about PARROT_PATH | 15:05 | ||
autrijus | I need to run a bit. bbiab :) | 15:12 | |
15:18
Limbic_Region_ is now known as Limbic_Region
|
|||
Limbic_Region | (106 subtests UNEXPECTEDLY SUCCEEDED) (816 subtests TODO), 311 subtests skipped. | 15:20 | |
106 subtests is quite impressive to unexpectedly succeed | |||
;-) | |||
autrijus | Limbic_Region: nice. what were they? | 15:21 | |
crysflame | heh | ||
autrijus | oh wait. I bet TODO is broken. | 15:22 | |
;) | |||
clkao: now with stub code too. you have no excuses! :) | |||
really & | 15:23 | ||
svnbot6 | r3918, autrijus++ | * new pugsembed API with code! | 15:24 | |
clkao | autrijus++ | 15:28 | |
crysflame | yay | 15:29 | |
15:47
theorbtw1 is now known as theorbtwo
|
|||
theorbtwo | G'afternoon, nothingmuch. | 15:47 | |
nothingmuch | hullo theorbtwo | 15:55 | |
ingy | hi theorbtwo and nothingmuch | 15:57 | |
theorbtwo | nothingmuch, you were having problems building with p5 embedding too, right? | 15:58 | |
nothingmuch | no, not yet | ||
i can try to have trouble now | 15:59 | ||
theorbtwo chuckles. | |||
No, that's OK. | 16:00 | ||
clkao | autrijus! you didn't hook that as exported pugs function! only stubs! | 16:01 | |
nothingmuch | gaal++; # yet another happy user of the mysql utf8 fix | 16:10 | |
kungfuftr | nothingmuch: url? | 16:18 | |
nothingmuch | kungfuftr: of? | ||
kungfuftr | mysql utf8 fix | 16:19 | |
=0) | |||
nothingmuch | ah | ||
there's an old patch | |||
i'll link you to a tarball of 2.9007 i merged a few weeks ago | |||
nothingmuch.woobling.org/DBD-mysql-...fix.tar.gz | |||
kungfuftr | nothingmuch: lists.mysql.com/perl/3006 ? | 16:20 | |
nothingmuch | yep | 16:21 | |
you can find the patch in that tarball | |||
and the garbage caused by applying it | |||
and the merged files | |||
btw, the patch is very cute | 16:23 | ||
it is recursively self referntial | |||
to one level | |||
kungfuftr | memory leakage? | 16:29 | |
eric256 | perl5 embeding only works if you built your own perl5? | 16:38 | |
rgs | no | ||
using the system one is fine | 16:39 | ||
eric256 | "the system one" ??? i use activestate. is that fine too? | ||
rgs | your system doesn't come with perl ? :) | 16:40 | |
I don't know, then. | |||
vcv- | you should be fine eric | 16:41 | |
eric256 | hmm it worked here... at home it didn't odd... | 16:44 | |
gaal | hi | 16:49 | |
nothingmuch, www.livejournal.com/users/gaal/163162.html - you're invited. | 16:50 | ||
so is everyone else on #perl6, but i think it may be a little too far for 'em :) | 16:51 | ||
nothingmuch | i am not 100% sure I can make it | ||
mom's department is undergoing review | |||
and the car is very busy driving people around between meetings | |||
if it ends before saturday, i'll be glad to come | |||
s/glad/happy/ ? | |||
gaal | yay, glad ta 'ave ya. | 16:52 | |
nothingmuch | " but it's better to arrive by bike if you can.)" | ||
=) | |||
gaal | heh heh heh | ||
nothingmuch | maybe if i leave today | ||
gaal | you'll be in good shape if you do! | ||
eric256 | i have to put :: in front of the module names to get them to work... does that make any sense? | 16:54 | |
pugs -e"use v6;use CGI--perl5; my $c = ::CGI.new; $c.perl.say;" | |||
hmmm or not... i don't know what is happening now. | 16:56 | ||
the example autrijus gave in the journal doesn't work for me though. i get "No compatible subroutine found: "&add"" | 16:57 | ||
gaal | eric, are you sure the module loads successfully? do you have it installed? lasi i checked use doesn't fail if the module load fails. | 16:58 | |
eric256 | in pugs how do i tell what modules are loaded? say @INC; ? | 16:59 | |
gaal | what's a known good version of hs-plugins? i couldn't build the latest (knewt said there's a problem) and i couldn't build pugs with the second-newest one | 17:00 | |
eric256 | hmm not @inc but there must be something | ||
gaal | in p5, it'll be print for keys %INC | ||
eric256 | yea but %INC is undeclared in pugs | 17:01 | |
gaal | hmm, how do you access a p5 global from pugs? | ||
do you have Digest::SHA1 installed? :) | 17:02 | ||
eric256 | i tried with CGI too. which i do have installed. | ||
gaal | are you on feather? | ||
eric256 | nope. it looks like the perl6 include path needs my perl5 include path added to it. which makes sense | 17:14 | |
why doesn't 'use' die on a failure to find the file though? | |||
gaal | beh, the open situation is kinda troubling. on the haskell side, the standard openFile is limited (eg., no +>> mode); but the alternative POSIX version returns an Fd which we'll have to somehow keep track of | 17:52 | |
not to mention win32 pugs doesn't build with POSIX now... | |||
....which i don't really understand! isn't win32 supposed to support most of POSIX? | 17:53 | ||
nothingmuch | is +>> more than just open and seek to end? | ||
yes, fork, and uh, shmget, all that good stuff is there | 17:54 | ||
gaal | you can increase the file size too. | ||
Limbic_Region | gaal - Corion seems to be doing a lot of the Win32 stuff | ||
you want I should ping him? | |||
gaal | i'm working on the p6 interface to this | ||
nothingmuch | gaal: what I mean, if you open append twice | ||
and you write on one | |||
and write on the other | |||
Corion | I am not using msys and thus can't really help gaal. | ||
nothingmuch | and then write on the one again, where does the other write to the one go? | ||
Limbic_Region | oh | 17:55 | |
well then nevermind what I just said in the CB | |||
gaal | Corion, i'm no longer using msys myself. | ||
Corion | gaal: You aren't? Oh - because I infected you with tools free as in beer ! :) | ||
gaal | look at what we're missing. haskell.org/ghc/docs/latest/html/li...nFileFlags | ||
but you know, except that we both are, because that's what our ghc is built with. | |||
Corion | Limbic_Region: If I'm here then I get notified when my name is mentioned. So there is no need to summon me from elsewhere. | ||
gaal: Yes - I'm pondering how to remedy that :) | 17:56 | ||
gaal: You want Perl-style open flags? | |||
I'm not really getting the problem, but that's likely because I don't know the APIs involved :) | |||
gaal | i want perl capabilities first :) | 17:57 | |
the problem? you don't have that library in your ghc. | |||
perl builds with PUGS_HAVE_POSIX undefined | 17:58 | ||
Corion | gaal: Yes, but likely there are equivalent APIs, and/or ways to implement what you want. Likely by looking at what Perl5 does and replicating that in Haskell. | 17:59 | |
gaal | *pugs* builds that way that is :) | ||
Corion | I look at win32/win32.c in such situations | ||
(from the Perl5 source) | |||
nothingmuch goes to buy beer | |||
gaal | Corion, is anyone working on the haskell side of this? I'm just wokring on src/perl6/Prelude.pm, ... and noticed Prim.hs uses openFile, which isn't powerful enough. | 18:00 | |
Corion | gaal: No, at least not yet. If you can tell me what you want, I can go and hunt down the relevant Perl5 code | 18:01 | |
gaal | 1. i'm currently thinking about the p6 language level; working on open and some closely related builtins | 18:02 | |
2. i want support for everything p5 open can do, barring possibly fork; even if i don't end up putting it in p6 open | 18:03 | ||
3. the language side of this being unspecced, i'm experimenting -- and want to focus on that experiment :) i know if i dig into POSIX emulation on Windows in Haskell, i'll never finish this | 18:04 | ||
so i'm not sure the p5 code really helps me | |||
Aankhen`` | I have a question about P6: what is the point of parameterizing roles? | 18:05 | |
Corion | gaal: I thought you wanted the POSIX API calls. Perl5 reimplements these API calls, at least as far as Perl5 itself needs them. So I'd imagine if you want the API calls, they can be ported. | 18:07 | |
But then again, I might just not undestand your goal. | |||
PerlJam | Aankhen``: do you understand why you might parameterize a class? | ||
Corion | ... so if you have a specific function in Haskell POSIX.Whatever.Module , tell me and I will try to find an equivalent. | 18:08 | |
Aankhen`` | Not really, perlbot. | ||
Er, PerlJam. | |||
gaal | Corion, basically most of what's in haskell.org/ghc/docs/latest/html/li...m.Posix.IO . | 18:09 | |
eric256 can't get p5 modules to work...curses! lol | |||
gaal | is perl6 meant to run on patently non-POSIX systems? | ||
Corion | gaal: Hmm. That's quite some chunk. I'll see if I get any of that as low hanging fruit. | ||
eric256 | just me being stupid agian. n, | 18:10 | |
Corion | gaal: If not, then Perl6 will become unusable. | ||
eric256 | nm | ||
Corion | (and unused) | ||
VMS is patently non-POSIX, and Win32 is partially non-POSIX. | |||
gaal | Corion, re that library, let's begin with openFd :) | ||
Corion | But there are lots of other systems people use. I guess that Symbian also is basically non-POSIX. | ||
Ah. Will look at openFd a bit then. | 18:11 | ||
vcv- | linux is not fully POSIX either | ||
eric256 | has anyone had any success with pugs + perl5 ActiveState | ||
vcv- | eric it works fine here | ||
i havent tried linking with parrot yet though | |||
Aankhen`` | PerlJam >> Still there? Or did you give up on me? :-( | ||
gaal | We need to define a minimum level of service we're going to provide then, and we're committed to emulating it on other platforms | ||
Corion | gaal: Just like Perl5 does, eh? | 18:12 | |
eric256 | pasteling help | ||
gaal | opening files is pretty basic. :/ | ||
Corion | I've seen programs open files on Win32. Even Perl5. | ||
PerlJam | Aankhen``: I'm around. Just having a hard time coming up with a simple explanation. | ||
gaal | um. duh | ||
Aankhen`` | OK. | 18:13 | |
gaal | thing is, GHC things windows is not POSIX, and doesn't even try | ||
PerlJam | Aankhen``: I mean I can think of something jargony but that won't help you much :) | ||
Aankhen`` | If there's any reading involved, point me in the right direction and I'll stop bothering you. | ||
PerlJam | Aankhen``: we parameterize roles and classes for the same reason that we parameterize subroutines: to modulate the behaviour based on the paramters | ||
Aankhen``: does that help? ;-) | 18:14 | ||
Aankhen`` | Heh, okay, now I know *why* we can parameterize roles and classes. =) | ||
integral | hmm, why not simply have a function that returns an anonymous role/class ? | ||
PerlJam | Aankhen``: actaully, that's what I was looking for was some good reference material to point you at. | ||
integral | introspection? | ||
Aankhen`` | That sounds simple enough. | ||
Thanks for the explanation. :-) | 18:15 | ||
Hrm. | |||
I think maybe now I understand that portion of A12. | 18:16 | ||
Corion | gaal: Do you have a proper manpage for openFd that lists the values of the parameters? | ||
My guess is that OpenFile() ( msdn.microsoft.com/library/default....enfile.asp ) does what you want, but I don't know as I don't know the other API. | |||
PerlJam | the problem with documents pertaining to parameterized types is that they all use languages like C++ or Java or something where the reasons for parameterization don't really exist in perl :) | ||
Aankhen`` | Heh. | 18:17 | |
PerlJam | I.e. in C++ you can have a List class that's parameterized on the type of things in the List. Perl doesn't need that because arrays can hold any "type" in perl. | ||
integral | hmm, I can only think of type safety reasons | ||
Aankhen`` | OK. | ||
gaal | Corion, I think we have an impedance mismatch.. are you proposing to write C code for GHC, C code for Pugs to load on win32? | ||
Corion | gaal: Neither. | 18:18 | |
gaal | What then? | ||
Aankhen`` | Basically, it's something I don't forsee worrying about any time soon. :-D | ||
Corion | gaal: GHC can load Win32 API functions and include them in Haskell. | ||
PerlJam | Aankhen``: sure ... just know that it's there. | ||
Aankhen`` | Indeed. | ||
Corion | So I would write the necessary Haskell so you get nice Haskell code implementing openFd for Win32. | ||
gaal | Sure, but we'll need a lot of Compat work | 18:19 | |
exactly | |||
Aankhen`` | One of those features that (from here :-) looks like it was included mostly to avoid the whole OO system being called a hack. | ||
PerlJam | Maybe a compiler building an AST would be a good example? You're parameterize the "nodes" of your AST by the "type" of thing in the node | ||
Corion | gaal: If you look at win32.c of Perl5, you can gauge how big Compat.Win32.hs will need to grow. | ||
Hmmm. It could be a nice feature to make all Pugs IO asynchronous :-)))) | 18:20 | ||
Aankhen`` | Hrm... so it sort of eliminates the need to create seperate classes for each and every type of node? | ||
PerlJam | right | ||
erxz_paste | "alexg" at 62.85.112.174 pasted "robot" (108 lines) at erxz.com/pb/738 | ||
Aankhen`` | Cool. | ||
integral | hmm, but isn't that what roles are fo? | ||
gaal | I'm looking right at it, and although 5kloc of c isn't THAT bad, this is touchy code. | ||
PerlJam | But in perl, it's richer than that because you aren't limited to just "types" | ||
Corion | Hmmm. If we do that, we lose support for Win9x, which would be bad :) | ||
Aankhen`` | integral >> Wouldn't you still need to create roles for each type of node? | ||
Corion | gaal: Yes, the code gets less ugly when rewritten in Haskell instead of C. | ||
integral | yes, but you need to create the things you're parameterising on! | 18:21 | |
Corion | And I won't port certain parts like fork() emulation. | ||
Aankhen`` | Ah, right. | ||
Corion | fork() emulation should be done directly in Pugs, via async{} blocks. | 18:22 | |
integral | hmm, I suppose unlike c++ you can have: sub foo($n) { my Foobar[$n] = ... } | ||
Aankhen`` goes back to assuming it's something he doesn't need to keep in his consciousness. | |||
Whatever else, I love @Larry's writing style. =) | 18:23 | ||
Khisanth | will perl6 have to run on all the platforms that perl5 runs on? some of them look pretty dead | 18:25 | |
PerlJam | Khisanth: I don't think it will *have* to. But, the more the merrier. :) | 18:26 | |
Luckily we can run perl6 where ever we can run parrot. | |||
integral | assuming that a parrot configure system materialises... | 18:27 | |
PerlJam | And all the languages that target parrot get the benefit of running anywhere parrot runs. surely python, php, ruby, etc. see the benefit there. | ||
integral: patches welcome! :) | |||
integral feels parrot is unapproachable | 18:28 | ||
vcv- | Corion: losing support for 9x would be good. very good. | ||
eric256 feels haskel is unapproachable. ;) | 18:29 | ||
PerlJam | integral: why do you feel this way? Are you not conversant in C? | 18:31 | |
Aankhen`` | PHP on Parrot == dirty. -_- | ||
integral | I'm conversant in C, but I don't like navigating around the C projects. Everything's so spread out that it's even harder than in Pugs to figure out what everything does | 18:32 | |
x86 | hmm | ||
i wonder if you can run Parrot inside of Parrot | 18:33 | ||
that'd be schweet | |||
Aankhen`` | Hmmm... should the contents of t/builtins/lists/enum.t actually be in t/data_types/enum.t? | 19:01 | |
masak | x86: why would you want to do that, save for the coolness factor? | 19:18 | |
x86 | just the coolness factor ;) | 19:26 | |
i still think it'd be cool to make an entire operating system into parrot bytecode :) | |||
talk about write once, run anywhere... there you go ;) | |||
revdiablo | but you'd still need the VM running somehow | 19:28 | |
ninereasons | Juerd, or any interested: in map() as in for(), so in ... : the default topic $_ should be rw by default, correct? | 19:36 | |
Juerd | ninereasons: The default is "-> $_ is rw" | 19:37 | |
ninereasons | but, e.g. @arr, as a param is not rw by default: sub incr (@arr is rw){ @arr.map:{$_++}} # yes ? | ||
Juerd | ninereasons: Although I'm hoping that this can be spelled as "<-> $_" | ||
ninereasons | but sub incr (@arr){ @arr.map:{$_++}} # no ? | ||
Juerd | So that not right-arrow-with-is-rw is default, but instead simply double-arrow | ||
Odin-LAP | Hmm. | ||
ninereasons | I do like the double arrow. | 19:38 | |
Juerd | Greatly simplifying the language, the explanations, and other uses of non-readonly arguments. | ||
Odin-LAP | It might confuse people... | ||
ninereasons | I can visualize what it means, Odin-LAP | ||
Juerd | Odin-LAP: No, it might not. | ||
Odin-LAP: for @thingies <-> $thingy { ... } | |||
Odin-LAP | ninereasons: I can too. :> | ||
Juerd | What does that tell you, purely visually? | ||
If you know that @ is for arrays and $ is for single values | 19:39 | ||
ninereasons | Juerd, "I write to the RHS to make changes to the LHS" | ||
Juerd | It tells you the same thing that for @thingies -> $thingy { ... } does | ||
Odin-LAP | Juerd: Once I thought it over a bit more, I realised a simple reply to what I'd been thinking of. | ||
Juerd | HOWEVER, if you know both -> and <-> exist, the difference is immediately obvious and does not require ANY explanation | ||
ingy: Indeed. | |||
eh | |||
s/in<tab>/ni<tab>/ | |||
ingy: Sorry, not for you | |||
ninereasons: Indeed. | 19:40 | ||
Odin-LAP | (Which, incidentally, wasn't this. I got the visual distinction quite well. ;) | ||
Juerd | The only reason given for not having <-> is that there might already be too many (that's two) ways to create a sub. | ||
Which I think is utter bollocks | |||
As <-> and -> aren't seen or learned as separate things | |||
Only technically they are | 19:41 | ||
ninereasons | Juerd, still, we're talking about specifying rw, rather than rw by default, right?. what about <ninereasons> but sub incr (@arr){ @arr.map:{$_++}} # no ? | ||
Juerd | ninereasons: With ->, there is no rw by default. -> does communicate unidirection. | 19:42 | |
Even without a <-> counterpart. | |||
ninereasons | ok. | ||
Juerd | And that code snippet fails because $_ is readonly. | ||
wolverian | I thought that $_ is rw if there is no argument list | 19:43 | |
ninereasons | sub incr (@arr)->$_ is rw { @arr.map:{$_++}} # ? | ||
Juerd | ninereasons: That makes no sense | ||
ninereasons | or must it be: sub incr (@arr is rw ){ @arr.map:{$_++}} | ||
Juerd | ninereasons: "-> $foo { bar }" and "sub ($foo) { bar }" are the same thing. | ||
wolverian | ninereasons: sub incr(@arr) { @arr.map(-> $_ is rw { $_++ }) } | 19:44 | |
Juerd | (Except that "return" only returns from an explicit "sub") | ||
ninereasons: You probably have to specify "is rw" on both @arr and $_ | |||
wolverian | $_ is copy | 19:45 | |
Juerd | Note that mapping with mutation should almost always be written very differently. | ||
wolverian | since we're returning the new list | ||
Juerd | With "is copy" it does make sense. | ||
wolverian | (or @arr is copy and the map doesn't need further "is copy" or "is rw", I think) | ||
Juerd | Too bad => is taken | ||
It could communicate "is copy" in two ways :) | 19:46 | ||
= has two lines, the second a copy of the first | |||
And = is the assignment operator, which copies :) | |||
wolverian | .map should copy by default, maybe | ||
ninereasons | wolverian spelled what I meant correctly. | ||
wolverian | and .=map would mutate | ||
then the whole sub doesn't need 'is copy' anywhere | 19:47 | ||
Juerd | wolverian: No way - that's terribly inefficient, and exactly why ruby and python can't compete with perl on speed level. | ||
wolverian | or 'is rw' | ||
Juerd | wolverian: Performance is not the most important thing in the world, and premature optimization is in fact the root of all evil, but this is not premature. | ||
wolverian | Juerd: not if the user can implement the mutating version | ||
(both versions separately) | |||
Juerd | wolverian: When you're creating *generic* functions, always take into account both 1 character variables and 50 MB strings. | 19:48 | |
wolverian: foo.=bar must be read as foo = foo.bar | |||
not foo.bar_with_other_semantics, ever. | |||
wolverian | but it wouldn't | 19:49 | |
Juerd | It would. | ||
wolverian | although of course one would have the ability to do so | ||
Juerd | $_++ returns the OLD value. | ||
wolverian | which I guess is what you're saying | ||
hmm. right. | |||
Juerd | And thus the result of the map is a list of OLD values. | ||
In fact, @original = map { $_++ } @input; | |||
wolverian | yes. | 19:50 | |
Juerd | Which does @original = @input; @input>>++; | ||
So you can't just add weird behaviour to .= | |||
wolverian | maybe we should add an .apply or something like that as a copying .map? | 19:51 | |
Juerd | Why? | ||
All you need is -> $_ is copy | |||
wolverian | true enough. | ||
Juerd | or, simply, surprise: map { my $_ = $OUTER::_; ... } | ||
wolverian | do we have a @arr.copy? :) | ||
Juerd | Or just: map { given $_ -> $_ is rw { ... } } | ||
wolverian: That's spelled [@arr] | 19:52 | ||
wolverian | or @new=@old? | ||
Juerd | Or just @arr when assigning anyway. | ||
wolverian | right. | ||
Juerd | wolverian: @new = @old; $naref = [ @$oaref ] | ||
kungfuftr | moo | 19:53 | |
Juerd | wolverian: The biggest problem with copying by default is that you don't catch the numerous bugs it inspires | ||
Same goes for rw by default | |||
Only ro by default works well | |||
If in a certain program, you really need to copy very often, you just mix in a cmap method, or you write a macro | 19:54 | ||
Also, good old fashioned map { my $copy = $_; $copy++ } isn't going away. | 19:55 | ||
And, the only thing you use this for in practice anyway, s///, is already available in copying fashion: @bar = @foo.map:{ .subst(/foo/, "bar") } | 19:56 | ||
afk | |||
wolverian | @foo>>.subst(...); | ||
SamB | where is the pugs repo at now? | ||
Juerd | re | 19:57 | |
wolverian: That too | |||
SamB: see pugscode.org | |||
Limbic_Region | salutations saorge - is skynet.be a fairly large ISP? | 20:24 | |
clkao | e/win29 | 20:26 | |
Limbic_Region: seen benchmark? | |||
jabbot | clkao: I havn't seen benchmark , clkao | ||
Limbic_Region | clkao - I am about to play with it now | ||
what I really need is a profiler | 20:27 | ||
but as the point of this exercise is more than just making it go fast | |||
clkao | it's quite rough | ||
no, it's not profiler | 20:28 | ||
Limbic_Region | Benchmark.pm will fit the bill | ||
I may have to figure out how to dig into Haskell myself to figure out how to get @foo>>.<bar> working | 20:29 | ||
that's the first thing I want to Benchmark and AFAIK, it isn't implemented yet | |||
clkao | [>>-<<] some_func(all($a,$b)) | 20:30 | |
does this work? | 20:31 | ||
Limbic_Region | dunno | ||
I am building pugs ATM | |||
clkao | hmm i guess i should use [>>-<<] map some_func ($a, $b) | ||
Limbic_Region | any hints as to where I should start looking to make : next if none( @combo>>.<val> ) == 5; | 20:38 | |
work? | |||
ninereasons | clkao, pardon a guess ? I think that the hyperoperators will only work on lists unless some_func returns lists - maybe references to lists would work - then your snippet doesn't look like it makes sense | 20:43 | |
Aankh|Clone | Pugs doesn't have any time functions? | ||
clkao | Aankh|Clone: time and times | 20:44 | |
ninereasons | time() ? | ||
Aankh|Clone | localtime()? | ||
Aankh|Clone momentarily wonders why he's a clone. | |||
20:44
Aankh|Clone is now known as Aankhen``
|
|||
Aankhen`` | Dot's better. | 20:45 | |
clkao decides to rename svk to svl. because lambda is the future. oh it was was the past. | 20:48 | ||
Aankhen`` stares at clkao. | 20:49 | ||
SamB | lambda is the ultimate | 20:50 | |
autrijus | it is the past _and_ the future | 20:52 | |
Corion | (at least as long as you have continuations) | ||
autrijus | that's right. | ||
eric256 | anyone know the right #! line for the feather sever to run pugs? | 20:53 | |
Juerd | which pugs | 20:54 | |
eric256 | the system installed one | 20:55 | |
clkao | hello autrijus | ||
/win13 | |||
Juerd | eric256: $ which pugs | ||
eric256 | LOL. sorry. | ||
autrijus | hey clkao. I'm marshalling pugs context in perl5 now | ||
about to check in | |||
clkao | autrijus: oh ok. i'm about to have some fun now | 20:56 | |
just had supper | |||
autrijus | cool | 20:57 | |
my plan is as this: | |||
whenever I enter p5 runloop | 20:58 | ||
I'll alwyas | |||
clkao | autrijus: so, im not sure why you have those stuff in pugsembed.c aren't they just interface with what's exported by pugs? | ||
autrijus | ENTER; local $pugs::env = <opaque>; LEAVE | ||
clkao | ok.. | ||
autrijus | then whenever perl5 land want to eval or apply, I can look $pugs::env up from haskell land | ||
clkao | eek | ||
autrijus | and resume evaluation context | ||
I think that's how continuations are supposed to be used | 20:59 | ||
clkao: the NULL things are just stub | |||
integral | it's like having two processes | ||
clkao | stub as in i will call them, not fill them, right:) | ||
autrijus | clkao: but they may become wrappers. anyway I'll refactor away | ||
right. | |||
just call them. they will materialise as soon as you call them | |||
it's known as call-by-need | 21:00 | ||
just don't be strict with them! | |||
clkao | call by autrijus | ||
i need to dig out my ooold code | 21:01 | ||
autrijus: do you happen to have melix repository mirror ? | |||
autrijus | clkao: autrijus.org/tmp/melix.tbz | 21:05 | |
SamB wonders if there is any point in using the darcs mirror at all | |||
clkao | autrijus+++ | ||
keeping my old crap | |||
kcwu | i don't know where to report this.. use.perl.org/~autrijus/journal/rss is not a valid xml document | ||
clkao | you want to report to pudge | 21:06 | |
SamB | kcwu: should it be? | ||
Juerd | That's because building valid xml is hard for perl people | ||
kcwu | the HTTP header appear after the document ... | ||
SamB | I guess it should, its got rdf: stuff everywhere | ||
that IS odd. | 21:07 | ||
Juerd | Nah | ||
It just means some mod_perl handler uses the wrong code | |||
(s/means/probably means/) | |||
SamB | what kind of module is it if it is so easy to get stuff wrong? | ||
autrijus | the sad kind | 21:08 | |
SamB | oh | ||
eric256 | has anyone started porting CGI to perl6? | ||
Limbic_Region | CGI.pm | ||
yeah | |||
Juerd | SamB: Well, it's probably some return OK where return DONE should have been | ||
Limbic_Region | look in ext/ | ||
autrijus | eric256: also look at examples/cgi/ | 21:09 | |
Limbic_Region | [eq] 'foo', 'bar', 'blah', 'asdf'; # does what I think right? | 21:10 | |
returns true if they are all the same | |||
returns false as soon as they are not? | |||
SamB | that isn't even giving a valid HTTP responce, nevermind being valid XML... | ||
autrijus | Limbic_Region: yes. | ||
Juerd | Limbic_Region: Dude, you KNOW they're different :) | ||
SamB | the first line out of the server is <?xml version="1.0" encoding="ISO-8859-1"?> | ||
autrijus | Juerd: lol | 21:11 | |
Limbic_Region | autrijus - I think the cribbage project is going to make a mighty fine example | ||
autrijus | Limbic_Region: oh? | ||
what's new? | |||
Juerd | Limbic_Region: BTW - if you wish, you may leak the info to pm now | ||
Limbic_Region: re feather | |||
Limbic_Region: in your advocacy program :) | |||
Limbic_Region | I have been working with Rob on p6ifying | 21:12 | |
Juerd | Limbic_Region: As long as you note that it's for actually interested people, and for perl 6 development only | ||
Limbic_Region | since the "challenge" didn't go as well as expected | ||
I have decided to show what a little effort can do | |||
Juerd - will do if someone hasn't already by tomorrow | |||
Juerd | Oh, and people can request accounts only by email | 21:13 | |
autrijus | clkao: so you'll handle all these overloading crap? | ||
clkao: I just need to implement the embed api? | |||
that sounds too good to be true | |||
Juerd | Someone who can't figure out my mail address doesn't deserve access anyway :) | ||
clkao | overloading? you mean typemapping? | ||
autrijus | clkao: no, I mean getting $val->() work | ||
Limbic_Region | ok - well I am off | ||
clkao | right | ||
autrijus | $val is already blessed | ||
Limbic_Region | TTFN all | ||
Juerd | Bye, Limbic_Region | ||
JIT :) | |||
autrijus | so you just need to hack our xsinit | ||
clkao | of course | ||
autrijus | yay! | ||
clkao++ | 21:14 | ||
clkao | why am i asking for melix? i had that code there | ||
autrijus | riiight. we took great pains so it works in Perl 5.7.3 | ||
autrijus still vividly remembers having to add two empty assignments to get %SIG working | |||
clkao | it was even using swig 1.1 | 21:15 | |
svnbot6 | r3919, autrijus++ | * marshall pugs execution environment into $pugs::env. | ||
autrijus | how very advanced | ||
SamB | swig? ew! | 21:16 | |
clkao | ok... take shower and then... let clkao <- hack | ||
SamB | of course, maybe it works better for Perl... | ||
clkao | SamB: NO! | ||
autrijus | clkao: you can't mix let form with monadic assignment form... | ||
clkao | it's hateful | ||
SamB | cool | ||
clkao | i'm a newbie, don't complain | ||
autrijus | it's either | 21:17 | |
let clkao = hack | |||
or | |||
clkao <- hack | |||
clkao | but hack produceds different things | ||
autrijus | mmm. | ||
Juerd | clkao: no warnings; no strict; | ||
clkao | Juerd++ | ||
Juerd | clkao: use No::Die; | ||
clkao: I hate the "I'm a newbie, don't complain" approach | |||
Just for the record. | |||
autrijus | use On::Error::Resume::Next; | ||
Aankhen`` | Can someone confirm that the tests for Benchmark.pm pass? | 21:21 | |
No one? | 21:29 | ||
autrijus | Aankhen``: it worksforme. | 21:30 | |
Aankhen`` | OK, thanks. | 21:31 | |
I guess I'll need to recompile before they pass. | |||
autrijus | clkao: the pugsembed things are too easy ;) | 21:35 | |
svnbot6 | r3920, autrijus++ | * pugsembed callback #1 -- pugs_MkSvRef -- finished | ||
Aankhen`` | G'night. | 21:37 | |
autrijus | 3 done, 3 to go | 21:40 | |
svnbot6 | r3921, autrijus++ | * iv/pv/nv to Val promotion done. | 21:47 | |
clkao goes offline and hack | 21:50 | ||
autrijus | all casting done. | 21:53 | |
svnbot6 | r3922, iblech++ | * Pugs.Parser -- Unbreak "$hash<key>" in double-quoted strings. | ||
r3922, iblech++ | * Pugs.Run.Perl5 -- Usual svn properties. | |||
r3923, iblech++ | Moved three suceeding pugsbugs tests out of pugsbugs. | |||
autrijus | doing eval and apply now | ||
clkao | you now what, i think maybe you don't really need all casts | ||
autrijus | clkao: note if you want a CV, just do | ||
pugs_Eval("{...}") | |||
and use it as 1st arg to apply | |||
clkao | if i give you a sv back to Perl5SV isn't haskell supposed to to the conversion in that direction you already did? | 21:54 | |
autrijus | sure, but I have to promote it to Val | ||
that's essentially what it's done | |||
clkao | ok :)_ | ||
autrijus | eval and apply about to land | 21:55 | |
you sure you want to go offline now? ;) | |||
clkao | gah. alright. because i have to keep my laptop and me in weird position to use $neighbor's network | 21:56 | |
autrijus | oh ok. gimme 3 mins | ||
this is too easy and not fun ;) | |||
wolverian hums and codes C | |||
autrijus | also remember to null-terminate the args field | ||
since I don't rely on argc | |||
clkao | k | 21:57 | |
autrijus | in Apply, that is | ||
eval done | 22:04 | ||
svnbot6 | r3924, autrijus++ | * iv/nv/pv two-way casting all done. | ||
autrijus | oh also, if you don't have invocant | ||
pass in NULL as inv | |||
that's the way to distinguish method invocation with sub call | |||
(also in Apply) | |||
also you can pass in a simple string val (pvToVal) | 22:07 | ||
as first arg to Apply | |||
in which case it will be looked up as a sub | |||
eg: "&say" | |||
all done! | 22:11 | ||
(so it was longer than 3 mins.) | |||
enjoy | 22:14 | ||
you may go offline now :) | |||
clkao | autrijus: do you have generic convertor stuff for hash and others? | 22:15 | |
autrijus | clkao: huh? | 22:16 | |
clkao | /usr/local/lib/perl5/5.8.5/mach/CORE/pp.h:130:1: warning: "RETURN" redefined | ||
In file included from /usr/include/readline/keymaps.h:36, | |||
from /usr/include/readline/readline.h:39, | |||
from /usr/local/lib/ghc-6.4/include/HsReadline.h:5, | |||
bad | |||
autrijus | clkao: I'll probably just declare PerlSV as IHash | ||
svnbot6 | r3925, autrijus++ | * Pugs's eval/apply exported to C space. | ||
r3926, autrijus++ | * remove all stubs | |||
autrijus | and IArray | ||
and call into p5 land using tied methods | |||
clkao | i mean into perl5 land | ||
hmm. no | |||
autrijus | no, I'm thinking just exporting av_fetch and friends | 22:17 | |
clkao | bless them into pugs. | ||
autrijus | eh sure | ||
clkao | can do the overload and tie in perl5 | ||
autrijus | HV is just a SV | ||
right | |||
so I'll just bless them | |||
you call into my eval/apply cycle | |||
clkao | and coderef, can you make it pugs::code ?? | ||
er | |||
i mean | |||
autrijus | hm? | ||
you mean bless differently? | |||
clkao | no | ||
before | 22:18 | ||
er | |||
before getting into perl5 land, do a call_method | |||
pugs->makecode(yourval) | |||
autrijus | huh. | ||
clkao | so i have a closure | ||
that knows yourval | |||
which can be used when invokikng | 22:19 | ||
autrijus | you don't need me to do this | ||
just hack pugs_MkValRef | |||
clkao | oh ok )) | ||
autrijus | there's a reason why there's pugsembed.c | ||
clkao | mer eads | ||
src/perl5/perl5.o(.text+0x98): In function `pugs_Eval': | |||
: multiple definition of `pugs_Eval' | |||
src/Pugs/Run/Perl5_stub.o(.text+0x2bc): first defined here | |||
/usr/bin/ld: Warning: size of symbol `pugs_Eval' changed from 106 in src/Pugs/Run/Perl5_stub.o to 10 in src/perl5/perl5.o | |||
autrijus | the two functions are there because they need to defined in C space | ||
clkao: svn up, rm src/perl5/perl5.o | |||
then remake | |||
if you need other API from my side... just ask. but I have this feeling that you can hack src/Pugs/Run/Perl5.hs already | 22:20 | ||
clkao | autrijus: no. | ||
autrijus | it's just type-safe C code ;) | ||
clkao | autrijus: how do i know val isa code? | ||
autrijus | clkao: eh, you do a apply | ||
clkao | cool | ||
autrijus | pugs_Apply("&isa", val, {pugs_PvToVal("Code"), NULL}); | 22:21 | |
clkao | how do i test ok-ness of val? | 22:22 | |
autrijus | you use pugs_ValToIv | ||
and see if it's 0 | |||
I'll commit in a sec | |||
see, there is a need for casters ;) | |||
clkao | :) | 22:23 | |
code written | 22:25 | ||
: undefined reference to `pugs_ValToIv' | |||
waiting for you :) | |||
autrijus | done. committing | ||
hm, let me abstract it a bit | 22:26 | ||
done. it should be usable for all non-ref types | 22:30 | ||
I'm working with refs | |||
but you can test already | |||
ref type handled. *V->SV->Val->SV->*V roundtrip should be fine now | 22:33 | ||
autrijus praises FFI for utmost sanity | |||
svnbot6 | r3927, autrijus++ | * pv/nv/iv caster from Val. | 22:34 | |
r3928, autrijus++ | * handle ref types in Val casting. | |||
clkao | src/perl5/pugsembed.h:20: error: conflicting types for 'pugs_ValToSv' | 22:35 | |
src/perl5/pugsembed.h:17: error: previous declaration of 'pugs_ValToSv' was here | |||
autrijus | er. typo. fixed and committed. | ||
clkao | bah, compile before you commit! | ||
autrijus | ;) | 22:36 | |
clkao | pugs: user error (cannot fetch $pugs::env) | ||
autrijus | ok. initting env | ||
(you're not inside a perl5_eval) | 22:37 | ||
clkao | no | ||
i am calling isa when making val to p5 | |||
autrijus | ok. I'll give you tabulaRasa | ||
a sec | |||
clkao | coderef needs to be handled | ||
meanwhile pugs::AUTOLOAD to pugs::guts:: in xs works | 22:38 | ||
clkao goes to make tea | 22:39 | ||
./pugs -Iext/Test/lib t/unspecced/p5/method.t | 22:41 | ||
hello, perl5 | |||
perl5 glue compiled at (eval 1) line 1. | |||
Error init perl: hate software at (eval 1) line 1. | |||
svnbot6 | r3929, autrijus++ | * typo. | ||
clkao | quick! | ||
autrijus | done. committing | 22:42 | |
clkao | your commit is slow. i thought you are close to the svn server! | 22:43 | |
did i tell you to get next flight | |||
autrijus | you did ;) | ||
you can meet me at .au ;) | |||
and leo will be there too | 22:44 | ||
what fun! | |||
(committed btw) | |||
clkao | .at you mean. i told you about visa | ||
autrijus | sigh etc. | ||
# you need r3931 | 22:45 | ||
ok, tabulaRasa should be in perl5 land too | |||
clkao | what's tabularasa? | 22:46 | |
svnbot6 | r3930, autrijus++ | * initialise $pugs::env with tabulaRasa. | ||
r3931, autrijus++ | * err, typo. | |||
autrijus | empty env | ||
initial env | |||
clkao | ok | ||
where's tumbolia? | |||
autrijus | it's in your hiccups | ||
clkao | /tmp/ghc4368.hc: In function `__stginit_PugsziRunziPerl5_': | ||
/tmp/ghc4368.hc:2913: warning: implicit declaration of function `getStablePtr' | |||
autrijus | yeah. that's fine | 22:47 | |
clkao | still the same | 22:49 | |
autrijus | hm? | 22:50 | |
clkao | pugs: user error (cannot fetch $pugs::env) | ||
autrijus | did you rm src/perl5/perl5.o? | ||
how about you commiting your code? | |||
clkao | coming | 22:52 | |
committed. basically i'm only trying to call isa on the val | 22:53 | ||
before it gets into perl5land | |||
autrijus | k. | 22:55 | |
got it. fixing | |||
the initenv uses MkValRef ;) | 22:57 | ||
no wonder ;) | |||
svnbot6 | r3932, clkao++ | WIP p5 ducktape. | ||
clkao | gah | 22:58 | |
quick! invoker mostly done | 23:00 | ||
autrijus | fixed with weird functorM foo... testing | 23:02 | |
Khisanth | ducKtape? :P | 23:05 | |
Khisanth calls PETA | |||
clkao | crap you are including .c | ||
autrijus | feel free to fix them | ||
clkao | Khisanth: fnord you don't see it fnord | ||
autrijus | I have no C fu | ||
clkao | quick, i'm almost done | 23:06 | |
autrijus | I'm still seeing segfaults | ||
revdiablo | Khisanth: duck tape is the original brand | ||
autrijus | committed | 23:07 | |
but doesn't work -- I think setsv_ref is borked | |||
clkao | ok hang on | ||
autrijus | set_svref rather | ||
trying to debug (in vain) | 23:08 | ||
autrijus hates C | |||
broquaint | C is your friend, autrijus. | 23:09 | |
Whether you like it or not. | |||
clkao | young autrijus, your dark side is growing | ||
it segfault at the very beginning | 23:10 | ||
#0 0x0830ea9e in deRefStablePtrzh_fast () | |||
svnbot6 | r3933, autrijus++ | * still segfaulting... WIP | ||
autrijus | C is not stronger... Quicker, easier, more seductive | ||
yeah I see that | 23:11 | ||
clkao | autrijus: how do i make a PerlIO Val from sv ? | 23:12 | |
autrijus | clkao: IO Val? | ||
in haskell land? | |||
there are two APIs | |||
clkao | you have that in haskell already | ||
autrijus | MkSvRef refs | ||
clkao | can i type a val to PerlSV and just let haskell do the reset? | ||
autrijus | and SvToVal potentially derefs | ||
do the rest of what? | 23:13 | ||
clkao | oh ok. so PerlSV in pugs == setrev'ed pugs in perl5 | ||
is that right? | |||
autrijus | not really. PerlSV stands for any SV* | ||
whether they are setref'ed or not | 23:14 | ||
I think I know the problem. sec | |||
clkao | right. how can i make the sv from c land into val that pugs will see it as PerlSV then? | ||
Khisanth | revdiablo: now that you mention it, I do recall seeing that brand in stores | ||
autrijus | 07:17 < autrijus> omg | 23:20 | |
07:17 < autrijus> pugs_Apply("&isa", val, isa) | |||
07:17 < autrijus> dear clkao this is so borked | |||
07:17 < autrijus> check prototype | |||
clkao: you use SvToVal | |||
clkao | gr | 23:22 | |
pugs_Apply(HsPtr a1, HsPtr a2, HsPtr a3) | |||
i told you to give an example :) | 23:23 | ||
autrijus | k k. sec | ||
clkao | there are so many types involved | ||
autrijus | sadly they are all neccessary | ||
I'm almost fixed | 23:25 | ||
clkao | ok | ||
i'm done with invoker. can't test | |||
autrijus | got a code!! | 23:27 | |
clkao | cool | ||
commit! | |||
quick! | |||
svk needs easy way to setup tmp p2p branch | 23:28 | ||
autrijus | done | 23:30 | |
svnbot6 | r3934, autrijus++ | * segfault solved | ||
clkao | jit svnbot6 | ||
botsnack | |||
more tea while compiling | |||
svtrue: *rv is a pointer.. | 23:32 | ||
it's a typo? or some magic? | |||
autrijus | where? likely typo | ||
clkao | ok | ||
now, where was this first got a code called? | 23:33 | ||
i haven't init my perl yet | |||
autrijus | it's in pugs.embed.perl5 line 124 | ||
hm, no. weird | |||
anyway I'm fixing eval_perl5 | |||
SamB wonders why his pull is hanging here: | 23:35 | ||
clkao | src/perl5/pugsembed.c: In function `pugs_SvToVal': | ||
src/perl5/pugsembed.c:11: warning: cast to pointer from integer of different size | |||
SamB | Thu May 26 07:30:52 EDT 2005 [email@hidden.address] | ||
* r3909 | |||
Thu May 26 06:39:02 EDT 2005 [email@hidden.address] | |||
* r3908 | |||
Thu May 26 05:59:04 EDT 2005 [email@hidden.address] | |||
* r3905 | |||
Thu May 26 05:57:43 EDT 2005 ^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^[[6~^?^? | |||
(all that ^[[6... stuff is me hitting keys and accomplishing nothing) | 23:36 | ||
SamB guesses it has something to do with the stuff coming over the wire... | |||
clkao | *** No compatible subroutine found: "&callcode" | 23:40 | |
autrijus: ? it doesn't seemto dispatch | |||
mugwump | during discussion of Tangram, we have discovered the correct capitalization of O/RM | 23:41 | |
oRM | |||
autrijus | clkao: sec | 23:42 | |
clkao | that looks ugly | ||
autrijus | clkao: I got it | 23:43 | |
clkao | pugs bug? | ||
quick, almost there | 23:44 | ||
chromatic ponders DESTROY | 23:46 | ||
It looks like adding an op1 "DESTROYALL" in src/Pugs/Prim.hs makes that much available, but I'm a little bit lost at how to detect that an object has gone away. | 23:48 | ||
autrijus | chromatic: GHC's generational GC handles that for you | 23:49 | |
clkao: fixed! | |||
committing | |||
chromatic | Are there end-of-life hooks? | ||
autrijus | chromatic: sure | 23:50 | |
addFinalizer in System.Mem.Weak | |||
for foreign objects use ptr finalizer in Foreign | |||
chromatic | I'm brainstorming here. | ||
Is the right answer to use addFinalizer somehow on VObject? | |||
Then, somehow, have it call the "DESTROYALL" method? | 23:51 | ||
autrijus | sure. | ||
that sounds just right | |||
chromatic | Alright, let me dig a bit | ||
svnbot6 | r3935, autrijus++ | * init perl5 as part of prepareEnv to avoid loop | ||
clkao | dear autrijsu | 23:52 | |
ok 5 - invoke method | |||
er. no | |||
still | |||
*** No compatible subroutine found: "&callcode" | |||
on the line: my $r = $obj.callcode($callback); | 23:53 | ||
autrijus | so the .can failed | ||
double check things? | |||
ahh. I know | |||
.call is not initted w/ env | |||
sec | |||
clkao | *** cannot cast from SV (CODE(0x83c0314)) to Pugs.AST.Internals.VCode | 23:57 | |
i thought this was done already | |||
stevan | :) | 23:58 | |
you two are crazy | |||
chromatic | Hmm, given a VObject, how can I call a method on it? | 23:59 | |
stevan | backlogging is so much more fun now | ||
hey chromatic :) | |||
autrijus | clkao: no that wasn't... I'll fix | ||
clkao | ok. quick. i've wrriten more test | ||
s | |||
autrijus | chromatic: you can use the simple thing | ||
stevan | it's like some insane C vs. Haskell game of ping-pong |