Skip to content

migrate to mir-core #156

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Oct 25, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ environment:
# DVersion: 2.080.0
# arch: x86
- DC: ldc
DVersion: '1.9.0'
DVersion: '1.12.0'
arch: x64

matrix:
Expand Down
3 changes: 2 additions & 1 deletion circle.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
machine:
environment:
DMD: 2.078.2
DMD: 2.082.1
PATH: "${HOME}/dmd2/linux/bin64:${PATH}"
LD_LIBRARY_PATH: "${HOME}/dmd2/linux/lib64:${LD_LIBRARY_PATH}"
checkout:
Expand All @@ -13,6 +13,7 @@ dependencies:
- dmd --version
test:
override:
- git clone https://github.com/libmir/mir-core
- make -f doc/Makefile html
deployment:
aws:
Expand Down
13 changes: 6 additions & 7 deletions doc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ DOC_OUTPUT_DIR=web
DOC_SOURCE_DIR=doc
GENERATED=.generated
ALGORITHM_DIR=source
CORE_DIR=mir-core/source
DLANGORG_DIR=$(DOC_SOURCE_DIR)/dlang.org
ARTWORK_DIR=$(DOC_SOURCE_DIR)/artwork

Expand All @@ -25,23 +26,21 @@ ARTWORK_DIR=$(DOC_SOURCE_DIR)/artwork
# Packages in mir. Just mention the package name here. The contents of package
# xy/zz is in variable PACKAGE_xy_zz. This allows automation in iterating
# packages and their modules.
MIR_PACKAGES = mir mir/ndslice mir/ndslice/connect mir/internal mir/math mir/math/func mir/array mir/interpolate mir/graph mir/combinatorics mir/container mir/algorithm
MIR_PACKAGES = mir mir/ndslice mir/ndslice/connect mir/math mir/math/func mir/array mir/interpolate mir/graph mir/combinatorics mir/container mir/algorithm

PACKAGE_mir = bitmanip bitop conv functional primitives range series utility qualifier range
PACKAGE_mir = range series

PACKAGE_mir_array = allocation primitives
PACKAGE_mir_array = allocation
PACKAGE_mir_combinatorics = package
PACKAGE_mir_algorithm = iteration setops
PACKAGE_mir_container = binaryheap
PACKAGE_mir_graph = tarjan package
PACKAGE_mir_internal = utility
PACKAGE_mir_interpolate = package constant linear spline pchip utility
PACKAGE_mir_math = constant common sum numeric package
PACKAGE_mir_math = sum numeric
PACKAGE_mir_math_func = expdigamma
PACKAGE_mir_ndslice_connect = cpython

PACKAGE_mir_ndslice = \
algorithm\
allocation\
chunks\
concatenation\
Expand Down Expand Up @@ -104,7 +103,7 @@ ADDSOURCE=$(if $(subst index.d,,$1),$(ALGORITHM_DIR)/$1,$1)
# ../web/phobos/std_conv.html : std/conv.d $(STDDOC) ; ...
$(foreach p,$(SRC_DOCUMENTABLES),$(eval \
$(DOC_OUTPUT_DIR)/$(call D2HTML,$p) : $(call ADDSOURCE,$p) $(STDDOC) ;\
$(DDOC) $(STDDOC) -I$(ALGORITHM_DIR) -Df$$@ $$<))
$(DDOC) $(STDDOC) -I$(ALGORITHM_DIR) -I$(CORE_DIR) -Df$$@ $$<))

###########################################################
# Setup all other resources needed by dlang.org
Expand Down
38 changes: 0 additions & 38 deletions dub.json

This file was deleted.

13 changes: 13 additions & 0 deletions dub.sdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name "mir-algorithm"
description "Mir Algorithm Collection"

authors "Ilya Yaroshenko" "Sebastian Wilzbach" "John Michael Hall"
copyright "Copyright © 2016 - 2018, Ilya Yaroshenko; see also information per file."
license "BSL-1.0"

dependency "mir-core" version=">=0.0.0 <1.0.0"

buildType "unittest" {
buildOptions "unittests" "debugMode" "debugInfo"
versions "mir_test"
}
17 changes: 14 additions & 3 deletions include/mir/ndslice.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ Copyright: Copyright © 2017-, Ilya Yaroshenko
Authors: Ilya Yaroshenko
*/
#include <cstddef>
#include <cstdint>

#if INTPTR_MAX == INT32_MAX
#define mir_size_t unsigned int
#define mir_ptrdiff_t int
#elif INTPTR_MAX == INT64_MAX
#define mir_size_t unsigned long long
#define mir_ptrdiff_t long long
#else
#error "Environment not 32 or 64-bit."
#endif

// It is out of ndslice namespace because of a DMD mangling bug.
enum class mir_slice_kind : int
Expand All @@ -20,12 +31,12 @@ enum class mir_slice_kind : int

