summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-15Remove caching from GitHub build action, which wasn’t working anyway.John Fultz
2023-07-15More GitHub Actions updates.John Fultz
* Remove deprecated Ubuntu, add new Ubuntu * Fix usage of action/cache * Remove Appveyor * Update .gitignore for clangd cache
2023-07-15Update versions of various actions.John Fultz
2023-07-15Begin updates to complete transition to cmake, GitHub Actions.John Fultz
2020-12-09Add cmake/GitHub Actions-based CI, dump Travis-CI.John Fultz
Travis has been throwing a lot of false failures on the Mac build, which was always super-slow anyway. And now it's been suggested that Travis ain't gonna last in the open-source-free-for-use CI business. So out it goes. In its place, GitHub Actions. Just one for now, which runs the build on pushes to master and on PRs (I hope...haven't tested the PR bit yet). Notes about the new system... * It uses the cmake build. Next step...document the cmake system and de-document the qmake system. * It tests against both Qt 5.12.0 and 5.15.1. * Mac, Windows (x64, x86) and Linux (Ubuntu 18.04, 20.04) * On Linux, it also builds clang and g++. * In all of the above cases, it's just pretty much default compilers. Which is probably good...particularly on Linux, where it's not so common for non-developers to be running major compiler updates. * All cmake builds use ninja and cache their Qt downloads, so the result is fairly fast. * No builds of makegaddag, gaddagize, makeminidawg, iotest, or encodeleaves yet, as I haven't migrated those to cmake. Need to get on that.
2020-11-22Fix incorrect duplicate move removalMatt Liberty
Generator::filterOutDuplicatePlays was using the Move::usedTiles() which fails to different between uses of a blank as different letters.
2020-07-23Remove obsolete bullet point from "Helpful Hints" message box.John Fultz
2020-06-18Missing #include to fix TravisCI build.John Fultz
2020-06-18Add cmake stuff to gitignoreOliver Galvin
2020-06-18A few miscellaneous typo fixesOliver Galvin
2020-06-18Fix a couple of compiler warnings: -Wsign-compare and -WpedanticOliver Galvin
2020-06-17Xcode compiler warnings.John Fultz
* Replace std::random_shuffle() with std::shuffle(). * Populate switch statements which were checking the Move enums, but not Move::PlaceError. * endl -> Qt::endl for QTextStream usage. * QString::SkipEmptyParts -> Qt::SkipEmptyParts * QLabel::pixmap() now takes Qt::ReturnByValue * Use QElapsedTimer where appropriate.
2019-08-11Fix devicePixelRatios on tile pixmap after dragging it.John Fultz
Apparently, when you serialize a pixmap through a QDataStream(), it loses track of its devicePixelRatio setting. End rule was that if, on a HiDpi screen, you dragged and dropped a tile within the rack, you'd get a tile that was larger than it should have been by a factor of the default pixel ratio. Solution is to simply reapply the pixel ratio to the newly created Pixmap after deserializing it in the drag-drop code.
2019-08-11Fix "Verify Play" dialog.John Fultz
If a play was made from tiles not on the rack, it brings up the "Verify Play" dialog, to which one of the options is to cancel the play. But canceling the play didn't work. Now it does.
2019-08-06Fix cmake plist.John Fultz
2019-08-06Update readme.John Fultz
2019-08-06link threads in a properly crossplatform mannerMartin DeMello
2019-08-06add pthread to the cmake c++ flagsMartin DeMello
2019-08-06Don't generate bindings that require copying a logStream.Martin DeMello
swig has a problem with non-copyable objects being moved in and out of containers; we can bypass the problem with SimmedMoveMessage by simply not generating bindings for the relevant methods.
2019-08-06Fix regression in simulator.John Fultz
When I refactored the simming loop in Simulator::simulateOnePosition() using a ranged for, I mis-translated the value of the playerNumber variable. This resulted in the results of some plays being double-weighted. This fixes a bug where a 2-ply sim on the opening rack ACINPU? will favor non-bingo plays like UP or CUP rather than bingo plays like PANICUm or PUrANIC. The Championship Player uses a 2-ply sim, so the Championship Player could make some bone-headed plays with this regression.
2019-07-28Update version to 1.0.4.1.John Fultz
Rereleasing with just a couple of bug fixes, and may need to be able to tell the difference between releases in the wild.
2019-07-28Fix #87, make tiles high-res on HiDpi screens.John Fultz
QPixmap is still in actual pixels, so it needs to be created at devicePixelRatio() times its present size, in addition to having its own devicePixelRatio() set.
2019-07-27Accommodate spurious wakeup of condition variables.John Fultz
Hopefully, this fixes crashes some users are seeing.
2019-07-23Make Windows installer install Qt plugins, too.John Fultz
2019-07-22Update installer script and instructions for Windows.John Fultz
Also, switch to Inno Setup 6.
2019-07-22Fix cmake build to build Windows as Win32, not a console app.John Fultz
2019-07-22add support for board configurationMartin DeMello
2019-07-22Add a higher level layer on top of the generated ruby bindings.Martin DeMello
2019-07-22Update OSPS to version 40 (January 2019)alkamid
2019-07-22Make UTF-8 default encoding (and write pragma)alkamid
When reading, leave ISO-8859-1 as the default, and only change stream encoding if #character-encoding present. When writing, set encoding to UTF-8 and write #character-encoding pragma at the top of the .gcg file.
2019-07-22Fix .icns file.John Fultz
Also, fix cmake macOS build to configure the icon.
2019-07-21Clean up duplicate strategy files.John Fultz
There's only two distinct superleaves files, but there were more copies in the layout and it's a huge file. Now, lexica beginning with the text "csw" will fall back to the strategy files in the "csw" directory before going to default_english. And so, the Collins superleaves is in strategy/csw and other dictionaries default directly to strategy/default_english. Also clean up dupes of other files which didn't take much space, but at least it clarifies what strategy files are unique. Minor change to the C++ code to detect the "csw" directory.
2019-07-21Throw a version check around HiDPI attribute...which was only introduced in ↵John Fultz
Qt 5.6.
2019-07-21Make the PRNG thread-safe.John Fultz
Turns out that the C++ PRNGs aren't thread-safe. So lock calls to m_mersenneTwisterRng. Makes Thread Sanitizer happy.
2019-07-21Sims are now threaded.John Fultz
Defaults to two threads right now. This can be changed in the Simulator constructor for the time being. An interface will be added for this soon. For an example I tried, I got the following times on 500 simulations in a macOS release build: * Quackle 1.0.3 - 26 seconds * master branch, 1 thread - 27 seconds * master branch, 2 threads - 19 seconds * master branch, 4 threads - 15 seconds This isn't the most efficient use of threads. It distributes all of the plays being simmed into a thread pool, but only for one simulation. Then it comes up for air and tries again. This was the easiest to implement robustly given the current architecture.
2019-07-21Move constructor for FixedLengthString.John Fultz
2019-07-21Code cleanup.John Fultz
Remove unneeded constructors and use member initializers for Move, MoveList.
2019-07-21Move simulate code to a new static function.John Fultz
The code running the simulation is now disconnected from the Simulation class, with appropriate members being copied into a SimmedMoveConstants field (read-only, thread-safe) and a SimmedMoveMessage (the class for communicating per-sim data to and from external threads). The newly added static function, Simulate::simulateOnePosition(), should now be thread-safe and usable as a run function for a thread.
2019-07-21Rework the simulation messaging.John Fultz
Break out things that are effectively constant into a separate struct so we don't have to keep initializing them. Also, ensure that all of the things I forgot are abstracted so I can break out the per-move simulation into a different function.
2019-07-21Migrate more stuff into sim messages.John Fultz
2019-07-21Move sim toward a message passing model.John Fultz
In prep for allowing sims to be handed off to a thread pool.
2019-07-21Remove address sanitizer from cmake.John Fultz
I may add it back later as an option.
2019-07-21Add support for screen scaling under Windows/Linux.John Fultz
Seems that, unless you tell it to specifically, Qt insists on dealing with physical pixels instead of screen-scaled coordinates. So, i.e., on my 200%-scaled HiDpi display, everything was looking pretty small.
2019-07-21Visual C++ compiler warning fixes.John Fultz
Mostly signed/unsigned/size_t mismatches, except for one case treating a bool as an integer.
2019-07-20Iterate again fixing Qt/HomeBrew/Travis-CI.John Fultz
2019-07-20Iterate again fixing Qt/HomeBrew/Travis-CI.John Fultz
2019-07-20Try again to make Qt/HomeBrew/Travis-CI happy.John Fultz
2019-07-20See if this fixes Travis-CI HomeBrew path issues.John Fultz
2019-07-19Add CSW19 dictionary.John Fultz
Also, rename cswapr07 to csw07 (I think enough years have passed that the need to distinguish the "April update" has passed... but I nonetheless mention it in the copyrights file).
2019-07-19Add NWL2018 and SSWL2018 dictionaries.John Fultz
Better known as the NASPA Word List and the School SCRABBLE Word List.