bug-apl
[Top][All Lists]
Advanced

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

Re: [Bug-apl] A call for justification of feature / library / extension


From: Juergen Sauermann
Subject: Re: [Bug-apl] A call for justification of feature / library / extension proposals (was Re: Tk/Tcl interface)
Date: Wed, 23 Apr 2014 15:39:26 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130330 Thunderbird/17.0.5

Hi Blake,

I believe your 1, 2, 3 below is exactly the current priorities of GNU APL and 3. is already
present.

We use shared libraries for extending APL so you don't need an extra developer lib
for that. The only thing needed is a header file declaring the functions available in
GNU APL (maybe not all of them), compile, and then dlopen() the lib in APL (which
is already the essence of GNU APL native functions).

I would not make such functions ⎕-functions, (see my previous posting) because
that would blur the line between user-defined and system functions.

/// Jürgen


On 04/23/2014 02:10 AM, Blake McBride wrote:
Greetings,

Your email sparked many thoughts.  Not that my opinion necessarily counts for anything, I think this should be GNU APL's priority list:

1.  Fix all known bugs and portability issues as they are discovered.

2.  Support all of APL's standard defined features (i.e. trace, stop, etc.) 

3.  Create a generic mechanism whereby APL can be arbitrarily extended without re-compiling its source.  This means creating a quad function to load, execute, and interface with shared libraries (so/dll/etc).  It also means standard ways of communicating data back and forth.  Doing it this way, all extensions can/should be done via shared libraries and APL glue code.  This way modules (shared libraries & APL glue code) can be added for component or keyed file systems, GUI libraries, Regex, XML, etc..  The APL source would have to be enhanced a bunch of times to increase the generality of its interface to the external object.  This would occur as limitations or inconsistencies are discovered.  After a time, this interface will stabilize.  I know GNU APL already has this, I just think it needs to mature - and it will as we hit the interface with a greater variety of needs.

Just thinking out loud for a moment, perhaps a GNU APL developer library can be built that the shared objects can utilize.  It would provide functions to translate APL objects to and from C/C++ objects and other functionality that would make it easier to write the extension modules.


You state:  "The obvious question is: Why would we want another open-source APL?"

Another?  There are only two other open-source APL system worth even mentioning:  NARS2000 & OpenAPL.

NARS2000, while good, suffers from two problems.  First it is (unfortunately and unnecessarily) bound to Windows.  The second problem is that it has insufficient persistence capabilities - only the rawest.  Already GNU APL puts it to shame.

OpenAPL is an old hack that was whipped together in a short time and never really worked.

IMO, GNU APL is a thing of beauty.  It's available in source, it's close to complete, it's portable, it is well supported by the author and the community.  And, with all the off-putting, insulting communities out there, the GNU APL community is fantastic!  I have waited 30 years for something like this, and I like and appreciate it!

So, I think there is nothing like GNU APL.  It is a gift.  As the generic interface is enhanced, and more modules are built, this could become extremely powerful.  In fact, I think GNU APL can surpass the APL vendors easily.  Given source access opens up the system to many, many developers.  Just think about Linux.  The stability and efficiency of Linux far surpasses that of Windows and even Mac OS/X.

With respect to the compiler bit, APL has always stressed the use of array processing rather than loops.  APL is at a good place with respect to the increase of multi-processors.  The value of a compiler decreases as one increasingly does thing in an APL/array oriented way.  The interpreter orientation of most APL's enables much or APL's development conveniences, appeal, and productivity.  I think an APL compiler is the subject of a different project.

Just some thoughts.  Thanks.

Blake







reply via email to

[Prev in Thread] Current Thread [Next in Thread]