I am not writing this because I want Octave devs to do my job but because I
like Octave and want it to be as good as possible. If I would wait for bug
fixes that maybe did what I wanted and not circumvet them I would get
nothing done.
If a function in Octave does everything that Matlab does and works in more
cases, this is compatible. Noone would complain because noone base their
code on where a function does not work. As long as the syntax is identical
it is ok.
Even if Octave would manage to implement an algorithm that is better and
gave a better result, this can be discussed, but noone would complain. It's
just sad that you have to copy even where the Matlab functions are weak if
it is easy to fix.
I understand that it is a delicate thing since your main concept is to be
Matlab compatible and mathworks must hate you for that but making your
functions better than matlab with the same syntax should be acceptable.
If you prefer a matrix math based numerical computing environment that does not place a priority on Matlab m-code compatibility, something like SciLab may be more to your liking.
In any case, step one is to review the Octave lsqlin code and figure out how to patch the current error condition. This initial fix should be MATLAB compatible. Also notice that in one example in the bug report MATLAB does not give NAN for all outputs, eg, it was [NaN;NaN;5]. Why? What should the algorithm be doing and how does that explain the output? Is lsqlin supposed to be invalid for linearly dependent inputs? It may require reviewing the reference cited by MATLAB on the help page.