Commit graph

13226 commits

Author SHA1 Message Date
Daiderd Jordan
ed25753501
nix doctor: reimplement profile warning without gcroot check
Calculating roots seems significantly slower on darwin compared to
linux.  Checking for /profile/ links could show some false positives but
should still catch most issues.
2018-09-26 23:13:17 +02:00
Vincent Ambo
37590ae0f6 feat(core): Add associated 'Error' type to FSM trait
Adds an associated 'Error' type that can be returned by actions when
an interpretation fails.
2018-09-26 23:05:50 +02:00
Will Dietz
d4f78a6b64 bump base nixpkgs used by default 18.03 -> 18.09 2018-09-26 15:37:13 -05:00
Vincent Ambo
406a90e8d6 feat(postgres): Implement initial (synchronous) actoin execution
Implements a simple model for executing actions which will run them in
sequence, synchronously, after advancing an FSM and committing the
initial transaction.

Note that multiple things are not yet taken into account:

* Error handling of actions (they can not currently fail)
* Retrying of actions
* Concurrency model

I started out by implementing the concurrency model similarly to the
green-threading method used in Hamingja (but using OS threads), but
slowly noticed that it may not be the best way to do that. It needs a
little bit of discussion.

Either way for most actions this method is fast enough to work for
implementing things on top of Finito's model.
2018-09-26 22:31:42 +02:00
Eelco Dolstra
9750430003
Ensure download thread liveness
* Don't wait forever for the client to remove data from the
  buffer. This does mean that the buffer can grow without bounds
  (e.g. when downloading is faster than writing to disk), but meh.

* Don't hold the state lock while calling the sink. The sink could
  take any amount of time to process the data (in particular when it's
  actually a coroutine), so we don't want to block the download
  thread.
2018-09-26 21:47:34 +02:00
Eelco Dolstra
98b2cc2e6e
Untabify 2018-09-26 21:39:06 +02:00
Eelco Dolstra
ed78582847
sinkToSource(): Start the coroutine lazily
In particular this causes copyStorePath() from HttpBinaryCacheStore to
only start a download if needed. E.g. if the destination LocalStore
goes to sleep waiting for the path lock and another process creates
the path, then LocalStore::addToStore() will never read from the
source so we don't have to do the download.
2018-09-26 21:19:34 +02:00
Vincent Ambo
3891ba84d5 test(postgres): Add test for insert_machine and advance
Adds a test for the two most important functions in Finito's
PostgreSQL backend.

These actually require a local Postgres database to be available when
running. Currently the connection details are hardcoded in the test.
2018-09-26 18:44:16 +02:00
Vincent Ambo
7e5592f0d1 fix(postgres): Minor fixes in Postgres queries and handling 2018-09-26 18:43:53 +02:00
Vincent Ambo
6254d05620 feat(door): Add serde instances for door FSM types 2018-09-26 18:43:24 +02:00
Abseil Team
e291c279e4 Export of internal Abseil changes.
--
87c9505f1d41b52486630ae4404b9060b89a6369 by Abseil Team <absl-team@google.com>:

Fix wording in a comment.

PiperOrigin-RevId: 214606367
GitOrigin-RevId: 87c9505f1d41b52486630ae4404b9060b89a6369
Change-Id: Icb95299b88e65840dfbc415b515412b24d578ce9
2018-09-26 12:23:01 -04:00
Vincent Ambo
6e35c083bf refactor(postgres): Minor changes to match actual table schema 2018-09-26 18:20:04 +02:00
Vincent Ambo
cbb58fa6c2 feat(postgres): Add initial table schema for Finito tables 2018-09-26 18:19:10 +02:00
Vincent Ambo
fe97c712cc docs: Add rustdoc header lines as expected by the format
These are rendered in the rustdoc crate overview sidebar.
2018-09-26 18:04:28 +02:00
Vincent Ambo
965574913e docs(core): Fix rustdoc syntax in several places 2018-09-26 18:02:55 +02:00
Vincent Ambo
401486d124 docs(door): Port over documentation from finito-hs 2018-09-26 18:00:41 +02:00
Griffin Smith
1b0b98ec7d feat: Create org-mode headlines from query
Merges in a function which has existed in my local setup for a while now
to run a query to Clubhouse and create all the results as org headlines
at a specified level
2018-09-26 11:41:33 -04:00
Vincent Ambo
40caa5ffa2 feat(postgres): Implement Postgres-backed 'advance' function
Transactionally updates a state machine with an incoming event. Note
that this does not yet interpret actions.
2018-09-26 17:28:45 +02:00
Vincent Ambo
b1e00ff026 feat(postgres): Bootstrap Postgres persistence implementation
Adds the initial finito-postgres crate with type definitions for the
tables and initial functions to interact with persisted FSMs.

