-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
update utf8proc, replace wcwidth #10659
Conversation
For AppVeyor, will need to do |
Thanks @tkelman, just pushed a fixed commit. |
Looks like |
95e29d2
to
4813b29
Compare
I don't really understand why the Makefile for flisp used the |
We only build the static library of utf8proc, but we link that static library into the shared libjulia. We want the shared libjulia to export these utf8proc symbols. At least I'm pretty sure that's how it works. MSVC is pickier than MinGW in these matters, but I can worry about that later. |
Why don't we link dynamically to utf8proc? |
@nalimilan, because it is a dependency of libjulia, not just of Base, utf8proc has to be included in libjulia itself (inter-library dependencies are especially problematic on Windows). (FYI, if you do have a separate utf8proc library, e.g if Looks like I just had a typo: was defining |
Libjulia already has dll dependencies, namely libgcc and libstdc++. It's really not so bad on Windows, you just can't have undefined references and the dependencies have to be specified at link time. And the dll dependencies need to be available either in the same folder as the binary or on the path somewhere (I prefer the former). |
OK, you know what you're doing. :-) |
(Yes, but this means that on Windows it's quite hard to |
We dlopen (via ccall in JuliaOpt packages) the entire COIN-OR stack which is a big complicated interdependent set of shared libraries just fine. It occasionally requires some patching to make sure the dependencies are linked properly at build time, but that's not so bad. I have no idea what numpy is doing wrong there, but it's not so hard to do right. Numpy is just such a rat's nest that no one wants to touch it (I apparently managed to talk Travis Oliphant out of wanting to interview me for that job by being too honest about how uninteresting it would be to work on fixing Python's Windows problems...). |
Arg, now appveyor is succeeding, but one of the Travis jobs timed out; possibly unrelated? |
Yeah, was on osx so most likely. There have been some efforts to optimize the tests a little recently, but apparently didn't get all the way to reliably finishing in time. |
…wcwidth by utf8proc_charwidth (fixes JuliaLang#3721, closes JuliaLang#6939)
Argh, one of the appveyor builds is failing now, too. All I did was push a NEWS update; another timeout? |
Yeah, froze at linalg1 only on 64 bit, that's been a long-standing intermittent mystery. |
So, is this mergeable? |
I think so, may as well. |
update utf8proc, replace wcwidth
This updates utf8proc to version 1.2 (#10654) and replaces calls to the often-outdated
wcwidth
withutf8proc_charwidth
(#3721 and #6939).(It seemed simpler to leave it as a submodule and just rename it from libmojibake back to utf8proc.)
Note that
USE_SYSTEM_UTF8PROC=1
will no longer work unless the system has utf8proc 1.2 or later (cc @nalimilan).The patch also uses the new function
utf8proc_category
to get the category code rather than looking inside theutf8proc_property_t
struct (which assumed that the category is the first 16-bit field).