Merge changes Ief8e8ebc,Id3135db0,If1e76169 into main
* changes: libutil: delete unused boost context cruft build: remove approximately 400 seconds of CPU time (30%) fix: use http proxy for s3 access
This commit is contained in:
commit
3bf8819fa2
4 changed files with 23 additions and 19 deletions
10
doc/manual/rl-next/http-proxy-for-s3.md
Normal file
10
doc/manual/rl-next/http-proxy-for-s3.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
synopsis: HTTP proxy environment variables are now respected for S3 binary cache stores
|
||||
issues: [fj#433]
|
||||
cls: [1788]
|
||||
category: Fixes
|
||||
credits: jade
|
||||
---
|
||||
|
||||
Due to "legacy reasons" (according to the AWS C++ SDK docs), the AWS SDK ignores system proxy configuration by default.
|
||||
We turned it back on.
|
11
meson.build
11
meson.build
|
@ -147,6 +147,17 @@ if should_pch
|
|||
# Unlike basically everything else that takes a file, Meson requires the arguments to
|
||||
# cpp_pch : to be strings and doesn't accept files(). So absolute path it is.
|
||||
cpp_pch = [meson.project_source_root() / 'src/pch/precompiled-headers.hh']
|
||||
|
||||
# Saves about 400s (30% at time of writing) from compile time on-cpu, mostly
|
||||
# by removing instantiations of nlohmann from every single damned compilation
|
||||
# unit.
|
||||
# There is no equivalent in gcc.
|
||||
if cxx.get_id() == 'clang'
|
||||
add_project_arguments(
|
||||
'-fpch-instantiate-templates',
|
||||
language : 'cpp',
|
||||
)
|
||||
endif
|
||||
else
|
||||
cpp_pch = []
|
||||
endif
|
||||
|
|
|
@ -140,6 +140,8 @@ ref<Aws::Client::ClientConfiguration> S3Helper::makeConfig(
|
|||
res->connectTimeoutMs = 5 * 1000;
|
||||
res->retryStrategy = std::make_shared<RetryStrategy>();
|
||||
res->caFile = settings.caFile;
|
||||
// Use the system proxy env-vars in curl for s3, which is off by default for some reason
|
||||
res->allowSystemProxy = true;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
#include "types.hh"
|
||||
#include "file-descriptor.hh"
|
||||
|
||||
namespace boost::context { struct stack_context; }
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
||||
|
@ -612,23 +610,6 @@ struct FramedSink : nix::BufferedSink
|
|||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Stack allocation strategy for sinkToSource.
|
||||
* Mutable to avoid a boehm gc dependency in libutil.
|
||||
*
|
||||
* boost::context doesn't provide a virtual class, so we define our own.
|
||||
*/
|
||||
struct StackAllocator {
|
||||
virtual boost::context::stack_context allocate() = 0;
|
||||
virtual void deallocate(boost::context::stack_context sctx) = 0;
|
||||
|
||||
/**
|
||||
* The stack allocator to use in sinkToSource and potentially elsewhere.
|
||||
* It is reassigned by the initGC() method in libexpr.
|
||||
*/
|
||||
static StackAllocator *defaultAllocator;
|
||||
};
|
||||
|
||||
/* Disabling GC when entering a coroutine (without the boehm patch).
|
||||
mutable to avoid boehm gc dependency in libutil.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue