DLL not installed for this architecture?

Everything related to the development of modules in jamovi
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

DLL not installed for this architecture?

Post by Fhas »

Hi!

I'm running into problems distributing my module as a side load to windows.

I'm building on MacOS, no problems distributing to other macs:
Ok on mac!
Ok on mac!
onMacOs.jpeg (118.62 KiB) Viewed 8842 times
If I try to install the module on Windows via side load, installation completes successfully, but all analyses that depend on libraries listed as imports, fail with the message: DLL 'xyz' not installed for this architecture?
Built on MacOS, installed on Windows
Built on MacOS, installed on Windows
Capture.JPG (122.7 KiB) Viewed 8842 times
Should I be using specific build options in R to include all architectures, or, should I build a separate module on windows?

Thanks!
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

Re: DLL not installed for this architecture?

Post by Fhas »

Quick follow up:

Yes, if I build on windows it works fine on windows

Some notes:
  • Had to remove mac "invisible" files like '._xyz.a.yaml', the installer tried to compile them.
  • To make it work I had to remove the 'build' folder copied from the mac. With the mac build folder, the module installed just fine under windows, but it still gave the "DLL" error.
  • The Windows .jmo file is about 4 times larger than the mac: 12MB vs. 43MB!

Ok, my students can go do their assignments now :grinning:
Built on Win, now it works fine!
Built on Win, now it works fine!
builtonWin.PNG (53.95 KiB) Viewed 8838 times
Still curious if I can produce a "one-OS-fits-all module" by tweaking the build process on the Mac, please let me know, thanks!
User avatar
jonathon
Posts: 2613
Joined: Fri Jan 27, 2017 10:04 am

Re: DLL not installed for this architecture?

Post by jonathon »

hi,

so you'll almost definitely need to produce separate modules for macOS and windows, however, you probably can update both modules for windows and macos from the same computer.

so if you're working on a mac, after building the .jmo file, you can rename it to a .zip, unzip it and copy the `moduleName/R/moduleName` directory. then unzip the windows .jmo file, replace the `moduleName/R/moduleName` with the latest one from the mac, then zip it back up, rename it back to .jmo ... that should work. well, i'm 80% sure that will work.

jonathon
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

Re: DLL not installed for this architecture?

Post by Fhas »

Ok I have had some flawless compiles on Windows, based on my Mac build.

I can't seem to get rid of this error, which only occurs on Windows:
Error on Windows
Error on Windows
onWindows.PNG (13.82 KiB) Viewed 8756 times
The weird thing is:

Code: Select all

> packageVersion("Rcpp")
[1] 0.12.19
Any ideas what might be going on?
User avatar
jonathon
Posts: 2613
Joined: Fri Jan 27, 2017 10:04 am

Re: DLL not installed for this architecture?

Post by jonathon »

ah yeah, that's on me.

the idea with module dependencies, is that a module ships with everything it needs, and is insulated from the other modules - so if another module ships an incompatible version, it won't interfere.

however, what you're finding here is that this isolation is incomplete. in R, it's not possible to *properly* unload an R package, so i have to terminate the background R process, and restart it whenever someone runs an analysis from a different module. as you're seeing, i'm not doing this properly.

so i'd say jmv is shipping with an older Rpp on windows and this is what is getting loaded by mistake. what i'll do is update the version of Rcpp which ships with jmv, and i can procrastinate solving this problem a little longer. we'll push out a new release shortly.

cheers

jonathon
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

Re: DLL not installed for this architecture?

Post by Fhas »

Thanks! That's awesome... what version should I be looking for?

0.9.2.9 gives me some great (speed) improvements on the Mac, but 0.9.2.8 on Windows gives me the same error.

0.9.5.5 gives the same error in Windows, but for a different version of rlang:
withV0.9.5.5.PNG
withV0.9.5.5.PNG (18.51 KiB) Viewed 8738 times
User avatar
jonathon
Posts: 2613
Joined: Fri Jan 27, 2017 10:04 am

Re: DLL not installed for this architecture?

Post by jonathon »

yeah, we'll push out a 0.9.5.6 with the new versions.

if you commit your module somewhere (like github) i'll check that it will work.

talk me through what you mean by speed improvements(?)

cheers

jonathon
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

Re: DLL not installed for this architecture?

Post by Fhas »

Hi Jonathon,

I uploaded the repository from the windows machine here https://github.com/FredHasselman/casnetjmv

What I meant by "speed up" (MAC):
  • I added a function which has a 'while' loop because it has to search a list until some criterion is met (winnowing procedure)
  • When I used it under 0.9.2.8 it would take a lo of time to finish, if it finished at all and jamovi-engine would use up 100% CPU time even after force quitting the main program.
  • With version 0.9.2.9 smaller datasets (N~100) will complete in a second(s), larger datasets will still take a long time
NOTE: I started out coding following your developer's guide, later I studied your modules and I realised I am definitely not being very efficient/clean coding-wise. Even though my functions grew in complexity I basically kept everything in the .run = function(). Happy to get some tips on initialising tables and handling errors and such.
User avatar
jonathon
Posts: 2613
Joined: Fri Jan 27, 2017 10:04 am

Re: DLL not installed for this architecture?

Post by jonathon »

that's a pretty fabulous module fred! i was like "wowsers, that's a lot of stuff" :P

ravi and/or myself will cast an eye over it at some point and give you some feedback.

we'll be uploading the 0.9.5.6 in the next couple of hours, and that will have the newer Rcpp and rlang.

cheers

jonathon
Fhas
Posts: 27
Joined: Wed Sep 12, 2018 2:55 pm

Re: DLL not installed for this architecture?

Post by Fhas »

Thanks a lot ppl!

I was able to get it to work on Windows:
Capture.PNG
Capture.PNG (39.49 KiB) Viewed 8697 times

Just one thing I had to change wrt to Mac:

ggplot2:positionjitterdodge() - On Windows I got the error "argument seed not recognised" Removing the argument from the code helped, but it *is* an actual argument of the function.

We are using this module in a course right now and so far I am very pleased with the results (though I have some things on my wishlist regarding the interface :) )

When we are done with the course I'll likely want to polish and streamline some things.


Thanks again for the quick support!
Post Reply