Sunday 20 May 2012

R130-R141 – Heavy refactoring

Apology – database exam

Not reported about the development for a while. I studied for an SQL Server "exam" on the MCITP (Microsoft Certified IT Professional) level, meaning that I have a hunch on what might be wrong, how to diagnose it and probably fix it when an Microsoft SQL Server fails. I like database, but I'm not knowledgeable to compare different RDBMS:es (Relational DataBase Management System, the English language favors ridiculous acronyms before Swedish-styled noun clusters like relationsdatabashanteringssystem). The only thing I know is that MySQL is the only one specifically built for massive load-balanced active/active access clusters, while something similar might be achievable through Windows Server Clustering, rather than RDBMS clustering. Regarding PostgreSQL, it's on the same level as Microsoft SQL Server, which means less than MySQL.

The refactorings

My mind flerped about two days ago, meaning that my passivity regarding mkmap ended. I had previously decided that any refactorings should come before 0.0.1.0 alpha stage, but adding a few intended VM code executors, I finally (reluctantly) decided that

  1. a VM was necessary because of my way of defining maps first, modifiying them afterwards, and only then executing them,
  2. while register VM:s are generally regarded faster than stack based, the code becomes simpler perusing a stack based VM,
  3. I must refactor and cleanup to get an overview over my program (other than the usual intuitive one).

The flerp implied that I on a whim moved away all code into CH program pairs, making a so called "object orientated" packaging of most functions according to their main struct ("object"). In spite of the hybris speach of "object orientation", this is more like stupid packages without interfaces.

  • r141 (20 maj, 2012): Refactoring 4: ch-splitoff most
  • r140 (19 maj, 2012): Refactoring 3: ch-splitoff much
  • r139 (19 maj, 2012): Updated copyrights to 2010-2012 (in lead comment of all c- and h-files)
  • r138 (19 maj, 2012): Added missing GPL copyrights (in lead comment of relevant c- and h-files)
  • r137 (19 maj, 2012): Refactoring 2: ch-splitoff valstack (the first of the real splitoffs)
  • r136 (19 maj, 2012): Refactoring 1: renaming methods (preparative for valstack splitoff)
  • r135 (19 maj, 2012): Moving mkmap towards VM executor – it was here that I finally decided that there was no way to avoid implementing a VM before alpha 0.1.0
  • r134 (19 maj, 2012): New string type for MKMAP programs with UTF-8 characters
  • r133 (17 maj, 2012): dummy change to fix my locally changed gnome keyring (on Linux)
  • r132 (17 maj, 2012): More preparations for virtual machine code
  • r131 (24 feb, 2012): Preparation for virtual machine code
  • r130 (24 feb, 2012): DB fixes, preps and new map format

Future

The goal 0.0.1.0 alpha is reached when maps can be prepared for all official 88 constellations. In order to achieve that, the parser in parse_prog2 should be able to parse programs like maps/generic.mkm and generate VM code from them, while mkmap takes VM code and executes it to generate SVG. parse_prog2 is not complete, but the most of the necessary data structures are there. mkmap does simply and stupidly generate Orion and Monoceros as it has been for a couple of years now, but the state when it's able to run VM code is slowly approaching. I'm a little frustrated, but in time...

No comments: