What's Changed
- TLS for websocket/telnet support by @thefallentree in #790
- Fix crash when websocket connection refresh by @thefallentree in #804
- Remove not-working flush for TLS connections by @thefallentree in #805
- add DB, update docs by @oiuv in #807
- new sefun: all_environment by @gesslar in #809
- new sefun - present_clone() by @gesslar in #811
- fixes alpine static linking by @lostsnow in #814
- adding new efun: telnet_ga() to send go ahead telnet message sequence by @gesslar in #815
- new documentation for call_out_walltime by @gesslar in #816
- add docker build and publish by @lostsnow in #817
- lpc auto completion supports in vim by @lasorda in #820
- performance improvement for string operations by @thefallentree in #821
- fix str[0] lvalue by @thefallentree in #822
- fix strsrch by @thefallentree in #823
- fix file serving on http2 by @thefallentree in #826
- Correctly fix http2 file serving by @thefallentree in #827
- Fix websocket on http2 by @thefallentree in #828
- auto transcode messages sent by send_gmcp() by @thefallentree in #829
- Fix sanitizer warning for efun file_length() by @thefallentree in #831
- Increase default string/buffer length, and restore default read_file(… by @thefallentree in #833
- Make sure call_out event are always executed on next available gametick, even when delay is less than game tick interval. by @thefallentree in #836
- more V2021 changes by @thefallentree in #837
- more v2021 changes by @thefallentree in #838
- limit websocket output message to 2K. by @thefallentree in #839
- Switch strptime/strftime to glibc version. by @thefallentree in #842
- Fix bug with non-ascii delimiter in EFUN: explode() by @thefallentree in #845
- V2021 by @thefallentree in #846
- Fix partial write in http2: https://github.com/warmcat/libwebsockets/… by @thefallentree in #848
- Update libwebsockets to 4.2.0-stable by @thefallentree in #849
- V2021 by @thefallentree in #850
- Update to latest libwebsockets v4.2-stable by @thefallentree in #851
- V2021 by @thefallentree in #852
- fix musl build by @thefallentree in #853
- Fix substring range behavior with underflow and overflow by @thefallentree in #856
- Remove libevent from CI env by @thefallentree in #857
- Fix string range underflow/overflow by @thefallentree in #858
- unicode 14 support by @thefallentree in #859
- fix sanitizer build by @thefallentree in #860
- Update widecharwidth to latest master by @thefallentree in #861
- Fix off-by-one range overflow bug by @thefallentree in #862
- updating event efun documentation by @gesslar in #863
- V2021 fixes by @thefallentree in #865
- adding utf8 charset negotiation by @gesslar in #868
- fix copy and paste mistake in telnet_ga docs by @atari2600tim in #869
- update clean_up()/objects()/present() description by @oiuv in #872
- 增加database数据库接口英文文档 by @oiuv in #873
- fix backwards.hpp for mac m1 by @justinm in #875
- Literal unicode fix for #867 by @kparadine in #882
- improve performance by lazy evaluating ScopedTracer arguments. by @thefallentree in #883
- Fix #888, #870, #892 by @thefallentree in #890
New Contributors
- @lasorda made their first contribution in #820
- @atari2600tim made their first contribution in #869
- @justinm made their first contribution in #875
- @kparadine made their first contribution in #882
Full Changelog: v2019.20210429...v2019.20220507
v2019
Bug fixes:
- int64/double get truncated when using PACKAGE_DB with sqlite/mysql
- Fix lex bug that allowed illegal $var in anonymous functions
- prevent crash on loading invalid LPC program
- make ed() display UTF-8 characters properly
- load_object: fix buffer overruns on super long filenames. (#796)
Feature:
- Added support for read_file() to read lines from end of file (#797)
BUG FIX:
- Fix compile with #define NO_ADD_ACTION
- Revert O_WILL_RESET flag value to original
STDLIB:
- base64encode / base64decode
BUG FIXs:
- various utf-8 handling
- sprintf column mode
- socket package under windows, local dns resolve
- fix utf8 in efun:strsrch
- Fix crash in PACKGE_PARSER, also fix accounting
- Fix potential use-after-free in PCRE
- ref counting bug for object_t (bug since 2015)
- infinite recursion in dump_trace() caused by object_name() apply
- UTF-8 support for explode() efun
- Remove extra space in classes(), functions() efun
Enhancement:
- Better memory accounting overall, in mud_status(1)
- EFUN: reclaim_objects() now triggers memory reclaim
- TELNET_GA behavior that works with mudlet
- EFUN: adding file creation time for stat()
- make it possible to catch(restore_object()) again
new EFUNS
- pcre_match_all
- EFUN: explode_reversible()
- EFUN: strptime() and strftime()
Performance & Memory accounting
- perf_counter_ns(), gives nanosecond time measuremnt
- EFUN: dump_stralloc()
- EFUN: dump_jemalloc() to generate memory dumps
new STDLIB:
- new stdlib sefuns: highest, lowest, and range.
- New stdlib sefuns: sum, array_sum, and element_of_weighted
- new sefun reduce
- New sefuns: percent and percent_of
Bug fixes since last release
- Add utf-8 sanitization on input, and memory corruption fixes
- Fixed all socket efuns on Windows.
- TELNET GA support restored. (fix mudlet)
- EFUN:
- new EFUN: pcre_match_all
- Fixed strsrch for UTF8
- Fixed crash in parse_sentence()
- STDLIB
- json_encode fixes
- highest, lowest, and range. sum, array_sum, and element_of_weighted, number_string
Bug fix:
- ctime_r() related fixes.
Build:
- fix issues with clang 10, ASAN etc.
- use git hash as commit.
- upgrade backward-cpp.
- Adding config switch for MXP, GMCP, ZMP, MSSP, and examples and test code in testsuite: https://github.com/fluffos/fluffos/blob/v2019.2020091001/testsuite/etc/config.test#L348
https://github.com/fluffos/fluffos/blob/v2019.2020091001/testsuite/command/gmcp.c#L1
https://github.com/fluffos/fluffos/blob/v2019.2020091001/testsuite/command/mxp.c#L1
- code quality and security issue fixes
Release notes:
- performance improvement on std/json.c , string handling and tracing.
BugFixes:
- crash in receive_snoop()
- fix PACKAGE_EXTERNAL
EFUN
- secure_random(): generate true random numbers
- telnet_nop(): send telnet NOP sequence
APPLY
- virtual_start() for virtual objects.
- Support X-REAL-IP in websocket connections
- Fix that in LPC if(0.0) {true} else {false} would return true.
- Raise default LARGEST_PRINTABLE_STRING to 65535
- Fix mysql linking issues in win32
- Upgrade jquery to 3.5.0
Release v2019.2020041301
This solved some problem with Lima lib (https://github.com/fluffos/lima)
Bug Fix:
- correctly linking jemalloc, fix fluffos/lima#6
- Add missing set_eval() to all call sites
- Use default mysql socket instead of /tmp/mysql.sock .
Major Feature
LPC Tracing:
new efun : trace_start , trace_end
Doc: https://www.fluffos.info/efun/system/trace_start.html
Tutorial: https://forum.fluffos.info/t/lpc-tracing-is-coming/1138