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
# 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)
doc: setup.data $(SETUP) build
doc: setup.data build
$(SETUP) -doc $(DOCFLAGS)
test: setup.data $(SETUP) build
test: setup.data build
$(SETUP) -test $(TESTFLAGS)
all: $(SETUP)
all:
$(SETUP) -all $(ALLFLAGS)
install: setup.data $(SETUP)
install: setup.data
$(SETUP) -install $(INSTALLFLAGS)
uninstall: setup.data $(SETUP)
uninstall: setup.data
$(SETUP) -uninstall $(UNINSTALLFLAGS)
reinstall: setup.data $(SETUP)
reinstall: setup.data
$(SETUP) -reinstall $(REINSTALLFLAGS)
clean: $(SETUP)
clean:
$(SETUP) -clean $(CLEANFLAGS)
distclean: $(SETUP)
distclean:
$(SETUP) -distclean $(DISTCLEANFLAGS)
$(RM) $(SETUP)
setup.data: $(SETUP)
setup.data:
$(SETUP) -configure $(CONFIGUREFLAGS)
configure: $(SETUP)
configure:
$(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
# OASIS_STOP

2
_oasis
View file

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

68
_tags
View file

@ -1,5 +1,5 @@
# OASIS_START
# DO NOT EDIT (digest: 1681c391580688c2463b8457d464cf03)
# DO NOT EDIT (digest: 8cbdae3079e6ebc5257343569c6e2780)
# Ignore VCS directories, you can use the same kind of rule outside
# OASIS_START/STOP if you want to exclude directories that contains
# useless stuff for the build process
@ -18,36 +18,20 @@ true: annot, bin_annot
"src/core/containers.cmxs": use_containers
<src/core/*.ml{,i,y}>: package(bytes)
<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
"src/unix/containers_unix.cmxs": use_containers_unix
<src/unix/*.ml{,i,y}>: package(bytes)
<src/unix/*.ml{,i,y}>: package(result)
<src/unix/*.ml{,i,y}>: package(unix)
# Library containers_sexp
"src/sexp/containers_sexp.cmxs": use_containers_sexp
<src/sexp/*.ml{,i,y}>: package(bytes)
<src/sexp/*.ml{,i,y}>: package(result)
# Library containers_data
"src/data/containers_data.cmxs": use_containers_data
<src/data/*.ml{,i,y}>: package(bytes)
# Library 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
"src/threads/containers_thread.cmxs": use_containers_thread
<src/threads/*.ml{,i,y}>: package(bytes)
@ -56,101 +40,77 @@ true: annot, bin_annot
<src/threads/*.ml{,i,y}>: use_containers
# Library 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(compiler-libs.common)
<src/top/*.ml{,i,y}>: package(result)
<src/top/*.ml{,i,y}>: package(unix)
<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_iter
<src/top/*.ml{,i,y}>: use_containers_sexp
<src/top/*.ml{,i,y}>: use_containers_string
<src/top/*.ml{,i,y}>: use_containers_unix
# Executable run_benchs
<benchs/run_benchs.{native,byte}>: package(benchmark)
<benchs/run_benchs.{native,byte}>: package(bytes)
<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(sequence)
<benchs/run_benchs.{native,byte}>: package(threads)
<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_iter
<benchs/run_benchs.{native,byte}>: use_containers_string
<benchs/run_benchs.{native,byte}>: use_containers_thread
<benchs/*.ml{,i,y}>: package(benchmark)
<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}>: use_containers_advanced
<benchs/*.ml{,i,y}>: use_containers_data
<benchs/*.ml{,i,y}>: use_containers_iter
<benchs/*.ml{,i,y}>: use_containers_string
<benchs/*.ml{,i,y}>: use_containers_thread
# Executable run_bench_hash
<benchs/run_bench_hash.{native,byte}>: package(bytes)
<benchs/run_bench_hash.{native,byte}>: package(result)
<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
<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(gen)
<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(sequence)
<qtest/run_qtest.{native,byte}>: package(threads)
<qtest/run_qtest.{native,byte}>: package(unix)
<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_io
<qtest/run_qtest.{native,byte}>: use_containers_iter
<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_unix
<qtest/*.ml{,i,y}>: package(QTest2Lib)
<qtest/*.ml{,i,y}>: package(bigarray)
<qtest/*.ml{,i,y}>: package(bytes)
<qtest/*.ml{,i,y}>: package(gen)
<qtest/*.ml{,i,y}>: package(oUnit)
<qtest/*.ml{,i,y}>: package(qcheck)
<qtest/*.ml{,i,y}>: package(result)
<qtest/*.ml{,i,y}>: package(sequence)
<qtest/*.ml{,i,y}>: package(threads)
<qtest/*.ml{,i,y}>: package(unix)
<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_io
<qtest/*.ml{,i,y}>: use_containers_iter
<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_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
<examples/id_sexp.{native,byte}>: package(bytes)
<examples/id_sexp.{native,byte}>: package(result)
<examples/id_sexp.{native,byte}>: use_containers_sexp
<examples/*.ml{,i,y}>: package(bytes)
<examples/*.ml{,i,y}>: package(result)
<examples/*.ml{,i,y}>: use_containers_sexp
# OASIS_STOP
<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
# OASIS_START
# DO NOT EDIT (digest: 7577949ceda6f9dbd4983aea8db9275b)
# DO NOT EDIT (digest: dc86c2ad450f91ca10c931b6045d0499)
set -e
FST=true
@ -23,9 +23,5 @@ for i in "$@"; do
esac
done
if [ ! -e setup.exe ] || [ _oasis -nt setup.exe ] || [ setup.ml -nt setup.exe ] || [ configure -nt setup.exe ]; then
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 "$@"
ocaml setup.ml -configure "$@"
# 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 *)
(* DO NOT EDIT (digest: b119194f5742ac2f3cdceac9a223dda7) *)
(* DO NOT EDIT (digest: 9ebeddeee0d56b1f8c98544fabcbbd9b) *)
module OASISGettext = struct
(* # 22 "src/oasis/OASISGettext.ml" *)
let ns_ str =
str
let s_ str =
str
let f_ (str: ('a, 'b, 'c, 'd) format4) =
str
let ns_ str = str
let s_ str = str
let f_ (str: ('a, 'b, 'c, 'd) format4) = str
let fn_ fmt1 fmt2 n =
@ -23,8 +16,325 @@ module OASISGettext = struct
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
@ -33,15 +343,11 @@ module OASISExpr = struct
(* # 22 "src/oasis/OASISExpr.ml" *)
open OASISGettext
open OASISUtils
type test = string
type flag = string
@ -54,7 +360,6 @@ module OASISExpr = struct
| ETest of test * string
type 'a choices = (t * 'a) list
@ -129,7 +434,7 @@ module OASISExpr = struct
end
# 132 "myocamlbuild.ml"
# 437 "myocamlbuild.ml"
module BaseEnvLight = struct
(* # 22 "src/base/BaseEnvLight.ml" *)
@ -140,132 +445,103 @@ module BaseEnvLight = struct
type t = string MapString.t
let default_filename =
Filename.concat
(Sys.getcwd ())
"setup.data"
let default_filename = Filename.concat (Sys.getcwd ()) "setup.data"
let load ?(allow_empty=false) ?(filename=default_filename) () =
if Sys.file_exists filename then
begin
let chn =
open_in_bin filename
in
let st =
Stream.of_channel chn
in
let line =
ref 1
in
let st_line =
Stream.from
(fun _ ->
try
match Stream.next st with
| '\n' -> incr line; Some '\n'
| c -> Some c
with Stream.Failure -> None)
in
let lexer =
Genlex.make_lexer ["="] st_line
in
let rec read_file mp =
match Stream.npeek 3 lexer with
| [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
Stream.junk lexer;
Stream.junk lexer;
Stream.junk lexer;
read_file (MapString.add nm value mp)
| [] ->
mp
| _ ->
failwith
(Printf.sprintf
"Malformed data file '%s' line %d"
filename !line)
in
let mp =
read_file MapString.empty
in
close_in chn;
mp
end
else if allow_empty then
begin
let load ?(allow_empty=false) ?(filename=default_filename) ?stream () =
let line = ref 1 in
let lexer st =
let st_line =
Stream.from
(fun _ ->
try
match Stream.next st with
| '\n' -> incr line; Some '\n'
| c -> Some c
with Stream.Failure -> None)
in
Genlex.make_lexer ["="] st_line
in
let rec read_file lxr mp =
match Stream.npeek 3 lxr with
| [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
Stream.junk lxr; Stream.junk lxr; Stream.junk lxr;
read_file lxr (MapString.add nm value mp)
| [] -> mp
| _ ->
failwith
(Printf.sprintf "Malformed data file '%s' line %d" filename !line)
in
match stream with
| Some st -> read_file (lexer st) MapString.empty
| None ->
if Sys.file_exists filename then begin
let chn = open_in_bin filename in
let st = Stream.of_channel chn in
try
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
end
else
begin
end else begin
failwith
(Printf.sprintf
"Unable to load environment, the file '%s' doesn't exist."
filename)
end
let rec var_expand str env =
let buff =
Buffer.create ((String.length str) * 2)
in
Buffer.add_substitute
buff
(fun var ->
try
var_expand (MapString.find var env) env
with Not_found ->
failwith
(Printf.sprintf
"No variable %s defined when trying to expand %S."
var
str))
str;
Buffer.contents buff
let buff = Buffer.create ((String.length str) * 2) in
Buffer.add_substitute
buff
(fun var ->
try
var_expand (MapString.find var env) env
with Not_found ->
failwith
(Printf.sprintf
"No variable %s defined when trying to expand %S."
var
str))
str;
Buffer.contents buff
let var_get name env =
var_expand (MapString.find name env) env
let var_choose lst env =
OASISExpr.choose
(fun nm -> var_get nm env)
lst
let var_get name env = var_expand (MapString.find name env) env
let var_choose lst env = OASISExpr.choose (fun nm -> var_get nm env) lst
end
# 237 "myocamlbuild.ml"
# 517 "myocamlbuild.ml"
module MyOCamlbuildFindlib = struct
(* # 22 "src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml" *)
(** 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
*
* Updated on 2009/02/28
* Updated on 2016-06-02
*
* Modified by Sylvain Le Gall
*)
*)
open Ocamlbuild_plugin
type conf =
{ no_automatic_syntax: bool;
}
(* these functions are not really officially exported *)
let run_and_read =
Ocamlbuild_pack.My_unix.run_and_read
type conf = {no_automatic_syntax: bool}
let blank_sep_strings =
Ocamlbuild_pack.Lexers.blank_sep_strings
let run_and_read = Ocamlbuild_pack.My_unix.run_and_read
let blank_sep_strings = Ocamlbuild_pack.Lexers.blank_sep_strings
let exec_from_conf exec =
let exec =
let env_filename = Pathname.basename BaseEnvLight.default_filename in
let env = BaseEnvLight.load ~filename:env_filename ~allow_empty:true () in
let env = BaseEnvLight.load ~allow_empty:true () in
try
BaseEnvLight.var_get exec env
with Not_found ->
@ -276,7 +552,7 @@ module MyOCamlbuildFindlib = struct
if Sys.os_type = "Win32" then begin
let buff = Buffer.create (String.length str) in
(* Adapt for windowsi, ocamlbuild + win32 has a hard time to handle '\\'.
*)
*)
String.iter
(fun c -> Buffer.add_char buff (if c = '\\' then '/' else c))
str;
@ -285,7 +561,8 @@ module MyOCamlbuildFindlib = struct
str
end
in
fix_win32 exec
fix_win32 exec
let split s ch =
let buf = Buffer.create 13 in
@ -294,15 +571,15 @@ module MyOCamlbuildFindlib = struct
x := (Buffer.contents buf) :: !x;
Buffer.clear buf
in
String.iter
(fun c ->
if c = ch then
flush ()
else
Buffer.add_char buf c)
s;
flush ();
List.rev !x
String.iter
(fun c ->
if c = ch then
flush ()
else
Buffer.add_char buf c)
s;
flush ();
List.rev !x
let split_nl s = split s '\n'
@ -344,85 +621,89 @@ module MyOCamlbuildFindlib = struct
let dispatch conf =
function
| After_options ->
(* By using Before_options one let command line options have an higher
* priority on the contrary using After_options will guarantee to have
* the higher priority override default commands by ocamlfind ones *)
Options.ocamlc := ocamlfind & A"ocamlc";
Options.ocamlopt := ocamlfind & A"ocamlopt";
Options.ocamldep := ocamlfind & A"ocamldep";
Options.ocamldoc := ocamlfind & A"ocamldoc";
Options.ocamlmktop := ocamlfind & A"ocamlmktop";
Options.ocamlmklib := ocamlfind & A"ocamlmklib"
(* By using Before_options one let command line options have an higher
* priority on the contrary using After_options will guarantee to have
* the higher priority override default commands by ocamlfind ones *)
Options.ocamlc := ocamlfind & A"ocamlc";
Options.ocamlopt := ocamlfind & A"ocamlopt";
Options.ocamldep := ocamlfind & A"ocamldep";
Options.ocamldoc := ocamlfind & A"ocamldoc";
Options.ocamlmktop := ocamlfind & A"ocamlmktop";
Options.ocamlmklib := ocamlfind & A"ocamlmklib"
| After_rules ->
(* When one link an OCaml library/binary/package, one should use
* -linkpkg *)
flag ["ocaml"; "link"; "program"] & A"-linkpkg";
(* Avoid warnings for unused tag *)
flag ["tests"] N;
if not (conf.no_automatic_syntax) then begin
(* For each ocamlfind package one inject the -package option when
* compiling, computing dependencies, generating documentation and
* linking. *)
List.iter
begin fun pkg ->
let base_args = [A"-package"; A pkg] in
(* TODO: consider how to really choose camlp4o or camlp4r. *)
let syn_args = [A"-syntax"; A "camlp4o"] in
let (args, pargs) =
(* Heuristic to identify syntax extensions: whether they end in
".syntax"; some might not.
*)
if Filename.check_suffix pkg "syntax" ||
List.mem pkg well_known_syntax then
(syn_args @ base_args, syn_args)
else
(base_args, [])
in
flag ["ocaml"; "compile"; "pkg_"^pkg] & S args;
flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S args;
flag ["ocaml"; "doc"; "pkg_"^pkg] & S args;
flag ["ocaml"; "link"; "pkg_"^pkg] & S base_args;
flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S args;
(* When one link an OCaml library/binary/package, one should use
* -linkpkg *)
flag ["ocaml"; "link"; "program"] & A"-linkpkg";
(* TODO: Check if this is allowed for OCaml < 3.12.1 *)
flag ["ocaml"; "compile"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "ocamldep"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "doc"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs;
end
(find_packages ());
end;
(* For each ocamlfind package one inject the -package option when
* compiling, computing dependencies, generating documentation and
* linking. *)
List.iter
begin fun pkg ->
let base_args = [A"-package"; A pkg] in
(* TODO: consider how to really choose camlp4o or camlp4r. *)
let syn_args = [A"-syntax"; A "camlp4o"] in
let (args, pargs) =
(* Heuristic to identify syntax extensions: whether they end in
".syntax"; some might not.
*)
if not (conf.no_automatic_syntax) &&
(Filename.check_suffix pkg "syntax" ||
List.mem pkg well_known_syntax) then
(syn_args @ base_args, syn_args)
else
(base_args, [])
in
flag ["ocaml"; "compile"; "pkg_"^pkg] & S args;
flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S args;
flag ["ocaml"; "doc"; "pkg_"^pkg] & S args;
flag ["ocaml"; "link"; "pkg_"^pkg] & S base_args;
flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S args;
(* Like -package but for extensions syntax. Morover -syntax is useless
* when linking. *)
List.iter begin fun syntax ->
(* TODO: Check if this is allowed for OCaml < 3.12.1 *)
flag ["ocaml"; "compile"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "ocamldep"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "doc"; "package("^pkg^")"] & S pargs;
flag ["ocaml"; "infer_interface"; "package("^pkg^")"] & S pargs;
end
(find_packages ());
(* Like -package but for extensions syntax. Morover -syntax is useless
* when linking. *)
List.iter begin fun syntax ->
flag ["ocaml"; "compile"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
flag ["ocaml"; "ocamldep"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
flag ["ocaml"; "doc"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
flag ["ocaml"; "infer_interface"; "syntax_"^syntax] &
S[A"-syntax"; A syntax];
end (find_syntaxes ());
S[A"-syntax"; A syntax];
end (find_syntaxes ());
(* The default "thread" tag is not compatible with ocamlfind.
* Indeed, the default rules add the "threads.cma" or "threads.cmxa"
* options when using this tag. When using the "-linkpkg" option with
* ocamlfind, this module will then be added twice on the command line.
*
* To solve this, one approach is to add the "-thread" option when using
* the "threads" package using the previous plugin.
*)
flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]);
flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
flag ["ocaml"; "pkg_threads"; "infer_interface"] (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)"; "link"] (S[A "-thread"]);
flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]);
(* The default "thread" tag is not compatible with ocamlfind.
* Indeed, the default rules add the "threads.cma" or "threads.cmxa"
* options when using this tag. When using the "-linkpkg" option with
* ocamlfind, this module will then be added twice on the command line.
*
* To solve this, one approach is to add the "-thread" option when using
* the "threads" package using the previous plugin.
*)
flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]);
flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
flag ["ocaml"; "pkg_threads"; "link"] (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)"; "doc"] (S[A "-I"; A "+threads"]);
flag ["ocaml"; "package(threads)"; "link"] (S[A "-thread"]);
flag ["ocaml"; "package(threads)"; "infer_interface"] (S[A "-thread"]);
flag ["c"; "package(threads)"; "compile"] (S[A "-thread"]);
| _ ->
()
()
end
module MyOCamlbuildBase = struct
@ -434,9 +715,6 @@ module MyOCamlbuildBase = struct
*)
open Ocamlbuild_plugin
module OC = Ocamlbuild_pack.Ocaml_compiler
@ -447,9 +725,6 @@ module MyOCamlbuildBase = struct
type tag = string
(* # 62 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
type t =
{
lib_ocaml: (name * dir list * string list) list;
@ -462,9 +737,10 @@ module MyOCamlbuildBase = struct
}
let env_filename =
Pathname.basename
BaseEnvLight.default_filename
(* # 110 "src/plugins/ocamlbuild/MyOCamlbuildBase.ml" *)
let env_filename = Pathname.basename BaseEnvLight.default_filename
let dispatch_combine lst =
@ -483,12 +759,7 @@ module MyOCamlbuildBase = struct
let dispatch t e =
let env =
BaseEnvLight.load
~filename:env_filename
~allow_empty:true
()
in
let env = BaseEnvLight.load ~allow_empty:true () in
match e with
| Before_options ->
let no_trailing_dot s =
@ -516,7 +787,7 @@ module MyOCamlbuildBase = struct
| nm, [], intf_modules ->
ocaml_lib nm;
let cmis =
List.map (fun m -> (String.uncapitalize m) ^ ".cmi")
List.map (fun m -> (OASISString.uncapitalize_ascii m) ^ ".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^nm^".cma"] cmis
| nm, dir :: tl, intf_modules ->
@ -529,7 +800,7 @@ module MyOCamlbuildBase = struct
["compile"; "infer_interface"; "doc"])
tl;
let cmis =
List.map (fun m -> dir^"/"^(String.uncapitalize m)^".cmi")
List.map (fun m -> dir^"/"^(OASISString.uncapitalize_ascii m)^".cmi")
intf_modules in
dep ["ocaml"; "link"; "library"; "file:"^dir^"/"^nm^".cma"]
cmis)
@ -552,18 +823,19 @@ module MyOCamlbuildBase = struct
flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib]
(S[A"-cclib"; A("-l"^(nm_libstubs lib))]);
flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
(S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
if bool_of_string (BaseEnvLight.var_get "native_dynlink" env) then
flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
(S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
(* When ocaml link something that use the C library, then one
need that file to be up to date.
This holds both for programs and for libraries.
*)
dep ["link"; "ocaml"; tag_libstubs lib]
[dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
dep ["link"; "ocaml"; tag_libstubs lib]
[dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
dep ["compile"; "ocaml"; tag_libstubs lib]
[dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
dep ["compile"; "ocaml"; tag_libstubs lib]
[dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
(* TODO: be more specific about what depends on headers *)
(* Depends on .h files *)
@ -603,21 +875,17 @@ module MyOCamlbuildBase = struct
end
# 606 "myocamlbuild.ml"
# 878 "myocamlbuild.ml"
open Ocamlbuild_plugin;;
let package_default =
{
MyOCamlbuildBase.lib_ocaml =
[
("containers", ["src/core"], []);
("containers_io", ["src/io"], []);
("containers_unix", ["src/unix"], []);
("containers_sexp", ["src/sexp"], []);
("containers_data", ["src/data"], []);
("containers_iter", ["src/iter"], []);
("containers_string", ["src/string"], []);
("containers_advanced", ["src/advanced"], []);
("containers_bigarray", ["src/bigarray"], []);
("containers_thread", ["src/threads"], []);
("containers_top", ["src/top"], [])
];
@ -626,41 +894,19 @@ let package_default =
includes =
[
("src/top",
[
"src/bigarray";
"src/core";
"src/data";
"src/iter";
"src/sexp";
"src/string";
"src/unix"
]);
["src/core"; "src/data"; "src/iter"; "src/sexp"; "src/unix"]);
("src/threads", ["src/core"]);
("src/bigarray", ["src/core"]);
("src/advanced", ["src/core"]);
("qtest",
[
"src/advanced";
"src/bigarray";
"src/core";
"src/data";
"src/io";
"src/iter";
"src/sexp";
"src/string";
"src/threads";
"src/unix"
]);
("examples", ["src/sexp"]);
("benchs",
[
"src/advanced";
"src/core";
"src/data";
"src/iter";
"src/string";
"src/threads"
])
("benchs", ["src/core"; "src/data"; "src/iter"; "src/threads"])
]
}
;;
@ -669,12 +915,11 @@ let conf = {MyOCamlbuildFindlib.no_automatic_syntax = false}
let dispatch_default = MyOCamlbuildBase.dispatch_default conf package_default;;
# 673 "myocamlbuild.ml"
# 919 "myocamlbuild.ml"
(* OASIS_STOP *)
let doc_intro = "doc/intro.txt" ;;
let doc_intro = "doc/intro.txt"
open Ocamlbuild_plugin;;
Ocamlbuild_plugin.dispatch dispatch_default;;
dispatch
(MyOCamlbuildBase.dispatch_combine [
@ -690,3 +935,4 @@ dispatch
end;
dispatch_default
])

9
opam
View file

@ -1,6 +1,6 @@
opam-version: "1.2"
name: "containers"
version: "dev"
version: "1.5"
author: "Simon Cruanes"
maintainer: "simon.cruanes@inria.fr"
build: [
@ -23,7 +23,6 @@ remove: [
]
depends: [
"ocamlfind" {build}
"oasis" {build}
"base-bytes"
"result"
"ocamlbuild" {build}
@ -42,3 +41,9 @@ doc: "http://cedeela.fr/~simon/software/containers/"
available: [ocaml-version >= "4.01.0"]
dev-repo: "https://github.com/c-cube/ocaml-containers.git"
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