Bug 170324 - New port: devel/lockfree-malloc The world is first Web-scale memory allocator
Summary: New port: devel/lockfree-malloc The world is first Web-scale memory allocator
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Bryan Drewery
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-02 12:30 UTC by Veniamin
Modified: 2012-08-05 22:00 UTC (History)
0 users

See Also:


Attachments
file.shar (2.77 KB, text/plain)
2012-08-02 12:30 UTC, Veniamin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Veniamin 2012-08-02 12:30:13 UTC
Here are the advantages of our allocator:

* It's thread-friendly. It supports a practically-unlimited number of
concurrent threads, without locking or performance degradation.
* It's efficient, especially in a multi-threaded environment. Compared to
a stock libc allocator, we see a significant performance boost.
* It does NOT fragment or leak memory, unlike a stock libc allocator.
* It wastes less memory. For small objects (less than 8kb in size), the
overhead is around 0 bytes. (!)
* It is designed from the ground-up for 64-bit architectures.
* It is elegant. The whole codebase is only around 800 lines of fairly
clean C++. (!)
* It fully stand-alone; it does not rely on pthreads or libc at runtime.
Comment 1 Bryan Drewery freebsd_committer freebsd_triage 2012-08-02 14:01:34 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bdrewery

I'll take it.
Comment 2 Bryan Drewery freebsd_committer freebsd_triage 2012-08-02 14:01:57 UTC
> OPTIONS=	DOCS	"Install README." on
> .if defined(WITH_DOCS)


The OPTIONS format has changed.
See
http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-options.html

You want something like:

OPTIONS_DEFINE=	DOCS
DOCS_DESC=	Install README

And then:

.if ${PORT_OPTIONS:MDOCS}


-- 
Regards,
Bryan Drewery
bdrewery@freenode/EFNet
Comment 3 Veniamin 2012-08-02 14:35:06 UTC
Ok. I'm agree.

> You want something like:
>
> OPTIONS_DEFINE= DOCS
> DOCS_DESC=      Install README
>
> And then:
>
> .if ${PORT_OPTIONS:MDOCS}
Comment 4 dfilter service freebsd_committer freebsd_triage 2012-08-05 21:52:02 UTC
Author: bdrewery
Date: Sun Aug  5 20:51:47 2012
New Revision: 302135
URL: http://svn.freebsd.org/changeset/ports/302135

Log:
  lockfree-malloc is a scalable drop-in replacement for malloc/free.
  
  * It's thread-friendly. It supports a practically-unlimited number of
    concurrent threads, without locking or performance degradation.
  * It's efficient, especially in a multi-threaded environment. Compared to
    a stock libc allocator, we see a significant performance boost.
  * It does NOT fragment or leak memory, unlike a stock libc allocator.
  * It wastes less memory. For small objects (less than 8kb in size), the
    overhead is around 0 bytes. (!)
  * It is designed from the ground-up for 64-bit architectures.
  * It is elegant. The whole codebase is only around 800 lines of fairly
    clean C++. (!)
  * It fully stand-alone; it does not rely on pthreads or libc at runtime.
  
  PR:		ports/170324
  Submitted by:	Veniamin Gvozdikov <g.veniamin@googlemail.com>
  Approved by:	eadler (mentor)

Added:
  head/devel/lockfree-malloc/
  head/devel/lockfree-malloc/Makefile   (contents, props changed)
  head/devel/lockfree-malloc/distinfo   (contents, props changed)
  head/devel/lockfree-malloc/pkg-descr   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Sun Aug  5 20:46:40 2012	(r302134)
+++ head/devel/Makefile	Sun Aug  5 20:51:47 2012	(r302135)
@@ -1042,6 +1042,7 @@
     SUBDIR += llvm29
     SUBDIR += lmdbg
     SUBDIR += lndir
+    SUBDIR += lockfree-malloc
     SUBDIR += log4c
     SUBDIR += log4cplus
     SUBDIR += log4cpp

Added: head/devel/lockfree-malloc/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/lockfree-malloc/Makefile	Sun Aug  5 20:51:47 2012	(r302135)
@@ -0,0 +1,48 @@
+# New ports collection makefile for:	lockfree-malloc
+# Date created:		2012-08-01
+# Whom:			Gvozdikov Veniamin <g.veniamin@googlemail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME=	lockfree-malloc
+PORTVERSION=	0.0.${DATE}
+CATEGORIES=	devel
+MASTER_SITES=	http://fbsd.zlonet.ru/distfiles/
+
+MAINTAINER=	g.veniamin@googlemail.com
+COMMENT=	Scalable drop-in replacement for malloc/free
+
+LICENSE=	LGPL3
+
+DATE=		20120802
+ONLY_FOR_ARCHS=	amd64
+USE_LDCONFIG=	yes
+USE_BZIP2=	yes
+
+OPTIONS_DEFINE=	DOCS
+OPTIONS_DEFAULT=DOCS
+DOCS_DESC=	Install README
+
+PLIST_FILES=	lib/liblite-malloc-shared.so \
+		lib/liblite-malloc-static.a
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MDOCS}
+PLIST_FILES+=	share/doc/${PORTNAME}/README
+PLIST_DIRS+=	share/doc/${PORTNAME}
+.endif
+
+do-install:
+.for i in shared.so static.a
+	${INSTALL_LIB} ${WRKSRC}/liblite-malloc-${i} ${PREFIX}/lib/liblite-malloc-${i}
+.endfor
+
+post-install:
+.if ${PORT_OPTIONS:MDOCS}
+	${MKDIR} ${DOCSDIR}
+	cd ${WRKSRC} && ${INSTALL_DATA} README ${DOCSDIR}
+.endif
+
+.include <bsd.port.mk>

Added: head/devel/lockfree-malloc/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/lockfree-malloc/distinfo	Sun Aug  5 20:51:47 2012	(r302135)
@@ -0,0 +1,2 @@
+SHA256 (lockfree-malloc-0.0.20120802.tar.bz2) = 5b4ba8683fd0d02f1415d785d7fa04a41b1e3def8a1b690f434877d3931b16ea
+SIZE (lockfree-malloc-0.0.20120802.tar.bz2) = 41121

Added: head/devel/lockfree-malloc/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/lockfree-malloc/pkg-descr	Sun Aug  5 20:51:47 2012	(r302135)
@@ -0,0 +1,15 @@
+lockfree-malloc is a scalable drop-in replacement for malloc/free.
+
+* It's thread-friendly. It supports a practically-unlimited number of
+  concurrent threads, without locking or performance degradation.
+* It's efficient, especially in a multi-threaded environment. Compared to
+  a stock libc allocator, we see a significant performance boost.
+* It does NOT fragment or leak memory, unlike a stock libc allocator.
+* It wastes less memory. For small objects (less than 8kb in size), the
+  overhead is around 0 bytes. (!)
+* It is designed from the ground-up for 64-bit architectures.
+* It is elegant. The whole codebase is only around 800 lines of fairly
+  clean C++. (!)
+* It fully stand-alone; it does not rely on pthreads or libc at runtime.
+
+WWW:	https://github.com/Begun/lockfree-malloc
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 5 Bryan Drewery freebsd_committer freebsd_triage 2012-08-05 21:52:26 UTC
State Changed
From-To: open->closed

New port added, with minor changes. Thanks!