Commit Graph

597 Commits

Author SHA1 Message Date
Pratyush Das
5ebd9587dd Comply with new NVPTX update of Cling 2019-12-23 06:44:28 +01:00
Pratyush Das
21d3cd2d7c Enabled support to build Cling using downloaded LLVM release tar. 2019-12-23 06:44:27 +01:00
Pratyush Das
2796d6bf96 Proof of concept - Cling can be built using downloaded LLVM release tar. 2019-12-23 06:44:27 +01:00
Pratyush Das
495a667988 Removed redundant line 2019-12-23 06:44:27 +01:00
Simeon Ehrig
43d5583905 Add NVPTX backend to CPT 2019-11-07 19:29:15 +01:00
Pratyush Das
8482b60697 Only install necessary packages using cpt if missing requirements
and cleanup .travis.yml
2019-09-27 07:01:54 +02:00
Pratyush Das
3ed675ab01 pkg flag now defaults to tar
For non [Windows, Ubuntu, Redhat, OS X] operating systems the pkg flag to the --last stable and --current-dev arguments didn't do anything - It should create a tar because that is the default behaviour for Unix like platforms which support bash.
2019-09-26 07:29:39 +02:00
Axel Naumann
2c92b57062 Try to fix Issue #289, #302, #297: only build cling, not lli. 2019-09-18 08:44:45 +02:00
pankaj kumar
0c880f8472 Fixing the jupyter Kernel to be able to handle exceptions 2019-08-31 10:16:20 +02:00
straydragon
adb1396e4f Fix cpt.py a careless mistake
Signed-off-by: Vassil Vassilev <v.g.vassilev@gmail.com>
2019-04-18 21:46:14 +02:00
Aleksander Gajewski
07c30f424e Add non-interactive mode to cpt
Signed-off-by: Vassil Vassilev <v.g.vassilev@gmail.com>
2019-04-11 07:44:36 +02:00
lizhangwen
314018e6db Fix OSX where cmake version is '3.14.0-rc4' 2019-04-10 20:59:24 +02:00
Vassil Vassilev
6130148a58 Bump clad version to v0.5.
The new release includes some improvements in both Forward and
Reverse mode:
* Extend the way to specify a dependent variables. Consider function,
  `double f(double x, double y, double z) {...}`, `clad::differentiate(f, "z")`
  is equivalent to `clad::differentiate(f, 2)`. `clad::gradient(f, "x, y")`
  differentiates with respect to `x` and `y` but not `z`. The gradient results
  are stored in a `_result` parameter in the same order as `x` and `y` were
  specified. Namely, the result of `x` is stored in `_result[0]` and the result
  of `y` in `_result[1]`. If we invert the arguments specified in the string to
  `clad::gradient(f, "y, x")` the results will be stored inversely.
* Enable recursive differentiation.
* Support single- and multi-dimensional arrays -- works for arrays with constant
  size like `double A[] = {1, 2, 3};`, `double A[3];` or `double A[1][2][3][4];`

See more at: https://github.com/vgvassilev/clad/blob/v0.5/docs/ReleaseNotes.md
2019-04-08 20:59:15 +02:00
Vassil Vassilev
1cb36481ba Add missing dependency. 2019-03-17 08:15:02 +01:00
Oksana Shadura
59a46d513b Fixing compile time installation of clad in CMAKE_INSTALL_PATH
[ROOT-9924] Installing headers for clad
2019-02-05 11:44:03 +01:00
Vassil Vassilev
51a83f543d Reduce the libraries we link to. 2018-11-21 17:15:14 +01:00
Vassil Vassilev
fc33c22f45 Bump clad version to v0.4.
The new release includes some improvements in both Forward and
Reverse mode:
  * Support `x += y`, `x -= y`, `x *= y`, `x /= y`, `x++`, `x--`, `++x`, `--x`
    in forward mode.
  * Reduce emission of unused expressions
  * Add a special `#pragma clad ON/OFF/DEFAULT` to annotate regions which
    contain derivatives
  * Various small optimizations