This is far from feature complete at this commit.
2018-09-26 16:54:06 +02:00
Vincent Ambo
c03e14758f fix(core): Add missing 'FSM_NAME' associated constant
This one got lost while moving from the prototype code to the proper
library.
2018-09-26 16:54:06 +02:00
Vincent Ambo
60824a06f1 feat(door): Check in example door implementation
Checks in my classic, lockable door example implemented in Finito.

This does not yet contain the documentation of the door in the Haskell
version of Finito.
2018-09-26 16:54:03 +02:00
Vincent Ambo
da66599696 feat(core): Check in Finito core library
The implementation of this library is closely modeled after the core
abstraction in the Haskell library. This does not at all concern
itself with persistence, interpretation of effects and so on.
2018-09-26 16:54:00 +02:00
Eelco Dolstra
44e86304b6
Make NAR header check more robust
Changes

  std::bad_alloc

into

  bad archive: input doesn't look like a Nix archive
2018-09-26 12:03:58 +02:00
Vincent Ambo
6d11928efe docs: Add initial README 2018-09-26 11:34:08 +02:00
Vincent Ambo
bc873b9666 chore: Add Rust-specific .gitignore file 2018-09-26 11:33:52 +02:00
Vincent Ambo
f8ae63c2da chore: Initial commit 2018-09-26 11:29:48 +02:00
Will Fancher
b7091ce41e Add a test for signed content-addressed paths 2018-09-25 22:18:52 -04:00
Will Fancher
0ae8d4033d Fix overflow when verifying signatures of content addressable paths 2018-09-25 21:19:24 -04:00
Eelco Dolstra
7ccdcc7fed
Merge pull request #2448 from dtzWill/feature/nix-daemon-accept-empty-builders-untrusted
nix-daemon: allow setting builders to "" by any user (untrusted)
2018-09-25 14:09:00 +02:00
Will Dietz
8df367a92d nix-daemon: allow setting builders to "" by any user (untrusted)
(cherry picked from commit a94a2eb1cb1c81e90a7529be5fecac27899a3442)
2018-09-25 03:22:08 -05:00
Abseil Team
e01d95528e Export of internal Abseil changes.
--
eca34da4ccb7bb6a580f1364dff9ca053418fa3b by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 214305433

--
35393bdd21a87c4286f945fd34dda93afc4e0cd6 by Abseil Team <absl-team@google.com>:

Move some implementation details of string_view around to facilitate compiling on NVCC.

Abseil does not officially support NVCC as a reminder.

PiperOrigin-RevId: 214184876

--
61846cab9ab9476a4676ecade7173f68978cd038 by Jorg Brown <jorg@google.com>:

Move the initialization values for constants back to their declaration.

PiperOrigin-RevId: 214135927

--
7ac7df6c5f78f2faf419268c04618b936cb26065 by Abseil Team <absl-team@google.com>:

Performance improvements on format parser.

PiperOrigin-RevId: 214032366

--
90b4c0cf20e9feaa257a7ece40adaf7db40a60a7 by Xiaoyi Zhang <zhangxy@google.com>:

Add static_assert check to absl::visit to make sure all overloads of the visitor return the same type, as required by the C++ standard.

PiperOrigin-RevId: 213677001

--
787995342101b4c181291cde9ecea3048536e4bd by Abseil Team <absl-team@google.com>:

Update comment to indicate finite durations are less than InfiniteDuration.

PiperOrigin-RevId: 213660328

--
d78f0dce7cc31218807e96d93b9e8513b6c80b24 by Jon Cohen <cohenjon@google.com>:

s/invariant/contract in the exceptions safety testing framework.  This is a better term as these can be type invariants or function post conditions.  They also are very similar ground as to what is covered by c++20 Contracts (and could even be replaced by them.

PiperOrigin-RevId: 213631019

--
0b3ff1a640de9a7391a6c233568802cf86245b0e by Abseil Team <absl-team@google.com>:

Add noinline attribute for GetStackTrace/GetStackFrames/... so the skipped frames will not change because of inlining difference.

PiperOrigin-RevId: 213009637
GitOrigin-RevId: eca34da4ccb7bb6a580f1364dff9ca053418fa3b
Change-Id: Iff1022fd24e440fcbdf3c4ab2a915ca8954daa31
2018-09-24 16:07:47 -04:00
Vincent Ambo
a4084bf1e0 docs(README): Add note about log levels / priorities / severities
(kjære barn har mange navn :P)

Adds a small piece of documentation about the conversion between
journald priorities and Stackdriver severities to the README, as well
as information about how to easily emit messages at different
priorities from applications logging to journald.
2018-09-24 16:03:58 +02:00
Vincent Ambo
3b20abe0f8 docs(main): Expand information on priority->severity conversion
Adds a few additional notes about where to find more information and
how to log information correctly, as was discussed on issue #11.
2018-09-24 16:03:58 +02:00
Thomas ten Cate
a89be8d715 feat(main): Pass log levels along to Stackdriver
If a priority is present, it is passed as-is into the Stackdriver API.
This allows filtering by severity in the logs UI. Conveniently, the
levels are the same between journald and Stackdriver.

Fixes #11.
2018-09-24 16:03:58 +02:00
Eelco Dolstra
42e4ea2b6d
Merge pull request #2312 from dtzWill/fix/matched-names-should-still-print-version
search: include version for matches too!
2018-09-24 13:03:28 +02:00
Luke Clifton
fb72104b80 Search NIX_PROFILE for SSL CA 2018-09-20 07:33:35 +08:00
Vincent Ambo
b19b1590e5 chore(emacs): Bump EXWM & XELB to most recent development versions 2018-09-19 22:59:42 +02:00
Eelco Dolstra
a48c2e3411
Merge pull request #2434 from grahamc/graham-improve-upgrade
Upgrade docs: improve the upgrade command
2018-09-19 21:53:50 +02:00
Anders Riutta
1915862767
Upgrade docs: improve the upgrade command
and make it more copy-pastable.
2018-09-19 14:17:06 -04:00
Eelco Dolstra
43b7eebfab
Merge pull request #2433 from grahamc/doc-shebang-quotes
Document that nix-shell's shebang requires double quotes for expressions
2018-09-19 20:08:45 +02:00
Graham Christensen
be9e356e61
nix-shell: document double quotes being necessary for a simple Nix expression in the shebang 2018-09-19 13:01:27 -04:00
Graham Christensen
10a7f19937
nix-shell: explain the merging property close to the example 2018-09-19 12:48:08 -04:00
Luke Clifton
1241a58975 Look inside the user profile 2018-09-19 15:22:39 +08:00
Eelco Dolstra
2ca6ef0fec
Merge pull request #2428 from grahamc/docs-aliases
Document Aliases
2018-09-18 20:24:24 +02:00
Graham Christensen
0cd863197b
docs: document deprecated aliases 2018-09-18 12:23:32 -04:00
Griffin Smith
29c7632fd2 Misc haskell stuff, snippets, etc 2018-09-18 10:18:20 -04:00
Eelco Dolstra
52f6d541b9
nix-env: Fix segfault if -f argument is not a directory or a Nix expression
Fixes #2425.
2018-09-17 16:36:30 +02:00
Eelco Dolstra
901dfc7978
Fix build failure if parallel xz is not available 2018-09-17 16:36:11 +02:00
Vincent Ambo
8d918e48eb refactor(desktop): Don't launch EXWM via Emacs client
Launch EXWM directly in Emacs, instead of first launching an Emacs
server and connecting a client.

In cases where Emacs does not start correctly due to initialisation
errors the error message would never become visible without this change.
2018-09-16 16:57:33 +02:00
Vincent Ambo
754b487ee4 feat(adho): Add Dublin wifi networks 2018-09-16 16:51:20 +02:00