Skip to content

Commit 7c16647

Browse files
authored
migrate to mir-core (#156)
* wip * fix series * add sparseField and CoordinateValue * fix iteratin algorithms and primitives * fix imports * update docs * fix ddoc * fix *.h * findIndex * rebase on mir-core * work on labels * fix series and chopped * fix meson * minor update for dip1000 * fix docs generation * fix dmd version * fix ddoc * fix docs * fxi dub * update CI * fix travis
1 parent 0207f9a commit 7c16647

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+460
-3623
lines changed

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ environment:
88
# DVersion: 2.080.0
99
# arch: x86
1010
- DC: ldc
11-
DVersion: '1.9.0'
11+
DVersion: '1.12.0'
1212
arch: x64
1313

1414
matrix:

circle.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
machine:
22
environment:
3-
DMD: 2.078.2
3+
DMD: 2.082.1
44
PATH: "${HOME}/dmd2/linux/bin64:${PATH}"
55
LD_LIBRARY_PATH: "${HOME}/dmd2/linux/lib64:${LD_LIBRARY_PATH}"
66
checkout:
@@ -13,6 +13,7 @@ dependencies:
1313
- dmd --version
1414
test:
1515
override:
16+
- git clone https://github.com/libmir/mir-core
1617
- make -f doc/Makefile html
1718
deployment:
1819
aws:

doc/Makefile

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ DOC_OUTPUT_DIR=web
1515
DOC_SOURCE_DIR=doc
1616
GENERATED=.generated
1717
ALGORITHM_DIR=source
18+
CORE_DIR=mir-core/source
1819
DLANGORG_DIR=$(DOC_SOURCE_DIR)/dlang.org
1920
ARTWORK_DIR=$(DOC_SOURCE_DIR)/artwork
2021

@@ -25,23 +26,21 @@ ARTWORK_DIR=$(DOC_SOURCE_DIR)/artwork
2526
# Packages in mir. Just mention the package name here. The contents of package
2627
# xy/zz is in variable PACKAGE_xy_zz. This allows automation in iterating
2728
# packages and their modules.
28-
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
29+
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
2930

30-
PACKAGE_mir = bitmanip bitop conv functional primitives range series utility qualifier range
31+
PACKAGE_mir = range series
3132

32-
PACKAGE_mir_array = allocation primitives
33+
PACKAGE_mir_array = allocation
3334
PACKAGE_mir_combinatorics = package
3435
PACKAGE_mir_algorithm = iteration setops
3536
PACKAGE_mir_container = binaryheap
3637
PACKAGE_mir_graph = tarjan package
37-
PACKAGE_mir_internal = utility
3838
PACKAGE_mir_interpolate = package constant linear spline pchip utility
39-
PACKAGE_mir_math = constant common sum numeric package
39+
PACKAGE_mir_math = sum numeric
4040
PACKAGE_mir_math_func = expdigamma
4141
PACKAGE_mir_ndslice_connect = cpython
4242

4343
PACKAGE_mir_ndslice = \
44-
algorithm\
4544
allocation\
4645
chunks\
4746
concatenation\
@@ -104,7 +103,7 @@ ADDSOURCE=$(if $(subst index.d,,$1),$(ALGORITHM_DIR)/$1,$1)
104103
# ../web/phobos/std_conv.html : std/conv.d $(STDDOC) ; ...
105104
$(foreach p,$(SRC_DOCUMENTABLES),$(eval \
106105
$(DOC_OUTPUT_DIR)/$(call D2HTML,$p) : $(call ADDSOURCE,$p) $(STDDOC) ;\
107-
$(DDOC) $(STDDOC) -I$(ALGORITHM_DIR) -Df$$@ $$<))
106+
$(DDOC) $(STDDOC) -I$(ALGORITHM_DIR) -I$(CORE_DIR) -Df$$@ $$<))
108107

109108
###########################################################
110109
# Setup all other resources needed by dlang.org

dub.json

Lines changed: 0 additions & 38 deletions
This file was deleted.

dub.sdl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name "mir-algorithm"
2+
description "Mir Algorithm Collection"
3+
4+
authors "Ilya Yaroshenko" "Sebastian Wilzbach" "John Michael Hall"
5+
copyright "Copyright © 2016 - 2018, Ilya Yaroshenko; see also information per file."
6+
license "BSL-1.0"
7+
8+
dependency "mir-core" version=">=0.0.0 <1.0.0"
9+
10+
buildType "unittest" {
11+
buildOptions "unittests" "debugMode" "debugInfo"
12+
versions "mir_test"
13+
}

