Compare commits

...

51 commits
main ... 1.5

Author SHA1 Message Date
Simon Cruanes
a91d504c23 ready for 1.5 2018-01-02 18:15:52 +01:00
Simon Cruanes
46e41f7f84 Merge branch 'master' into stable for 1.5 2018-01-02 18:14:49 +01:00
Simon Cruanes
ad8a61a795 Merge branch 'master' into stable 2017-10-11 09:30:53 +02:00
Simon Cruanes
f24d983b04 Merge branch 'master' into stable for 1.3 2017-07-29 18:13:25 +02:00
Simon Cruanes
32bc0450dc Merge branch 'master' into stable for 1.2 2017-05-01 17:02:29 +02:00
Simon Cruanes
461d6309e7 version 1.1 2017-03-03 16:19:40 +01:00
Simon Cruanes
9fb319966b Merge branch 'master' into stable for 1.1 2017-03-03 16:18:26 +01:00
Simon Cruanes
e52b847e90 Merge branch 'master' into stable for 1.0 2017-02-11 14:31:14 +01:00
Simon Cruanes
265ed02dc6 Merge branch 'master' into stable for 0.22.1 2016-12-29 10:47:40 +01:00
Simon Cruanes
9c80dba89e Merge branch 'master' into stable 2016-12-18 01:35:58 +01:00
Simon Cruanes
d84b1e1369 Merge branch 'master' into stable for 0.21 2016-11-03 16:07:17 +01:00
Simon Cruanes
88025034b6 release 0.20 2016-10-14 11:35:39 +02:00
Simon Cruanes
f6774434cd Merge branch 'master' into stable 2016-10-14 11:34:02 +02:00
Simon Cruanes
47978e4bba Merge branch 'master' into stable for 0.19 2016-08-22 10:01:36 +02:00
Simon Cruanes
ed2b741865 Merge branch 'master' into stable for 0.18 2016-06-14 14:13:29 +02:00
Simon Cruanes
e69ad8a6de Merge branch 'master' into stable 2016-04-22 23:42:29 +02:00
Simon Cruanes
94396b79e0 small release, 0.16.1, for the oasis fix 2016-03-09 10:20:03 +01:00
Simon Cruanes
d541de5d03 re-generate oasis files; remove dep on oasis in opam 2016-03-09 10:13:30 +01:00
Simon Cruanes
c16af69fb3 update opam file 2016-02-24 22:16:33 +01:00
Simon Cruanes
ab183a7348 Merge branch 'master' into stable for 0.16 2016-02-24 22:09:31 +01:00
Simon Cruanes
42c912fe0e Merge branch 'master' into stable for 0.15 2015-12-22 10:38:21 +01:00
Simon Cruanes
8eac492c21 0.14.0.1 with some bugfixes 2015-11-11 17:43:07 +01:00
Simon Cruanes
adc37e48b3 version 0.14 2015-11-08 13:04:55 +01:00
Simon Cruanes
844d39c826 Merge branch 'master' into stable; version 0.13 2015-09-23 16:40:38 +02:00
Simon Cruanes
4e49e2a893 Merge branch 'master' into stable 2015-07-16 11:28:19 +02:00
Simon Cruanes
7bacac2c98 Merge branch 'master' into stable; oasis setup; 0.11 2015-05-24 21:52:22 +02:00
Simon Cruanes
9f562cd657 opam file 2015-04-10 16:49:46 +02:00
Simon Cruanes
e268f2d10c Merge branch 'master' into stable for 0.10 2015-04-10 16:43:16 +02:00
Simon Cruanes
99df5baac2 merge from master 2015-03-17 00:40:09 +01:00
Simon Cruanes
4ed1691eb9 merge bugfixes from master 2015-03-02 16:52:51 +01:00
Simon Cruanes
8054a9f256 version 0.9 (merge from master) 2015-02-27 14:41:09 +01:00
Simon Cruanes
d4fa455365 merge from master (bis) 2015-01-26 20:35:17 +01:00
Simon Cruanes
0d61b48fdd merge from master 2015-01-26 20:28:53 +01:00
Simon Cruanes
a21f097a64 version 0.8 2015-01-26 20:24:52 +01:00
Simon Cruanes
d534d4c50e only build doc if all the required flags are enabled 2014-12-22 17:59:14 +01:00
Simon Cruanes
2efbc8d56b add dependency on sequence for containers.advanced 2014-12-19 20:58:02 +01:00
Simon Cruanes
a8f5c3420f merge from master for 0.7 2014-12-19 20:23:13 +01:00
Simon Cruanes
41e6e5ec75 bugfix in CCIO.read_all and CCIO.read_chunks 2014-12-16 22:36:54 +01:00
Simon Cruanes
31fdc16185 forgot an odocl file 2014-12-08 12:06:40 +01:00
Simon Cruanes
b91d42912a Merge branch 'master' into stable 2014-12-08 10:39:28 +01:00
Simon Cruanes
1b15573acd merge from master; version 0.6 2014-11-23 14:37:21 +01:00
Simon Cruanes
22d9d27c80 version 0.5 2014-11-12 11:03:13 +01:00
Simon Cruanes
e0a47cba9b Merge branch 'master' into stable 2014-11-12 00:03:09 +01:00
Simon Cruanes
608edd9a1a version 0.4.1 2014-10-19 21:59:37 +02:00
Simon Cruanes
0e555bed6c merge from master 2014-10-19 21:14:17 +02:00
Simon Cruanes
2cb86cb93f version 0.4 2014-09-30 17:21:58 +02:00
Simon Cruanes
4e3631c12b forgot build files 2014-09-30 17:17:10 +02:00
Simon Cruanes
a3cfdacc78 oasis files 2014-09-30 17:12:59 +02:00
Simon Cruanes
7d3742e765 merge from master 2014-09-30 17:12:59 +02:00
Simon Cruanes
2fb05ad8b5 merge from master 2014-09-28 15:25:52 +02:00
Simon Cruanes
efc3dcb44d merge from stable (including sequence subtree); 0.3.4 2014-08-09 00:21:50 +02:00
62 changed files with 10169 additions and 350 deletions

View file

@ -1,46 +1,41 @@
# OASIS_START # OASIS_START
# DO NOT EDIT (digest: 4c293511860bb966e727ba6f0ecc8197) # DO NOT EDIT (digest: a3c674b4239234cbbe53afe090018954)
SETUP = ./setup.exe SETUP = ocaml setup.ml
build: setup.data $(SETUP) build: setup.data
$(SETUP) -build $(BUILDFLAGS) $(SETUP) -build $(BUILDFLAGS)
doc: setup.data $(SETUP) build doc: setup.data build
$(SETUP) -doc $(DOCFLAGS) $(SETUP) -doc $(DOCFLAGS)
test: setup.data $(SETUP) build test: setup.data build
$(SETUP) -test $(TESTFLAGS) $(SETUP) -test $(TESTFLAGS)
all: $(SETUP) all:
$(SETUP) -all $(ALLFLAGS) $(SETUP) -all $(ALLFLAGS)
install: setup.data $(SETUP) install: setup.data
$(SETUP) -install $(INSTALLFLAGS) $(SETUP) -install $(INSTALLFLAGS)
uninstall: setup.data $(SETUP) uninstall: setup.data
$(SETUP) -uninstall $(UNINSTALLFLAGS) $(SETUP) -uninstall $(UNINSTALLFLAGS)
reinstall: setup.data $(SETUP) reinstall: setup.data
$(SETUP) -reinstall $(REINSTALLFLAGS) $(SETUP) -reinstall $(REINSTALLFLAGS)
clean: $(SETUP) clean:
$(SETUP) -clean $(CLEANFLAGS) $(SETUP) -clean $(CLEANFLAGS)
distclean: $(SETUP) distclean:
$(SETUP) -distclean $(DISTCLEANFLAGS) $(SETUP) -distclean $(DISTCLEANFLAGS)
$(RM) $(SETUP)
setup.data: $(SETUP) setup.data:
$(SETUP) -configure $(CONFIGUREFLAGS) $(SETUP) -configure $(CONFIGUREFLAGS)
configure: $(SETUP) configure:
$(SETUP) -configure $(CONFIGUREFLAGS) $(SETUP) -configure $(CONFIGUREFLAGS)
setup.exe: setup.ml _oasis
ocamlfind ocamlopt -o $@ -linkpkg -package oasis.dynrun setup.ml || ocamlfind ocamlc -o $@ -linkpkg -package oasis.dynrun setup.ml || true
$(RM) setup.cmi setup.cmo setup.cmx setup.o
.PHONY: build doc test all install uninstall reinstall clean distclean configure .PHONY: build doc test all install uninstall reinstall clean distclean configure
# OASIS_STOP # OASIS_STOP

