/
pennv187.hlp
95 lines (74 loc) · 5.88 KB
/
pennv187.hlp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
& changes
& 1.8.7p0
Version 1.8.7 patchlevel 0 ??? ?? 20??
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
lists the [initials] of developers and porters that are used in the list
of changes.
Information about changes in prior releases can be found under
help topics named for each release (e.g. 'help 1.8.7p0').
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
Major Changes:
* Support websocket connections. See https://github.com/grapenut/websockclient for a sample in-browser client. [Grapenut, 1007]
* Change attributes from being stored in sorted linked lists to sorted arrays; results in faster lookups and less memory usage. [SW]
* Penn now comes with the Sqlite3 database engine bundled with it, and uses it internally in a few ways:
* 3 different tables for looking up color names are combined into a single table.
* Per-object auxilliary data keys (objdata) are handled in sql.
* Player names and alias lists are handled in sql, making some operations on them simpler.
* Suggests alternatives for unknown function names, flags, powers and help entries, and a softcode interface to the suggestion engine.
* @entrances and entrances() no longer scan the entire database.
* Help files are stored in a database, with an expanded help/search that supports full text search. See [1mHELP SEARCHING[0m for details.
* Optional enhanced connection logging. See the file [1mgame/CONNLOG.md[0m for details.
* A number of new softcode functions and expanded functions, listed below.
Minor Changes:
* Message translation support now defaults to off. Run configure with [1m--enable-nls[0m to turn it on if needed. [SW]
* Shrink the [1mNEW_PE_INFO[0m struct, for signficant memory savings in softcode that queues lots of commands. [SW]
* Add more test cases to the softcode test suite. [SW]
* log_forces in mushcnf.dst now defaults to no. You probably only want this on if you’re debugging. [MG]
Softcode:
* Support all of Rhost’s [1mcolors()[0m key arguments (Except n). [SW, 1112]
* Functions that work on integers (Like [1mdiv()[0m or [1mband()[0m) now use 64-bit values instead of 32-bit. [SW]
* Added [1misjson()[0m
* [1mjson_query()[0m get and exists can follow paths into objects instead of taking a single key/index. Suggested by qa’toq. [SW]
* [1mjson_query()[0m can apply merge patches to json objects per https://tools.ietf.org/html/rfc7396
* [1mjson_query(str, unescape)[0m handles unicode escape sequences.
* [1mjson(string, foo)[0m escapes non-ascii characters.
* [1mclone()[0m now takes an optional fourth argument to act like [1m@clone/preserve[0m [797]
* New ‘me’ and ‘inventory’ flags for [1mscan()[0m give finer control of what to scan. [MG]
* [1morflags()[0m, [1morlflags()[0m, [1mandflags()[0m, [1mandlflags()[0m, and the power versions no longer return errors on unknown flags/powers. They instead treat the unknown one as if it wasn’t set. Suggested by Qon. [1180].
* [1mtimecalc()[0m and [1msecscalc()[0m for adding/subtracting intervals from times.
* [1m@suggest[0m and [1msuggest()[0m for user-defined spellchecking. Loads [1m/usr/share/dict/words[0m or another configurable wordlist by default.
* [1mconnlog()[0m and [1mconnrecord()[0m for interfacing with enhanced connection logs.
* [1msoundex()[0m and [1msoundslike()[0m now support a second phonetic hash besides soundex.
* Side-effect version of link() now returns 1 on success, 0 or #-1 on failure. [MT]
* owner() now accepts two optional arguments, allowing ownership to be changed as in @chown and @atrchown. [MT]
* If compiled with libcurl support, adds [1m@http[0m for interacting with RESTFul web APIs. [SW]
Fixes:
* A bunch of color names weren’t mapping correctly to Xterm color codes. [SW]
* [1m@grep/iprint[0m hilites the matching text in the same case it appears in the attribute body. [SW, 1120]
* [1m@mail[0m wasn’t updating a player’s MAILCURF attribute correctly. [CLDawes, 1131]
* Connecting with a web browser to a mush without a [1mmud_url[0m config option set caused an infinite refresh loop. Reported by grapenut. [1149]
* Make sure [1msigrecv_ack()[0m won’t hang the mush if it somehow gets called at the wrong time. Also fix a file descriptor leak in the signal handling code. [SW]
* Pass [1mpe_info[0m into IDLE and HAVEN attributes from the page command. [MG]
* The x and X options to [1malign()[0m now always truncate to the column width, rather than incorrectly truncating at a space. Reported by Qon. [MG, 1178]
* [1mjson_query()[0m didn’t understand an action of ‘type’ as documented. [SW]
* Assorted help file fixes. [SW]
* [1m@clone[0m without /preserve wasn’t stripping privileged flags and such. [1190,SW]
* [1m@chown/preserve[0m was resetting wiz-bit despite it’s help file indicating otherwise. [1187] PR by Qon.
* [1mscan()[0m now determines if objects will be included based on whether the caller can examine them, rather than if [1mscan()[0m’s [1m<looker>[0m can examine them. [MG]
* Fixed some bugs regarding when [1msetq()[0m will and won’t let you set the values of named registers when you’ve hit the limit. [MG, 1179]
* [1msqlescape()[0m when using a sqlite3 connection no longer also requires MySQL.
Documentation:
* Changelogs and other documentation use markup. [SW, 1140]
* Start trying to clean up and revise ancient documentation. [1095]
* Minor help fixes. [MG]
* More minor help fixes. [MT]
OS Specific:
BSDs in general:
* [1minfo_slave[0m and [1mssl_slave[0m use [1mkqueue()[0m to efficiently be notified of parent mush crashes.
OpenBSD:
* netmush and slave processes use [1mpledge(2)[0m to limit their privileges. [SW]
Windows:
* Use Windows crypto library functions for base64 conversion and digest hashing instead of OpenSSL. [SW]