# # spec file for package dpor # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global pkg_name dpor Name: %{pkg_name} Version: 0.2.0.0 Release: 0 Summary: A generic implementation of dynamic partial-order reduction (DPOR) for testing arbitrary models of concurrency License: MIT Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-containers-devel BuildRequires: ghc-deepseq-devel BuildRequires: ghc-random-devel BuildRequires: ghc-rpm-macros BuildRequires: ghc-semigroups-devel %description We can characterise the state of a concurrent computation by considering the ordering of dependent events. This is a partial order: independent events can be performed in any order without affecting the result. DPOR is a technique for computing these partial orders at run-time, and only testing one total order for each partial order. This cuts down the amount of work to be done significantly. In particular, this package implemented bounded partial-order reduction, which is a further optimisation. Only schedules within some *bound* are considered. * DPOR with no schedule bounding is __complete__, it /will/ find all distinct executions! * DPOR with schedule bounding is __incomplete__, it will only find all distinct executions /within the bound/! __Caution:__ The fundamental assumption behind DPOR is that the *only* source of nondeterminism in your program is the scheduler. Or, to put it another way, if you execute the same program with the same schedule twice, you get the same result. If you are using this library in combination with something which performs I/O, be *very* certain that this is the case! See the for more details. For details on the algorithm, albeit presented in a very imperative way, see /Bounded partial-order reduction/, K. Coons, M. Musuvathi, and K. McKinley (2013), available at . %package -n ghc-%{name} Summary: Haskell %{name} library Group: System/Libraries %description -n ghc-%{name} This package provides the Haskell %{name} shared library. %package -n ghc-%{name}-devel Summary: Haskell %{name} library development files Group: Development/Libraries/Haskell Requires: ghc-%{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} Requires(postun): ghc-compiler = %{ghc_version} %description -n ghc-%{name}-devel This package provides the Haskell %{name} library development files. %prep %setup -q %build %ghc_lib_build %install %ghc_lib_install %post -n ghc-%{name}-devel %ghc_pkg_recache %postun -n ghc-%{name}-devel %ghc_pkg_recache %files %license LICENSE %files -n ghc-%{name} -f ghc-%{name}.files %license LICENSE %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %changelog