Saturday, October 1, 2011

Bug fixing

As people start playing with Frege some errors in the compiler are exposed. Some of them are merely usability issues, while others are more critical.

For example, somebody tried the following:

fib n = case n of
    Integer.zero -> n
    Integer.one  -> n
    _ -> ....

I had not anticpated this possibility, so the compiler treated this like:


fib n = case n of
    z -> n
    o  -> n
    _ -> ....


and only complained about unreachable case alternatives. Of course, fib degenerated to another identity function this way. The right thing in this case was to refuse the program on the ground that pattern bound variables must not be qualified.

As I strive to correct errors as soon as possible, we had around 7 new versions of the frege*.jar in the last 14 days. I am sorry for that, but I hope error corrections will occur on a slower and slower pace. When one looks at the source code commits one sees also that almost all corrections are but small fixes. Nothing required fundamental changes up to this day.

I appreciate very much your feedback, even if it takes the form of an error report. As mentioned on the project home page there are now the following ways to communicate:

  1. use http://www.stackoverflow.com, make sure to label your question with the "frege" tag.
  2. send an email to me (Ingo.Wechsung, I am using the mail service offered by googlemail.com)
  3. Create an issue on the project page. (But consider to try the previous options first.)


Thank you all for your contributions in finding errors and  for your patience with runtime/compiler downloads that are updated often.

1 comment:

  1. how can a programming language called Frege not be object-oriented?! - but i love de idea anyway -

    ReplyDelete

Comments will be censored by me as I see fit, most likely if they contain insults or propaganda for ideologies I do not like. Comments that are on topic will not be censored. If I leave a comment uncensored this does not imply that I agree with the opinions expressed therein.