Skip to content

Instantly share code, notes, and snippets.

@tkf
Last active October 25, 2018 06:18
Show Gist options
  • Save tkf/5f14bcc6957641be44f3bdba24e83a8c to your computer and use it in GitHub Desktop.
Save tkf/5f14bcc6957641be44f3bdba24e83a8c to your computer and use it in GitHub Desktop.
.PHONY: run
JULIA = julia
export JULIA_PROJECT = $(PWD)
run: venv
$(JULIA) --color=yes -e "using Pkg; Pkg.instantiate(); Pkg.API.precompile()"
venv/bin/python pyjulia_segfault.py $(JULIA)
venv:
python3 -m venv venv
venv/bin/pip install 'https://github.com/tkf/pyjulia/archive/245ac4c1b378a354c35342880d5e97a8cc62bba6.zip#egg=julia'
# https://github.com/JuliaPy/pyjulia/pull/204
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
[[Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "2d9e14d19bad3f9ad5cc5e4cffabc3cfa59de825"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "1.3.0"
[[Conda]]
deps = ["Compat", "JSON", "VersionParsing"]
git-tree-sha1 = "fb86fe40cb5b35990e368709bfdc1b46dbb99dac"
uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d"
version = "1.1.1"
[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
[[DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
[[DiffEqBase]]
deps = ["Compat", "IteratorInterfaceExtensions", "LinearAlgebra", "Pkg", "RecipesBase", "RecursiveArrayTools", "Requires", "Roots", "StaticArrays", "Statistics", "TableTraits", "Test", "TreeViews"]
git-tree-sha1 = "eceaeb2ec4abcdd5b50841965a5eccce11d0fe3d"
uuid = "2b5f629d-d688-5b77-993f-72d75c75574e"
version = "4.30.1"
[[Distributed]]
deps = ["LinearAlgebra", "Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
[[InteractiveUtils]]
deps = ["LinearAlgebra", "Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[IteratorInterfaceExtensions]]
deps = ["Test"]
git-tree-sha1 = "5484e5ede2a4137b9643f4d646e8e7b87b794415"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "0.1.1"
[[JSON]]
deps = ["Dates", "Distributed", "Mmap", "Pkg", "Sockets", "Test", "Unicode"]
git-tree-sha1 = "fec8e4d433072731466d37ed0061b3ba7f70eeb9"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.19.0"
[[LibGit2]]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
[[LinearAlgebra]]
deps = ["Libdl"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[MacroTools]]
deps = ["Compat"]
git-tree-sha1 = "c443e1c8d58a4e9f61b708ad0a88286c7042145b"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.4.4"
[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
[[Pkg]]
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[PyCall]]
deps = ["Compat", "Conda", "MacroTools", "Statistics", "VersionParsing"]
git-tree-sha1 = "0d2906488da60237036e2dda3ed2bd201da60dac"
repo-rev = "0b810b50e55b36909f3aa259edb1fe39ace26fb5"
repo-url = "https://github.com/JuliaPy/PyCall.jl.git"
uuid = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
version = "1.18.5+"
[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[RecipesBase]]
deps = ["Pkg", "Random", "Test"]
git-tree-sha1 = "0b3cb370ee4dc00f47f1193101600949f3dcf884"
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
version = "0.6.0"
[[RecursiveArrayTools]]
deps = ["RecipesBase", "Requires", "StaticArrays", "Statistics", "Test"]
git-tree-sha1 = "24dd0469af1479902590e3b2d266b5058cf6f6c9"
uuid = "731186ca-8d62-57ce-b412-fbd966d074cd"
version = "0.18.3"
[[Requires]]
deps = ["Test"]
git-tree-sha1 = "f6fbf4ba64d295e146e49e021207993b6b48c7d1"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "0.5.2"
[[Roots]]
deps = ["Compat", "Printf"]
git-tree-sha1 = "9a66815d2530705097a5668efa8b88aa238ada47"
uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665"
version = "0.7.3"
[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
[[StaticArrays]]
deps = ["InteractiveUtils", "LinearAlgebra", "Pkg", "Random", "Statistics", "Test"]
git-tree-sha1 = "e4b174b7b0ad75ebfadb659dea43c56361b96ec8"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.9.1"
[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
[[TableTraits]]
deps = ["IteratorInterfaceExtensions", "Test"]
git-tree-sha1 = "da062a2c31f16178f68190243c24140801720a43"
uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "0.4.0"
[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[TreeViews]]
deps = ["Test"]
git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6"
uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7"
version = "0.3.0"
[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
[[VersionParsing]]
deps = ["Compat"]
git-tree-sha1 = "c9d5aa108588b978bd859554660c8a5c4f2f7669"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
version = "1.1.3"
[deps]
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0"
from julia import Julia
def segfault(julia):
Julia(runtime=julia)
from julia import Main
Main.eval("""
@show Base.active_project()
using Pkg
Pkg.status()
""")
Main.eval("import DiffEqBase") # required for segfault
Main.eval("""
show(IOBuffer(), "text/plain", @doc Base.Enum)
""")
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("julia", nargs="?", default="julia")
ns = parser.parse_args()
segfault(ns.julia)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment