PennMUSH 1.8.8 Patch Notes

From Pax Republica
Jump to navigation Jump to search
Version 1.8.8 patchlevel 0 Apr 20 2020
+======================================
+
+WARNING! With the removal of the object queue, please be careful when upgrading that you do not have any infinitely looping triggers without an @wait.
+
+As an example, this used to be a common way to ensure something was executed once per second:
+
+  > &everysecond object=do some ; updates ; @trigger me/everysecond
+
+This will now happen up to several thousand times per second! Add in an @wait 1, and it'll work as expected!
+
+Major Changes
+-------------
+
+* Built-in HTTP server support, see "help http" [GM]
+* A single command queue for players and objects. No more @trigger waits. [GM]
+* A restructuring of bsd.c, to make it easier to reason about Penn's queue cycle. [GM]
+* Millisecond timing in bsd.c for polling waits in prep for subsecond @waits. [GM]
+
+Minor Changes
+-------------
+
+* Sockets commands now inline $-commands, so, e.g: $,* *: chat aliases don't hit queue. [GM]
+* Millisecond timing in bsd.c for polling waits in prep for subsecond @waits. [GM]
+* Sqlite3's `REGEXP` operator is always available and uses pcre regular expressions (previously it depended on libicu and used java style REs). [SW]
+* Update `local.dst` to include example of millisecond callback loop. [MT]
+* Updated to use PCRE2 10.33 for regular expressions. [SW]
+* Wildcard patterns are sometimes converted to regular expressions when matched against many strings. [SW]
+* Add '--disable-socket-quota' option for our test suite. [GM]
+* The list of color definitions used with `ansi()`, `colors()`, etc. is now kept in game/txt/colors.json. [SW]
+* Sqlite3 updated to 3.29. Biggest user-visible change is support for window functions. [SW]
+* Update cJSON to 1.7.10 [SW]
+* @command/restrict will only clear the failure message if a new one is supplied. [MT]
+* @SOCKSET now has a NOQUOTA option which causes that socket to be given the max command input quota per refresh. [MT]
+* --disable-socket-quota is now preserved across reboots. [MT]
+* Improved detection of an already running game. [SW]
+* Support logging through the OS syslog facility. [SW]
+
+Softcode
+--------
+
+* `addrlog()` for searching through list of unique IP addresses that have connected to a game. [SW]
+* `connlog()` can return just a count of matching records. [SW]
+* `formdecode()` for decoding HTTP paths and POST bodies. [GM]
+* `@respond` for manipulating HTTP response codes and headers. [GM]
+* `hmac()` for creating authentication fingerprints. [SW]
+* `@chatformat` and channel mogrifiers are told if `@cemit/silent` is being used. [1267, SW]
+
+Fixes
+-----
+
+* `add_function` in .cnf files was not properly using the upper case'd string. [#1223, MT]
+* Various PCRE calls in the softcode have had CPU time limit watchdogs added. Discovered by Ashen-Shugar. [GM]
+* Fix a file descriptor leak caused by recent OpenSSL versions. [SW]
+* Added GAGGED restrictions that were missing from a few commands, including `@message` and the MUXcomm aliases. [MG]
+* Minor help updates, including clarification of what GAGGED blocks, suggested by Merit. [#1262, MG, MT]
+* Some fixes to extmail.c and chunk.c to fix @mail going forward. [GM]
+* switch() and floating point numbers not working as intended. Reported by Mercutio [#1325, MT]
diff --git a/INSTALL.md b/INSTALL.md
index 1068dc97..05a9e9f4 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -81,13 +81,10 @@ The quickstart version of the installation is:
     development packages required to compile programs (Linux
     distributions that don't come with gcc in the base install often
     need a package named glibc-dev).
-3. A version of the PCRE regular expression library and any related
-    development packages. (Debian and Ubuntu call them libpcre3 and
-    libpcre3-dev).
-4. A version of the OpenSSL library; most OSes these days come with
+3. A version of the OpenSSL library; most OSes these days come with
     it out of the box, but some might require a development package as
     well (libssl-dev, openssl-dev or some such name).
-5. Development versions of a number of optional libraries are nice to have:
+4. Development versions of a number of optional libraries are nice to have:
     * A sql client library for MySQL/MariaDB or Postgresql.
     * ICU (For enhanced Unicode support)
     * libevent (For ssl_slave)
diff --git a/Makefile.in b/Makefile.in
index a70c8b62..0ad22709 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2,8 +2,8 @@
 
 # - System configuration - #
 
-VERSION=1.8.7
-PATCHLEVEL=1
+VERSION=1.8.8
+PATCHLEVEL=0