2
_oasis
View file

@ -8,7 +8,7 @@ LicenseFile: LICENSE
Plugins: META (0.3), DevFiles (0.3) Plugins: META (0.3), DevFiles (0.3)
OCamlVersion: >= 4.00.1 OCamlVersion: >= 4.00.1
BuildTools: ocamlbuild BuildTools: ocamlbuild
AlphaFeatures: compiled_setup_ml, ocamlbuild_more_args AlphaFeatures: ocamlbuild_more_args
# cygwin fails with anything else # cygwin fails with anything else
XOCamlbuildExtraArgs: "-j 1" XOCamlbuildExtraArgs: "-j 1"

68
_tags
View file

@ -1,5 +1,5 @@
# OASIS_START # OASIS_START
# DO NOT EDIT (digest: 1681c391580688c2463b8457d464cf03) # DO NOT EDIT (digest: 8cbdae3079e6ebc5257343569c6e2780)
# Ignore VCS directories, you can use the same kind of rule outside # Ignore VCS directories, you can use the same kind of rule outside
# OASIS_START/STOP if you want to exclude directories that contains # OASIS_START/STOP if you want to exclude directories that contains
# useless stuff for the build process # useless stuff for the build process
@ -18,36 +18,20 @@ true: annot, bin_annot
"src/core/containers.cmxs": use_containers "src/core/containers.cmxs": use_containers
<src/core/*.ml{,i,y}>: package(bytes) <src/core/*.ml{,i,y}>: package(bytes)
<src/core/*.ml{,i,y}>: package(result) <src/core/*.ml{,i,y}>: package(result)
# Library containers_io
"src/io/containers_io.cmxs": use_containers_io
<src/io/*.ml{,i,y}>: package(bytes)
# Library containers_unix # Library containers_unix
"src/unix/containers_unix.cmxs": use_containers_unix "src/unix/containers_unix.cmxs": use_containers_unix
<src/unix/*.ml{,i,y}>: package(bytes) <src/unix/*.ml{,i,y}>: package(bytes)
<src/unix/*.ml{,i,y}>: package(result)
<src/unix/*.ml{,i,y}>: package(unix) <src/unix/*.ml{,i,y}>: package(unix)
# Library containers_sexp # Library containers_sexp
"src/sexp/containers_sexp.cmxs": use_containers_sexp "src/sexp/containers_sexp.cmxs": use_containers_sexp
<src/sexp/*.ml{,i,y}>: package(bytes) <src/sexp/*.ml{,i,y}>: package(bytes)
<src/sexp/*.ml{,i,y}>: package(result)
# Library containers_data # Library containers_data
"src/data/containers_data.cmxs": use_containers_data "src/data/containers_data.cmxs": use_containers_data
<src/data/*.ml{,i,y}>: package(bytes) <src/data/*.ml{,i,y}>: package(bytes)
# Library containers_iter # Library containers_iter
"src/iter/containers_iter.cmxs": use_containers_iter "src/iter/containers_iter.cmxs": use_containers_iter
# Library containers_string
"src/string/containers_string.cmxs": use_containers_string
<src/string/*.ml{,i,y}>: package(bytes)
# Library containers_advanced
"src/advanced/containers_advanced.cmxs": use_containers_advanced
<src/advanced/*.ml{,i,y}>: package(bytes)
<src/advanced/*.ml{,i,y}>: package(result)
<src/advanced/*.ml{,i,y}>: package(sequence)
<src/advanced/*.ml{,i,y}>: use_containers
# Library containers_bigarray
"src/bigarray/containers_bigarray.cmxs": use_containers_bigarray
<src/bigarray/*.ml{,i,y}>: package(bigarray)
<src/bigarray/*.ml{,i,y}>: package(bytes)
<src/bigarray/*.ml{,i,y}>: package(result)
<src/bigarray/*.ml{,i,y}>: use_containers
# Library containers_thread # Library containers_thread
"src/threads/containers_thread.cmxs": use_containers_thread "src/threads/containers_thread.cmxs": use_containers_thread
<src/threads/*.ml{,i,y}>: package(bytes) <src/threads/*.ml{,i,y}>: package(bytes)
@ -56,101 +40,77 @@ true: annot, bin_annot
<src/threads/*.ml{,i,y}>: use_containers <src/threads/*.ml{,i,y}>: use_containers
# Library containers_top # Library containers_top
"src/top/containers_top.cmxs": use_containers_top "src/top/containers_top.cmxs": use_containers_top
<src/top/*.ml{,i,y}>: package(bigarray)
<src/top/*.ml{,i,y}>: package(bytes) <src/top/*.ml{,i,y}>: package(bytes)
<src/top/*.ml{,i,y}>: package(compiler-libs.common) <src/top/*.ml{,i,y}>: package(compiler-libs.common)
<src/top/*.ml{,i,y}>: package(result) <src/top/*.ml{,i,y}>: package(result)
<src/top/*.ml{,i,y}>: package(unix) <src/top/*.ml{,i,y}>: package(unix)
<src/top/*.ml{,i,y}>: use_containers <src/top/*.ml{,i,y}>: use_containers
<src/top/*.ml{,i,y}>: use_containers_bigarray
<src/top/*.ml{,i,y}>: use_containers_data <src/top/*.ml{,i,y}>: use_containers_data
<src/top/*.ml{,i,y}>: use_containers_iter <src/top/*.ml{,i,y}>: use_containers_iter
<src/top/*.ml{,i,y}>: use_containers_sexp <src/top/*.ml{,i,y}>: use_containers_sexp
<src/top/*.ml{,i,y}>: use_containers_string
<src/top/*.ml{,i,y}>: use_containers_unix <src/top/*.ml{,i,y}>: use_containers_unix
# Executable run_benchs # Executable run_benchs
<benchs/run_benchs.{native,byte}>: package(benchmark) <benchs/run_benchs.{native,byte}>: package(benchmark)
<benchs/run_benchs.{native,byte}>: package(bytes) <benchs/run_benchs.{native,byte}>: package(bytes)
<benchs/run_benchs.{native,byte}>: package(gen) <benchs/run_benchs.{native,byte}>: package(gen)
<benchs/run_benchs.{native,byte}>: package(hamt) <benchs/run_benchs.{native,byte}>: package(qcheck)
<benchs/run_benchs.{native,byte}>: package(result) <benchs/run_benchs.{native,byte}>: package(result)
<benchs/run_benchs.{native,byte}>: package(sequence) <benchs/run_benchs.{native,byte}>: package(sequence)
<benchs/run_benchs.{native,byte}>: package(threads) <benchs/run_benchs.{native,byte}>: package(threads)
<benchs/run_benchs.{native,byte}>: use_containers <benchs/run_benchs.{native,byte}>: use_containers
<benchs/run_benchs.{native,byte}>: use_containers_advanced
<benchs/run_benchs.{native,byte}>: use_containers_data <benchs/run_benchs.{native,byte}>: use_containers_data
<benchs/run_benchs.{native,byte}>: use_containers_iter <benchs/run_benchs.{native,byte}>: use_containers_iter
<benchs/run_benchs.{native,byte}>: use_containers_string
<benchs/run_benchs.{native,byte}>: use_containers_thread <benchs/run_benchs.{native,byte}>: use_containers_thread
<benchs/*.ml{,i,y}>: package(benchmark) <benchs/*.ml{,i,y}>: package(benchmark)
<benchs/*.ml{,i,y}>: package(gen) <benchs/*.ml{,i,y}>: package(gen)
<benchs/*.ml{,i,y}>: package(qcheck)
<benchs/*.ml{,i,y}>: package(sequence)
<benchs/*.ml{,i,y}>: package(threads) <benchs/*.ml{,i,y}>: package(threads)
<benchs/*.ml{,i,y}>: use_containers_advanced <benchs/*.ml{,i,y}>: use_containers_data
<benchs/*.ml{,i,y}>: use_containers_iter <benchs/*.ml{,i,y}>: use_containers_iter
<benchs/*.ml{,i,y}>: use_containers_string
<benchs/*.ml{,i,y}>: use_containers_thread <benchs/*.ml{,i,y}>: use_containers_thread
# Executable run_bench_hash # Executable run_bench_hash
<benchs/run_bench_hash.{native,byte}>: package(bytes) <benchs/run_bench_hash.{native,byte}>: package(bytes)
<benchs/run_bench_hash.{native,byte}>: package(result) <benchs/run_bench_hash.{native,byte}>: package(result)
<benchs/run_bench_hash.{native,byte}>: use_containers <benchs/run_bench_hash.{native,byte}>: use_containers
<benchs/*.ml{,i,y}>: package(bytes)
<benchs/*.ml{,i,y}>: package(result)
<benchs/*.ml{,i,y}>: use_containers
# Executable run_qtest # Executable run_qtest
<qtest/run_qtest.{native,byte}>: package(QTest2Lib)
<qtest/run_qtest.{native,byte}>: package(bigarray)
<qtest/run_qtest.{native,byte}>: package(bytes) <qtest/run_qtest.{native,byte}>: package(bytes)
<qtest/run_qtest.{native,byte}>: package(gen) <qtest/run_qtest.{native,byte}>: package(gen)
<qtest/run_qtest.{native,byte}>: package(oUnit) <qtest/run_qtest.{native,byte}>: package(oUnit)
<qtest/run_qtest.{native,byte}>: package(qcheck)
<qtest/run_qtest.{native,byte}>: package(result) <qtest/run_qtest.{native,byte}>: package(result)
<qtest/run_qtest.{native,byte}>: package(sequence) <qtest/run_qtest.{native,byte}>: package(sequence)
<qtest/run_qtest.{native,byte}>: package(threads) <qtest/run_qtest.{native,byte}>: package(threads)
<qtest/run_qtest.{native,byte}>: package(unix) <qtest/run_qtest.{native,byte}>: package(unix)
<qtest/run_qtest.{native,byte}>: use_containers <qtest/run_qtest.{native,byte}>: use_containers
<qtest/run_qtest.{native,byte}>: use_containers_advanced
<qtest/run_qtest.{native,byte}>: use_containers_bigarray
<qtest/run_qtest.{native,byte}>: use_containers_data <qtest/run_qtest.{native,byte}>: use_containers_data
<qtest/run_qtest.{native,byte}>: use_containers_io
<qtest/run_qtest.{native,byte}>: use_containers_iter <qtest/run_qtest.{native,byte}>: use_containers_iter
<qtest/run_qtest.{native,byte}>: use_containers_sexp <qtest/run_qtest.{native,byte}>: use_containers_sexp
<qtest/run_qtest.{native,byte}>: use_containers_string
<qtest/run_qtest.{native,byte}>: use_containers_thread <qtest/run_qtest.{native,byte}>: use_containers_thread
<qtest/run_qtest.{native,byte}>: use_containers_unix <qtest/run_qtest.{native,byte}>: use_containers_unix
<qtest/*.ml{,i,y}>: package(QTest2Lib)
<qtest/*.ml{,i,y}>: package(bigarray)
<qtest/*.ml{,i,y}>: package(bytes) <qtest/*.ml{,i,y}>: package(bytes)
<qtest/*.ml{,i,y}>: package(gen) <qtest/*.ml{,i,y}>: package(gen)
<qtest/*.ml{,i,y}>: package(oUnit) <qtest/*.ml{,i,y}>: package(oUnit)
<qtest/*.ml{,i,y}>: package(qcheck)
<qtest/*.ml{,i,y}>: package(result) <qtest/*.ml{,i,y}>: package(result)
<qtest/*.ml{,i,y}>: package(sequence) <qtest/*.ml{,i,y}>: package(sequence)
<qtest/*.ml{,i,y}>: package(threads) <qtest/*.ml{,i,y}>: package(threads)
<qtest/*.ml{,i,y}>: package(unix) <qtest/*.ml{,i,y}>: package(unix)
<qtest/*.ml{,i,y}>: use_containers <qtest/*.ml{,i,y}>: use_containers
<qtest/*.ml{,i,y}>: use_containers_advanced
<qtest/*.ml{,i,y}>: use_containers_bigarray
<qtest/*.ml{,i,y}>: use_containers_data <qtest/*.ml{,i,y}>: use_containers_data
<qtest/*.ml{,i,y}>: use_containers_io
<qtest/*.ml{,i,y}>: use_containers_iter <qtest/*.ml{,i,y}>: use_containers_iter
<qtest/*.ml{,i,y}>: use_containers_sexp <qtest/*.ml{,i,y}>: use_containers_sexp
<qtest/*.ml{,i,y}>: use_containers_string
<qtest/*.ml{,i,y}>: use_containers_thread <qtest/*.ml{,i,y}>: use_containers_thread
<qtest/*.ml{,i,y}>: use_containers_unix <qtest/*.ml{,i,y}>: use_containers_unix
# Executable mem_measure
"benchs/mem_measure.native": package(bytes)
"benchs/mem_measure.native": package(hamt)
"benchs/mem_measure.native": package(result)
"benchs/mem_measure.native": package(sequence)
"benchs/mem_measure.native": package(unix)
"benchs/mem_measure.native": use_containers
"benchs/mem_measure.native": use_containers_data
<benchs/*.ml{,i,y}>: package(bytes)
<benchs/*.ml{,i,y}>: package(hamt)
<benchs/*.ml{,i,y}>: package(result)
<benchs/*.ml{,i,y}>: package(sequence)
<benchs/*.ml{,i,y}>: package(unix)
<benchs/*.ml{,i,y}>: use_containers
<benchs/*.ml{,i,y}>: use_containers_data
# Executable id_sexp # Executable id_sexp
<examples/id_sexp.{native,byte}>: package(bytes) <examples/id_sexp.{native,byte}>: package(bytes)
<examples/id_sexp.{native,byte}>: package(result)
<examples/id_sexp.{native,byte}>: use_containers_sexp <examples/id_sexp.{native,byte}>: use_containers_sexp
<examples/*.ml{,i,y}>: package(bytes) <examples/*.ml{,i,y}>: package(bytes)
<examples/*.ml{,i,y}>: package(result)
<examples/*.ml{,i,y}>: use_containers_sexp <examples/*.ml{,i,y}>: use_containers_sexp
# OASIS_STOP # OASIS_STOP
<tests/*.ml{,i}>: thread <tests/*.ml{,i}>: thread

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 0f1ca0e2b031ae1710e26abf02cca256)
Containers_advanced
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 0f1ca0e2b031ae1710e26abf02cca256)
Containers_advanced
# OASIS_STOP

View file

@ -0,0 +1,7 @@
# OASIS_START
# DO NOT EDIT (digest: 5a399cd532edb84596f3034081578694)
CCLinq
CCBatch
CCCat
CCMonadIO
# OASIS_STOP

8
configure vendored
View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# OASIS_START # OASIS_START
# DO NOT EDIT (digest: 7577949ceda6f9dbd4983aea8db9275b) # DO NOT EDIT (digest: dc86c2ad450f91ca10c931b6045d0499)
set -e set -e
FST=true FST=true
@ -23,9 +23,5 @@ for i in "$@"; do
esac esac
done done
if [ ! -e setup.exe ] || [ _oasis -nt setup.exe ] || [ setup.ml -nt setup.exe ] || [ configure -nt setup.exe ]; then ocaml setup.ml -configure "$@"
ocamlfind ocamlopt -o setup.exe -linkpkg -package oasis.dynrun setup.ml || ocamlfind ocamlc -o setup.exe -linkpkg -package oasis.dynrun setup.ml || exit 1
rm -f setup.cmi setup.cmo setup.cmx setup.o
fi
./setup.exe -configure "$@"
# OASIS_STOP # OASIS_STOP

69
containers.odocl Normal file
View file

@ -0,0 +1,69 @@
# OASIS_START
# DO NOT EDIT (digest: fe2373b07664be05f7322781403afad6)
src/core/CCVector
src/core/CCHeap
src/core/CCList
src/core/CCOpt
src/core/CCPair
src/core/CCFun
src/core/CCHash
src/core/CCInt
src/core/CCBool
src/core/CCFloat
src/core/CCArray
src/core/CCRef
src/core/CCSet
src/core/CCOrd
src/core/CCRandom
src/core/CCString
src/core/CCHashtbl
src/core/CCMap
src/core/CCFormat
src/core/CCIO
src/core/CCInt64
src/core/CCChar
src/core/CCResult
src/core/CCParse
src/core/CCArray_slice
src/core/CCListLabels
src/core/CCArrayLabels
src/core/CCEqual
src/core/Containers
src/iter/CCKTree
src/iter/CCKList
src/iter/CCLazy_list
src/data/CCMultiMap
src/data/CCMultiSet
src/data/CCTrie
src/data/CCFlatHashtbl
src/data/CCCache
src/data/CCPersistentHashtbl
src/data/CCDeque
src/data/CCFQueue
src/data/CCBV
src/data/CCMixtbl
src/data/CCMixmap
src/data/CCRingBuffer
src/data/CCIntMap
src/data/CCPersistentArray
src/data/CCMixset
src/data/CCGraph
src/data/CCHashSet
src/data/CCBitField
src/data/CCHashTrie
src/data/CCWBTree
src/data/CCRAL
src/data/CCSimple_queue
src/data/CCImmutArray
src/data/CCHet
src/data/CCZipper
src/threads/CCPool
src/threads/CCLock
src/threads/CCSemaphore
src/threads/CCThread
src/threads/CCBlockingQueue
src/threads/CCTimer
src/unix/CCUnix
src/sexp/CCSexp
src/sexp/CCSexp_lex
# OASIS_STOP

View file

@ -0,0 +1,7 @@
# OASIS_START
# DO NOT EDIT (digest: c39cb4de2de5f975c95c1e05f9661ea6)
advanced/CCLinq
advanced/CCBatch
advanced/CCCat
advanced/CCMonadIO
# OASIS_STOP

6
containers_lwt.odocl Normal file
View file

@ -0,0 +1,6 @@
# OASIS_START
# DO NOT EDIT (digest: e7bd30038718864173f30ddcb755f758)
lwt/Behavior
lwt/Lwt_automaton
lwt/Lwt_actor
# OASIS_STOP

34
containers_misc.odocl Normal file
View file

@ -0,0 +1,34 @@
# OASIS_START
# DO NOT EDIT (digest: df85a5182175d1029216007c66a27aa4)
misc/FHashtbl
misc/FlatHashtbl
misc/Hashset
misc/Heap
misc/LazyGraph
misc/PersistentGraph
misc/PHashtbl
misc/SkipList
misc/SplayTree
misc/SplayMap
misc/Univ
misc/Bij
misc/PiCalculus
misc/RAL
misc/UnionFind
misc/SmallSet
misc/AbsSet
misc/CSM
misc/TTree
misc/PrintBox
misc/HGraph
misc/Automaton
misc/Conv
misc/Bidir
misc/Iteratee
misc/BTree
misc/Ty
misc/Cause
misc/AVL
misc/ParseReact
misc/Mixtbl
# OASIS_STOP

5
containers_string.odocl Normal file
View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: fae37ce560d3fa23ae92d95d4ecca210)
string/KMP
string/Levenshtein
# OASIS_STOP

87
core/META Normal file
View file

@ -0,0 +1,87 @@
# OASIS_START
# DO NOT EDIT (digest: 29eba35d8937ec2340c27a97da9180a6)
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "bytes"
archive(byte) = "containers.cma"
archive(byte, plugin) = "containers.cma"
archive(native) = "containers.cmxa"
archive(native, plugin) = "containers.cmxs"
exists_if = "containers.cma"
package "thread" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "containers threads"
archive(byte) = "containers_thread.cma"
archive(byte, plugin) = "containers_thread.cma"
archive(native) = "containers_thread.cmxa"
archive(native, plugin) = "containers_thread.cmxs"
exists_if = "containers_thread.cma"
)
package "string" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
archive(byte) = "containers_string.cma"
archive(byte, plugin) = "containers_string.cma"
archive(native) = "containers_string.cmxa"
archive(native, plugin) = "containers_string.cmxs"
exists_if = "containers_string.cma"
)
package "pervasives" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "containers"
archive(byte) = "containers_pervasives.cma"
archive(byte, plugin) = "containers_pervasives.cma"
archive(native) = "containers_pervasives.cmxa"
archive(native, plugin) = "containers_pervasives.cmxs"
exists_if = "containers_pervasives.cma"
)
package "misc" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "unix containers"
archive(byte) = "containers_misc.cma"
archive(byte, plugin) = "containers_misc.cma"
archive(native) = "containers_misc.cmxa"
archive(native, plugin) = "containers_misc.cmxs"
exists_if = "containers_misc.cma"
)
package "lwt" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "containers lwt lwt.unix containers.misc"
archive(byte) = "containers_lwt.cma"
archive(byte, plugin) = "containers_lwt.cma"
archive(native) = "containers_lwt.cmxa"
archive(native, plugin) = "containers_lwt.cmxs"
exists_if = "containers_lwt.cma"
)
package "cgi" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "containers CamlGI"
archive(byte) = "containers_cgi.cma"
archive(byte, plugin) = "containers_cgi.cma"
archive(native) = "containers_cgi.cmxa"
archive(native, plugin) = "containers_cgi.cmxs"
exists_if = "containers_cgi.cma"
)
package "advanced" (
version = "0.6.1"
description = "A modular standard library focused on data structures."
requires = "containers"
archive(byte) = "containers_advanced.cma"
archive(byte, plugin) = "containers_advanced.cma"
archive(native) = "containers_advanced.cmxa"
archive(native, plugin) = "containers_advanced.cmxs"
exists_if = "containers_advanced.cma"
)
# OASIS_STOP

37
core/containers.mldylib Normal file
View file

@ -0,0 +1,37 @@
# OASIS_START
# DO NOT EDIT (digest: 8d84707fdc7358bdadca9b7202118243)
CCVector
CCDeque
CCGen
Gen_intf
CCSequence
CCFQueue
CCMultiMap
CCMultiSet
CCBV
CCPrint
CCPersistentHashtbl
CCError
CCHeap
CCList
CCOpt
CCPair
CCFun
CCHash
CCKList
CCInt
CCBool
CCFloat
CCArray
CCOrd
CCIO
CCRandom
CCKTree
CCTrie
CCString
CCHashtbl
CCFlatHashtbl
CCSexp
CCMap
CCCache
# OASIS_STOP

37
core/containers.mllib Normal file
View file

@ -0,0 +1,37 @@
# OASIS_START
# DO NOT EDIT (digest: 8d84707fdc7358bdadca9b7202118243)
CCVector
CCDeque
CCGen
Gen_intf
CCSequence
CCFQueue
CCMultiMap
CCMultiSet
CCBV
CCPrint
CCPersistentHashtbl
CCError
CCHeap
CCList
CCOpt
CCPair
CCFun
CCHash
CCKList
CCInt
CCBool
CCFloat
CCArray
CCOrd
CCIO
CCRandom
CCKTree
CCTrie
CCString
CCHashtbl
CCFlatHashtbl
CCSexp
CCMap
CCCache
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: bc144ef7b5b54947fab9662a822f9179)
Containers_lwt
# OASIS_STOP

4
lwt/containers_lwt.mllib Normal file
View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: bc144ef7b5b54947fab9662a822f9179)
Containers_lwt
# OASIS_STOP

View file

@ -0,0 +1,6 @@
# OASIS_START
# DO NOT EDIT (digest: 0522ffe492b9796ab336d55b925afe68)
Behavior
Lwt_automaton
Lwt_actor
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 2df0608accd158542ebcb00720cfe599)
Containers_misc
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 2df0608accd158542ebcb00720cfe599)
Containers_misc
# OASIS_STOP

View file

@ -0,0 +1,34 @@
# OASIS_START
# DO NOT EDIT (digest: 5f2c8615af923cd3ff229b6d10c55bc8)
FHashtbl
FlatHashtbl
Hashset
Heap
LazyGraph
PersistentGraph
PHashtbl
SkipList
SplayTree
SplayMap
Univ
Bij
PiCalculus
RAL
UnionFind
SmallSet
AbsSet
CSM
TTree
PrintBox
HGraph
Automaton
Conv
Bidir
Iteratee
BTree
Ty
Cause
AVL
ParseReact
Mixtbl
# OASIS_STOP

View file

@ -1,19 +1,12 @@
(* OASIS_START *) (* OASIS_START *)
(* DO NOT EDIT (digest: b119194f5742ac2f3cdceac9a223dda7) *) (* DO NOT EDIT (digest: 9ebeddeee0d56b1f8c98544fabcbbd9b) *)
module OASISGettext = struct module OASISGettext = struct
(* # 22 "src/oasis/OASISGettext.ml" *) (* # 22 "src/oasis/OASISGettext.ml" *)
let ns_ str = let ns_ str = str
str let s_ str = str
let f_ (str: ('a, 'b, 'c, 'd) format4) = str
let s_ str =
str
let f_ (str: ('a, 'b, 'c, 'd) format4) =
str
let fn_ fmt1 fmt2 n = let fn_ fmt1 fmt2 n =
@ -23,8 +16,325 @@ module OASISGettext = struct
fmt2^^"" fmt2^^""
let init = let init = []
end
module OASISString = struct
(* # 22 "src/oasis/OASISString.ml" *)
(** Various string utilities.
Mostly inspired by extlib and batteries ExtString and BatString libraries.
@author Sylvain Le Gall
*)
let nsplitf str f =
if str = "" then
[] []
else
let buf = Buffer.create 13 in
let lst = ref [] in
let push () =
lst := Buffer.contents buf :: !lst;
Buffer.clear buf
in
let str_len = String.length str in
for i = 0 to str_len - 1 do
if f str.[i] then
push ()
else
Buffer.add_char buf str.[i]
done;
push ();
List.rev !lst
(** [nsplit c s] Split the string [s] at char [c]. It doesn't include the
separator.
*)
let nsplit str c =
nsplitf str ((=) c)
let find ~what ?(offset=0) str =
let what_idx = ref 0 in
let str_idx = ref offset in
while !str_idx < String.length str &&
!what_idx < String.length what do
if str.[!str_idx] = what.[!what_idx] then
incr what_idx
else
what_idx := 0;
incr str_idx
done;
if !what_idx <> String.length what then
raise Not_found
else
!str_idx - !what_idx
let sub_start str len =
let str_len = String.length str in
if len >= str_len then
""
else
String.sub str len (str_len - len)
let sub_end ?(offset=0) str len =
let str_len = String.length str in
if len >= str_len then
""
else
String.sub str 0 (str_len - len)
let starts_with ~what ?(offset=0) str =
let what_idx = ref 0 in
let str_idx = ref offset in
let ok = ref true in
while !ok &&
!str_idx < String.length str &&
!what_idx < String.length what do
if str.[!str_idx] = what.[!what_idx] then
incr what_idx
else
ok := false;
incr str_idx
done;
!what_idx = String.length what
let strip_starts_with ~what str =
if starts_with ~what str then
sub_start str (String.length what)
else
raise Not_found
let ends_with ~what ?(offset=0) str =
let what_idx = ref ((String.length what) - 1) in
let str_idx = ref ((String.length str) - 1) in
let ok = ref true in
while !ok &&
offset <= !str_idx &&
0 <= !what_idx do
if str.[!str_idx] = what.[!what_idx] then
decr what_idx
else
ok := false;
decr str_idx
done;
!what_idx = -1
let strip_ends_with ~what str =
if ends_with ~what str then
sub_end str (String.length what)
else
raise Not_found
let replace_chars f s =
let buf = Buffer.create (String.length s) in
String.iter (fun c -> Buffer.add_char buf (f c)) s;
Buffer.contents buf
let lowercase_ascii =
replace_chars
(fun c ->
if (c >= 'A' && c <= 'Z') then
Char.chr (Char.code c + 32)
else
c)
let uncapitalize_ascii s =
if s <> "" then
(lowercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
else
s
let uppercase_ascii =
replace_chars
(fun c ->
if (c >= 'a' && c <= 'z') then
Char.chr (Char.code c - 32)
else
c)
let capitalize_ascii s =
if s <> "" then
(uppercase_ascii (String.sub s 0 1)) ^ (String.sub s 1 ((String.length s) - 1))
else
s
end
module OASISUtils = struct
(* # 22 "src/oasis/OASISUtils.ml" *)
open OASISGettext
module MapExt =
struct
module type S =
sig
include Map.S
val add_list: 'a t -> (key * 'a) list -> 'a t
val of_list: (key * 'a) list -> 'a t
val to_list: 'a t -> (key * 'a) list
end
module Make (Ord: Map.OrderedType) =
struct
include Map.Make(Ord)
let rec add_list t =
function
| (k, v) :: tl -> add_list (add k v t) tl
| [] -> t
let of_list lst = add_list empty lst
let to_list t = fold (fun k v acc -> (k, v) :: acc) t []
end
end
module MapString = MapExt.Make(String)
module SetExt =
struct
module type S =
sig
include Set.S
val add_list: t -> elt list -> t
val of_list: elt list -> t
val to_list: t -> elt list
end
module Make (Ord: Set.OrderedType) =
struct
include Set.Make(Ord)
let rec add_list t =
function
| e :: tl -> add_list (add e t) tl
| [] -> t
let of_list lst = add_list empty lst
let to_list = elements
end
end
module SetString = SetExt.Make(String)
let compare_csl s1 s2 =
String.compare (OASISString.lowercase_ascii s1) (OASISString.lowercase_ascii s2)
module HashStringCsl =
Hashtbl.Make
(struct
type t = string
let equal s1 s2 = (compare_csl s1 s2) = 0
let hash s = Hashtbl.hash (OASISString.lowercase_ascii s)
end)
module SetStringCsl =
SetExt.Make
(struct
type t = string
let compare = compare_csl
end)
let varname_of_string ?(hyphen='_') s =
if String.length s = 0 then
begin
invalid_arg "varname_of_string"
end
else
begin
let buf =
OASISString.replace_chars
(fun c ->
if ('a' <= c && c <= 'z')
||
('A' <= c && c <= 'Z')
||
('0' <= c && c <= '9') then
c
else
hyphen)
s;
in
let buf =
(* Start with a _ if digit *)
if '0' <= s.[0] && s.[0] <= '9' then
"_"^buf
else
buf
in
OASISString.lowercase_ascii buf
end
let varname_concat ?(hyphen='_') p s =
let what = String.make 1 hyphen in
let p =
try
OASISString.strip_ends_with ~what p
with Not_found ->
p
in
let s =
try
OASISString.strip_starts_with ~what s
with Not_found ->
s
in
p^what^s
let is_varname str =
str = varname_of_string str
let failwithf fmt = Printf.ksprintf failwith fmt
let rec file_location ?pos1 ?pos2 ?lexbuf () =
match pos1, pos2, lexbuf with
| Some p, None, _ | None, Some p, _ ->
file_location ~pos1:p ~pos2:p ?lexbuf ()
| Some p1, Some p2, _ ->
let open Lexing in
let fn, lineno = p1.pos_fname, p1.pos_lnum in
let c1 = p1.pos_cnum - p1.pos_bol in
let c2 = c1 + (p2.pos_cnum - p1.pos_cnum) in
Printf.sprintf (f_ "file %S, line %d, characters %d-%d") fn lineno c1 c2
| _, _, Some lexbuf ->
file_location
~pos1:(Lexing.lexeme_start_p lexbuf)
~pos2:(Lexing.lexeme_end_p lexbuf)
()
| None, None, None ->
s_ "<position undefined>"
let failwithpf ?pos1 ?pos2 ?lexbuf fmt =
let loc = file_location ?pos1 ?pos2 ?lexbuf () in
Printf.ksprintf (fun s -> failwith (Printf.sprintf "%s: %s" loc s)) fmt
end end
@ -33,15 +343,11 @@ module OASISExpr = struct
(* # 22 "src/oasis/OASISExpr.ml" *) (* # 22 "src/oasis/OASISExpr.ml" *)
open OASISGettext open OASISGettext
open OASISUtils
type test = string type test = string
type flag = string type flag = string
@ -54,7 +360,6 @@ module OASISExpr = struct
| ETest of test * string | ETest of test * string
type 'a choices = (t * 'a) list type 'a choices = (t * 'a) list
@ -129,7 +434,7 @@ module OASISExpr = struct
end end
# 132 "myocamlbuild.ml" # 437 "myocamlbuild.ml"
module BaseEnvLight = struct module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *) (* # 22 "src/base/BaseEnvLight.ml" *)
@ -140,24 +445,12 @@ module BaseEnvLight = struct
type t = string MapString.t type t = string MapString.t
let default_filename = let default_filename = Filename.concat (Sys.getcwd ()) "setup.data"
Filename.concat
(Sys.getcwd ())
"setup.data"
let load ?(allow_empty=false) ?(filename=default_filename) () = let load ?(allow_empty=false) ?(filename=default_filename) ?stream () =
if Sys.file_exists filename then let line = ref 1 in
begin let lexer st =
let chn =
open_in_bin filename
in
let st =
Stream.of_channel chn
in
let line =
ref 1
in
let st_line = let st_line =
Stream.from Stream.from
(fun _ -> (fun _ ->
@ -167,47 +460,40 @@ module BaseEnvLight = struct
| c -> Some c | c -> Some c
with Stream.Failure -> None) with Stream.Failure -> None)
in in
let lexer =
Genlex.make_lexer ["="] st_line Genlex.make_lexer ["="] st_line
in in
let rec read_file mp = let rec read_file lxr mp =
match Stream.npeek 3 lexer with match Stream.npeek 3 lxr with
| [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] -> | [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
Stream.junk lexer; Stream.junk lxr; Stream.junk lxr; Stream.junk lxr;
Stream.junk lexer; read_file lxr (MapString.add nm value mp)
Stream.junk lexer; | [] -> mp
read_file (MapString.add nm value mp)
| [] ->
mp
| _ -> | _ ->
failwith failwith
(Printf.sprintf (Printf.sprintf "Malformed data file '%s' line %d" filename !line)
"Malformed data file '%s' line %d"
filename !line)
in in
let mp = match stream with
read_file MapString.empty | Some st -> read_file (lexer st) MapString.empty
in | None ->
close_in chn; if Sys.file_exists filename then begin
mp let chn = open_in_bin filename in
end let st = Stream.of_channel chn in
else if allow_empty then try
begin let mp = read_file (lexer st) MapString.empty in
close_in chn; mp
with e ->
close_in chn; raise e
end else if allow_empty then begin
MapString.empty MapString.empty
end end else begin
else
begin
failwith failwith
(Printf.sprintf (Printf.sprintf
"Unable to load environment, the file '%s' doesn't exist." "Unable to load environment, the file '%s' doesn't exist."
filename) filename)
end end
let rec var_expand str env = let rec var_expand str env =
let buff = let buff = Buffer.create ((String.length str) * 2) in
Buffer.create ((String.length str) * 2)
in
Buffer.add_substitute Buffer.add_substitute
buff buff
(fun var -> (fun var ->
@ -223,49 +509,39 @@ module BaseEnvLight = struct
Buffer.contents buff Buffer.contents buff
let var_get name env = let var_get name env = var_expand (MapString.find name env) env
var_expand (MapString.find name env) env let var_choose lst env = OASISExpr.choose (fun nm -> var_get nm env) lst
let var_choose lst env =
OASISExpr.choose
(fun nm -> var_get nm env)
lst
end end
# 237 "myocamlbuild.ml" # 517 "myocamlbuild.ml"
module MyOCamlbuildFindlib = struct module MyOCamlbuildFindlib = struct
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *) (* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
(** OCamlbuild extension, copied from (** OCamlbuild extension, copied from
* http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild * https://ocaml.org/learn/tutorials/ocamlbuild/Using_ocamlfind_with_ocamlbuild.html
* by N. Pouillard and others * by N. Pouillard and others
* *
* Updated on 2009/02/28 * Updated on 2016-06-02
* *
* Modified by Sylvain Le Gall * Modified by Sylvain Le Gall
*) *)
open Ocamlbuild_plugin open Ocamlbuild_plugin
type conf =
{ no_automatic_syntax: bool;
}
(* these functions are not really officially exported *) type conf = {no_automatic_syntax: bool}
let run_and_read =
Ocamlbuild_pack.My_unix.run_and_read
let blank_sep_strings = let run_and_read = Ocamlbuild_pack.My_unix.run_and_read
Ocamlbuild_pack.Lexers.blank_sep_strings
let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
let exec_from_conf exec = let exec_from_conf exec =
let exec = let exec =
let env_filename = Pathname.basename BaseEnvLight.default_filename in let env = BaseEnvLight.load ~allow_empty:true () in
let env = BaseEnvLight.load ~filename:env_filename ~allow_empty:true () in
try try
BaseEnvLight.var_get exec env BaseEnvLight.var_get exec env
with Not_found -> with Not_found ->
@ -287,6 +563,7 @@ module MyOCamlbuildFindlib = struct
in in
fix_win32 exec fix_win32 exec
let split s ch = let split s ch =
let buf = Buffer.create 13 in let buf = Buffer.create 13 in
let x = ref [] in let x = ref [] in
@ -356,11 +633,13 @@ module MyOCamlbuildFindlib = struct
| After_rules -> | After_rules ->
(* Avoid warnings for unused tag *)
flag ["tests"] N;
(* When one link an OCaml library/binary/package, one should use (* When one link an OCaml library/binary/package, one should use
* -linkpkg *) * -linkpkg *)
flag ["ocaml"; "link"; "program"] & A"-linkpkg"; flag ["ocaml"; "link"; "program"] & A"-linkpkg";
if not (conf.no_automatic_syntax) then begin
(* For each ocamlfind package one inject the -package option when (* For each ocamlfind package one inject the -package option when
* compiling, computing dependencies, generating documentation and * compiling, computing dependencies, generating documentation and
* linking. *) * linking. *)
@ -373,8 +652,9 @@ module MyOCamlbuildFindlib = struct
(* Heuristic to identify syntax extensions: whether they end in (* Heuristic to identify syntax extensions: whether they end in
".syntax"; some might not. ".syntax"; some might not.
*) *)
if Filename.check_suffix pkg "syntax" || if not (conf.no_automatic_syntax) &&
List.mem pkg well_known_syntax then (Filename.check_suffix pkg "syntax" ||
List.mem pkg well_known_syntax) then
(syn_args @ base_args, syn_args) (syn_args @ base_args, syn_args)
else else
(base_args, []) (base_args, [])
@ -392,7 +672,6 @@ module MyOCamlbuildFindlib = struct
flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs; flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs;
end end
(find_packages ()); (find_packages ());
end;
(* Like -package but for extensions syntax. Morover -syntax is useless (* Like -package but for extensions syntax. Morover -syntax is useless
* when linking. *) * when linking. *)
@ -416,10 +695,12 @@ module MyOCamlbuildFindlib = struct
flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]); flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]); flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"]); flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"]);
flag ["c"; "pkg_threads"; "compile"] (S[A "-thread"]);
flag ["ocaml"; "package(threads)"; "compile"] (S[A "-thread"]); flag ["ocaml"; "package(threads)"; "compile"] (S[A "-thread"]);
flag ["ocaml"; "package(threads)"; "doc"] (S[A "-I"; A "+threads"]); flag ["ocaml"; "package(threads)"; "doc"] (S[A "-I"; A "+threads"]);
flag ["ocaml"; "package(threads)"; "link"] (S[A "-thread"]); flag ["ocaml"; "package(threads)"; "link"] (S[A "-thread"]);
flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]); flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]);
flag ["c"; "package(threads)"; "compile"] (S[A "-thread"]);
| _ -> | _ ->
() ()
@ -434,9 +715,6 @@ module MyOCamlbuildBase = struct
*) *)
open Ocamlbuild_plugin open Ocamlbuild_plugin
module OC = Ocamlbuild_pack.Ocaml_compiler module OC = Ocamlbuild_pack.Ocaml_compiler
@ -447,9 +725,6 @@ module MyOCamlbuildBase = struct
type tag = string type tag = string
(* # 62 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
type t = type t =
{ {
lib_ocaml: (name * dir list * string list) list; lib_ocaml: (name * dir list * string list) list;
@ -462,9 +737,10 @@ module MyOCamlbuildBase = struct
} }
let env_filename = (* # 110 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
Pathname.basename
BaseEnvLight.default_filename
let env_filename = Pathname.basename BaseEnvLight.default_filename
let dispatch_combine lst = let dispatch_combine lst =
@ -483,12 +759,7 @@ module MyOCamlbuildBase = struct
let dispatch t e = let dispatch t e =
let env = let env = BaseEnvLight.load ~allow_empty:true () in
BaseEnvLight.load
~filename:env_filename
~allow_empty:true
()
in
match e with match e with
| Before_options -> | Before_options ->
let no_trailing_dot s = let no_trailing_dot s =
@ -516,7 +787,7 @@ module MyOCamlbuildBase = struct
| nm, [], intf_modules -> | nm, [], intf_modules ->
ocaml_lib nm; ocaml_lib nm;
let cmis = let cmis =
List.map (fun m -> (String.uncapitalize m) ^ ".cmi") List.map (fun m -> (OASISString.uncapitalize_ascii m) ^ ".cmi")
intf_modules in intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^nm^".cma"] cmis dep ["ocaml"; "link"; "library"; "file:"^nm^".cma"] cmis
| nm, dir :: tl, intf_modules -> | nm, dir :: tl, intf_modules ->
@ -529,7 +800,7 @@ module MyOCamlbuildBase = struct
["compile"; "infer_interface"; "doc"]) ["compile"; "infer_interface"; "doc"])
tl; tl;
let cmis = let cmis =
List.map (fun m -> dir^"/"^(String.uncapitalize m)^".cmi") List.map (fun m -> dir^"/"^(OASISString.uncapitalize_ascii m)^".cmi")
intf_modules in intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^dir^"/"^nm^".cma"] dep ["ocaml"; "link"; "library"; "file:"^dir^"/"^nm^".cma"]
cmis) cmis)
@ -552,6 +823,7 @@ module MyOCamlbuildBase = struct
flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib] flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib]
(S[A"-cclib"; A("-l"^(nm_libstubs lib))]); (S[A"-cclib"; A("-l"^(nm_libstubs lib))]);
if bool_of_string (BaseEnvLight.var_get "native_dynlink" env) then
flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib] flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
(S[A"-dllib"; A("dll"^(nm_libstubs lib))]); (S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
@ -603,21 +875,17 @@ module MyOCamlbuildBase = struct
end end
# 606 "myocamlbuild.ml" # 878 "myocamlbuild.ml"
open Ocamlbuild_plugin;; open Ocamlbuild_plugin;;
let package_default = let package_default =
{ {
MyOCamlbuildBase.lib_ocaml = MyOCamlbuildBase.lib_ocaml =
[ [
("containers", ["src/core"], []); ("containers", ["src/core"], []);
("containers_io", ["src/io"], []);
("containers_unix", ["src/unix"], []); ("containers_unix", ["src/unix"], []);
("containers_sexp", ["src/sexp"], []); ("containers_sexp", ["src/sexp"], []);
("containers_data", ["src/data"], []); ("containers_data", ["src/data"], []);
("containers_iter", ["src/iter"], []); ("containers_iter", ["src/iter"], []);
("containers_string", ["src/string"], []);
("containers_advanced", ["src/advanced"], []);
("containers_bigarray", ["src/bigarray"], []);
("containers_thread", ["src/threads"], []); ("containers_thread", ["src/threads"], []);
("containers_top", ["src/top"], []) ("containers_top", ["src/top"], [])
]; ];
@ -626,41 +894,19 @@ let package_default =
includes = includes =
[ [
("src/top", ("src/top",
[ ["src/core"; "src/data"; "src/iter"; "src/sexp"; "src/unix"]);
"src/bigarray";
"src/core";
"src/data";
"src/iter";
"src/sexp";
"src/string";
"src/unix"
]);
("src/threads", ["src/core"]); ("src/threads", ["src/core"]);
("src/bigarray", ["src/core"]);
("src/advanced", ["src/core"]);
("qtest", ("qtest",
[ [
"src/advanced";
"src/bigarray";
"src/core"; "src/core";
"src/data"; "src/data";
"src/io";
"src/iter"; "src/iter";
"src/sexp"; "src/sexp";
"src/string";
"src/threads"; "src/threads";
"src/unix" "src/unix"
]); ]);
("examples", ["src/sexp"]); ("examples", ["src/sexp"]);
("benchs", ("benchs", ["src/core"; "src/data"; "src/iter"; "src/threads"])
[
"src/advanced";
"src/core";
"src/data";
"src/iter";
"src/string";
"src/threads"
])
] ]
} }
;; ;;
@ -669,12 +915,11 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;; let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
# 673 "myocamlbuild.ml" # 919 "myocamlbuild.ml"
(* OASIS_STOP *) (* OASIS_STOP *)
let doc_intro = "doc/intro.txt" ;;
let doc_intro = "doc/intro.txt" Ocamlbuild_plugin.dispatch dispatch_default;;
open Ocamlbuild_plugin;;
dispatch dispatch
(MyOCamlbuildBase.dispatch_combine [ (MyOCamlbuildBase.dispatch_combine [
@ -690,3 +935,4 @@ dispatch
end; end;
dispatch_default dispatch_default
]) ])

9
opam
View file

@ -1,6 +1,6 @@
opam-version: "1.2" opam-version: "1.2"
name: "containers" name: "containers"
version: "dev" version: "1.5"
author: "Simon Cruanes" author: "Simon Cruanes"
maintainer: "simon.cruanes@inria.fr" maintainer: "simon.cruanes@inria.fr"
build: [ build: [
@ -23,7 +23,6 @@ remove: [
] ]
depends: [ depends: [
"ocamlfind" {build} "ocamlfind" {build}
"oasis" {build}
"base-bytes" "base-bytes"
"result" "result"
"ocamlbuild" {build} "ocamlbuild" {build}
@ -42,3 +41,9 @@ doc: "http://cedeela.fr/~simon/software/containers/"
available: [ocaml-version >= "4.01.0"] available: [ocaml-version >= "4.01.0"]
dev-repo: "https://github.com/c-cube/ocaml-containers.git" dev-repo: "https://github.com/c-cube/ocaml-containers.git"
bug-reports: "https://github.com/c-cube/ocaml-containers/issues/" bug-reports: "https://github.com/c-cube/ocaml-containers/issues/"
post-messages: [
"Small release with many bugfixes and a few new functions.
A summary hub.com/c-cube/ocaml-containers/issues/84
changelog: https://github.com/c-cube/ocaml-containers/blob/1.3/CHANGELOG.adoc"
]

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ea286cccf88f4c81c7b4627216807d4e)
CCPervasives
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ea286cccf88f4c81c7b4627216807d4e)
CCPervasives
# OASIS_STOP

8929
setup.ml

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
# OASIS_START
# DO NOT EDIT (digest: b0f5a3a0b7428f165d73d9e621998219)
Containers_advanced
CCLinq
CCBatch
CCCat
CCMonadIO
# OASIS_STOP

View file

@ -0,0 +1,8 @@
# OASIS_START
# DO NOT EDIT (digest: b0f5a3a0b7428f165d73d9e621998219)
Containers_advanced
CCLinq
CCBatch
CCCat
CCMonadIO
# OASIS_STOP

View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 4901abd33a2dfcf115ddeffb93e1186e)
CCBigstring
CCArray1
# OASIS_STOP

View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 4901abd33a2dfcf115ddeffb93e1186e)
CCBigstring
CCArray1
# OASIS_STOP

77
src/core/META Normal file
View file

@ -0,0 +1,77 @@
# OASIS_START
# DO NOT EDIT (digest: fb895e43d7bf196a6016effa48011802)
version = "1.5"
description = "A modular standard library focused on data structures."
requires = "bytes result"
archive(byte) = "containers.cma"
archive(byte, plugin) = "containers.cma"
archive(native) = "containers.cmxa"
archive(native, plugin) = "containers.cmxs"
exists_if = "containers.cma"
package "unix" (
version = "1.5"
description = "A modular standard library focused on data structures."
requires = "bytes result unix"
archive(byte) = "containers_unix.cma"
archive(byte, plugin) = "containers_unix.cma"
archive(native) = "containers_unix.cmxa"
archive(native, plugin) = "containers_unix.cmxs"
exists_if = "containers_unix.cma"
)
package "top" (
version = "1.5"
description = "A modular standard library focused on data structures."
requires =
"compiler-libs.common containers containers.data containers.unix containers.sexp containers.iter"
archive(byte) = "containers_top.cma"
archive(byte, plugin) = "containers_top.cma"
archive(native) = "containers_top.cmxa"
archive(native, plugin) = "containers_top.cmxs"
exists_if = "containers_top.cma"
)
package "thread" (
version = "1.5"
description = "A modular standard library focused on data structures."
requires = "containers threads"
archive(byte) = "containers_thread.cma"
archive(byte, plugin) = "containers_thread.cma"
archive(native) = "containers_thread.cmxa"
archive(native, plugin) = "containers_thread.cmxs"
exists_if = "containers_thread.cma"
)
package "sexp" (
version = "1.5"
description = "A modular standard library focused on data structures."
requires = "bytes result"
archive(byte) = "containers_sexp.cma"
archive(byte, plugin) = "containers_sexp.cma"
archive(native) = "containers_sexp.cmxa"
archive(native, plugin) = "containers_sexp.cmxs"
exists_if = "containers_sexp.cma"
)
package "iter" (
version = "1.5"
description = "A modular standard library focused on data structures."
archive(byte) = "containers_iter.cma"
archive(byte, plugin) = "containers_iter.cma"
archive(native) = "containers_iter.cmxa"
archive(native, plugin) = "containers_iter.cmxs"
exists_if = "containers_iter.cma"
)
package "data" (
version = "1.5"
description = "A modular standard library focused on data structures."
requires = "bytes"
archive(byte) = "containers_data.cma"
archive(byte, plugin) = "containers_data.cma"
archive(native) = "containers_data.cmxa"
archive(native, plugin) = "containers_data.cmxs"
exists_if = "containers_data.cma"
)
# OASIS_STOP

View file

@ -0,0 +1,32 @@
# OASIS_START
# DO NOT EDIT (digest: c777330f5cf164f02058ae02e3afa987)
CCVector
CCHeap
CCList
CCOpt
CCPair
CCFun
CCHash
CCInt
CCBool
CCFloat
CCArray
CCRef
CCSet
CCOrd
CCRandom
CCString
CCHashtbl
CCMap
CCFormat
CCIO
CCInt64
CCChar
CCResult
CCParse
CCArray_slice
CCListLabels
CCArrayLabels
CCEqual
Containers
# OASIS_STOP

32
src/core/containers.mllib Normal file
View file

@ -0,0 +1,32 @@
# OASIS_START
# DO NOT EDIT (digest: c777330f5cf164f02058ae02e3afa987)
CCVector
CCHeap
CCList
CCOpt
CCPair
CCFun
CCHash
CCInt
CCBool
CCFloat
CCArray
CCRef
CCSet
CCOrd
CCRandom
CCString
CCHashtbl
CCMap
CCFormat
CCIO
CCInt64
CCChar
CCResult
CCParse
CCArray_slice
CCListLabels
CCArrayLabels
CCEqual
Containers
# OASIS_STOP

View file

@ -0,0 +1,28 @@
# OASIS_START
# DO NOT EDIT (digest: d1bab4c4f6793f682baaf28f0865fa42)
CCMultiMap
CCMultiSet
CCTrie
CCFlatHashtbl
CCCache
CCPersistentHashtbl
CCDeque
CCFQueue
CCBV
CCMixtbl
CCMixmap
CCRingBuffer
CCIntMap
CCPersistentArray
CCMixset
CCGraph
CCHashSet
CCBitField
CCHashTrie
CCWBTree
CCRAL
CCSimple_queue
CCImmutArray
CCHet
CCZipper
# OASIS_STOP

View file

@ -0,0 +1,28 @@
# OASIS_START
# DO NOT EDIT (digest: d1bab4c4f6793f682baaf28f0865fa42)
CCMultiMap
CCMultiSet
CCTrie
CCFlatHashtbl
CCCache
CCPersistentHashtbl
CCDeque
CCFQueue
CCBV
CCMixtbl
CCMixmap
CCRingBuffer
CCIntMap
CCPersistentArray
CCMixset
CCGraph
CCHashSet
CCBitField
CCHashTrie
CCWBTree
CCRAL
CCSimple_queue
CCImmutArray
CCHet
CCZipper
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 9573c9c3109b1d53a61739444853a7b2)
Containers_io_is_deprecated
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 9573c9c3109b1d53a61739444853a7b2)
Containers_io_is_deprecated
# OASIS_STOP

View file

@ -0,0 +1,6 @@
# OASIS_START
# DO NOT EDIT (digest: 158a5d6029014525d6b1b1c6dc6c848a)
CCKTree
CCKList
CCLazy_list
# OASIS_STOP

View file

@ -0,0 +1,6 @@
# OASIS_START
# DO NOT EDIT (digest: 158a5d6029014525d6b1b1c6dc6c848a)
CCKTree
CCKList
CCLazy_list
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: bc144ef7b5b54947fab9662a822f9179)
Containers_lwt
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: bc144ef7b5b54947fab9662a822f9179)
Containers_lwt
# OASIS_STOP

View file

@ -0,0 +1,7 @@
# OASIS_START
# DO NOT EDIT (digest: 41ca039f453c9bf865bafe93b638ae8a)
Lwt_automaton
Lwt_actor
Lwt_klist
Lwt_pipe
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 2df0608accd158542ebcb00720cfe599)
Containers_misc
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 2df0608accd158542ebcb00720cfe599)
Containers_misc
# OASIS_STOP

View file

@ -0,0 +1,18 @@
# OASIS_START
# DO NOT EDIT (digest: a0730df368ed19a3b181d80ccf7985b6)
AbsSet
Automaton
Bij
CSM
Hashset
LazyGraph
PHashtbl
PrintBox
RAL
RoseTree
SmallSet
UnionFind
Univ
Puf
Backtrack
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ea286cccf88f4c81c7b4627216807d4e)
CCPervasives
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ea286cccf88f4c81c7b4627216807d4e)
CCPervasives
# OASIS_STOP

View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 4640171b5c1e230fed61988875c62e8d)
CCSexp
CCSexp_lex
# OASIS_STOP

View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 4640171b5c1e230fed61988875c62e8d)
CCSexp
CCSexp_lex
# OASIS_STOP

View file

@ -0,0 +1,8 @@
# OASIS_START
# DO NOT EDIT (digest: b0d9848489c9eaabded92f7c9fec3073)
Containers_string
CCKMP
CCLevenshtein
CCApp_parse
CCParse
# OASIS_STOP

View file

@ -0,0 +1,8 @@
# OASIS_START
# DO NOT EDIT (digest: b0d9848489c9eaabded92f7c9fec3073)
Containers_string
CCKMP
CCLevenshtein
CCApp_parse
CCParse
# OASIS_STOP

View file

@ -0,0 +1,9 @@
# OASIS_START
# DO NOT EDIT (digest: 5cf3cd134d141ea5acafb464c2b3e927)
CCPool
CCLock
CCSemaphore
CCThread
CCBlockingQueue
CCTimer
# OASIS_STOP

View file

@ -0,0 +1,9 @@
# OASIS_START
# DO NOT EDIT (digest: 5cf3cd134d141ea5acafb464c2b3e927)
CCPool
CCLock
CCSemaphore
CCThread
CCBlockingQueue
CCTimer
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 06c9d81e0a532aa96d3f60ef4ed7045d)
Containers_top
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: 06c9d81e0a532aa96d3f60ef4ed7045d)
Containers_top
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: cc54fa6ddd5d32bdf577cb187f4cf07c)
CCUnix
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: cc54fa6ddd5d32bdf577cb187f4cf07c)
CCUnix
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: c89cc456e050edff914368d7fbea4eca)
Containers_string
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: c89cc456e050edff914368d7fbea4eca)
Containers_string
# OASIS_STOP

View file

@ -0,0 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: eed887f169b0c8e02f98f97c676f846c)
KMP
Levenshtein
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ede75f11c3857d71e591f7b889f4d09d)
CCFuture
# OASIS_STOP

View file

@ -0,0 +1,4 @@
# OASIS_START
# DO NOT EDIT (digest: ede75f11c3857d71e591f7b889f4d09d)
CCFuture
# OASIS_STOP