Skip to content

Commit

Permalink
Update to HELICS v2.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kdheepak committed Nov 15, 2019
1 parent 2c90a28 commit 4c5c987
Show file tree
Hide file tree
Showing 9 changed files with 96 additions and 72 deletions.
2 changes: 1 addition & 1 deletion deps/build.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the dependencies
Mod = @eval module Anon end
Mod.include("build_ZMQ.v4.3.1.jl")
Mod.include("build_libhelicsSharedLib.v2.2.2.jl")
Mod.include("build_libhelicsSharedLib.v2.3.0.jl")

57 changes: 0 additions & 57 deletions deps/build_libhelicsSharedLib.v2.2.2.jl

This file was deleted.

57 changes: 57 additions & 0 deletions deps/build_libhelicsSharedLib.v2.3.0.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using BinaryProvider # requires BinaryProvider 0.3.0 or later

# Parse some basic command-line arguments
const verbose = "--verbose" in ARGS
const prefix = Prefix(get([a for a in ARGS if a != "--verbose"], 1, joinpath(@__DIR__, "usr")))
products = [
LibraryProduct(prefix, ["libhelicsSharedLib"], :libhelicsSharedLib),
]

# Download binaries from hosted location
bin_prefix = "https://github.com/GMLC-TDC/HELICSBuilder/releases/download/v2.3.0"

# Listing of files generated by BinaryBuilder:
download_info = Dict(
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.aarch64-linux-gnu-gcc7.tar.gz", "2479213ebdf0dec96912bb7ab67f3fc451be5c01657d5d04725e178245b813c4"),
Linux(:aarch64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.aarch64-linux-gnu-gcc8.tar.gz", "9e71d255f654eb0a1202214268eee4effd248706287f6372daf71690e6e96ad7"),
Linux(:aarch64, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.aarch64-linux-musl-gcc7.tar.gz", "9f683ab8f01168011ed191ad34e915043048d5f1dc4cddd1d58f564523cfcd86"),
Linux(:aarch64, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.aarch64-linux-musl-gcc8.tar.gz", "3226531ddf33d7993de8a94efebf3d4b27d4cb573520b03ab7db3909dccd02e9"),
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.arm-linux-gnueabihf-gcc7.tar.gz", "2a24a02a238b98d9deb92d328224d1033d604ccc45207cce1425e034de203df9"),
Linux(:armv7l, libc=:glibc, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.arm-linux-gnueabihf-gcc8.tar.gz", "f00aa104df7a2519c9cf0ebc05d55c05b276e8c5a02c890c2c2696edc21dada0"),
Linux(:armv7l, libc=:musl, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.arm-linux-musleabihf-gcc7.tar.gz", "421aaeb0267a2803ac002520ab682fe4ee9687a2a2d92e844e711d44f881c3cf"),
Linux(:armv7l, libc=:musl, call_abi=:eabihf, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.arm-linux-musleabihf-gcc8.tar.gz", "259d2f68689ea096c424b55b88222d96bd36aad5289ba0f9cc73706ee5d9c856"),
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.i686-linux-gnu-gcc7.tar.gz", "66820dd0eaacdd6e90e7c45cac5d20b6b1298bb22c6a33ca6ca635071b4f50db"),
Linux(:i686, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.i686-linux-gnu-gcc8.tar.gz", "9b976365906c47e47094094a373a43a54c78903e92293298d07f1e617be4ffd6"),
Linux(:i686, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.i686-linux-musl-gcc7.tar.gz", "49614b1a32db889bff71463e4420167b46e662749f612439cb3ced5e6d1d6ebe"),
Linux(:i686, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.i686-linux-musl-gcc8.tar.gz", "80c8e6c5b800bba8e6a9868db98e818895ac6a5b6738a892b3c28a3304120973"),
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.powerpc64le-linux-gnu-gcc7.tar.gz", "9d63e2344141fc37e007c7d63fd93c97a4c97453625ec2462ba594db1bc7f495"),
Linux(:powerpc64le, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.powerpc64le-linux-gnu-gcc8.tar.gz", "b884bc78954ce102f8828b43c4112ced7d22fefa514a7c3f709a0036bd993103"),
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-apple-darwin14-gcc7.tar.gz", "bad98d9bee1fb87b2d5df2db34ac3461e2fb555eb713e9a87f236c48fa17bd60"),
MacOS(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-apple-darwin14-gcc8.tar.gz", "ae0f1597e9906e8f024a4ae503c43dd24ec39ce8af25c6e449b2d65eb1d915db"),
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-linux-gnu-gcc7.tar.gz", "0c2728c7a4635244b7c24ecd0cbcc6739ecdabb712307ee89a8fbb3da48276be"),
Linux(:x86_64, libc=:glibc, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-linux-gnu-gcc8.tar.gz", "39b1ac0b0e6ff9848c8497144f2fe83f96cff0054073198e92c9d9f5237038d6"),
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-linux-musl-gcc7.tar.gz", "9593958ade5e0e689fcce19cd0436e61d65f2db2cab4d40ed30d423db96ef012"),
Linux(:x86_64, libc=:musl, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-linux-musl-gcc8.tar.gz", "dea3206779ccb310dc4f674dba568791945083bad8ef5f9cd91ffb7bc8ccbddb"),
Windows(:x86_64, compiler_abi=CompilerABI(:gcc7)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-w64-mingw32-gcc7.tar.gz", "f74f0fe20116b76502e50bce47885d230d1b501a4c9817653e7286b35719c8dd"),
Windows(:x86_64, compiler_abi=CompilerABI(:gcc8)) => ("$bin_prefix/libhelicsSharedLib.v2.3.0.x86_64-w64-mingw32-gcc8.tar.gz", "fb3264a7e92497f5dee0607765031672e8ae0ca5b7393729b281f83eb02893dc"),
)

# Install unsatisfied or updated dependencies:
unsatisfied = any(!satisfied(p; verbose=verbose) for p in products)
dl_info = choose_download(download_info, platform_key_abi())
if dl_info === nothing && unsatisfied
# If we don't have a compatible .tar.gz to download, complain.
# Alternatively, you could attempt to install from a separate provider,
# build from source or something even more ambitious here.
error("Your platform (\"$(Sys.MACHINE)\", parsed as \"$(triplet(platform_key_abi()))\") is not supported by this package!")
end

# If we have a download, and we are unsatisfied (or the version we're
# trying to install is not itself installed) then load it up!
if unsatisfied || !isinstalled(dl_info...; prefix=prefix)
# Download and install binaries
install(dl_info...; prefix=prefix, force=true, verbose=verbose)
end

# Write out a deps.jl file that will contain mappings for our products
write_deps_file(joinpath(@__DIR__, "deps.jl"), products, verbose=verbose)
2 changes: 2 additions & 0 deletions src/HELICS.jl
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ module Lib

end

const HELICS_VERSION = VersionNumber(split(Lib.HELICS_VERSION_STRING)[1])

include("wrapper.jl")

include("utils.jl")
Expand Down
8 changes: 8 additions & 0 deletions src/api.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2516,3 +2516,11 @@ function helicsFederateInfoSetBrokerInitString(fi::FederateInfo, brokerInit::Str
Utils.@invoke_and_check Lib.helicsFederateInfoSetBrokerInitString(fi::FederateInfo, brokerInit)
end

function helicsBrokerMakeConnections(broker::Broker, file::String)
Utils.@invoke_and_check Lib.helicsBrokerMakeConnections(broker, file)
end

function helicsCoreMakeConnections(core::Core, file::String)
Utils.@invoke_and_check Lib.helicsCoreMakeConnections(core, file)
end

16 changes: 12 additions & 4 deletions src/lib.jl
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ function helicsMessageGetRawDataSize(message)
ccall((:helicsMessageGetRawDataSize, libhelicsSharedLib), Cint, (helics_message_object,), message)
end

function helicsMessageGetRawData(message, data, maxlen, actualSize, err)
ccall((:helicsMessageGetRawData, libhelicsSharedLib), Cvoid, (helics_message_object, Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{helics_error}), message, data, maxlen, actualSize, err)
function helicsMessageGetRawData(message, data, maxMessagelen, actualSize, err)
ccall((:helicsMessageGetRawData, libhelicsSharedLib), Cvoid, (helics_message_object, Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{helics_error}), message, data, maxMessagelen, actualSize, err)
end

function helicsMessageGetRawDataPointer(message)
Expand Down Expand Up @@ -428,8 +428,8 @@ function helicsInputGetRawValueSize(ipt)
ccall((:helicsInputGetRawValueSize, libhelicsSharedLib), Cint, (helics_input,), ipt)
end

function helicsInputGetRawValue(ipt, data, maxlen, actualSize, err)
ccall((:helicsInputGetRawValue, libhelicsSharedLib), Cvoid, (helics_input, Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{helics_error}), ipt, data, maxlen, actualSize, err)
function helicsInputGetRawValue(ipt, data, maxDatalen, actualSize, err)
ccall((:helicsInputGetRawValue, libhelicsSharedLib), Cvoid, (helics_input, Ptr{Cvoid}, Cint, Ptr{Cint}, Ptr{helics_error}), ipt, data, maxDatalen, actualSize, err)
end

function helicsInputGetStringSize(ipt)
Expand Down Expand Up @@ -682,6 +682,10 @@ function helicsBrokerAddDestinationFilterToEndpoint(broker, filter, endpoint, er
ccall((:helicsBrokerAddDestinationFilterToEndpoint, libhelicsSharedLib), Cvoid, (helics_broker, Cstring, Cstring, Ptr{helics_error}), broker, filter, endpoint, err)
end

function helicsBrokerMakeConnections(broker, file, err)
ccall((:helicsBrokerMakeConnections, libhelicsSharedLib), Cvoid, (helics_broker, Cstring, Ptr{helics_error}), broker, file, err)
end

function helicsCoreWaitForDisconnect(core, msToWait, err)
ccall((:helicsCoreWaitForDisconnect, libhelicsSharedLib), helics_bool, (helics_core, Cint, Ptr{helics_error}), core, msToWait, err)
end
Expand All @@ -706,6 +710,10 @@ function helicsCoreAddDestinationFilterToEndpoint(core, filter, endpoint, err)
ccall((:helicsCoreAddDestinationFilterToEndpoint, libhelicsSharedLib), Cvoid, (helics_core, Cstring, Cstring, Ptr{helics_error}), core, filter, endpoint, err)
end

function helicsCoreMakeConnections(core, file, err)
ccall((:helicsCoreMakeConnections, libhelicsSharedLib), Cvoid, (helics_core, Cstring, Ptr{helics_error}), core, file, err)
end

function helicsBrokerGetIdentifier(broker)
ccall((:helicsBrokerGetIdentifier, libhelicsSharedLib), Cstring, (helics_broker,), broker)
end
Expand Down
16 changes: 11 additions & 5 deletions src/manual.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ const HELICS_HAVE_MPI = 0
const HELICS_HAVE_ZEROMQ = 1
const BOOST_VERSION_LEVEL = 67
const HELICS_VERSION_MAJOR = 2
const HELICS_VERSION_MINOR = 2
const HELICS_VERSION_PATCH = 2
const HELICS_VERSION = "2.2.2"
const HELICS_VERSION_MINOR = 3
const HELICS_VERSION_PATCH = 0
const HELICS_VERSION = "2.3.0"
const HELICS_VERSION_BUILD = ""
const HELICS_VERSION_STRING = "2.2.2 (10-27-19)"
const HELICS_DATE = "10-27-19"
const HELICS_VERSION_STRING = "2.3.0 (2019-11-13)"
const HELICS_DATE = "2019-11-13"

@cenum helics_data_type::UInt32 begin
helics_data_type_string = 0
Expand Down Expand Up @@ -38,6 +38,8 @@ const helics_data_type_char = helics_data_type_string
helics_core_type_nng = 9
helics_core_type_tcp_ss = 11
helics_core_type_http = 12
helics_core_type_websocket = 14
helics_core_type_inproc = 18
end

@cenum helics_federate_flags::UInt32 begin
Expand Down Expand Up @@ -81,6 +83,7 @@ end
helics_error_invalid_state_transition = -9
helics_error_invalid_function_call = -10
helics_error_execution_failure = -14
helics_error_insufficient_space = -18
helics_error_other = -101
other_error_type = -203
end
Expand All @@ -96,6 +99,8 @@ end
helics_property_time_output_delay = 150
helics_property_int_max_iterations = 259
helics_property_int_log_level = 271
helics_property_int_file_log_level = 272
helics_property_int_console_log_level = 274
end

@cenum helics_handle_options::UInt32 begin
Expand All @@ -105,6 +110,7 @@ end
helics_handle_option_multiple_connections_allowed = 409
helics_handle_option_buffer_data = 411
helics_handle_option_strict_type_checking = 414
helics_handle_option_ignore_unit_mismatch = 447
helics_handle_option_only_transmit_on_change = 6
helics_handle_option_only_update_on_change = 8
helics_handle_option_ignore_interrupts = 475
Expand Down
6 changes: 3 additions & 3 deletions src/wrapper.jl
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,16 @@ macro define(subtype, supertype)
struct [`HELICS.$subtype`](@ref) <: [`HELICS.$supertype`](@ref)
"""
quote
esc(quote
struct $subtype <: $supertype
ptr::Ptr{Nothing}
function $subtype(ptr::Ptr{Nothing})
ptr == C_NULL && error("Failed to create $subtype. Received null pointer from HELICS C interface.")
ptr == C_NULL && error("Failed to create $($subtype). Received null pointer from HELICS C interface.")
new(ptr)
end
end
@doc $docstring $subtype
end
end)
end

@define Broker CWrapper
Expand Down
4 changes: 2 additions & 2 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ const h = HELICS

@testset "Versions" begin

@test h.helicsGetVersion() isa String
@test h.helicsGetVersion() == "2.2.2 (10-27-19)"
@test h.helicsGetVersion() isa String
@test VersionNumber(split(h.helicsGetVersion())[1]) == h.HELICS_VERSION

end

Expand Down

0 comments on commit 4c5c987

Please sign in to comment.