Using a 64bit integer on 32bit systems will come with a bit of a
performance overhead, but given that Nix doesn't use a lot of integers
compared to other types, I think the overhead is negligible also
considering that 32bit systems are in decline.
The biggest advantage however is that when we use a consistent integer
size across all platforms it's less likely that we miss things that we
break due to that. One example would be:
https://github.com/NixOS/nixpkgs/pull/44233
On Hydra it will evaluate, because the evaluator runs on a 64bit
machine, but when evaluating the same on a 32bit machine it will fail,
so using 64bit integers should make that consistent.
While the change of the type in value.hh is rather easy to do, we have a
few more options available for doing the conversion in the lexer:
* Via an #ifdef on the architecture and using strtol() or strtoll()
accordingly depending on which architecture we are. For the #ifdef
we would need another AX_COMPILE_CHECK_SIZEOF in configure.ac.
* Using istringstream, which would involve copying the value.
* As we're already using boost, lexical_cast might be a good idea.
Spoiler: I went for the latter, first of all because lexical_cast does
have an overload for const char* and second of all, because it doesn't
involve copying around the input string. Also, because istringstream
seems to come with a bigger overhead than boost::lexical_cast:
https://www.boost.org/doc/libs/release/doc/html/boost_lexical_cast/performance.html
The first method (still using strtol/strtoll) also wasn't something I
pursued further, because it is also locale-aware which I doubt is what
we want, given that the regex for int is [0-9]+.
Signed-off-by: aszlig <aszlig@nix.build>
Fixes: #2339
--
de82143f509d8fd6e70efc9eaed35582054a7443 by Abseil Team <absl-team@google.com>:
Mark optional::reset() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.
This prevents false positives in the clang-tidy check bugprone-use-after-move; it allows reset() to be called on a moved-from optional without any warnings, and the optional will thereafter be regarded as initialized again.
PiperOrigin-RevId: 210502364
--
e645e68c44df957271e109aca6d68af530e27d04 by Derek Mauro <dmauro@google.com>:
Mark //absl/synchronization:thread_pool as only visible to internal
Abseil targets since it is internal-only.
PiperOrigin-RevId: 210406260
--
09b53240efba9bf73190eaea91fe33b9eafc3529 by Abseil Team <absl-team@google.com>:
Add support for the [[clang::reinitializes]] attribute.
This will be used to prevent false positives in the clang-tidy check
bugprone-use-after-move.
PiperOrigin-RevId: 210377317
GitOrigin-RevId: de82143f509d8fd6e70efc9eaed35582054a7443
Change-Id: Ibac1ee694f7b5b9f5aff8670559e49505ff8ee11
Apparently the wifi card likes to act up occasionally (this is new?)
and can't see the 5Ghz network anymore.
This adds the 2.4Ghz network as a fallback in those cases.
The profile present in PATH is not necessarily the actual profile
location. User profiles are generally added as $HOME/.nix-profile
in which case the indirect profile link needs to be resolved first.
/home/user/.nix-profile -> /nix/var/nix/profiles/per-user/user/profile
/nix/var/nix/profiles/per-user/user/profile -> profile-15-link
/nix/var/nix/profiles/per-user/user/profile-14-link -> /nix/store/hyi4kkjh3bwi2z3wfljrkfymz9904h62-user-environment
/nix/var/nix/profiles/per-user/user/profile-15-link -> /nix/store/6njpl3qvihz46vj911pwx7hfcvwhifl9-user-environment
To upgrade nix here we want /nix/var/nix/profiles/per-user/user/profile-16-link
instead of /home/user/.nix-profile-1-link. The latter is not a gcroot
and would be garbage collected, resulting in a broken profile.
Fixes#2175
--
2dcf3ec79f961d2962cdad33ac4bfbcb14126dad by Abseil Team <absl-team@google.com>:
Consolidate implementations of CountLeadingZeros and add new ones for
CountTrailingZeros.
Internal APIs only.
PiperOrigin-RevId: 209961247
--
4f3ac87c6928dab26faff962bb18aade9383f184 by Jorg Brown <jorg@google.com>:
Fix absl::CUnescape not to write to const_cast<char*>(str->data()), which does the wrong thing if the string type is copy-on-write
PiperOrigin-RevId: 209957656
--
c5103067be19dc88a4c32e5306154e5e3bba4673 by Tom Manshreck <shreck@google.com>:
Update comments in time library header files.
PiperOrigin-RevId: 209829588
--
fe36f9b6150243d2ac88e2a892d84c565c18cd2f by Abseil Team <absl-team@google.com>:
Clarifying the sample use of absl::LoadTimeZone function in the documentation.
PiperOrigin-RevId: 209782218
GitOrigin-RevId: 2dcf3ec79f961d2962cdad33ac4bfbcb14126dad
Change-Id: I3e2f87a8c543599b81eada58409a9bddc0b51ab8
--
f4bb8afa9376b4120f56f3beff7b07260da4a5c2 by CJ Johnson <johnsoncj@google.com>:
Add user to Github list
PiperOrigin-RevId: 209630262
GitOrigin-RevId: f4bb8afa9376b4120f56f3beff7b07260da4a5c2
Change-Id: I3fedf35011d805ee4a20b92e073b43523b47d15b
--
b01400905d2ba23ec9f4541153532eefcfb0d5f5 by Mark Barolak <mbar@google.com>:
Tweak the comment for WebSafeBase64Unescape to make it match the style of the other comments in escaping.h.
PiperOrigin-RevId: 209596034
--
dd35c55ee538ed458bb32494d87996d6624676df by Abseil Team <absl-team@google.com>:
Migrate FixedArray from allocator pointers to references. Also updates the name to be more generic as nothing about the implementation was specific to FixedArray's StorageElement*
PiperOrigin-RevId: 209438135
GitOrigin-RevId: b01400905d2ba23ec9f4541153532eefcfb0d5f5
Change-Id: I27304e4609708ec24fb19dce1e33215d7e4b5ae9
* exwm.el (exwm--init-icccm-ewmh): Avoid naming the root window.
(exwm--wmsn-acquire): Use the symbol name in the window name.
* exwm-systemtray.el (exwm-systemtray--embedder-window): Rename
`exwm-systemtray--embedder' consistency.
(exwm-systemtray--init): Use symbol names in the window name.
The current usage technically works by putting multiple different
repos in to the same git directory. However, it is very slow as
Git tries very hard to find common commits between the two
repositories. If the two repositories are large (like Nixpkgs and
another long-running project,) it is maddeningly slow.
This change busts the cache for existing deployments, but users
will be promptly repaid in per-repository performance.
* exwm-layout.el (exwm-layout--refresh): Split in three functions
for clarity.
(exwm-layout--refresh-workspace, exwm-layout--refresh-other)
(exwm-layout--refresh-floating): New functions.
Updates the following dependencies to latest:
* Masterminds/semver
* Masterminds/sprig
* ghodss/yaml
* satori/go.uuid -> google/uuid
* huandu/xstrings
* imdario/mergo
* crypto
* alecthomas/kingpin.v2
* yaml.v2
As usual Go libraries are YOLO-versioned, so who knows what changed
here. I'll be going through `sprig` at least to add that to the
changelog.
This relates to #152.
Using `message' to log debugging information is cumbersome, as the output
appears constantly in the minibuffer, obscuring prompts and other information.
In the case of long messages, it might resize the minibuffer, which causes EXWM
to perform additional actions due to the log output.
This change reimplements EXWM debug logging using a separate
buffer (*EXWM-DEBUG*). Basic functionality, like scrolling when point is at the
end of the buffer is maintained.
* exwm-core.el (exwm--log): Use `exwm-debug--message' instead of
`message'. Prefix all messages with the name of the function.
Make FORMAT-STRING argument optional.
* exwm-debug.el: New file.
(exwm-debug-buffer): New variable holding the buffer where debug
messages are output to.
(exwm-debug--message): New function printing a message to
`exwm-debug-buffer'.
(exwm-debug--backtrace): New function printing a backtrace.