Skip to content

Merge Dev into Master#1383

Merged
raydienull merged 26 commits intomasterfrom
dev
Mar 18, 2025
Merged

Merge Dev into Master#1383
raydienull merged 26 commits intomasterfrom
dev

Conversation

@raydienull
Copy link
Copy Markdown
Contributor

No description provided.

MaxKellermann and others added 26 commits February 14, 2025 07:33
Using vfork() directly is extremely fragile, and posix_spawn() is
easier to use.  This implements a TODO comment.
Each "apt install" invocation loads the package database, and merging
two calls speeds up the build.
"apt" is a wrapper for "apt-get" that is "better suited for
interactive usage", but really only adds overhead, and GitHub actions
are non-interactive by design.
Let's make this a single command, removing the overhead for two "cd"
commands (the latter of which had no effect anyway because it was the
last command in the shell process).
It's only used on non-Windows OSes, and declaring it on all but glibc
broke the Windows build.  Fixes regression by commit 2a129d5
The CI log should be verbose so we can see what commands are really
being used, and it's pointless to use the default "beautified" ninja
output.  In this case, I'd like to know why my ccache changes were not
used ("Hits: 0 / Uncacheable: 210"), see commit b06a46e
ccache cannot cache projects using PCH properly unless we allow it to
be "sloppy" about it.  See ccache manual.
Another improvement for ccache with GCC+PCH, see ccache maual.
to CUSTOM_CXX_FLAGS and CUSTOM_EXE_LINKER_FLAGS.
Added -Wdouble-promotion.
This hides all symbols that have no explicit "visibility" attribute.
Since Sphere never needs to export any of its symbols to another ELF
object (e.g. a loadable module), it makes no sense to leave them in
the executable as global symbols.  This will make a big difference
once we use `--gc-sections`, because only sections with hidden symbols
can be dropped from the executable.
This linker flag, if supported, removes unused sections from the
executable.  Unused sections are those that do not contain public
symbols (therefore `-fvisibility=hidden`) and are not referenced by
other sections.

This shrinks the code size by 4%:

    text	  data	   bss	   dec	   hex	filename
 4069421	285904	1427713	5783038	583dfe	Debug/bin-native64/SphereSvrX64_release
 3918858	284456	1427713	5631027	55ec33	Debug/bin-native64/SphereSvrX64_release
.github/workflows/build*: pass "-v" to ninja
…l Variables to @UserExtCmd Trigger

Credits to @canerksk
Fixed: If Giant Spiders and Fire Elementals are denied going into
sleeping state into a sleeping sector, their dropped items (ie.
i_spider_web) went into sleeping state and didn't decay, leading to
accumulation (Issue #1249).
  Also, stamina wasn't consumed, thus NPCs had no limit in placing those
items.
…if just placed in a sector exceeding complexity threshold.
…the random device.

Moved xorshift inclusion in the cpp.
Added the mt19937_64 variant for the generation of pseudo-random 64 bits
numbers on a 64-bits machine (should be faster).
Made xorshift and mt generators multithreaded.
@raydienull raydienull merged commit 5db37f1 into master Mar 18, 2025
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants