Compatibility of Smallapack with Squeak:

Smallapack is not yet ported to Squeak. Here are some clues.

Squeak already has
    - Squeak.Complex class which does not implement #conjugated nor (aNumber i: aNumber) extension. This is easy to add.
    - Squeak.Matrix class with row-major order; Smallapack is column-major due to FORTRAN...
    - Squeak.FloatArray class which is roughly equivalent to Smallapack.RawFloatArray

Squeak has Float class which corresponds to VisualWorks Double (IEEE 754 double precision 64bits).
Thus, there is the traditional name clash as Smallapack extends VW.Double and VW.Float.

Squeak has not
    - VW.Float (IEEE 754 single precision 32bits)
    - DoubleArray... easy to add, since the Squeak.ByteArray implements #doubleAt: #doubleAt:put:...
    - Namespace (still under work as I understood) - minor problem: we do not really need it

Concerning DLL function calls, Squeak has what is required:
    ExternalAddress /  ExternalData
    ExternalLibrary
    ExternalFunction

The declaration of functions does not follow exactly C-syntax but an intermediate Squeak syntax...
One will have to Parse the VW.C-Syntax and generate Squeak-Syntax automatically.
(do not ever think of converting that code by hand !)
Isn't there anyone having performed this Job yet ?

ExternalLibrary just have a simple name. No search path, no multiple libraries (or is it automatic ?).
Platform dependent settings should be done before using...

Compatibility with Squeak.Matrix

Concerning Squeak.Matrix, I have implemented most compatible protocol.
It should be really easy to switch, except if one use explicitly row-major-order tricks.

However, I did not implement the #new: #new:element: and #new:tabulate:
As stated in method comment, redefinition of #new: is very questionnable!
Think of using #shape: #shape:element: #shape:tabulate: where the argument of shape could be
    - an Integer => Square Matrix
    - a Point or (a SequenceableCollection with: an Integer with: an Integer)

I noticed that Squeak.Matrix is unordered; this make sense:
order is private implementation, and user shouldn't know or expect anything about order.
But in the same time, Squeak.Matrix answer true to #isSequenceable !!! Thus it has an order...
hmmm... anyway, user has to know the order when using #rows:columns:contents:

Note that the #at:at: is interpreted naturally as #atRow:atColumn: by most European and American People...
This comes from latin convention of writing left to right, then top down...
I say latin because I use latin alphabet, I should say Greek or something older.
So #at:at: is a little ethnocentric and #atRow:atColumn, #rowAt:columnAt: is always clearer.
For economy typing, I accept the latin #at:at:, I am latin anyway.

SqueakL + MIT licence

I think I will adopt the MIT licence. I do not think of SqueakL.
Thus Smallapack will not be part of Squeak. It will be an external loadable package if ever ported.