Please note that this is just an overview and does not mention or explain every new feature.
The following is a (probably incomplete) list of changes made between the 3.13 and 3.14 release of MorphOS to the ROM (boot.img) based components.
Quark
- Enabled DataBreakpoint(DABR)/INVZEROPAGE support for 970FX/MP CPUs
Emulation
- Fixed block continuation exit code generation to be skipped if exiting a block
Dos
- Employ new exec TLS API
- Open/Lock: fixed softlink support for relative links
Exec
- Added TLS API. This API is used by libpthread and gcc threading
- Added protection against broken applications calling CloseLibrary on ExecBase
FFS2
- Behavioural change: don't truncate names on LNFS file systems but return error. Non-LNFS file system behaviour is unchanged
Intuition
- Fixed a PushMethod flood while handling DisplayBeep screen bar background color effect
- Fixed not to try to open an empty window depth popup when there's only one window opened on a screen
Log
- Fixed occasional bogus invalid SuperHandle debug
Objdata
- Put MMU pagesize to ObjDataSubBase instead of constant query
Pcix
- Added PCIXEnableMSI()
- Give each interrupt Quark thread a unique name with the interrupt ID in it
PFS3
- Fixed file/directory name limit to be 127 chars (was 126 previously)
- Restrict the disk stored fnsize to between 32 and 108 runtime
- ACTION_KILL_EMPTY: fixed not to crash if performed on a softlinks or a hardlinks to a directory
- ACTION_RENAME_OBJECT: fixed not to crash if softlink or hardlink to a directory is renamed into another directory
SFS
- Report 64-bit offsets for TD_READ64 and TD_WRITE64 errors. Use unsigned formatting for offset and length and actual
- ACTION_MAKE_LINK for existing softlink now returns ERROR_OBJECT_EXISTS instead of misleading ERROR_IS_SOFT_LINK
Touchpad
- Fixed bogus use of DoSuperNew
USB HID
- Added the ability to name sensors as if they were gamepad inputs
- Fixed HID report descriptor parser to make Microsoft Wireless Desktop 900 usable
Following is a (probably incomplete) list of changes made to the disk based components of MorphOS.
Ambient
- Fixed the asynchronous dispatch handling to retain source/destination objects. Fixes crashes when closing listers while icons are still loading, etc
- Fixes in SVG icon file identification
- Fixed window toolbars not working while the icon zoom slider was visible
- Fixed Mime Type resolving code not to trash memory on abort or timeout
- Fixed several memory leaks
- Fixed a few bogus DoSuperNew calls
Applications/Odyssey
- Disabled PrivateBrowsing by default
- Implemented a per-URL ignoreSSL setting
- Added support for mobile version of YouTube website
- Certificate data from Mozilla as of: Tue Sep 15 21:28:56 2020 GMT
Applications/Flacapella
- Use gnudb instead of the defunct freedb for CDDB lookups
Applications/FlowStudio
- Cleaned up gcc compiler defaults
- Fixes in space handling inside the makefile generator
Applications/Jukebox
- Fixed a ReadArgs leak
- Avoid writing to read only memory
Applications/Kryptos
- Fixed a bogus CloseLibrary call
Applications/Transfer
- Don't try to print 32-bit integer as float
Applications/VPDF
- Updated to libpoppler 20.9.0 (1-Sep-2020)
- Use stccpy instead of strncpy
- Activate fit-to-page and n-page layout settings
C/Binddrivers
- Fixed bogus string truncation for LoadSeg
C/Delete
- FORCE/S will now temporarily modify parent directory RWED if Deletefile() fails due to read, write or delete protection errors
C/Dir
- Don't print generic error message on CTRL-C
C/Ed
- Fixed to preserve file comment when saving a file
C/Lha
- Added support for preserving directory attributes, comments and time stamps
- Error out of too deep recursion or out of memory instead of dropping files or collecting wrong entries
- Error out instead of misbehaving if path grows too large
- Fixed a zeropage read hit with NULL fname
- Extract will now make the target directories RWED before extracting files to them
- comparenames: fixed comparing against directory entries
C/Touch
- Fixed error reporting
C/Xad
- Added support for delayed setting of directory protection modes and modification times
- Fixed couple of out of bounds memory accesses
Classes/Frameworks
- Fixed a bug in the framework startup glue which caused it to fail if a framework has had any new classes included
Classes/Frameworks/mui.framework
- Overloading contextMenuAdd automatically sets MUIA_ContextMenu to true underneath
- Added a possibility to set Window_Active object via special value
- Renamed 'new' to 'titleNew' to avoid a conflict with an ObjC reserved 'new' keyword
- Added an isInObject variant to imsg mouse coord checks
- Added an entries getter to MUICycle
- Added new constructors for MUIScrollbar
- Fixed noNotify string/long/float setters to actually not issue a notify
- Force MCCListtree to always overload the MUI class internally
- Implemented MCCListtree drag & drop support with extra callbacks to notify client on node re-arrangement
- Make sure to handle CONST_STRPTR like STRPTR (as OBString) in method return values
- Deprecated all Pop hooks. Added convenience contructors for Popstring and Popasl
- Fixed a small memory leak in MUIMenustrip (would only be freed on quit)
- Cleanups to make sure constructor class methods use 'self alloc' instead of referencing class names explicitly. Allows for easier overloading
- ObjectiveC Fast Enumeration support on all MUIFamily subclasses
- Fixed string conversion issues in classes unable to support MUIA_Unicode
Classes/Frameworks/ob.framework
- Implemented mutableDeepCopy / OBMutableDeepCopying protocol
- Fixed a bug where [OBMutableSet setWithObjects:...] would try to call 'alloc' on its instance
- Fixed a bug where OBMutableSet's init didn't initialize the hash table correctly
- Added protection against adding/removing a nil object to a OBMutableSet
- Added Cocotron's NSURL port, OBURL
- Added clipboard support to OBString
- Added mutable containers copy and removed mutableCopy from OBObject
Classes/MUI/Aboutbox
- Implemented MUIA_Unicode support
Classes/MUI/Common
- Fixed a bug in class LibClose that could result in system instability
Classes/MUI/Graph.mcc
- Fixed scrolling the graph with a partially obscured window while not using Enhanced Display
Classes/MUI/Hyperlink.mcc
- Allow overriding attrs on OM_NEW
Classes/MUI/Powerterm
- Implemented the "duplicate last character # times" escape sequence
- Tweaked the esc sequences generated by arrows+shift on emulators other than Amiga
Classes/Reggae/Outputs
- Fixed getting MMA_Sound_Mute attribute
Classes/Reggae/Streams
- Fixed reentrancy issues
Devs/Networks/Rtl8168
- Enable the reception of unicast and broadcast packets
- Disable receiver gating where necessary
- Added an alternative way to read the MAC address
Devs/Scanners/Sane
- Fixed reentrancy issues
L/Xadfs
- Added support for directory comments
Devs/Monitors/Radeon
- Support LP171WU1(TL)(A2) and compatible FHD panels in 17 inch PowerBooks
Libs/Asyncio
- Fixed a long standing issue where reading to EOF with two reads, seeking backwards and reading again would return wrong data
Libs/Cgxvideo
- Fixed GetVLayerAttr VOA_FrameBase1: due to a bug it used to return value for VOA_FrameBase0 instead
Libs/Cryptostorage
- Upgraded to openssl 1.0.2u
Libs/Harfbuzz
- Upgraded to harfbuzz 2.7.2
Libs/Ixemul
- kill: Added support for using MorphOS PIDs
- AF_UNIX: implemented getsockopt(), setsockipt(), recvfrom() and sendto()
- Fixed maximum stack usage tracking. ixstack -s now reports PPC stack usage and size if enabled
- Fixed opendir() missing error checks and resource leaks
- Fixed a race resulting in spurious SIGINT signals during network operations
- Fixed mbrlen()/mbrtowc()/wcrtomb() to use per caller static data when called with NULL mbstate_t
- Fixed ix_vfork_resume() to mark the vfork()ed thread as safe to call exit()
- socketpair: better initialization order to avoid double free in error code path
- SetExcept performace improvements
- Fixed softlink support (softlink in path) for chmod()/chown()/mkdir()/rename()/ remove()/rmdir()/setxattr()/lsetxattr()/unlink()/utime()/utimes()
- AF_UNIX: implemented recvmsg() and sendmsg()
- getgroups: support querying the total number of groups
- Corrected FindExecNode usage
- Implemented sockpair()
- Fixed a memory leak in PF_UNIX (PF_LOCAL) socket close
- kill: Fixed a bug that prevented busy programs from being sent a signal
- Fixed wcsrtombs(), mbsrtowcs() and wcstombs()
- ix_close: added TLS support
- Fixed dirname() and basename() to handle volume/device/assign in the path
- Fixed process group signalling to work even when exec*()ing non-ixemul commands. This fixes a long standing bug where CTRL-C was ineffective when ixemul application was executing a non-ixemul command
- Fixed a deadlock that could occur if a vforked() child would select() a file handle
- Fixed memory corruption and leak when printf()ing floating point numbers with very large precision
- Fixed fcntl() F_DUPFD to work with sockets
- Fixed inconsistent and/or random st_ino. This would make grep randomly think the output was /dev/null and omit output
- vfork: call TLS destructors before reaching ix_user_cleanup
- ixprefs: block ix signals when calling OS functions
- Now properly disables signal processing while in ix_panic()
- ix_release_socket: set errno to ENOTSOCK if not DTYPE_SOCKET
- Added missing rlimits, fixed MorphOS' RLIMIT_STACK
- Added IXID_EXTRA_FLAGS
- Reduced ACTION_WAIT_CHAR timeout from 10 seconds to 1 second
- If exit() is called from vfork()ed process before exec*() or from an asynchron thread will now pop up a requested instead of crashing. Calling thread is suspended. exec*() fails with -1/EINVAL for asynchron thread now.
- sleep: don't overwrite errno on successful call
- Added pselect, poll and ppoll functions
- Added missing signal locking to wbstartup code
- Fixed mresident applications using vfork_setup_child() getting corrupted sdata/ sbss section pointers if the pointers are modified by the application before the vfork_setup_child() call. In the case of ksh this would result in corrupt char **environ pointer
- usleep(): don't overwrite errno on successful call
- Fixed wrong default FPU rounding mode. Now it's round to nearest as specified by ISO C standard
- Fixed select() to return -1 and errno EBADF if invalid fds are passed in the file descriptor sets
- Fixed select() to keep the file descriptor sets unmodified on errors
- exit2: call TLS destructors before atexit() handlers
- open(): fixed bogus errno in some error code paths
- glob: if called from 68k app don't crash if errfunc returns 0
Libs/Locale
- Fixed reentracy issues
Libs/Openurl
- Removed the "treat ftp links as ftp" and "treat mailto as mail links" configuration flags
Libs/Pixman
- Updated to libpixman 0.40.0
- Added new API functions pixman_image_set_dither and pixman_image_set_dither_offset
Libs/Thumbnail
- Fixed reentracy issues
- Upgraded to ffmpeg 4.3
Libs/Tre
- Fixed reentracy issues
Libs/TTEngine
- Load not just env:ttengine.database, but also MOSSYS:Prefs/ttengine.database first. User entries may overload ones from MOSSYS
Libs/Vorbisfile
- Updated to libogg 1.3.4 and libvorbis 1.3.6
- Included CVE-2017-14160 security fix
MUI
- Implemented MUIV_Font_Huge
- Fixed context menu exclude trigger handling
- String: Masked RAWKEY_PAGEUP/DOWN and INSERT from being interpreted as string input
- String: Fixed MUIA_String_Placeholder w/ MUIA_String_Secret
- Listtree: Fixed an edge case where an item being dropped on the very top/bottom of the tree would disappear from view entirely
- Popmenu: Implemented scrolling of very large menus
- Popmenu: Fixed hbar layout code to respect the right edge of frame and its spacing
- Implemented clipping text rendering to avoid Text/TT_Text bleeding from the right side
- Localized the Colorring. Made Colorring slider/mode setup persistent
- ASLFO_MaxHeight no longer defaults to 24 but 999
- Menu: changes in attributes and family members weren't always carried to the parent menustrip leading to MUI using a stale state when displaying the window menu
- MUI_Redraw: make extra sure that both mri and mri_RastPort are non-NULL before proceeding with any actual draw ops
- Tweaked dead obj in pushstack error debug message to avoid dumping bogus data
- Don't decode the alpha channel when loading backgrounds
- Filter out special frame files from the background texture file panel
- Fixed help bubbles to display their configured font attributes/colors/effects
- Fixed Popmenu and Menudisplay not to open disabled menus
- Fixed MUIA_Window_NoMenus, added GET support
- Fixed TTFont setup in popup menus
- Issue a MUIM_Menustrip_WillOpen before opening a menu. Lets apps update menu states without having adjust menu state all the time
- Implemented MUIA_TextColor
- Implemented MUIM_List_EndEdit
- Cleaned up MUIA_Application_IconifyTitle and made it dup the string like other strings of the class
- RootClass: Fixed a case where issuing OM_RETAIN/OM_RELEASE inside class' OM_DISPOSE implementation would lead to another OM_DISPOSE
- Added a way to configure a path to a CSS user style sheet. This makes it possible to add a style sheet to a MUI default config
- Implemented MUIM_InitResize, MUIM_ExitResize that make it possible to handle live resizing differently than regular hide/show
- Settings: Don't nuke if spellchecker returns no languages
- Tweaked RootClass' debug messages to be more verbose
- Slave: fixed forwarding to exclude OM_RELEASE and similar methods
Network/Netstack
- Added transparent per task static data: The data is initialized automatically for any application using the bsdsocket.library API functions. This removes the need to open SocketBase separately in each each sub-process
- Added SBTC_ERRNOFUNCPTR/SBTC_HERRNOFUNCPTR
Prefs/OpenURL
- Removed the setting flags removed from openurl.library also from the prefs as well
Skins/Origo
- Adds UI theme settings (scrollbars, checkboxes, radio buttons, text input fields) for Webkit-based applications that harmonize with the respective MUI settings
Tools/Defrag
- Fixed an issue with loading localizations
- Fixed a crash when aborting defragmentation
- Fixed memory leaks on window resize
Tools/IWizard
- Fixed to handle bsdsocket.library not being ready at launch time
- Don't overwite user's ttengine.db anymore
Tools/ScoutNG New
Monitors and hacks system and MUI internals.
Utilities/Grabber
- Fixed to find correct icon path even if launched from shell
Utilities/Zoom
- Load the catalog before constructing the UI