Saturday, July 28, 2012

MuPuPriNT v0.2a

I suppose one could call these "nightly builds," since I wake up early and work on the program practically all day with breaks for meals.

28 hours ago, I uploaded v0.1a. Changes since then are surprisingly numerous, and range from bugfixes to long-planned features to spur-of-the-moment additions.

You can find the latest version here.

Changes include:
  • IsItPrime? and the Pythagorean tester no longer overflow, as they take a string (of up to 30,000 digits) as input instead of an unsigned long integer
  • Addition of a manifest file allowing implementation of Win7 visual styles
  • Tooltips in the main window (mainly for prototyping)
  • Added four useful buttons to the main window
  • Progress bars in every application within MuPuPriNT
  • Instructions dialog boxes now display the correct instructions!
  • The "Web" window now displays and works properly
  • Closing the "Web" window no longer quits the program, while pressing "Quit" actually does
  • Removal of unused and/or unnecessary buttons
  • Removal of a great deal of vestigial and/or redundant code*
  • Resizing of some windows to just generally look better.

It should be noted that the graphical goodies (better known as "Common Controls") are largely and for the most part simply for prototyping. This includes the links in the "Web" window, the progress bars, and the tooltips. The application and all of its components would function (and were functioning) perfectly fine without them.

I just decided to add them for several reasons. For one, I wanted to. Everyone likes progress, and everyone likes bars. For two, they actually do indicate progress - they will tick forward after each integer operation and each trial division.

However, since most of the computation time is calculating the big number itself, the progress bars won't really tell you anything about how well that's coming along. That's just because there's no way to call the SendMessage() function to tell the progress bar to STEPIT (no really, that's the message handle) while the program is computing, say, a Proth number. There is nowhere in the code to put that.

On a related note, I am still looking for ways to make the output files either write faster or write better (or both).

In my troubleshooting, I noticed that the files seem to get truncated only with small values of n (or, where applicable, k). Why is this? I can't figure it out! There is no good reason for that to happen, similar to the strange case where it inputs highwords (which we see as blank spaces) into the wide-character string (which is fine) and then prints them to the file (which is not fine). Working on it.

More on issue tracking to come. For now, enjoy the product of about 6 days' work!

No comments:

Post a Comment