-
Notifications
You must be signed in to change notification settings - Fork 22
Split this repo into evision_beam
and evision
#210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Perhaps I also need to split |
Is dll_loader_helper precompiled? Do we actually need on evision? Iirc it is only a requirement when we need to mangle the search paths, no? |
Yeah I think so? At least we need it for finding CUDA drivers on Windows. |
@cocoa-xu given the code for ddl_loader_helper is small and mostly done, maybe we just bundle it as part of this library? I am not sure if it is worth splitting dll_loader_helper into two libraries. |
Ah, no worries! It's been done during the last weekend, and it probably would also benefit other Erlang users in similar situations. |
@cocoa-xu the issue is that evision_beam has to depend on dll_loader_helper_beam and it can't be overridden. However, if only dll_loader_helper is precompiled, it means we will always use the non-precompiled |
Oh for that part, now The only issue now is probably I need to try downloading precompiled ones in {"win32", compile, "nmake Makefile.win"} which is basically, do these things without using @ erlc "precompiled.erl" && \
erlc "checksum.erl" && \
erl -noshell -s init stop -s precompiled install_precompiled_binary_if_available || \
(
nmake DLL_LOADER_HELPER_BEAM_USE_PRECOMPILED=false && \
if exist "erl_crash.dump" del /f erl_crash.dump
) |
What if we keep it as a single project and with both rebar3 and mix.exs files? Then we do the precompilation bits only in Elixir for now? The project can have both lib/dll_loader_helper.ex and src/dll_loader_helper.erl but I think we can deprecate the Elixir one. My concern is all about maintainability. We break the code apart, we duplicate parts of cc_precompiler and so on :( |
Note to myself Before doing this, we have to figure out a way to address the inheritance issue reported in #223. |
Following suggestions from @josevalim with some changes
Step 1
Split the repository in two directories:
Step 2
We can now break evision into more projects.
evision
itself should only keep the core shared by all libraries (Evision, Evision.Mat, backends, and so on). Again, it still uses the artefact files to generate the relevant APIs. But you can now breakEvision.CUDA
andEvision.Zoo
into their own libraries. They will also read from the artefact files and generate code, it is just they encapsulate that particular part on their own.The text was updated successfully, but these errors were encountered: