Skip to content

Compatibility

Planning to move a live game? Compatibility findings are inputs to a rehearsal, not proof that an import is ready for players. Use the migration runbook to test your own identities, data, softcode, connection paths, portal, and integrations.

SharpMUSH targets PennMUSH 1.8.8 softcode. Where it differs, the game’s own help says how, one topic per area. Each page below is the same text as that help topic in the game, and SharpMUSH’s test suite runs their examples against the server.

PageWhat it covers
PennMUSH CompatibilityThe overview: what kinds of difference there are, and where each is listed
ParserHow a line is parsed, dispatched and evaluated: unbalanced brackets are an error, ## in iter() is data, a function name can’t be produced by evaluation
ArgumentsFunctions that take extra, optional arguments, and the TinyMUX and RhostMUSH forms PennMUSH refuses
NamesFunctions and commands that PennMUSH doesn’t have, including those from TinyMUX and RhostMUSH, and two that take their arguments in another order
CommandsThe command table, the configuration and the objects a new game starts with
ConfigConfiguration options that change how existing code evaluates, such as tiny_booleans, null_eq_zero and the TinyMUX and RhostMUSH options
Outputrender(), decompose() and markup written for something outside the game
IdentityObject identity, timestamps and numbers
MailThe differences in @mail
EconomyCurrency and money()
DefectsDifferences that are bugs, expected to change
UnresolvedDifferences with no decision yet; don’t depend on either behaviour

SharpMUSH also runs much of the softcode written for TinyMUX and RhostMUSH. A call PennMUSH refuses, such as switch(x,default) or ifelse(x,yes), is answered as those servers answer it. Where the servers give the same code different answers, SharpMUSH keeps PennMUSH’s unless a setting says otherwise. TinyMUX Softcode and RhostMUSH Softcode cover each in full.

Importing a database turns on the settings its softcode expects, and the import report lists them.

Imported fromSettings turned on
PennMUSHparen_groups, http_qregisters
TinyMUXparen_groups, mux_logic, mux_justify, mux_collation, rhost_list, innermost_tokens, tiny_trim_fun, tiny_math, null_eq_zero, and function_recursion_limit raised to at least 500
RhostMUSHparen_groups, tiny_trim_fun, rhost_edit, rhost_lattr, rhost_printf, rhost_map_args, rhost_list, sidefx_flag, and mail as a name for @mail

The configuration file you give the import (mush.cnf, netmux.conf or netrhost.conf) is applied too. The Config page says what each setting does.