The release notes of NetLogo 7.0.0. introduces command set-topology and mentions the “hidden” command __change-topology.
My students have often asked for something like this, and I was not aware of this command.
Where can we find documentation about hidden commands?
While you might find information about one hidden primitive or another scattered about the web, we don’t attempt to actively maintain any documentation about hidden primitives. They primarily exist for the development team to use in automated and non-automated testing of the software, and in debugging niche issues.
When new instances of hidden primitives do get implemented (which has been incredibly rare, in the last decade), they are not subjected to the usual amount of internal design discussion that is appropriate for adding a public-facing primitive to the language. We might realize later that we want to rename the primitive, change its arguments in a way that would break any model using the primitive, or remove it altogether if it’s complicating the code without offering too much benefit. In short: Things are kept hidden unless they need to be public, so we can freely break the original implementation.
Sometimes, people ask for things that we already have implemented as hidden primitives, and we can just suggest to them to use the hidden primitive (see here for an example). If enough people ask about this sort of thing, or we otherwise determine that the primitive is actually useful to the wider audience of NetLogo users, we might eventually promote it to become a full primitive (like what happened with set-topology).
Thank you for this clarification.
I understand that “hidden” or “reserved” commands are provided without further support and that they are subject to change.
Therefore, they should indeed not be in the normal list of commands.
But still, I would appreciate an overview somewhere.
A list of unofficial features in the NetLogo desktop application is available on GitHub here. Do note that these things are subject to change, and this page is not frequently updated, and so may be out of date.