xeus-cling icon indicating copy to clipboard operation
xeus-cling copied to clipboard

Release of cling v0.9 based on LLVM9

Open vgvassilev opened this issue 4 years ago • 6 comments

Hi all,

I just wanted to give you heads up that we are about to release cling v0.9 which is based on llvm9.

Are there any issues on the xeus-cling side with the current master?

Best, Vassil

vgvassilev avatar Mar 17 '21 08:03 vgvassilev

Hey @vgvassilev thanks for posting here.

I have not tried the current master quite yet. How much time do we have before the release. Is it a matter of hours or days?

SylvainCorlay avatar Mar 17 '21 10:03 SylvainCorlay

ROOT and cling's CUDA backend seems happy. It is not urgent but basically I am waiting for your green light to prepare a new release.

vgvassilev avatar Mar 17 '21 10:03 vgvassilev

ping...

vgvassilev avatar Mar 25 '21 19:03 vgvassilev

Hey, sorry for the late reply.

I can't think of anything that may block us from using an llvm9-based build. I will need to check if the llvm apis that we use to redirect printf here but it is not really cling0related.

Most of the complexity on our side will be about making the variants of the clang (and potentially llvm) packages on conda-forge, which is not super simple.

SylvainCorlay avatar Mar 25 '21 20:03 SylvainCorlay

Heya -- thank you for providing such an amazing tool! If it's not too much trouble/time, would you be willing to bump cling to version 0.9 please 🙏

The jump in LLVM/Clang versions (and consequently supported C++ features) was quite drastic I could also maybe look into trying to PR this


EDIT: I think it might build if you slightly tweak the Jupyter kernel patch, left comment here: https://github.com/conda-forge/cling-feedstock/pull/48#issuecomment-850855701

GavinRay97 avatar May 29 '21 15:05 GavinRay97

Hi team, I did run across a crash when trying to display an image, noticed that the crash was found only in the xeus-cling-dev env but not in base env, where xeus-cling was installed via a conda command conda install xeus-cling -c conda-forge.. see more details from Build xeus-cling from source.

Problem Desc: notebook run displayImage caused a crash

plt::figure();
plt::imshow(image);
auto pltImg = displayImage(image);

run displayImage(image) ended up with following crash.

Fatal Python error: init_import_site: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/site.py", line 73, in <module>
    import os
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/os.py", line 29, in <module>
    from _collections_abc import _check_methods
  File "/Users/nling/opt/miniconda3/envs/xeus-cling-dev/lib/python3.9/_collections_abc.py", line 416, in <module>
    class _CallableGenericAlias(GenericAlias):
TypeError: type 'types.GenericAlias' is not an acceptable base type

source code of displayImage:

auto displayImage(){
    plt::save("tmp.png");
    auto img = im::image("tmp.png");
    return img;
}

conda info outputs for the base env:

(base) ➜  ~ conda install xeus-cling -c conda-forge
(base) ➜  ~ conda info

     active environment : base
    active env location : /Users/nling/opt/miniconda3
            shell level : 1
       user config file : /Users/nling/.condarc
 populated config files :
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.9.1.final.0
       virtual packages : __osx=10.15.7=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/nling/opt/miniconda3  (writable)
      conda av data dir : /Users/nling/opt/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/nling/opt/miniconda3/pkgs
                          /Users/nling/.conda/pkgs
       envs directories : /Users/nling/opt/miniconda3/envs
                          /Users/nling/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.0 CPython/3.9.1 Darwin/19.6.0 OSX/10.15.7
                UID:GID : 501:20
             netrc file : None
           offline mode : False

conda list output for the base env:

