Mir GLAS is a C library and passes Natlib's test suite! And questions :-)

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Thu Oct 27 20:44:05 PDT 2016


On 10/27/16 3:59 AM, Ilya Yaroshenko wrote:
> Mir GLAS (Generic Linear Algebra Subprograms) has its own repository [1]
> now.
>
> Big news:
>
> 1. Mir GLAS does not require D / C++ runtime and can be used in any
> programming language as common C library! See read README [1] for more
> details.

Cool work!

One thing I'd want to understand is how to use Mir GLAS from within D 
itself. If it's a straight C interface, there seems to be a fair amount 
of friction (we have a D program communicating with a D library through 
the uncomfortable confines of a C interface). Is that the case? Should 
there be a way to short circuit the C API and use a more expressive D 
interface? (Looking e.g. at Eigen, it's meant to allow people using it 
from C++ to take advantage of a C++-specific smooth interface.)

> 6. GLAS is no longer distributed as a generic library. Level 2 and Level
> 3 generic API will be removed from Mir. There are few reasons why it is
> much better as precompiled library, and no reasons why it should be
> generic. In the same time, generic multidimensional Level 1 routines
> will be improved.

I guess I'd like to understand the dynamics better here.

> Questions:
>
> 1. Would you like GLAS be packed with Phobos?

You have all support from Walter and myself for integrating GLAS with 
Phobos. Before that I'd want to make sure we slice and dice things properly.

> 2. Is it possible to make GLAS a replaceable part of Phobos? For example
> a user may want to use the latest GLAS without waiting a new compiler
> release.

That would be an interesting precedent. We should talk about it next 
week. (My knee-jerk reaction is if we're worth our salt we should 
release Phobos often enough to obviate the need for this. But the notion 
of hot-swapping subcomponents is cool too.)


Thanks,

Andrei



More information about the Digitalmars-d mailing list