<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448</link>
    <title>MATLAB Central Newsreader - Matlab bugs</title>
    <description>Feed for thread: Matlab bugs</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Tue, 02 Sep 2008 19:35:04 -0400</pubDate>
      <title>Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598407</link>
      <author>Jeremy Smith</author>
      <description>One of my coworkers recently found a problem/bug in the&lt;br&gt;
datenum function of Matlab 7.0.  It was adjusting for&lt;br&gt;
daylight savings time so we were left with some of our data&lt;br&gt;
being shifted by an hour.  This was fixed in later versions&lt;br&gt;
of Matlab however nothing about daylight savings time was&lt;br&gt;
mentioned in the documentation or revisions list of Matlab.&lt;br&gt;
&lt;br&gt;
Where does a researcher have to go to find information about&lt;br&gt;
changes that significantly impact code execution?  How is&lt;br&gt;
anyone suppose to check all of their old code to make sure&lt;br&gt;
it works with newer versions of Matlab?&lt;br&gt;
&lt;br&gt;
We need a tool which can check an m-file and give a nicely&lt;br&gt;
formatted report on what changes have been made to all its&lt;br&gt;
functions between two versions of Matlab.  This includes&lt;br&gt;
argument syntax, default settings, phasing out functions,&lt;br&gt;
and speed.  The researchers I work with are very close to&lt;br&gt;
getting everyone on the same version of Matlab and declaring&lt;br&gt;
an indefinite embargo on updating Matlab.  We already work&lt;br&gt;
with a researcher who has done this.</description>
    </item>
    <item>
      <pubDate>Wed, 03 Sep 2008 01:24:02 -0400</pubDate>
      <title>Re: Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598440</link>
      <author>Rodney Thomson</author>
      <description>&quot;Jeremy Smith&quot; &amp;lt;smit1729@umn.NOSPAM.edu&amp;gt; wrote in message&lt;br&gt;
&amp;lt;g9k4h7$957$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; One of my coworkers recently found a problem/bug in the&lt;br&gt;
&amp;gt; datenum function of Matlab 7.0.  It was adjusting for&lt;br&gt;
&amp;gt; daylight savings time so we were left with some of our data&lt;br&gt;
&amp;gt; being shifted by an hour.  This was fixed in later versions&lt;br&gt;
&amp;gt; of Matlab however nothing about daylight savings time was&lt;br&gt;
&amp;gt; mentioned in the documentation or revisions list of Matlab.&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Where does a researcher have to go to find information about&lt;br&gt;
&amp;gt; changes that significantly impact code execution?  How is&lt;br&gt;
&amp;gt; anyone suppose to check all of their old code to make sure&lt;br&gt;
&amp;gt; it works with newer versions of Matlab?&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; We need a tool which can check an m-file and give a nicely&lt;br&gt;
&amp;gt; formatted report on what changes have been made to all its&lt;br&gt;
&amp;gt; functions between two versions of Matlab.  This includes&lt;br&gt;
&amp;gt; argument syntax, default settings, phasing out functions,&lt;br&gt;
&amp;gt; and speed.  The researchers I work with are very close to&lt;br&gt;
&amp;gt; getting everyone on the same version of Matlab and declaring&lt;br&gt;
&amp;gt; an indefinite embargo on updating Matlab.  We already work&lt;br&gt;
&amp;gt; with a researcher who has done this.&lt;br&gt;
&lt;br&gt;
Updating a revision of MATLAB, GCC, Visual Studio, Perl,&lt;br&gt;
Ruby, etc etc etc always comes at the risk of changing&lt;br&gt;
behavior. You should never assume consistent behaviour,&lt;br&gt;
particularly across major revision changes.&lt;br&gt;
&lt;br&gt;
Before upgrading, check the release notes of all newer&lt;br&gt;
releases (ie 2008 is here -&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/access/helpdesk/help/base/relnotes/)&quot;&gt;http://www.mathworks.com/access/helpdesk/help/base/relnotes/)&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Rod&lt;br&gt;
&lt;br&gt;
--&lt;br&gt;
&lt;a href=&quot;http://iheartmatlab.blogspot.com&quot;&gt;http://iheartmatlab.blogspot.com&lt;/a&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 04 Sep 2008 13:41:03 -0400</pubDate>
      <title>Re: Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598679</link>
      <author>Jeremy Smith</author>
      <description>The problem is that this change was not noted anywhere.  I &lt;br&gt;
searched the bug fixes and change notes before posting here.  &lt;br&gt;
I would be happy being able to search revisions.  Where do I &lt;br&gt;
find the revision history of a specific function  or do I &lt;br&gt;
have to hope the changes are obvious?</description>
    </item>
    <item>
      <pubDate>Thu, 04 Sep 2008 14:09:32 -0400</pubDate>
      <title>Re: Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598686</link>
      <author>dpb</author>
      <description>Jeremy Smith wrote:&lt;br&gt;
&amp;gt; The problem is that this change was not noted anywhere.  I &lt;br&gt;
&amp;gt; searched the bug fixes and change notes before posting here.  &lt;br&gt;
&amp;gt; I would be happy being able to search revisions.  Where do I &lt;br&gt;
&amp;gt; find the revision history of a specific function  or do I &lt;br&gt;
&amp;gt; have to hope the changes are obvious?&lt;br&gt;
&lt;br&gt;
I'm sure it was noted somewhere internal to TMW, but that doesn't help &lt;br&gt;
the end user unless those changes get reflected to some public document, &lt;br&gt;
granted.&lt;br&gt;
&lt;br&gt;
I've commented before that one weakness I see in Matlab documentation in &lt;br&gt;
particular is that it doesn't have a formal syntax document or published &lt;br&gt;
&quot;internal Standard&quot; for lack of better term.  Hence the only &lt;br&gt;
documentation on behavior is the help files which are written in large &lt;br&gt;
part as informal &quot;how to&quot; and the actual code for accessible m-files.&lt;br&gt;
&lt;br&gt;
This is a problem w/ any language/software product to more or less a &lt;br&gt;
degree of course; it just seems more of an issue in my mind w/ the &lt;br&gt;
proprietary products as opposed to languages that do have formal &lt;br&gt;
Standards--there, at least, there is a public declaration of how the &lt;br&gt;
specified portions of the language are to behave and it becomes one of &lt;br&gt;
conformance to the Standard (or occasionally interpretation).&lt;br&gt;
&lt;br&gt;
There is still a significant difference in a RAD-type tool such as &lt;br&gt;
Matlab vis a vis a more general language in that despite the size of, &lt;br&gt;
say, C and the rtl, there are so many more functions in a tool such as &lt;br&gt;
Matlab the requirement for even more complete documentation would make a &lt;br&gt;
significant additional burden on TMW.  'Tis not an enviable task ...&lt;br&gt;
&lt;br&gt;
--</description>
    </item>
    <item>
      <pubDate>Thu, 04 Sep 2008 14:53:02 -0400</pubDate>
      <title>Re: Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598696</link>
      <author>someone </author>
      <description>&quot;Jeremy Smith&quot; &amp;lt;smit1729@umn.NOSPAM.edu&amp;gt; wrote in message &lt;br&gt;
&amp;lt;g9oohe$svo$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; The problem is that this change was not noted anywhere.  &lt;br&gt;
I &lt;br&gt;
&amp;gt; searched the bug fixes and change notes before posting &lt;br&gt;
here.  &lt;br&gt;
&amp;gt; I would be happy being able to search revisions.  Where &lt;br&gt;
do I &lt;br&gt;
&amp;gt; find the revision history of a specific function  or do I &lt;br&gt;
&amp;gt; have to hope the changes are obvious?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
I know this general subject has come up before.  As one who &lt;br&gt;
sometimes has to write MATLAB code that is backward &lt;br&gt;
compatible, it would be very helpful if the help or doc &lt;br&gt;
file for a (new) function stated which version of MATLAB &lt;br&gt;
introduced it.  For example, (I already know the answer &lt;br&gt;
through trial &amp; error) what is the first relaese of MATLAB &lt;br&gt;
that supports the sind function?</description>
    </item>
    <item>
      <pubDate>Thu, 04 Sep 2008 18:54:21 -0400</pubDate>
      <title>Re: Matlab bugs</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/235448#598748</link>
      <author>Walter Roberson</author>
      <description>Jeremy Smith wrote:&lt;br&gt;
