Anooj commited on
Commit
5df657d
1 Parent(s): a5173d1

move app code here

Browse files
Files changed (6) hide show
  1. Dockerfile +20 -208
  2. Manifest.toml +621 -0
  3. Project.toml +12 -0
  4. app.jl +44 -0
  5. src/ImpCatcher.jl +7 -0
  6. src/simulate.jl +59 -0
Dockerfile CHANGED
@@ -1,208 +1,20 @@
1
- # Paperspace Dockerfile for Gradient base image
2
- # Paperspace image is located in Dockerhub registry: paperspace/gradient_base
3
-
4
- # ==================================================================
5
- # module list
6
- # ------------------------------------------------------------------
7
- # python 3.9.13 (apt)
8
- # jupyter latest (pip)
9
- # pytorch latest (pip)
10
- # tensorflow latest (pip)
11
- # jupyterlab latest (pip)
12
- # keras latest (pip) # Comes installed with Tensorflow
13
- # opencv 4.5.1 (git)
14
- # numpy latest (pip)
15
- # scipy latest (pip)
16
- # pandas latest (pip)
17
- # cloudpickle latest (pip)
18
- # scikit-image latest (pip)
19
- # scikit-learn latest (pip)
20
- # matplotlib latest (pip)
21
- # ipython latest (pip)
22
- # ipykernel latest (pip)
23
- # ipywidgets latest (pip)
24
- # gradient latest (pip)
25
- # Cython latest (pip)
26
- # tqdm latest (pip)
27
- # gdown latest (pip)
28
- # xgboost latest (pip)
29
- # pillow latest (pip)
30
- # seaborn latest (pip)
31
- # SQLAlchemy latest (pip)
32
- # spacy latest (pip)
33
- # nltk latest (pip)
34
- # jsonify latest (pip)
35
- # boto3 latest (pip)
36
- # transformers latest (pip)
37
- # sentence-transformers latest (pip)
38
- # opencv-python latest (pip)
39
- # JAX latest (pip)
40
- # JAXlib latest (pip)
41
- # ==================================================================
42
-
43
- # Ubuntu 20.04, CUDA Toolkit 11.2, CUDNN 8
44
- ## Check with Josh about the driver interactions here <-
45
-
46
- FROM nvcr.io/nvidia/cuda:11.2.1-cudnn8-devel-ubuntu20.04 as devtools
47
- ENV LANG C.UTF-8
48
-
49
- # Setting shell to bash
50
- ENV SHELL=/bin/bash
51
- SHELL ["/bin/bash", "-c"]
52
-
53
- RUN APT_INSTALL="apt-get install -y --no-install-recommends" && \
54
- PIP_INSTALL="python3 -m pip --no-cache-dir install --upgrade" && \
55
- GIT_CLONE="git clone --depth 10" && \
56
-
57
- rm -rf /var/lib/apt/lists/* \
58
- /etc/apt/sources.list.d/cuda.list \
59
- /etc/apt/sources.list.d/nvidia-ml.list && \
60
-
61
- apt-get update && \
62
-
63
- # ==================================================================
64
- # tools
65
- # ------------------------------------------------------------------
66
-
67
- sed -e '\|/usr/share/man|s|^#*|#|g' -i /etc/dpkg/dpkg.cfg.d/excludes && \
68
-
69
- DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
70
- build-essential \
71
- apt-utils \
72
- ca-certificates \
73
- wget \
74
- rsync \
75
- git \
76
- vim \
77
- libssl-dev \
78
- curl \
79
- openssh-client \
80
- unzip \
81
- unrar \
82
- zip \
83
- awscli \
84
- csvkit \
85
- emacs \
86
- joe \
87
- jq \
88
- dialog \
89
- man-db \
90
- manpages \
91
- manpages-dev \
92
- manpages-posix \
93
- manpages-posix-dev \
94
- nano \
95
- iputils-ping \
96
- sudo \
97
- ffmpeg \
98
- libsm6 \
99
- libxext6 \
100
- && \
101
-
102
- rm -f /usr/bin/man && \
103
- dpkg-divert --quiet --remove --rename /usr/bin/man && \
104
- rm -f /usr/share/man/man1/sh.1.gz && \
105
- dpkg-divert --quiet --remove --rename /usr/share/man/man1/sh.1.gz && \
106
-
107
- #$GIT_CLONE https://github.com/Kitware/CMake ~/cmake && \
108
- #cd ~/cmake && \
109
- #./bootstrap && \
110
- #make -j"$(nproc)" install && \
111
-
112
- # ==================================================================
113
- # Python
114
- # ------------------------------------------------------------------
115
-
116
- # Installing python3.9
117
- DEBIAN_FRONTEND=noninteractive \
118
- $APT_INSTALL software-properties-common && \
119
- add-apt-repository ppa:deadsnakes/ppa -y && \
120
-
121
- DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
122
- python3.9 \
123
- python3.9-dev \
124
- python3-distutils-extra \
125
- && \
126
-
127
- # Installing pip
128
- wget -O ~/get-pip.py \
129
- https://bootstrap.pypa.io/get-pip.py && \
130
- python3.9 ~/get-pip.py && \
131
-
132
- # Add symlink so python and python3 commands use same
133
- # python3.9 executable
134
- ln -s /usr/bin/python3.9 /usr/local/bin/python3 && \
135
- ln -s /usr/bin/python3.9 /usr/local/bin/python && \
136
-
137
- # Intalling Python packages
138
- $PIP_INSTALL \
139
- numpy \
140
- scipy \
141
- pandas \
142
- cloudpickle \
143
- scikit-image \
144
- scikit-learn \
145
- matplotlib \
146
- ipython \
147
- ipykernel \
148
- ipywidgets \
149
- gradient \
150
- Cython \
151
- tqdm \
152
- gdown \
153
- xgboost \
154
- pillow \
155
- seaborn \
156
- SQLAlchemy \
157
- spacy \
158
- nltk \
159
- jsonify \
160
- boto3 \
161
- transformers \
162
- sentence-transformers \
163
- datasets \
164
- opencv-python \
165
- && \
166
-
167
-
168
- # ==================================================================
169
- # boost
170
- # ------------------------------------------------------------------
171
-
172
- DEBIAN_FRONTEND=noninteractive $APT_INSTALL \
173
- libboost-all-dev \
174
- && \
175
-
176
-
177
-
178
- # ==================================================================
179
- # Conda
180
- # ------------------------------------------------------------------
181
-
182
- # wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
183
- # /bin/bash ~/miniconda.sh -b -p /opt/conda && \
184
-
185
-
186
- # ==================================================================
187
- # Config & Cleanup
188
- # ------------------------------------------------------------------
189
-
190
- ldconfig && \
191
- apt-get clean && \
192
- apt-get autoremove && \
193
- rm -rf /var/lib/apt/lists/* /tmp/* ~/* && \
194
-
195
- #===================================================================
196
- # Install Julia and CUDA tooling
197
- #-------------------------------------------------------------------
198
- wget -q 'https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.2-linux-x86_64.tar.gz' \
199
- -O /tmp/julia.tar.gz && \
200
- tar -x -f /tmp/julia.tar.gz -C /usr/local --strip-components 1 && \
201
- rm /tmp/julia.tar.gz && \
202
-
203
- julia -e 'using Pkg; Pkg.add("IJulia"); Pkg.precompile();' && \
204
- julia -e 'Pkg.add(["BenchmarkTools", "CUDA"]);using BenchmarkTools, CUDA; has_cuda_gpu() ? print("The GPU device is:", CUDA.device())) : print("no cuda")' && \
205
-
206
- echo 'Done'
207
- EXPOSE 8888 6006
208
-
 
1
+ FROM julia:1.8
2
+
3
+ RUN useradd --create-home --shell /bin/bash genie
4
+ RUN mkdir /home/genie/app
5
+ COPY . /home/genie/app
6
+ WORKDIR /home/genie/app
7
+ RUN chown -R genie:genie /home/
8
+ USER genie
9
+
10
+ EXPOSE 8000
11
+ EXPOSE 80
12
+ ENV JULIA_DEPOT_PATH "/home/genie/.julia"
13
+ ENV GENIE_ENV "dev"
14
+ ENV GENIE_HOST "0.0.0.0"
15
+ ENV PORT "8000"
16
+ ENV WSPORT "8000"
17
+
18
+ RUN julia -e 'using Pkg; Pkg.activate("."); Pkg.add("Stipple"); Pkg.precompile()'
19
+
20
+ ENTRYPOINT julia --project -e 'using Pkg; Pkg.instantiate(); using Genie; Genie.loadapp(); up(async=false);;'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Manifest.toml ADDED
@@ -0,0 +1,621 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is machine-generated - editing it directly is not advised
2
+
3
+ julia_version = "1.7.3"
4
+ manifest_format = "2.0"
5
+
6
+ [[deps.ArgParse]]
7
+ deps = ["Logging", "TextWrap"]
8
+ git-tree-sha1 = "3102bce13da501c9104df33549f511cd25264d7d"
9
+ uuid = "c7e460c6-2fb9-53a9-8c5b-16f535851c63"
10
+ version = "1.1.4"
11
+
12
+ [[deps.ArgTools]]
13
+ uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
14
+
15
+ [[deps.Artifacts]]
16
+ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
17
+
18
+ [[deps.Base64]]
19
+ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
20
+
21
+ [[deps.CSTParser]]
22
+ deps = ["Tokenize"]
23
+ git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f"
24
+ uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
25
+ version = "3.3.6"
26
+
27
+ [[deps.Chess]]
28
+ deps = ["Crayons", "Dates", "DefaultApplication", "Hiccup", "JSON", "Printf", "Random", "Revise", "SQLite", "StaticArrays", "StatsBase", "UUIDs"]
29
+ git-tree-sha1 = "25dd5d7d76a48dade714e68361b50926a0cd77c9"
30
+ repo-rev = "master"
31
+ repo-url = "https://github.com/anoojpatel/Chess.jl.git"
32
+ uuid = "717200cc-f167-4fd3-b4bf-b5e480529844"
33
+ version = "0.3.0"
34
+
35
+ [[deps.CodeTracking]]
36
+ deps = ["InteractiveUtils", "UUIDs"]
37
+ git-tree-sha1 = "3bf60ba2fae10e10f70d53c070424e40a820dac2"
38
+ uuid = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2"
39
+ version = "1.1.2"
40
+
41
+ [[deps.ColorTypes]]
42
+ deps = ["FixedPointNumbers", "Random"]
43
+ git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4"
44
+ uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
45
+ version = "0.11.4"
46
+
47
+ [[deps.Colors]]
48
+ deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
49
+ git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a"
50
+ uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
51
+ version = "0.12.10"
52
+
53
+ [[deps.CommonMark]]
54
+ deps = ["Crayons", "JSON", "URIs"]
55
+ git-tree-sha1 = "86cce6fd164c26bad346cc51ca736e692c9f553c"
56
+ uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6"
57
+ version = "0.8.7"
58
+
59
+ [[deps.Compat]]
60
+ deps = ["Dates", "LinearAlgebra", "UUIDs"]
61
+ git-tree-sha1 = "00a2cccc7f098ff3b66806862d275ca3db9e6e5a"
62
+ uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
63
+ version = "4.5.0"
64
+
65
+ [[deps.CompilerSupportLibraries_jll]]
66
+ deps = ["Artifacts", "Libdl"]
67
+ uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
68
+
69
+ [[deps.Crayons]]
70
+ git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15"
71
+ uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
72
+ version = "4.1.1"
73
+
74
+ [[deps.DBInterface]]
75
+ git-tree-sha1 = "9b0dc525a052b9269ccc5f7f04d5b3639c65bca5"
76
+ uuid = "a10d1c49-ce27-4219-8d33-6db1a4562965"
77
+ version = "2.5.0"
78
+
79
+ [[deps.DataAPI]]
80
+ git-tree-sha1 = "e8119c1a33d267e16108be441a287a6981ba1630"
81
+ uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
82
+ version = "1.14.0"
83
+
84
+ [[deps.DataFrames]]
85
+ deps = ["Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
86
+ git-tree-sha1 = "d4f69885afa5e6149d0cab3818491565cf41446d"
87
+ uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
88
+ version = "1.4.4"
89
+
90
+ [[deps.DataStructures]]
91
+ deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
92
+ git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0"
93
+ uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
94
+ version = "0.18.13"
95
+
96
+ [[deps.DataValueInterfaces]]
97
+ git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
98
+ uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"
99
+ version = "1.0.0"
100
+
101
+ [[deps.Dates]]
102
+ deps = ["Printf"]
103
+ uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
104
+
105
+ [[deps.DefaultApplication]]
106
+ deps = ["InteractiveUtils"]
107
+ git-tree-sha1 = "c0dfa5a35710a193d83f03124356eef3386688fc"
108
+ uuid = "3f0dd361-4fe0-5fc6-8523-80b14ec94d85"
109
+ version = "1.1.0"
110
+
111
+ [[deps.Distributed]]
112
+ deps = ["Random", "Serialization", "Sockets"]
113
+ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
114
+
115
+ [[deps.Downloads]]
116
+ deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
117
+ uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
118
+
119
+ [[deps.EzXML]]
120
+ deps = ["Printf", "XML2_jll"]
121
+ git-tree-sha1 = "0fa3b52a04a4e210aeb1626def9c90df3ae65268"
122
+ uuid = "8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615"
123
+ version = "1.1.0"
124
+
125
+ [[deps.FilePathsBase]]
126
+ deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"]
127
+ git-tree-sha1 = "e27c4ebe80e8699540f2d6c805cc12203b614f12"
128
+ uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
129
+ version = "0.9.20"
130
+
131
+ [[deps.FileWatching]]
132
+ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
133
+
134
+ [[deps.FixedPointNumbers]]
135
+ deps = ["Statistics"]
136
+ git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
137
+ uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
138
+ version = "0.8.4"
139
+
140
+ [[deps.Formatting]]
141
+ deps = ["Printf"]
142
+ git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8"
143
+ uuid = "59287772-0a20-5a39-b81b-1366585eb4c0"
144
+ version = "0.4.2"
145
+
146
+ [[deps.Future]]
147
+ deps = ["Random"]
148
+ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"
149
+
150
+ [[deps.GMP_jll]]
151
+ deps = ["Artifacts", "Libdl"]
152
+ uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d"
153
+
154
+ [[deps.Genie]]
155
+ deps = ["ArgParse", "Dates", "Distributed", "EzXML", "FilePathsBase", "HTTP", "HttpCommon", "Inflector", "JSON3", "JuliaFormatter", "Logging", "Markdown", "MbedTLS", "Millboard", "Nettle", "OrderedCollections", "Pkg", "REPL", "Random", "Reexport", "Revise", "SHA", "Serialization", "Sockets", "UUIDs", "Unicode", "VersionCheck", "YAML"]
156
+ git-tree-sha1 = "17b5015f7cb712e92c44bc2809cb5498520cf98a"
157
+ uuid = "c43c736e-a2d1-11e8-161f-af95117fbd1e"
158
+ version = "4.20.1"
159
+
160
+ [[deps.Glob]]
161
+ git-tree-sha1 = "4df9f7e06108728ebf00a0a11edee4b29a482bb2"
162
+ uuid = "c27321d9-0574-5035-807b-f59d2c89b15c"
163
+ version = "1.3.0"
164
+
165
+ [[deps.HTTP]]
166
+ deps = ["Base64", "Dates", "IniFile", "Logging", "MbedTLS", "NetworkOptions", "Sockets", "URIs"]
167
+ git-tree-sha1 = "0fa77022fe4b511826b39c894c90daf5fce3334a"
168
+ uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
169
+ version = "0.9.17"
170
+
171
+ [[deps.Hiccup]]
172
+ deps = ["MacroTools", "Test"]
173
+ git-tree-sha1 = "6187bb2d5fcbb2007c39e7ac53308b0d371124bd"
174
+ uuid = "9fb69e20-1954-56bb-a84f-559cc56a8ff7"
175
+ version = "0.2.2"
176
+
177
+ [[deps.HttpCommon]]
178
+ deps = ["Dates", "Nullables", "Test", "URIParser"]
179
+ git-tree-sha1 = "46313284237aa6ca67a6bce6d6fbd323d19cff59"
180
+ uuid = "77172c1b-203f-54ac-aa54-3f1198fe9f90"
181
+ version = "0.5.0"
182
+
183
+ [[deps.Inflector]]
184
+ deps = ["Unicode"]
185
+ git-tree-sha1 = "8555b54ddf27806b070ce1d1cf623e1feb13750c"
186
+ uuid = "6d011eab-0732-4556-8808-e463c76bf3b6"
187
+ version = "1.0.1"
188
+
189
+ [[deps.IniFile]]
190
+ git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625"
191
+ uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
192
+ version = "0.5.1"
193
+
194
+ [[deps.InlineStrings]]
195
+ deps = ["Parsers"]
196
+ git-tree-sha1 = "0cf92ec945125946352f3d46c96976ab972bde6f"
197
+ uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48"
198
+ version = "1.3.2"
199
+
200
+ [[deps.InteractiveUtils]]
201
+ deps = ["Markdown"]
202
+ uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
203
+
204
+ [[deps.InvertedIndices]]
205
+ git-tree-sha1 = "82aec7a3dd64f4d9584659dc0b62ef7db2ef3e19"
206
+ uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f"
207
+ version = "1.2.0"
208
+
209
+ [[deps.IteratorInterfaceExtensions]]
210
+ git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
211
+ uuid = "82899510-4779-5014-852e-03e436cf321d"
212
+ version = "1.0.0"
213
+
214
+ [[deps.JLLWrappers]]
215
+ deps = ["Preferences"]
216
+ git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1"
217
+ uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
218
+ version = "1.4.1"
219
+
220
+ [[deps.JSON]]
221
+ deps = ["Dates", "Mmap", "Parsers", "Unicode"]
222
+ git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e"
223
+ uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
224
+ version = "0.21.3"
225
+
226
+ [[deps.JSON3]]
227
+ deps = ["Dates", "Mmap", "Parsers", "SnoopPrecompile", "StructTypes", "UUIDs"]
228
+ git-tree-sha1 = "84b10656a41ef564c39d2d477d7236966d2b5683"
229
+ uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
230
+ version = "1.12.0"
231
+
232
+ [[deps.JuliaFormatter]]
233
+ deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "Tokenize"]
234
+ git-tree-sha1 = "447f5702b5271d99f064e924061bc05e26f52c4c"
235
+ uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
236
+ version = "1.0.18"
237
+
238
+ [[deps.JuliaInterpreter]]
239
+ deps = ["CodeTracking", "InteractiveUtils", "Random", "UUIDs"]
240
+ git-tree-sha1 = "3236cad4ac05408090221fc259f678d913176055"
241
+ uuid = "aa1ae85d-cabe-5617-a682-6adf51b2e16a"
242
+ version = "0.9.19"
243
+
244
+ [[deps.LaTeXStrings]]
245
+ git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996"
246
+ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
247
+ version = "1.3.0"
248
+
249
+ [[deps.LibCURL]]
250
+ deps = ["LibCURL_jll", "MozillaCACerts_jll"]
251
+ uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
252
+
253
+ [[deps.LibCURL_jll]]
254
+ deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
255
+ uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
256
+
257
+ [[deps.LibGit2]]
258
+ deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
259
+ uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
260
+
261
+ [[deps.LibSSH2_jll]]
262
+ deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
263
+ uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
264
+
265
+ [[deps.Libdl]]
266
+ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
267
+
268
+ [[deps.Libiconv_jll]]
269
+ deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
270
+ git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71"
271
+ uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
272
+ version = "1.16.1+2"
273
+
274
+ [[deps.LinearAlgebra]]
275
+ deps = ["Libdl", "libblastrampoline_jll"]
276
+ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
277
+
278
+ [[deps.Logging]]
279
+ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
280
+
281
+ [[deps.LoweredCodeUtils]]
282
+ deps = ["JuliaInterpreter"]
283
+ git-tree-sha1 = "dedbebe234e06e1ddad435f5c6f4b85cd8ce55f7"
284
+ uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b"
285
+ version = "2.2.2"
286
+
287
+ [[deps.MacroTools]]
288
+ deps = ["Markdown", "Random"]
289
+ git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2"
290
+ uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
291
+ version = "0.5.10"
292
+
293
+ [[deps.Markdown]]
294
+ deps = ["Base64"]
295
+ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
296
+
297
+ [[deps.MbedTLS]]
298
+ deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"]
299
+ git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b"
300
+ uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
301
+ version = "1.1.7"
302
+
303
+ [[deps.MbedTLS_jll]]
304
+ deps = ["Artifacts", "Libdl"]
305
+ uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
306
+
307
+ [[deps.Millboard]]
308
+ git-tree-sha1 = "ea6a5b7e56e76d8051023faaa11d91d1d881dac3"
309
+ uuid = "39ec1447-df44-5f4c-beaa-866f30b4d3b2"
310
+ version = "0.2.5"
311
+
312
+ [[deps.Missings]]
313
+ deps = ["DataAPI"]
314
+ git-tree-sha1 = "f8c673ccc215eb50fcadb285f522420e29e69e1c"
315
+ uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
316
+ version = "0.4.5"
317
+
318
+ [[deps.Mixers]]
319
+ deps = ["MacroTools"]
320
+ git-tree-sha1 = "58ec7ac60dad6e8ca4553225251dfd380e3930dd"
321
+ uuid = "2a8e4939-dab8-5edc-8f64-72a8776f13de"
322
+ version = "0.1.2"
323
+
324
+ [[deps.Mmap]]
325
+ uuid = "a63ad114-7e13-5084-954f-fe012c677804"
326
+
327
+ [[deps.MozillaCACerts_jll]]
328
+ uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
329
+
330
+ [[deps.Nettle]]
331
+ deps = ["Libdl", "Nettle_jll"]
332
+ git-tree-sha1 = "6fa48cbae828267848ee32c1bb31d1652e210d7d"
333
+ uuid = "49dea1ee-f6fa-5aa6-9a11-8816cee7d4b9"
334
+ version = "1.0.0"
335
+
336
+ [[deps.Nettle_jll]]
337
+ deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Pkg"]
338
+ git-tree-sha1 = "eca63e3847dad608cfa6a3329b95ef674c7160b4"
339
+ uuid = "4c82536e-c426-54e4-b420-14f461c4ed8b"
340
+ version = "3.7.2+0"
341
+
342
+ [[deps.NetworkOptions]]
343
+ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
344
+
345
+ [[deps.Nullables]]
346
+ git-tree-sha1 = "8f87854cc8f3685a60689d8edecaa29d2251979b"
347
+ uuid = "4d1e1d77-625e-5b40-9113-a560ec7a8ecd"
348
+ version = "1.0.0"
349
+
350
+ [[deps.Observables]]
351
+ git-tree-sha1 = "fe29afdef3d0c4a8286128d4e45cc50621b1e43d"
352
+ uuid = "510215fc-4207-5dde-b226-833fc4488ee2"
353
+ version = "0.4.0"
354
+
355
+ [[deps.OpenBLAS_jll]]
356
+ deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
357
+ uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
358
+
359
+ [[deps.OrderedCollections]]
360
+ git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c"
361
+ uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
362
+ version = "1.4.1"
363
+
364
+ [[deps.Parameters]]
365
+ deps = ["OrderedCollections", "UnPack"]
366
+ git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe"
367
+ uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
368
+ version = "0.12.3"
369
+
370
+ [[deps.Parsers]]
371
+ deps = ["Dates", "SnoopPrecompile"]
372
+ git-tree-sha1 = "6466e524967496866901a78fca3f2e9ea445a559"
373
+ uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
374
+ version = "2.5.2"
375
+
376
+ [[deps.Pkg]]
377
+ deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
378
+ uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
379
+
380
+ [[deps.PooledArrays]]
381
+ deps = ["DataAPI", "Future"]
382
+ git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7"
383
+ uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720"
384
+ version = "1.4.2"
385
+
386
+ [[deps.Preferences]]
387
+ deps = ["TOML"]
388
+ git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d"
389
+ uuid = "21216c6a-2e73-6563-6e65-726566657250"
390
+ version = "1.3.0"
391
+
392
+ [[deps.PrettyTables]]
393
+ deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"]
394
+ git-tree-sha1 = "96f6db03ab535bdb901300f88335257b0018689d"
395
+ uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d"
396
+ version = "2.2.2"
397
+
398
+ [[deps.Printf]]
399
+ deps = ["Unicode"]
400
+ uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
401
+
402
+ [[deps.ProgressMeter]]
403
+ deps = ["Distributed", "Printf"]
404
+ git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9"
405
+ uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
406
+ version = "1.7.2"
407
+
408
+ [[deps.REPL]]
409
+ deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
410
+ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
411
+
412
+ [[deps.Random]]
413
+ deps = ["SHA", "Serialization"]
414
+ uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
415
+
416
+ [[deps.Reexport]]
417
+ git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
418
+ uuid = "189a3867-3050-52da-a836-e630ba90ab69"
419
+ version = "1.2.2"
420
+
421
+ [[deps.Requires]]
422
+ deps = ["UUIDs"]
423
+ git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7"
424
+ uuid = "ae029012-a4dd-5104-9daa-d747884805df"
425
+ version = "1.3.0"
426
+
427
+ [[deps.Revise]]
428
+ deps = ["CodeTracking", "Distributed", "FileWatching", "JuliaInterpreter", "LibGit2", "LoweredCodeUtils", "OrderedCollections", "Pkg", "REPL", "Requires", "UUIDs", "Unicode"]
429
+ git-tree-sha1 = "dad726963ecea2d8a81e26286f625aee09a91b7c"
430
+ uuid = "295af30f-e4ad-537b-8983-00126c2a3abe"
431
+ version = "3.4.0"
432
+
433
+ [[deps.SHA]]
434
+ uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
435
+
436
+ [[deps.SQLite]]
437
+ deps = ["DBInterface", "Random", "SQLite_jll", "Serialization", "Tables", "WeakRefStrings"]
438
+ git-tree-sha1 = "eb9a473c9b191ced349d04efa612ec9f39c087ea"
439
+ uuid = "0aa819cd-b072-5ff4-a722-6bc24af294d9"
440
+ version = "1.6.0"
441
+
442
+ [[deps.SQLite_jll]]
443
+ deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
444
+ git-tree-sha1 = "2c761a91fb503e94bd0130fcf4352166c3c555bc"
445
+ uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8"
446
+ version = "3.40.0+1"
447
+
448
+ [[deps.Scratch]]
449
+ deps = ["Dates"]
450
+ git-tree-sha1 = "f94f779c94e58bf9ea243e77a37e16d9de9126bd"
451
+ uuid = "6c6a2e73-6563-6170-7368-637461726353"
452
+ version = "1.1.1"
453
+
454
+ [[deps.Serialization]]
455
+ uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
456
+
457
+ [[deps.SnoopPrecompile]]
458
+ git-tree-sha1 = "f604441450a3c0569830946e5b33b78c928e1a85"
459
+ uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c"
460
+ version = "1.0.1"
461
+
462
+ [[deps.Sockets]]
463
+ uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
464
+
465
+ [[deps.SortingAlgorithms]]
466
+ deps = ["DataStructures"]
467
+ git-tree-sha1 = "f6cb12bae7c2ecff6c4986f28defff8741747a9b"
468
+ uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
469
+ version = "0.3.2"
470
+
471
+ [[deps.SparseArrays]]
472
+ deps = ["LinearAlgebra", "Random"]
473
+ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
474
+
475
+ [[deps.StaticArrays]]
476
+ deps = ["LinearAlgebra", "Random", "Statistics"]
477
+ git-tree-sha1 = "da4cf579416c81994afd6322365d00916c79b8ae"
478
+ uuid = "90137ffa-7385-5640-81b9-e52037218182"
479
+ version = "0.12.5"
480
+
481
+ [[deps.Statistics]]
482
+ deps = ["LinearAlgebra", "SparseArrays"]
483
+ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
484
+
485
+ [[deps.StatsBase]]
486
+ deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"]
487
+ git-tree-sha1 = "7bab7d4eb46b225b35179632852b595a3162cb61"
488
+ uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
489
+ version = "0.33.2"
490
+
491
+ [[deps.Stipple]]
492
+ deps = ["FilePathsBase", "Genie", "JSON3", "Logging", "Mixers", "Observables", "OrderedCollections", "Parameters", "Pkg", "Random", "Reexport", "Requires", "StructTypes"]
493
+ git-tree-sha1 = "f05e4baaedaa96fe385e9bc85c8d7c8b8a44c981"
494
+ uuid = "4acbeb90-81a0-11ea-1966-bdaff8155998"
495
+ version = "0.24.5"
496
+
497
+ [[deps.StippleUI]]
498
+ deps = ["Colors", "DataFrames", "Dates", "Genie", "Stipple"]
499
+ git-tree-sha1 = "4de2d03e2befc013c0ccc3a8878f67960d083cda"
500
+ uuid = "a3c5d34a-b254-4859-a8fa-b86abb7e84a3"
501
+ version = "0.19.4"
502
+
503
+ [[deps.StringEncodings]]
504
+ deps = ["Libiconv_jll"]
505
+ git-tree-sha1 = "50ccd5ddb00d19392577902f0079267a72c5ab04"
506
+ uuid = "69024149-9ee7-55f6-a4c4-859efe599b68"
507
+ version = "0.3.5"
508
+
509
+ [[deps.StringManipulation]]
510
+ git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123"
511
+ uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e"
512
+ version = "0.3.0"
513
+
514
+ [[deps.StructTypes]]
515
+ deps = ["Dates", "UUIDs"]
516
+ git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70"
517
+ uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
518
+ version = "1.10.0"
519
+
520
+ [[deps.TOML]]
521
+ deps = ["Dates"]
522
+ uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
523
+
524
+ [[deps.TableTraits]]
525
+ deps = ["IteratorInterfaceExtensions"]
526
+ git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39"
527
+ uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
528
+ version = "1.0.1"
529
+
530
+ [[deps.Tables]]
531
+ deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"]
532
+ git-tree-sha1 = "c79322d36826aa2f4fd8ecfa96ddb47b174ac78d"
533
+ uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
534
+ version = "1.10.0"
535
+
536
+ [[deps.Tar]]
537
+ deps = ["ArgTools", "SHA"]
538
+ uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
539
+
540
+ [[deps.Test]]
541
+ deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
542
+ uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
543
+
544
+ [[deps.TextWrap]]
545
+ git-tree-sha1 = "9250ef9b01b66667380cf3275b3f7488d0e25faf"
546
+ uuid = "b718987f-49a8-5099-9789-dcd902bef87d"
547
+ version = "1.0.1"
548
+
549
+ [[deps.Tokenize]]
550
+ git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5"
551
+ uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
552
+ version = "0.5.25"
553
+
554
+ [[deps.URIParser]]
555
+ deps = ["Unicode"]
556
+ git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d"
557
+ uuid = "30578b45-9adc-5946-b283-645ec420af67"
558
+ version = "0.4.1"
559
+
560
+ [[deps.URIs]]
561
+ git-tree-sha1 = "ac00576f90d8a259f2c9d823e91d1de3fd44d348"
562
+ uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
563
+ version = "1.4.1"
564
+
565
+ [[deps.UUIDs]]
566
+ deps = ["Random", "SHA"]
567
+ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
568
+
569
+ [[deps.UnPack]]
570
+ git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b"
571
+ uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
572
+ version = "1.0.2"
573
+
574
+ [[deps.Unicode]]
575
+ uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
576
+
577
+ [[deps.UrlDownload]]
578
+ deps = ["HTTP", "ProgressMeter"]
579
+ git-tree-sha1 = "758aeefcf0bfdd04cd88e6e3bc9feb9e8c7d6d70"
580
+ uuid = "856ac37a-3032-4c1c-9122-f86d88358c8b"
581
+ version = "1.0.1"
582
+
583
+ [[deps.VersionCheck]]
584
+ deps = ["Dates", "JSON3", "Logging", "Pkg", "Random", "Scratch", "UrlDownload"]
585
+ git-tree-sha1 = "89ef2431dd59344ebaf052d0737205854ded0c62"
586
+ uuid = "a637dc6b-bca1-447e-a4fa-35264c9d0580"
587
+ version = "0.2.0"
588
+
589
+ [[deps.WeakRefStrings]]
590
+ deps = ["DataAPI", "InlineStrings", "Parsers"]
591
+ git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23"
592
+ uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5"
593
+ version = "1.4.2"
594
+
595
+ [[deps.XML2_jll]]
596
+ deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"]
597
+ git-tree-sha1 = "93c41695bc1c08c46c5899f4fe06d6ead504bb73"
598
+ uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a"
599
+ version = "2.10.3+0"
600
+
601
+ [[deps.YAML]]
602
+ deps = ["Base64", "Dates", "Printf", "StringEncodings"]
603
+ git-tree-sha1 = "dbc7f1c0012a69486af79c8bcdb31be820670ba2"
604
+ uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
605
+ version = "0.4.8"
606
+
607
+ [[deps.Zlib_jll]]
608
+ deps = ["Libdl"]
609
+ uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
610
+
611
+ [[deps.libblastrampoline_jll]]
612
+ deps = ["Artifacts", "Libdl", "OpenBLAS_jll"]
613
+ uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
614
+
615
+ [[deps.nghttp2_jll]]
616
+ deps = ["Artifacts", "Libdl"]
617
+ uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
618
+
619
+ [[deps.p7zip_jll]]
620
+ deps = ["Artifacts", "Libdl"]
621
+ uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
Project.toml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name = "ImpCatcher"
2
+ uuid = "c9a3c23d-7231-4c2f-9461-fb0bef4b6fc1"
3
+ authors = ["Anooj Patel <[email protected]>"]
4
+ version = "0.1.0"
5
+
6
+ [deps]
7
+ Chess = "717200cc-f167-4fd3-b4bf-b5e480529844"
8
+ Genie = "c43c736e-a2d1-11e8-161f-af95117fbd1e"
9
+ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
10
+ StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
11
+ Stipple = "4acbeb90-81a0-11ea-1966-bdaff8155998"
12
+ StippleUI = "a3c5d34a-b254-4859-a8fa-b86abb7e84a3"
app.jl ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ using Genie.Renderer.Html, Stipple, StippleUI
2
+
3
+ @reactive mutable struct Model <: ReactiveModel
4
+ process::R{Bool} = false
5
+ output::R{String} = ""
6
+ input::R{String} = ""
7
+ end
8
+
9
+ function handlers(model)
10
+ on(model.process) do _
11
+ if (model.process[])
12
+ model.output[] = model.input[] |> reverse
13
+ model.process[] = false
14
+ end
15
+ end
16
+
17
+ model
18
+ end
19
+
20
+ function ui(model)
21
+ page(model, class="container", [
22
+ p([
23
+ "Input "
24
+ input("", @bind(:input), @on("keyup.enter", "process = true"))
25
+ ])
26
+
27
+ p([
28
+ button("Action!", @click("process = true"))
29
+ ])
30
+
31
+ p([
32
+ "Output: "
33
+ span("", @text(:output))
34
+ ])
35
+ ]
36
+ )
37
+ end
38
+
39
+ route("/") do
40
+ model = Model |> init |> handlers
41
+ html(ui(model), context = @__MODULE__)
42
+ end
43
+
44
+ #Genie.isrunning(:webserver) || up()
src/ImpCatcher.jl ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ module ImpCatcher
2
+
3
+ using Chess
4
+
5
+ include("simulate.jl")
6
+
7
+ end # module
src/simulate.jl ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ using Random
2
+ using StatsBase
3
+
4
+ """
5
+ simluate_rollout(b::Board, policy, side [rng=MersenneTwister(420))
6
+
7
+ Simulate one rollout of a simulation based on the given `Chess.board` state.
8
+
9
+ Policy is a function, given the board and `MoveList`, returns an `AbstractArray` of probability
10
+ weights for each `Move` in `Move`List` based on index.
11
+ """
12
+ function simulate_rollout(b::Board, policy, side; rng = MersenneTwister(420))::Tuple{Board, Int64}
13
+ #pprint(b) # Debugging
14
+ movelist = MoveList(200)
15
+ num_sim_moves = 0
16
+ while !isterminal(b) # TODO Use `matein1` possibly to trim leaf nodes in sims?
17
+ moves(b, movelist)
18
+ policy_weights = ProbabilityWeights(policy(b, movelist))
19
+ #pprint(b)
20
+ #println(movelist, policy_weights)
21
+ domove!(b, sample(movelist, policy_weights))
22
+ recycle!(movelist)
23
+ num_sim_moves += 1
24
+ end
25
+ return b, num_sim_moves
26
+ end
27
+
28
+ """
29
+ CESPF(b::Board, movelist::MoveList)
30
+ Utilizes `Chess.jl`'s `see()` function to simulate (C)apture / (E)scape (S)tronger (P)iece
31
+ (F)irst heuristic in simulation/rollout policy. We use Chess weights set in `see` function to get weight for which
32
+ move we prefer to take.
33
+ """
34
+ function CESPF(b::Board, movelist::MoveList)
35
+ unnorm_policy_weights = map(x -> see(b, x), movelist)
36
+ # Center raw centipawn values to 1 to then normalize
37
+ centered_policy_weights = (1 + abs(min(unnorm_policy_weights...))) .+
38
+ unnorm_policy_weights
39
+ return centered_policy_weights / sum(centered_policy_weights)
40
+ end
41
+
42
+ """
43
+ CESPF_greedy(b::Board, movelist::MoveList)
44
+ Utilizes `Chess.jl`'s `see()` function to simulate (C)apture / (E)scape (S)tronger (P)iece
45
+ (F)irst heuristic in simulation/rollout policy. We use Chess weights set in `see` function to get weight for which
46
+ move we prefer to take. This is greedy, and will set only the maximal valued policies to a non-zero
47
+ probability
48
+ """
49
+ function CESPF_greedy(b::Board, movelist::MoveList)
50
+ unnorm_policy_weights = map(x -> see(b, x), movelist)
51
+ policy_weights = zeros(length(unnorm_policy_weights))
52
+ max_idxs = findall(unnorm_policy_weights .== maximum(unnorm_policy_weights))
53
+ for max_idx in max_idxs
54
+ policy_weights[max_idx] = 1.0 / length(max_idxs)
55
+ end
56
+ return policy_weights
57
+ end
58
+
59
+