Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Dec 2018 17:34:02 +0000 (UTC)
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r487452 - in head/devel: . ikos ikos/files
Message-ID:  <201812141734.wBEHY2oJ091139@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: yuri
Date: Fri Dec 14 17:34:01 2018
New Revision: 487452
URL: https://svnweb.freebsd.org/changeset/ports/487452

Log:
  New port: devel/ikos: Static analyzer for C/C++ based on theory of abstract interpretation

Added:
  head/devel/ikos/
  head/devel/ikos/Makefile   (contents, props changed)
  head/devel/ikos/distinfo   (contents, props changed)
  head/devel/ikos/files/
  head/devel/ikos/files/patch-analyzer_python_ikos_analyzer.py   (contents, props changed)
  head/devel/ikos/pkg-descr   (contents, props changed)
  head/devel/ikos/pkg-plist   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Fri Dec 14 17:30:47 2018	(r487451)
+++ head/devel/Makefile	Fri Dec 14 17:34:01 2018	(r487452)
@@ -1232,6 +1232,7 @@
     SUBDIR += ignition-plugin
     SUBDIR += ignition-tools
     SUBDIR += ignition-transport
+    SUBDIR += ikos
     SUBDIR += imake
     SUBDIR += inastemp
     SUBDIR += include-what-you-use

Added: head/devel/ikos/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ikos/Makefile	Fri Dec 14 17:34:01 2018	(r487452)
@@ -0,0 +1,35 @@
+# $FreeBSD$
+
+PORTNAME=	ikos
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.1
+CATEGORIES=	devel
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Static analyzer for C/C++ based on theory of abstract interpretation
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.pdf
+
+BUILD_DEPENDS=	llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT}
+LIB_DEPENDS=	libboost_system.so:devel/boost-libs \
+		libgmp.so:math/gmp
+
+USES=		cmake:outsource python sqlite
+USE_GITHUB=	yes
+GH_ACCOUNT=	NASA-SW-VnV
+
+CXXFLAGS+=	-DNDEBUG # https://github.com/NASA-SW-VnV/ikos/issues/36, it also breaks with assert without NDEBUG
+
+CMAKE_ARGS=	-DLLVM_CONFIG_EXECUTABLE:PATH=${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} \
+		-DPYTHON_EXECUTABLE:STRING=${PYTHON_CMD}
+
+post-configure: # workaround for the problem that --color-diagnostics gets into the linker command lines
+	@${REINPLACE_CMD} 's|-Wl,--color-diagnostics| |' ${BUILD_WRKSRC}/build.ninja
+
+# use clang corresponding to the used llvm version
+CPP=		clang-cpp${LLVM_DEFAULT}
+CC=		clang${LLVM_DEFAULT}
+CXX=		clang++${LLVM_DEFAULT}
+
+.include <bsd.port.mk>

Added: head/devel/ikos/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ikos/distinfo	Fri Dec 14 17:34:01 2018	(r487452)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1544771357
+SHA256 (NASA-SW-VnV-ikos-v2.1_GH0.tar.gz) = bd5e75a2a94fafc3d1cd01eb6541da458a10c7674e7ae29eb211642c526f1407
+SIZE (NASA-SW-VnV-ikos-v2.1_GH0.tar.gz) = 1042131

Added: head/devel/ikos/files/patch-analyzer_python_ikos_analyzer.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ikos/files/patch-analyzer_python_ikos_analyzer.py	Fri Dec 14 17:34:01 2018	(r487452)
@@ -0,0 +1,17 @@
+--- analyzer/python/ikos/analyzer.py.orig	2018-12-14 07:13:50 UTC
++++ analyzer/python/ikos/analyzer.py
+@@ -554,10 +554,10 @@ def clang(bc_path, cpp_path, colors=True
+     # For #include <ikos/analyzer/intrinsic.hpp>
+     cmd += ['-isystem', settings.INCLUDE_DIR]
+ 
+-    if colors:
+-        cmd.append('-fcolor-diagnostics')
+-    else:
+-        cmd.append('-fno-color-diagnostics')
++    #if colors:
++    #    cmd.append('-fcolor-diagnostics')
++    #else:
++    #    cmd.append('-fno-color-diagnostics')
+ 
+     if cpp_path.endswith('.cpp'):
+         cmd.append('-std=c++14')  # available because clang >= 4.0

Added: head/devel/ikos/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ikos/pkg-descr	Fri Dec 14 17:34:01 2018	(r487452)
@@ -0,0 +1,13 @@
+IKOS (Inference Kernel for Open Static Analyzers) is a static analyzer for C/C++
+based on the theory of Abstract Interpretation.
+
+IKOS provides a generic and efficient implementation of state-of-the-art
+Abstract Interpretation data structures and algorithms, such as control-flow
+graphs, fixpoint iterators, numerical abstract domains, etc. IKOS is independent
+of a particular programming language.
+
+IKOS also provides a C and C++ static analyzer based on LLVM. It implements
+scalable analyses for detecting and proving the absence of runtime errors in C
+and C++ programs.
+
+WWW: https://github.com/NASA-SW-VnV/ikos

Added: head/devel/ikos/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/ikos/pkg-plist	Fri Dec 14 17:34:01 2018	(r487452)
@@ -0,0 +1,212 @@
+bin/ikos
+bin/ikos-analyzer
+bin/ikos-config
+bin/ikos-import
+bin/ikos-pp
+bin/ikos-report
+bin/ikos-scan
+bin/ikos-scan-c++
+bin/ikos-scan-cc
+bin/ikos-view
+include/ikos/analyzer/intrinsic.h
+include/ikos/ar/format/dot.hpp
+include/ikos/ar/format/formatter.hpp
+include/ikos/ar/format/namer.hpp
+include/ikos/ar/format/text.hpp
+include/ikos/ar/pass/add_loop_counters.hpp
+include/ikos/ar/pass/name_values.hpp
+include/ikos/ar/pass/pass.hpp
+include/ikos/ar/pass/simplify_cfg.hpp
+include/ikos/ar/pass/simplify_upcast_comparison.hpp
+include/ikos/ar/pass/unify_exit_nodes.hpp
+include/ikos/ar/semantic.hpp
+include/ikos/ar/semantic/bundle.hpp
+include/ikos/ar/semantic/code.hpp
+include/ikos/ar/semantic/context.hpp
+include/ikos/ar/semantic/data_layout.hpp
+include/ikos/ar/semantic/function.hpp
+include/ikos/ar/semantic/intrinsic.hpp
+include/ikos/ar/semantic/statement.hpp
+include/ikos/ar/semantic/statement_visitor.hpp
+include/ikos/ar/semantic/type.hpp
+include/ikos/ar/semantic/type_visitor.hpp
+include/ikos/ar/semantic/value.hpp
+include/ikos/ar/semantic/value_visitor.hpp
+include/ikos/ar/support/assert.hpp
+include/ikos/ar/support/cast.hpp
+include/ikos/ar/support/flags.hpp
+include/ikos/ar/support/iterator.hpp
+include/ikos/ar/support/number.hpp
+include/ikos/ar/support/string_ref.hpp
+include/ikos/ar/support/traceable.hpp
+include/ikos/ar/verify/frontend.hpp
+include/ikos/ar/verify/type.hpp
+include/ikos/core/adt/patricia_tree/map.hpp
+include/ikos/core/adt/patricia_tree/set.hpp
+include/ikos/core/adt/patricia_tree/utils.hpp
+include/ikos/core/adt/small_vector.hpp
+include/ikos/core/adt/string_ref.hpp
+include/ikos/core/domain/abstract_domain.hpp
+include/ikos/core/domain/discrete_domain.hpp
+include/ikos/core/domain/domain_product.hpp
+include/ikos/core/domain/exception/abstract_domain.hpp
+include/ikos/core/domain/exception/exception.hpp
+include/ikos/core/domain/lifetime/abstract_domain.hpp
+include/ikos/core/domain/lifetime/dummy.hpp
+include/ikos/core/domain/lifetime/lifetime.hpp
+include/ikos/core/domain/machine_int/abstract_domain.hpp
+include/ikos/core/domain/machine_int/congruence.hpp
+include/ikos/core/domain/machine_int/dummy.hpp
+include/ikos/core/domain/machine_int/interval.hpp
+include/ikos/core/domain/machine_int/interval_congruence.hpp
+include/ikos/core/domain/machine_int/numeric_domain_adapter.hpp
+include/ikos/core/domain/machine_int/operator.hpp
+include/ikos/core/domain/machine_int/polymorphic_domain.hpp
+include/ikos/core/domain/machine_int/separate_domain.hpp
+include/ikos/core/domain/memory/abstract_domain.hpp
+include/ikos/core/domain/memory/dummy.hpp
+include/ikos/core/domain/memory/value.hpp
+include/ikos/core/domain/memory/value/cell_set.hpp
+include/ikos/core/domain/memory/value/mem_loc_to_cell_set.hpp
+include/ikos/core/domain/memory/value/mem_loc_to_pointer_set.hpp
+include/ikos/core/domain/nullity/abstract_domain.hpp
+include/ikos/core/domain/nullity/dummy.hpp
+include/ikos/core/domain/nullity/nullity.hpp
+include/ikos/core/domain/numeric/abstract_domain.hpp
+include/ikos/core/domain/numeric/apron.hpp
+include/ikos/core/domain/numeric/congruence.hpp
+include/ikos/core/domain/numeric/constant.hpp
+include/ikos/core/domain/numeric/dbm.hpp
+include/ikos/core/domain/numeric/domain_product.hpp
+include/ikos/core/domain/numeric/equality_congruence_solver.hpp
+include/ikos/core/domain/numeric/gauge.hpp
+include/ikos/core/domain/numeric/gauge_interval_congruence.hpp
+include/ikos/core/domain/numeric/interval.hpp
+include/ikos/core/domain/numeric/interval_congruence.hpp
+include/ikos/core/domain/numeric/linear_interval_solver.hpp
+include/ikos/core/domain/numeric/octagon.hpp
+include/ikos/core/domain/numeric/operator.hpp
+include/ikos/core/domain/numeric/separate_domain.hpp
+include/ikos/core/domain/numeric/union.hpp
+include/ikos/core/domain/numeric/var_packing_dbm.hpp
+include/ikos/core/domain/numeric/var_packing_dbm_congruence.hpp
+include/ikos/core/domain/numeric/var_packing_domain.hpp
+include/ikos/core/domain/pointer/abstract_domain.hpp
+include/ikos/core/domain/pointer/dummy.hpp
+include/ikos/core/domain/pointer/operator.hpp
+include/ikos/core/domain/pointer/pointer.hpp
+include/ikos/core/domain/pointer/solver.hpp
+include/ikos/core/domain/separate_domain.hpp
+include/ikos/core/domain/uninitialized/abstract_domain.hpp
+include/ikos/core/domain/uninitialized/dummy.hpp
+include/ikos/core/domain/uninitialized/uninitialized.hpp
+include/ikos/core/example/machine_int/variable_factory.hpp
+include/ikos/core/example/muzq.hpp
+include/ikos/core/example/variable_factory.hpp
+include/ikos/core/exception.hpp
+include/ikos/core/fixpoint/fixpoint_iterator.hpp
+include/ikos/core/fixpoint/fwd_fixpoint_iterator.hpp
+include/ikos/core/fixpoint/wto.hpp
+include/ikos/core/legacy/adt/mergeable_map.hpp
+include/ikos/core/legacy/adt/patricia_tree.hpp
+include/ikos/core/legacy/common/type.hpp
+include/ikos/core/legacy/domain/array_graph.hpp
+include/ikos/core/legacy/domain/cpa.hpp
+include/ikos/core/legacy/domain/dataflow_domain.hpp
+include/ikos/core/legacy/domain/reaching.hpp
+include/ikos/core/legacy/domain/summary.hpp
+include/ikos/core/legacy/domain/uninitialized_array.hpp
+include/ikos/core/legacy/example/muaz.hpp
+include/ikos/core/legacy/expression.hpp
+include/ikos/core/linear_constraint.hpp
+include/ikos/core/linear_expression.hpp
+include/ikos/core/literal.hpp
+include/ikos/core/number.hpp
+include/ikos/core/number/bound.hpp
+include/ikos/core/number/compatibility.hpp
+include/ikos/core/number/dummy_number.hpp
+include/ikos/core/number/exception.hpp
+include/ikos/core/number/machine_int.hpp
+include/ikos/core/number/q_number.hpp
+include/ikos/core/number/signedness.hpp
+include/ikos/core/number/supported_integral.hpp
+include/ikos/core/number/z_number.hpp
+include/ikos/core/semantic/dumpable.hpp
+include/ikos/core/semantic/graph.hpp
+include/ikos/core/semantic/indexable.hpp
+include/ikos/core/semantic/machine_int/variable.hpp
+include/ikos/core/semantic/memory/cell.hpp
+include/ikos/core/semantic/memory/variable.hpp
+include/ikos/core/semantic/memory_location.hpp
+include/ikos/core/semantic/pointer/variable.hpp
+include/ikos/core/semantic/variable.hpp
+include/ikos/core/support/assert.hpp
+include/ikos/core/support/cast.hpp
+include/ikos/core/support/compiler.hpp
+include/ikos/core/support/mpl.hpp
+include/ikos/core/value/lifetime.hpp
+include/ikos/core/value/machine_int/congruence.hpp
+include/ikos/core/value/machine_int/constant.hpp
+include/ikos/core/value/machine_int/interval.hpp
+include/ikos/core/value/machine_int/interval_congruence.hpp
+include/ikos/core/value/nullity.hpp
+include/ikos/core/value/numeric/congruence.hpp
+include/ikos/core/value/numeric/constant.hpp
+include/ikos/core/value/numeric/gauge.hpp
+include/ikos/core/value/numeric/interval.hpp
+include/ikos/core/value/numeric/interval_congruence.hpp
+include/ikos/core/value/pointer/pointer.hpp
+include/ikos/core/value/pointer/pointer_set.hpp
+include/ikos/core/value/pointer/points_to_set.hpp
+include/ikos/core/value/uninitialized.hpp
+include/ikos/frontend/llvm/import.hpp
+include/ikos/frontend/llvm/import/exception.hpp
+include/ikos/frontend/llvm/import/importer.hpp
+include/ikos/frontend/llvm/import/source_location.hpp
+include/ikos/frontend/llvm/pass.hpp
+lib/libikos-ar.a
+lib/libikos-llvm-to-ar.a
+lib/libikos-pp.a
+%%PYTHON_SITELIBDIR%%/ikos-2.1-py%%PYTHON_VER%%.egg-info
+%%PYTHON_SITELIBDIR%%/ikos/__init__.py
+%%PYTHON_SITELIBDIR%%/ikos/__init__.pyc
+%%PYTHON_SITELIBDIR%%/ikos/abs_int.py
+%%PYTHON_SITELIBDIR%%/ikos/abs_int.pyc
+%%PYTHON_SITELIBDIR%%/ikos/analyzer.py
+%%PYTHON_SITELIBDIR%%/ikos/analyzer.pyc
+%%PYTHON_SITELIBDIR%%/ikos/args.py
+%%PYTHON_SITELIBDIR%%/ikos/args.pyc
+%%PYTHON_SITELIBDIR%%/ikos/colors.py
+%%PYTHON_SITELIBDIR%%/ikos/colors.pyc
+%%PYTHON_SITELIBDIR%%/ikos/enums.py
+%%PYTHON_SITELIBDIR%%/ikos/enums.pyc
+%%PYTHON_SITELIBDIR%%/ikos/filetype.py
+%%PYTHON_SITELIBDIR%%/ikos/filetype.pyc
+%%PYTHON_SITELIBDIR%%/ikos/highlight.py
+%%PYTHON_SITELIBDIR%%/ikos/highlight.pyc
+%%PYTHON_SITELIBDIR%%/ikos/html.py
+%%PYTHON_SITELIBDIR%%/ikos/html.pyc
+%%PYTHON_SITELIBDIR%%/ikos/http.py
+%%PYTHON_SITELIBDIR%%/ikos/http.pyc
+%%PYTHON_SITELIBDIR%%/ikos/log.py
+%%PYTHON_SITELIBDIR%%/ikos/log.pyc
+%%PYTHON_SITELIBDIR%%/ikos/output_db.py
+%%PYTHON_SITELIBDIR%%/ikos/output_db.pyc
+%%PYTHON_SITELIBDIR%%/ikos/report.py
+%%PYTHON_SITELIBDIR%%/ikos/report.pyc
+%%PYTHON_SITELIBDIR%%/ikos/scan.py
+%%PYTHON_SITELIBDIR%%/ikos/scan.pyc
+%%PYTHON_SITELIBDIR%%/ikos/settings/__init__.py
+%%PYTHON_SITELIBDIR%%/ikos/settings/__init__.pyc
+%%PYTHON_SITELIBDIR%%/ikos/stats.py
+%%PYTHON_SITELIBDIR%%/ikos/stats.pyc
+%%PYTHON_SITELIBDIR%%/ikos/view.py
+%%PYTHON_SITELIBDIR%%/ikos/view.pyc
+%%DATADIR%%/view/static/css/ikos_theme.css
+%%DATADIR%%/view/static/js/ikos_homepage.js
+%%DATADIR%%/view/static/js/ikos_report.js
+%%DATADIR%%/view/template/error.html
+%%DATADIR%%/view/template/homepage.html
+%%DATADIR%%/view/template/not_found.html
+%%DATADIR%%/view/template/report.html
+%%DATADIR%%/view/template/settings.html



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812141734.wBEHY2oJ091139>