mirror of
https://github.com/NixOS/nix
synced 2025-06-27 12:41:15 +02:00
Merge remote-tracking branch 'origin/master' into handle-failed-cached-values
This commit is contained in:
commit
2ec1eba7ca
669 changed files with 3341 additions and 3231 deletions
|
@ -1,5 +1,5 @@
|
|||
#include "attr-path.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "nix/attr-path.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
|
||||
|
||||
namespace nix {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "attr-set.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "nix/attr-set.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#include "users.hh"
|
||||
#include "eval-cache.hh"
|
||||
#include "sqlite.hh"
|
||||
#include "eval.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "store-api.hh"
|
||||
#include "nix/users.hh"
|
||||
#include "nix/eval-cache.hh"
|
||||
#include "nix/sqlite.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/store-api.hh"
|
||||
// Need specialization involving `SymbolStr` just in this one module.
|
||||
#include "strings-inline.hh"
|
||||
#include "nix/strings-inline.hh"
|
||||
|
||||
namespace nix::eval_cache {
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "eval-error.hh"
|
||||
#include "eval.hh"
|
||||
#include "value.hh"
|
||||
#include "nix/eval-error.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/value.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#include "error.hh"
|
||||
#include "environment-variables.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "config-global.hh"
|
||||
#include "serialise.hh"
|
||||
#include "eval-gc.hh"
|
||||
#include "nix/error.hh"
|
||||
#include "nix/environment-variables.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/config-global.hh"
|
||||
#include "nix/serialise.hh"
|
||||
#include "nix/eval-gc.hh"
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#include "expr-config-private.hh"
|
||||
|
||||
#if NIX_USE_BOEHMGC
|
||||
|
||||
# include <pthread.h>
|
||||
# if __FreeBSD__
|
||||
|
@ -24,7 +26,7 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
/* Called when the Boehm GC runs out of memory. */
|
||||
static void * oomHandler(size_t requested)
|
||||
{
|
||||
|
@ -94,7 +96,7 @@ void initGC()
|
|||
if (gcInitialised)
|
||||
return;
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
initGCReal();
|
||||
|
||||
gcCyclesAfterInit = GC_get_gc_no();
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "users.hh"
|
||||
#include "globals.hh"
|
||||
#include "profiles.hh"
|
||||
#include "eval.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "nix/users.hh"
|
||||
#include "nix/globals.hh"
|
||||
#include "nix/profiles.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
#include "eval.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "primops.hh"
|
||||
#include "print-options.hh"
|
||||
#include "exit.hh"
|
||||
#include "types.hh"
|
||||
#include "util.hh"
|
||||
#include "store-api.hh"
|
||||
#include "derivations.hh"
|
||||
#include "downstream-placeholder.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "filetransfer.hh"
|
||||
#include "function-trace.hh"
|
||||
#include "profiles.hh"
|
||||
#include "print.hh"
|
||||
#include "filtering-source-accessor.hh"
|
||||
#include "memory-source-accessor.hh"
|
||||
#include "gc-small-vector.hh"
|
||||
#include "url.hh"
|
||||
#include "fetch-to-store.hh"
|
||||
#include "tarball.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/print-options.hh"
|
||||
#include "nix/exit.hh"
|
||||
#include "nix/types.hh"
|
||||
#include "nix/util.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/derivations.hh"
|
||||
#include "nix/downstream-placeholder.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/filetransfer.hh"
|
||||
#include "nix/function-trace.hh"
|
||||
#include "nix/profiles.hh"
|
||||
#include "nix/print.hh"
|
||||
#include "nix/filtering-source-accessor.hh"
|
||||
#include "nix/memory-source-accessor.hh"
|
||||
#include "nix/gc-small-vector.hh"
|
||||
#include "nix/url.hh"
|
||||
#include "nix/fetch-to-store.hh"
|
||||
#include "nix/tarball.hh"
|
||||
|
||||
#include "parser-tab.hh"
|
||||
|
||||
#include <algorithm>
|
||||
|
@ -38,7 +39,7 @@
|
|||
# include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
#include "strings-inline.hh"
|
||||
#include "nix/strings-inline.hh"
|
||||
|
||||
using json = nlohmann::json;
|
||||
|
||||
|
@ -294,7 +295,7 @@ EvalState::EvalState(
|
|||
, debugStop(false)
|
||||
, trylevel(0)
|
||||
, regexCache(makeRegexCache())
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
, valueAllocCache(std::allocate_shared<void *>(traceable_allocator<void *>(), nullptr))
|
||||
, env1AllocCache(std::allocate_shared<void *>(traceable_allocator<void *>(), nullptr))
|
||||
, baseEnvP(std::allocate_shared<Env *>(traceable_allocator<Env *>(), &allocEnv(BASE_ENV_SIZE)))
|
||||
|
@ -2811,7 +2812,7 @@ bool EvalState::eqValues(Value & v1, Value & v2, const PosIdx pos, std::string_v
|
|||
}
|
||||
|
||||
bool EvalState::fullGC() {
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
GC_gcollect();
|
||||
// Check that it ran. We might replace this with a version that uses more
|
||||
// of the boehm API to get this reliably, at a maintenance cost.
|
||||
|
@ -2830,7 +2831,7 @@ void EvalState::maybePrintStats()
|
|||
|
||||
if (showStats) {
|
||||
// Make the final heap size more deterministic.
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
if (!fullGC()) {
|
||||
warn("failed to perform a full GC before reporting stats");
|
||||
}
|
||||
|
@ -2852,7 +2853,7 @@ void EvalState::printStatistics()
|
|||
uint64_t bValues = nrValues * sizeof(Value);
|
||||
uint64_t bAttrsets = nrAttrsets * sizeof(Bindings) + nrAttrsInAttrsets * sizeof(Attr);
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
GC_word heapSize, totalBytes;
|
||||
GC_get_heap_usage_safe(&heapSize, 0, 0, 0, &totalBytes);
|
||||
double gcFullOnlyTime = ({
|
||||
|
@ -2874,7 +2875,7 @@ void EvalState::printStatistics()
|
|||
#ifndef _WIN32 // TODO implement
|
||||
{"cpu", cpuTime},
|
||||
#endif
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
{GC_is_incremental_mode() ? "gcNonIncremental" : "gc", gcFullOnlyTime},
|
||||
#ifndef _WIN32 // TODO implement
|
||||
{GC_is_incremental_mode() ? "gcNonIncrementalFraction" : "gcFraction", gcFullOnlyTime / cpuTime},
|
||||
|
@ -2918,7 +2919,7 @@ void EvalState::printStatistics()
|
|||
topObj["nrLookups"] = nrLookups;
|
||||
topObj["nrPrimOpCalls"] = nrPrimOpCalls;
|
||||
topObj["nrFunctionCalls"] = nrFunctionCalls;
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
topObj["gc"] = {
|
||||
{"heapSize", heapSize},
|
||||
{"totalBytes", totalBytes},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "function-trace.hh"
|
||||
#include "logging.hh"
|
||||
#include "nix/function-trace.hh"
|
||||
#include "nix/logging.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "get-drvs.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "derivations.hh"
|
||||
#include "store-api.hh"
|
||||
#include "path-with-outputs.hh"
|
||||
#include "nix/get-drvs.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/derivations.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/path-with-outputs.hh"
|
||||
|
||||
#include <cstring>
|
||||
#include <regex>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "eval.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nixexpr.hh"
|
||||
#include "symbol-table.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/symbol-table.hh"
|
||||
|
||||
#include <algorithm>
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "sync.hh"
|
||||
#include "hash.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/sync.hh"
|
||||
#include "nix/hash.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <functional>
|
||||
#include <variant>
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "error.hh"
|
||||
#include "pos-idx.hh"
|
||||
#include "nix/error.hh"
|
||||
#include "nix/pos-idx.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -3,7 +3,10 @@
|
|||
|
||||
#include <cstddef>
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
// For `NIX_USE_BOEHMGC`, and if that's set, `GC_THREADS`
|
||||
#include "nix/expr-config.hh"
|
||||
|
||||
#if NIX_USE_BOEHMGC
|
||||
|
||||
# define GC_INCLUDE_NEW
|
||||
|
||||
|
@ -43,7 +46,7 @@ void initGC();
|
|||
*/
|
||||
void assertGCInitialized();
|
||||
|
||||
#ifdef HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
/**
|
||||
* The number of GC cycles since initGC().
|
||||
*/
|
|
@ -1,10 +1,13 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "print.hh"
|
||||
#include "eval.hh"
|
||||
#include "eval-error.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "nix/print.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-error.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
|
||||
// For `NIX_USE_BOEHMGC`, and if that's set, `GC_THREADS`
|
||||
#include "nix/expr-config.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
@ -15,7 +18,7 @@ namespace nix {
|
|||
inline void * allocBytes(size_t n)
|
||||
{
|
||||
void * p;
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
p = GC_MALLOC(n);
|
||||
#else
|
||||
p = calloc(n, 1);
|
||||
|
@ -28,7 +31,7 @@ inline void * allocBytes(size_t n)
|
|||
[[gnu::always_inline]]
|
||||
Value * EvalState::allocValue()
|
||||
{
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
/* We use the boehm batch allocator to speed up allocations of Values (of which there are many).
|
||||
GC_malloc_many returns a linked list of objects of the given size, where the first word
|
||||
of each object is also the pointer to the next object in the list. This also means that we
|
||||
|
@ -60,7 +63,7 @@ Env & EvalState::allocEnv(size_t size)
|
|||
|
||||
Env * env;
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
if (size == 1) {
|
||||
/* see allocValue for explanations. */
|
||||
if (!*env1AllocCache) {
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "config.hh"
|
||||
#include "source-path.hh"
|
||||
#include "nix/config.hh"
|
||||
#include "nix/source-path.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -1,20 +1,23 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "attr-set.hh"
|
||||
#include "eval-error.hh"
|
||||
#include "types.hh"
|
||||
#include "value.hh"
|
||||
#include "nixexpr.hh"
|
||||
#include "symbol-table.hh"
|
||||
#include "config.hh"
|
||||
#include "experimental-features.hh"
|
||||
#include "position.hh"
|
||||
#include "pos-table.hh"
|
||||
#include "source-accessor.hh"
|
||||
#include "search-path.hh"
|
||||
#include "repl-exit-status.hh"
|
||||
#include "ref.hh"
|
||||
#include "nix/attr-set.hh"
|
||||
#include "nix/eval-error.hh"
|
||||
#include "nix/types.hh"
|
||||
#include "nix/value.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/symbol-table.hh"
|
||||
#include "nix/config.hh"
|
||||
#include "nix/experimental-features.hh"
|
||||
#include "nix/position.hh"
|
||||
#include "nix/pos-table.hh"
|
||||
#include "nix/source-accessor.hh"
|
||||
#include "nix/search-path.hh"
|
||||
#include "nix/repl-exit-status.hh"
|
||||
#include "nix/ref.hh"
|
||||
|
||||
// For `NIX_USE_BOEHMGC`, and if that's set, `GC_THREADS`
|
||||
#include "nix/expr-config.hh"
|
||||
|
||||
#include <map>
|
||||
#include <optional>
|
||||
|
@ -369,7 +372,7 @@ private:
|
|||
*/
|
||||
std::shared_ptr<RegexCache> regexCache;
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
/**
|
||||
* Allocation cache for GC'd Value objects.
|
||||
*/
|
||||
|
@ -596,7 +599,7 @@ public:
|
|||
*/
|
||||
SingleDerivedPath coerceToSingleDerivedPath(const PosIdx pos, Value & v, std::string_view errorCtx);
|
||||
|
||||
#if HAVE_BOEHMGC
|
||||
#if NIX_USE_BOEHMGC
|
||||
/** A GC root for the baseEnv reference. */
|
||||
std::shared_ptr<Env *> baseEnvP;
|
||||
#endif
|
||||
|
@ -944,4 +947,4 @@ bool isAllowedURI(std::string_view uri, const Strings & allowedPaths);
|
|||
|
||||
}
|
||||
|
||||
#include "eval-inline.hh"
|
||||
#include "nix/eval-inline.hh"
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "eval.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <chrono>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <boost/container/small_vector.hpp>
|
||||
|
||||
#include "value.hh"
|
||||
#include "nix/value.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "eval.hh"
|
||||
#include "path.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/path.hh"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "error.hh"
|
||||
#include "nix/error.hh"
|
||||
|
||||
#include <string>
|
||||
|
37
src/libexpr/include/nix/meson.build
Normal file
37
src/libexpr/include/nix/meson.build
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Public headers directory
|
||||
|
||||
include_dirs = [include_directories('..')]
|
||||
|
||||
config_pub_h = configure_file(
|
||||
configuration : configdata_pub,
|
||||
output : 'expr-config.hh',
|
||||
)
|
||||
|
||||
headers = [config_pub_h] + files(
|
||||
'attr-path.hh',
|
||||
'attr-set.hh',
|
||||
'eval-cache.hh',
|
||||
'eval-error.hh',
|
||||
'eval-gc.hh',
|
||||
'eval-inline.hh',
|
||||
'eval-settings.hh',
|
||||
'eval.hh',
|
||||
'function-trace.hh',
|
||||
'gc-small-vector.hh',
|
||||
'get-drvs.hh',
|
||||
'json-to-value.hh',
|
||||
# internal: 'lexer-helpers.hh',
|
||||
'nixexpr.hh',
|
||||
'parser-state.hh',
|
||||
'primops.hh',
|
||||
'print-ambiguous.hh',
|
||||
'print-options.hh',
|
||||
'print.hh',
|
||||
'repl-exit-status.hh',
|
||||
'search-path.hh',
|
||||
'symbol-table.hh',
|
||||
'value-to-json.hh',
|
||||
'value-to-xml.hh',
|
||||
'value.hh',
|
||||
'value/context.hh',
|
||||
)
|
|
@ -4,10 +4,10 @@
|
|||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include "value.hh"
|
||||
#include "symbol-table.hh"
|
||||
#include "eval-error.hh"
|
||||
#include "pos-idx.hh"
|
||||
#include "nix/value.hh"
|
||||
#include "nix/symbol-table.hh"
|
||||
#include "nix/eval-error.hh"
|
||||
#include "nix/pos-idx.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <limits>
|
||||
|
||||
#include "eval.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "eval.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <tuple>
|
||||
#include <vector>
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "value.hh"
|
||||
#include "nix/value.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -9,8 +9,8 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
#include "fmt.hh"
|
||||
#include "print-options.hh"
|
||||
#include "nix/fmt.hh"
|
||||
#include "nix/print-options.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include <optional>
|
||||
|
||||
#include "types.hh"
|
||||
#include "comparator.hh"
|
||||
#include "nix/types.hh"
|
||||
#include "nix/comparator.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
#include <map>
|
||||
#include <unordered_map>
|
||||
|
||||
#include "types.hh"
|
||||
#include "chunked-vector.hh"
|
||||
#include "error.hh"
|
||||
#include "nix/types.hh"
|
||||
#include "nix/chunked-vector.hh"
|
||||
#include "nix/error.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nixexpr.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
|
@ -1,8 +1,8 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nixexpr.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
|
@ -4,12 +4,12 @@
|
|||
#include <cassert>
|
||||
#include <span>
|
||||
|
||||
#include "eval-gc.hh"
|
||||
#include "symbol-table.hh"
|
||||
#include "value/context.hh"
|
||||
#include "source-path.hh"
|
||||
#include "print-options.hh"
|
||||
#include "checked-arithmetic.hh"
|
||||
#include "nix/eval-gc.hh"
|
||||
#include "nix/symbol-table.hh"
|
||||
#include "nix/value/context.hh"
|
||||
#include "nix/source-path.hh"
|
||||
#include "nix/print-options.hh"
|
||||
#include "nix/checked-arithmetic.hh"
|
||||
|
||||
#include <nlohmann/json_fwd.hpp>
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "comparator.hh"
|
||||
#include "derived-path.hh"
|
||||
#include "variant-wrapper.hh"
|
||||
#include "nix/comparator.hh"
|
||||
#include "nix/derived-path.hh"
|
||||
#include "nix/variant-wrapper.hh"
|
||||
|
||||
#include <nlohmann/json_fwd.hpp>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#include "json-to-value.hh"
|
||||
#include "value.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/json-to-value.hh"
|
||||
#include "nix/value.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
#include <limits>
|
||||
#include <variant>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#include "lexer-tab.hh"
|
||||
#include "lexer-helpers.hh"
|
||||
#include "parser-tab.hh"
|
||||
|
||||
#include "nix/lexer-helpers.hh"
|
||||
|
||||
void nix::lexer::internal::initLoc(YYLTYPE * loc)
|
||||
{
|
||||
loc->beginOffset = loc->endOffset = 0;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
%top {
|
||||
#include "parser-tab.hh" // YYSTYPE
|
||||
#include "parser-state.hh"
|
||||
#include "nix/parser-state.hh"
|
||||
}
|
||||
|
||||
%{
|
||||
|
@ -24,9 +24,9 @@
|
|||
#pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
|
||||
#endif
|
||||
|
||||
#include "nixexpr.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "parser-tab.hh"
|
||||
#include "lexer-helpers.hh"
|
||||
#include "nix/lexer-helpers.hh"
|
||||
|
||||
namespace nix {
|
||||
struct LexerState;
|
||||
|
|
|
@ -14,7 +14,8 @@ cxx = meson.get_compiler('cpp')
|
|||
|
||||
subdir('nix-meson-build-support/deps-lists')
|
||||
|
||||
configdata = configuration_data()
|
||||
configdata_pub = configuration_data()
|
||||
configdata_priv = configuration_data()
|
||||
|
||||
deps_private_maybe_subproject = [
|
||||
]
|
||||
|
@ -26,6 +27,16 @@ deps_public_maybe_subproject = [
|
|||
subdir('nix-meson-build-support/subprojects')
|
||||
subdir('nix-meson-build-support/big-objs')
|
||||
|
||||
# Check for each of these functions, and create a define like `#define HAVE_LCHOWN 1`.
|
||||
check_funcs = [
|
||||
'sysconf',
|
||||
]
|
||||
foreach funcspec : check_funcs
|
||||
define_name = 'HAVE_' + funcspec.underscorify().to_upper()
|
||||
define_value = cxx.has_function(funcspec).to_int()
|
||||
configdata_priv.set(define_name, define_value)
|
||||
endforeach
|
||||
|
||||
boost = dependency(
|
||||
'boost',
|
||||
modules : ['container', 'context'],
|
||||
|
@ -47,11 +58,13 @@ if bdw_gc.found()
|
|||
]
|
||||
define_name = 'HAVE_' + funcspec.underscorify().to_upper()
|
||||
define_value = cxx.has_function(funcspec).to_int()
|
||||
configdata.set(define_name, define_value)
|
||||
configdata_priv.set(define_name, define_value)
|
||||
endforeach
|
||||
configdata.set('GC_THREADS', 1)
|
||||
# Affects ABI, because it changes what bdw_gc itself does!
|
||||
configdata_pub.set('GC_THREADS', 1)
|
||||
endif
|
||||
configdata.set('HAVE_BOEHMGC', bdw_gc.found().to_int())
|
||||
# Used in public header. Affects ABI!
|
||||
configdata_pub.set('NIX_USE_BOEHMGC', bdw_gc.found().to_int())
|
||||
|
||||
toml11 = dependency(
|
||||
'toml11',
|
||||
|
@ -61,19 +74,9 @@ toml11 = dependency(
|
|||
)
|
||||
deps_other += toml11
|
||||
|
||||
config_h = configure_file(
|
||||
configuration : configdata,
|
||||
output : 'config-expr.hh',
|
||||
)
|
||||
|
||||
add_project_arguments(
|
||||
# TODO(Qyriad): Yes this is how the autoconf+Make system did it.
|
||||
# It would be nice for our headers to be idempotent instead.
|
||||
'-include', 'config-util.hh',
|
||||
'-include', 'config-store.hh',
|
||||
# '-include', 'config-fetchers.h',
|
||||
'-include', 'config-expr.hh',
|
||||
language : 'cpp',
|
||||
config_priv_h = configure_file(
|
||||
configuration : configdata_priv,
|
||||
output : 'expr-config-private.hh',
|
||||
)
|
||||
|
||||
subdir('nix-meson-build-support/common')
|
||||
|
@ -153,36 +156,7 @@ sources = files(
|
|||
'value/context.cc',
|
||||
)
|
||||
|
||||
include_dirs = [include_directories('.')]
|
||||
|
||||
headers = [config_h] + files(
|
||||
'attr-path.hh',
|
||||
'attr-set.hh',
|
||||
'eval-cache.hh',
|
||||
'eval-error.hh',
|
||||
'eval-gc.hh',
|
||||
'eval-inline.hh',
|
||||
'eval-settings.hh',
|
||||
'eval.hh',
|
||||
'function-trace.hh',
|
||||
'gc-small-vector.hh',
|
||||
'get-drvs.hh',
|
||||
'json-to-value.hh',
|
||||
# internal: 'lexer-helpers.hh',
|
||||
'nixexpr.hh',
|
||||
'parser-state.hh',
|
||||
'primops.hh',
|
||||
'print-ambiguous.hh',
|
||||
'print-options.hh',
|
||||
'print.hh',
|
||||
'repl-exit-status.hh',
|
||||
'search-path.hh',
|
||||
'symbol-table.hh',
|
||||
'value-to-json.hh',
|
||||
'value-to-xml.hh',
|
||||
'value.hh',
|
||||
'value/context.hh',
|
||||
)
|
||||
subdir('include/nix')
|
||||
|
||||
subdir('primops')
|
||||
|
||||
|
@ -192,6 +166,7 @@ subdir('nix-meson-build-support/windows-version')
|
|||
this_library = library(
|
||||
'nixexpr',
|
||||
sources,
|
||||
config_priv_h,
|
||||
parser_tab,
|
||||
lexer_tab,
|
||||
generated_headers,
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#include "nixexpr.hh"
|
||||
#include "eval.hh"
|
||||
#include "symbol-table.hh"
|
||||
#include "util.hh"
|
||||
#include "print.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/symbol-table.hh"
|
||||
#include "nix/util.hh"
|
||||
#include "nix/print.hh"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <sstream>
|
||||
|
||||
#include "strings-inline.hh"
|
||||
#include "nix/strings-inline.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ mkMesonLibrary (finalAttrs: {
|
|||
./meson.build
|
||||
./meson.options
|
||||
./primops/meson.build
|
||||
./include/nix/meson.build
|
||||
(fileset.fileFilter (file: file.hasExt "cc") ./.)
|
||||
(fileset.fileFilter (file: file.hasExt "hh") ./.)
|
||||
./lexer.l
|
||||
|
|
|
@ -17,14 +17,14 @@
|
|||
|
||||
#include <variant>
|
||||
|
||||
#include "finally.hh"
|
||||
#include "util.hh"
|
||||
#include "users.hh"
|
||||
#include "nix/finally.hh"
|
||||
#include "nix/util.hh"
|
||||
#include "nix/users.hh"
|
||||
|
||||
#include "nixexpr.hh"
|
||||
#include "eval.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "parser-state.hh"
|
||||
#include "nix/nixexpr.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/parser-state.hh"
|
||||
|
||||
// Bison seems to have difficulty growing the parser stack when using C++ with
|
||||
// a custom location type. This undocumented macro tells Bison that our
|
||||
|
@ -519,7 +519,7 @@ formal
|
|||
|
||||
%%
|
||||
|
||||
#include "eval.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
|
||||
namespace nix {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "store-api.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
#include "derivations.hh"
|
||||
#include "downstream-placeholder.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "eval.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "gc-small-vector.hh"
|
||||
#include "json-to-value.hh"
|
||||
#include "names.hh"
|
||||
#include "path-references.hh"
|
||||
#include "store-api.hh"
|
||||
#include "util.hh"
|
||||
#include "processes.hh"
|
||||
#include "value-to-json.hh"
|
||||
#include "value-to-xml.hh"
|
||||
#include "primops.hh"
|
||||
#include "fetch-to-store.hh"
|
||||
#include "nix/derivations.hh"
|
||||
#include "nix/downstream-placeholder.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/eval.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/gc-small-vector.hh"
|
||||
#include "nix/json-to-value.hh"
|
||||
#include "nix/names.hh"
|
||||
#include "nix/path-references.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/util.hh"
|
||||
#include "nix/processes.hh"
|
||||
#include "nix/value-to-json.hh"
|
||||
#include "nix/value-to-xml.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/fetch-to-store.hh"
|
||||
|
||||
#include <boost/container/small_vector.hpp>
|
||||
#include <nlohmann/json.hpp>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "primops.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "derivations.hh"
|
||||
#include "store-api.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/derivations.hh"
|
||||
#include "nix/store-api.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#include "primops.hh"
|
||||
#include "store-api.hh"
|
||||
#include "realisation.hh"
|
||||
#include "make-content-addressed.hh"
|
||||
#include "url.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/realisation.hh"
|
||||
#include "nix/make-content-addressed.hh"
|
||||
#include "nix/url.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#include "primops.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "store-api.hh"
|
||||
#include "fetchers.hh"
|
||||
#include "url.hh"
|
||||
#include "url-parts.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/fetchers.hh"
|
||||
#include "nix/url.hh"
|
||||
#include "nix/url-parts.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
#include "attrs.hh"
|
||||
#include "primops.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "eval-settings.hh"
|
||||
#include "store-api.hh"
|
||||
#include "fetchers.hh"
|
||||
#include "filetransfer.hh"
|
||||
#include "registry.hh"
|
||||
#include "tarball.hh"
|
||||
#include "url.hh"
|
||||
#include "value-to-json.hh"
|
||||
#include "fetch-to-store.hh"
|
||||
#include "nix/attrs.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/eval-settings.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/fetchers.hh"
|
||||
#include "nix/filetransfer.hh"
|
||||
#include "nix/registry.hh"
|
||||
#include "nix/tarball.hh"
|
||||
#include "nix/url.hh"
|
||||
#include "nix/value-to-json.hh"
|
||||
#include "nix/fetch-to-store.hh"
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "primops.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "nix/primops.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "print-ambiguous.hh"
|
||||
#include "print.hh"
|
||||
#include "signals.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/print-ambiguous.hh"
|
||||
#include "nix/print.hh"
|
||||
#include "nix/signals.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#include <unordered_set>
|
||||
#include <sstream>
|
||||
|
||||
#include "print.hh"
|
||||
#include "ansicolor.hh"
|
||||
#include "signals.hh"
|
||||
#include "store-api.hh"
|
||||
#include "terminal.hh"
|
||||
#include "english.hh"
|
||||
#include "eval.hh"
|
||||
#include "nix/print.hh"
|
||||
#include "nix/ansicolor.hh"
|
||||
#include "nix/signals.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/terminal.hh"
|
||||
#include "nix/english.hh"
|
||||
#include "nix/eval.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "search-path.hh"
|
||||
#include "nix/search-path.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "value-to-json.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "store-api.hh"
|
||||
#include "signals.hh"
|
||||
#include "nix/value-to-json.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/store-api.hh"
|
||||
#include "nix/signals.hh"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <iomanip>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "value-to-xml.hh"
|
||||
#include "xml-writer.hh"
|
||||
#include "eval-inline.hh"
|
||||
#include "signals.hh"
|
||||
#include "nix/value-to-xml.hh"
|
||||
#include "nix/xml-writer.hh"
|
||||
#include "nix/eval-inline.hh"
|
||||
#include "nix/signals.hh"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "util.hh"
|
||||
#include "value/context.hh"
|
||||
#include "nix/util.hh"
|
||||
#include "nix/value/context.hh"
|
||||
|
||||
#include <optional>
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue