Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #146: use compiler hash instead of volatile mtime #147

Merged
merged 2 commits into from
Sep 8, 2023

Conversation

janisozaur
Copy link
Contributor

This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses

This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses
@hendrikmuhs
Copy link
Owner

I am willing to merge an optional setting.

compiler_check=content is documented to be slower.

It is a special case if the mtime is different for you, I think most users don't have that problem: The runner images change rarely. On a linux system the mtime of a package is not based on the install date but depends on the package creation date.

@janisozaur
Copy link
Contributor Author

I would suggest setting it as default for macOS (I have seen it in other projects using github actions as well), but I don't know how. If you're happy with this suggestion, can you try implementing that?

…darwin

This addresses issue where GitHub actions runners report different mtime for compiler causing incorrect cache misses
@janisozaur
Copy link
Contributor Author

I tried implementing that as a default for macOS.

@krlmlr
Copy link
Contributor

krlmlr commented Sep 7, 2023

If this is a mac-only issue, the implementation looks good to me. What about Windows?

Copy link
Owner

@hendrikmuhs hendrikmuhs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hendrikmuhs hendrikmuhs merged commit 9a21fcb into hendrikmuhs:main Sep 8, 2023
janisozaur added a commit to janisozaur/aseprite that referenced this pull request Sep 25, 2023
Originally (aseprite#2699) ccache was only enable for Linux due to suspiciously low
macOS yields.

I have addressed the likely issue upstream
(hendrikmuhs/ccache-action#147) and ccache can be used
on macOS now as well.
UNIDY2002 added a commit to thu-info-community/thu-info-app that referenced this pull request Nov 20, 2023
RooTender added a commit to RooTender/aseprite that referenced this pull request Nov 20, 2023
* Include build type in ccache key

This should lead to better cache utilisation, smaller caches

* Use ccache on macOS

Originally (aseprite#2699) ccache was only enable for Linux due to suspiciously low
macOS yields.

I have addressed the likely issue upstream
(hendrikmuhs/ccache-action#147) and ccache can be used
on macOS now as well.

* Fix blend mode usage for GraphicsContext:drawImage(image, x, y) (fix aseprite#3960)

* Use transparent color when the source indexed image uses mask color (fix aseprite#3960)

* [lua] Add GraphicsContext.palette property to set the palette used to draw indexed images

* Set GraphicsContext.palette automatically when a Sprite's indexed image
or tileset's tile indexed image is drawn

* Fix Full Preview and Edges setting on Cursors preferences (fix aseprite#3188)

* Update INSTALL.md

Including all the steps for the ARM version of the mac install instructions, rather than partial steps.

* Show brush preview for custom brushes when using Paint Bucket tool (fix aseprite#4052)

* Fix unused variable warnings

* Fix sprintf() warnings using snprintf() or fmt::format()

* Clarify Windows instructions for 64-bit Skia

* Update laf module

New changes required for aseprite#3684/aseprite#4063 to trigger mouse buttons with
keys correctly.

* Add more accessible option to re-enable the Aseprite file dialog (fix aseprite#4051)

As now the native file selector is the default one, we moved the
option to re-enable the previous file selector to Edit > Preferences >
General > Show Aseprite file dialog option.

Related to aseprite#3615 and added as a simple alternative to aseprite#2745 which
require native widgets on each native file dialog.

* fixed time duration not including ending frame

* Add Timeline visibility button to Toolbar, extracted button draw logic to separate member function

* Add new icon for the button to switch the timeline visibility (aseprite#4081, aseprite#4092)

* Minor fix in new timeline button in the toolbar (aseprite#4081, aseprite#4092)

The button was being painted with "toolbutton_last" part instead of
"toolbutton_normal" when it wasn't highlighted/in "hot" state.

* Fix std::clamp() assert in Manager::onInitTheme()

* respect slice keys frame number on ase file format (fix aseprite#4062)

* Prevent crash when in Auto or Stack mode the user tries to move pixels from a tilemap with inexistent tiles (fix aseprite#4071)

* Fix disable delete layer button when only one layer exists (fix aseprite#3649)

* [x11] Update clip module to fix a problem pasting text to some text editors

* Revert timeline behavior to the v1.2 default (aseprite#4024)

This change was introduced in dd7e27a
as a possible fix for aseprite#4024, but the change is too disruptive to be
introduced at this stage, we need some extra UI elements to make the
drag & drop accessible in both modes: the default v1.2 behavior, and
a possible new selection mode, e.g. aseprite#1498

* Rename scale_xxbits_to_8bits() -> scale_xbits_to_8bits()

* Take some tests out from a loop they don't depend on

* Support scaling down bits (e.g. from 10 to 8) with scale_xbits_to_8bits() doing a bit shift

* Update submodules (fix aseprite#4102)

* Improve script engine's exception handling

More details about the implications of this change can be found
in aseprite#4057

* [lua] Limit the possibility to create a tileset with origin != 0,0 (fix aseprite#4118)

* [lua] Make Sprite:newTileset(Rectangle) work (fix aseprite#4117)

* [lua] Sprite:newTileset() uses sprite grid size by default (fix aseprite#4116)

* Update clip submodule

* EditorConfig: Don't use tabs in .md files

* Show custom pattern brushes for Paint Bucket (fix aseprite#4053)

* [lua] Fix crash when saving tilemap's cel image (fix aseprite#4069)

* Remove ';' chars from lua tests

* Fix crash deleting layers while using "Change Layer" w/scroll wheel  (fix aseprite#4114)

E.g. If we configure Shift+scroll wheel to "Change Layer" action, and
Shift+J to delete a layer, we can press Shift key and move through
layers with the mouse whell while we press the Shift key, and if we
press J (without releasing the Shift) start deleting layers. At some
point a crash will happen.

* Update laf module

* Fix error message when attempting to delete layer in a group (fix aseprite#4083)

If the sprite contained only one layer group, and we tried to delete
one child, we got an error message about "You cannot delete all
layers". This fixes this (the error message is only when we delete the
last top level layer).

* Minor comment in AppOptions::VerboseLevel

* Log UUID when -debug option is specified (fix aseprite#4104)

In this way, in some cases, we could ask to the user for the -debug
report and match some Sentry crash report with the user.

* Possible fix for crash reports re-opening IntEntry popup when it's already open (fix aseprite#4124)

* Fixed unnecessary scrollbar in X dimension for dithering selector dropdown.

Added offset to dithering selector dropdown width to avoid X dimension scrollbar obscuring the bottom of the dropdown. This also removes the need for a vertical scrollbar for the generic number of dithering options.
Related to Issue aseprite#4001

* Minor refactor to set DitheringSelector combobox size hint (aseprite#4001, aseprite#4075)

Changed the required size to its minimum (6 instead of 8).
Minor refactor from 1c3224a

All these values are hard-coded in DitherItem (so we cannot use
theme-related values yet for this).

* Fix export sprite sheet to RGB is not exporting the palette (fix aseprite#3881)

* New tile flags meaning (x/y/diagonal flip) + serialize then correctly

* Changed the "90cw" flag to "diagonal flip" (the tile should be
  rendered with X/Y axis switched in this case)
* Each time we read/write an .aseprite file we have to convert
  the mask/shift from the file to the values expected in
  memory (tile_f_xflip/yflip/dflip)

* Add simple rendering of tiles w/flags (x/y/d flip)

* [lua] Add test about saving/loading/modifying tilemap w/flags

Something interesting is that Image:drawPixel() must ask for a rehash
to the tileset when the tile is modified, maybe we can find a better
way to handle this in the future.

* Fix eyedropper to pick colors/tiles correctly from flipped tiles

* Added a new app::Color type for tiles, to store the flags of the
  picked tile.
* Fixed color bar/status bar with a new draw_tile() to draw tiles
  with flip flags.

* Fix painting on flipped tiles in manual mode

* Fix eyedropper for tiles w/flags when picking colors from "Current Layer"

* Fix tile information (index/flags) in StandbyState

* Fix painting with tiles and flags

* Add support to flip/rotate tiles to ChangeBrush command (like aseprite#1222)

* Fix assert converting Color{index} to a tile from tilemap.lua test

We must be able to convert a app::Color::IndexType to a tile index.

* Remove unused variable in lambda function

* Show tile flags in the editor canvas when we use Ctrl key/move tool

Added build_tile_flags_string() utility to create the string used in
to show the tile flags (XYD) on the status bar, the editor canvas,
etc.

* Add Space+X and Space+Y alternatives to flip brush/tile flags

We already have Space+H and Space+V, but as the flags are XYD probably
Space+X/Y makes more sense.

* Fix bug w/auto tileset mode adjusting tiles when we replace a unique instance of a tile+flag with a new tile

The assert() in remove_unused_tiles_from_tileset() checking for the
tiles histograms was failing because we weren't adjusting the
histogram correctly when a tile w/a flag is replaced w/another without
flags.

* Add support to match flipped tiles automatically in Auto/Stack modes

By default Aseprite will not try to match flipped versions of the
tiles (as it requires more CPU), but when we create a tileset we can
specify which flips can be matched automatically (new
Tileset::matchFlags() property).

These flags are just for the Auto mode, if we manually insert a
flipped tile, that is always supported, even when the matchFlags() are
not specified.

* Fix eyedropper in Tiles mode to pick tiles that are flipped and have masked areas

Sprite::pickCels() wasn't taking care of the tile flags to pick
tilemap layers correctly with flipped tiles.

* Add a workflow to close spammy PRs

First attempt, not sure if this will be useful at all.

* Remap tiles with flags correctly

* Move the timeline button in the toolbar to the bottom

* Add "Advanced Options" checkbox in Tileset selector

To hide "Base Index" & "Allowed Flips" options by default.

* Fix possible crash adding reference layer (fix aseprite#3949)

* [osx] Fix mouse misalignment and show tabs area again when Screen Scaling=100% (fix aseprite#4142)

Originally reported here:
https://steamcommunity.com/app/431730/discussions/0/3954784199573459745/

* Add option to enable the Snap to Grid option for the brush preview (fix aseprite#4137)

* Update About dialog copyright year

* Fix crash making a tileset bigger and pressing Remap (fix aseprite#4144)

This happens only if the tilemap already has tile references outside
the valid range of the tileset (and even bigger than the new tileset
size).

* Fix typo in en.ini file: extra " char (fix aseprite#4148)

* [lua] Fix crash calling io.open() without argument (fix aseprite#4159)

* Use configured dynamics of active tool w/o opening dynamics popup (fix aseprite#4151)

* Add option to disable Snap to Grid by default when we move the selection (fix aseprite#4153)

---------

Co-authored-by: Michał Janiszewski <[email protected]>
Co-authored-by: Martín Capello <[email protected]>
Co-authored-by: Gaspar Capello <[email protected]>
Co-authored-by: Andrés Colón <[email protected]>
Co-authored-by: David Capello <[email protected]>
Co-authored-by: Ashray Shah <[email protected]>
Co-authored-by: Rowan Douglas <[email protected]>
Co-authored-by: Akylzhan <[email protected]>
Co-authored-by: Nicolás Pinochet <[email protected]>
Co-authored-by: Dariy Guzairov <[email protected]>
Co-authored-by: ChikenUni <[email protected]>
@janisozaur janisozaur deleted the patch-1 branch January 23, 2024 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants