Skip to content
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

[pull] master from neuronsimulator:master #3

Open
wants to merge 402 commits into
base: master
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Oct 26, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Oct 26, 2023
Nicolas Cornu and others added 29 commits May 23, 2024 09:31
e.g., we can now do

```python
node.include_flux(ca * (1-ca))
```

where `ca` is an `rxd.Species`
* initial partial API

* nrnpy_set_pr_etal should be extern C

* nrn_call_function leaves results on stack

* segments, properties

* including hocdec.h to try to avoid Datum errors on some systems

* sectionlist and allsec hoc_Item getters

* symbol and object introspection

* symbol table getting and interating

* object ref, push

* Renamed files to avoid having two nrnapi.h files.

On some systems (most? but not the one I used for everything else),
some files tried to include the wrong nrnapi.h during the
"make install" phase.

* neuronapi.cpp no longer uses its .h, that is now a header for 3rd party tools

* switched to enum for stack types

* needed typedefs for C to be happy

* test: sections.c

* clang-format

* replaced hoc_Item with new synonym nrn_Item

* netcon example shows no need for dlsym

* support for .so files in addition to .dylib

* removed an excess const

We'll still treat the pointer as const, but the user has no reason to care.

* Add Robert's API tests to CTest (#2365)

* build + run tests

* fixups

* different fixup

* add -rdynamic

* bugfix flagged by ASan

* fix to header file name of api

* hh_sim and sections work with handles
don't have quantitative identity with the old hh_sim results, but very
close.

* rename stack_types_t per @olupton

* replace param_handle with param

* working vclamp

* unified API property functions

* getters use const args

* forgot to commit sections

* vector_capacity now on const obj

* Several improvements

 - C/C++ api header included in implementation
 - signatures made compatible
 - public nrn_Item defined as inheriting from hoc_Item
 - dropped overlapping definitions. types are both fw declarations and
   opaque types

* Make tests link against nrniv_lib, no dlopen

* Address sonar lint reservations

* Make comparisons be part of the test and account for fp innacuraciesa

* Tests to find ref files

* api: Make tests resilient to accumulated errors

* Use in-test ref result, depending on NRN_ENABLE_CORENEURON

* Use free for allocated c strings

* Dont alloc Section Item to heap as its not used.

NOTE: It seems that Sections are never freed. However we are
lacking API to free Sections and Symbols in general.

* Address intel compiler complain

* Free memb_func[].dparam_semantics

* Switch dparam_semantics to unique_ptr (no raw!)

* Memb_list to do its memory management

* Memb_list to be aware of its potential "view" condition and not free

* Back pdata free

* nrn_init to better initialize mpi

* Addressed a number of warnings, inc avoidiing potential double free

* Addressed sonarcloud issues

* fix the merge with master

* Fix test/api/netcon.cpp after merge with master

  - after RANDOM construct (#2627) was merged,
    netstim.mod uses Random123 by default
  - before this, netstim was using scoprand by default
    and reference results were from the same
  - now, explicitly use Random123 in the test and update
    reference results

* fix warning [-Wimplicit-exception-spec-mismatch]

---------

Co-authored-by: Olli Lupton <[email protected]>
Co-authored-by: Fernando Pereira <[email protected]>
Co-authored-by: Pramod Kumbhar <[email protected]>
Co-authored-by: Nicolas Cornu <[email protected]>
Co-authored-by: Michael Hines <[email protected]>
#2887)

* add warning for 0 volume i region

* add test for warning
The SoA no longer leaks the storage for the stable identifiers, instead
it uses reference counting.
* Give more CPU to jobs
* For the FENV_ACCESS see the note here: https://eel.is/c++draft/cfenv.syn
* Pin numpy max version to <2
* Pin version of numpy in CI
* Pin tenacity package (plotly dep)
      - The CI here: https://github.com/neuronsimulator/nrn/actions/runs/9543904495/job/26301425761 is failing with the error:
          ModuleNotFoundError: No module named 'tenacity.asyncio'
      - This is probably due to a new version of tenacity being released:
            jd/tenacity@8.3.0...8.4.0
It seems unused and `hoc.h` has changed to include `hocdec.h`.
Doc is already on RTD (read the doc)
Optimizes nocmodl generated code to use the mechanism cache when
accessing diam and area as described in #2913.
This PR introduces a wrapper of all C function that are registered with Python.
The wrapper catches all exceptions, and converts them to Python exceptions,
then it returns a value signaling an error.
* Rename `nmodl2` page under Python to `nmodl_neuron_extension`
* Use absolute path references in NMODL pages under Python
* Move NMODL pages under Python to `NMODLanguage`
* Various updates to `nmodl_neuron_extension` page and `nmodl` page
* Use mini tabs for Python/HOC fragments in NMODL pages
nrnhines and others added 30 commits December 6, 2024 14:48
`result_of` was deprecated in C++17, and should be replaced by
`invoke_result` (or its helpers).
…ystem` (#3292)

* Replace `cleanup` and Win32 script with std::filesystem

* Fixups

* Remove from cmake

* Update src/oc/hoc.cpp

Co-authored-by: Nicolas Cornu <[email protected]>

* Update src/oc/hoc.cpp

Co-authored-by: Nicolas Cornu <[email protected]>

* Put back Windows-specific part of cleanup

* Use `noexcept` version of `fs::remove`

* Declare the Windows function as `extern`

---------

Co-authored-by: Nicolas Cornu <[email protected]>
Also remove unused setup.py.in
* use new Docker image tags (`manylinux_2_28_x86_64` and `manylinux_2_28_aarch64`) in CI for building wheels
* use vendor-provided `flex`, `mpich`, and `openmpi` instead of building from source (still need custom `readline` and `ncurses` as the `*-static` versions do not use `-fPIC`)
* unify MPI headers when building wheels
* remove BBP-specific tests for wheels
* show warning in Python wrapper if host machine is using GCC<10
* mention new min system requirements in docs when using a manylinux NEURON wheel
Plotly 6 requires anywidget
* Remove docs.yml CI 

* Enable readthedocs build on pull requests

* Remove conda dependencies

* Update docs build instructions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.