Improve sysimage.jl

master
Alinson S. Xavier 4 years ago
parent 5418a40a7d
commit 987f410520

@ -1,17 +1,16 @@
# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization
# Copyright (C) 2020-2021, UChicago Argonne, LLC. All rights reserved.
# Released under the modified BSD license. See COPYING.md for more details.
JULIA := julia --color=yes --project=@.
VERSION := 0.2
build/sysimage.so: src/utils/sysimage.jl Project.toml Manifest.toml
mkdir -p build
$(JULIA) --trace-compile=build/precompile.jl test/runtests.jl
$(JULIA) src/utils/sysimage.jl
build/sysimage.so: src/utils/sysimage.jl Project.toml
julia --project=. -e "using Pkg; Pkg.instantiate()"
$(JULIA) src/utils/sysimage.jl test/runtests.jl
clean:
rm -rf build/*
rm -rfv build/*
test: build/sysimage.so
$(JULIA) --sysimage build/sysimage.so test/runtests.jl

@ -1,44 +1,33 @@
# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization
# Copyright (C) 2020-2021, UChicago Argonne, LLC. All rights reserved.
# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
# Released under the modified BSD license. See COPYING.md for more details.
using PackageCompiler
using Cbc
using Clp
using Conda
using CSV
using DataFrames
using Distributed
using JLD2
using JSON
using JuMP
using TOML
using Logging
using MathOptInterface
using Printf
using PyCall
using TimerOutputs
pkg = [
:Cbc
:Clp
:Conda
:CSV
:DataFrames
:Distributed
:JLD2
:JSON
:JuMP
:Logging
:MathOptInterface
:Printf
:PyCall
:TimerOutputs
]
Logging.disable_logging(Logging.Info)
mkpath("build")
println("Generating precompilation statements...")
run(`julia --project=. --trace-compile=build/precompile.jl $(ARGS)`)
println("Finding dependencies...")
project = TOML.parsefile("Project.toml")
manifest = TOML.parsefile("Manifest.toml")
deps = Symbol[]
for dep in keys(project["deps"])
if "path" in keys(manifest[dep][1])
println(" - $(dep) [skip]")
else
println(" - $(dep)")
push!(deps, Symbol(dep))
end
end
@info "Building system image..."
println("Building system image...")
create_sysimage(
pkg,
deps,
precompile_statements_file = "build/precompile.jl",
sysimage_path = "build/sysimage.so",
)

Loading…
Cancel
Save