include/mir/ndslice.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ Copyright: Copyright © 2017-, Ilya Yaroshenko
99
Authors: Ilya Yaroshenko
1010
*/
1111
#include <cstddef>
12+
#include <cstdint>
13+
14+
#if INTPTR_MAX == INT32_MAX
15+
#define mir_size_t unsigned int
16+
#define mir_ptrdiff_t int
17+
#elif INTPTR_MAX == INT64_MAX
18+
#define mir_size_t unsigned long long
19+
#define mir_ptrdiff_t long long
20+
#else
21+
#error "Environment not 32 or 64-bit."
22+
#endif
1223

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

2132
template <
2233
typename Iterator,
23-
size_t N = 1,
34+
mir_size_t N = 1,
2435
mir_slice_kind kind = mir_slice_kind::contiguous
2536
>
2637
struct mir_slice
2738
{
28-
size_t _lengths[N];
29-
ptrdiff_t _strides[kind == mir_slice_kind::universal ? N : kind == mir_slice_kind::canonical ? N - 1 : 0];
39+
mir_size_t _lengths[N];
40+
mir_ptrdiff_t _strides[kind == mir_slice_kind::universal ? N : kind == mir_slice_kind::canonical ? N - 1 : 0];
3041
Iterator _iterator;
3142
};

include/mir/series.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct mir_observation
1313
template <
1414
typename IndexIterator,
1515
typename Iterator,
16-
size_t N = 1,
16+
mir_size_t N = 1,
1717
mir_slice_kind kind = mir_slice_kind::contiguous
1818
>
1919
struct mir_series

index.d

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,10 @@ $(BOOKTABLE ,
2929

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

meson.build

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,28 @@
1-
project('mir-algorithm', 'd', version : '2.0.0', license: 'BSL-1.0')
1+
project('mir-algorithm', 'd', version : '3.0.0', license: 'BSL-1.0')
22

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

5+
mir_core_dep = dependency('mir-core', fallback : ['mir-core', 'mir_core_dep'])
6+
7+
required_deps = [mir_core_dep]
8+
59
mir_algorithm_src = [
610
'source/mir/algorithm/iteration.d',
711
'source/mir/algorithm/setops.d',
812
'source/mir/array/allocation.d',
9-
'source/mir/array/primitives.d',
10-
'source/mir/bitmanip.d',
11-
'source/mir/bitop.d',
1213
'source/mir/combinatorics/package.d',
1314
'source/mir/container/binaryheap.d',
14-
'source/mir/conv.d',
15-
'source/mir/functional.d',
1615
'source/mir/graph/package.d',
1716
'source/mir/graph/tarjan.d',
18-
'source/mir/internal/memory.d',
19-
'source/mir/internal/utility.d',
2017
'source/mir/interpolate/constant.d',
2118
'source/mir/interpolate/linear.d',
2219
'source/mir/interpolate/package.d',
2320
'source/mir/interpolate/pchip.d',
2421
'source/mir/interpolate/spline.d',
2522
'source/mir/interpolate/utility.d',
26-
'source/mir/math/common.d',
27-
'source/mir/math/constant.d',
2823
'source/mir/math/func/expdigamma.d',
2924
'source/mir/math/numeric.d',
30-
'source/mir/math/package.d',
3125
'source/mir/math/sum.d',
32-
'source/mir/ndslice/algorithm.d',
3326
'source/mir/ndslice/allocation.d',
3427
'source/mir/ndslice/chunks.d',
3528
'source/mir/ndslice/concatenation.d',
@@ -46,24 +39,22 @@ mir_algorithm_src = [
4639
'source/mir/ndslice/sorting.d',
4740
'source/mir/ndslice/topology.d',
4841
'source/mir/ndslice/traits.d',
49-
'source/mir/primitives.d',
50-
'source/mir/qualifier.d',
5142
'source/mir/range.d',
5243
'source/mir/series.d',
53-
'source/mir/utility.d',
54-
'source/std/backdoor.d',
5544
]
5645

5746
mir_algorithm_lib = library(meson.project_name(),
5847
mir_algorithm_src,
5948
include_directories: mir_algorithm_dir,
6049
install: true,
6150
version: meson.project_version(),
51+
dependencies: required_deps,
6252
)
6353

6454
mir_algorithm_dep = declare_dependency(
6555
link_with: [mir_algorithm_lib],
6656
include_directories: mir_algorithm_dir,
57+
dependencies: required_deps,
6758
)
6859

6960
mir_algorithm_test_exe = executable(meson.project_name() + '-test',
@@ -72,6 +63,7 @@ mir_algorithm_test_exe = executable(meson.project_name() + '-test',
7263
d_unittest: true,
7364
d_module_versions: ['mir_test'],
7465
link_args: '-main',
66+
dependencies: required_deps,
7567
)
7668

7769
install_subdir('include/',

0 commit comments

Comments
 (0)