* 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
* busy flag for DynTaskPool needs to be atomic
client SocketMutex is no more static
replaced Client::Delete with a deconstructor
Client::disconnect needs to be atomic
Multiple threads want to know UOClientListener::login_clients size.
CI action which runs with Thread/AddressSanitizer
updated some github actions
* listener client size getter
corrected sanitizer build name
* ubuntu22
* Jobnames
* jobname fix, workaround for ci link error?
* use dos cmd for workaround
* fix also winnopch ci
* more unique job names
* updated clang CI
* gcc on mac is also outdated, update in general to 11
* disable gcc on mac due to linker crash
* updated ci action versions since it will fail in the future (eg node
version)
* remove vim swp file
* Crash reproducer with methods
* potential crash fix
* removed ASan build, added core changes
* do not store valuestack reference before calling method to fix potential
dangling reference
* Take into account that the ValueStack can grow due to method calls.
* combined unittests with pol -test. Added it in ctest and integrated it in CI
* fixed compilation
* last compilation errors?
* pol -test needs some fixtures
* activated dynprops unittest
* fixed dynprop test
* first testclient version
fixed dangling pointer in openconnection
added option to keep connection alive
* movement tests
OpenConnection do not start socketclient on connection error
changed communication pkts between testclient and server
send every event to server from testclient
* add new item event
serialize method
check move position
* added openconnection docs
* test if the ci can fail to find python3
* explicit add python3
* added multiclient support
* debug logs
* more debug
* id out of sync?
* cleanup fixed typo
* transfer client id
* send todos to the correct brain
* addee core changes
* boost 1.69
Due to this: https://github.com/boostorg/atomic/issues/15
* build boost with libs for asio
* Boost 1.74
Download from dl.bintray.com/boostorg/ because Boost 1.74 .bz2 is larger than GitHub will allow without LFS
* set BUILD_BYPRODUCTS (just setting one library, and doesn't handle windows.. I don't know what is correct anyway)
* build with b2
* Try Boost.cmake from Kevin
* Specify toolset in configure command line
* Use POL_EXT_LIB_DIR. Make clib depend on boost, not pol itself
* cache boost for github actions
* Copy-pasta correction
* Cache boost for additional github build workflows
* cache boost for coverage build, updated cache action version
Co-authored-by: Kevin Eady <8634912+KevinEady@users.noreply.github.com>
Co-authored-by: turleypol <turley@polserver.com>
* restructured pol testscripts
pkg based (dedicated pkgroot)
runs per pkg:
setup.ecl if exists
all scripts starting with "test"
cleanup.ecl if exists
return 1 for success everything else is an error
* Scripts can now be loaded and exported functions called
adapted testscripts to use this feature
critical script handling missing
* added support for used in critical scripts
* use weakptr instead of pid
moved keep_alive flag to uoexecutor
* Function and nethod accept now a argument list
* added docs
* missing docs
* faster shutdown time
* fixed typo
* fixed weird cornercase
* shorter test functions names, the length is limited, renamed
loadexported test script to have a dedicated testscript
* generate tiledata/multi for small boat
added generate scripts for generation..
adapted testdata set
* boat tests
* extended scripttests
scheduler will now always know about the loaded script
secured scheduler api
* cleanuo scripts for boat and npc
* shorter function for error return
fixed cleanup: npcs have gravestones, chars was one off and scripted
create of a char made it permanent logged in (until next restart),
which also means that it cannot be deleted
* bypass windows specific ecompile.cfg logic
* fix for parallel execution
* on windows its called .exe ..
* use target binary directly, so cmake can replace it with the actual path
use absolute path to testsuite
disabled temporary the copy of ecompile
* configure ecompile.cfg to add absolute path
* early sleepms calls can lead to endless waiting
* Code coverage (#260)
* play with coverage reports
* fix yml
* use 0 as default for gcov cmake var
* fixed used cov version, hopefully fixed now cmake
* demangle function names
* removed debug msg
* added a few polcore tests (basically just for coverage)
first set executor to noncritical before blocking
* added https://coveralls.io/github/polserver/polserver
* added a stackable item
added a few backpack insert tests
do coverage build only on push events not also for PR merge builds
* added storage tests..
docs need fixes, the Imps are not working at all
* fixed storage test to really move items
* added a house
corrected static/dynamic flag
created a few house tests
* updated yml file to new github api
* corrected coverage discord job name
* always put to runlist even if not necessary
* extended aos prop tests
* equip/unequip aos mod
* extra ci step for shard test fixtures and activated verbose shard test
* use extra ci step for all build configs, sorted testscripts for
execution
* fixed sorting
* added param to syslog to not print the context (cleaner testscript
visualization)
* added build targets for tests
* sleep api cleanup
* more aos property tests
* build for coveralls also on pullrequest
* readded debug state reset on schedule
* updated checkout ci action
* updated checkout in all ci runs
* use new way to set environment variables in github actions, they disabled the old way. splitted macos build
* updated vsdev action
* list env vars
* test powershell syntax
* maybe fixed no pch
* use powershell syntax for macos
* removed reusepch fixed coverity
* testing problem matchers
* try to cheat with the regex for the filepath
* dedicated discord job name
* Build on OSX
* Add macos-latest to build matrix
* Fix case sensitivity checks/tests
* On osx builds, cope with unpacking a double that might be followed by either an exponent or an error (as part of an array).
Also, remove static unpack(const char*) forms that were never called.
Co-authored-by: turleypol <turley@polserver.com>
* by default on windows the clib pch shouldnt be reused and instead rebuild
* activate reuse_pch for windows ci build
* changed pch header from public to private
* force antlr to always build in release node also for multiconfigs
set the correct c++ runtime flag for clang on windows
fixed lib path for antlr
in CI also test msbuild and different modes then release
* cache antlr in nopch and force recompile in pch build
* force release mode also for curl
* python script to generate cpp file with BareDistro content
poltool cmd to generate the files
* updated baredistro, fixed compilation
* fix warning, ignore autogenerated file in stylechecker
* test for pol?
uoconvert got a new argument outdir for the cfg file output
single thread decay has now a upper limit of sleeptime
fixed that the exit_code can only get worse
basic files for core testing in testsuite
added a not really nice way to set it up via ctest
integrated in CI with upload of log output
* testenv
* update poltool filegeneration to c++17
* first real tests
* first npc test
* equip a backpack and test a bit aos props
* fixed early returns
Build antlr as external project inside of lib/antlr.
Cache in Ci the antlr folder to speed up compilation times.
* replace ERROR with ANTLR_ERROR, fix clang build
* added missing define needed to link on windows
* different lib name with clang on windows
* move to c++17
* update readme with new compiler requirements
* use c++17 filesystem in testfiles creation
* use gcc9
* Vagrant support for c++17: use gcc9 and llvm 7 (#199)
Co-authored-by: Eric Swanson <eric.the.unicorn@gmail.com>