See more at: https://github.com/vgvassilev/clad/blob/v0.4/docs/ReleaseNotes.md
2018-11-06 11:59:41 +01:00
Sylvain Corlay
7116e7239c Add missing libraries 2018-10-19 00:30:04 +02:00
Vassil Vassilev
38eb2b89ba Allow plugins to handle custom pragmas.
This will help clad implement pattern such as:
#pragma clad on
// code which needs derivation
#pragma clad off
2018-10-08 21:44:55 +02:00
Vassil Vassilev
818126599b Also update the version on unix.
This is part of 4ff4d9aa2d.
2018-09-30 20:59:41 +02:00
Vassil Vassilev
628288faee Bump clad version to v0.3.
The new release includes some improvements in both Forward and
Reverse mode:
  * Better correctness of C++ constructs -- handle scopes properly; allow proper
  variable shadowing; and preserve namespaces.
  * Efficient evaluation in forward mode.
  * Reduced cloning complexity.
  * Handle more C++ constructs -- variable reassignments and for loops.

See more at: https://github.com/vgvassilev/clad/blob/v0.3/docs/ReleaseNotes.md
2018-09-28 21:29:14 +02:00
Axel Naumann
0a416cd1ed Inject -isysroot ${CMAKE_OSX_SYSROOT} to clad. 2018-09-28 17:43:44 +02:00
Vassil Vassilev
c63ab13a9e Specify where the clang header files are.
In cases where we build ROOT with -Dbuiltin_llvm=Off -Dbuiltin_clang=On
and we have installed both llvm and clang in /usr/ clad will pick up
the clang headers from there too.

This patch gives higher priority to the header files which ROOT is
supposed to use. It fixes a very obscure initialization issue due to
different versions of the ASTContext.h installed and used by ROOT.
2018-08-22 20:14:52 +02:00
Oksana Shadura
6238cda8df Updating clad build CMake arguments for the case when buiting_llvm and buitin_clang is OFF 2018-08-17 13:14:37 +02:00
Bertrand Bellenot
5b55c52bda Fix builing of clad and related test on Windows 2018-08-10 10:44:09 +02:00
Vassil Vassilev
bba0c4b9e0 Update clad to v0.2
The relevant highlights are:

* Support better Windows (thanks to Bertrand Bellenot!);

* Disabled automatic discovery of system LLVM -- clad should only
  search for LLVM at DCLAD_PATH_TO_LLVM_BUILD. On some platforms
  (discovered by Oksana Shadura via rootbench) clad discovers the
  system LLVM which is compatible in principle but this is not what
  we want for ROOT.

* Implemented -CLAD_BUILD_STATIC_ONLY -- this covers the ROOT usecase
  where we do not need shared objects but link the libraries against
  another shared object (libCling.so). This allows platforms which have
  disabled LLVM_ENABLE_PLUGINS to still build clad and use it. Such
  example is CYGWIN and Windows.

See more at: https://github.com/vgvassilev/clad/releases/tag/v0.2
2018-08-08 20:14:37 +02:00
Vassil Vassilev
e9068c56b1 Enable the automatic differentiation library clad in ROOT.
clad is a C++ plugin for clang and cling that implements automatic
differentiation of user-defined functions by employing the chain rule in
forward and reverse mode, coupled with source code transformation and AST
constant fold.

In mathematics and computer algebra, automatic differentiation (AD) is a
set of techniques to numerically evaluate the derivative of a function
specified by a computer program. AD exploits the fact that every computer
program, no matter how complicated, executes a sequence of elementary
arithmetic operations (addition, subtraction, multiplication, division, etc.)
and elementary functions (exp, log, sin, cos, etc.). By applying the chain
rule repeatedly to these operations, derivatives of arbitrary order can
be computed automatically, accurately to working precision, and using at
most a small constant factor more arithmetic operations than the original
program.

AD is an alternative technique to symbolic and numerical differentiation.
These classical methods run into problems: symbolic differentiation leads
to inefficient code (unless done carefully) and faces the difficulty of
converting a computer program into a single expression, while numerical
differentiation can introduce round-off errors in the discretization
process and cancellation. Both classical methods have problems with
calculating higher derivatives, where the complexity and errors increase.
Finally, both classical methods are slow at computing the partial
derivatives of a function with respect to many inputs, as is needed for
gradient-based optimization algorithms. Automatic differentiation solves
all of these problems, at the expense of introducing more software
dependencies.

This patch allows ROOT to interoperate with clad. Namely, users can ask
the interpreter to produce a derivative or a gradient to a known function.

An illustrative example code for first order derivative:

