The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by GammaRay on 31 December 2005.
00:39 gugod joined 01:53 gugod joined, cookys joined 01:54 tewk joined, lampus joined, mtve joined, arguile joined, metaperl joined, jp-autark joined, gantrixx joined, beppu joined 01:55 Medvekom_ joined 01:56 Bit-Man joined 01:57 drbean left 02:15 Amnesiac joined, orafu joined 02:41 vel joined
clkao win 15 02:54
02:58 Cryptic_K joined, stevan_ joined, kanru joined 03:16 vel__ joined 03:57 vel__ left 04:00 vel left 04:01 scook0 joined
buu Hrm. Whose the owner of evalbot? 04:20
Whois*
05:13 drbean joined 05:18 xern joined 06:07 elmex joined 06:18 lypanov joined 06:19 iblechbot joined
gaal "but it's not really a concern when it's been typechecked in another language already." (pugs blog) 06:22
talk about compile-time typechecking!
06:56 GeJ joined
GeJ greetings all 07:06
dduncan greetings
hachi raises his glass 07:09
dduncan what are you raising your glass to? 07:24
over here in Canada, a reason could be the new government we just elected today
hachi it was for you, sir 07:25
oh whatever... I'm a little slow 07:26
"hello" and whatever
07:31 feng joined 07:34 Aankhen`` joined 08:09 Cryptic_K joined 08:22 nothingmuch joined 08:24 Aankh|Clone joined 08:30 MrFarts joined
MrFarts hi 08:30
can someone perhaps help me
i have a perl5 question, but no one in any of the regular perl channels is any help
nothingmuch what about #perl? 08:32
it's always very busy (~400 users)
MrFarts no use
nothingmuch but I can help if you really insist
MrFarts i'm just trying to install a signal handler for SIGCHLD 08:33
but it won't work
i have ...
$SIG{CHLD} = \&REAPER;
in the parent
but the REAPER handler is never execured
even though the child dies
nothingmuch what OS?
MrFarts linux
nothingmuch very odd
how are you creating the child? 08:34
MrFarts i have something like print "hello world: in the handler
never gets there
nothingmuch perl's system() and `` thingies will automatically reap one child
MrFarts i'm using fork()
nothingmuch try replacing 'print' with 'syswrite STDOUT'
it might be a bufferring issue
you can use nopaste services
and share your code
e.g. sial.org 08:35
08:35 G2 joined
MrFarts nothingmuch, one second 08:35
nothingmuch, here's the relevant code: 08:36
pastebin.com/520294
nothingmuch you don't need to backslash escape /, btw =) 08:37
MrFarts thanks
nothingmuch also, i reccomend using 3 arg open
MrFarts i'm used to C :)
nothingmuch e.g. open my $fh, "<", $filename; 08:38
much more safer
err, bad english =)
MrFarts what about the actual signal handler ?
nothingmuch one sec, still reading =)
sleep 1000 can be done without system()
MrFarts i know
it's just scaffolding 08:39
nothingmuch hmm
MrFarts i'm intentionally doing it from system
nothingmuch okies
MrFarts i'll be calling some real programs later
right now "sleep 1000" is a good approximation :)
nothingmuch add a 'sleep 1000' (no system) to the parent
right after setting the $SIG{CHLD} handler
MrFarts nothingmuch, why would i want to do that ? 08:40
nothingmuch because possibly the parent is exiting before the child
MrFarts all right ...
works !
i'll be damned :)
nothingmuch well, just keep your parent alive 08:41
you can do this by doing waitpid $pid, 0
(IIRC)
MrFarts well i don't want to wait on each pid
nothingmuch which is a blocking wait on a specific PID
MrFarts that'll block
nothingmuch i mean, when the parent exits
MrFarts i'm forking a bunch of processes
nothingmuch otherwise just keep your parent running
what does the parent do while waiting for thie children?
MrFarts nothing 08:42
nothingmuch okay, so it needs to wait
MrFarts the children do all the work
i can't have it do a blocking wait for each child
nothingmuch or if you want this stuff backgrounded the children need to setsid and what not
MrFarts the children need to run in parallel
nothingmuch that doesn't matter
they keep running
but you can also do a blocking wait for any pid
there's snippets for this in perlipc
MrFarts link ? 08:43
nothingmuch 'wait' as opposed to 'waitpid'
67.186.136.119
08:43 Khisanth joined
nothingmuch crap 08:43
that's not it, that's stevan_ ;-)
perldoc.perl.org/perlipc.html
or just 'perldoc perlipc' on your CLI
MrFarts thanks ...
nothingmuch see also Parallel::ForkManager on the CPAN 08:44
and IPC::Run
which might be more convenient for you
MrFarts ok ... 08:45
i'm looking at parallel::forkmanager 08:47
it doesnt' seem to be very well documented
nothingmuch one sec 08:48
looks pretty good to me
what's lacking?
search.cpan.org/~dlux/Parallel-Fork...Manager.pm
MrFarts doesn't make any sense at all
it's clear hwo to fork off whatever number of processes
not at all clear how to control the logic within each 08:49
nothingmuch ah
well, in the SYNOPSIS what you do is
create $pm with a limit of processes
then call ->start
->start returns 0 if you're a child, much like fork
you do the work in the child
and then call $pm->finish
or call $pm->start again in the parent
$pm->start will block once $MAX_PROCESSES is hit 08:50
until $pm->finish is called
MrFarts got it ...
nothingmuch $pm->wait_all_children will do a blocking wait for any pid until no children are left
MrFarts i'll try it out ... 08:51
thanks a lot
nothingmuch sure thing
i still don't understand why #perl is broken though =)
MrFarts too bad the #perl guys aren't very helpful
because they are assholes mostly :)
pdcawley just had a thought; Are we still going to be able to do 'given $an_object { .do_this; .do_that; .do_the_other }' ?
And if we're not, *is* there a construct available that's akin to the Smalltalk 'anObject doThis; doThat; doTheOther.' ? 08:52
MrFarts i was in #perl asking abuot timers and some guy banned me after i told him that "sleep" was not my idea of a timer
nothingmuch heh
perldoc Time::HiRes
was this on freenode or irc.perl.org? 08:53
MrFarts it was on one of the large irc networks
i don't even remember which one
i'm banned from most of the perl channels by nwo :)
nothingmuch if shlomif is not banned in freenode #perl then I doubt you are ;-)
i don't see why... you were pretty polite and to the point
you didn't paste code to the channel
you weren't abusive
MrFarts *shrug*
nothingmuch and you gave specific info to help the dialogue 08:54
all the things we wish newbies would do more often
MrFarts unfortunately, many operators have serious mental problems :)
nothingmuch heh 08:55
join #perl on this network
MrFarts honest to god, i got banned for telling a guy that "sleep" was not what i wanted
wolverian I have too many #perl* channels as well, and irssi doesn't like to show which network the channel is on.
nothingmuch here?
that's very odd
MrFarts it's IRC -- it doesn't surprise me any more
wolverian /statusbar window doesn't show a 'network' entry. hm 08:56
wonder if there's one in the scripts archive
08:57 KingDiamond joined
MrFarts why doesn't perl have multi-line comments btw 09:00
C-style comments would be nice :(
Khisanth nothingmuch: shlomif doesn't actually talk much in #perl 09:03
09:06 wilx joined
nothingmuch Khisanth: by the name rindolf? 09:08
IIRC it's quite a lot
nevermind though, it's unimportant
i just know that a. he has a habit of getting banned and b. he is not banned on #perl on freenode 09:09
MrFarts does anyone know whethere Parallel::Forkmanager has any way of giving feedback regaridng the number of children left ?
Khisanth nothingmuch: yes
MrFarts nothingmuch, are you there ? 09:12
nothingmuch MrFarts: doersn't seem to have a documented API
post a bug
MrFarts nothingmuch, have you ever played with this thing ?
i reallly don't have much time to get this working
nothingmuch nope
MrFarts damn it :(
:( :( :(
nothingmuch numbder of running children: keys %{ $pm->{processes} }
file a bug
there's a good chance it'll be added in several days 09:13
MrFarts i have about an hour :)
nothingmuch there are also other interfaces
MrFarts i'm really beginning to hate perl more and more 09:14
09:14 kane_ joined
nothingmuch sub Parallel::ForkManager::number_of_children { my $self = shift; keys %{ $self->{processes} } }; 09:14
MrFarts with C, things are a pain but you expect them to be
nothingmuch then you can say $pm->number_of_children
see also Proc::Fork
you might like it more
Parallel::Forker
which isn't as old as Parallel:::ForkManager
Proc::Queue
MrFarts man, i don't have time for all this 09:15
i just need it to work
nothingmuch err
that's not perl's problem
that's opensource in general
wide variety
try IPC::Run
MrFarts no it's not, but perl is a bit crap
nothingmuch i think it's going to let you do what you want
Khisanth chance of being updated in several days seems a bit slim
nothingmuch with start/pump/finish
09:15 bsb joined
nothingmuch Khisanth: most the modules I've dealt with are fixed pretty fast 09:15
MrFarts nothingmuch, i can tell you exactly what i'm trying to do
nothingmuch, maybe you know of some tool suitable for this
nothingmuch and for those which aren't (e.g. Apache::Htpasswd) i have an army of minions to write alternatives for me (Authen::Htpasswd) 09:16
MrFarts: spew it, i'm listening
MrFarts i need to run a whole bunch of external programs and monitor them at intervals
nothingmuch okay
MrFarts that's it really
nothingmuch (IPC::Run, IPC::Run)
;-)
use IPC::Run qw/start finish pump/;
start \@command_line_args, $in, $out, $err;
$in, $out, $err are either filenames, filehandles, callbacks, or scalar refs 09:17
MrFarts ok and then what ?
nothingmuch they DWIM
or DWYM in this case
MrFarts DWYM ?
nothingmuch this returns a handle object
do what you mean
MrFarts i don't care about getting output from the programs
nothingmuch my $hgandle = start [qw/some command/], ...;
MrFarts i just want to know whether they are dead or alive
nothingmuch push @handles, $handle;
ah
wait
you want to just start a bunch of things? 09:18
MrFarts i want to start a bunch of things and know what's running longer than it should be
nothingmuch and notify when they've finished?
ah
MrFarts any ideas ? 09:19
nothingmuch you can roll your own
you had a good start
then you can create a queue of items
by the time they're expected to finish
MrFarts well that's what i was doing already
nothingmuch sleep the parent until the earliest time of expiry
if the sleep finishes, and not because of a SIGCHLD, then complain loudly
MrFarts i don't quite understand that
nothingmuch so what's the problem?
MrFarts i need to start a certain numbers of subprocs at once 09:20
and i can't block waiting for each one to finish
nothingmuch foreach my $task (@tasks) { if ( my $pid = fork ) { push @child, { pid => $pid, eta => $timestamp } } else { exec @$task } }
MrFarts oh this is using IPC::RUN ? 09:21
nothingmuch my $earliest = sort { $a->{eta} <=> $b->{eta} } @children;
no, this is manual
MrFarts ok if you're in the parnt, keep on spawning more children
nothingmuch if ( $earliest->{eta} > time() ) { sleep $earliest->{eta} - time } else { warn "child $earliest->{pid} is overdue"; kill 9, $earliest->{pid} } 09:22
MrFarts otherwise call exec from within the child ...
nothingmuch right
wrap that in while ( @children ) { }
and in SIG{CHLD} cleanup the relevant children from @children
MrFarts what in the world is my $erlist ?
nothingmuch make sure you're in perl 5.8 or higher
it declares the var $earliest
which contains the structure for the child that is supposed to end soonest 09:23
MrFarts honestly, i'm not following what's going on after you create the parent and child
nothingmuch based on 'eta'
do all the children end at the same time
?
MrFarts no
nothingmuch okay, each one has it's own duration?
MrFarts yes
nothingmuch okay
so given time() + $duration you know it's latest eta
err, eta is a bad term
it's deadline
MrFarts you're going too fast for me... i'm not that familiar with perl 09:24
nothingmuch push @children, { pid => $pid, cmd => $cmd, deadline => $timestamp };
MrFarts i have to make this into pseudocode
nothingmuch if you're not familiar with perl but are with C, why not just do it in C?
MrFarts nothingmuch, because i was under the impression that it would be fast in perl
faster
:)
nothingmuch struct task { whatever pid; size_t deadline; char * cmd }
well, yes
but only if you know it 09:25
IPC::Run can help
but i think it's too much abstraction for someone with your familiarity
it'll probably end up confusing you
and you said you have an hour
you can also use an event loop library like Event or LibEvent
MrFarts i'm trying to understand what you're trying to do conceptually first
nothingmuch err, Event::Lib 09:26
MrFarts when you got into ETA, i was pretty confused
nothingmuch well, wrt the child queue - find out what is the earliest child that's supposed to finish
MrFarts i don't see how you are checking up on the processes
nothingmuch the earliest deadline
you aren't
you are just waiting
if it's not gone from the queue by then, you kill it
the singal handler cleans the queue
search.cpan.org/~vparseval/Event-Li...ent/Lib.pm
search.cpan.org/~jprit/Event-1.06/lib/Event.pod 09:27
these two might be nicer for you
read tutorials and what not
but it won't be an hour, I guarantee you that
writing it will take 15 mins
but learning the libs a bit more
MrFarts well i guess i'm just going to struggle with this
if i cna't get it done in an hour, i'll do it in C
but that'll take a while 09:28
Khisanth hmm sounds like a simple modification of poe.perl.org/?POE_Cookbook/Child_Processes_3 actually
nothingmuch oh right, there's POE
but POE is not grokked in an hour either
MrFarts gah 09:29
nothingmuch look, there's a fundamental conflict
you want time saving that is achieved by investing in advance: learning a library
you already know the standard C library
perl offers you that
that can help, or it might not
i think it's a fair balance
if you have an hour it doesn't make sense to spend 5 hours learning a tool that will save you 45 minutes 09:30
unless you're going to use it a lot
MrFarts right
nothingmuch that's basically it =)
if i wasn't at work i might be tempted to walk you through one of those
but I can't afford that, time wise
MrFarts i understand
thanks anyway
i'll try to pound this thing into submission 09:31
")
:)
nothingmuch is a misantrope 09:33
=(
MrFarts actually i think i figured it out anyway :) 09:34
nothingmuch goody
MrFarts i'll just do it by hand
i'll just put a decrement in the signal handler for sigchld
when that things goes to 0, i'm all out of children 09:35
for somre reason it's not going back to 0 though 09:38
it's stuck at 7
hmm
bsb perldoc -f waitpid
MrFarts what does waitpid have to do with anything ? 09:39
09:40 KingDiamond joined, bsb left
MrFarts ayone ? 09:43
nothingmuch, idle 09:44
?
why aren't all the processes generating SIGCHLD ? 09:46
nothingmuch sorry 09:47
MrFarts well you aren't obligated to help me 09:48
:)
but i'd really appreciate it if you could
nothingmuch i hve to go in ~2 mins so quickly please =)
read perlipc
MrFarts for some reason SIGCHLD isn't being generated by everything it seems
nothingmuch it knows to tell you if there are no children left
MrFarts i don't understand why
nothingmuch 3hmm
please no paste 09:49
i can look at it in ~4 hours
MrFarts 3hmm ?
nothingmuch typo
'hmm'
MrFarts any ideas on what to check
nothingmuch not really
MrFarts this is just sadistic
nothingmuch this sounds odd
nothingmuch wrote weird shit in his day of perlipc curiosity
i even wrote a traffic shaper once
MrFarts yeah, i get ~38 kills
nothingmuch with nonblocking IO and SIGIO and stuff
MrFarts the last 12 are disappearing
don't get it 09:50
50 dies, 49 ...
etc.
then i get to 38
er
12
nothingmuch hmm
how are you reaping them?
MrFarts pastebin.com/520322 09:51
nothingmuch the definition of SIGCHLD is that it's delivered when your process gets a timeslice and children are waiting to be reaped
(IIRC)
okay
the while loop is taking out several at a time
perldoc -f waitpid will explain that idio
m
MrFarts i'm not sure why i'm re-installing the handler 09:52
nothingmuch that's an old sysv thing
also documented in perlipc
linux doesn't need it
MrFarts anything strike you as being wrong here ?
nothingmuch yes
the while loop =)
it's explained in perldoc -f waitpid 09:53
what it's doing is reaping any pid
MrFarts i don't have perldoc
nothingmuch nonblocking
for as long as there are children running
no way
MrFarts anything via google
nothingmuch on linux?!
MrFarts yeah
nothingmuch wtf kind of distro is that?
MrFarts ubuntu
suse has it ...
nothingmuch anyway, the while loop is reaping any number of children, nonblocking, and > 0 means keep doing it as long as children are left
no way
ubuntu isa debia
n
it shoul;d have perldoc
check your path 09:54
anyway, put --numprocs in the while loop's body
and you can make it $numprocs--;
perl will opptimize it into --$numprocs if you really care ;-()
;-)
MrFarts that doesn't make sense
nothingmuch why not?
MrFarts i mean the numprocs into the while
nothingmuch read man waitpid
MrFarts because it'll go down to negative numbers pretty quickly :)
let me run it just to shit myself :)
nothingmuch while ( waitpid -1, &WNOHANG > 0 ) { }
no
waitpid will return immediately each timed 09:55
MrFarts it works
wow
nothingmuch it will return a nonzero number if there are more children
sigchld isn't delivered once per child
it's delivered whenever there are any children
MrFarts thanks ...
nothingmuch if you're taking out N children per handling, then that's the behavior
MrFarts now i'm more or less in business
:)
nothingmuch yummy goodnes
i've got to go 09:56
MrFarts goodbye
thanks again
nothingmuch =)
i'll bbl
if you need me again
MrFarts ok. maybe i'll still be around
hopefully not struggling :)
Khisanth nothingmuch: perl-doc is not installed by defaul 09:57
10:00 drbean_ joined 10:04 scook0 joined, pjmm joined 10:17 rantanplan_ joined 10:23 dada joined 10:26 elmex joined
MrFarts anyone still alive ? 10:34
webmind ? 10:39
10:49 marmic joined
gaal ingy/audrey: what about $DOC in Perldoc? I don't see it... 11:00
is there a way to export a variable and mark it as strict-clean? 11:01
so the user can say "use strict; use Perldoc; print $DOC->html" or whatever
ingy gaal: coming soon 11:03
gaal I wonder how that works in Perl 6 as well: do exported vars need to be declared?
ingy: can it be done in pure Perl at all?
ingy gaal: what? 11:04
gaal It looks like you have to get prettty dirty to make $DOC strict-clean :-)
ingy gaal: I see 11:05
what does `use vars` do?
gaal package level global I believe.
vs. our which is weirly lexically scoped
but you can't use-vars-at-a-distance 11:06
oh wait! maybe you can!
package Other; use vars...
ugh, need an eval for that.
ingy :)
gaal because Other is runtime.
ingy not so bad to use eval
gaal right. and use vars kind of scope is reasonable in Perl 5 there 11:07
ingy at least the problem is solved :)
gaal++
damn my hands arqe cold, can't type 11:08
gaal good thing ";`rm -rf /`" isn't a valid package name. :-P
ingy gaal: I have another proble maybe you can help me with 11:09
gaal your moose is my wapiti
I can teach you a way to warm your hands 11:10
ingy yeah?
gaal you need another person for it.
ingy sex? 11:11
gaal no (that can work too though). you each put your palms against each other like in an oriental bow
ingy they're warming up slowly... 11:12
gaal face and point your hands towards each other
ingy I just went on a cold scooter ride with no gloves
gaal separate your fingers and cross your with theirs
uh, this is less complicated than it sounds :) 11:13
so your left hadn is crossed with their right and vv
ingy sounds like this leads to sex
gaal then comes the warm part: rub your hands vigorously
it can lead up to that if you wish. it's a versatile technique! 11:14
it's much better than rubbing your own hands in terms of warmth production (and sex leaduptotude, come to think of it)
ingy :D 11:15
gaal so, what else can I help you with? :)
ingy well I want Perldoc docs to be per "class" ie per package; not per module 11:16
the $DOC thing still works fine 11:17
but the flow for the other processes is weird
gaal where's the svn repo for Perldoc? 11:18
ingy svn.kwiki.org/ingy/Perldoc 11:19
gaal hmm, actually there isn't a bulletproof way of doing this, is there? you have to parse perl. 11:20
ingy I think i want to add the concept of a Perldoc::Document class
gaal: I'm not really worried about that 11:21
I just want to get the conceptual structure right
gaal you can assume /^package \s* (\S+) \s* ;/x in most cases :)
OK
starting with which version, the Haskell one? 11:22
ingy actually I think that $DOC points to a Perldoc::Document object
Haskell version of what? 11:23
gaal (hey, what drives the haskell version anyway? there's no target in the makefile that builds it, that I saw)
Text.Parser.Kwid
ingy Well I'm really just concentrating on the Perl5 Perldoc project for right now 11:24
Based off the work and ideas I started last spring 11:25
Audrey wrote a nice Kwid parser, which was my bottleneck 11:26
gaal all right, so Kwid > Doc > [Para], or Doc > Kwid > [Para] ?
or is the Kwid structure in the haskell version what you need for Perldoc::Document in p5? 11:27
ingy gaal: there are a few things going on with Perldoc 11:28
I should summarize somewhere
Maybe I'll write a design document in the repo
and then we can talk better about this 11:29
you around for a while?
11:29 Kattana joined
gaal yeah, grabbing lunch but i 11:29
'll be back.
ingy ok, I have a small stack to pop first, but should have that doc in 2-3 hours 11:30
11:30 Debolaz joined
gaal cool 11:31
MrFarts anyone willing to help me out
i'm probably doping somethign stupid but i can't see what
11:38 Debolaz joined
MrFarts how can i get the pid of the last process launched via system 11:43
11:53 lisppaste3 joined
gaal MrFarts: fork and exec yourself instead? 12:19
12:24 KingDiamond joined
Juerd MrFarts: The last process launched with system no longer exists when you're past that call. 12:34
MrFarts: Its PID is of no use whatsoever. 12:35
12:40 elmex joined 12:41 elmex joined 12:42 elmex joined, feng joined
gaal Juerd: system "do_something &" uses the shell to run do_something in the background 12:43
I know that you know that technically that wasn't launched by system itself :-)
12:44 Southen joined
Juerd gaal: Right. The PID of do_something is unknown to Perl anyway. 12:47
gaal if you're only using the shell to get &, and not redirection or search, you can fork+exec instead. 12:50
12:52 drbean joined 12:54 Bit-Man joined
ingy gaal: stack popping proceeding well... 12:58
are you a mac user?
if so we could do a subetha thing perhaps 12:59
obra what happened to subethawikiwyg? 13:03
ingy obra: it's coming soon 13:05
obra oooooo
WANT :)
I'll pay you in beer. and bao.
ingy bao zi 13:06
bao == container
zi == child
bao zi == tasty pork buns
obra or in cantonese "Char su bao" 13:07
ingy I think it is getting time to boot the cross-browser app, and embrace at least the xul, if not the ff extension 13:11
obra That'd be too bad.
I'd use it for me, but for released stuff, I need to work in safari and IE
ingy that would be so good.
no, you just think you do 13:12
obra My customers would stop paying me
ingy I kinda doubt that
obra "If it doesn't work in IE, we can't and won' use it"
That's a direct quote
more than one of my custoemrs has workstations locked down that have no firefox 13:13
ingy let's take this out of perl6
obra oops. indeed
13:14 Debolaz2 joined
integral write parrot plugins for all major browsers, and use perl6. It'd be just like Flash (and Java moreso) 13:14
13:23 blm joined
lypanov wonders what "su" alone means 13:27
ingy super user? 13:28
blm as opposed to su -? su - sets up the environment as if you had of logged on directly as the superuser (root)
su doesn't 13:29
13:38 nnunley joined
nothingmuch moose moose 13:41
gaal moose indeed! 13:46
rehi too
ingy: not a mac user. But I can find my Goby install somewhere 13:47
*Gobby, and found it. :-) 13:50
13:52 kolibrie joined
nothingmuch wonders what mooseness is about 13:53
gaal nothingmuch: I'm helping ingy warm his hands!
kolibrie is going to the Netherlands in March! 13:55
nothingmuch ingy: if you sit on your hands they will be warm
gaal gets coffee, will brb 13:57
b 14:01
has ingy gone to sleep? 14:07
14:15 KingDiamond joined
lypanov ingy: sorry, i meant in the context of char su ;) 14:15
kolibrie: .nl is fun :) 14:16
kolibrie lypanov: I'm taking my family, so we can all brush up on our Dutch 14:17
gaal haskell language design question: when you say "deriving Ord", why can't the compiler infer you also want to derive Eq? You can, after all, derive that too. 14:24
integral what if you wanted to write your own Eq? 14:25
gaal can you not write specific methods for typeclasses you derive automatically?
MrFarts is there anything fundamentally different about system("sleep 100") and system("perl foobar.pl") ?
integral I don't know :-/ 14:26
MrFarts for some reason i can set timers on one but nto the other
anyone ? 14:31
gaal MrFarts: sorry, no idea 14:32
integral: turns out you can't
so if you derive, you get the automatic implementation, no override possible.
bbiab 14:42
14:44 joepurl joined 14:45 chris2 joined 14:46 nothingmuch joined 14:52 hcarty joined 14:58 hcarty left 15:03 iblechbot joined 15:08 pjmm left 15:09 theorb joined 15:14 robkinyon joined 15:23 ajs joined 15:44 Eimi joined
lypanov ponders learning haskell 15:46
gaal encourages lypanov 15:52
it's a fun language!
kolibrie lypanov: what I've learned has been great - very mind expanding 15:53
15:55 rantanplan_ joined
lypanov any idea for something i could write using it? 15:56
i aim too big usually..
but what i see is "don't aim too small"
so i don't know what :P 15:57
maybe i should just hack on pugs
gaal sure
kolibrie I just worked on the tutorial, but haven't started any real projects in haskell 15:58
16:01 dada joined
lypanov is there a tasks list for pugs? 16:02
16:03 elmex joined
ingy lypanov: I've discovered a mindset for learning haskell 16:03
You don't actually program in Haskell 16:04
Haskell writes the program, you just set the rules
if you try to learn the language thinking otherwise, you are likely in for pain 16:05
kolibrie lypanov: if you see a problem with pugs, write a test, if you have tuits, fix pugs so that the tests pass
16:05 sapper joined
kolibrie lypanov: that's the basic tasks list 16:05
theorb There's been some discussion about creating a real tasks list; AFAIK nothing like that has actually been done, however. 16:06
lypanov tuits? 16:08
theorb lypanov: time units. That is, free time.
lypanov aha :)
not really, but i've always been able to find new ones in the past ;) 16:09
okay. so basically, run the tests
find tests that don't work
fix them?
kolibrie lypanov: sounds good 16:10
lypanov ingy: sure sounds like the way my mind thinks anyways. i've never been able to dive into something without doing it headfirst
gaal ingy: hi! 16:11
ingy hi gaal
lypanov hopes make unoptimized + gcc3.3 on osx is gonna work
gaal ingy: got gobby? got skype?
chris2 lypanov: you are on the ibook? 16:33
lypanov chris2: yup
chris2 lypanov: *happy* compiling then :P 16:34
lypanov yeah...
its just sitting here thinking about pugs.run for no real reason
oh well
now i remember why i didn't bother hacking on darcs 16:35
can you do edit-test-debug-test cycles in any saner way with haskell?
chris2 :P
lypanov this is unworkable
even c++ is faster than this... 16:36
lypanov giggles
chris2: even withkit with its ~30 second rebuild when on ac power is just a bit too much for me 16:37
theorb ghci?
lypanov ghc-6.4 on osx on ibook 1.2ghz
whats ghci? the interactive version?
theorb Yes.
lypanov lets me mod code and restart? 16:38
as in, change code, "recompile", and rerun a testcase?
theorb Donno.
lypanov chris2: want the reallllly sad bit? 16:39
chris2: java has the best support for this...
chris2 no, lisp :P
lypanov true, but thats not in the ranks of easy ;)
slime looked nifty
maybe one day
chris2 i mean, real lisp :)
Odin- What is "real lisp"? 16:40
chris2 actually, smalltalk does it even better, but let's stop that :P
lypanov okay. train time. maybe some hacking if this thing actually ever finishes running
chris2 Odin-: on a lisp machine
Odin- Ah.
gaal lypanov: yes, ghci is an interactive haskell environment for you; you can reload modules you'd edited on and only they are recompiled.
lypanov gaal: i noticed that run.hs is obscenely slow in compiling, is there a reason for this? is it only building once?
gaal there is a reason for this :) it includes a whopping 1m generated file containing the Prelude 16:41
after the coming release we'll work on improving this
depending on what you're hacking on, you might do better by turning off precompiled Prelude 16:42
ingy gaal++ # nice fellow :)
gaal also, there's "make unoptimized" you can use
lypanov gaal: i'm using make unoptimized now, and its still just sitting spinning
gaal ingy++ # flattery will get you anywhere :) 16:43
ingy :p
lypanov gaal: would switching off precompiled prelude slow runtime down but speed up compilation?
gaal lypanov: ah, mixing precomp prelude and unoptimized is like drinking while taking antibiotics
lypanov gaal: i don't care about runtime. i only ever run one test, then run all when needed
gaal lypanov: exactly
lypanov how do i switch off precomp prelude?
gaal lypanov: in your case you want to edit config.yml and set "optimization" to -O0 16:44
and "precompile_prelude" to "false"
then you need to perl Makefile.PL
how's our wiki doing? this should really make it into the faq
lypanov whats the point in the precompiling of the prelude btw? 16:45
reduces start up time per test?
gaal lypanov: the prelude is a perl module containing standard functions you are very likely to want
theorb lypanov: Exactly. Avoids having to parse the prelude every time.
lypanov nods
makes perfect sense for a "test all" build
gaal it takes, say, 7 seconds to parse Prelude.pm
makes sense for general use, but not for development 16:46
lypanov any point in using make unoptimized now that i've set -O0 ?
gaal no, same thing
lypanov k
gaal if you want to force -O now you can say "make optimized" on the command line.
lypanov excellent 16:47
16:47 hexmode joined
gaal incidentally there's a mechanism to inline other modules into the pugs executable; Test.pm is a favorite for "make smoke". but we broke it now and probably won't fix it until after the release 16:47
lypanov nice to see a sane devel env :) 16:48
gaal the cost: Test.pm precomp is an additional ~5 min in pugs build time, but saves about twice (and counting) on a whole test run
lypanov how long is your average code->test cycle? 16:49
gaal lypanov: this is certainly not a sane devel env :)
lypanov in what senses?
it could be improved further? 16:50
gaal lypanov: when you're zeroing in on a feature, as you've discovered, you needn't build the whole thing and you can -O0. so quite fast really
but then a test might take 30 seconds to run
lypanov 30 seconds is quite okay :)
gaal lypanov: we're pretty chaotic but we have fun. :-)
lypanov hehe 16:51
getting "precompiled prelude for js doesn't exist yet"
whats that exactly?
gaal if you're interested in how long it's taking people to run the whole suite, take a look at smoke.pugscode.org
lypanov: you can ignore it for now;
lypanov it only happens the once then?
gaal one of the backends pugs has is JavaScript 16:52
lypanov aha
gaal (you can write code in p6 and have it run in your browser!)
lypanov (neat ;))
gaal yeah, it won't happen often and it doesn't take very long anyway
lypanov ponders taking a day out to write a javascript backend for his own evil
gaal i'm sure it's possible to make it switchoffable, but we don't want to bloat the build system 16:53
lypanov /me nods
okay. must run for real now else i'll miss the train
back in a few hours
gaal bye :)
lypanov thanks very much for the help gaal, theorb, ingy, kolibrie, and other people i can't find in the scrollback history 16:54
kolibrie lypanov: you're welcome
ingy :) 16:55
theorb doesn't think he did much, but you're welcome for whatever I did.
17:19 sapper left 17:32 sjl joined
rafl ingy: ping 17:39
17:44 gantrixx joined 17:53 bsb joined
ingy rafl: pong 18:00
rafl ingy: Is YAML >0.50 100% backward compatible? And does it fix the two YAML bugs that were reported in the Debian BTS? bugs.debian.org/libyaml-perl 18:01
ingy rafl: I made it pass all the old tests. I added a bunch of new tests. fixed a bunch of rt tickets with new tests. etc 18:02
I think it's a good release 18:03
but I can't guarantee 100%
rafl ingy: OK, so I don't need to fear upgrading it in Debian. Great..
ingy that's not really possible
yeah, i would... 18:04
rafl As long as it's kind of backward compatible that's fine. So it wont break all applications that rely on it.
ingy let me look at those bugs
rafl Thanks.
ingy I have specific tests for svk and META.yml ;)
and I am in a good position to fix bugs quickly 18:05
bsb ingy: did you work out /20\d\d/ in haskell? 18:07
ingy bsd: audrey did :)
bsb hey, that's cheating 18:08
rafl ingy: I don't have time to verify those bugs currently.. two new jobs, my girlfriend had a car accident, etc.. so it would be nice if you could check that and reply to the Debian bts.
ingy the pattern simply needed to be a list
rafl ${bugnr}@bugs.debian.or that is. Or ${bugnr}-submiter@bugs.debian.org if you need to ask the submiter something.
ingy '2':'0':_:_:[]
iirc 18:09
not that I grok it, bsd :-)
bsb I got something like that eventually
gaal but that's /^20\d\d/
ingy grr, bsb
gaal err, that's /^20\d\d$/ even!
rafl needs to go. Bye! 18:10
bsb plus another case or two to bump: _:xs = fn xs
ingy audrey has the code unfortunately
bsb what was it for? 18:11
gaal ingy: :[] means this ends the list
$ in regexp-speak :) 18:12
not that this is a regexp
18:33 eric256 joined 18:34 eric256 left 18:41 avar joined 18:44 Southen_ joined 18:45 avar joined 18:48 avar is now known as \xe6var 18:53 \xe6var joined 19:11 r0nny joined 19:28 dduncan joined 19:41 ebvv joined 19:42 ebvv left 20:02 vel__ joined 20:10 vel__ left 20:15 vel joined 20:22 penk joined 20:28 nnunley joined 20:47 vel joined 21:04 putter joined 21:05 vel joined
putter One-year anniversary of pugs is coming up. Perhaps an opportunity to reflect, and to plan. 21:05
kolibrie gosh golly, that was fast (in retrospect) 21:06
putter yeah
slow too though 21:07
;)
21:09 vel joined
putter Journal entry is up. $job pushes us back another couple of days. 21:09
Someone remind me - Why did the perl community collectively decide it was worth delaying perl6 for half a year in order to save $20k? Are we planning on making the same choice this year? 21:11
21:11 trym_ is now known as trym
\xe6var putter: what was that about, hadn't heard about that... 21:11
integral didn't here this one either (yet) 21:14
and I've never seen the "perl community" make a decision ever...
putter audreyt self-funded for half a year. we needed ~$3k/mo for $job == pugs. didn't find it. so $job != pugs, and pugs gets the timeslices left over after $job and life. 21:16
integral oh. Did audrey apply to TPF in the end then? 21:17
putter I don't know. at one point I asked them "what's going on here?"... my fuzzy recollection is the answer was one of limited funds and interest. 21:22
21:24 Juerd joined
robkinyon I think it's because Pugs is seen as competing with Parrot vs. complementing it 21:28
maybe it's because audreyt & co are -too- successful
integral and both Parrot and Perl 6 have a lot of real perception problems further out in the "community"
putter TFP grants seem to focus on the $5e2 to $5e3 range. news.perlfoundation.org/2005/12/the...we_do.html 21:33
the -too- successful seems to conspiracy-theoryish. but I've repeatedly seen generally well informed perl folks with very little clue about perl6 and/or pugs. 21:34
s/to/too 21:35
integral hmm, we do now have binary packages in pxperl and debian (at least), I wonder if there's not some scope for a perl6 tutorial that for the first time people can try themselves? 21:36
21:38 hcarty joined, hcarty left
putter could be. certainly once the new runcore is in and working. the docs/ tree could also use updating. 21:40
robkinyon putter: Conspiracy theories are still theories. :- 21:41
:-)
integral yes, it'd be nice to have an example which runs faster than perl5!
Kattana i have not seen anyone with any clue about perl6 let alone parrot
the info is not out there, and it takes alot to figure out what is going on and how to get something working. 21:42
integral although one thing would be nice to have IMHO would be some kind of frozen perl6 spec, so you know ??!!'s not going to change again, and the like
PerlJam Kattana: What info are you looking for?
Kattana i just spent the weekend catching up myself.
integral hmm, do we use the pugs kwiki much? 21:43
sili no
not enough
Kattana well right now i still to actualy try writing something, just to make sure its working, and to do that i have to find what the actual current perl syntax is
*perl6
integral should throw up some pointers from the wiki into specific parts of doc/ 21:44
PerlJam Kattana: The synopses show you the most current thinking on perl6's syntax (and occasionally semantics too)
putter there is ./docs/getting_started explicitly begging to be fleshed out... 21:45
integral admits to having given up reading p6l again
integral thinks up a new trick: reading docs using vi instead of less
PerlJam p6l hasn't had much activity lately. 21:46
Kattana yes, i know all that now, but i was speaking generaly before, peopel can not get something written without jumping through a lot of hoops
putter thinks "ah, good trick integral"
PerlJam Kattana: I can write all sorts of things without jumping through hoops. 21:47
Kattana: unless you count "starting an editor" and "typing" as hoops :)
Kattana you already have everything, and all you need to know
integral just dumped links to .../docs and getting_started on the wiki frontpage 21:48
PerlJam Kattana: and if what I'm trying to do is on the fringe of what's known, I get a shot at extending reality the way I want
integral PerlJam: that's very scary.
PerlJam integral: until we have a perl6 compiler (the real deal, not pugs) just think "there be dragons here" always 21:49
integral people don't like dragons. Is there not even a core of a language that can be firmly, and very loudly declared to be frozen? 21:50
putter integral++ #links 21:51
PerlJam given and when aren't likely to change syntax ever. variables will keep their sigil. The C-derived bits aren't likely to change.
sjl i'm probably not the first person to ask this, but when will we have the real deal ?
PerlJam ~ as string concatenation has gone enough rounds that I think it won't change. 21:52
integral okay, I'll write a .../frozen_perl6_syntax
*../docs/...
Kattana Is there a page with smoke-like test results for parrot? I have not seen a good status page of whats works that I could compare with pugs smoke tests.
PerlJam sjl: expect an alpha compiler this year. Expect a *real* compiler within the following 2 years.
sjl: Expect something worthy of replacing perl5 in about 5 years. 21:53
sjl seriously ?
webmind sjl, perl5 and cpan is big
integral Kattana: yep, smoke.pugscode.org
Kattana sjl: if you want it faster get to work ;)
integral Kattana: try pugs.kwiki.org it seems to have a good crop of project links on it
PerlJam sjl: Well, that's how I've currently calibrated my expectations. Whether that's accurate or not depends on the time and energy people can devote to the project. 21:54
integral oh, parrot oops, I mean smoke.parrotcode.org should work
21:54 theorb joined
Kattana see, there should be a link to that on the main site. 21:54
trym PerlJam: are there no financial resources being put into the project?
integral the parrot website has been badly maintained for ages :-/
PerlJam trym: last I looked, very very little. 21:55
sjl <Kattana> sjl: if you want it faster get to work ;)
trym PerlJam: what about companies that make tons of $$$ utilizing perl ?
sjl what do you need me to do ?
Kattana hmm, does not give me any info i can use to compare the two either, at least not untill i fiure out what all the tests mean, along with the pugs ones. 21:56
trym If any of my projects that utilize perl makes it "big".. I will be sure to donate a fair percentage to perl development
PerlJam trym: What about them? They already have perl. Why would they need perl6?
nnunley It is adiffere
trym the same reason people would want windows XP instead of windows 98 21:57
except of course the gap is bigger
integral trym: because microsoft dropped support for it?
nnunley Ugh. It's a different beast.
integral people still use 5.4 and earlier which are unsupported.
Kattana winXP has M$ selling it to them tho, no one is pushing perl6
PerlJam trym: "the problem" is that nobody has marketed perl6 in that way.
trym "it still works" does not seem to make people stop want new stuff
sjl i have some different concerns....
trym the perl6 project should aquire a marketing genious.. it shouldnt be hard raising a few millions 21:58
which would speed up the development process by a lot
PerlJam trym: That would be some trick.
sjl i have loved perl for a number of years, and have used it at least to some degree in my work wherever i went, and now i find myself looking for my next gig....
and the need to perl seems almost non-existant
nnunley The market share that would tend towards perl6 have moved instead towards Java, C# and to even higher level constructs. It's going to be a long battle winning them back again.
trym sjl: how so ?
sjl like it's fallen out of favor with business
PerlJam trym: "Wanted: a self starter who can raise money for the perl6 project. Oh, and by the way, you'll need to raise the money to pay yourself too"
trym PerlJam: there are idealists out there 21:59
sjl maybe it's just my location, but i'm rather dissapointed by it
trym sjl: well maybe you should stop waiting, and try finding or creating?
PerlJam sjl: it's just a programming language. There's no "need" that perl can fill that can't also be filled by python, ruby, or php (for instance) 22:00
trym in most cases its a matter of preference
sjl perljam, the opposite is true as well, so why are people chosing the others over perl ?
trym but I see huge advantages of using perl instead of say python or php in many cases
PerlJam sjl: personal bias, propaganda, etc. 22:01
trym: such as?
trym PerlJam: developing web applications 22:02
putter integral: I wonder what the relative importances are of spec changes, things unspecced, and things simply buggy. remember all the dark greens are things which dont actually work yet. the last release was thus say a 1/4 to 1/3 test fail.
Kattana php has a company backing it and tools to help it replace java on the web, python has the new shiny clean maintainable look going for it, and its a good language
trym cpan deserves much of the creds for that
PerlJam trym: And why would I use perl there instead of PHP? 22:03
trym mod_perl.. HTML::Mason
PerlJam: ease of use, cpan, preference and just google for perl vs PHP.. and you'll find lots of reasons
PerlJam trym: most of those reasons don't matter to getting work done.
trym PHP (at least >= 4.x) is hopeless if you're developing something bigger than a webshop
integral putter: sounds like I could just sit down and get some tests unTODOed then
Kattana perl is not made for anything bigger either 22:04
PerlJam trym: to continue playing devil's advocate, why would I choose perl when php is ubiquitous on apache installations *and* comes with everything under the sun (i.e., no need for CPAN because it's already included)
trym PerlJam: well it surely matters. It can cause slower development, poorer development - leaving the application more vulnerable. Reducing the maintainability etc
putter Kattana: would something like www.zenspider.com/Languages/Ruby/QuickRef.html have helped?
PerlJam trym: see, you're arguing things that are essentially language agnostic. 22:05
trym: Just alike anyone can write a poor perl program, anyone can also write a good php program
php programs can be made as secure as perl programs.
Kattana putter: that looks good, but a little concise, with all the things going on with perl6 some explanation would be good
trym sure can
sjl not to the same degree as perl
trym but you have to put more effort into it 22:06
php is not a designed language
its a farking patchwork
integral argh, smoke reports are too wide in my browser :-/
PerlJam php programs can be developed as fast and as well as perl programs.
putter integral: maybe after the release (to get that out the door and out of the way)? perhaps also after the runcore is swapped, so it's easy to see regressions? or not..
sjl depends on who's developing them perljam
integral putter: I really, really, really hate release freezes; OTOH I use svk so local branching is easy.
PerlJam trym: who says you have to put more effort into it?
trym PerlJam: I do ;) 22:07
PerlJam sjl: right. So the programming language doesn't matter. Any choice is equally valid. Soo why would someone choose perl?
trym and I think a few people would back me up on that
putter svk++
integral it's irritating to finally work up energy to just get on and do something but have to wait for a release :)
integral is just bad with working with others really
putter oh yes :)
Kattana hates the "others"
sjl perl is amazingly flexible
trym PerlJam: any choice of language might be "valid".. but its not optimal.. and it might even be stupid 22:08
Juerd bends perl
putter err, "oh yes" re energy and wait, not others ;)
trym you wouldnt code most web-applications in C
Kattana so flexible anyone can tie perl in a knot and hang themselves with it.
Juerd 23:15 < PerlJam> php programs can be developed as fast and as well as perl programs.
trym but you could.. and it wouldnt be an "invalid" choice of language
Juerd PerlJam: That VERY MUCH depends on the kind of program.
sjl and that 'flexibility' can lead to absolute garbage code, but it can also lead to very elegant solutions
Juerd PerlJam: But for web applications especially, you're right
PerlJam Juerd: sure. Still playing devil's advocate :) Why would someone choose perl?
Juerd PerlJam: Because of CPAN 22:09
trym Namespace support is something that comes in handy when developing larger applications
Juerd CPAN's Perl's most important selling point
PerlJam Juerd: CPAN is even losing it's luster now that there are CPAN-a-likes springing up
Juerd Manipulexity and whipituptitude are important to hackers, but ignored by many ignorant decision makers
sjl perljam, you would pick perl because of it's potential
PerlJam Also, note all the trouble on CPAN between EU::MM and MM::B
er, M::B
Juerd PerlJam: Very true. 22:10
integral haskell, ruby etc all have those.
Kattana PHP has pear as perl has CPAN
sili except cpan doesn't blow
integral python comes with lots of modules, you don't have to use a silly shell that can't format it's prompts properly
Juerd In my opinion, M::B makers should have made it interface-wise compatible with E::MM from the very beginning.
PerlJam sjl: No one chooses a programming language for what it may be able to do tomorrow. They choose a programming language for what they can do with it todya.
sjl if i were given a complex web task and a team of smart coders, i'd pick perl, if i had a team of fools, i'd go with php 22:11
Juerd And the community should have supported M::B earlier on.
PerlJam Juerd: amen to that.
Juerd And we need CPANPLUS to succeed, which means designing it by a more diverse committee.
But fortunately, Perl 6 will fix all this.
(...)
sjl real men install by hand
integral there is no CPANPLUS or M::B written in perl6 yet. 22:12
I'm sure pugs already has all the features needed to write one.
Juerd integral: No, much smarter solutions are being invented :)
integral: Ask rafl and kane
integral I'd just like something that works please.
22:12 Amnesiac joined
PerlJam indeed 22:12
integral things can really suck, but still be useable if 70% of users can use the "Quick Start" instructions 22:13
sjl how have business needs shaped perl6?
PerlJam sjl: um ... they haven't. 22:14
business needs are satisfied by perl6 purely as a side effect.
trym PerlJam: I know you're playing devils advocate here.. but there are reasons to prefer perl to other languages. Otherwise you wouldn't be here. But I do honestly believe that if marketed properly, one should be able to raise money and resources to speed up perl development
Juerd integral: Why do you assume it will not work? 22:15
PerlJam trym: I'm here because I've used perl for 13+ years and will continue to use it in the future. But I'm not a language zealot and so will use whatever works :-)
Juerd integral: I also like simple solutions that "just work", but the world of platforms and compilation to binary is tremendously harsh.
integral Juerd: My assumption isn't that, it's that it'll take years and years, and the implementation will lag behind the designing
sjl business needs are satisfied as a side effect? 22:16
Juerd integral: As does Perl 6 itself.
integral: I'd say they're currently pretty much in synch.
PerlJam trym: btw, can you turn that belief into something tangible for perl6?
trym PerlJam: I'll do my best
integral Juerd: do you have a repository url?
PerlJam trym++
putter Hmm, a company is funding parrot $70k news.perlfoundation.org/2005/12/par...shmen.html
Juerd integral: No. What makes you think there is a repository? 22:17
trym PerlJam: A guy I know just donated $40k to a school linux project
integral Okay, how do I download the implementation then?
Juerd integral: What makes you think there is an implementation?
PerlJam trym: Well get him to donate $40k to perl6! :)
trym PerlJam: I'll try :) 22:18
Juerd integral: What makes you assume your current attitude?
integral Juerd: So zero implementation? So if that's instep with the designing, there must be zero design.
sili wtf 20 questions
trym But I have a few interesting projects going on that utilizes perl.. if they are successfull.. I'll give a fair percentage to development of perl6 and the smaller components I use
Juerd integral: Execute reality check
integral huh?
PerlJam integral: have you been reading aevil's blog or talking to her otherwise? 22:19
integral I don't understand, I was trying to be straight for once
22:19 ajs left
integral You said rafl and kane were working on something, but I don't know where they're doing that. And I thought you would know. 22:19
22:19 _SamB_ joined
Juerd integral: There was a kwiki, but it's down at the moment. 22:19
integral Well, okay, so you mean there's actually nothing? 22:20
sili yay for not
integral PerlJam: hmm, I do read her blog occasionally, but for the food :) 22:21
Juerd integral: Sorry, I don't like the tone. I'm terminating our conversation, to avoid losing my temper.
22:21 drbean joined
integral okay. 22:21
PerlJam integral: well, go read something a little more upbeat. You're starting to sound like he :) 22:22
s/he/her/
sili hahah
integral goes back to looking for easy TODO bugs
Juerd integral: Ask rafl to start his apache, or look in feather:~rafl/sixpan/htdocs/sixpan/database 22:23
putter Kattana: what about a "wizard"-like web page? eg, a text box, and buttons "insert definition of" <sub>, <method>, <multi method>. "insert argument", etc. ?
integral thanks! Juerd++
Juerd Or Google for sixpan when Google's cache is back online. 22:24
Kattana putter: i dont quite follow you, but something simple is best imo. 22:25
PerlJam: link to blog? trying to cover all the bases while catching up with everyone 22:26
PerlJam Kattana: um ... which blog? aevil's? 22:27
Khisanth google offline?!
PerlJam if so, you're asking the wrong person. I actively ignore aevil these days
integral aevil says little to do with perl these days afaics 22:28
Kattana PerlJam: yes. 22:29
PerlJam integral: good. Her perl prose is too depressing or filled with too much vitriol
sili try not to use words i don't know...
PerlJam sili: How else are you to learn new words? I'm here to educate you! ;) 22:31
sili aye.
putter "something simple is best"++ 22:32
integral ./pugs -Iext/Cipher/lib -Iblib6/lib ext/Cipher/t/arcfour.t # which doc would tell me this was how to run one test? 22:33
sili it's hidden in the mailing lists.
like everything else
PerlJam integral: um ... that's ye olde standard perl method for running one test except we've substituted pugs for perl. 22:34
integral is the svnbot not running?
PerlJam: except I keep forgetting to say blib6 and not blib, and normally I use the blib module.
putter ./lib/pugs/hack.pod?
PerlJam integral: yeah, I do that too :)
integral eh? what's the difference between ./lib/pugs and ./docs?
putter ?
integral How do I know which to look in to find something out? 22:35
putter re 6pan, there's misc/sixpan/
re lib/pugs, let's see...
integral ah, misc/sixpan looks like what I was asking for 22:38
putter I guess the theory is pugs::run and pugs::hack get p5-installed. man pugs::run. docs/SEEALSO points to them. 22:39
integral ah, I don't install things I'm developing, so I rarely use man near them
putter me neither. I'm hypothesizing. 22:44
22:49 _SamB_ is now known as SamB
integral ah, Cipher::Arcfour appears to be broken because method lookup isn't working :-/ 22:51
putter :/ 22:53
integral hmm, so can someone explain to me whether the new object metamodel thingie is used when using the old evaluator? Or is this something else that needs to wait until the great switch over to PIL? 22:54
putter my understanding is great switch 22:55
integral appears to be getting closer to yak shaving with every step 22:57
putter snifs. you smell wet yak hair? 22:58
which yak?
integral PIL2 evaluation
integral hopes it's not a yak herd 22:59
22:59 bsb left
putter (please don't say the unshaven one...:) 22:59
integral hmm, there appears to be a PIL2 evaluator but not plugged into the pugs frontend, so that appears to take me back to rewriting Pugs.Run again 23:00
sili what's pil
putter "yak shaving is what you are doing when you're doing some stupid, fiddly little task that bears no obvious relationship to what you're supposed to be working on, but yet a chain of twelve causal relations links what you're doing to the original meta-task."
Juerd Wasn't pil2 obsoleted by piln? 23:01
sili maybe, what's pil?
integral ugh, I just picked the highest number I saw :-/
Juerd integral: n > 2
Or, at least, it can be. 23:02
:)
putter p6->pil2->piln pil2 is an unsugared p6, piln a minimalistic "kernel" language. 23:03
sili that sounds confusing.
putter src/PIL
integral okay, sounds like a frontend would be useful anyway. Just tell it what you're feeding it, and what you want out avoiding the current scary arg parsing and decisions on what to do 23:04
sili source is not documentation
:(
Juerd sili: Yes, it is.
integral haddocks? 23:05
sili Juerd: ok, i'll share that with my coworkers and lead
"dude, just read the source. trust me, it's documentation"
integral sili: nothingmuch.woobling.org/pugs_test_...k/PIL.html
putter pil2 is similar to pil1. piln is a "vm" low level representation, so backends dont have to build high to reach pil2 support (thus introducing incompatibilities, and duping work)
sili thanks
integral is there a reason we haven't dumped all the PIL1 source yet? Is it needed for reference?
sili isn't that what cvs and archives are for? 23:06
Juerd sili: That's the important difference. We're not commercial here, or working with any organisational structure *whatsoever*
When people feel like writing code, but not like writing documentation, we get undocumented code. We should be grateful for that.
Or so I believe.
putter err, aren't we still using pil1? or have we switched over to pil2?
integral depends what you mean by "using". If you just run pugs you get the original evaluator that's running straight off the AST without any PIL* 23:07
sili sounds unproductive
putter ah.
and pil2js... 23:08
stevan_ sili: it is -Ofun :)
integral but if stuff like the JS is using PIL1, one question is: can it be forward ported to PIL1, or will it need rewritten?
sili maybe even... backwards productive or something
23:08 stevan_ is now known as stevan
integral if the latter it can get junked 23:08
stevan integral: PIL2 is very diff from PIL1... I doubt much can be saved,.. but then,. not as much is needed :)
Juerd sili: Though if you do feel like writing documentation for things that others didn't like to document, feel free :) 23:09
integral sounds like we just need someone brave with a delete button then
stevan sili: the goal of the pugs project is not to create the "official" perl 6,.. but to experiment with Perl 6
integral so it can wait til after the next release and everything
sili stevan: that's fine
stevan integral: eventually yes, but right now you would break a lot of stuff doing that :)
23:09 nothingmuch joined
Juerd integral: You have that delete button, I think. Are you brave? And probably more fundamentally: do you have spare tuits? 23:10
sili stevan: i think the bottom line is that i'm a noob and would like to help, but have no direction. i have some incomplete or outdated specs, various docs in various places, and the whole process is difficutl and i hate life
integral well I hesitate because audrey suggested that it was best leaving these things for the next release, then junking :)
nothingmuch evening
stevan sili: yes, it is a little messy right now, sorry bout that :)
integral sili: sounds like a job for the Samaritans rather than p6c...
stevan hey nothingmuch
Juerd sili: Hey, that's my world. 23:11
putter hi nm
23:11 theorb is now known as theorbtwo
stevan putter: re: "why is pugs not funded", that is a choice audreyt made a while back 23:11
as for how we releate to the "official" Perl 6 project,.. thats kind of fuzzy
integral I don't think audrey ruled out other people being funded for pugs work 23:12
stevan integral: nope :)
I actually applied for a TPF grant to go to YAPC::Asia hackathon with Larry & Damian
Juerd 00:20 < stevan> putter: re: "why is pugs not funded", that is a choice audreyt made a while back
stevan crosses his fingers and knocks on all available wood
Juerd Though I think one can be personally funded to work on pugs 23:13
Which would fund the person, not the project.
stevan Juerd: in a way, my boss is helping fund pugs since he is allowing me to spend my spare work cycles on it
nothingmuch stevan: but your boss also understands the benefits of letting you do that 23:14
stevan your company is funding pugs by providing feather
nothingmuch mediocre programmers are noncurious ones
stevan nothingmuch: exactly :)
Juerd I think the wikistyle open source development of pugs cannot prevent this. And I believe nobody should feel obliged to make the same decision Audrey made.
stevan Juerd: of course,.. but I dont think the money is their anyway
Juerd stevan: That's very nice of your boss.
stevan too much is being pushed towards Parrot
Juerd s/their/there/?
nothingmuch wonders if when speaking in past tense you say "autrijus decided" or "audreyt decided" ;-) 23:15
stevan Juerd: yes,.. thanks :)
Juerd nothingmuch: Audrey.
stevan name change is retroactive
nothingmuch this is a philosphical silliness discussion
Juerd nothingmuch: At least that's what appears most sane to me.
nothingmuch oh
i didn't know that was formal ;-)
Juerd stevan: I don't know. I can imagine that there may be corporate backing somewhere. 23:16
nothingmuch this reminds me of that book in THGTTG
Juerd stevan: Or perhaps a university.
stevan Juerd: maybe
it would be nice
nothingmuch the grammar book, for when you go to the resteraunt at the end of the universe
Juerd stevan: After all, this is in some ways rather groundbreaking research.
nothingmuch restraunt?
damnit, i need to get autospellchecking in the terminal
Juerd restauraunt
stevan however, TPF owns the copyright, so I would expect they would need to be involved
nothingmuch damnit
integral nothingmuch: "willont goinging on to the restaurant..."
Juerd PECTOPAH :)
stevan unless we forked Perl 6 (no I am not serious)
nothingmuch integral++ 23:17
tr/f/b/;
integral we fork it implicitly by what we choose to implement, and say to p6l...
Juerd stevan: Copyright to what?
stevan Juerd: Copyright to perl 6 IIRC
Juerd stevan: Copyright to what substance?
stevan Allison has been doing a bunch of legal stuff re: Parrot,.. I assume Perl 6 is included somehow
Juerd I see
Khisanth wonders how you can fork something that doesn't really exists yet 23:18
Juerd Is there a license? Otherwise pugs might be illegal.
putter eats an imaginary olive
Juerd curses obligatory intellectual property
stevan Juerd: no idea,.. best to ask TPF maybe
if you care that is
Juerd I don't 23:19
stevan doesnt either :)
unless of course we start a p6l mutiny in which case it might be a good idea to start caring
Khisanth well even if it was illegal, anyone actually trying to ..."enforce" it would likely be lynch :) 23:20
stevan Khisanth: well considering we are doing thier research for them, I doubt they would mind ;)
integral and we're very geographically diverse too
Juerd integral: And work without paper, without licenses, without contracts.
stevan of course that assumes they actually use the things we have learned/discovered/etc
stevan disappears into the Perl 6 underground ... 23:21
putter so what parts actually exist at this point? parser->pil2 complete pil2 (class defs and all)? pil2->piln? piln engine?
Khisanth stevan: who knows, people have always done stupid things for various immutable principles
stevan always wanted to work for some clandestine organization
Juerd integral: To license anything in pugs, all the developers who have worked on the file in question and closely linked subsystems, would have to be contacted and would have to agree. But that legal crap is impossible, so the semi-legal path is more likely to be followed.
Already-licensed parts are fine, of course. 23:22
stevan putter: PIL^N still needs work, but my tuits currently need to be used for $work
Juerd -Ofun and -Ilaw often clash.
putter which part(s) of piln need work?
stevan putter: the Container types need fleshing out 23:23
integral Juerd: hmm, README implies that the whole lot is already licenced. Dual gpl2 and Artistic2.0beta5
stevan and the instance creation part of the metamodel needs work to support them
Juerd integral: GPL has more strict requirements. Every file needs to start with a shitload of legal info.
putter stevan: is there enough there to bootstrap? ie, is it a bootstrap, sanity, or test suite issue? 23:24
Khisanth so it's already violating the license? :)
Juerd Just saying "it's GPL" doesn't make it validly GPL.
integral has given up on doing anything with the GPL as it's just too complicated
Juerd It has to include the entire GPL in a file called COPYING or LICENSE, IIRC
stevan putter: well if you leave the containers out, the bootstrap is there
the roles implementation is still broken,.. but thats probably better done in P6 anyway
integral while we put it in LICENSE/GPL-2 *sigh*
stevan putter: we probably have enough to hack PILN into a new runcore 23:25
but in order to do that we need PIL2 designed/implemented and the PIL2 -> PILN compiler
and that is audreyt territory,.. not stevan territory
putter one can bootstrap without containers?!? neat. what exactly does the bootstrap bootstrap? what shape boot? 23:26
stevan putter: it just bootstraps the class system
s/class/class-object/
the containers are implemented on top of that
and so is the roles system
putter packages and modules? 23:27
stevan in the class/object system
Class.isa(Package)
Class.isa(Module), Module.isa(Package), Package.isa(Object)
putter: see perl5/Perl6-MetaModel/docs/*.jpg
putter so there's some "bootstrap" p6 to be written, to set up roles and such, before the rest of a p6 prelude can run 23:28
stevan putter: depends on what the p6 prelude has in it
integral &
putter and set up containers of course
bye integral &
stevan PILN is still a long way away from Perl 6,.. thats the gap PIL2 is supposed to fill
putter right 23:29
Juerd I had assumed that piln superseded pil2, but it appears my casual reading of the blogs wasn't enough.
putter thinks, hmm, implementing roles in p6 is a great opportunity to add lots of unspecced flexible meta stuff... ;) 23:30
stevan Juerd: think of PILN as like PIR, and PIL2 as ... well... nothing equivalent in the Parrot world
putter: the unspeced flexible meta-stuff is in the core metamodel already :)
putter :)
stevan thats how we can do roles :)
roles are very simple really
its the conflict resolution stuff thats a real pain
putter conflict resolution stuff? 23:31
stevan cause we need to be able to check for conflict when roles are composed together
but those conflicts dont do anything
they are in stasis
because a role which composed those two could have resolved it
putter why a pain?
stevan pain in PILN 23:32
stevan really has to run,.. dinner time
23:32 scook0 joined
putter ahhhh. 23:32
bye stevan &
stevan I will be back on later.. read S12 and the Perl6-MetaModel stuff,.. see what you can figure out
I would love some help on this,. :)
stevan & 23:33
putter ok, so piln boots classes, but not datastructures or roles. roles arent really that complex, but complex enough that you want datastructures. but the normal datastructures are likely defined&implemented using roles. hmm... 23:34