summary refs log tree commit diff
path: root/gnu/packages/c.scm
diff options
context:
space:
mode:
authorKristian Lein-Mathisen <kristianlein@gmail.com>2022-09-05 21:49:03 +0200
committerLudovic Courtès <ludo@gnu.org>2022-09-08 16:22:22 +0200
commit7fabdffca9ebfabceb363e1a2d13889429a369af (patch)
treebb5f1022f006ae279570690b6839113f5168a559 /gnu/packages/c.scm
parentb2e560aca4f6bbd0d43ae5c821f4add6e47da801 (diff)
downloadguix-7fabdffca9ebfabceb363e1a2d13889429a369af.tar.gz
gnu: Add mimalloc.
* gnu/packages/c.scm (mimalloc): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/c.scm')
-rw-r--r--gnu/packages/c.scm22
1 files changed, 22 insertions, 0 deletions
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index d7d649488b..10275970b1 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -1083,6 +1083,28 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
     (home-page "https://github.com/awslabs/aws-c-mqtt")
     (license license:asl2.0)))
 
+;; Note: there is another mimalloc embedded in rust-mimalloc (version 1.6.4).
+(define-public mimalloc
+  (package
+    (name "mimalloc")
+    (version "2.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/microsoft/mimalloc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05x2dl3zimflfj91ns3vrphmzpdlyyr230p9adqgfds101f16qmv"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:build-type "Release"))
+    (synopsis "General purpose memory allocator")
+    (description "@code{mimalloc} is a drop-in replacement for @code{malloc}.")
+    (home-page "https://microsoft.github.io/mimalloc/")
+    (license license:expat)))
+
 ;;; Factored out of the ck package so that it can be adjusted and called on
 ;;; the host side easily, without impacting the package definition.
 (define (gnu-triplet->ck-machine target)