[DGD] Kotaka v0.50
Raymond Jennings
shentino at gmail.com
Thu Jun 28 09:59:53 CEST 2018
Oops...
* Forgot to tag the new version
* Made a typo in INITD
Please check v0.50.1, sorry.
On Thu, Jun 28, 2018 at 12:31 AM Raymond Jennings <shentino at gmail.com> wrote:
>
> Finally got to a new release of kotaka.
>
> This is mostly internal cleanups.
>
> New policy on constructors, destructors, and patchers:
>
> They are useful as courtesies, but the ability for an object to
> rewrite its inheritance tree at will eliminates a few guarantees, so
> as a middle of the road approach I thought it wiser to make those
> caveats part of the policy and officially put inheritables on notice.
> Full notes are in the top level documentation.
>
> A new patcher interface has been written.
>
> See git commit log for full information.
>
> Raymond Jennings (98):
> Lock down the full rebuilder to appropriately privileged code
> Detail the deprecation process for constructors and destructors
> Add our (well, my) internal docs for how to handle upgrading Kotaka
> Add a bit to the readme, also do a minor bit of reformatting
> Add header for INSTALL file (workaround for git freaking out
> about conflict marker)
> Small simplification in ObjectD
> Add final version of safe_upgrade_versions
> Update InitD for compartmented upgrades
> Final incarnation of upgraded
> fixup initd
> Add upgrade policy on the dev side
> Force System SubD to recompile on a System module upgrade
> We will eventually stop autoregistering modules. In the future,
> modules can only be booted and shut down via ModuleD
> Formal roadmap style documentation regarding pending API changes
> ObjectD needs recompiled on next upgrade
> Issue a diagnostic if a module is shut down due to a missing
> initd file during upgrade
> Have ModuleD recompiled on upgrade
> Inform admin when System module is upgraded
> Have system upgrade initiate module upgrades
> Give Test module enough ticks to complete its tests
> Do tests in parallel via callouts
> Add new API for single archetype as documented in UPGRADES for
> version 0.50
> Finish deprecation of multiple archetype setting per version
> 0.50 preparation
> Flag initds who attempt to return constructor or destructor
> information, now that it is deprecated
> Fix typos in multiple archetype deprecation
> Stop using constructors and destructors with things
> Convert mandatory destructor in thing library to a cooperative
> one that inheriting objects should call manually as needed
> Pass destruct call from Game thing library to thing library
> When a Game thing destructs, pass the call up the chain to the libraries
> Remove obsolete call to destruct the saveload object, upgrade
> was in version 0.49
> Rename creator function for thing library
> Update a copyright date
> Move upgrade recompilations to the upgrade_module lfun
> Increase Intermud's tick limit to 5M
> When shutting down the Ecru module, don't try to destruct kernel objects!
> When resetting a module's resource limits after shutting it down
> just loop through every resource
> For now, be gentle with a module shutdown. Only stop it from
> creating more objects.
> Fix typo in module resource thaw fix
> Add help command to objconf
> Update developer document for managing user-side upgrades
> Reorder misleading messages in saveworld and loadworld verbs.
> We shouldn't say "done" for an asynchronous process, there could be
> errors or reboots
> When doing a System upgrade, have the System module upgrade
> itself before upgrading the other modules. It's special, treat it as
> such
> Add master TODO file
> Make a note that (maybe in the future) a module can be nuked
> even when it's shut down
> Have System module's StatusD provide a diagnostic if it gets
> queried for a banner for a sitebanned IP
> Mass is in kilograms, not cubic meters...
> We're going to have to rearrange the api change schedule
> We shouldn't stop an initd from being destroyed, there may be a
> good reason, and a module should always be allowed to mess with itself
> if it wants to
> Don't bury old logs when they get too big, just delete them
> State directory for snapshots is now explicit and not a symlink
> Ecru doesn't depend on Game
> Boot Game after system is loaded
> String depends on Ecru
> We will make these changes when we get to them
> Fix a small typo
> Make sure a siteban check doesn't fail to disable a banned
> connection if the responsible connection manager burns all its ticks
> Add hook function and documentation to UserD library
> Archetype api change no longer version tied
> Take note of the DoS opportunity of getting a backlog of log
> spam that jams the logd when dgd decides to garbage collect
> Make note that destructors are being deprecated, and that the
> bottom program should call up the chain as needed. Also, inherits are
> at the mercy of inheritors for preservation of data.
> Turns out, patchers are also at the mercy of inheritors
> Stronger deprecation of constructors, destructors, and patchers
> PatchD needs to be removed soon
> Fix sloppy typing in UPGRADE
> Make note of new patching api we will use
> More information and cleanup on the pending api changes
> Objects can ask to be patched if they want to
> Move API change list to separate file
> Amendment of patching interface
> Document how a system upgrade should happen. System is special.
> Undeprecation of constructors and destructors but caveats have been added
> As before, we'll do a transition
> Update commentary on upgrades and patching
> Organize system libraries
> Add multilevel sparse array structure
> Fix bad stubbing of moved list library
> Various fixes in maparr
> New patching api
> Fix a small typo in UPGRADE-API
> Add test for multilevelmaparr
> Make notes of old code in ObjectD and PatchD that needs cleaned out
> We need more callouts for now to handle the load of upgrade calls
> Set stack limit for System module to 50
> Streamline INITD's upgrade process a bit.
> As a temporary test, return a patcher for the touch autolib
> touch autolib updates
> Mark previous patching process as obsolete
> Use new patching process in ObjectD, also handle upgrade calls differently
> Allow return value for touched objects to be passed back to dgd
> via ObjectD
> Add a safety test for ObjectD for when we later remove the old
> upgrade queue
> Add a creator for PatchD
> Nix some dead code
> Don't nuke the old patch bigstruct if we never added anything to it
> Add new patching process to PatchD
> Remove System UpgradeD
> Have rebase script abort if there's a conflict
> INITD:
> Version 0.50
More information about the DGD
mailing list