(base) ➜  ~ conda list
# packages in environment at /Users/nling/opt/miniconda3:
#
# Name                    Version                   Build  Channel
anyio                     3.2.1            py39h6e9494a_0    conda-forge
appnope                   0.1.2            py39h6e9494a_1    conda-forge
argon2-cffi               20.1.0           py39hcbf5805_2    conda-forge
async_generator           1.10                       py_0    conda-forge
attrs                     21.2.0             pyhd8ed1ab_0    conda-forge
babel                     2.9.1              pyh44b312d_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
blas                      1.0                         mkl
bleach                    3.3.0              pyh44b312d_0    conda-forge
brotlipy                  0.7.0           py39h9ed2024_1003
ca-certificates           2021.5.30            h033912b_0    conda-forge
certifi                   2021.5.30        py39h6e9494a_0    conda-forge
cffi                      1.14.4           py39h2125817_0
chardet                   3.0.4           py39hecd8cb5_1003
clang_variant             1.0                  cling_v0.8    conda-forge
clangdev                  5.0.0             hf1592d7_1012    conda-forge
cling                     0.8                  h1d6eb1e_0    conda-forge
conda                     4.10.1           py39h6e9494a_0    conda-forge
conda-package-handling    1.7.2            py39h9ed2024_1
cppzmq                    4.7.1                hf09c4ce_2    conda-forge
cryptography              3.3.1            py39hbcfaee0_0
cycler                    0.10.0                     py_2    conda-forge
decorator                 5.0.9              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
entrypoints               0.3             pyhd8ed1ab_1003    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
icu                       68.1                 h74dc148_0    conda-forge
idna                      2.10                       py_0
importlib-metadata        4.5.0            py39h6e9494a_0    conda-forge
intel-openmp              2021.2.0           hecd8cb5_564
ipykernel                 5.5.5            py39h71a6800_0    conda-forge
ipython                   7.24.1           py39h71a6800_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jbig                      2.1               h0d85af4_2003    conda-forge
jedi                      0.18.0           py39h6e9494a_2    conda-forge
jinja2                    3.0.1              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   hbcb3906_0    conda-forge
json5                     0.9.5              pyh9f0ad1d_0    conda-forge
jsonschema                3.2.0              pyhd8ed1ab_3    conda-forge
jupyter_client            6.1.12             pyhd8ed1ab_0    conda-forge
jupyter_core              4.7.1            py39h6e9494a_0    conda-forge
jupyter_server            1.9.0              pyhd8ed1ab_0    conda-forge
jupyterlab                3.0.16             pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.1.2              pyh9f0ad1d_0    conda-forge
jupyterlab_server         2.6.0              pyhd8ed1ab_0    conda-forge
kiwisolver                1.3.1            py39hedf5dff_1    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      2.2.1                h046ec9c_0    conda-forge
libcxx                    11.1.0               habf9029_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libedit                   3.1.20191231         h1de35cc_1
libffi                    3.3                  hb1e8313_2
libiconv                  1.16                 haf1e3a3_0    conda-forge
libpng                    1.6.37               h7cec526_2    conda-forge
libsodium                 1.0.18               hbcb3906_1    conda-forge
libtiff                   4.3.0                h1167814_1    conda-forge
libwebp-base              1.2.0                h0d85af4_2    conda-forge
libxml2                   2.9.12               h93ec3fd_0    conda-forge
lz4-c                     1.9.3                h046ec9c_0    conda-forge
markupsafe                2.0.1            py39h89e85a6_0    conda-forge
matplotlib                3.4.2            py39h6e9494a_0    conda-forge
matplotlib-base           3.4.2            py39hb07454d_0    conda-forge
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py39hcbf5805_1003    conda-forge
mkl                       2021.2.0           hecd8cb5_269
mkl-service               2.3.0            py39h9ed2024_1
mkl_fft                   1.3.0            py39h4a7008c_2
mkl_random                1.2.1            py39hb2f4e1b_2
nbclassic                 0.3.1              pyhd8ed1ab_1    conda-forge
nbclient                  0.5.3              pyhd8ed1ab_0    conda-forge
nbconvert                 6.1.0            py39h6e9494a_0    conda-forge
nbformat                  5.1.3              pyhd8ed1ab_0    conda-forge
ncurses                   6.2                  h0a44026_1
nest-asyncio              1.5.1              pyhd8ed1ab_0    conda-forge
nlohmann_json             3.9.1                he49afe7_1    conda-forge
notebook                  6.4.0              pyha770c72_0    conda-forge
numpy                     1.20.2           py39h4b4dc7a_0
numpy-base                1.20.2           py39he0bd621_0
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h6e7aa92_1    conda-forge
openssl                   1.1.1k               h0d85af4_0    conda-forge
packaging                 20.9               pyh44b312d_0    conda-forge
pandoc                    2.14.0.3             h0d85af4_0    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
parso                     0.8.2              pyhd8ed1ab_0    conda-forge
pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    8.2.0            py39h5fdd921_1    conda-forge
pip                       20.3.1           py39hecd8cb5_0
prometheus_client         0.11.0             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.19             pyha770c72_0    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pugixml                   1.11.4               he49afe7_0    conda-forge
pycosat                   0.6.3            py39h9ed2024_0
pycparser                 2.20                       py_2
pygments                  2.9.0              pyhd8ed1ab_0    conda-forge
pyopenssl                 20.0.0             pyhd3eb1b0_1
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
pyrsistent                0.17.3           py39hcbf5805_2    conda-forge
pysocks                   1.7.1            py39hecd8cb5_0
python                    3.9.1                h88f2d9e_2
python-dateutil           2.8.1                      py_0    conda-forge
python.app                3                py39h9ed2024_0
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
pyzmq                     22.1.0           py39h7fec2f1_0    conda-forge
readline                  8.0                  h1de35cc_0
requests                  2.25.0             pyhd3eb1b0_0
requests-unixsocket       0.2.0                      py_0    conda-forge
ruamel_yaml               0.15.80          py39h9ed2024_0
send2trash                1.7.1              pyhd8ed1ab_0    conda-forge
setuptools                51.0.0           py39hecd8cb5_2
six                       1.15.0           py39hecd8cb5_0
sniffio                   1.2.0            py39h6e9494a_1    conda-forge
sqlite                    3.33.0               hffcf06c_0
terminado                 0.10.1           py39h6e9494a_0    conda-forge
testpath                  0.5.0              pyhd8ed1ab_0    conda-forge
tk                        8.6.10               hb0a8c7a_0
tornado                   6.1              py39hcbf5805_1    conda-forge
tqdm                      4.54.1             pyhd3eb1b0_0
traitlets                 5.0.5                      py_0    conda-forge
tzdata                    2020d                h14c3975_0
urllib3                   1.25.11                    py_0
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webencodings              0.5.1                      py_1    conda-forge
websocket-client          0.57.0           py39h6e9494a_4    conda-forge
wheel                     0.36.1             pyhd3eb1b0_0
xeus                      1.0.3                hf09c4ce_1    conda-forge
xeus-cling                0.12.1               h79ef1c8_0    conda-forge
xtl                       0.7.2                h940c156_1    conda-forge
xz                        5.2.5                h1de35cc_0
yaml                      0.2.5                haf1e3a3_0
zeromq                    4.3.4                h1c7c35f_0    conda-forge
zipp                      3.4.1              pyhd8ed1ab_0    conda-forge
zlib                      1.2.11               h1de35cc_3
zstd                      1.5.0                h582d3a0_0    conda-forge

