Skip to content

Commit ca15142

Browse files
committed
utf8proc -> libmojibake (closes JuliaLang#7656, fixes JuliaLang#7582)
1 parent fda850b commit ca15142

12 files changed

+55
-103
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,6 @@
1414
path = doc/juliadoc
1515
url = git://github.com/JuliaLang/JuliaDoc.git
1616

17+
[submodule "deps/libmojibake"]
18+
path = deps/libmojibake
19+
url = git://github.com/JuliaLang/libmojibake.git

Make.inc

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ USE_SYSTEM_ZLIB=0
2929
USE_SYSTEM_GRISU=0
3030
USE_SYSTEM_RMATH=0
3131
USE_SYSTEM_LIBUV=0
32-
USE_SYSTEM_UTF8PROC=0
32+
USE_SYSTEM_MOJIBAKE=0
3333

3434
# Link to the LLVM shared library
3535
USE_LLVM_SHLIB = 0
@@ -531,10 +531,10 @@ else
531531
LIBUV_INC = $(JULIAHOME)/deps/libuv/include
532532
endif
533533

534-
ifeq ($(USE_SYSTEM_UTF8PROC), 1)
535-
LIBUTF8PROC = -lutf8proc
534+
ifeq ($(USE_SYSTEM_MOJIBAKE), 1)
535+
LIBMOJIBAKE = -lmojibake
536536
else
537-
LIBUTF8PROC = $(build_libdir)/libutf8proc.a
537+
LIBMOJIBAKE = $(build_libdir)/libmojibake.a
538538
endif
539539

540540
# OS specific stuff

deps/Makefile

+36-31
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CONFIGURE_COMMON += F77="$(FC)" CC="$(CC)" CXX="$(CXX)"
1919
MAKE_COMMON = DESTDIR="" prefix=$(build_prefix) bindir=$(build_bindir) libdir=$(build_libdir) libexecdir=$(build_libexecdir) datarootdir=$(build_datarootdir) includedir=$(build_includedir) sysconfdir=$(build_sysconfdir)
2020

2121
#autoconf configure-driven scripts: llvm pcre arpack fftw unwind gmp mpfr patchelf uv
22-
#custom Makefile rules: openlibm Rmath double-conversion dsfmt suitesparse-wrapper suitesparse lapack openblas utf8proc
22+
#custom Makefile rules: openlibm Rmath double-conversion dsfmt suitesparse-wrapper suitesparse lapack openblas mojibake
2323

2424
# prevent installing libs into usr/lib64 on opensuse
2525
unexport CONFIG_SITE
@@ -111,8 +111,8 @@ ifeq ($(USE_SYSTEM_SUITESPARSE), 0)
111111
STAGE2_DEPS += suitesparse
112112
endif
113113

114-
ifeq ($(USE_SYSTEM_UTF8PROC), 0)
115-
STAGE2_DEPS += utf8proc
114+
ifeq ($(USE_SYSTEM_MOJIBAKE), 0)
115+
STAGE2_DEPS += mojibake
116116
endif
117117

118118
# Only compile standalone LAPACK if we are not using OpenBLAS.
@@ -144,7 +144,7 @@ install: $(addprefix install-, $(LIBS))
144144
cleanall: $(addprefix clean-, $(LIBS))
145145
distcleanall: $(addprefix distclean-, $(LIBS))
146146
rm -rf $(build_prefix)
147-
getall: get-llvm get-uv get-pcre get-double-conversion get-openlibm get-openspecfun get-dsfmt get-Rmath get-openblas get-lapack get-fftw get-suitesparse get-arpack get-unwind get-osxunwind get-gmp get-mpfr get-zlib get-patchelf get-utf8proc
147+
getall: get-llvm get-uv get-pcre get-double-conversion get-openlibm get-openspecfun get-dsfmt get-Rmath get-openblas get-lapack get-fftw get-suitesparse get-arpack get-unwind get-osxunwind get-gmp get-mpfr get-zlib get-patchelf get-mojibake
148148

149149
## PATHS ##
150150
# sort is used to remove potential duplicates
@@ -1203,42 +1203,47 @@ compile-fftw-double: $(FFTW_DOUBLE_OBJ_TARGET)
12031203
check-fftw-double: fftw-$(FFTW_VER)-double/checked
12041204
install-fftw-double: $(FFTW_DOUBLE_OBJ_TARGET)
12051205

1206-
## UTF8PROC ##
1206+
## MOJIBAKE ##
12071207

1208-
UTF8PROC_OBJ_SOURCE = utf8proc-v$(UTF8PROC_VER)/libutf8proc.a
1209-
UTF8PROC_OBJ_LIB = $(build_libdir)/libutf8proc.a
1210-
UTF8PROC_OBJ_HEADER = $(build_includedir)/utf8proc.h
1211-
UTF8PROC_OBJ_TARGET = $(UTF8PROC_OBJ_LIB) $(UTF8PROC_OBJ_HEADER)
1208+
MOJIBAKE_SRC_TARGET = libmojibake/libmojibake.a
1209+
MOJIBAKE_OBJ_LIB = $(build_libdir)/libmojibake.a
1210+
MOJIBAKE_OBJ_HEADER = $(build_includedir)/mojibake.h
1211+
MOJIBAKE_OBJ_TARGET = $(MOJIBAKE_OBJ_LIB) $(MOJIBAKE_OBJ_HEADER)
12121212

1213-
utf8proc-v$(UTF8PROC_VER).tar.gz:
1214-
$(JLDOWNLOAD) $@ http://www.public-software-group.org/pub/projects/utf8proc/v$(UTF8PROC_VER)/$@
12151213

1216-
utf8proc-v$(UTF8PROC_VER)/Makefile: utf8proc-v$(UTF8PROC_VER).tar.gz
1217-
$(JLCHECKSUM) $<
1218-
$(TAR) -xzf $<
1219-
patch $@ < utf8proc_Makefile.patch
1220-
cd utf8proc-v$(UTF8PROC_VER) && patch < ../utf8proc_msvc.patch
1214+
libmojibake/Makefile:
1215+
(cd .. && git submodule init && git submodule update)
1216+
ifeq (exists, $(shell [ -d libmojibake/.git ] && echo exists ))
1217+
$(MOJIBAKE_SRC_TARGET): libmojibake/.git/HEAD
1218+
endif
1219+
ifeq (exists, $(shell [ -d $(JULIAHOME)/.git/modules/deps/libmojibake ] && echo exists ))
1220+
$(MOJIBAKE_SRC_TARGET): $(JULIAHOME)/.git/modules/deps/libmojibake/HEAD
1221+
endif
1222+
$(MOJIBAKE_SRC_TARGET): libmojibake/Makefile
1223+
$(MAKE) -C libmojibake cc="$(CC) -O2 -std=c99 $(fPIC)" AR="$(AR)" libmojibake.a
12211224
touch -c $@
1225+
libmojibake/checked: $(MOJIBAKE_SRC_TARGET)
1226+
ifeq ($(OS),$(BUILD_OS))
1227+
-$(MAKE) -C libmojibake check
1228+
endif
1229+
echo 1 > $@
12221230

1223-
$(UTF8PROC_OBJ_SOURCE): utf8proc-v$(UTF8PROC_VER)/Makefile
1224-
$(MAKE) -C utf8proc-v$(UTF8PROC_VER) cc="$(CC) -O2 -std=c99 $(fPIC)" AR="$(AR)" libutf8proc.a
1225-
1226-
$(UTF8PROC_OBJ_LIB): $(UTF8PROC_OBJ_SOURCE)
1231+
$(MOJIBAKE_OBJ_LIB): $(MOJIBAKE_SRC_TARGET)
12271232
cp -f $< $@
12281233

1229-
$(UTF8PROC_OBJ_HEADER): utf8proc-v$(UTF8PROC_VER)/Makefile
1230-
cp -f utf8proc-v$(UTF8PROC_VER)/utf8proc.h $@
1234+
$(MOJIBAKE_OBJ_HEADER): libmojibake/Makefile
1235+
cp -f libmojibake/mojibake.h $@
12311236

1232-
clean-utf8proc:
1233-
-$(MAKE) -C utf8proc-v$(UTF8PROC_VER) clean
1234-
distclean-utf8proc: clean-utf8proc
1235-
-rm -rf utf8proc-v$(UTF8PROC_VER).tar.gz utf8proc-v$(UTF8PROC_VER)
1237+
clean-mojibake:
1238+
-$(MAKE) -C libmojibake clean
1239+
-rm -rf $(build_libdir)/libmojibake.a $(build_includedir)/mojibake.h
1240+
distclean-mojibake: clean-mojibake
12361241

1237-
get-utf8proc: utf8proc-v$(UTF8PROC_VER).tar.gz
1238-
configure-utf8proc: get-utf8proc
1239-
compile-utf8proc: $(UTF8PROC_OBJ_SOURCE)
1240-
check-utf8proc:
1241-
install-utf8proc: $(UTF8PROC_OBJ_TARGET)
1242+
get-mojibake: libmojibake/Makefile
1243+
configure-mojibake: get-mojibake
1244+
compile-mojibake: $(MOJIBAKE_SRC_TARGET)
1245+
check-mojibake: libmojibake/checked
1246+
install-mojibake: $(MOJIBAKE_OBJ_TARGET)
12421247

12431248
## SUITESPARSE ##
12441249

deps/Versions.make

-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,3 @@ MPFR_VER=3.1.2
1616
ZLIB_VER = 1.2.8
1717
PATCHELF_VER = 0.8
1818
GIT_VER = 1.8.2.3
19-
UTF8PROC_VER = 1.1.6

deps/libmojibake

Submodule libmojibake added at bc357b2

deps/utf8proc_Makefile.patch

-19
This file was deleted.

deps/utf8proc_msvc.patch

-40
This file was deleted.

src/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ifeq ($(USE_LLVM_SHLIB),1)
2525
LLVMLINK = $(call exec,$(LLVM_CONFIG) --ldflags) -lLLVM-$(call exec,$(LLVM_CONFIG) --version)
2626
endif
2727

28-
COMMON_LIBS = -L$(build_shlibdir) -L$(build_libdir) $(LIBUV) $(LIBUTF8PROC) $(NO_WHOLE_ARCHIVE) $(LLVMLINK) $(OSLIBS)
28+
COMMON_LIBS = -L$(build_shlibdir) -L$(build_libdir) $(LIBUV) $(LIBMOJIBAKE) $(NO_WHOLE_ARCHIVE) $(LLVMLINK) $(OSLIBS)
2929
DEBUG_LIBS = $(WHOLE_ARCHIVE) $(JULIAHOME)/src/flisp/libflisp-debug.a $(WHOLE_ARCHIVE) $(JULIAHOME)/src/support/libsupport-debug.a $(COMMON_LIBS)
3030
RELEASE_LIBS = $(WHOLE_ARCHIVE) $(JULIAHOME)/src/flisp/libflisp.a $(WHOLE_ARCHIVE) $(JULIAHOME)/src/support/libsupport.a $(COMMON_LIBS)
3131

src/flisp/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ endif
1818
OBJS = $(SRCS:%.c=%.o)
1919
DOBJS = $(SRCS:%.c=%.do)
2020
LLTDIR = ../support
21-
LLT = $(LLTDIR)/libsupport.a $(LIBUV) $(LIBUTF8PROC)
21+
LLT = $(LLTDIR)/libsupport.a $(LIBUV) $(LIBMOJIBAKE)
2222

2323
FLAGS = -I$(LLTDIR) $(CFLAGS) $(HFILEDIRS:%=-I%) \
2424
-I$(LIBUV_INC) -I$(build_includedir) $(LIBDIRS:%=-L%) \

src/flisp/Windows.mk

+5-5
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,17 @@ OBJECTS = \
3131
basename.obj
3232

3333
LIBUV = $(MAKEDIR)\..\..\deps\libuv\libuv.lib
34-
LIBUTF8PROC = $(MAKEDIR)\..\..\deps\utf8proc-v1.1.6\libutf8proc.lib
34+
LIBMOJIBAKE = $(MAKEDIR)\..\..\deps\libmojibake\libmojibake.lib
3535
LIBSUPPORT = $(MAKEDIR)\..\support\libsupport.lib
3636

37-
INCLUDE = $(INCLUDE);$(MAKEDIR)\..\..\deps\libuv\include;$(MAKEDIR)\..\..\deps\utf8proc-v1.1.6;$(MAKEDIR)\..\support
37+
INCLUDE = $(INCLUDE);$(MAKEDIR)\..\..\deps\libuv\include;$(MAKEDIR)\..\..\deps\libmojibake;$(MAKEDIR)\..\support
3838

3939
CFLAGS = $(CFLAGS) /Qstd=c99 -D_CRT_SECURE_NO_WARNINGS -DLIBRARY_EXPORTS
4040
LFLAGS = $(LFLAGS) kernel32.lib ws2_32.lib psapi.lib advapi32.lib iphlpapi.lib
4141

4242
default: $(NAME).exe
4343

44-
$(NAME).exe: lib$(NAME).lib flmain.obj $(LIBSUPPORT) $(LIBUV) $(LIBUTF8PROC)
44+
$(NAME).exe: lib$(NAME).lib flmain.obj $(LIBSUPPORT) $(LIBUV) $(LIBMOJIBAKE)
4545
$(LINK) $(LFLAGS) /OUT:$(NAME).exe /PDB:$(NAME).pdb /MAP $**
4646

4747
$(LIBSUPPORT):
@@ -50,8 +50,8 @@ $(LIBSUPPORT):
5050
$(LIBUV):
5151
PUSHD $(MAKEDIR)\..\..\deps\libuv && $(MAKE) /NOLOGO /F Windows.mk && POPD
5252

53-
$(LIBUTF8PROC):
54-
PUSHD $(MAKEDIR)\..\..\deps\utf8proc-v1.1.6 && cl -nologo /c utf8proc.c && $(AR) /OUT:libutf8proc.lib utf8proc.obj && POPD
53+
$(LIBMOJIBAKE):
54+
PUSHD $(MAKEDIR)\..\..\deps\libmojibake && cl -nologo /c utf8proc.c && $(AR) /OUT:libmojibake.lib utf8proc.obj && POPD
5555

5656
lib$(NAME).lib: $(OBJECTS)
5757
$(AR) /OUT:lib$(NAME).lib $**

src/flisp/julia_extensions.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <string.h>
44
#include <assert.h>
55
#include "flisp.h"
6-
#include "utf8proc.h"
6+
#include "mojibake.h"
77

88
#ifdef __cplusplus
99
extern "C" {

test/core.jl

+3
Original file line numberDiff line numberDiff line change
@@ -1826,3 +1826,6 @@ sa = sub(a,4:6)
18261826
try
18271827
issue7897!(sa, zeros(10))
18281828
end
1829+
1830+
# issue #7582
1831+
aₜ = "a variable using Unicode 6"

0 commit comments

Comments
 (0)