sg-s / xolotl

A MATLAB neuron simulator. Very fast (written in C++). Flexible (fully object oriented). Immediate (live manipulation in MATLAB). Comes with a powerful parameter optimizer. Get started ➡️
https://go.brandeis.edu/xolotl
GNU General Public License v3.0
43 stars 8 forks source link

testConductances not working on Windows 10 machine #586

Closed smbaca closed 1 year ago

smbaca commented 2 years ago

Please go through the following steps before you file an issue that documents a problem or a potential bug and please check each item as you do so:

Information

Operating System

Windows 10

Output of "version" command in MATLAB

'9.12.0.1975300 (R2022a) Update 3'

Output of "mex.getCompilerConfigurations('C++')" in MATLAB

Name: 'MinGW64 Compiler (C++)' Manufacturer: 'GNU' Language: 'C++' Version: '6.3.0' Location: 'C:\ProgramData\MATLAB\SupportPackages\R2022a\3P.instrset\mingw_w64.instrset' ShortName: 'mingw64-g++' Priority: 'E' Details: [1×1 mex.CompilerConfigurationDetails] LinkerName: 'C:\ProgramData\MATLAB\SupportPackages\R2022a\3P.instrset\mingw_w64.instrset\bin\g++' LinkerVersion: '' MexOpt: 'C:\Users\serap\AppData\Roaming\MathWorks\MATLAB\R2022a\mex_C++_win64.xml'

Bug reports

What you were trying to do (include code to reproduce error)

xolotl.testConductances

What you expected to happen

SUCCESS

What actually happened

No objects found One or more output arguments not assigned during call to "varargout".

Error in xolotl/testConductances (line 8) all_cond = cpplab.search([xroot filesep 'c++' filesep 'conductances']);

sg-s commented 2 years ago

it's fairly hard for me to troubleshoot this as i don't have a windows computer, but can you try this:

cpplab.search('conductances')

what do you get? I suspect you get nothign

smbaca commented 2 years ago

So, what is weird is that it will list all of these directories, but then it loops through it over and over again. For whatever reason, it seems stuck in an infinite loop.

cpplab.search('conductances')

Name Parent Class Object Information

Rebuilding cache, this may take a while... C:\Users\serap\Documents\MATLAB\xolotl C:\Users\serap\Documents\MATLAB C:\Users\serap\Desktop\git_repository C:\Users\serap\Desktop\git_repository\cpplab C:\Users\serap\Desktop\git_repository\cpplab\docs C:\Users\serap\Desktop\git_repository\cpplab\docs\reference C:\Users\serap\Desktop\git_repository\puppeteer C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\docs C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\docs\veclib C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\licenses C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\src C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\src\beta C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\src\deprecated C:\Users\serap\Desktop\git_repository\srinivas.gs_mtools\src\t_sne C:\Users\serap\Desktop\git_repository\xolotl C:\Users\serap\Desktop\git_repository\xolotl\build C:\Users\serap\Desktop\git_repository\xolotl\c++ C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\amarillo C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\bronk C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\brookings C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\caplan C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\chow C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\clay00 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\destexhe C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\destexhe98 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\dethier C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\generic C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\giovannini C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\goldman C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\golowasch C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\hardie-laughlin C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\heras C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\hill C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\hodgkin-huxley C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\jochems C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\kispersky C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\lin C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\liu C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\liu-temperature C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\morris-lecar C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\nadim98 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\nadim98\int1 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\nadim98\lg C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\nadim98\mcn1 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\nadim99 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\odowd-aldrich C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\prinz C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\prinz-temperature C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\rodriguez C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\rodriguez\Int1 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\rodriguez\LG C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\sharp C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\sharp96 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soplata C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soplata\legacy C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soplata\legacy\reticular C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soplata\legacy\thalamocortical C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino01 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino01\ABPD C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino01\LP C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino01\PY C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino05 C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino05\AB C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\soto-trevino05\PD C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\swensen C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\templates C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\traub C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\turrigiano C:\Users\serap\Desktop\git_repository\xolotl\c++\conductances\wicher C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\buchholtz C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\buchholtz-temperature C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\destexhe C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\goldwyn C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\gorur-shandilya C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\liu C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\oleary C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\prinz C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\prinz-temperature C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\soto-trevino C:\Users\serap\Desktop\git_repository\xolotl\c++\mechanisms\traub C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\borgers C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\cymbalyuk C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\dayan-abbott C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\generic C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\gutierrez C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\nadim C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\nadim98 C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\prinz C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\prinz-temperature C:\Users\serap\Desktop\git_repository\xolotl\c++\synapses\soplata C:\Users\serap\Desktop\git_repository\xolotl\docs C:\Users\serap\Desktop\git_repository\xolotl\docs\explanation C:\Users\serap\Desktop\git_repository\xolotl\docs\how-to C:\Users\serap\Desktop\git_repository\xolotl\docs\images C:\Users\serap\Desktop\git_repository\xolotl\docs\meta C:\Users\serap\Desktop\git_repository\xolotl\docs\performance C:\Users\serap\Desktop\git_repository\xolotl\docs\reference C:\Users\serap\Desktop\git_repository\xolotl\docs\reference\c++ C:\Users\serap\Desktop\git_repository\xolotl\docs\reference\matlab C:\Users\serap\Desktop\git_repository\xolotl\docs\tutorials C:\Users\serap\Desktop\git_repository\xolotl\examples C:\Users\serap\Desktop\git_repository\xolotl\examples\xgrid C:\Users\serap\Desktop\git_repository\xolotl\experimental C:\Users\serap\Desktop\git_repository\xolotl\experimental\proof-of-concept C:\Users\serap\Desktop\git_repository\xolotl\git-hooks C:\Users\serap\Desktop\git_repository\xolotl\optimization C:\Users\serap\Desktop\Return_Plots C:\Users\serap\Desktop\Return_Plots\mb_return_program_smb All DONE! Found 1058 C++ files Rebuilding cache, this may take a while...

On Aug 22, 2022, at 7:45 AM, Srinivas Gorur-Shandilya @.***> wrote:

it's fairly hard for me to troubleshoot this as i don't have a windows computer, but can you try this:

cpplab.search('conductances') what do you get? I suspect you get nothign

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222240818, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEQHAJGRBGY2EZNBEUTV2NR43ANCNFSM57FRRGPQ. You are receiving this because you authored the thread.

sg-s commented 2 years ago

@smbaca cpplab.search('conductances') loops indefinitely? is this true on other OSes as well? thanks for the bug report, we can probably sort this out quickly

smbaca commented 2 years ago

It does not loop in the Mac environment. Will check on Ubuntu but we are having other difficulties on that end so unsure whether it is an apples to apples comparison.

I am happy to help test things out on any of our systems. I use my Mac laptop for many things but we also have Windows and Ubuntu based servers that the grad students and postdocs utilize.

-Serapio

On Aug 22, 2022, at 8:54 AM, Srinivas Gorur-Shandilya @.***> wrote:

@smbaca https://github.com/smbaca cpplab.search('conductances') loops indefinitely? is this true on other OSes as well? thanks for the bug report, we can probably sort this out quickly

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222318814, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEV4T6BQTOHXZOCKL6LV2NZ65ANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

OK, thanks for that info. just to be clear,

this:

cpplab.search('conductances')

loops indefinitely on windows?

smbaca commented 2 years ago

Correct.

On Aug 22, 2022, at 9:02 AM, Srinivas Gorur-Shandilya @.***> wrote:

OK, thanks for that info. just to be clear,

this:

cpplab.search('conductances')

loops indefinitely on windows?

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222328186, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEVI6XEJ2VYHVX5GFHTV2N24ZANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

thanks. could you also run this on your windows computer:


xroot = fileparts(fileparts(which('xolotl')))
smbaca commented 2 years ago

xroot = fileparts(fileparts(which('xolotl')))

xroot =

'C:\Users\serap\Desktop\git_repository\xolotl'

On Aug 22, 2022, at 9:03 AM, Srinivas Gorur-Shandilya @.***> wrote:

thanks. could you also run this on your windows computer:

xroot = fileparts(fileparts(which('xolotl'))) — Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222329984, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMES4TQSTGDJQTY44MUTV2N3CBANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

OK i'm scratching my head. the only way this is possible is if there is a loop on your filesystem. perhaps you accidentally created an alias in one of the folders to a parent so that when it searches those folders it keeps going round and round?

other than that the only thing i can suggest is to reinstall. unless you're using a bleeding edge feature using the toolbox installer should work on windows

smbaca commented 2 years ago

Did a search for any shortcuts and came up empty. Removed the git_repository and installed via the Add-Toolbox. Everything runs as before but still get the same error when it .testConductances gets called.

So bizarre. That said, I did just run xolotl.cleanup and got a file not found or permissions denied error. I believe when I would run this before I would just get the Warning that it was deleting compiled binaries.

xolotl.cleanup Warning: [xolotl::cleanup] Deleting compiled binaries... In xolotl.cleanup (line 36) Warning: File not found or permission denied In xolotl.cleanup (line 40) Warning: File not found or permission denied In xolotl.cleanup (line 40)

-smb

On Aug 22, 2022, at 9:11 AM, Srinivas Gorur-Shandilya @.***> wrote:

OK i'm scratching my head. the only way this is possible is if there is a loop on your filesystem. perhaps you accidentally created an alias in one of the folders to a parent so that when it searches those folders it keeps going round and round?

other than that the only thing i can suggest is to reinstall. unless you're using a bleeding edge feature using the toolbox installer https://github.com/sg-s/xolotl/releases should work on windows

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222341020, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMETS42OV2IMUG4KCJC3V2N4AXANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

ugh!

is this preventing you from running xololt on windows? i know this is a bug but i want to prioritize you getting to working again

smbaca commented 2 years ago

Well the project involves creating some custom conductances (from leech mechanosensory neurons). I am fine to give you or another xolotl developer remote access to the machine. It is not the highest of priorities but the eventual plan is to use xolotl at the Neural Systems and Behavior course as well as some graduate courses at UVA, so I would like to be able to get the compilation working on the three different platforms eventually.

On Aug 22, 2022, at 10:13 AM, Srinivas Gorur-Shandilya @.***> wrote:

ugh!

is this preventing you from running xololt on windows? i know this is a bug but i want to prioritize you getting to working again

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222421179, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEQ676CGWXRYSRENYVLV2ODI7ANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

can you do a screenshare?

smbaca commented 2 years ago

That’s certainly possible but I gotta take a kiddo to a doc appointment. Maybe we can schedule a time tomorrow?

-smb

On Aug 22, 2022, at 10:19 AM, Srinivas Gorur-Shandilya @.***> wrote:

can you do a screenshare?

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1222428450, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEVHC6JJQ274BUBDZLDV2OD5RANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

alec-hoyland commented 2 years ago

Machine info

Windows Build | 19044 MATLAB Version | 9.12.0.2009381 (R2022a) Update 4

>> mex.getCompilerConfigurations("C++")

ans = 

  CompilerConfiguration with properties:

             Name: 'MinGW64 Compiler (C++)'
     Manufacturer: 'GNU'
         Language: 'C++'
          Version: '6.3.0'
         Location: 'C:\ProgramData\MATLAB\SupportPackages\R2022a\3P.instrset\mingw_w64.instrset'
        ShortName: 'mingw64-g++'
         Priority: 'E'
          Details: [1×1 mex.CompilerConfigurationDetails]
       LinkerName: 'C:\ProgramData\MATLAB\SupportPackages\R2022a\3P.instrset\mingw_w64.instrset\bin\g++'
    LinkerVersion: ''
           MexOpt: 'C:\Users\alech\AppData\Roaming\MathWorks\MATLAB\R2022a\mex_C++_win64.xml'

Proof of life:

image

Error

I was able to reproduce the issue @smbaca is having. cpplab.search('conductances') works as expected, but xolotl.testConductances fails:

>> xolotl.testConductances
No objects found
One or more output arguments not assigned during call to "varargout".

Error in xolotl/testConductances (line 8)
all_cond = cpplab.search([xroot  filesep 'c++'  filesep 'conductances']);
alec-hoyland commented 2 years ago

@sg-s The issue is in the regex matching here:

https://github.com/sg-s/cpplab/blob/1e6857bce8756594b0d63b154ba0052390b58051/%40cpplab/search.m#L55

alec-hoyland commented 2 years ago

Windows doesn't like that you're using regex/escaping with backslashes. Using the contains function fixes that. There's also an issue with trailing whitespaces/newlines due to the CLRF line endings used by Windows and no other OS I know of. Basically, these problems are because we were developing and testing only on *nix machines. Fortunately, they are easy to fix (and also xolotl worked fine the whole time -- it was just tests that were failing).

See PR here: https://github.com/sg-s/cpplab/pull/74

sg-s commented 2 years ago

@smbaca does this help? you'll have to update your cpplab

smbaca commented 2 years ago

I will give it a try! I just update the git-hub based release by xolotl.update and that will apply the update?

On Aug 25, 2022, at 6:42 PM, Srinivas Gorur-Shandilya @.***> wrote:

@smbaca https://github.com/smbaca does this help? you'll have to update your cpplab

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1227828615, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMESWSOXFL7MM6T24AOTV27ZHDANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

honestly i don't remember what happens if you do that. it probably won't work on windows anyway. i would update xolotl and cpplab from github using git and you should be good to go

smbaca commented 2 years ago

As long as the warnings are just warnings I think we have the green light on Windows with the GitHub installation!

I just took a snippet of the Warnings as I get one per each compiled item but it seems to be working.

-Serapio

Warning: Escaped character '\C' is not valid. See 'doc sprintf' for supported special characters.

In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu [OK] Warning: Escaped character '\H' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu [OK] Warning: Escaped character '\K' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu [OK] Warning: Escaped character '\K' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu [OK] Warning: Escaped character '\N' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu [OK] Warning: Escaped character '\A' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu-temperature [OK] Warning: Escaped character '\C' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu-temperature [OK] Warning: Escaped character '\C' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu-temperature [OK] Warning: Escaped character '\H' is not valid. See 'doc sprintf' for supported special characters. In xolotl.testConductances (line 33) In xolotl.run_all_tests (line 92) liu-temperature

On Aug 26, 2022, at 11:01 AM, Srinivas Gorur-Shandilya @.***> wrote:

honestly i don't remember what happens if you do that. it probably won't work on windows anyway. i would update xolotl and cpplab from github using git and you should be good to go

— Reply to this email directly, view it on GitHub https://github.com/sg-s/xolotl/issues/586#issuecomment-1228605447, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVXMEWB3KEINRI27EEU5ZDV3DL5BANCNFSM57FRRGPQ. You are receiving this because you were mentioned.

sg-s commented 2 years ago

excellent! thanks to @alec-hoyland for fixing this. i have no idea what he's done, but he's done it!

smbaca commented 1 year ago

Yes, many thanks! I am sure Mark and I will be circling back but at least we can get into trouble with making and compiling conductances and novel mechanisms on all the OSs now. :-)