conda info outputs for the xeus-cling-dev env:

(xeus-cling-dev) ➜  ~ conda info

     active environment : xeus-cling-dev
    active env location : /Users/nling/opt/miniconda3/envs/xeus-cling-dev
            shell level : 2
       user config file : /Users/nling/.condarc
 populated config files :
          conda version : 4.10.1
    conda-build version : not installed
         python version : 3.9.1.final.0
       virtual packages : __osx=10.15.7=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/nling/opt/miniconda3  (writable)
      conda av data dir : /Users/nling/opt/miniconda3/etc/conda
  conda av metadata url : https://repo.anaconda.com/pkgs/main
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/nling/opt/miniconda3/pkgs
                          /Users/nling/.conda/pkgs
       envs directories : /Users/nling/opt/miniconda3/envs
                          /Users/nling/.conda/envs
               platform : osx-64
             user-agent : conda/4.10.1 requests/2.25.0 CPython/3.9.1 Darwin/19.6.0 OSX/10.15.7
                UID:GID : 501:20
             netrc file : None
           offline mode : False

conda list output for the xeus-cling-dev env:

(xeus-cling-dev) ➜  ~ conda list
# packages in environment at /Users/nling/opt/miniconda3/envs/xeus-cling-dev:
#
# Name                    Version                   Build  Channel
anyio                     2.2.0            py39hecd8cb5_1
appnope                   0.1.2           py39hecd8cb5_1001
argon2-cffi               20.1.0           py39h9ed2024_1
async_generator           1.10               pyhd3eb1b0_0
attrs                     21.2.0             pyhd3eb1b0_0
babel                     2.9.1              pyhd3eb1b0_0
backcall                  0.2.0              pyhd3eb1b0_0
blas                      1.0                         mkl
bleach                    3.3.0              pyhd3eb1b0_0
brotlipy                  0.7.0           py39h9ed2024_1003
bzip2                     1.0.8                h1de35cc_0
c-ares                    1.17.1               h9ed2024_0
ca-certificates           2021.5.25            hecd8cb5_1
certifi                   2021.5.30        py39hecd8cb5_0
cffi                      1.14.5           py39h2125817_0
chardet                   4.0.0           py39hecd8cb5_1003
clang_variant             1.0                  cling_v0.8    conda-forge
clangdev                  5.0.0             hf1592d7_1012    conda-forge
cling                     0.8                  h1d6eb1e_0    conda-forge
cmake                     3.20.5               hdbd2f3e_0    conda-forge
cppzmq                    4.7.1                hf09c4ce_2    conda-forge
cryptography              3.4.7            py39h2fd3fbb_0
cxxopts                   2.2.1                h9a9d8cb_0    conda-forge
cycler                    0.10.0           py39hecd8cb5_0
decorator                 5.0.9              pyhd3eb1b0_0
defusedxml                0.7.1              pyhd3eb1b0_0
entrypoints               0.3              py39hecd8cb5_0
expat                     2.4.1                h23ab428_2
freetype                  2.10.4               ha233b18_0
icu                       58.2                 h0a44026_3
idna                      2.10               pyhd3eb1b0_0
importlib-metadata        3.10.0           py39hecd8cb5_0
importlib_metadata        3.10.0               hd3eb1b0_0
intel-openmp              2021.2.0           hecd8cb5_564
ipykernel                 5.3.4            py39h01d92e1_0
ipython                   7.24.1           py39h71a6800_0    conda-forge
ipython_genutils          0.2.0              pyhd3eb1b0_1
jbig                      2.1                  h4d881f8_0
jedi                      0.18.0           py39hecd8cb5_1
jinja2                    3.0.1              pyhd3eb1b0_0
jpeg                      9d                   hbcb3906_0    conda-forge
json5                     0.9.6              pyhd3eb1b0_0
jsonschema                3.2.0                      py_2
jupyter_client            6.1.12             pyhd3eb1b0_0
jupyter_core              4.7.1            py39hecd8cb5_0
jupyter_server            1.4.1            py39hecd8cb5_0
jupyterlab                3.0.16             pyhd8ed1ab_0    conda-forge
jupyterlab_pygments       0.1.2                      py_0
jupyterlab_server         2.4.0              pyhd3eb1b0_0
kiwisolver                1.3.1            py39h23ab428_0
krb5                      1.19.1               hcd88c3b_0
lcms2                     2.12                 hf1fd2bf_0
lerc                      2.2.1                h23ab428_0
libcurl                   7.77.0               hf45b732_0    conda-forge
libcxx                    11.1.0               habf9029_0    conda-forge
libdeflate                1.7                  h9ed2024_5
libedit                   3.1.20210216         h9ed2024_1
libev                     4.33                 haf1e3a3_0
libffi                    3.3                  hb1e8313_2
libiconv                  1.16                 h1de35cc_0
libnghttp2                1.43.0               h07e645a_0    conda-forge
libpng                    1.6.37               ha441bb4_0
libsodium                 1.0.18               h1de35cc_0
libssh2                   1.9.0                ha12b0ac_1
libtiff                   4.3.0                h1167814_1    conda-forge
libuv                     1.40.0               haf1e3a3_0
libwebp-base              1.2.0                h9ed2024_0
libxml2                   2.9.12               hcdb78fc_0
llvm-meta                 5.0.0                         0    conda-forge
llvmdev                   5.0.0             h926bf3e_1005    conda-forge
lz4-c                     1.9.3                h23ab428_0
markupsafe                2.0.1            py39h9ed2024_0
matplotlib                3.3.4            py39hecd8cb5_0
matplotlib-base           3.3.4            py39h8b3ea08_0
matplotlib-inline         0.1.2              pyhd8ed1ab_2    conda-forge
mistune                   0.8.4           py39h9ed2024_1000
mkl                       2021.2.0           hecd8cb5_269
mkl-service               2.3.0            py39h9ed2024_1
mkl_fft                   1.3.0            py39h4a7008c_2
mkl_random                1.2.1            py39hb2f4e1b_2
nbclassic                 0.2.6              pyhd3eb1b0_0
nbclient                  0.5.3              pyhd3eb1b0_0
nbconvert                 6.0.7            py39hecd8cb5_0
nbformat                  5.1.3              pyhd3eb1b0_0
ncurses                   6.2                  h0a44026_1
nest-asyncio              1.5.1              pyhd3eb1b0_0
nlohmann_json             3.9.1                he49afe7_1    conda-forge
notebook                  6.4.0            py39hecd8cb5_0
numpy                     1.20.2           py39h4b4dc7a_0
numpy-base                1.20.2           py39he0bd621_0
olefile                   0.46                       py_0
openssl                   1.1.1k               h9ed2024_0
packaging                 20.9               pyhd3eb1b0_0
pandoc                    2.12                 hecd8cb5_0
pandocfilters             1.4.3            py39hecd8cb5_1
parso                     0.8.2              pyhd3eb1b0_0
pexpect                   4.8.0              pyhd3eb1b0_3
pickleshare               0.7.5           pyhd3eb1b0_1003
pillow                    8.2.0            py39h5270095_0
pip                       21.1.2           py39hecd8cb5_0
prometheus_client         0.11.0             pyhd3eb1b0_0
prompt-toolkit            3.0.17             pyh06a4308_0
ptyprocess                0.7.0              pyhd3eb1b0_2
pugixml                   1.11.4               he49afe7_0    conda-forge
pycparser                 2.20                       py_2
pygments                  2.9.0              pyhd3eb1b0_0
pyopenssl                 20.0.1             pyhd3eb1b0_1
pyparsing                 2.4.7              pyhd3eb1b0_0
pyrsistent                0.17.3           py39h9ed2024_0
pysocks                   1.7.1            py39hecd8cb5_0
python                    3.9.5                h88f2d9e_3
python-dateutil           2.8.1              pyhd3eb1b0_0
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd3eb1b0_0
pyzmq                     20.0.0           py39h23ab428_1
readline                  8.1                  h9ed2024_0
requests                  2.25.1             pyhd3eb1b0_0
rhash                     1.4.1                hbcfaee0_1
send2trash                1.5.0              pyhd3eb1b0_1
setuptools                52.0.0           py39hecd8cb5_0
six                       1.16.0             pyhd3eb1b0_0
sniffio                   1.2.0            py39hecd8cb5_1
sqlite                    3.36.0               hce871da_0
terminado                 0.9.4            py39hecd8cb5_0
testpath                  0.5.0              pyhd3eb1b0_0
tk                        8.6.10               hb0a8c7a_0
tornado                   6.1              py39h9ed2024_0
traitlets                 5.0.5              pyhd3eb1b0_0
tzdata                    2021a                h52ac0ba_0
urllib3                   1.26.4             pyhd3eb1b0_0
wcwidth                   0.2.5                      py_0
webencodings              0.5.1            py39hecd8cb5_1
wheel                     0.36.2             pyhd3eb1b0_0
xeus                      1.0.0                h6daa668_0    conda-forge
xtl                       0.7.2                h940c156_1    conda-forge
xz                        5.2.5                h1de35cc_0
zeromq                    4.3.4                h23ab428_0
zipp                      3.4.1              pyhd3eb1b0_0
zlib                      1.2.11               h1de35cc_3
zstd                      1.5.0                h582d3a0_0    conda-forge

Ran conda update matplotlib, trying to downgrade matplotlib from v3.4.2 to v3.3.4. Rebuild and reinstall xeus-cling, wasn't lucky, the crash is still there.

(xeus-cling-dev) ➜  opencv conda update matplotlib
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/nling/opt/miniconda3/envs/xeus-cling-dev

  added / updated specs:
    - matplotlib


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    matplotlib-3.3.4           |   py39hecd8cb5_0          26 KB
    matplotlib-base-3.3.4      |   py39h8b3ea08_0         5.1 MB
    ------------------------------------------------------------
                                           Total:         5.1 MB

The following packages will be SUPERSEDED by a higher-priority channel:

  matplotlib         conda-forge::matplotlib-3.4.2-py39h6e~ --> pkgs/main::matplotlib-3.3.4-py39hecd8cb5_0
  matplotlib-base    conda-forge::matplotlib-base-3.4.2-py~ --> pkgs/main::matplotlib-base-3.3.4-py39h8b3ea08_0

lingxuxiong avatar Jun 28 '21 04:06 lingxuxiong