[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