[Therion] Date before 1900 error - but where?

Tarquin Wilton-Jones tarquin.wilton-jones at ntlworld.com
Wed Feb 19 21:02:46 CET 2025


> How did you find it, and so quickly? I need that sort of skill set

Same basic way I debug CSS.

Make a copy of the codebase. Delete 50% of the inputs (caves). Did it go 
away? If not, try deleting the other half instead. Repeat with smaller 
and smaller chunks until you get which change made it go away. Don't 
delete anything that looks like it contains fixed points that everything 
else relies on.

A few caves rely on .3d files which are not on SVN (eg. GB, Rhino). I 
deleted those first, and fortunately it wasn't in any of those (I would 
not have been able to debug otherwise).

Now I know the cave.

Delete contents of all maps and all joins, to remove dependencies.

Now find inputs that are only used by one equate. Delete both. Repeat. 
Eventually, there was a loop of equates. Delete one to break the loop. 
Now continue deleting file+equate until deleting one input causes it to 
show a different error or no error (other than "could not open file for 
input).

Now I know the file.

The mistake was pretty obvious, but if there were lots of centrelines, I 
would just have deleted their data in reverse order.

As it was, it was trying to work with "13" as a year 0013. I wonder if 
this broke your loop closure...

The change in behaviour is a largely good thing. Personally, I would 
dearly love a warning of "date range is backwards", or "date looks 
insane", since if you managed to get some pre-Roman survey data, it 
would be very impressive indeed, and probably deserves a special config 
option "mindate 0001.01.01". However, the error message was not at all 
useful as a pointer, and needs to be corrected.


More information about the Therion mailing list