ANTsX / ANTsR

R interface to the ANTs biomedical image processing library
https://antsx.github.io/ANTsR
Apache License 2.0
127 stars 35 forks source link

Windows port #271

Open 1alebra2 opened 5 years ago

1alebra2 commented 5 years ago

Just an update: The momentaneous issue is that antsrtransform2.cpp yields too big an obj file (20 MB). This will not be linked. I boiled this file down to smallest unit which still compiles, and this ends up with 17 MB. And this won't be linked either due to size limitations of the Rtools (Windows)linker (version 3.5), I cheated the rtools chain by changing the linker to the msys2 linker, but this does not make any difference, whereby this linker seems to be faster. So I am stuck. Either we find another linker which can handle this or the code is rewritten (what means distributed on different files, which results in smaller objects). Generally developers really should look to keep the code handy, otherwise we will always run into this problem with new code ( at least for a win-version). In the last version antstransform2.cpp ( of about a year ago) was no problem. In essence antsrTransform2.cpp needs to be split up somehow, if we want a windows port

1alebra2 commented 5 years ago

Hello everybody

Another update

I finally could build an antsrcore.dll outside the regular building routine. I had to slice up antsrtransform2.cpp into smaller code chunks etc. and then the build worked - no functional tests yet. I then wanted to implement this into the configure.win in order to achieve a regular build. I got stuck with the build of ResampleImage.exe, which was no problem with the earlier antrscore versions. The linker hangs and does not do anything, Stopping it produces a lot of undefined references and vtable errors. I will add this to the end of my mail. The main issue with the windows port is that the linker simply freezes when the obj. files are beyond 15 MB in size. Sometimes it doesn't even work with smaller sizes (14MB). I thought that this happens only when creating a dll, however this is obviously a general problem, -also exe files. The issue hereby is something like "the hen egg problem". Vtable issues are due to (faulty-missing) declarations of virtual and pure functions etc. (I am no specialist in this) - so this could be a code related issue. On the other hand I don't know if this ocurrence is related to the size of the obj file in general (smaller junks do work) or this is just by chance, as the big objects have a lot function declarations and they get mixed up?
So my plea is to look at the vtable issue which somehow is related to classes bspline-Gaussian etc. both files that do not work contain references to these classes. Is there anything wrong with function definitions?
If this is not the case I see a continuous windows port in creating a package comparable to the linux version as difficult. This would mean a major reorganisation of the files and the file structure. resampleimage.txt have a nice Sunday

muschellij2 commented 5 years ago

That sounds great. What do you mean by "outside the regular building routine"?

