hercules-ci-cnix-store 0.3.5.0 → 0.3.5.1
raw patch · 7 files changed
+64/−18 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084475 :: Ptr NixStorePath -> Ptr NixStorePath -> IO CInt
- Hercules.CNix.Store: inline_c_ffi_6989586621679084486 :: Ptr NixStorePath -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084555 :: Ptr (Ptr ()) -> IO (Ptr (Ref NixStore))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084565 :: Ptr (Ref NixStore) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084585 :: Ptr (Ptr ()) -> Ptr CChar -> IO (Ptr (Ref NixStore))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084595 :: Ptr (Ref NixStore) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084605 :: Ptr (Ref NixStore) -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084615 :: Ptr (Ref NixStore) -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084628 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> IO CInt
- Hercules.CNix.Store: inline_c_ffi_6989586621679084638 :: Ptr (Ptr ()) -> IO CInt
- Hercules.CNix.Store: inline_c_ffi_6989586621679084645 :: IO (FunPtr (Ptr NixStorePath -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084662 :: Ptr (Ptr ()) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084681 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084690 :: Ptr NixStorePath -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084699 :: Ptr NixStorePath -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084711 :: Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084726 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084741 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084754 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084764 :: Ptr (Ptr ()) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084771 :: IO (FunPtr (Ptr NixStorePathWithOutputs -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084784 :: Ptr NixStorePath -> Ptr (CStdSet CStdString) -> IO (Ptr NixStorePathWithOutputs)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084793 :: Ptr NixStorePathWithOutputs -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084805 :: Ptr (Ptr ()) -> Ptr NixStorePathWithOutputs -> IO (Ptr (CStdVector CStdString))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084820 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (CStdVector NixStorePathWithOutputs) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679084829 :: IO (FunPtr (Ptr Derivation -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679084844 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr Derivation)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084869 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> Ptr CChar -> CLong -> IO (Ptr Derivation)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084881 :: Ptr (Ptr ()) -> Ptr NixStorePath -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084892 :: Ptr Derivation -> IO (Ptr DerivationOutputsIterator)
- Hercules.CNix.Store: inline_c_ffi_6989586621679084904 :: Ptr DerivationOutputsIterator -> Ptr Derivation -> IO CBool
- Hercules.CNix.Store: inline_c_ffi_6989586621679084946 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> Ptr DerivationOutputsIterator -> Ptr (Ptr CChar) -> Ptr CInt -> Ptr (Ptr NixStorePath) -> Ptr CInt -> Ptr CInt -> Ptr (Ptr CChar) -> Ptr CInt -> Ptr Derivation -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085001 :: Ptr DerivationOutputsIterator -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085010 :: Ptr Derivation -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085019 :: Ptr Derivation -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085031 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr Strings)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085043 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr (CStdVector (Ptr NixStorePath)))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085053 :: Ptr Derivation -> IO (Ptr DerivationInputsIterator)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085065 :: Ptr DerivationInputsIterator -> Ptr Derivation -> IO CBool
- Hercules.CNix.Store: inline_c_ffi_6989586621679085078 :: Ptr (Ptr ()) -> Ptr DerivationInputsIterator -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085088 :: Ptr DerivationInputsIterator -> IO (Ptr Strings)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085098 :: Ptr DerivationInputsIterator -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085108 :: Ptr DerivationInputsIterator -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085117 :: Ptr Derivation -> IO (Ptr StringPairs)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085129 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr Strings)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085139 :: Ptr StringPairs -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085149 :: Ptr Strings -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085156 :: IO (FunPtr (Ptr Strings -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085166 :: Ptr Strings -> IO CSize
- Hercules.CNix.Store: inline_c_ffi_6989586621679085176 :: Ptr Strings -> IO (Ptr StringsIterator)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085189 :: Ptr StringsIterator -> Ptr Strings -> IO CBool
- Hercules.CNix.Store: inline_c_ffi_6989586621679085199 :: Ptr StringsIterator -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085210 :: Ptr StringsIterator -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085220 :: Ptr StringPairs -> IO (Ptr StringPairsIterator)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085233 :: Ptr StringPairsIterator -> Ptr StringPairs -> IO CBool
- Hercules.CNix.Store: inline_c_ffi_6989586621679085243 :: Ptr StringPairsIterator -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085253 :: Ptr StringPairsIterator -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085265 :: Ptr StringPairsIterator -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085272 :: IO (Ptr Strings)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085282 :: Ptr Strings -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085299 :: Ptr Strings -> Ptr CChar -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085321 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (Ref NixStore) -> Ptr (CStdVector (Ptr NixStorePath)) -> IO ()
- Hercules.CNix.Store: inline_c_ffi_6989586621679085336 :: Ptr (Ptr ()) -> Ptr CChar -> IO (Ptr SecretKey)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085343 :: IO (FunPtr (Ptr SecretKey -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085361 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> Ptr SecretKey -> IO CInt
- Hercules.CNix.Store: inline_c_ffi_6989586621679085380 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085395 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO CBool
- Hercules.CNix.Store: inline_c_ffi_6989586621679085410 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr (Ref ValidPathInfo))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085429 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> Ptr CBool -> IO (Ptr (Ref ValidPathInfo))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085438 :: IO (FunPtr (Ptr (Ref ValidPathInfo) -> IO ()))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085447 :: Ptr (Ref ValidPathInfo) -> IO CLong
- Hercules.CNix.Store: inline_c_ffi_6989586621679085456 :: Ptr (Ref ValidPathInfo) -> IO (Ptr CChar)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085468 :: Ptr (Ptr ()) -> Ptr (Ref ValidPathInfo) -> IO (Ptr NixStorePath)
- Hercules.CNix.Store: inline_c_ffi_6989586621679085480 :: Ptr (Ptr ()) -> Ptr (Ref ValidPathInfo) -> IO (Ptr (CStdVector (Ptr NixStorePath)))
- Hercules.CNix.Store: inline_c_ffi_6989586621679085511 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (CStdSet NixStorePath) -> Ptr (CStdSet NixStorePath) -> CInt -> CInt -> CInt -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679082901 :: Ptr NixStorePath -> Ptr NixStorePath -> IO CInt
+ Hercules.CNix.Store: inline_c_ffi_6989586621679082911 :: Ptr NixStorePath -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679082979 :: Ptr (Ptr ()) -> IO (Ptr (Ref NixStore))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679082988 :: Ptr (Ref NixStore) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083007 :: Ptr (Ptr ()) -> Ptr CChar -> IO (Ptr (Ref NixStore))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083016 :: Ptr (Ref NixStore) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083025 :: Ptr (Ref NixStore) -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083034 :: Ptr (Ref NixStore) -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083046 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> IO CInt
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083055 :: Ptr (Ptr ()) -> IO CInt
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083061 :: IO (FunPtr (Ptr NixStorePath -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083077 :: Ptr (Ptr ()) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083095 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083103 :: Ptr NixStorePath -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083111 :: Ptr NixStorePath -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083122 :: Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083136 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083150 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083162 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083171 :: Ptr (Ptr ()) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083177 :: IO (FunPtr (Ptr NixStorePathWithOutputs -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083189 :: Ptr NixStorePath -> Ptr (CStdSet CStdString) -> IO (Ptr NixStorePathWithOutputs)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083197 :: Ptr NixStorePathWithOutputs -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083208 :: Ptr (Ptr ()) -> Ptr NixStorePathWithOutputs -> IO (Ptr (CStdVector CStdString))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083222 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (CStdVector NixStorePathWithOutputs) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083230 :: IO (FunPtr (Ptr Derivation -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083244 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr Derivation)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083268 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> Ptr CChar -> CLong -> IO (Ptr Derivation)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083279 :: Ptr (Ptr ()) -> Ptr NixStorePath -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083289 :: Ptr Derivation -> IO (Ptr DerivationOutputsIterator)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083300 :: Ptr DerivationOutputsIterator -> Ptr Derivation -> IO CBool
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083341 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> Ptr DerivationOutputsIterator -> Ptr (Ptr CChar) -> Ptr CInt -> Ptr (Ptr NixStorePath) -> Ptr CInt -> Ptr CInt -> Ptr (Ptr CChar) -> Ptr CInt -> Ptr Derivation -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083395 :: Ptr DerivationOutputsIterator -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083403 :: Ptr Derivation -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083411 :: Ptr Derivation -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083422 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr Strings)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083433 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr (CStdVector (Ptr NixStorePath)))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083442 :: Ptr Derivation -> IO (Ptr DerivationInputsIterator)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083453 :: Ptr DerivationInputsIterator -> Ptr Derivation -> IO CBool
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083465 :: Ptr (Ptr ()) -> Ptr DerivationInputsIterator -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083474 :: Ptr DerivationInputsIterator -> IO (Ptr Strings)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083483 :: Ptr DerivationInputsIterator -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083492 :: Ptr DerivationInputsIterator -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083500 :: Ptr Derivation -> IO (Ptr StringPairs)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083511 :: Ptr (Ptr ()) -> Ptr Derivation -> IO (Ptr Strings)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083520 :: Ptr StringPairs -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083529 :: Ptr Strings -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083535 :: IO (FunPtr (Ptr Strings -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083544 :: Ptr Strings -> IO CSize
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083553 :: Ptr Strings -> IO (Ptr StringsIterator)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083565 :: Ptr StringsIterator -> Ptr Strings -> IO CBool
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083574 :: Ptr StringsIterator -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083584 :: Ptr StringsIterator -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083593 :: Ptr StringPairs -> IO (Ptr StringPairsIterator)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083605 :: Ptr StringPairsIterator -> Ptr StringPairs -> IO CBool
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083614 :: Ptr StringPairsIterator -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083623 :: Ptr StringPairsIterator -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083634 :: Ptr StringPairsIterator -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083640 :: IO (Ptr Strings)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083649 :: Ptr Strings -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083665 :: Ptr Strings -> Ptr CChar -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083686 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (Ref NixStore) -> Ptr (CStdVector (Ptr NixStorePath)) -> IO ()
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083700 :: Ptr (Ptr ()) -> Ptr CChar -> IO (Ptr SecretKey)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083706 :: IO (FunPtr (Ptr SecretKey -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083723 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> Ptr SecretKey -> IO CInt
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083741 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr CChar -> CLong -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083755 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO CBool
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083769 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> IO (Ptr (Ref ValidPathInfo))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083787 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr NixStorePath -> Ptr CBool -> IO (Ptr (Ref ValidPathInfo))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083795 :: IO (FunPtr (Ptr (Ref ValidPathInfo) -> IO ()))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083803 :: Ptr (Ref ValidPathInfo) -> IO CLong
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083811 :: Ptr (Ref ValidPathInfo) -> IO (Ptr CChar)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083822 :: Ptr (Ptr ()) -> Ptr (Ref ValidPathInfo) -> IO (Ptr NixStorePath)
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083833 :: Ptr (Ptr ()) -> Ptr (Ref ValidPathInfo) -> IO (Ptr (CStdVector (Ptr NixStorePath)))
+ Hercules.CNix.Store: inline_c_ffi_6989586621679083863 :: Ptr (Ptr ()) -> Ptr (Ref NixStore) -> Ptr (CStdSet NixStorePath) -> Ptr (CStdSet NixStorePath) -> CInt -> CInt -> CInt -> IO ()
Files
- CHANGELOG.md +6/−0
- cbits/string.cxx +12/−0
- hercules-ci-cnix-store.cabal +6/−1
- include/hercules-ci-cnix/string.hxx +12/−0
- src/Hercules/CNix.hs +5/−1
- src/Hercules/CNix/Settings.hs +5/−2
- src/Hercules/CNix/Store.hs +18/−14
CHANGELOG.md view
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## 0.3.5.1 - 2024-05-03++### Fixed++ - Remove most uses of `c_str()`, of which at least one exhibited undefined behavior.+ ## 0.3.5.0 - 2024-02-12 ### Added
+ cbits/string.cxx view
@@ -0,0 +1,12 @@+#include "hercules-ci-cnix/string.hxx"++namespace hercules_ci_cnix {++char * stringdup(const std::string & s) {+ char * p = (char *)malloc(s.size() + 1);+ std::copy(s.begin(), s.end(), p);+ p[s.size()] = '\0';+ return p;+}++} // namespace hercules_ci_cnix
hercules-ci-cnix-store.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: hercules-ci-cnix-store-version: 0.3.5.0+version: 0.3.5.1 synopsis: Haskell bindings for Nix's libstore category: Nix homepage: https://docs.hercules-ci.com@@ -43,6 +43,8 @@ cxx-options: -Wall+ -- GHC does _not_ produce declarations, so this only applies to cxx-sources.+ -Werror=missing-declarations extra-libraries: stdc++ if os(darwin)@@ -96,7 +98,10 @@ , nix-main >= 2.4 && < 2.19 || (>= 2.19.3 && < 2.21) install-includes: hercules-ci-cnix/store.hxx+ hercules-ci-cnix/string.hxx hs-source-dirs: src+ cxx-sources:+ cbits/string.cxx build-depends: base >= 4.7 && <5 , inline-c
+ include/hercules-ci-cnix/string.hxx view
@@ -0,0 +1,12 @@+#pragma once+#include <string>++namespace hercules_ci_cnix {++/**+ c_str() on a std::string only works if the std::string doesn't go out of scope.+ `stringdup` is like `strdup(s.c_str())`, but without the undefined behavior.+ */+char * stringdup(const std::string & s);++} // namespace hercules_ci_cnix
src/Hercules/CNix.hs view
@@ -59,8 +59,12 @@ C.include "<gc/gc_allocator.h>" +C.include "hercules-ci-cnix/string.hxx"+ C.using "namespace nix" +C.using "namespace hercules_ci_cnix"+ init :: IO () init = void@@ -107,7 +111,7 @@ nixVersion = unsafePerformIO $ do p <- [C.exp| const char* {- strdup(nix::nixVersion.c_str())+ stringdup(nix::nixVersion) }|] unsafePackMallocCString p {-# NOINLINE nixVersion #-}
src/Hercules/CNix/Settings.hs view
@@ -40,7 +40,10 @@ C.include "<nix/globals.hh>" C.include "<set>" C.include "<string>"+C.include "hercules-ci-cnix/string.hxx" +C.using "namespace hercules_ci_cnix"+ byteStringSet :: IO (Ptr (Std.Set.CStdSet Std.String.CStdString)) -> IO (Set ByteString) byteStringSet x = x@@ -67,7 +70,7 @@ getSystem = unsafePackMallocCString =<< [C.exp| const char *{- strdup(nix::settings.thisSystem.get().c_str())+ stringdup(nix::settings.thisSystem.get()) }|] getSystemFeatures :: IO (Set ByteString)@@ -107,7 +110,7 @@ getNetrcFile = unsafePackMallocCString =<< [C.exp| const char *{- strdup(nix::settings.netrcFile.get().c_str())+ stringdup(nix::settings.netrcFile.get()) }|] -- Gets the value of https://nixos.org/manual/nix/stable/command-ref/conf-file.html?highlight=use-sqlite-wal#conf-use-sqlite-wal
src/Hercules/CNix/Store.hs view
@@ -82,6 +82,8 @@ C.include "hercules-ci-cnix/store.hxx" +C.include "hercules-ci-cnix/string.hxx"+ #if NIX_IS_AT_LEAST(2,19,0) C.include "<nix/signals.hh>"@@ -98,6 +100,8 @@ C.using "namespace nix" +C.using "namespace hercules_ci_cnix"+ forNonNull :: Applicative m => Ptr a -> (Ptr a -> m b) -> m (Maybe b) forNonNull = flip traverseNonNull @@ -150,7 +154,7 @@ unsafeMallocBS [C.block| const char* { std::string uri = (*$(refStore* store))->getUri();- return strdup(uri.c_str());+ return stringdup(uri); } |] -- | Usually @"/nix/store"@@@ -159,7 +163,7 @@ unsafeMallocBS [C.block| const char* { std::string uri = (*$(refStore* store))->storeDir;- return strdup(uri.c_str());+ return stringdup(uri); } |] getStoreProtocolVersion :: Store -> IO Int@@ -209,7 +213,7 @@ BS.unsafePackMallocCString =<< [C.block| const char* { std::string s($fptr-ptr:(nix::StorePath *storePath)->to_string());- return strdup(s.c_str());+ return stringdup(s); }|] pure $ toS $ decodeUtf8With lenientDecode bs @@ -250,7 +254,7 @@ BS.unsafePackMallocCString =<< [C.block| const char *{ std::string s($fptr-ptr:(nix::StorePath *sp)->to_string());- return strdup(s.c_str());+ return stringdup(s); }|] getStorePathHash :: StorePath -> IO ByteString@@ -258,7 +262,7 @@ BS.unsafePackMallocCString =<< [C.block| const char *{ std::string s($fptr-ptr:(nix::StorePath *sp)->hashPart());- return strdup(s.c_str());+ return stringdup(s); }|] storePathToPath :: Store -> StorePath -> IO ByteString@@ -268,7 +272,7 @@ Store & store = **$(refStore* store); StorePath &sp = *$fptr-ptr:(nix::StorePath *sp); std::string s(store.printStorePath(sp));- return strdup(s.c_str());+ return stringdup(s); }|] ensurePath :: Store -> StorePath -> IO ()@@ -409,7 +413,7 @@ =<< [C.throwBlock| const char *{ StorePath &sp = *$fptr-ptr:(nix::StorePath *storePath); std::string s(Derivation::nameFromPath(sp));- return strdup(s.c_str());+ return stringdup(s); }|] data DerivationOutput = DerivationOutput@@ -469,7 +473,7 @@ int &hashSize = *$(int *hashSizeP); std::string nameString = i->first;- name = strdup(nameString.c_str());+ name = stringdup(nameString); path = nullptr; std::visit(overloaded { #if NIX_IS_AT_LEAST(2, 18, 0)@@ -797,14 +801,14 @@ getDerivationPlatform derivation = unsafeMallocBS [C.exp| const char* {- strdup($fptr-ptr:(Derivation *derivation)->platform.c_str())+ stringdup($fptr-ptr:(Derivation *derivation)->platform) } |] getDerivationBuilder :: Derivation -> IO ByteString getDerivationBuilder derivation = unsafeMallocBS [C.exp| const char* {- strdup($fptr-ptr:(Derivation *derivation)->builder.c_str())+ stringdup($fptr-ptr:(Derivation *derivation)->builder) } |] getDerivationArguments :: Derivation -> IO [ByteString]@@ -957,7 +961,7 @@ if isEnd then pure [] else do- s <- [C.exp| const char*{ strdup((*$(StringsIterator *i))->c_str()) }|]+ s <- [C.exp| const char*{ stringdup(*(*$(StringsIterator *i))) }|] bs <- BS.unsafePackMallocCString s [C.block| void { (*$(StringsIterator *i))++; }|] (bs :) <$> go@@ -971,8 +975,8 @@ if isEnd then pure [] else do- k <- [C.exp| const char*{ strdup((*$(StringPairsIterator *i))->first.c_str()) }|]- v <- [C.exp| const char*{ strdup((*$(StringPairsIterator *i))->second.c_str()) }|]+ k <- [C.exp| const char*{ stringdup((*$(StringPairsIterator *i))->first) }|]+ v <- [C.exp| const char*{ stringdup((*$(StringPairsIterator *i))->second) }|] bk <- BS.unsafePackMallocCString k bv <- BS.unsafePackMallocCString v [C.block| void { (*$(StringPairsIterator *i))++; }|]@@ -1209,7 +1213,7 @@ #else std::string s((*$fptr-ptr:(refValidPathInfo* vpi))->narHash.to_string(nix::Base32, true)); #endif- return strdup(s.c_str());+ return stringdup(s); }|] -- | Deriver field of a ValidPathInfo struct. Source: store-api.hh