Up to Main Index                          Up to Journal for November, 2015

                    JOURNAL FOR SUNDAY 22ND NOVEMBER, 2015
______________________________________________________________________________

SUBJECT: BRL, parser and command changes are out
   DATE: Sun 22 Nov 19:26:14 GMT 2015

I've just pushed the BRL (Big Room Lock), parser and command changes out to
the public dev Git branch[1]. What a nightmare it has been, in fact I didn't
think I would get the changes out this week.

At some point during the week my desktop started randomly, spontaneously
rebooting. Was it a hardware problem? A software problem? No way to tell.
There were no log entries pointing to a problem just - plink! reboot...

I ran memtest86+ to see if it was a memory problem but everything came back
clean. I checked the voltages, fans and temperature sensors in the BIOS, also
in the logs from sensord running in the background - all looked normal. The
hardware seems fine. However a kernel update and large Mesa update had hit
Debian testing at the start of the week. I rolled back the kernel from
4.2.0-1-amd64 to 4.1.0-2-amd64. Fine for a while then - plink! reboot...

Was it the Mesa graphics update? I ran for a while at the console with no X
server started - plink! reboot...

Argh! WTF!?

In the end I booted into single user mode and su'ed to my normal user and
finished off the changes I have just pushed out to the public site. The
experience was interesting. No multiple VTs but I use DVTM a lot anyway and my
console runs with 160 columns by 64 lines under KMS. No networking - no email
or internet distractions.

As I have said before in this journal my personal desktop PC is far from
anything special. An Intel Celeron E1400 @ 2Ghz - dual core & 64bit from 2008,
2Gb DDR2 RAM, Maxtor 80G hard dive. The motherboard chipset is Intel 82G33/G31
from 2007. So a bit of a dinosaur, but it usually works just fine.

Back to the changes. The BRL is now in and wired up. Inventories now have
unique IDs so that the locking order of the BRL is consistent. There is a new
parser state type which coordinates information between the parser and
commands. Commands implemented so far have all been updated to use the new
parser state. The parser's switch construct is now a hash map - commands now
register handlers with the parser which means you don't have to keep the
parser in sync with the commands any more. The MOVE command and Exits
attribute have seen significant work: Exits can now normalise directions and
the processing of the move command is now all in cmd/move.go and not split
with attr/exits.go. There are new QUIT and COMMANDS commands. We had a QUIT
command before but now it has its own handler. The COMMANDS command lists all
commands available to players.

All in all, I'm very happy with how these changes turned out. Definitely an
improvement and much cleaner code than before.

--
Diddymus

  [1] ../../../downloads/index.html


  Up to Main Index                          Up to Journal for November, 2015