Add menu support to the prompt system, and an "Eat" command that prompts
for an item to eat and eats the item the character specifies, restoring
an amount of hitpoints configurable via the item raw type.
There's no guarantee that the global current buffer matches the selected
window's buffer. For example, the following will output "*Messages*" regardless
of the actual current buffer:
(progn
(run-at "1 sec" nil (lambda ()
(with-current-buffer (get-buffer "*Messages*")
(sit-for 5))))
(run-at "2 sec" nil (lambda () (message (buffer-name)))))
* exwm-input.el (exwm-input--on-KeyPress): Set the current buffer to selected
window's current buffer.
When tracking message history, save messages associated with the turn
they were displayed on, which allows us to have the notion of the
"current turn's" messages (provided via a MonoComonad instance).
These two packages almost always end up being required by programs,
but people don't necessarily consider them.
They will now always be added and their popularity is artificially
inflated to ensure they end up at the top of the layer list.
Image layers in manifests are now sorted in a stable (descending)
order based on their merge rating, meaning that layers more likely to
be shared between images come first.
The reason for this change is Docker's handling of image layers on
overlayfs2: Images are condensed into a single representation on disk
after downloading.
Due to this Docker will constantly redownload all layers that are
applied in a different order in different images (layer order matters
in imperatively created images), based on something it calls the
'ChainID'.
Sorting the layers this way raises the likelihood of a long chain of
matching layers at the beginning of an image.
This relates to #39.
--
3e60f355db5afd7a864591d81a6c383b6c0a0780 by Samuel Benzaquen <sbenza@google.com>:
Internal change
PiperOrigin-RevId: 272531442
--
6d189240b8cebe3a390c730de491156d03049229 by Andy Getzendanner <durandal@google.com>:
Fix AtomicHook init-order fiasco under MSVC 2019.
On this platform, constexpr static init sometimes happens after dynamic init =/. When it does, we should not zero hook_ (overwriting the value written there by dynamic init); instead we should leave it alone. This works even when constexpr static init goes first since all uses of AtomicHook should have static storage duration and be zero-initialized.
https://developercommunity.visualstudio.com/content/problem/336946/class-with-constexpr-constructor-not-using-static.html
PiperOrigin-RevId: 272525226
--
d01b14fc06bc75b41c51976ed32e7c304ea1aab7 by Abseil Team <absl-team@google.com>:
exclude emscripten from running tests involving long doubles
PiperOrigin-RevId: 272497628
GitOrigin-RevId: 3e60f355db5afd7a864591d81a6c383b6c0a0780
Change-Id: I3c8a8f5acaf7652a06ef40cf028ef5d2e142f81b
Implements a local manifest cache that uses the temporary directory to
cache manifest builds.
This is necessary due to the size of manifests: Keeping them entirely
in-memory would quickly balloon the memory usage of Nixery, unless
some mechanism for cache eviction is implemented.
The functions used for layer creation are now easier to follow and
have clear points at which the layer cache is checked and populated.
This relates to #50.
MD5 hash checking is no longer performed by Nixery (it does not seem
to be necessary), hence the layer cache now only keeps the SHA256 hash
and size in the form of the manifest entry.
This makes it possible to restructure the builder code to perform
cache-fetching and cache-populating for layers in the same place.
The new builder now caches and reads cached manifests to/from GCS. The
in-memory cache is disabled, as manifests are no longer written to
local file and the caching of file paths does not work (unless we
reintroduce reading/writing from temp files as part of the local
cache).
This cache is no longer required as it is implicit because the layer
cache (mapping store path hashes to layer hashes) implies that a layer
has been seen.
Implements the new build process to the point where it can actually
construct and serve image manifests.
It is worth noting that this build process works even if the Nix
sandbox is enabled!
It is also worth nothing that none of the caching functionality that
the new build process enables (such as per-layer build caching) is
actually in use yet, hence running Nixery at this commit is prone to
doing more work than previously.
This relates to #50.
The new manifest package creates image manifests and their
configuration. This previously happened in Nix, but is now part of the
server's workload.
This relates to #50.
The new build process can now call out to Nix to create layers and
upload them to the bucket if necessary.
The layer cache is populated, but not yet used.
The state type contains things such as the bucket handle and Nixery's
configuration which need to be passed around in the builder.
This is only added for convenience.
This cache is going to be used for looking up whether a layer build
has taken place already (based on a hash of the layer contents).
See the caching section in the updated documentation for details.
Relates to #50.
This introduces a new Nix derivation that, given an attribute set of
layer hashes mapped to store paths, will create a layer tarball for
each of the store paths.
This is going to be used by the builder to create layers that are not
present in the cache.
Relates to #50.
Refactors the layer grouping package (which previously compiled to a
separate binary) to expose the layer grouping logic via a function
instead.
This is the next step towards creating layers inside of the server
component instead of in Nix.
Relates to #50.
Simplifies the wrapper script used to invoke Nix builds from Nixery to
just contain the essentials, since the layer grouping logic is moving
into the server itself.
This is the first step towards a more granular build process where
some of the build responsibility moves into the server component.
Rather than assembling all layers inside of Nix, it will only create
the symlink forest and return information about the runtime paths
required by the image.
The server is then responsible for grouping these paths into layers,
and assembling the layers themselves.
Relates to #50.
--
fb57c2d3598c81779c1bcd43c61b5abe748159c1 by Mark Barolak <mbar@google.com>:
Fix a typo in string_view.h
PiperOrigin-RevId: 272287080
--
69ac5819b786e50ec4c3e80847b868feb4ed94ca by Abseil Team <absl-team@google.com>:
Fix -Wmicrosoft-template on clang-cl.
PiperOrigin-RevId: 272260629
GitOrigin-RevId: fb57c2d3598c81779c1bcd43c61b5abe748159c1
Change-Id: Ib5b4486f6a991b340e640b0353fc89cae1100b14
* exwm-workspace.el (exwm-workspace--update-offsets): Explicitly
request the geometry of the container for the first workspace as it
may not align with the top of the root X window.
--
3f99b3ea921adc3607b6f308646db9f893c4d55d by CJ Johnson <johnsoncj@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 272051845
--
9a62831d763e39936239ff53460ede42c2a73afb by CJ Johnson <johnsoncj@google.com>:
Fix spelling errors #384
PiperOrigin-RevId: 272015607
--
b9b51815d52cf17e987636d83adea28c262f3f1a by Abseil Team <absl-team@google.com>:
Fix a spelling error
aligment -> alignment
PiperOrigin-RevId: 271629812
--
7965acbe7d7b5de18cfb2f2e5c0c18759313a229 by Abseil Team <absl-team@google.com>:
Internal build system change.
PiperOrigin-RevId: 271476858
--
0b4508cbeff246c76762f80cbf8753a7414e4023 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 271450732
--
f8cb1aa2196cf2a5e7a474038519da8024090e7f by Samuel Benzaquen <sbenza@google.com>:
Internal change
PiperOrigin-RevId: 271418668
GitOrigin-RevId: 3f99b3ea921adc3607b6f308646db9f893c4d55d
Change-Id: I8743e60d001d42f24cd7494f106eeb2eb07e6526
When gormlaks see the character, they step towards them and attack
dealing 1 damage when adjacent. Characters have hitpoints now, displayed
at the bottom of the game screen, and when the game is over they die.
- Don't let gormlaks run into things like walls or each other
- Add a small element of randomness to gormlaks' motion
- Increase gormlaks' vision by a large amount
Add a (debug) command to reveal all tiles on the game regardless of the
character's vision, which'll make it easier to debug creature's behavior
while they're not visible.
Add a Brain class, which determines for an entity the set of moves it
makes every step of the game, and begin to implement that for gormlaks.
The idea here is that every step of the game, a gormlak will move
towards the furthest-away wall it can see.
--
8e04df6fcbd062e5eaf179a6ec9b0a26f8aa8a39 by Abseil Team <absl-team@google.com>:
Use a floating point type for the example usage of absl::uniform_real_distribution.
PiperOrigin-RevId: 271167776
--
5f8f1dfea50bc16a9d9af3e50c4636500a938b29 by Abseil Team <absl-team@google.com>:
the llvm wasm backend does not support this data symbol in text section, so remove it from the test.
PiperOrigin-RevId: 271138100
--
2874542cb212962ac3093fd78fd5e1eb85c126c0 by Xiaoyi Zhang <zhangxy@google.com>:
Work around MSVC 2019 compiler bug related to constexpr in optional_test.
The change in optional_test is necessary to avoid another bug on MSVC
complaining about accessing invalid member of union, and also makes the test
more reasonale by checking the value of a non-static member.
Filed a bug against MSVC
https://developercommunity.visualstudio.com/content/problem/743998/internal-compiler-error-related-to-constexpr-and-u.html.
PiperOrigin-RevId: 271129805
--
3a5d56f0c3362aabf68938fb95c4e2d3eca59538 by Abseil Team <absl-team@google.com>:
Improve precision of absl::GetCurrentTimeNanos() by adjusting
cycle time sooner.
PiperOrigin-RevId: 271007945
--
1e044a6dec7c0ca150fff1aee52dbdb16aa43ed7 by Abseil Team <absl-team@google.com>:
Internal change.
PiperOrigin-RevId: 270962690
GitOrigin-RevId: 8e04df6fcbd062e5eaf179a6ec9b0a26f8aa8a39
Change-Id: Icb05423a7e93ebdae16baadd59a60b75b5cfa249