[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Omaha.pm] lines2perl: partition.pl



Paul Johnson wrote:
Argh - sorry about that.  Yes, there are a few LifeLines functions which
I haven't implemented - including all the functions since LifeLines got
its new lease of life.

Did LifeLines (almost?) die at some point? Are you trying to bridge the work into the next generation through your Perl re-write? It'd be terrible to lose all that amazing software to the sands of time... It's a little scary all the LifeLines copyright notices end in the mid 90s. :)

Paul: The speed's not really usable, so I'm not going to try to submit a gengedcom() Perl conversion to you. Any thoughts on the speed front?

Hey - that's a lame excuse ;-)

As far as speed is concerned, LifeLines is a far less capable language
than Perl, even with the new functions.  Combine that with a fairly
mechanical translation into Perl, and you have the potential for a
(un)reasonable slowdown.

I'm sure Perl is infinitely stronger for thousands of tasks. I'm amazed that Perl bends so well to the one thing the entire LifeLines language was invented for. You're an amazing sort of mad scientist. :)
The good news is that using Gedcom.pm doesn't have to be slow.  For
example, here is code that implements option 1 of partition.ll, that is
it will print out details of all people in each partition of the
database.  It uses the same algorithm as partition.ll - in fact I
created it but cutting down the lines2perl translation.  It runs quite
fast ;-)

Wow! I called your script partition_option1.pl. It is QUICK! And it ends up with the same result as the LifeLines -- 4120 people in the primary partition of my GEDCOM, 19 junk partitions. Sweet...!

Perhaps I'll install LifeLines and see if the original script works OK or not.

Looks like it did in this case, but the relation script didn't.  Did you
try the relation script natively?

Here's my scorecard:

relation.pl: Fast, but lied to me twice, reporting no relation between me and 2 of my relatives.
relation.ll: Fast, and identified relations that the Perl version had me convinced didn't exist.

partition_option1.ll: Fast.
partition_option1.pl: Fast, exact same results.

partition_option2.ll: Fast, split my GEDCOM for me.
partition_option2.pl: SLOW, blew up.

So since partition_option1.pl CAN correctly identify all the partitions very very quickly, there just must be something in the lines2perl translation process that makes the attempt of a GEDCOM output format unbearably slow in the .pl version... with an explosive finale! :)

And I don't know what the deal is with relation.pl. I could try to debug it or write a test set for you that demonstrates the problem... I'm not sure I could ever tackle the underlying language translation patch(es) that would be needed... Do you ever "bless" tweaked Perl scripts as ports of the LL scripts, or do you always try to patch lines2perl?

Thanks for all your help!!!

j
http://jays.net/genealogy