So it appears that PMap at() was missing a condition. When a value had been added using atPut(), at() would not read the local slot and return the value unless the value could be obtained from the backing PDB (after a PDB sync).
It was a simple one-line fix to make it use the local slot when available ahead of checking PDB.
Other fixes include changing PDB “repoen” to “reopen” and marking “repoen” deprecated for now. I fixed the cleanDocs makefile target to remove libs/iovm/docs/docs.txt which was being left behind, apparently due to a past move of the “vm” directory that wasn’t updated.
I also added documentation comments for UnitTest and PMap. The biggest thing I think is hurting Io right now is the lack of good documentation. Granted, a lot of designs may not be final, but it’s hard to evaluate a design without documentation of it.
As I work on MUUN I’m finding many areas where my development bleeds into the core or addons of Io itself, either finding bugs or seeing room for improvement. It’s a good exercise and I feel that I’m contributing to the success of the language.
I set Steve the pull request, so we’ll see if he has anything to say about my changes.