![]() With having 2 different (possibly incompatible ?) libwinpthread-1.dll files If you do get rid of Strawberry's MinGW installation, you're still faced One of those dlls is libwinpthread-1.dll, which gcov also needs. That will work because copies of the MinGW dlls that perl needs are also You can, of course, just remove or hide (by renaming) Strawberry's "c"įolder, and perl will still be functional. That would limit the problem that some components accidentally picks up an executable (or worse, just a DLL). At the very least, we should get the MinGW folder out of the PATH variable. My gut feeling also tells me that the inclusion of an entire compiler package is going to bite back sooner or later. I would like to see a StrawberryPerl light version that includes just the core elements of Perl. As there are probably many users who migrate from perl-with-an-incompatible-license version to StrawberryPerl, I think it would be great to provide an upgrade path. It took me awhile to figure out what happened, but when I realized that StrawberryPerl ships with MinGW, it all made sense, because lcov happened to call the wrong version of gcov.įor somebody like me who merely upgrades a dependency, it is somewhat unexpected that StrawberryPerl is not just Perl, but a collection of tools including Perl. When I upgraded the Perl dependency of our package manager to StrawberryPerl, gcov spit out a bunch of errors. We use lcov to get the code coverage, which requires Perl. We have an internal toolchain for unit testing based on MinGW. But they do not do this for you automatically and stick it in the PATH, though they easily could.įor that matter, why is Strawberry incompatible with the standard MinGW toolchain? I should be able to run something like: Python on Windows is in a similar situation, it is built with Visual Studio and requires Visual Studio installed to build extensions. They require that the versions of the compiler used to build Perl and the the ones building the XS/libraries to match up enough that things behave well. XS modules and those third-party libraries require MinGW on Windows as that's what Strawberry is built on. Perl use requires XS modules and third party libraries for developers to be able to write code. Or it could be a separate package entirely, with its own shortcut, etc. ![]() Or it could be an option that defaults to off, the user could easily modify their own PATH. This is what Visual Studio does, I modify my own PowerShell profile to add Visual Studio tools to my PATH. That is the actual issue.įor example, a shortcut could be installed for using cpan tools that does this. "This is how things have to be" why? There are many other simple alternatives to sticking a non-standard MinGW toolchain in the system global PATH by default. Your work-around is to use the Portable installs and handle your own PATH how you like, but for the masses, this is how things have to be. Please close this as there's simply no other way. When I was testing this, I actually had to spend some time searching for an XS module to build, because everything I tried was already pre-installed. Quite a lot of people also use Perl as just a tool and don't even care about any non-core modules, many of which come pre-installed with Strawberry anyway. For the 99% of cases anyway, not including the use case you mentioned. ![]() Perl functions just fine without a compiler, for things involving perl and not installing modules. There's no other way for Perl to function on Windows. In the unfortunate event that you have an alternate MinGW installed, you will have to be careful about your environment. This is not an issue, but a requirement for Perl on Windows. It's not always pretty - I can recall renaming Strawberry's pkg-config to pkg-config-hide just to get it out of the way, so the MSYS2 utility of the same name would be used. ![]() I think the user should accept responsibility for taking care of these issues when they arise. In this case, the view is that the user is accepting everything that Strawberry provides. This contrasts with the portable version's portableshell.bat which puts everything at the beginning of the PATH. If there's already an identical item (eg make, or pk-config, or gcc) in the PATH, then someone must have put it there - and the intent therefore is that the pre-existing item be used in preference to the one provided by Strawberry. The practice of having the msi install append the relevant directories to the PATH is a long-established one. I really don't see any need for Strawberry to do anything differently. That location is prepended to the PATH only when portableshell.bat (which is located in the "location of your choice") is executed. If you're worried about having Strawberry always in your path, install the portable version to the location of your choice. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |