Code Monkey home page Code Monkey logo

Comments (25)

bernstei avatar bernstei commented on August 29, 2024 1

From the JuliaPkg docs, it can use PYTHON_JULIAPKG_PROJECT, but not @., only an absolute path.

from acehal.

bernstei avatar bernstei commented on August 29, 2024

Interesting, thanks.

from acehal.

casv2 avatar casv2 commented on August 29, 2024
Internal error: encountered unexpected error in runtime:
UndefRefError()
getindex at ./array.jl:861 [inlined]
copy_exprargs at ./expr.jl:64
copy at ./expr.jl:37
copy_exprs at ./expr.jl:42
copy_exprargs at ./expr.jl:64
inflate_ir at ./compiler/ssair/legacy.jl:14
inflate_ir at ./compiler/ssair/legacy.jl:10
InliningTodo at ./compiler/ssair/inlining.jl:864
jfptr_InliningTodo_7598.clone_1 at /home/casv2/julia-1.7.3/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
resolve_todo at ./compiler/ssair/inlining.jl:795
analyze_method! at ./compiler/ssair/inlining.jl:851
analyze_single_call! at ./compiler/ssair/inlining.jl:1238
assemble_inline_todo! at ./compiler/ssair/inlining.jl:1419
ssa_inlining_pass! at ./compiler/ssair/inlining.jl:80
jfptr_ssa_inlining_passNOT._15146.clone_1 at /home/casv2/julia-1.7.3/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
run_passes at ./compiler/optimize.jl:307
optimize at ./compiler/optimize.jl:296 [inlined]
_typeinf at ./compiler/typeinfer.jl:255
typeinf at ./compiler/typeinfer.jl:209
typeinf_edge at ./compiler/typeinfer.jl:823 [inlined]
abstract_call_method at ./compiler/abstractinterpretation.jl:504
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105
abstract_call_known at ./compiler/abstractinterpretation.jl:1342
abstract_call at ./compiler/abstractinterpretation.jl:1397
abstract_call at ./compiler/abstractinterpretation.jl:1382
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534
typeinf_local at ./compiler/abstractinterpretation.jl:1918
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014
_typeinf at ./compiler/typeinfer.jl:226
typeinf at ./compiler/typeinfer.jl:209
typeinf_edge at ./compiler/typeinfer.jl:823 [inlined]
abstract_call_method at ./compiler/abstractinterpretation.jl:504
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105
abstract_call_known at ./compiler/abstractinterpretation.jl:1342
abstract_call at ./compiler/abstractinterpretation.jl:1397
abstract_call at ./compiler/abstractinterpretation.jl:1382
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534
typeinf_local at ./compiler/abstractinterpretation.jl:1900
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014
_typeinf at ./compiler/typeinfer.jl:226
typeinf at ./compiler/typeinfer.jl:209
typeinf_ext at ./compiler/typeinfer.jl:909
typeinf_ext_toplevel at ./compiler/typeinfer.jl:942
typeinf_ext_toplevel at ./compiler/typeinfer.jl:938
jfptr_typeinf_ext_toplevel_11534.clone_1 at /home/casv2/julia-1.7.3/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
jl_type_infer at /buildworker/worker/package_linux64/build/src/gf.c:295
jl_generate_fptr at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:338
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1980
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:2246 [inlined]
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2239 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#AnalyticTransform#6 at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:277
AnalyticTransform at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:267 [inlined]
#agnesi_transform#5 at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:225
agnesi_transform at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:213 [inlined]
#10 at ./none:0 [inlined]
iterate at ./generator.jl:47 [inlined]
collect at ./array.jl:724
unknown function (ip: 0x14bd33f84a84)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#_transform#9 at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:168
_transform##kw at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:160 [inlined]
_pair_basis at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:235
unknown function (ip: 0x14bd2f883934)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#ace_basis#23 at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:291
ace_basis##kw at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:289
unknown function (ip: 0x14bd33f7f324)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
top-level scope at none:9
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
jl_eval_string at /buildworker/worker/package_linux64/build/src/jlapi.c:115
ffi_call_unix64 at /home/casv2/miniconda3/lib/python3.9/lib-dynload/../../libffi.so.7 (unknown line)
ffi_call_int at /home/casv2/miniconda3/lib/python3.9/lib-dynload/../../libffi.so.7 (unknown line)
_call_function_pointer at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/callproc.c:920 [inlined]
_ctypes_callproc at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/callproc.c:1263
PyCFuncPtr_call at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/_ctypes.c:4201
_PyObject_MakeTpCall at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90251a3)
unknown function (ip: 0x555ba90d72e3)
unknown function (ip: 0x555ba90251c9)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90d83fc)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acb31)
PyEval_EvalCodeEx at python (unknown line)
PyEval_EvalCode at python (unknown line)
unknown function (ip: 0x555ba915ce8a)
unknown function (ip: 0x555ba918d214)
unknown function (ip: 0x555ba9038676)
PyRun_SimpleFileExFlags at python (unknown line)
Py_RunMain at python (unknown line)
Py_BytesMain at python (unknown line)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x555ba911aa63)

signal (11): Segmentation fault
in expression starting at none:9
simple_use_analysis at /buildworker/worker/package_linux64/build/src/codegen.cpp:2269
simple_use_analysis at /buildworker/worker/package_linux64/build/src/codegen.cpp:2289
emit_function at /buildworker/worker/package_linux64/build/src/codegen.cpp:6338
jl_emit_code at /buildworker/worker/package_linux64/build/src/codegen.cpp:7688
jl_emit_codeinst at /buildworker/worker/package_linux64/build/src/codegen.cpp:7733
jl_compile_workqueue at /buildworker/worker/package_linux64/build/src/codegen.cpp:7837
_jl_compile_codeinst at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:127
jl_generate_fptr at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:350
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1980
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:2246 [inlined]
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2239 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
cconvert at ./essentials.jl:417
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
FunctionWrapper at /home/casv2/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:106
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#AnalyticTransform#6 at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:277
AnalyticTransform at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:267 [inlined]
#agnesi_transform#5 at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:225
agnesi_transform at /home/casv2/.julia/packages/ACE1/G18CB/src/polynomials/transforms.jl:213 [inlined]
#10 at ./none:0 [inlined]
iterate at ./generator.jl:47 [inlined]
collect at ./array.jl:724
unknown function (ip: 0x14bd33f84a84)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#_transform#9 at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:168
_transform##kw at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:160 [inlined]
_pair_basis at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:235
unknown function (ip: 0x14bd2f883934)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#ace_basis#23 at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:291
ace_basis##kw at /home/casv2/.julia/packages/ACE1x/2WWoB/src/defaults.jl:289
unknown function (ip: 0x14bd33f7f324)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
jl_eval_string at /buildworker/worker/package_linux64/build/src/jlapi.c:115
ffi_call_unix64 at /home/casv2/miniconda3/lib/python3.9/lib-dynload/../../libffi.so.7 (unknown line)
ffi_call_int at /home/casv2/miniconda3/lib/python3.9/lib-dynload/../../libffi.so.7 (unknown line)
_call_function_pointer at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/callproc.c:920 [inlined]
_ctypes_callproc at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/callproc.c:1263
PyCFuncPtr_call at /usr/local/src/conda/python-3.9.5/Modules/_ctypes/_ctypes.c:4201
_PyObject_MakeTpCall at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90251a3)
unknown function (ip: 0x555ba90d72e3)
unknown function (ip: 0x555ba90251c9)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acb31)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90d83fc)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
_PyObject_Call at python (unknown line)
_PyEval_EvalFrameDefault at python (unknown line)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba90253bd)
unknown function (ip: 0x555ba90acd2a)
_PyFunction_Vectorcall at python (unknown line)
unknown function (ip: 0x555ba9024eff)
unknown function (ip: 0x555ba90acb31)
PyEval_EvalCodeEx at python (unknown line)
PyEval_EvalCode at python (unknown line)
unknown function (ip: 0x555ba915ce8a)
unknown function (ip: 0x555ba918d214)
unknown function (ip: 0x555ba9038676)
PyRun_SimpleFileExFlags at python (unknown line)
Py_RunMain at python (unknown line)
Py_BytesMain at python (unknown line)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x555ba911aa63)
Allocations: 4240617084 (Pool: 4229890461; Big: 10726623); GC: 3056

Got a weird undefined reference error. Maybe we should move to juliacall sooner rather than later?

from acehal.

casv2 avatar casv2 commented on August 29, 2024

I'll open a branch and look into swapping out julia with juliacall, should be quite straightforward

from acehal.

bernstei avatar bernstei commented on August 29, 2024

Do you want to run it by the slack ACE channel, in case anyone has a clue what it might be? It's looking more like a pure julia error than a python-julia interface error to me.

from acehal.

casv2 avatar casv2 commented on August 29, 2024

It seems similar as to what's going on here JuliaPy/pyjulia#306? A signal 11 segfault, swapping out for juliacall should be fairly straightforward. This python-julia connection has given us far too many headaches...

from acehal.

wcwitt avatar wcwitt commented on August 29, 2024

@tjjarvinen, do you have any experience with juliacall?

from acehal.

tjjarvinen avatar tjjarvinen commented on August 29, 2024

