Replies: 4 comments 13 replies
-
Hi, It makes sense to drop unrelated code that detracts from maintaining ksh, but I think it might help to clarify the last paragraph. Are you planning on shipping libast as AT&T intended, a sort of grab bag for useful functionality absent from libc, or just an auxiliary library for ksh? If it is the latter, you might want to consider rebranding it libksh93 or something to avoid linking conflicts. |
Beta Was this translation helpful? Give feedback.
-
Use of libast as a dependency is uncommon. The only applications I'm aware of that use it are the following:
Of the above applications, many already roll their own versions of libast, and cannot use the 93u+m version. The only ones for which compatibility is a relevant concern are dtksh and custom builtins. Functionality in libast that is used by neither 93u+m nor dtksh is most likely not being used by anything else. The vast majority of the currently unused libast code is only used by various tools in the AST toolkit such as |
Beta Was this translation helpful? Give feedback.
-
Also, I should separately add that the majority of the vmalloc code is obsolete and isn't currently being used at all. The original reason it was kept was so that the memory leak regression tests could continue working via the |
Beta Was this translation helpful? Give feedback.
-
I'm particularly interested in this. libast would be a very valuable tool in this case, but indeed #357 is a huge barrier. Limping along with these arcane hand-coded mamake files is rough. :/ |
Beta Was this translation helpful? Give feedback.
-
For a while in 2020/2021, there seemed to be some interest in our fork of libast, the library used by ksh93, as a separate entity that could perhaps be used by other projects. If I'm not mistaken, I think it was @lkujaw who was interested in that, but he now has his own AST fork (which has since gone inactive) and seems to have lost interest.
Meanwhile, bit rot looms; stuff that is not used is untested and may break because of other changes we make. It's also dead weight that is getting compiled, but not used.
One example is the obsolete hash(3) library which has been replaced by cdt(3). There's also the magic(3) library which is used by the AST version of the
file
command, which we're not shipping. And I'm sure the list could be made much longer; I haven't had the time or motivation to look into it so far, as there are still (!) far too many bugs in basic ksh93 functionality.Graphviz is also a user of libast, but they've stripped it down so much there is barely anything left. I don't intend to be that radical. But I don't want a lot of bit rot and dead weight either. That's an AT&T tradition I would not care to continue :)
On the other hand, at some point I'm going to get around to re-enabling the ability to build dynamic libraries (see the currently dormant #357, which at this point I'll have to port to the current code). At that point it will become possible to write other programs to dynamically link against libast, and hypothetically, someone could want some of that stuff we're not using.
Thoughts, opinions?
Ping @JohnoKing, @hyenias, any other interested party
Beta Was this translation helpful? Give feedback.
All reactions