History log of /libCEED/rust/libceed-sys/c-src/interface/ceed-qfunction-register.c (Results 26 – 28 of 28)
Revision Date Author Comments
# ded9b81d 12-Jan-2021 Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com>

Rust - add examples (#683)

* Rust - initial version of ex1

Example - move closure

Co-authored-by: Jed Brown <jed@jedbrown.org>

typo fix

Co-authored-by: Jed Brown <jed@jedbrown.org>

mi

Rust - add examples (#683)

* Rust - initial version of ex1

Example - move closure

Co-authored-by: Jed Brown <jed@jedbrown.org>

typo fix

Co-authored-by: Jed Brown <jed@jedbrown.org>

minor tidying

order -> degree

drop operator applicaiton messages

* rust: make top-level workspace and use libceed from path

This allows a single "cargo test" from the top level.

* rust: add version-sync (to help us remember when we publish a crate)

* examples - consistency update

* Rust - add Cargo.lock to top level gitignore

* rust - refactor example to add tests

* Rust - test and style from workspace

* Rust - update year in header

* Rust - add error values to Error, switch to String

* Rust - add input validation in check

* Rust - format volume output in example

* Rust - update example help output

* Rust - example tests rename to simplify

* Rust - split example 1 into 3 parts

* rust: std::sync::Once for CeedRegisterAll()

* Promote CeedRegisterAll() and CeedQFunctionRegisterAll() to User
* Guard calls to CeedInit() to avoid races in parallel testing

* Examples - update rust example to new builder syntax

* Examples - add rust ex2

* Rust - add CEED_STRIDES_BACKEND

* Examples - drop unused restriction in ceed ex2

* Rust - minor documentation update

* Rust - adopt convention of 'dimension-like' values all using usize; reduces casting

* Actions - add Rust code coverage

* Rust - fix usize conversion

* Rust - update casting between i32(C interface) and usize(Rust interface)

* Actions - include Rust doctests

* Actions - Rust doctest coverange only avaliable in nightly

* Rust - drop explict typing of values passed to C get* functions

* Rust - modify version numbers tests, cargo-tarpaulin and cargo have different calling paths in tests

* cargo fmt

* Examples - add separate Rust example quiet mode

* Actions - rustfmt not always avaliable on nightly

* Rust - simplify version tests

* Actions - add a few notes

* CodeCov - try adding gallery to 'fixes'

* CodeCov - drop some codecov noise in examples

* Examples - test all combinations in ex1/ex2

* Rust - test 3d examples without quiet flag

* Actions - use gcc-10 for compatibility in gcov reports

* Examples - test gallery in 1/2/3d in Rust ex

* Gitlab - also report gcov version

* JUnit - adjust indentation

* Gitlab - make it easier to find complier info in logs

* Tests - fix minor styling strangeness in t002

* Actions - only upload rust coverage

* Actions - exclude non-rust files from rust coverage

* Cov - exclude weak symbols code, not useful cov info

* Examples - clean up options creation for tests in Rust examples

* Examples - simplify tolerance for testing Rust examples

* cargo fmt

* Examples - another match

* Examples - common Rust example code in shared local crate

Co-authored-by: Jed Brown <jed@jedbrown.org>

show more ...


# 14b01f2c 16-Dec-2020 Jed Brown <jed@jedbrown.org>

Merge pull request #674 from CEED/jed/static-link

static link


# 1d013790 14-Dec-2020 Jed Brown <jed@jedbrown.org>

Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into

Add static library (libceed.a) [resolve #670]

We no longer use __attribute__((constructor)) to register backends and
gallery implementations because we can't ensure that the symbols are
linked into applications that link the static library. We've switched to
creating CeedRegisterAll() and CeedQFunctionRegisterAll(), which are
called automatically by the library, and call weak symbols to register
all the backend/gallery implementations. This strategy was partly
motivated by not wanting to have preprocessor macros describing what is
available, and the associated need to recompile rather than just relink
when those macros change.

So we now have backends/ceed-backend-list.h that declares all the
backends wrapped in a macro. It is included by
backends/ceed-backend-weak.c to create weak definitions of all the
backends. In the makefile, we sort so this comes last when linking a
shared or static library, and thus these weak symbols will only be
picked up if they were not defined by the actual backend source files.
The same header is included (with different macro wrapping) in
interface/ceed-register.c, where CeedRegisterAll() is defined.

To add a new backend, one must do essentially the same registration
strategy as in the past, plus add one line to the common
ceed-backend-list.h.

show more ...


12