@tjjarvinen, do you have any experience with juliacall?

Very little. I am not comfortable with it unfortunately.

from acehal.

wcwitt avatar wcwitt commented on August 29, 2024

Thanks anyway

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Ugh

>>> jl.seval("using ASE, JuLIP, ACE1")
[ Info: Precompiling ASE [51974c44-a7ed-5088-b8be-3e78c8ba416c]
[ Info: Skipping precompilation since __precompile__(false). Importing ASE [51974c44-a7ed-5088-b8be-3e78c8ba416c].
python(84739,0x1172b2600) malloc: *** error for object 0x107d62080: pointer being freed was not allocated
python(84739,0x1172b2600) malloc: *** set a breakpoint in malloc_error_break to debug
[1]    84739 abort      python

juliacall trying to import the modules...

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Previously these segfaults seemed extremely version and platform specific unfortunately.

from acehal.

bernstei avatar bernstei commented on August 29, 2024

I wonder if we need to limp along until we can use pure python (+ C++? LAMMPS?) for evaluation, and pure julia for fitting.

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Probably.. restarting HAL every 30-40 iterations is not workable though...

Error message above came from my local Mac install, maybe not that relevant actually. Can someone reading this try pip install juliacall and run

import juliacall
from juliacall import Main as jl
jl.seval("using Pkg")
jl.seval("pkg\"add ASE, JuLIP, ACE1x, ACE1\"")
jl.seval("using ASE, JuLIP, ACE1x, ACE1")

EDIT: my unix cluster also crashed... argh...

>>> jl.seval("using ASE, JuLIP, ACE1x, ACE1")
[ Info: Precompiling ASE [51974c44-a7ed-5088-b8be-3e78c8ba416c]
[ Info: Skipping precompilation since __precompile__(false). Importing ASE [51974c44-a7ed-5088-b8be-3e78c8ba416c].
[ Info: Precompiling PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]
free(): invalid pointer
Aborted

Am I doing something wrong? I think it may be unhappy by ASE.jl setting up it's own Python and calling Python ASE again? This connection is very weird and likely causing all this trouble

from acehal.

bernstei avatar bernstei commented on August 29, 2024

Trying this now, but one thing I noticed is that it's using the wrong julia project. When I do the first import it says

[juliapkg] Using Julia project at /home/cluster2/bernstei/.julia/environments/pyjuliapkg

even though my JULIA_PROJECT is pointing to the current directory (@.) and there's a Project.toml present.

from acehal.

casv2 avatar casv2 commented on August 29, 2024

It's stubborn and likes it's own Project, mine's in ~/miniconda3/julia_env. From the docs

A Julia environment is also created, activated and populated with any required packages. If you are in a virtual or Conda environment, the environment is put there. Otherwise a global environment is used at ~/.julia/environments/pyjuliapkg.

from acehal.

casv2 avatar casv2 commented on August 29, 2024

jl.seval("using JuLIP, ACE1x, ACE1")

does not crash for me. Seems like it dislikes ASE.jl, but we do need it...

I guess this means we're stuck with pyjulia? I've used it for years and from experience it's usually resulted in some combinations of versions being stable for while, until you update... Then everything's broken again...

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Actually looking at pyjulia it does seems there was a bugfix very recently, fingers crossed!

from acehal.

bernstei avatar bernstei commented on August 29, 2024

Well, it overwrote my Project.toml, but the juliacall import/using worked.

from acehal.

bernstei avatar bernstei commented on August 29, 2024

I restored my Project.toml, added PythonCall to julia myself, then ran the juliacall lines without the Pkg.add one, and it seemed to work fine, no crash (Linux julia 1.8.1) (all with PYTHON_JULIAPKG_PROJECT set to my already mostly configured julia Project.toml)

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Thank you, I’m on Julia v1.7, this may be the issue. But this kind of brittleness seems familiar regarding this Python-Julia connection…

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Updating pyjulia=0.6.1 and Julia=1.8.5 (latest) and let's see whether these problems disappear, if not we may have to switch to juliacall. This experience doesn't convince me it's necessarily more robust

from acehal.

casv2 avatar casv2 commented on August 29, 2024

I think @JPDarby may have also been on Julia v1.7.x, I'll ask him when he gets back next week

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Let's leave this open but if anyone is experiencing problems, please try out pyjulia=0.6.1 and Julia=1.8.5. This is working well for me at least

from acehal.

casv2 avatar casv2 commented on August 29, 2024

Anyone had any luck with julia 1.9.0-rc2? Segfaults again for me... @JPDarby I think this is relevant for you

from acehal.

cortner avatar cortner commented on August 29, 2024

I would stay away from it for now.

from acehal.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.