You used the Rtools toolchain correct ( https://cran.r-project.org/bin/windows/Rtools/)? Which version? Can you submit a pull request to the repo with your edits?

Bes,t John

On Sun, Jun 9, 2019 at 4:50 AM 1alebra2 notifications@github.com wrote:

Hello everybody

Another update

I finally could build an antsrcore.dll outside the regular building routine. I had to slice up antsrtransform2.cpp into smaller code chunks etc. and then the build worked - no functional tests yet. I then wanted to implement this into the configure.win in order to achieve a regular build. I got stuck with the build of ResampleImage.exe, which was no problem with the earlier antrscore versions. The linker hangs and does not do anything, Stopping it produces a lot of undefined references and vtable errors. I will add this to the end of my mail. The main issue with the windows port is that the linker simply freezes when the obj. files are beyond 15 MB in size. Sometimes it doesn't even work with smaller sizes (14MB). I thought that this happens only when creating a dll, however this is obviously a general problem, -also exe files. The issue hereby is something like "the hen egg problem". Vtable issues are due to (faulty-missing) declarations of virtual and pure functions etc. (I am no specialist in this) - so this could be a code related issue. On the other hand I don't know if this ocurrence is related to the size of the obj file in general (smaller junks do work) or this is just by chance, as the big objects have a lot function declarations and they get mixed up? So my plea is to look at the vtable issue which somehow is related to classes bspline-Gaussian etc. both files that do not work contain references to these classes. Is there anything wrong with function definitions? If this is not the case I see a continuous windows port in creating a package comparable to the linux version as difficult. This would mean a major reorganisation of the files and the file structure. resampleimage.txt https://github.com/ANTsX/ANTsR/files/3269361/resampleimage.txt have a nice Sunday

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AAIGPLSGZZNFIRFHZ7AFFULPZS75BA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXIGJJI#issuecomment-500196517, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIGPLVSFCQWZ5VXZB6VZZ3PZS75BANCNFSM4HRYDHWA .

1alebra2 commented 5 years ago

I will answer soon. and submit a pull/request

John Muschelli notifications@github.com schrieb am 09.06.2019 um 22:32: That sounds great. What do you mean by "outside the regular building routine"? You used the Rtools toolchain correct ( https://cran.r-project.org/bin/windows/Rtools/)? Which version? Can you submit a pull request to the repo with your edits? Bes,t John On Sun, Jun 9, 2019 at 4:50 AM 1alebra2 notifications@github.com wrote: Hello everybody

Another update

I finally could build an antsrcore.dll outside the regular building routine. I had to slice up antsrtransform2.cpp into smaller code chunks etc. and then the build worked - no functional tests yet. I then wanted to implement this into the configure.win in order to achieve a regular build. I got stuck with the build of ResampleImage.exe, which was no problem with the earlier antrscore versions. The linker hangs and does not do anything, Stopping it produces a lot of undefined references and vtable errors. I will add this to the end of my mail. The main issue with the windows port is that the linker simply freezes when the obj. files are beyond 15 MB in size. Sometimes it doesn't even work with smaller sizes (14MB). I thought that this happens only when creating a dll, however this is obviously a general problem, -also exe files. The issue hereby is something like "the hen egg problem". Vtable issues are due to (faulty-missing) declarations of virtual and pure functions etc. (I am no specialist in this) - so this could be a code related issue. On the other hand I don't know if this ocurrence is related to the size of the obj file in general (smaller junks do work) or this is just by chance, as the big objects have a lot function declarations and they get mixed up? So my plea is to look at the vtable issue which somehow is related to classes bspline-Gaussian etc. both files that do not work contain references to these classes. Is there anything wrong with function definitions? If this is not the case I see a continuous windows port in creating a package comparable to the linux version as difficult. This would mean a major reorganisation of the files and the file structure. resampleimage.txt https://github.com/ANTsX/ANTsR/files/3269361/resampleimage.txt have a nice Sunday

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub

https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AAIGPLSGZZNFIRFHZ7AFFULPZS75BA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXIGJJI#issuecomment-500196517, or mute the thread

https://github.com/notifications/unsubscribe-auth/AAIGPLVSFCQWZ5VXZB6VZZ3PZS75BANCNFSM4HRYDHWA .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUHDHXABAMY27ARLB7DPZVSGBA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXIRSVQ#issuecomment-500242774) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUB5NWTN7V2IUX4VCKLPZVSGBANCNFSM4HRYDHWA) .

tuxxon commented 5 years ago

Can you share your windows port?

1alebra2 commented 5 years ago

Yes I can, however, you have to know that this is the port from the version about a year old. The newest one poses deep going problems. I am using the port myself and it works fine for what I do. Even ANTSRnet is working. If you want this a can setup a dropbox account for download

Gordon Ahn notifications@github.com schrieb am 23.07.2019 um 06:10: Can you share your windows port? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUDUIW6NVKVHQ6G5QDLQA2ACPA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2R3UEY#issuecomment-514046483) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUDADWGGDPV3OTZ3A7LQA2ACPANCNFSM4HRYDHWA) .

1alebra2 commented 5 years ago

any decision on your side?

Gordon Ahn notifications@github.com schrieb am 23.07.2019 um 06:10: Can you share your windows port? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUDUIW6NVKVHQ6G5QDLQA2ACPA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2R3UEY#issuecomment-514046483) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUDADWGGDPV3OTZ3A7LQA2ACPANCNFSM4HRYDHWA) .

tuxxon commented 5 years ago

Can you send your work to me tuxxon at nate.com?

tuxxon commented 5 years ago

Of course my account gordon.ahn at gmail.com for dropbox.com

1alebra2 commented 5 years ago

Hello Did you get the software by now? Some reaction would be fine. I will close the download side

Bra

Gordon Ahn notifications@github.com schrieb am 23.07.2019 um 06:10: Can you share your windows port? — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUDUIW6NVKVHQ6G5QDLQA2ACPA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2R3UEY#issuecomment-514046483) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUDADWGGDPV3OTZ3A7LQA2ACPANCNFSM4HRYDHWA) .

tuxxon commented 5 years ago

Of course, Thank you for helping me. I want to close this issue, but I have no privilege.

1alebra2 commented 5 years ago

ok, good to know

Gordon Ahn notifications@github.com schrieb am 08.10.2019 um 07:38: Of course, Thank you for helping me. If I want to close this issue, I have no privilege. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUAJB6LKO7UTQGSOLL3QNQMEFA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAS2KSI#issuecomment-539338057) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUGNBIH5AHIKMPJJSS3QNQMEFANCNFSM4HRYDHWA) .

dorianps commented 5 years ago

@1alebra2 Can you share with others as well, I would be interested to have ANTsR in Windows, and probably a good chunk of the imaging community would.

Dorian

On Tue, Oct 8, 2019 at 4:57 AM 1alebra2 notifications@github.com wrote:

ok, good to know

Gordon Ahn notifications@github.com schrieb am 08.10.2019 um 07:38: Of course, Thank you for helping me. If I want to close this issue, I have no privilege. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub (

https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUAJB6LKO7UTQGSOLL3QNQMEFA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAS2KSI#issuecomment-539338057 ) , or mute the thread (

https://github.com/notifications/unsubscribe-auth/AJDSMUGNBIH5AHIKMPJJSS3QNQMEFANCNFSM4HRYDHWA ) .

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=ACFJU7LBJHTDKGE47HVJ65DQNRDRJA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEATOLMI#issuecomment-539420081, or mute the thread https://github.com/notifications/unsubscribe-auth/ACFJU7PHVBZFCIHHEQIL533QNRDRJANCNFSM4HRYDHWA .

muschellij2 commented 5 years ago

@dorianps - have you put some time into looking into this? We have tried to get it on appveyor, but no dice. I think if you could try to send some PRs as you're a dev on ANTsR would be great. Best, John

On Tue, Oct 8, 2019 at 10:30 AM dorianps notifications@github.com wrote:

@1alebra2 Can you share with others as well, I would be interested to have ANTsR in Windows, and probably a good chunk of the imaging community would.

Dorian

On Tue, Oct 8, 2019 at 4:57 AM 1alebra2 notifications@github.com wrote:

ok, good to know

Gordon Ahn notifications@github.com schrieb am 08.10.2019 um 07:38: Of course, Thank you for helping me. If I want to close this issue, I have no privilege. — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub (

https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUAJB6LKO7UTQGSOLL3QNQMEFA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAS2KSI#issuecomment-539338057 ) , or mute the thread (

https://github.com/notifications/unsubscribe-auth/AJDSMUGNBIH5AHIKMPJJSS3QNQMEFANCNFSM4HRYDHWA ) .

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub < https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=ACFJU7LBJHTDKGE47HVJ65DQNRDRJA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEATOLMI#issuecomment-539420081 , or mute the thread < https://github.com/notifications/unsubscribe-auth/ACFJU7PHVBZFCIHHEQIL533QNRDRJANCNFSM4HRYDHWA

.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AAIGPLT6QWD6R3E3UA5ICE3QNSKO3A5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAUL5MQ#issuecomment-539541170, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIGPLQNETRUBL3MIDYQQBLQNSKO3ANCNFSM4HRYDHWA .

dorianps commented 5 years ago

@muschellij2 , no I haven't, and compiling applications in Windows or R isn't really my cup of tea. It would need some considerable time on my side and I don't have that for now. But if @1alebra2 has found a way to compile and build a full package (ITK, ANTs, ANTsRCore, ANTsR), maybe we can place the binary installation as a release to give an installation shortcut to Windows users.

The other solution for Windows is the use of docker images, which could be much more dynamic, but to be honest haven't tried yet the docker image @stnava built. The time dedicated to software these days for me is slim.

muschellij2 commented 5 years ago

I understand it's also not my cup of tea, but the comment "I would be interested to have ANTsR in Windows" without help doesn't have a lot of lift to getting it done. We've put in a lot of work, but still can't get it to work. Best, John

On Tue, Oct 8, 2019 at 11:22 AM dorianps notifications@github.com wrote:

@muschellij2 https://github.com/muschellij2 , no I haven't, and compiling applications in Windows or R isn't really my cup of tea. It would need some considerable time on my side and thought and I don't have that for now. But if @1alebra2 https://github.com/1alebra2 has found a way to compile and build a full package (ITK, ANTs, ANTsRCore, ANTsR), maybe we can place the binary installation as a release to give an installation shortcut to Windows users.

The other solution for Windows is the use of docker images, which could be much more dynamic, but to be honest haven't tried yet the docker image @stnava https://github.com/stnava built.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AAIGPLTPP7Z5ETTNNCPIKNDQNSQU7A5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAUR5VA#issuecomment-539565780, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIGPLUMPVRYT454EXB2GOLQNSQU7ANCNFSM4HRYDHWA .

dorianps commented 5 years ago

I was under the impression that a Windows built was already available, albeit from 1-year old code. I was just curious to try it out, but other than that we are back at square one and perhaps docker is the way to go for Windows users.

muratmaga commented 5 years ago

I am also interested in seeing ANTsR in Windows natively, not just for myself but for all the people we train 3D Morphometrics in biology. Unfortunately, my contribution can only be limited to testing, and reporting. So, if you can tell me what it needs to be done, we might be able to come it with an alternative? What exactly is needed? Programmers time? Funding? Someone familiar with windows development?

1alebra2 commented 4 years ago

Hello all Sorry for the delay in participating in the discussion.

I can provide a Antsr win version, which I compiled last year, which does good service to us. We would have to find way how to distribute that. Some months (May or so) ago I was looking in the the new version . This worked nearly fine, but then I was stuck with the old problem.: the r tools linker does not handle obj files bigger than something around 20 MB in Windows. And some of the new code is bigger than that. I tried to rearrange the code and to redistribute it in several smaller single files. This did not work out on the fly. So it would take some effort to get this done. And new versions would have to keep this fact in mind. Otherwise you always run into the same problem. I know that Adi is working on a solution as well and tried other compilers. I haven't heard from him how far he got.

IN principle there are two possibilities from my understanding:

  1. You change the code into smaller files (this can be done - I did this one year ago)
  2. We use docker or something comparable......

Best alebra

John Muschelli notifications@github.com schrieb am 08.10.2019 um 17:25: I understand it's also not my cup of tea, but the comment "I would be interested to have ANTsR in Windows" without help doesn't have a lot of lift to getting it done. We've put in a lot of work, but still can't get it to work. Best, John On Tue, Oct 8, 2019 at 11:22 AM dorianps notifications@github.com wrote: @muschellij2 https://github.com/muschellij2 , no I haven't, and compiling applications in Windows or R isn't really my cup of tea. It would need some considerable time on my side and thought and I don't have that for now. But if @1alebra2 https://github.com/1alebra2 has found a way to compile and build a full package (ITK, ANTs, ANTsRCore, ANTsR), maybe we can place the binary installation as a release to give an installation shortcut to Windows users.

The other solution for Windows is the use of docker images, which could be much more dynamic, but to be honest haven't tried yet the docker image @stnava https://github.com/stnava built.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub

https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AAIGPLTPP7Z5ETTNNCPIKNDQNSQU7A5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAUR5VA#issuecomment-539565780, or mute the thread

https://github.com/notifications/unsubscribe-auth/AAIGPLUMPVRYT454EXB2GOLQNSQU7ANCNFSM4HRYDHWA .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub ( https://github.com/ANTsX/ANTsR/issues/271?email_source=notifications&email_token=AJDSMUBE4IRY73QMKL5HNS3QNSQ7ZA5CNFSM4HRYDHWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAUSIMY#issuecomment-539567155) , or mute the thread ( https://github.com/notifications/unsubscribe-auth/AJDSMUH24DFJNCDWS63IDVDQNSQ7ZANCNFSM4HRYDHWA) .