Initial attempt at implementing VERBATIM.
Codecov Report
Attention: Patch coverage is 25.00000% with 84 lines in your changes missing coverage. Please review.
Project coverage is 86.23%. Comparing base (
c5052b9) to head (63ff7e0). Report is 2 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #1364 +/- ##
==========================================
- Coverage 86.75% 86.23% -0.52%
==========================================
Files 180 180
Lines 13669 13760 +91
==========================================
+ Hits 11858 11866 +8
- Misses 1811 1894 +83
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Logfiles from GitLab pipeline #223048 (:white_check_mark:) have been uploaded here!
Status and direct links:
Is there a reference somewhere how users can ...
I don't know but I'm not writing one. Users should not use and ideally not know about VERBATIM. It constantly causes severe issues that limit our ability to generate code freely.
Is there a reference somewhere how users can ...
I don't know but I'm not writing one. Users should not use and ideally not know about VERBATIM. It constantly causes severe issues that limit our ability to generate code freely.
There has never been a promise that use of NEURON internals within mod file VERBATIM blocks would be stable. The assumption is that occasionally VERBATIM can be useful even if intimately tied to a specific version NEURON. An example is the VERBATIM block in ri.mod of the Traub model which makes use of the details of the internal segment data structure. https://github.com/ModelDBRepository/82894/blob/master/mod/ri.mod . As in this case, we developers have had some success in supporting published modeldb models. Since NEURON is used in part in the domain of Computational Neuroscience research, it is sometimes necessary for users to extend the program. In practice this sometimes means that the researcher should ask a developer for advice on how to implement the extension needed. Forking and modifying NEURON source is a last resort and in most cases dealing with the issue with a mod file with a VERBATIM block that has knowledge of NEURON internals sufficed.
There has never been a promise that use of NEURON internals within mod file VERBATIM blocks would be stable.
In that case, I think we need to put a huge warning label in the NEURON docs, currently there is some mention of compatibility issues, but it's not nearly prominent enough.
Regarding the mod file linked: it doesn't work with this NMODL PR as the #defines from the VERBATIM block do not appear anywhere in the cpp file.
it doesn't work
Fixed & testing that now. It's related to SUFFIX nothing.
Regarding how well it's tested, not very well. It's enough to compile everything we need for the nrn repository. Without it's slowly a bit tedious to make progress towards getting nmodl working for all nrn unit-test.