Commit graph

15619 commits

Author SHA1 Message Date
Florian Klink
118a88dace add rotatingloghandler which removes older log entries 2019-12-02 12:03:46 +01:00
Florian Klink
04a24a0c60 Use Runner
This revamps code quite a bit. Series handling has been moved into the
gerrit client, it also handles caching.

The Runner logic itself has been greatly simplified.

The runner logic has been moved into the runner.go, submitqueue.go is
gone.

The "per-run result object" concept has been dropped - we instead just
use annotated logs.

Also, we switched to apex/log
2019-12-02 10:00:32 +01:00
Griffin Smith
e619dcd126 Eating doesn't take time unless you actually eat
Make it so that opening the eat menu but not actually eating anything
(either because you cancel, or because there's nothing to eat) doesn't
step the game
2019-11-30 22:48:29 -05:00
Griffin Smith
65b1352ef2 Add a very basic inventory panel
Add a very basic inventory panel to the game opened by pressing `i`,
which displays the contents of the player's inventory in a basic list.
2019-11-30 22:43:17 -05:00
Griffin Smith
71b628c604 Add messages on the ground
Add support for a "GroundMessage" entity type, support for a Read
command to read them, and randomly place an initial, tone-setting
tutorial message on the ground near the character at the beginning of
the game.
2019-11-30 19:55:43 -05:00
Chris Feng
6a3e9b2c64 Avoid redundant input focus transfer
* exwm-input.el (exwm-input--set-focus): Check for current focused
X window before making an input focus transfer.
(exwm-input--on-buffer-list-update): Remove the `this-command' check.
2019-12-01 00:00:00 +00:00
Griffin Smith
4431d453f6 Use correct bin path in README
nix build for a haskell package makes a directory, not just a bare
binary.
2019-11-30 18:25:32 -05:00
Griffin Smith
0b22bb099c Fail on all warnings in CI
All the undefineds are gone, so it's time to enable -Werror in CI.
2019-11-30 18:16:48 -05:00
Griffin Smith
97a5c61f28 Fix an injectivity issue with saving the game
Fix an injectivity issue with JSON-encoding the entity map that was
causing the game saving to not properly round-trip. As part of this,
there's a refactor to the internals of the entity map to use sets
instead of vectors, which should also get us a nice perf boost.
2019-11-30 15:00:39 -05:00
Griffin Smith
310ea90985 Add build and run instructions to the README
just for the heck of it.
2019-11-30 14:13:07 -05:00
Griffin Smith
92976cc9aa Move patch file to a less obtrusive location 2019-11-29 23:01:36 -05:00
Griffin Smith
8a1235c3dc Use menus for combat and picking up items
Refactor a bunch of stuff around to allow for polymorphically surfacing
an EntityChar for all entities, and use this to write a generic
`entityMenu` function, which generates a menu from the chars of a list
of entities - and use that to fully implement (removing `undefined`)
menus for both attacking and picking things up when there are multiple
entities on the relevant tile.
2019-11-29 22:59:15 -05:00
Griffin Smith
7d8ce026a2 Add DerivingVia newtype for generic arbitrary
Add a newtype, GenericArbitrary, which can be used with -XDerivingVia to
derive Arbitrary instances for types with Generic, via patching
generic-arbitrary to expose the underlying typeclass it uses for
surfacing the type information.
2019-11-29 22:57:58 -05:00
Griffin Smith
0abcd8c958 Implement a "look" command
Implement the PointOnMap prompt type, which allows the player to move
the cursor around and select a position on the map, and use this prompt
type to implement a "look" command, describing all entities at the
selected position.
2019-11-29 21:25:35 -05:00
Griffin Smith
f37d0f75c0 Implement saving+loading the game
Implement ToJSON and FromJSON for all of the various pieces of the game
state, and add a pair of functions saveGame/loadGame implementing a
prism to save the game as zlib-compressed JSON. To test this, there's
now Arbitrary, CoArbitrary, and Function instances for all the parts of
the game state - to get around circular imports with the concrete
entities this unfortunately is happening via orphan instances, plus an
hs-boot file to break a circular import that was just a little too hard
to remove by moving things around. Ugh.
2019-11-29 14:33:52 -05:00
Florian Klink
7bafef7a84 runner: document NewRunner 2019-11-27 19:49:39 +01:00
Florian Klink
cd40e68dde submit-queue.tmpl: move HEAD information to result 2019-11-27 19:39:42 +01:00
Florian Klink
ba62db97e9 result: move code into separate result.go 2019-11-27 19:33:37 +01:00
Florian Klink
4c555f330e submit-queue.tmpl.html: improve log rendering 2019-11-27 19:32:14 +01:00
Florian Klink
192835278c submitqueue.submitqueue: document Result functions 2019-11-27 19:32:14 +01:00
Griffin Smith
2f2e5a0b68 Gitignore source before passing to nix
Call hercules-ci's gitignoreSource on the src path before passing to
nix, which both prevents spurious rebuilds and also makes compilation
via `nix build` (which under the hood uses cabal v1-build) work while
also doing development using `cabal new-build`
2019-11-27 13:20:46 -05:00
Florian Klink
fdfcf7967a submit-queue.tmpl: fix accordion, remove "Current Queue"
The Current Queue in fact is just the latest log element.
2019-11-27 19:18:15 +01:00
Florian Klink
917db9e9fd submit-queue.tmpl.html: remove stray </code> 2019-11-27 19:17:22 +01:00
Vincent Ambo
9d6792609f
Merge pull request #10 from tazjin/feat/buildGo-dot-nix
Introduce Bazel-style Nix build system for Go
2019-11-27 15:47:52 +00:00
Vincent Ambo
0bd085f5d6 chore(overrides): Import buildGo.nix from external repository 2019-11-27 15:20:24 +00:00
Vincent Ambo
28e587b348 docs: Add README file that describes project usage & background 2019-11-27 15:14:43 +00:00
Florian Klink
a00a24d459 submit-queue.tmpl.html: navbar-expand-{lg->sm} 2019-11-27 13:13:48 +01:00
Florian Klink
e6482a9725 submit-queue.tmpl.html: add history visualizer 2019-11-27 13:05:22 +01:00
Florian Klink
91deabe4b3 submitqueue.Run: copy series into result object after loading them from gerrit
So we have them in the history later.
2019-11-27 13:03:17 +01:00
Florian Klink
87d09f6163 submitqueue: Result: record startTime during a new MakeResult constructor, return EndTime properly
even without any LogEntries
2019-11-27 13:02:20 +01:00
Florian Klink
089e551b72 tmpl: move #region-queue to heading
the series block will get reused, and we don't want the same ID to
appear twice.
2019-11-27 13:01:21 +01:00
Florian Klink
d81ae74999 frontend: reorder things passed to template 2019-11-27 13:00:50 +01:00
Florian Klink
69f0963a17 render series via a separate block 2019-11-27 11:41:45 +01:00
Florian Klink
151cc75532 render serie via a separate block 2019-11-27 11:40:52 +01:00
Florian Klink
1b249600e5 render changeset via a separate block 2019-11-27 11:35:07 +01:00
Florian Klink
97eb1fae38 loadTemplate: support loading mulitple templates 2019-11-27 11:24:04 +01:00
Abseil Team
0514227d25 Export of internal Abseil changes
--
2ba0e41a21fbdab36b2f4f3b0dd4b112bd788604 by Derek Mauro <dmauro@google.com>:

Remove the include of <intsafe.h>, which is missing on
some versions of MinGW. DWORD is easily replaced by uint32_t.

PiperOrigin-RevId: 282576177

--
238fd41114b3e83fcb91d2afe1e6dcce7cfd53b0 by Samuel Benzaquen <sbenza@google.com>:

Remove assertion in erase(iterator) that tries to use the comparator.
Add missing this-> qualifier.
Fix bug where node elements are not being destroyed properly.

PiperOrigin-RevId: 282427096

--
6b9446e3b38ed97451c010933e86a572ab659ab2 by Derek Mauro <dmauro@google.com>:

Improves/fixes feature detection in thread_identity

Only use ABSL_PER_THREAD_TLS_KEYWORD when it is supported (previously
on some platforms it evaluated to nothing, which completely breaks
everything), but prefer it to thread_local since benchmarks indicate
it is slightly faster in this critical code path.

Disable the calls to pthread_sigmask on MinGW where it is not
supported.

PiperOrigin-RevId: 282425291
GitOrigin-RevId: 2ba0e41a21fbdab36b2f4f3b0dd4b112bd788604
Change-Id: I34073ecbb4a43ad71f54161c136d88fc728888f1
2019-11-26 12:37:42 -05:00
Vincent Ambo
9280cf9715 feat(buildGo): Add support for gRPC packages
Introduces buildGo.grpc which is like buildGo.proto, but adds
dependencies on the gRPC libraries.
2019-11-26 12:28:10 +00:00
Vincent Ambo
d3e8774a8e feat(proto): Add protobuf & gRPC dependencies via external
Moves the Protobuf & gRPC dependencies to a separate file which uses
buildGo.external to build the dependencies.

The versions are pinned at master of 2019-11-26.
2019-11-26 12:28:10 +00:00
Vincent Ambo
8b6b08b814 feat(buildGo): Add 'srcOnly' and 'targets' parameters for external
Adds two new parameters to buildGo.external:

* `srcOnly` toggles whether the created derivation should contain only
  the source code, or the built package.

  This is useful in situations where some sub-packages of a larger
  package are needed and the build should be deferred to the package
  depending on them.

  It defaults to false, meaning that external packages are built by
  default.

* `targets` controls which "sub-packages" of the target package are
  built. It defaults to building all sub-packages.
2019-11-26 12:21:58 +00:00
Abseil Team
7f4fe64af8 Export of internal Abseil changes
--
44efc1bb0e0a47eabf0569eaab81c66710d5b9c3 by Mark Barolak <mbar@google.com>:

Update "strings::Substitute" to "absl::Substitute" in the absl::Substitute error messages.

PiperOrigin-RevId: 282388042

--
9ec7e9385f5469473f76857dc5b067d869bbc65b by Abseil Team <absl-team@google.com>:

Remove deprecated ExponentialBiased::Get()

PiperOrigin-RevId: 282045123
GitOrigin-RevId: 44efc1bb0e0a47eabf0569eaab81c66710d5b9c3
Change-Id: I915bf0ff5fa7ac2bd5f9fb653d1fbd9ece6af9fc
2019-11-25 14:57:06 -05:00
Florian Klink
6bb7689a7b removed unused views/ folder 2019-11-25 18:27:13 +01:00
Florian Klink
b0f08a99ee frontend: expose the currentlyRunning value 2019-11-25 18:26:19 +01:00
Florian Klink
b65f56c6e2 frontend: return state atomically, remove GetSubmitQueue 2019-11-25 18:12:38 +01:00
Florian Klink
3898495d56 .envrc: enable go modules 2019-11-25 17:48:08 +01:00
Vincent Ambo
7d26550c11 feat(buildGo): Add support for building "external" Go libraries
Adds a buildGo.external function that can build packages following the
default go-tool package layout. Dependencies work the same way as they
do for other buildGo-packages, but instead of being passed straight to
the compiler a fake GOPATH is assembled using a symlink forest.

External currently supports very few direct configuration options and
was primarily created to build the protobuf packages, but it is also
useful for including external dependencies in buildGo-native projects.

The previous complex build logic for the protobuf package has been
replaced with a call to `external`.
2019-11-25 16:45:21 +00:00
Florian Klink
16e197b154 TODO: log last update 2019-11-25 17:43:56 +01:00
Florian Klink
ad27d963f2 submitqueue: remove updateHEAD function
This is already done during the Run() function
2019-11-25 17:42:58 +01:00
Florian Klink
266c27d1d0 foo 2019-11-25 17:42:48 +01:00
Florian Klink
10b2c6e365 frontend: we already add hyperlinks 2019-11-25 17:36:39 +01:00