root [0] #include "Math/CladDerivator.h"
root [1] double my_pow2(double x) { return x*x; }
root [2] auto meta_obj = clad::differentiate(my_pow2, /*wrt 1-st argument*/0);
root [3] meta_obj.dump();
The code is: double my_pow2_darg0(double x) {
    return (1. * x + x * 1.);
}
root [5] meta_obj.execute(1) // no iterations, at the cost of function call.
(double) 2.0000000

Learn more about clad at https://github.com/vgvassilev/clad

Patch by Aleksandr Efremov and me!
2018-08-03 09:15:01 +02:00
Vassil Vassilev
272905eced Implement clang plugin support.
Clang allows third party shared libraries to provide user-defined
extensions. For example, a custom libTemplateInstantiation.so can
visualize all template instantiation chains in clang. To enable it
one needs to pass a set of options such as -fplugin.

Cling should be able to inherently work with clang plugins. However,
cling still does not make full use of the clang driver where the plugin
setup is handled.

This patch enables plugins in cling and extends them in some aspects.
In particular, cling allows loading of plugins from shared libraries
but also if they are linked to the same library where cling is. This is
very useful in cases where cling runs itself in a shared library (eg
libCling). Users of libCling (such as ROOT) prefer to keep all llvm and
clang related symbols local to avoid symbol clashes if there is another
version of clang and llvm linked against a package. This can be done by
dlopen-ing libCling with RTLD_LOCAL visibility mode. Then the only way
for clang plugins to work in this scenario is to be linked to libCling.

Patch by Aleksandr Efremov and me.
2018-07-28 13:17:44 +02:00
Vassil Vassilev
19915ff6d2 Add missing link libraries. 2018-07-27 11:14:04 +02:00
Axel Naumann
c33c5fb033 cling cpt travis fold: misspelled "end". 2018-06-14 10:14:12 +02:00
Axel Naumann
fa5aa3b2cc cling cpt: make sure TRAVIS_BUILD_DIR is found if set. 2018-06-14 09:44:07 +02:00
Axel Naumann
4f1d3d7d22 cling travis: move cpt log fold into cpt.py. 2018-06-13 12:14:13 +02:00
Nathan Daly
f2bcf29b1c Allow cpt.py to handle double-digit version numbers
Before this commit, cpt.py attempted `"3.11.1" < "3.4.3"`, but this
incorrectly returns `True`. This commit adds a function that splits the
string into version identifiers and checks them all individually.
2018-05-24 11:29:51 +02:00
Damien L-G
6bbf1f3311 Use CLING_OPTS env variable to pass extra arguments to jupyter-cling-kernel
This patch let you customize your kernel:
```
{
  "display_name": "C++14-custom",
  "argv": [
      "jupyter-cling-kernel",
      "-f",
      "{connection_file}",
      "--std=c++14"
  ],
  "language": "C++",
  "env": {"CLING_OPTS": "-I<add_directory_to_include_search_path> -L<add_directory_to_library_search_path>"}
}
```
2018-03-23 16:59:08 +01:00
Simeon Ehrig
83e3eafc44 fix CMakeFiles to allow cling build with shared libraries 2018-03-22 15:59:06 +01:00
Bertrand Bellenot
e26a6cb2df Several fixes for Windows
- cling: add missing symbol in the export list and fix semicolon issue in CMakeList.txt (it has to be in quotes)
 - cling-demo: export symbols and format hexadecimal output
2018-03-22 13:44:16 +01:00
Vassil Vassilev
bfb4168dc9 Implement basic plugin support in cling.
We rely on clang's plugin infrastructure for loading, argument processing
and unloading plugins.

This patch teaches cling to work with clang plugins such as clad -- a
clang plugin implementing automatic differentiation facilities.
2018-02-20 10:59:12 +01:00
Houkime
51acb456a1 Add "language" field to kernel.json 2018-01-15 17:14:05 +01:00
Axel Naumann
3848d29556 Fix exception if cling is not found.
See https://stackoverflow.com/questions/48244332/c-jupyter-kernel-death
2018-01-15 15:59:58 +01:00
Dheepak Krishnamurthy
bf88ee12d3 Get correct path for cling
Required for Mac with `brew install cling`
2018-01-15 12:59:47 +01:00
Dheepak Krishnamurthy
f9db95721e Check in libexec folder as well
Required for Mac brew install
2018-01-15 12:59:47 +01:00
Yuki Yamaura
38923cd710 Add support C++1z for Jupyter kernel
When run C++17 kernel in Jupyter notebook cause some errors
due to currently clang-5.0 in https://root.cern.ch/download/cling/ is not
support c++17.
So add support to C++1z for Jupyter kernel and we can try some new
features in Jupyter notebook.

for avoiding following error:

[I 05:46:38.253 NotebookApp] Kernel restarted:
d3413fa0-7046-4b63-912b-a286610eacc1
error: invalid value 'c++17' in '-std=c++17'
note: use 'c++98' or 'c++03' for 'ISO C++ 1998 with amendments' standard
note: use 'gnu++98' or 'gnu++03' for 'ISO C++ 1998 with amendments and
GNU extensions' standard
note: use 'c++11' for 'ISO C++ 2011 with amendments' standard
note: use 'gnu++11' for 'ISO C++ 2011 with amendments and GNU
extensions' standard
note: use 'c++14' for 'ISO C++ 2014 with amendments' standard
note: use 'gnu++14' for 'ISO C++ 2014 with amendments and GNU
extensions' standard
note: use 'c++1z' for 'Working draft for ISO C++ 2017' standard
note: use 'gnu++1z' for 'Working draft for ISO C++ 2017 with GNU
extensions' standard
2017-09-06 16:44:07 +02:00
Bertrand Bellenot
cb658dd0f8 Fix fatal error LNK1120: 1 unresolved externals (Windows)
Remove export symbol causing the following linker error:
cling.exp : error LNK2001: unresolved external symbol "public: void __cdecl clang::Decl::dump(class llvm::raw_ostream &)const " (?dump@Decl@clang@@QEBAXAEAVraw_ostream@llvm@@@Z)
2017-07-05 10:44:07 +02:00
Vassil Vassilev
e8659b29fc Typo. 2017-06-23 11:59:06 +02:00
Vassil Vassilev
35306f3f37 Simplify artifact selection procedure for distribution of binaries. 2017-06-23 09:59:27 +02:00
Vassil Vassilev
acc63c943c Add back the nightly cron sync job. 2017-06-23 09:29:23 +02:00
Frederich Munch
38c757e36d Have MetaProcessor::process take an llvm::StringRef. Remove unnecessary std::string -> const char* -> std::string conversions. 2017-06-21 11:29:07 +02:00
Axel Naumann
fd3738190f Make symbols visible (ROOT-8823). 2017-06-19 16:00:56 +02:00
Frederich Munch
4e324c1599 CPT: Add runSingleTest method to invoke a single test on CI for better messaging. 2017-06-14 11:29:05 +02:00
Frederich Munch
96f86e79a9 CPT: Consolidate path joining to global variable LLVM_OBJ_ROOT. 2017-06-14 11:29:05 +02:00
Vassil Vassilev
359fa4132d Forward to more-up-to-date repository 2017-06-08 15:44:37 +02:00
Diego Torres Quintanilla
952cf58b0d Fixed codemirror mode to appropriate value. Syntax highlighting in jupyter lab should work when https://github.com/jupyterlab/jupyterlab/pull/2187 is merged. 2017-05-12 09:14:05 +02:00
Axel Naumann
8c3afd1d0a Link against all available targets. 2017-05-09 09:59:05 +02:00
Axel Naumann
b9dbe1614f Update notebook, esp the kernelspec name. 2017-05-02 11:59:10 +02:00
Axel Naumann
8e2700d753 Fix ZMQ issues with threading:
run all ZMQ send()s from the main thread; run cling in a sub-thread.
2017-05-02 11:59:10 +02:00
Axel Naumann
2f13d674eb Do not echo expression results; kernel handles it. 2017-05-02 11:59:10 +02:00
Axel Naumann
97ec4b8e8a Add doc on the sideband mechanism. 2017-05-02 11:59:09 +02:00
Axel Naumann
795adc43e1 Point to authoritative repos; fixes cling builds with cpt. 2017-04-28 18:59:24 +02:00
Axel Naumann
a2cc4528e6 Update location of Jupyter kernel. 2017-04-28 18:59:24 +02:00
Santiago Castro
1b831f04f6 Fix broken Markdown headings
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2017-04-17 20:29:34 +02:00
Axel Naumann
7a083b672a Update doc to follow change in kernel name - thanks, Steven R. Brandt! 2017-04-07 08:44:08 +02:00
Vassil Vassilev
07065b3fff Teach cpt how to handle --create-dev-env Release option. 2017-04-06 19:59:23 +02:00
Axel Naumann
af310ace1d Reflect changed Github repo name. 2017-04-05 11:44:05 +02:00
Axel Naumann
853aa86a45 Remove stray semicolon (nfc). 2017-03-31 16:44:04 +02:00
Axel Naumann
de56970ff0 Shorten the readme path a bit. 2017-03-22 11:20:50 +01:00
Axel Naumann
c3f3247006 More relevant / less obscure examples. Indent. 2017-03-21 21:14:33 +01:00
Axel Naumann
cb73393548 Build cling-demo as part of cling. 2017-03-20 15:44:07 +01:00
Axel Naumann
58b1ee1c14 Use static_cast; nicer print-out. 2017-03-20 09:44:04 +01:00
Axel Naumann
e847f2f5bc Add (c) header. 2017-03-19 23:14:05 +01:00
Axel Naumann
276505ffff Formatting. 2017-03-19 23:14:05 +01:00
Axel Naumann
5d829fa310 Add an example of a CMake project using cling (Issue 23). 2017-03-19 22:59:33 +01:00
Frederich Munch
f1def4fefd Appveyor: Build with Ninja on Windows. 2017-03-09 08:29:28 +01:00
Spencer Lyon
cf0019ab82 fix typo in jupyer kernel readme. 2017-03-07 15:29:26 +01:00
PrometheusPi
5e44b44f52 fix path to jupyter kernel install 2017-03-07 15:29:26 +01:00
Bertrand Bellenot
536c10ce34 Use correct way of checking Debug build
The CMAKE_BUILD_TYPE CMake variable is only valid for single-configuration generator (like Linux Makefiles), and not for multi-configuration generator (like for Visual Studio). So let's try to use a CMake generator expression instead.
2017-02-22 10:34:07 +01:00
Sylvain Corlay
8bd13badc1 rename kernels
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2017-02-21 20:23:27 +01:00
Frederich Munch
08d43f7ac0 CMake: Export global new and delete operators.
Note: There is still a problem with LLVM’s lookup of symbols and a change is needed
there for the full benefit.
2017-02-21 16:34:19 +01:00
Frederich Munch
9d2f1b4bde CPT: Test installed version of CMake is less than 3.6.2 before downloading another. 2017-02-21 16:34:19 +01:00
Frederich Munch
e437621fd4 CPT: Use Appveyor’s clone for building. Try to use Appveyor’s caching for build directory. 2017-02-21 16:34:19 +01:00
Frederich Munch
8d6377f3a7 Windows: Split up exports into groups and make it easier to understand what’s forced to be exported. 2017-02-17 15:14:06 +01:00
Bertrand Bellenot
40f433e769 Export more symbols (decreasing the failing tests from 17 to 10) 2017-02-14 14:59:43 +01:00
Frederich Munch
b56254c0e7 Windows: Add explicit exports that aren’t being exported. 2017-02-09 16:45:10 +01:00
Frederich Munch
e245220dff Cleanup main and add InvocationOptions::IsInteractive method. 2017-02-01 13:14:11 +01:00
Frederich Munch
8aa8395cd6 Early out Interpreter initialization when invoked via '-v' or '-version'. 2017-02-01 13:14:11 +01:00
Frederich Munch
14437862ef Handle -E flag to dump preprocessor definitions. 2017-02-01 13:14:11 +01:00
Frederich Munch
592e61ba1e Feature to generate precompiled headers. 2017-02-01 13:14:11 +01:00
Frederich Munch
6aa837920e Check initialization is proceeding as expecting.
Don't blindly run through initialization; make sure things are going according to plan.
If not handle it and run destructors without crashing.
Return standard error codes from main.
2017-02-01 13:14:11 +01:00
Frederich Munch
0153f63690 Windows: Make sure to export type_info globals. 2016-12-20 12:59:08 +01:00
Axel Naumann
400c6402c9 Use -force_load instead of -all_load.
-(no)all_load is not position sensitive, and -noall_load triggers a warning.
2016-12-20 12:44:09 +01:00
Axel Naumann
43fe0be0a0 From Roman Zulak: Flush stdout less (cling). 2016-12-19 13:59:11 +01:00
Frederich Munch
075f4ffa83 Add cling output streams to cling/Utils/Output.h 2016-12-19 13:59:11 +01:00
Bertrand Bellenot
f98f5a0096 Should fix cling.exp : error LNK2001: unresolved external symbol "char const * const cling::valuePrinterInternal::kEmptyCollection" 2016-12-01 17:14:05 +01:00
Maarten Scholl
0a1bab6bd8 Fixed c++17 version name in kernel file
I encountered the following error and the above change fixed it

Nov 22 22:37:47 thesis jupyter[2811]: [I 22:37:47.646 NotebookApp] The Jupyter Notebook is running at: http://0.0.0.0:8888/
Nov 22 22:37:47 thesis jupyter[2811]: [I 22:37:47.646 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Nov 22 22:38:20 thesis jupyter[2811]: [I 22:38:20.303 NotebookApp] Kernel started: e416bf37-4f24-4aee-8e25-45c6fbbb85e6
Nov 22 22:38:21 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | Bad config encountered during initialization:
Nov 22 22:38:21 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | The 'std' trait of a ClingKernel instance must be any of ['c++11', 'c++14', 'c++17'], but a value of 'c++1z' <class 'str'> was specified.
Nov 22 22:38:23 thesis jupyter[2811]: [I 22:38:23.308 NotebookApp] KernelRestarter: restarting kernel (1/5)
Nov 22 22:38:24 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | Bad config encountered during initialization:
Nov 22 22:38:24 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | The 'std' trait of a ClingKernel instance must be any of ['c++11', 'c++14', 'c++17'], but a value of 'c++1z' <class 'str'> was specified.
Nov 22 22:38:26 thesis jupyter[2811]: [I 22:38:26.326 NotebookApp] KernelRestarter: restarting kernel (2/5)
Nov 22 22:38:27 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | Bad config encountered during initialization:
Nov 22 22:38:27 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | The 'std' trait of a ClingKernel instance must be any of ['c++11', 'c++14', 'c++17'], but a value of 'c++1z' <class 'str'> was specified.
Nov 22 22:38:29 thesis jupyter[2811]: [I 22:38:29.332 NotebookApp] KernelRestarter: restarting kernel (3/5)
Nov 22 22:38:30 thesis jupyter[2811]: [W 22:38:30.348 NotebookApp] Timeout waiting for kernel_info reply from e416bf37-4f24-4aee-8e25-45c6fbbb85e6
Nov 22 22:38:30 thesis jupyter[2811]: [I 22:38:30.365 NotebookApp] New terminal with specified name: 1
Nov 22 22:38:30 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | Bad config encountered during initialization:
Nov 22 22:38:30 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | The 'std' trait of a ClingKernel instance must be any of ['c++11', 'c++14', 'c++17'], but a value of 'c++1z' <class 'str'> was specified.
Nov 22 22:38:32 thesis jupyter[2811]: [I 22:38:32.338 NotebookApp] KernelRestarter: restarting kernel (4/5)
Nov 22 22:38:32 thesis jupyter[2811]: WARNING:root:kernel e416bf37-4f24-4aee-8e25-45c6fbbb85e6 restarted
Nov 22 22:38:32 thesis jupyter[2811]: [W 22:38:32.664 NotebookApp] Session not found: session_id='19509685-b888-480b-897b-be2cc8fed1cc'
Nov 22 22:38:32 thesis jupyter[2811]: [W 22:38:32.665 NotebookApp] 404 DELETE /api/sessions/19509685-b888-480b-897b-be2cc8fed1cc (192.168.0.24) 3.67ms referer=http://192.168.0.31:8888/notebooks/Untitled.ipynb?kernel_name=cling-c++17
Nov 22 22:38:33 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | Bad config encountered during initialization:
Nov 22 22:38:33 thesis jupyter[2811]: [ClingKernelApp] CRITICAL | The 'std' trait of a ClingKernel instance must be any of ['c++11', 'c++14', 'c++17'], but a value of 'c++1z' <class 'str'> was specified.
Nov 22 22:38:35 thesis jupyter[2811]: [W 22:38:35.349 NotebookApp] KernelRestarter: restart failed
Nov 22 22:38:35 thesis jupyter[2811]: [W 22:38:35.350 NotebookApp] Kernel e416bf37-4f24-4aee-8e25-45c6fbbb85e6 died, removing from map.
Nov 22 22:38:35 thesis jupyter[2811]: ERROR:root:kernel e416bf37-4f24-4aee-8e25-45c6fbbb85e6 restarted failed!
Nov 22 22:38:35 thesis jupyter[2811]: ERROR:root:kernel e416bf37-4f24-4aee-8e25-45c6fbbb85e6 restarted failed!
Nov 22 22:38:35 thesis jupyter[2811]: [W 22:38:35.368 NotebookApp] Kernel deleted before session
Nov 22 22:38:35 thesis jupyter[2811]: [W 22:38:35.369 NotebookApp] 410 DELETE /api/sessions/ff344691-8fd6-4207-902e-01c944bdf7ae (192.168.0.24) 2.13ms referer=http://192.168.0.31:8888/notebooks/Untitled.ipynb
2016-11-23 08:59:46 +01:00
erlanger
c5216dd7b8 fix bug with os.readlink and regular files
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-22 18:36:13 +01:00
erlanger
20420081cf support for c++17 (c++1z) in jupyter
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-22 18:36:13 +01:00
erlanger
34460a3907 jupyter C++14/11: missing files in prev commit
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-22 18:36:13 +01:00
erlanger
be4ad78245 Support for C++11/C++14 in jupyter
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-22 18:36:13 +01:00
Roman Zulak
1e004e9d3a Fix printing of collections. Make it impossible for a collection with 1 element to match the string of an empty collection. Avoid checking if comma needs to be added in loop. Make an empty tuple print same as empty collection: '{}'.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-11-21 12:44:34 +01:00
Axel Naumann
2e7ac15af4 Add missing optimizer libs. 2016-11-15 16:44:32 +01:00
erlanger
293931e1d5 Try APPLE instead of XCODE
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
erlanger
c262858fb2 XCODE fix for unresolved symbols
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
erlanger
84b96e5980 Include all symbols from interpreter in jupyter shared lib
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-10-26 15:10:30 +02:00
Pedro Henriques dos Santos Teixeira
615beb1def Does not ignore IPKernelApp.init_io
In latest jupyter versions this fixes AttributeError 'ClingKernelApp object has no attribute displayhook'
2016-09-22 16:21:01 +02:00
Vassil Vassilev
5431895caa Download the nsis compiler only when we pack cling. 2016-09-17 13:14:53 +02:00
Vassil Vassilev
95f07ec272 Cling standalone cmake builds on Windows require cmake 3.6.2.
We need to export symbols from cling's executable which was not possible until
the accepted in cmake patch by Bertrand.
2016-09-17 12:38:03 +02:00
Roman Zulak
5c8feeeb11 CPT: Fix optional argument being used as string. 2016-09-16 10:27:58 +02:00
Bertrand Bellenot
63514775af Fix problem of tar file creation on Windows (slash vs backslash issue) 2016-08-26 09:44:15 +02:00
Bertrand Bellenot
52839d827f Revert last change 2016-08-25 12:14:21 +02:00
Bertrand Bellenot
ba7c310d93 Try to fix the "WindowsError: [Error 2] The system cannot find the file specified" 2016-08-24 17:44:20 +02:00
Roman Zulak
dda75d5636 CPT: Add 'compiler' argument.
Explicitly passing the compiler from Travis or Appveyor allows it to be printed in the log more apparently.
Can further be extended to mark dependencies when building packages, or even copy C++ headers into install.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
6da7148d77 CPT: Add Build class and initial support for libc++ on Windows.
Build class can handle differences between Windows and Unix CMake.
libc++ on Windows is thoroughly untested.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
d28809327d CPT: Add --current_dev:branch[es] flag to build specific branches.
This makes it easier for contributors to use cling's Travis config while
testing changes they would like to submit.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
5f90efb317 CPT: Add ability to build libc++ with cling.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
7703d89956 CPT: Add --with-cmake-flags to pass explicit flags to CMake.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
2fd045e85f CPT: Disable fancy box printing on OS X, it's breaking Travis now.
Perhaps the file encoding has changed?

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-21 10:29:25 +02:00
Roman Zulak
f3e49bca33 CPT: Run cling showing include paths after build on Travis.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-19 13:44:09 +02:00
Roman Zulak
f7983e7751 Travis: Move logic into local functions.
Run ccache and build from the same block to control the result code.
Set CLING_BUILD_TIMEOUT in timeout. (+1 squashed commit)
Add ability to view / export CCACHE_LOGFILE.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-19 13:44:09 +02:00
Roman Zulak
abbd7814d5 CPT: Only limit cpus if building on Travis.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-19 13:44:09 +02:00
Roman Zulak
a7276f0df0 CPT: Fix Problems with exceptions
Failure in an exec_subprocess call will trigger cleanup,
but cleanup calls exec_subprocess, resulting in recursion.

Possible uninitialized variable in exec_subprocess_check_output.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-19 13:44:09 +02:00
Roman Zulak
eb624b555e CPT: Fix DLLVM_HOST_TRIPLE for Travis on OS X.
CMake thinks that the default output on OS X should be 32 bit.
Not sure if this is related to ccache or the env/virtualization they run.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-19 13:44:09 +02:00
Frederich Munch
3e65a6fee0 CPT: Fix git log hanging.
git log can hang waiting for stdin unless --no-pager argument is given.

Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-15 11:54:05 +02:00
Frederich Munch
6e13c66259 When building on Travis, use clone that Travis has already done. Saves some time, and necessary for pull-requests.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
2016-08-13 19:44:21 +02:00
Vassil Vassilev
6e23bb5f1e Optionally, don't cleanup after build, helps debugging.
Debug file dumps should be done outside cpt.
2016-08-12 15:14:10 +02:00
Vassil Vassilev
ec1a6fec18 Typo. 2016-08-12 09:44:16 +02:00
Vassil Vassilev
c5b99ae797 Make the json findable when we only download and call cpt.py. 2016-08-11 12:30:28 +02:00
Vassil Vassilev
d18e9ecdba We shouldn't force using libcxx. 2016-08-10 19:06:40 +02:00
Vassil Vassilev
d48e229db4 Only import pip if needed.
It requires installing a package on the system.
2016-08-10 19:06:40 +02:00
Vassil Vassilev
5877f3acb2 Revert "Disable llvm's terminal support."
We need this for colored diagnostics.
2016-08-09 12:29:32 +02:00
Vassil Vassilev
0f5ab9641f Disable llvm's terminal support.
We have our own terminal library. Not linking against libs like tinfo and ncurses
makes our binaries more platform independent.
2016-08-09 12:29:32 +02:00
Bertrand Bellenot
1fe0bf1ad0 Enable stack trace & suppress error dialog on Windows.
Suppressing the error dialog on Windows prevent hangs on build nodes. One can also use an environment variable (Cling_GuiOnAssert) to enable/disable the error dialogs.
2016-08-08 12:14:09 +02:00
Vassil Vassilev
fa7e1b69bd Use the tag which is currently building. Keep the assert. 2016-08-07 23:48:58 +02:00
Vassil Vassilev
819708255e Tag can start with letter other than v. 2016-08-07 23:28:45 +02:00
Anirudha Bose
29341720f9 CPT: Use assets from locally cloned cling 2016-08-05 18:14:07 +02:00
Anirudha Bose
97a92f7d5f CPT: Use dmgbuild to generate DMG files 2016-08-05 18:14:07 +02:00
Anirudha Bose
4dfb99bb45 CPT: OSX fixes and better filtering of dist files
The Cling build system can use CPT, instead of directly
reading tools/packaging/dist-files.mk
2016-08-05 18:14:07 +02:00
Vassil Vassilev
6da56fb4e9 Rely on clang on osx. GCC is long gone. 2016-08-05 18:14:07 +02:00
Vassil Vassilev
c36e71769d Fix cmake invocation on osx. 2016-08-05 15:26:37 +02:00
Vassil Vassilev
7d5cbc070e Build only host target on windows. Simplify. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
c49e3c3111 Print a new line. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
165852930b Run the tests in a platform-independent way. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
396bc54c6f Do not build clang as a target. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
e28d6d0b99 The unzipped subfolder is dependent on the platform. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
3e5abd7067 We need latest cmake to run cling's testsuite. Simplify. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
efdd4833c9 Use recent visual studio. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
8fd09ba0cf Adjust url. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
3b57a0a378 Find latest nsis binary. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
4839f298c6 Sourceforge redirects to https. 2016-08-05 11:23:41 +02:00
Vassil Vassilev
ad0d4d9b0d Build only target cling. Simplify. 2016-08-03 23:14:16 +02:00
Vassil Vassilev
4c824f89aa Make cpt debug friendly if --debug-on-error is passed.
Do not cleanup the workspace and dump a cmake log files.
2016-08-03 14:29:26 +02:00
Axel Naumann
6a4af89230 Find cling includes wherever the install is copied to. 2016-07-29 17:44:10 +02:00