Merge branch 'rickard/no_ets_write_concurrency/OTP-10048' into maint-r14

* rickard/no_ets_write_concurrency/OTP-10048:
  Remove unnecessary memory barriers in ETS when no write_concurrency is used
Fix bug scheduling free processes
Remove development debug code
Read message queue lengths while having lock
Merge 'rickard/thr-prgr-use/OTP-10116' and 'rickard/proc-sched/OTP-9892'

Conflicts:
	erts/emulator/beam/erl_process.c
Use thread progress instead of scheduling misc aux work were possible

Functionality for scheduling operations at thread progress later
has been introduced.

Deallocation of ETS table structures were previously done by scheduling
misc aux work. Deallocation of process structures (not released yet)
was also implemented this way. Instead of using the misc aux work
functionality these implementation now use the newly introduced
functionality for scheduling operations at thread progress later. By
using this new functionaliy we reduce the amount of memory
allocation/deallocation operations needed.
Merge branch 'rickard/proc-sched/OTP-9892'

* rickard/proc-sched/OTP-9892:
  Read message queue lengths while having lock
  Remove development debug code
  Fix bug scheduling free processes

Conflicts:
	erts/emulator/beam/erl_message.c
Merge branch 'rickard/tab-unref-thr-prgr/OTP-10167'

* rickard/tab-unref-thr-prgr/OTP-10167:
  Use thread progress instead of scheduling misc aux work were possible

Conflicts:
	erts/emulator/beam/erl_process.h
compile_SUITE: Correct the forms_2 test case to work on Windows

Correct the forms_2 test case introduced in 2d785c07fbf9f533bf so
that it will work on Windows. As originally written, the test case
assumed that filename:absname("/foo/bar") would return "/foo/bar",
which is not true on Windows (typically, the result will be
"c:/foo/bar").

While at it, clean up indentation, the overlong line, and comments.
Merge branch 'maint'

* maint:
  compile_SUITE: Correct the forms_2 test case to work on Windows
compiler: Eliminate EXIT messages from the temporary compiler process

If a process trap exits, calling the compiler would leave an EXIT
message in the message queue of the calling process because the
compiler spawns a temporary work process. Eliminate the EXIT process
by monitoring the temporary process instead of linking to it.

Reported-by: Jeremy Heater
Fix highlighting of atoms ending with a dollar sign

Like this: 'atom$'.  In that example, the last single quote should be
recognised as ending the atom.  This needs a font-lock workaround
similar to the one for strings.
Fix flattening of paths in erl_prim_loader

When correcting OTP-10071, a new error was introduced in
erl_prim_loader. In order to improve ability to detect if a file was
inside the primary archive, all paths were flattened - i.e. "."  and
".." were removed. This implementation had some faults, and it did not
take symlinks into account. This has been corrected.
Update preloaded

erl_prim_loader.beam
added special case for file names under Windows, thanks to Beads Land-Trujillo
List behaviour callbacks in Edoc when using -callback attribute

Defining a behaviour_info/1 function is no longer the only way to
define a behaviour; you can use -callback attributes as well.  This
change makes edoc aware of the latter, such that the module
documentation page for a behaviour module will list the name and arity
of the required callback functions.

Ideally, edoc should use the type information present in the callback
attributes, but with this change, the documentation is at least no
worse than when using an explicit behaviour_info function.
bumped revision
Merge branch 'maint'

* maint:
  compiler: Eliminate EXIT messages from the temporary compiler process
Bugfix escript_SUITE:archive_script_file_access

Used internal function do_run/3 instead of run/3 for executing
escript. This will always fail on windows.
Merge branch 'siri/erl_prim_loader/archive-scripts/OTP-10071' into maint

* siri/erl_prim_loader/archive-scripts/OTP-10071:
  Bugfix escript_SUITE:archive_script_file_access
  Update preloaded
  Fix flattening of paths in erl_prim_loader