* using fmt instead of ostringstream
misc cleanup
* missing external libs for clang tidy check
* added test for cprops ignore while stacking
door descriptor
* use contains instead of count, removed disabled ancient code
* pack/packonto simplification/speedup
instead of using ostream and convert to string, use format and directly
a string
* silence cppdap lib
* refornat curl flags for readabilty
* zlib was build with the wrong runtime mode. Updated version
* use mariadb connector instead of mysql
* removed mysql define
* removed mysql
* removed installation of mysqlclient in workflow runs
* fixed curl install dir
* missing zstd on macos
* fixed module parsing for cmake 4.x
* docs
* added mariadb build to tidy_pr_check
* test sql on all platforms
some plugins need to included on windows
* refactor gump pkt creation
* testclient returns buttonid 1 pressed when 'button' is contained in the
commands
* extended test
* cleanup destructor mess a bit
* store gumps as pair to decide if the executor needs to be revived
more refactoring
* disallow copy, if used creates nasty bugs
* helper method to convert imp to character
* gumpevent
* new non-blocking dialog function, sends event instead
* test closegump
* test if serialnumber gets correctly converted and invalid entries get
skipped
* removed unused BApplicPtr class
added BApplicObjBase to impptrIf convert function
* use impptrIf
* CloseGump accepts now also an array of characters
extended tests
* moved deleted copy constructor to the public part
* by default clang tidy will check .inc files, removed this filter
* the last tidy run with modernize-loop wasnt added to the PR check
* keep vector with chr and gumpid per uomod
to prevent growing dont add to the cache if same chr with same id
already exists.
* docs
* core-changes
* workflow which checks the diff of a PR with clang-tidy
* check if suggestions work
* Revert "check if suggestions work"
This reverts commit 7c89b3b959.
* let clang-tidy do its thing
* Automated clang-tidy change: modernize-use-override
* compile test
---------
Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
* added parser for shardoutput which outputs markdown
used to post a summary of all tests with output if failure
* use ctest temp file as source for the summary
* fixed yml syntax
* silly mistakes...
* break something on purpose
* added to every yml
* print failed tests also outside of the table
break one test on purpose
* fixed variables
* use codeblock
* in codeblocks actual newline needs to be used
* fixed formatting?
* fixed on purpose testerror
* setup and cleanup ecl have no functions
* use c++20
* increased used clang version
* compiler report and logfacility use now compile time formatting, which
means that the formatstring gets checked at compile time. (which found 2 errors)
adapted a few places since report only accepts formatting arguments
adapted a few places with logging since char[] is compile time
formatting and string or chr* is runtime formatting
* use std::ranges instead of boost
* disabled pragma_assume vs specific macro (I guess noone cares)
* needed to fix ancient ms exception code
* modernized SpinLock
* removed unused code in ECompile
* replaced std::filesystem::path::u8string with string. It now returns an actual u8string type
* cleanup layers.h added the defines for other layers which where before
only defined in the pkt
* osmod::OpenConnection and HTTPRequest cleanup: early outs, dont check for pChild which is
only needed for startscript and placed suspend at the very last
position
* fix warning
* rebuild cache with new compiler version
* define c++ standard for external libs where possible
* added fixme
* wip implementation
* maybe add tests...
* fix dependencies
* fix windows and mac deps
* attempt #3 for mac deps
* add --break-system-packages because WHY NOT
* add raii wrapper for curl_slist and curl_mime
* add content_type; fix incorrect recipient variable; more tests
* put smtpd log in file; add curl_easy_setopt_return_error; fix parsing email from display string
* remove some debugging
* catch exceptions in polsys::ReloadConfiguration; tests; smtpd cleanup
* Fix xslt validation erorrs in osem.xml
- `HTTPRequest`` did not have the `<code>` block inside `<explain>` so
it was not rendered.
- `LoadExportedScript` needed `<return>` after `<explain>`
- `GetEnvironmentVariable` needed `<return>` after `<explain>`
* Address review comments
- remove openssl test dep by generating cert, valid for 100 years
- only run test if asiosmtpd module is installed
* Address review comments
- remove `pChild`
- remove `curl_easy_setopt_return_error` macro
- return `new BLong( 0 )` for temp object replaced by background thread
* Address review comments
- use `Clib::localtime` + `fmt::format` for date header
* Address review comments
- Early exit on failures
* Address review comments
- Move suspend to immediately before background thread creation
* Address review comments
- better handling of curl_slist and curl_mimes
* Address Discord comments
- remove env check in test_email program
* attempt to fix timezone issue in date header
* additional tests for invalid params
* add docs, core changes
* smtpd: fix event loop, only run if not filtered out
* put stacktrace in "no signal received" error
* fix stacktrace call in testutil; add default param to os.environ.get in smtpd
* MacOS dap implementation has a race in close and isOpen.
removed isOpen check before calling close (close would be a no-op if
already closed.
introduced bool flag as waiting condition, expects that the closehandler
is called always, do not know if this is the case.
* build also on mac14
* use only one os version like we do for linux and windows
* lower chances to hit the problem
* use uoexpansion enums for A9, B9 flags
added TOL to uoexpansion
currently unsure where this will end
simplified account initialisation, added errorcheck
* Expansion classes for server and account
fixed flags
* use of AccountExpansion,ServerExpansion
extended tests
splitted unittest file
added missing test for Min/MaxAttackRange
* more micro performance for world saving
use all 4 cores in CI builds
fix compiler flag warning on windows
* save test for weight_multiplier
* enable gothic,rustictiles when using HSA expansion
* removed ancient unused files
* addressed comments
renamed ServerExpansion to ServerFeatures
added method for expansion name
* got rid of client UOExpansionFlag which is the same as the accout
expansion
* updated core-changes and docs
* updated generated ssopt
* test for tooltips
changed method names
removed/clarified comments
* npc hitchance was never saved
added missing npc save tests
* hitchance bug exists also for items...
added missing test for movemode
* Clib::clamp_convert is now able to convert between equal sized types.
fixed tons of overflow/underflow problems in script member setters
* fix coverage CI
added docs
fixed warning
* finally got it right?
massively extended tests
* removed unneeded special handling
better comments
* preparation
update boost
build stacktrace
* if worldsave i/o operations fail core terminates directly, allow
exceptions in SaveContext deconstructor to prevent this
* link with boost stackstrace
* print exception backtrace when buffering fails
* replaced other forced backtraces with actuals
* test throw
* revert test throw
* register terminate handler and print stacktrace
unsure if it collides with the other signals register
* StreamSaver can terminate in the deconstructor
added PolCore().last_worldsave which returns the gameclock of the last
successfull world save.
SaveWorldState() can now return error "Failed to save world" if the first critical
part fails. Since the second part runs async you have to check the new PolCore member when the last successfull save was.
* fixed cppdap checkout
* catch exceptions in the deconstructor and do not rethrow during stack
unwinding
* fix mac build
* fix apple builds
* helper lambda to get rid of repeating try/catch blocks per datafile
try to set promise in exception cases to guarantee the set
moved account storage into parallel tasks, comment about extra
thread is no longer valid.
* centralized stacktrace
renamed polcore member
* extended comment for clarification
* docs
* switch to cppdap original repo, latest commit
* update cppdap cache folder for github actions
coverity still used gcc11 instead 12
* minimum CMake version is now 3.22, since cppdap needs it
updated year
* cmake cleanup due to minimum version change
set c++ minimum version at a not so hidden spot
* Update efsw to 1.4.0
* Use llvm 18.1.5 on windows
* set path for clang
* Use llvm 18.1.5 on windows
* Remove windows clang-cl build from CI
* trigger CI
* Add libefsw at 3419347
* saving work
* some cleanup
* move to fs::paths
* saving work.. maybe hitting a limit with number of watched dirs?
* migrate to watching only ecompile.cfg specified folders, cleanup/doc
* Display summary between compilations in watch mode; fix cache reuse
* Fix inf loop; some cmake, format changes...
* some windows compilation fixes... tweaks to windows cmake?
* Update Efsw.cmake for build lib changes
* removed debug flag
* silence efsw build
dont add antlr project if it already exists
* Address review comments:
- use std::move on efswwatcher add_*
* add docs
* Add WatchModeByDefault ecompile.cfg option
* iniital work on tests
* Add CI actions
* some changes (passes locally on win, mac, linux)
* Fix fixtures dependency; use ecompile verbose mode
* Add core-changes
* Send ctrl+c instead of killing process
* Proper Python file naming
* Kill ecompile process on windows, SIGINT otherwise
---------
Co-authored-by: turleypol <turley@polserver.com>
* added sql tests (linux only)
* add mysql_escape_string module function
its now possible to define a port for sql connection. (0 means default
sql port like before)
* escape string can fail, return error in this case
* rebuild antlr
* added docs
* every 3rd party lib is now excluded from "all" build, meaning it gets
only build when actually used.
removed the cmake option to partially build, due to the above changes
this is no more needed, just build the target
streamlined 3rdparty target names, they all start with lib now
* renamed escriptgrammar target to escriptgrammar_codegen for
clarification
fixed dependency name
* corrected sources name
* readded missing include
* Add cppdap debugger library and simple server (#508)
* Add cppdap library
* Add cppdap server
* fixup cmake scripts for windows
* Enable caching of cppdap on GitHub actions
* Fix CMake for cppdap target
* Wait 1s for session close before thread ends
* Address review comments
- Remove unnecessary use of wait_for
- Fix wait_for method
* Do not use SocketClientThread for cppdap clients
* Address review comments
- Cleanup object ownership
* Add authorization and event handling (#510)
* Add authorization and event handling [WIP]
* Use std::weak_ptr; Only allow one debugger conn
* Only attach debugger if dbg file exists
* Cleanup weak_ptr; Fix listeners; Add handler stubs
* Address review comments
- PolLock on uoexec and weakptr access
- Use make_shared when creating client thread
* Add ExecutorDebugListener on_destroy callback
* Use cppdap sockets instead of clib sockets
* Update cppdap repository to 2703cf4
* Implement server address binding
* Update cppdap repository to eeca5ce
* Fix warnings
* Use weak_from_this
* Fix stalled executors on disconnect
* Fix stalled executors on re-attach
* Clear uoexec weakptr on all debugger detaches
* Move server to gamestate
* move DapDebugServer into Network namespace
* move DapDebugServer into GameState for storage
* Move DapDebugServer into NetworkManager
* Fix missing memory include
* Add more events (#513)
* Add more events
* Implement dbg_step_out
* Fix breakpoint clearing
* Add even more events (#515)
* add launch request
* Add custom `processes` command
* fixup loop
* Refactoring to move handlers to member functions
* Add VariablesRequest and ScopesRequest
* use std::varaint for Handles
* add pollocks
* refactor Handles to new file
* move custom messages to proto.h
* move clientthread
* some formatting / cleanup
* Add missing PolLock
* move dap variables creation to Handles
* appobj members
* rename ClientThread to DebugClientThread
* rename LaunchRequest args to arg
* Fix compiler error on size_t
* Add support for EvaluateRequest and SetVariableRequest (#519)
* Update grammar for evaluateUnit
* Cleanup various compiler code
* Add support for EvaluateRequest
Only supports values, variables, element access, member access
* Add report clearing to reinitialize state
* Add support for SetVariableRequest
* Fix CI build errors
* Move ExpressionEvaluator to Bscript
* Fix formatting
* Fix include
* Refactor global and frame variable references
* Encapsulate Executor debugging environment; Fix step over (#524)
* Fix step over
* Some cleanup of executor
- Remove unused debug states
- Rename members for consistency
* move debugging environment to new class
* Move instruction inspection to class
* Cleanup slashes on Windows; Add Executor state to processes response (#527)
* Fix backspaces in script names on Windows
* Fix compilation warnings with data loss
* Use boost::icontains for string comparison
* Add Executor state to processes response
* Updates for libfmt
* Fix tests; Fix cppdap build for Mac universal binary (#607)
* fix tests
* fix cppdap build for mac universal binary
* Update cppdap to 2a4c7cf
* Add tests; Modify launch behavior to not stop at entry (redo) (#609)
* Remove unused setExceptionBreakpoints handler
* Add debugger tests
* Launching a script should not set attaching state
* Add launch tests
* Do not check for connection in debugger tests
* Rename `program` to `script` in protocol structs
* Fix launch stopAtEntry; quote string var values
* Fix compilation error on Windows
* Add configfiles doc entry
* Various fixes for finishing touches; Add core-changes (#610)
* switch cmake projects
* simple docs
* cmake move make_directory
* Fix launch request with relative, absolute, package paths
* make relative paths as absolute in source request
* Add true, false, uninit to ExpressionEvaluator
* Re-add setExceptionBreakpoints to avoid unhandled message errors
* Better debug thread logging with instance numbers
* launched scripts should terminate on disconnect (according to DAP spec)
* Properly handle exited event in client thread
* Add core-changes
* Address Discord comments
- Mention vscode-escript in core-changes
- Re-add "cppdap already built" in cmake
* change cmake escriptgrammarlib visibility to public
* added explicit targets for every 3rd party lib
these contain include dirs/libs/compiler defs
* moved each 3rd party lib into a version folder, to give each target a
dedicated include directory.
Now noone should add lib root folder as include dir
Used private linking where possible
disabled building of boost, wasnt used at all
* regnerate boost cache
adapted targets for coverity
* rewrite of saving, replaced operator way with a generic add method, thus
not everywhere the formating of the savefiles is hardcoded.
since its the last spot which uses the old formating lib, remobed the
lib
* removed cmake of old format lib
* testscripts for load/save of UObject,Item,Armor,Weapon
* fixed: member faster_cast_recovery and faster_cast_recovery_mod getter returned
a wrong value
* wrong/missing docs
* test containers, lockable, map, spellbooks
fixed save bug in map and spellbook
removed ancient savestrategy experiments
* added corpse test
splitted testfiles
* fixed loading (ancient bug) and saving (PR bug) of Reportables
added tests for houses, boats, accounts and chars
* fixed include
* fix shutdown leak
* added npc tests
upload complete coretest folder also on failure
* do not write and load RegisteredHouse for NPCs two times
readded extra newline between accounts
* tests for guild, party, realm
added resource cfgs, but a test is not really possible since nothing of
interest is stored
* added datafile, storage test
* activated resource loading, 25year old bug, but since the stored values
are senseless it makes no real difference.
added a few wtf comments
catch all exceptions during formatting of log lines
* replaced .write with explixit .begin, .end and .comment.
for leftovers.txt the StreamSaver was also used, since the format is
different use directly ofstream
* added corechanges
* use std::to_chars for doubles
* fixed cmake errors when an escript error occurs
* macos 13 with clang15
* CI: macos new cache version
* guessing game
* guess no2
* test shipped clang with deloytarget env
* adapted testdata, lets see if all platforms behave the same
* explicit test if high precision double can get packed+unpacked
* log testclient receive buffer on error
* added docs
* added test for pack/unpack double which has exponent representation. Bug
in vs 2022 17.8..
removed unneeded minimum versions of cmake, root cmake file has a higher
minimum version
* switch back to vs2019
* force rebuild external libs
* docs
* ssl support for curl on windows was renamed
* added corechanges
problemmatcher for windows build wasnt working, found a hopefully
working one
* missing files
* universal binaries for src and prebuilt deps
* Rebuild antlr from cache?
* Recache everything
* universalize libssh2
* Pin brew-universalize versions
* Better handling of cxxflags for boost
* Correctly handle cmake message
* Store brew-universalize in bin-build
* Standardize cache keys
* No clue on this compiler flag
* Lets try this boost cxxflag