template <
typename Iterator,
size_t N = 1,
mir_size_t N = 1,
mir_slice_kind kind = mir_slice_kind::contiguous
>
struct mir_slice
{
size_t _lengths[N];
ptrdiff_t _strides[kind == mir_slice_kind::universal ? N : kind == mir_slice_kind::canonical ? N - 1 : 0];
mir_size_t _lengths[N];
mir_ptrdiff_t _strides[kind == mir_slice_kind::universal ? N : kind == mir_slice_kind::canonical ? N - 1 : 0];
Iterator _iterator;
};
2 changes: 1 addition & 1 deletion include/mir/series.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct mir_observation
template <
typename IndexIterator,
typename Iterator,
size_t N = 1,
mir_size_t N = 1,
mir_slice_kind kind = mir_slice_kind::contiguous
>
struct mir_series
Expand Down
11 changes: 0 additions & 11 deletions index.d
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,10 @@ $(BOOKTABLE ,

$(TR $(TDNW $(MREF mir,ndslice,connect,cpython)) $(TD Utilities for $(HTTPS docs.python.org/3/c-api/buffer.html, Python Buffer Protocol)))
$(LEADINGROW Math)
$(TR $(TDNW $(MREF mir,math)) $(TD Package))
$(TR $(TDNW $(MREF mir,math,common)★) $(TD Common math functions and fp-math compiler optimization attributes))
$(TR $(TDNW $(MREF mir,math,constant)) $(TD Constants))
$(TR $(TDNW $(MREF mir,math,numeric)) $(TD Simple numeric algorithms))
$(TR $(TDNW $(MREF mir,math,sum)★) $(TD Various precise summation algorithms))
$(LEADINGROW Accessories)
$(TR $(TDNW $(MREF mir,utility)) $(TD Everyday utilities))
$(TR $(TDNW $(MREF mir,array,primitives)) $(TD Array primitives with ndslice-like API))
$(TR $(TDNW $(MREF mir,array,allocation)) $(TD `std.array` reworked for Mir))
$(TR $(TDNW $(MREF mir,bitmanip)) $(TD Bit fields manipulations))
$(TR $(TDNW $(MREF mir,bitop)) $(TD Bit operations))
$(TR $(TDNW $(MREF mir,qualifier)) $(TD Additoinal primitives for const and immutable types))
$(TR $(TDNW $(MREF mir,conv)) $(TD Conversion utilities))
$(TR $(TDNW $(MREF mir,functional)) $(TD Functions that manipulate other functions))
$(TR $(TDNW $(MREF mir,primitives)) $(TD Templates used to check primitives))
$(TR $(TDNW $(MREF mir,range)) $(TD Ranges))
)

Expand Down
24 changes: 8 additions & 16 deletions meson.build
Original file line number Diff line number Diff line change
@@ -1,35 +1,28 @@
project('mir-algorithm', 'd', version : '2.0.0', license: 'BSL-1.0')
project('mir-algorithm', 'd', version : '3.0.0', license: 'BSL-1.0')

mir_algorithm_dir = include_directories('source/', 'include/')

mir_core_dep = dependency('mir-core', fallback : ['mir-core', 'mir_core_dep'])

required_deps = [mir_core_dep]

mir_algorithm_src = [
'source/mir/algorithm/iteration.d',
'source/mir/algorithm/setops.d',
'source/mir/array/allocation.d',
'source/mir/array/primitives.d',
'source/mir/bitmanip.d',
'source/mir/bitop.d',
'source/mir/combinatorics/package.d',
'source/mir/container/binaryheap.d',
'source/mir/conv.d',
'source/mir/functional.d',
'source/mir/graph/package.d',
'source/mir/graph/tarjan.d',
'source/mir/internal/memory.d',
'source/mir/internal/utility.d',
'source/mir/interpolate/constant.d',
'source/mir/interpolate/linear.d',
'source/mir/interpolate/package.d',
'source/mir/interpolate/pchip.d',
'source/mir/interpolate/spline.d',
'source/mir/interpolate/utility.d',
'source/mir/math/common.d',
'source/mir/math/constant.d',
'source/mir/math/func/expdigamma.d',
'source/mir/math/numeric.d',
'source/mir/math/package.d',
'source/mir/math/sum.d',
'source/mir/ndslice/algorithm.d',
'source/mir/ndslice/allocation.d',
'source/mir/ndslice/chunks.d',
'source/mir/ndslice/concatenation.d',
Expand All @@ -46,24 +39,22 @@ mir_algorithm_src = [
'source/mir/ndslice/sorting.d',
'source/mir/ndslice/topology.d',
'source/mir/ndslice/traits.d',
'source/mir/primitives.d',
'source/mir/qualifier.d',
'source/mir/range.d',
'source/mir/series.d',
'source/mir/utility.d',
'source/std/backdoor.d',
]

mir_algorithm_lib = library(meson.project_name(),
mir_algorithm_src,
include_directories: mir_algorithm_dir,
install: true,
version: meson.project_version(),
dependencies: required_deps,
)

mir_algorithm_dep = declare_dependency(
link_with: [mir_algorithm_lib],
include_directories: mir_algorithm_dir,
dependencies: required_deps,
)

mir_algorithm_test_exe = executable(meson.project_name() + '-test',
Expand All @@ -72,6 +63,7 @@ mir_algorithm_test_exe = executable(meson.project_name() + '-test',
d_unittest: true,
d_module_versions: ['mir_test'],
link_args: '-main',
dependencies: required_deps,
)

install_subdir('include/',
Expand Down
Loading