diff --git a/.gitignore b/.gitignore
index 276ed2d54..8b378c254 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,7 +51,6 @@ Debug
./xgboost
./xgboost.mpi
./xgboost.mock
-rabit
#.Rbuildignore
R-package.Rproj
*.cache*
@@ -65,9 +64,10 @@ java/xgboost4j-demo/data/
java/xgboost4j-demo/tmp/
java/xgboost4j-demo/model/
nb-configuration*
-dmlc-core
# Eclipse
.project
.cproject
.pydevproject
.settings/
+build
+
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..b2321b41f
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "dmlc-core"]
+ path = dmlc-core
+ url = https://github.com/dmlc/dmlc-core
+[submodule "rabit"]
+ path = rabit
+ url = https://github.com/dmlc/rabit
diff --git a/README.md b/README.md
index f33394d40..cbcbe3a6e 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ An optimized general purpose gradient boosting library. The library is paralleli
It implements machine learning algorithms under the [Gradient Boosting](https://en.wikipedia.org/wiki/Gradient_boosting) framework, including [Generalized Linear Model](https://en.wikipedia.org/wiki/Generalized_linear_model) (GLM) and [Gradient Boosted Decision Trees](https://en.wikipedia.org/wiki/Gradient_boosting#Gradient_tree_boosting) (GBDT). XGBoost can also be [distributed](#features) and scale to Terascale data
-XGBoost is part of [Distributed Machine Learning Common](http://dmlc.github.io/)
projects
+XGBoost is part of [Distributed Machine Learning Common](http://dmlc.github.io/) projects
Contents
--------
@@ -68,7 +68,6 @@ Bug Reporting
Contributing to XGBoost
-----------------------
-
XGBoost has been developed and used by a group of active community members. Everyone is more than welcome to contribute. It is a way to make the project better and more accessible to more users.
* Check out [Feature Wish List](https://github.com/dmlc/xgboost/labels/Wish-List) to see what can be improved, or open an issue if you want something.
* Contribute to the [documents and examples](https://github.com/dmlc/xgboost/blob/master/doc/) to share your experience with other users.
@@ -78,7 +77,3 @@ License
-------
© Contributors, 2015. Licensed under an [Apache-2](https://github.com/dmlc/xgboost/blob/master/LICENSE) license.
-XGBoost in Graphlab Create
---------------------------
-* XGBoost is adopted as part of boosted tree toolkit in Graphlab Create (GLC). Graphlab Create is a powerful python toolkit that allows you to do data manipulation, graph processing, hyper-parameter search, and visualization of TeraBytes scale data in one framework. Try the [Graphlab Create](http://graphlab.com/products/create/quick-start-guide.html)
-* Nice [blogpost](http://blog.graphlab.com/using-gradient-boosted-trees-to-predict-bike-sharing-demand) by Jay Gu about using GLC boosted tree to solve kaggle bike sharing challenge:
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index c1367d52e..000000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-environment:
- global:
- CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\python-appveyor-demo\\appveyor\\run_with_env.cmd"
- DISABLE_OPENMP: 1
- VisualStudioVersion: 12.0
-
- matrix:
- - PYTHON: "C:\\Python27-x64"
- PYTHON_VERSION: "2.7.x" # currently 2.7.9
- PYTHON_ARCH: "64"
-
- - PYTHON: "C:\\Python33-x64"
- PYTHON_VERSION: "3.3.x" # currently 3.3.5
- PYTHON_ARCH: "64"
-
-platform:
- - x64
-
-configuration:
- - Release
-
-install:
- - cmd: git clone https://github.com/ogrisel/python-appveyor-demo
- - ECHO "Filesystem root:"
- - ps: "ls \"C:/\""
-
- - ECHO "Installed SDKs:"
- - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
-
- - ps: python-appveyor-demo\appveyor\install.ps1
- - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- - "python --version"
- - "python -c \"import struct; print(struct.calcsize('P') * 8)\""
-
-build: off
- #project: windows\xgboost.sln
\ No newline at end of file
diff --git a/dmlc-core b/dmlc-core
new file mode 160000
index 000000000..4b951c037
--- /dev/null
+++ b/dmlc-core
@@ -0,0 +1 @@
+Subproject commit 4b951c0378386b7f4d9eae72be2ecd3b9c816afe
diff --git a/include/xgboost/base.h b/include/xgboost/base.h
new file mode 100644
index 000000000..26219bae5
--- /dev/null
+++ b/include/xgboost/base.h
@@ -0,0 +1,15 @@
+/*!
+ * Copyright (c) 2015 by Contributors
+ * \file base.h
+ * \brief defines configuration macros of xgboost
+ */
+#ifndef XGBOOST_BASE_H_
+#define XGBOOST_BASE_H_
+
+#include
+
+namespace xgboost {
+
+
+} // namespace xgboost
+#endif // XGBOOST_BASE_H_
diff --git a/wrapper/xgboost_wrapper.h b/include/xgboost/c_api.h
similarity index 98%
rename from wrapper/xgboost_wrapper.h
rename to include/xgboost/c_api.h
index 8d0e78a91..bdc9fc9f0 100644
--- a/wrapper/xgboost_wrapper.h
+++ b/include/xgboost/c_api.h
@@ -1,12 +1,11 @@
/*!
- * Copyright (c) 2014 by Contributors
- * \file xgboost_wrapper.h
+ * Copyright (c) 2015 by Contributors
+ * \file c_api.h
* \author Tianqi Chen
- * \brief a C style wrapper of xgboost
- * can be used to create wrapper of other languages
+ * \brief C Style API of XGBoost, used to interfacing with other languages.
*/
-#ifndef XGBOOST_WRAPPER_H_
-#define XGBOOST_WRAPPER_H_
+#ifndef XGBOOST_C_API_H_
+#define XGBOOST_C_API_H_
#ifdef __cplusplus
#define XGB_EXTERN_C extern "C"
@@ -351,4 +350,4 @@ XGB_DLL int XGBoosterDumpModelWithFeatures(BoosterHandle handle,
bst_ulong *len,
const char ***out_models);
-#endif // XGBOOST_WRAPPER_H_
+#endif // XGBOOST_C_API_H_
diff --git a/include/xgboost/data.h b/include/xgboost/data.h
new file mode 100644
index 000000000..29fcd4bb5
--- /dev/null
+++ b/include/xgboost/data.h
@@ -0,0 +1,8 @@
+/*!
+ * Copyright (c) 2014 by Contributors
+ * \file data.h
+ * \brief the input data structure for gradient boosting
+ * \author Tianqi Chen
+ */
+#ifndef XGBOOST_DATA_H_
+#define XGBOOST_DATA_H_
diff --git a/src/README.md b/old_src/README.md
similarity index 100%
rename from src/README.md
rename to old_src/README.md
diff --git a/src/data.h b/old_src/data.h
similarity index 100%
rename from src/data.h
rename to old_src/data.h
diff --git a/src/gbm/gblinear-inl.hpp b/old_src/gbm/gblinear-inl.hpp
similarity index 100%
rename from src/gbm/gblinear-inl.hpp
rename to old_src/gbm/gblinear-inl.hpp
diff --git a/src/gbm/gbm.cpp b/old_src/gbm/gbm.cpp
similarity index 100%
rename from src/gbm/gbm.cpp
rename to old_src/gbm/gbm.cpp
diff --git a/src/gbm/gbm.h b/old_src/gbm/gbm.h
similarity index 100%
rename from src/gbm/gbm.h
rename to old_src/gbm/gbm.h
diff --git a/src/gbm/gbtree-inl.hpp b/old_src/gbm/gbtree-inl.hpp
similarity index 100%
rename from src/gbm/gbtree-inl.hpp
rename to old_src/gbm/gbtree-inl.hpp
diff --git a/src/io/dmlc_simple.cpp b/old_src/io/dmlc_simple.cpp
similarity index 100%
rename from src/io/dmlc_simple.cpp
rename to old_src/io/dmlc_simple.cpp
diff --git a/src/io/io.cpp b/old_src/io/io.cpp
similarity index 100%
rename from src/io/io.cpp
rename to old_src/io/io.cpp
diff --git a/src/io/io.h b/old_src/io/io.h
similarity index 100%
rename from src/io/io.h
rename to old_src/io/io.h
diff --git a/src/io/libsvm_parser.h b/old_src/io/libsvm_parser.h
similarity index 100%
rename from src/io/libsvm_parser.h
rename to old_src/io/libsvm_parser.h
diff --git a/src/io/page_dmatrix-inl.hpp b/old_src/io/page_dmatrix-inl.hpp
similarity index 100%
rename from src/io/page_dmatrix-inl.hpp
rename to old_src/io/page_dmatrix-inl.hpp
diff --git a/src/io/page_fmatrix-inl.hpp b/old_src/io/page_fmatrix-inl.hpp
similarity index 100%
rename from src/io/page_fmatrix-inl.hpp
rename to old_src/io/page_fmatrix-inl.hpp
diff --git a/src/io/simple_dmatrix-inl.hpp b/old_src/io/simple_dmatrix-inl.hpp
similarity index 100%
rename from src/io/simple_dmatrix-inl.hpp
rename to old_src/io/simple_dmatrix-inl.hpp
diff --git a/src/io/simple_fmatrix-inl.hpp b/old_src/io/simple_fmatrix-inl.hpp
similarity index 100%
rename from src/io/simple_fmatrix-inl.hpp
rename to old_src/io/simple_fmatrix-inl.hpp
diff --git a/src/io/sparse_batch_page.h b/old_src/io/sparse_batch_page.h
similarity index 100%
rename from src/io/sparse_batch_page.h
rename to old_src/io/sparse_batch_page.h
diff --git a/src/learner/dmatrix.h b/old_src/learner/dmatrix.h
similarity index 100%
rename from src/learner/dmatrix.h
rename to old_src/learner/dmatrix.h
diff --git a/src/learner/evaluation-inl.hpp b/old_src/learner/evaluation-inl.hpp
similarity index 100%
rename from src/learner/evaluation-inl.hpp
rename to old_src/learner/evaluation-inl.hpp
diff --git a/src/learner/evaluation.h b/old_src/learner/evaluation.h
similarity index 100%
rename from src/learner/evaluation.h
rename to old_src/learner/evaluation.h
diff --git a/src/learner/helper_utils.h b/old_src/learner/helper_utils.h
similarity index 100%
rename from src/learner/helper_utils.h
rename to old_src/learner/helper_utils.h
diff --git a/src/learner/learner-inl.hpp b/old_src/learner/learner-inl.hpp
similarity index 100%
rename from src/learner/learner-inl.hpp
rename to old_src/learner/learner-inl.hpp
diff --git a/src/learner/objective-inl.hpp b/old_src/learner/objective-inl.hpp
similarity index 100%
rename from src/learner/objective-inl.hpp
rename to old_src/learner/objective-inl.hpp
diff --git a/src/learner/objective.h b/old_src/learner/objective.h
similarity index 100%
rename from src/learner/objective.h
rename to old_src/learner/objective.h
diff --git a/src/sync/sync.h b/old_src/sync/sync.h
similarity index 100%
rename from src/sync/sync.h
rename to old_src/sync/sync.h
diff --git a/src/tree/model.h b/old_src/tree/model.h
similarity index 100%
rename from src/tree/model.h
rename to old_src/tree/model.h
diff --git a/src/tree/param.h b/old_src/tree/param.h
similarity index 100%
rename from src/tree/param.h
rename to old_src/tree/param.h
diff --git a/src/tree/updater.cpp b/old_src/tree/updater.cpp
similarity index 100%
rename from src/tree/updater.cpp
rename to old_src/tree/updater.cpp
diff --git a/src/tree/updater.h b/old_src/tree/updater.h
similarity index 100%
rename from src/tree/updater.h
rename to old_src/tree/updater.h
diff --git a/src/tree/updater_basemaker-inl.hpp b/old_src/tree/updater_basemaker-inl.hpp
similarity index 100%
rename from src/tree/updater_basemaker-inl.hpp
rename to old_src/tree/updater_basemaker-inl.hpp
diff --git a/src/tree/updater_colmaker-inl.hpp b/old_src/tree/updater_colmaker-inl.hpp
similarity index 100%
rename from src/tree/updater_colmaker-inl.hpp
rename to old_src/tree/updater_colmaker-inl.hpp
diff --git a/src/tree/updater_distcol-inl.hpp b/old_src/tree/updater_distcol-inl.hpp
similarity index 100%
rename from src/tree/updater_distcol-inl.hpp
rename to old_src/tree/updater_distcol-inl.hpp
diff --git a/src/tree/updater_histmaker-inl.hpp b/old_src/tree/updater_histmaker-inl.hpp
similarity index 100%
rename from src/tree/updater_histmaker-inl.hpp
rename to old_src/tree/updater_histmaker-inl.hpp
diff --git a/src/tree/updater_prune-inl.hpp b/old_src/tree/updater_prune-inl.hpp
similarity index 100%
rename from src/tree/updater_prune-inl.hpp
rename to old_src/tree/updater_prune-inl.hpp
diff --git a/src/tree/updater_refresh-inl.hpp b/old_src/tree/updater_refresh-inl.hpp
similarity index 100%
rename from src/tree/updater_refresh-inl.hpp
rename to old_src/tree/updater_refresh-inl.hpp
diff --git a/src/tree/updater_skmaker-inl.hpp b/old_src/tree/updater_skmaker-inl.hpp
similarity index 100%
rename from src/tree/updater_skmaker-inl.hpp
rename to old_src/tree/updater_skmaker-inl.hpp
diff --git a/src/tree/updater_sync-inl.hpp b/old_src/tree/updater_sync-inl.hpp
similarity index 100%
rename from src/tree/updater_sync-inl.hpp
rename to old_src/tree/updater_sync-inl.hpp
diff --git a/src/utils/base64-inl.h b/old_src/utils/base64-inl.h
similarity index 100%
rename from src/utils/base64-inl.h
rename to old_src/utils/base64-inl.h
diff --git a/src/utils/bitmap.h b/old_src/utils/bitmap.h
similarity index 100%
rename from src/utils/bitmap.h
rename to old_src/utils/bitmap.h
diff --git a/src/utils/config.h b/old_src/utils/config.h
similarity index 100%
rename from src/utils/config.h
rename to old_src/utils/config.h
diff --git a/src/utils/fmap.h b/old_src/utils/fmap.h
similarity index 100%
rename from src/utils/fmap.h
rename to old_src/utils/fmap.h
diff --git a/src/utils/group_data.h b/old_src/utils/group_data.h
similarity index 100%
rename from src/utils/group_data.h
rename to old_src/utils/group_data.h
diff --git a/src/utils/io.h b/old_src/utils/io.h
similarity index 100%
rename from src/utils/io.h
rename to old_src/utils/io.h
diff --git a/src/utils/iterator.h b/old_src/utils/iterator.h
similarity index 100%
rename from src/utils/iterator.h
rename to old_src/utils/iterator.h
diff --git a/src/utils/math.h b/old_src/utils/math.h
similarity index 100%
rename from src/utils/math.h
rename to old_src/utils/math.h
diff --git a/src/utils/omp.h b/old_src/utils/omp.h
similarity index 100%
rename from src/utils/omp.h
rename to old_src/utils/omp.h
diff --git a/src/utils/quantile.h b/old_src/utils/quantile.h
similarity index 100%
rename from src/utils/quantile.h
rename to old_src/utils/quantile.h
diff --git a/src/utils/random.h b/old_src/utils/random.h
similarity index 100%
rename from src/utils/random.h
rename to old_src/utils/random.h
diff --git a/src/utils/thread.h b/old_src/utils/thread.h
similarity index 100%
rename from src/utils/thread.h
rename to old_src/utils/thread.h
diff --git a/src/utils/thread_buffer.h b/old_src/utils/thread_buffer.h
similarity index 100%
rename from src/utils/thread_buffer.h
rename to old_src/utils/thread_buffer.h
diff --git a/src/utils/utils.h b/old_src/utils/utils.h
similarity index 100%
rename from src/utils/utils.h
rename to old_src/utils/utils.h
diff --git a/src/xgboost_main.cpp b/old_src/xgboost_main.cpp
similarity index 100%
rename from src/xgboost_main.cpp
rename to old_src/xgboost_main.cpp
diff --git a/rabit b/rabit
new file mode 160000
index 000000000..bed63208a
--- /dev/null
+++ b/rabit
@@ -0,0 +1 @@
+Subproject commit bed63208af736c4aa289b629fbe5396bd9f513d9
diff --git a/src/c_api.cc b/src/c_api.cc
new file mode 100644
index 000000000..cf1b06d3c
--- /dev/null
+++ b/src/c_api.cc
@@ -0,0 +1,2 @@
+#include
+