On Wed, 29 Aug 2012 15:55:15 +0200 Lionel Cons wrote:
> On 29 August 2012 15:41, Glenn Fowler <g...@research.att.com> wrote:
> >
> > On Wed, 29 Aug 2012 15:23:25 +0200 Lionel Cons wrote:
> >> On 29 August 2012 15:10, Glenn Fowler <g...@research.att.com> wrote:
> >> >
> >> > we're going to take some research leeway and investigate the 
> >> > implications of {a}
> >> > we're not strangers to doing stuff like that (3d(1))
> >> > and we're not strangers to having research prove us wrong
> >
> >> Well, if you use {a} then please remove the mamfile code which
> >> generates libshell.so - libshell.a is sufficient to build ksh. So far
> >> a shared library of libshell doesn't make sense until it gets actually
> >> usable for embedding. Right now it doesn't work for that purpose and
> >> if you pick {a} over {b} then I don't see a chance that it'll get any
> >> better anytime soon.
> >
> > I'm not sure if you are pointing out problems with bootstrap build from 
> > source
> > or libshell.so built the right way with ast nmake -- the ksh93 Mamfile has
> > no actions for generating shared libs -- it does have the capability to set
> > cc -c options to generate .o's suitable for use in generating a shared lib

> The problem is not packaging. I was trying to make a pun on the
> libshell API. It's just useless for anything except using it for
> writing a shell.

> The pun was: If it useless, why ship a shared library version of libshell? 
> Why?

> I say that because the usage of chdir() in libshell is a pain in the
> arse since other APIs may want to do the same (in other threads,
> libshell just running and used in the main thread) at the same time.
> We have that problem for example with the Gnome and KDE file selection
> dialogue which treat the cwd as their own property. Add libshell with
> another chdir() at the same time and you have a nice, confused
> application which bites itself into it's own arse. Add rm to the mix
> and the system gets bitten into its arse.

> That's why I like Olga's option {b}. It is a step forward into the
> right direction and even covers the case that someone might want to
> use libshell in a nested way (system() and wordexp() were given as
> examples).

the theory is that although any threaded app compiled with <ast.h>
may look like its using chdir()/fchdir() at the process global level will
in effect be using them at the thread local level in a thread safe manner

other libs could the real chdir()/fchdir() it in a global non-thread-safe
way and not affect the state of the <ast.h.> compiled code

_______________________________________________
ast-developers mailing list
ast-developers@research.att.com
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to