TableMaster 1.4.4 released!

It’s out! The upgrade is now at for all TableMaster owners.

There are a lot of new features, as I have discussed in previous blog posts. I’ll post the changenotes after the break.

New features: 7.5 new commands. A new output formatting code. Extensions, using the new ! modifier, to four output formatting codes. The first meta-command. A bunch of GUI tweaks. A whole lot of bug fixes.

7.5? Well, yes, the .5 of a command is .RESET ALL. That actually translates to a different opcode in TableMaster’s innards (creatively called resetall instead of the normal resettable). So it doesn’t look like a new command, just a parameter, on the surface, but it really is one underneath. Hence 7.5.

There are also updates to the TBL language reference manual, of course. (the Tutorial needs an extensive overhaul, since TBL has had so much added since that was last updated; I’ll announce here when it’s also been updated)

TableMaster 1.4.4 changenotes

added .ALERT
added .BEEP
added .DOWN
added .SETSEX
added .UP
added .VERSION
added .RESET ALL

added \$ once/twice/thrice/four times/x times
added ! extended formatting code for \@ \# \$ to do dozen, score, etc.
changed a\n to use "an" before numeral 8
added ! extended formatting code for C/c to do persistent upper- and lower-case

added REALLY meta-command

added option for on-click behavior in GUI
changed OnActivate to not go to Output if the current tab is not empty
improved error message text across the board
made .VARIABLE more tolerant of being .INCLUDEd

fixed table buttons sometimes not being enabled on startup
fixed crashing if table file name has been changed
fixed Copy going to the bottom of the page
fixed file left open bug
fixed different file left open bug
fixed previous table pack link bug
fixed bad last-table save bug
fixed bug with .ROLLON sometimes using two entries
fixed some incorrect error messages
fixed .EITHER lowercasing results
fixed erroneous values after .VARIABLE crashing instead of erroring out

I finally decided to do a Microsoft and release the new version without having every bug squashed, basically because I can’t force them to show themselves when I’m after them. None are critical: one can lead to auto-typos in the output, one can make debugging a table somewhat harder, and one can be avoided by careful table writing. They’ll all be fixed in 1.4.5, of coures, but at this point, I haven’t been able to nail these last few bugs, and not releasing the update (with all its other bug fixes)  until I’ve found them would be doing the users a disservice.

There are four known bugs in 1.4.4:

  • In some cases, a\n puts “a n” instead of “an”. It seems to involve embedded subtable calls that include a .noop (or .do nothing) command.
  • Error messages sometimes reference the wrong source line number.
  • It is possible (not certain) that duplicate table names are sometimes permitted.
  • In the GUI, sometimes the current pack logo is not added to the list correctly when it is the default graphic; it does, however, appear properly when TableMaster is restarted.

And I can’t pin any one of them down. I know they exist, because I’ve seen them, but when a bug turns up in a 1000+ line table file, I need to force it to appear in something a lot smaller so I can track it down and kill it. I’ve been unable to do that with any of the three table execution bugs; they only appear when I’m not looking for them. I also can’t get the GUI graphic bug to show up reliably; I can’t figure out what combination of conditions makes it occur.

I’ll give a free font of your choice of the ones I have on to the first person who emails me a table, preferably no more than about 10 lines long, that reliably manifests any of the three known table bugs.