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

Slic3r does not start (crashes) on Windows, when installed in a localized directory #133

Closed
lonelymyp opened this issue Feb 16, 2017 · 12 comments
Labels

Comments

@lonelymyp
Copy link

Version

1.33.4 x32/64

Operating system type + version

W8 x64

Behavior

Сrash at startup If the program is running from the disk D, from disk С run without problems

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

@lonelymyp What is the full path of your folder, where you unpacked slic3r on the D: drive?
Does it crash if you unpack it directly to d:\ ?

@lonelymyp
Copy link
Author

D:\Slic3r\slic3r.exe - Ok
D:\Users\Фёдор\Downloads\Slic3r-1.33.4-prusa3d-win32-full-201702151702\Slic3r-1.33.4\slic3r.exe - crash

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

All right, Фёдор, I think this is the issue.

Slic3r is written in C++ & Perl, Perl does not fully support Unicode access (yes, in year 2017) to Windows file system.

What Windows localization is it? Was it been installed as English, or Russian (maybe Bulgarian :-) ) Windows? Is your name written with the code page, which is default to your Windows installation? Sorry, I know these are very technical questions.

@burbilog
Copy link

Yeah, that's how Russian Windows works. I'd say 95% of Windows installations in Russia are using cyrillic names in paths and that's a huge pain in the ass with many non-unicode-aware programs. Windows installer ask for user's name and people enter their name, even Russian language is pre-selected.

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

I am Czech, when installing Slic3r into a nicely named folder
D:\temp\ščéířáýěščíéřýáěščé\Slic3r-1.33.4-prusa3d-win64-full-201702151702
it crashes as well. Something to look into.

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

There seems to be something bad going on with Perl & WxWidgets. I am not sure whether I will be able to fix this issue any time soon.

@bubnikv bubnikv changed the title Сrash at startup 1.33.4 W8 Slic3r does not start (crashes Feb 16, 2017
@bubnikv bubnikv changed the title Slic3r does not start (crashes Slic3r does not start (crashes) on Windows, when installed in a localized directory Feb 16, 2017
@bubnikv bubnikv added the bug label Feb 16, 2017
@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

@lordofhyphens FYI, this is another surprise of wxPerl.

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

I sent an e-mail to wxperl-users@perl.org
but I don't expect this problem to be fixed any time soon. I think my time is better invested working on slicing algorithms and on getting rid of Perl than on fixing an abandoned wxPerl.

@CReimer
Copy link

CReimer commented Feb 16, 2017

Getting rid of Perl sounds nice. I already tried to remove most of Build.pl stuff, but Perl doesn't make it easy to build a Perl module outside of their weird Module::Build environment.

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 16, 2017

It seems the perl itself is broken and the core perl dynaloader fails to work, if the perl was started with long names. For example, running slic3r with the following slic3r.bat fails:

"%~dp0\perl5.24.0.exe" "%~dp0\slic3r.pl" %*

It works though, if one replaces the magic %~dp0 with %~dps0:

"%~dps0\perl5.24.0.exe" "%~dps0\slic3r.pl" %*

That way both the paths of the perl.exe and slic3r.pl use the 8.3 characters only per directory entry.

@lordofhyphens
Copy link
Contributor

lordofhyphens commented Feb 16, 2017 via email

@bubnikv
Copy link
Collaborator

bubnikv commented Feb 17, 2017

Fixed by executing perl and setting the library paths to short (8.3) paths.
The slic3r.exe has been modified to execute the perl interpreter with 8.3 paths if started from a directory with non-ISO characters, and an information is printed out to a console in such a case. If slic3r is installed in a directory with ISO characters only (and without spaces and semi-colons), the long path is used as before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants