John Ericson
6a3a87a714
Improve error message for self reference with text hashing
...
The `ContentAddressWithReferences` method is made total, with error
handling now squarely the caller's job. This is better.
2023-05-09 14:44:08 -04:00
John Ericson
753fc1661d
Cleanups to content address types
2023-05-09 13:05:38 -04:00
John Ericson
7103c6da70
Remove references from fixed output derivation ab syntax
...
In other words, use a plain `ContentAddress` not
`ContentAddressWithReferences` for `DerivationOutput::CAFixed`.
Supporting fixed output derivations with (fixed) references would be a
cool feature, but it is out of scope at this moment.
2023-04-19 15:00:04 -04:00
John Ericson
aba8a8a83a
Add a few more content addressing methods
...
Good to round out the library interface.
2023-04-19 14:13:30 -04:00
John Ericson
668377f217
TextHashMethod
-> TextIngestionMethod
, gate with XP feature
...
I suppose we can use `dynamic-derivations` for the few things we neeed.
2023-04-17 19:02:45 -04:00
John Ericson
eeecfacb43
Merge branch 'path-info' into ca-drv-exotic
2023-04-01 16:40:32 -04:00
John Ericson
f7f44f7c96
Merge commit 'aa99005004bccc9be506a2a2f162f78bad4bcb41' into ca-drv-exotic
2023-04-01 15:15:32 -04:00
John Ericson
c51d554c93
Use "raw pattern" for content address types
...
We weren't because this ancient PR predated it!
This is actually a new version of the pattern which addresses some
issues identified in #7479 .
2023-03-30 17:12:49 -04:00
John Ericson
aa99005004
Merge remote-tracking branch 'upstream/master' into path-info
...
Also improve content-address.hh API docs.
2023-03-30 16:28:53 -04:00
John Ericson
5abd643c6d
Merge branch 'path-info' into ca-drv-exotic
2023-02-28 12:46:00 -05:00
John Ericson
d381248ec0
No inheritance for TextInfo
and FixedOutputInfo
2023-02-28 12:14:11 -05:00
John Ericson
85bb865d20
Revert "Remove some designated initializers"
...
This reverts commit ee9eb83a84
.
2023-02-28 11:57:20 -05:00
John Ericson
ee9eb83a84
Remove some designated initializers
...
With the switch to C++20, the rules became more strict, and we can no
longer initialize base classes. Make them comments instead.
(BTW
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2287r1.html
this offers some new syntax for this use-case. Hopefully this will be
adopted and we can eventually use it.)
2023-02-01 11:25:56 -05:00
John Ericson
974a983351
Shrink diff in two places
...
Stuff crept in there.
2023-01-30 09:59:55 -05:00
John Ericson
7c82213813
Merge branch 'path-info' into ca-drv-exotic
2023-01-14 17:09:58 -05:00
John Ericson
b3d91239ae
Make ValidPathInfo
have plain StorePathSet
references like before
...
This change can wait for another PR.
2023-01-14 16:42:03 -05:00
John Ericson
81727f85cb
Merge branch 'path-info' into ca-drv-exotic
2023-01-06 15:45:34 -05:00
John Ericson
848b0832b5
Merge branch 'path-info' into ca-drv-exotic
2023-01-06 12:39:14 -05:00
John Ericson
6a168254ce
Use named field initialization for references
2023-01-06 12:24:20 -05:00
John Ericson
13c669105c
Slight cleanups
2022-04-19 22:25:21 +00:00
John Ericson
938650700f
Merge branch 'path-info' into ca-drv-exotic
2022-03-10 16:20:01 +00:00
John Ericson
8ba089597f
Merge remote-tracking branch 'upstream/master' into path-info
2022-03-10 15:48:14 +00:00
Alex Shabalin
b26cb0c9ac
Fix use after free in content-address.cc
...
Inspired by https://github.com/NixOS/nix/pull/5599
2021-11-23 16:15:34 +01:00
John Ericson
edf67e1508
Merge branch 'path-info' into ca-drv-exotic
2021-10-01 17:25:22 +00:00
John Ericson
13b6b64589
Merge remote-tracking branch 'upstream/master' into path-info
2021-10-01 17:12:54 +00:00
John Ericson
242f9bf3dc
std::visit
by reference
...
I had started the trend of doing `std::visit` by value (because a type
error once mislead me into thinking that was the only form that
existed). While the optomizer in principle should be able to deal with
extra coppying or extra indirection once the lambdas inlined, sticking
with by reference is the conventional default. I hope this might even
improve performance.
2021-09-30 21:35:09 +00:00
John Ericson
00c607b563
Work around clang destructing + capturing bug again
2020-10-13 04:11:25 +00:00
John Ericson
a4e5de1b9d
Derivations can output "text-hashed" data
...
In particular, this means that derivations can output derivations. But
that ramification isn't (yet!) useful as we would want, since there is
no way to have a dependent derivation that is itself a dependent
derivation.
2020-10-13 02:15:48 +00:00
John Ericson
f8d562c0a7
Use PathReferences more widely
2020-10-07 15:00:10 +00:00
Eelco Dolstra
35a0ac1838
Style fixes
2020-09-22 11:40:19 +02:00
Robert Hensing
fbf509c113
parseContentAddressMethodPrefix: use string_view
...
Co-authored-by: John Ericson <git@JohnEricson.me>
2020-09-21 07:55:47 +02:00
Robert Hensing
dfa547c6a8
Add ContentAddressMethod and parse/render it
2020-09-17 20:21:04 +02:00
Eelco Dolstra
e48f944e9d
Merge branch 'misc-ca' of https://github.com/obsidiansystems/nix
2020-08-05 16:50:05 +02:00
Eelco Dolstra
25f7912156
Style fix
2020-08-05 16:47:48 +02:00
John Ericson
839f0fe095
Merge remote-tracking branch 'upstream/master' into misc-ca
2020-08-05 14:40:01 +00:00
John Ericson
e6115ca004
Merge remote-tracking branch 'upstream/master' into ca-derivation-data-types
2020-07-27 17:41:43 +00:00
John Ericson
bf61871271
parser.hh -> split.hh
2020-07-20 17:42:34 +00:00
John Ericson
c466cb2091
Merge branch 'hash-always-has-type' into better-ca-parse-errors
2020-07-13 03:02:09 +00:00
John Ericson
4415765385
Merge remote-tracking branch 'upstream/master' into hash-always-has-type
2020-07-13 03:01:44 +00:00
John Ericson
ffc18583b1
Move C++17 "pattern matching" boilerplat to utils.hh
2020-07-12 22:15:14 +00:00
Eelco Dolstra
5dff49f661
Factor out commonality between nix-prefetch-url and nix-store --add-fixed
2020-07-10 13:21:37 +02:00
John Ericson
13796be78d
Have splitPrefix
and splitPrefixTo
parser helpers
2020-07-02 23:18:22 +00:00
Carlo Nucera
1fc835aa22
Tighten parsing for drv files and pathinfo
2020-07-02 11:57:21 -04:00
Carlo Nucera
263ccdd489
Rename two hash constructors to proper functions
2020-07-01 18:34:18 -04:00
Carlo Nucera
77b51f4598
Factor the prefix splitting in content-address
2020-06-30 11:57:46 -04:00
John Ericson
a83566e5bc
Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into better-ca-parse-errors
2020-06-29 18:40:34 +00:00
John Ericson
98e5d1af03
Merge remote-tracking branch 'upstream/master' into hash-always-has-type
2020-06-23 17:03:37 +00:00
John Ericson
55d4bd6e0e
Improve content address parsing
...
- Ensure hash is in form <algo>-<prefix> and not SRI.
- Better errors if something goes wrong
- string_view for no coppying
2020-06-22 18:08:27 +00:00
John Ericson
911fc88bcb
More designated initializers
2020-06-19 17:42:56 +00:00
John Ericson
2f0e395c99
Merge remote-tracking branch 'me/no-stringly-typed-derivation-output' into validPathInfo-ca-proper-datatype
2020-06-19 15:26:59 +00:00