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