&lt;br&gt;
&amp;gt; Where does a researcher have to go to find information about&lt;br&gt;
&amp;gt; changes that significantly impact code execution?&lt;br&gt;
&lt;br&gt;
Mathworks keeps a user-accessible bug database since R14.&lt;br&gt;
However, not all information is in the database, only those&lt;br&gt;
bugs that someone feels &quot;might&quot; be of interest to users.&lt;br&gt;
This differs noticeably from Cisco's approach (for one),&lt;br&gt;
in which all bugs go in the same database but some bugs&lt;br&gt;
might be -specifically- marked as being non-public&lt;br&gt;
for security reasons (or if the bug report details would&lt;br&gt;
expose customer information that the customer would prefer stayed&lt;br&gt;
private.) Default private (Matlab) vs default public (Cisco).&lt;br&gt;
&lt;br&gt;
The Mathworks bug database does not appear to offer a way&lt;br&gt;
to generate reports about bugs present in particular releases&lt;br&gt;
or about bugs solved in particular releases.&lt;br&gt;
&lt;br&gt;
The Mathworks release notes for any Matlab release are&lt;br&gt;
brief summarizes of new features, and often do not mention&lt;br&gt;
much (if anything) about bug fixes. Cisco release notes,&lt;br&gt;
on the other hand, include two sections: one of bugs&lt;br&gt;
that were fixed in the release (with bug id and short short&lt;br&gt;
summary in the release notes); the other of bugs that are known&lt;br&gt;
to still be open in the release (again with information that&lt;br&gt;
can be used to look up the bug details.)&lt;br&gt;
&lt;br&gt;
&amp;gt; How is&lt;br&gt;
&amp;gt; anyone suppose to check all of their old code to make sure&lt;br&gt;
&amp;gt; it works with newer versions of Matlab?&lt;br&gt;
&lt;br&gt;
How do you know that your code works with your existing&lt;br&gt;
Matlab release? If you don't have unit tests or other similar&lt;br&gt;
test methodologies, then you don't know whether a change&lt;br&gt;
is a problem or an improvement.&lt;br&gt;
&lt;br&gt;
I work in a research environment myself, so I know that&lt;br&gt;
it is -very- common in research environments that one does&lt;br&gt;
not actually -know- what the &quot;right&quot; answer for a program is.&lt;br&gt;
You might feed in artificial or well-understood datasets and&lt;br&gt;
observe the program behaviour, but unless you go through some&lt;br&gt;
hefty mathematical proofs (which are often not possible) and&lt;br&gt;
then do some hoary numerical analysis, you probably don't -know-&lt;br&gt;
that your code is producing the &quot;right&quot; answer even for the&lt;br&gt;
artificial datasets -- you might know that the answers are&lt;br&gt;
&quot;about right&quot; for your test data, but once you introduce&lt;br&gt;
real datasets that might have kinds of noise and data errors&lt;br&gt;
you never thought of (or which you thought too improbable&lt;br&gt;
to be worth spending time on) then chances are high that you&lt;br&gt;
don't know whether a change is bad or not.&lt;br&gt;
&lt;br&gt;
For example, suppose that Mathworks started deciding that&lt;br&gt;
numerical accuracy was more important than speed for basic&lt;br&gt;
operations such as summations, and so replaced the sum()&lt;br&gt;
operator with one that took care to sort the values by&lt;br&gt;
numeric significance in order to produce the highest resolution&lt;br&gt;
answer it could. Unless you've already put that layer of&lt;br&gt;
accuracy in your code, the answers produced by your code&lt;br&gt;
would very likely be different in the new version. Which answers&lt;br&gt;
would be the &quot;right&quot; ones? If Matlab pushed automatic parallization&lt;br&gt;
into multiple cores and so ended up producing different answers for&lt;br&gt;
sum() because the numeric cancellations fell at different points (on different&lt;br&gt;
machines!) then which is the &quot;right&quot; answer?&lt;br&gt;
&lt;br&gt;
If you already have complete test frameworks that somehow&lt;br&gt;
have the &quot;highest possible accuracy&quot; answer coded in to them,&lt;br&gt;
then when you get a new Matlab version, you just re-run your tests.&lt;br&gt;
If you don't already have those rigid test frameworks, then you&lt;br&gt;
probably don't really know that your existing code is &quot;right&quot; anyhow,&lt;br&gt;
so knowing the details of every change wouldn't help you much.&lt;br&gt;
&lt;br&gt;
&amp;gt; We need a tool which can check an m-file and give a nicely&lt;br&gt;
&amp;gt; formatted report on what changes have been made to all its&lt;br&gt;
&amp;gt; functions between two versions of Matlab.  This includes&lt;br&gt;
&amp;gt; argument syntax, default settings, phasing out functions,&lt;br&gt;
&amp;gt; and speed. &lt;br&gt;
&lt;br&gt;
So you want what in the software business would probably be&lt;br&gt;
called a &quot;conformance suite report&quot;. Conformance suite software&lt;br&gt;
commonly runs from $100,000 to $250,000, per license (because&lt;br&gt;
it is a lot of work to build the software and there are&lt;br&gt;
surprisingly few people who care about complete accuracy&lt;br&gt;
of their programs, so the work put in to the suite&lt;br&gt;
has to be recaptured over a small market.) Even the C programming&lt;br&gt;
language has only 2 or 3 vendors of compiler conformance suites&lt;br&gt;
and one would -think- that with the wide variety of C compilers around&lt;br&gt;
that a lot of people would be very concerned about accuracy of their&lt;br&gt;
C compilers.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
My personal opinion is that if you need the kind of tool that&lt;br&gt;
you mention above, then you are writing in completely the&lt;br&gt;
wrong programming language. Look at the documentation of most any&lt;br&gt;
of the Matlab major routines, and notice that they contain *no*&lt;br&gt;
discussion of numeric analysis, and notice that they contain&lt;br&gt;
no options to allow you to increase accuracy at the expense of&lt;br&gt;
program speed. The people who write the routines might -individually-&lt;br&gt;
be quite concerned with accuracy, but Matlab as a product is not&lt;br&gt;
and never has been. And just like you can never graft in security&lt;br&gt;
into a program as an after-thought, you can never graft in accuracy&lt;br&gt;
to a large tool such as Matlab as an after-thought.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
A question: have you tested your routines with JIT (Just In Time)&lt;br&gt;
optimization 'on' versus 'off'? Mathworks changes the details of JIT&lt;br&gt;
in every release, so complex programs are likely to get different&lt;br&gt;
answers in every release. If that is not a factor you have already&lt;br&gt;
specifically taken into account, then the tool you describe would&lt;br&gt;
be gilding the rotten lily.&lt;br&gt;
&lt;br&gt;
I am not without sympathy for the difficulties of moving between&lt;br&gt;
different releases, but I think that it would be sufficient for&lt;br&gt;
Mathworks to beef up their release notes. On the other hand, presenting&lt;br&gt;
the change notes for every routine would probably be far far too much&lt;br&gt;
information to be readily absorbed.&lt;br&gt;
&lt;br&gt;
-- &lt;br&gt;
Q = quotation(rand);&lt;br&gt;
if isempty(Q); error('Quotation server filesystem problems')&lt;br&gt;
else sprintf('%s',Q), end</description>
    </item>
  </channel>
</rss>

