[ic] Re: interchange and thread enabled Perl

Toni Mueller interchange-users@icdevgroup.org
Tue Apr 15 10:26:01 2003


Hi,

first: Thank you for the quick answer!

On Tue, Apr 15, 2003 at 08:50:38AM -0400, Mike Heins wrote:
> Quoting Toni Mueller (support-ic@oeko.net):
> > A quick overview on the current state of affairs would be very nice.
> Interchange doesn't use threads; but there are (as the authors of it

I didn't actually expect Interchange to use threads, but was a bit
surprised to learn that having threads in Perl breaks Interchange.
My expectation was that Interchange could be ignorant to the way
Perl was built.

> would readily admit) quite a few bugs in Perl's threads implementation.

Ok... I've also heard that before, and don't plan on using them
anytime soon.

> It appears that Perl 5.8.0's ithread implementation is much better than
> previous ones, which wouldn't even begin to run Interchange properly.

So the statement "Interchange doesn't even start" relates to 5.6.1
exclusively?

> But it is not good enough to work well under all conditions. Randy

Ok... I saw warnings saying something like "stick to low traffic mode",
but it seemed to be a requirement with _any_ Perl 5.8.0, even if Perl
threads are disabled... makes me slightly worried.

> Interchange pushes Perl pretty hard.

 ;-)

> Thus the new enforcement of the requirement. Before it was enforced
> by the fact that noone distributed a Perl with threads enabled, and
> the fact that Interchange wouldn't even start with threads enabled
> should someone build such a Perl.

As Chen Naor said, Perl with threads is becoming increasingly common
- I've also found this "enforcement" on a Debian unstable box
(aka "sid").

> Red Hat distributed their perl for 8.0 and 9.0 with threads enabled,
> which is *not* the default. This is an extremely bad decision; the

Well, it is likely to become the default pretty fast, but you seem
to suggest that I badger the guy who made this decision to get him
reverse it.

> than one in 1,000, and anyone seriously using such a program must keep
> up with the latest builds and modules to fight bugs.

This sounds like being only an option for full-time Interchange
developers and administrators, iow, "don't".

> In fact it sometimes seems as if the Python-heads there are trying to
> sabotage Perl. I don't think that is the case; but there is no rational

Do I understand correctly that Python threads are considered stable,
and that you mean that this is an incentive to switch or keeping
people away from Perl?

> reason to enable threads on Perl unless you are doing thread-based 
> program development. I know of no such programs in the Red Hat
> distribution; it would surprise me greatly if there are any.

If you are right - very likely - I guess that it was done for
educational reasons: Get people to see their stuff break...

> Someone made the suggestion we try to make Interchange thread-safe and
> actually use them. While this is a noble goal, it is simply not

Ugh. That probably wouldn't be highest on my priority list. You do,
however, implicitly emphasize that also people who do have Perl
installed by their host should probably look at installing their
own version of Perl, too.

> practical. Leaving aside the work that would need be done on Interchange
> itself, IC uses or can use dozens of other Perl modules, each of which
> would need to be vetted. The types of problems caused by defects in
> threadsafeness (sic) are also notoriously hard to debug.

Granted.

For a start, it would be sufficient if Interchange just were thread
safe. I don't know how hard this might be to achieve, or where to
look, however.



Best,
--Toni++