Skip to content

Conversation

@DmitryOlshansky
Copy link
Member

It's a bunch of unwieldy code that I planed to reuse long ago.
Libraries such as ICU also do provide means to construct sets of codepoints from strings with regex syntax.

@DmitryOlshansky DmitryOlshansky force-pushed the uni-regex-charset branch 2 times, most recently from ccbbc17 to 0dd4244 Compare April 23, 2017 18:00
@wilzbach
Copy link
Contributor

wilzbach commented May 6, 2017

@DmitryOlshansky
FYI failing on the auto-tester

generated/d_do_test.o(.text._D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya+0x3d): In function `_D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya+0x79): In function `_D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv+0x38): In function `_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5emptyMFNaNbNdNiNfZb'
generated/d_do_test.o(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv+0x4a): In function `_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5frontMFNaNbNdNiNfZa'
generated/d_do_test.o(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv+0x5b): In function `_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result8popFrontMFNaNbNiNfZv'
generated/d_do_test.o(.text._D3std4conv17__T6toImplTAyaTkZ6toImplFNaNbNekkE3std5ascii10LetterCaseZAya+0x51): In function `_D3std4conv17__T6toImplTAyaTkZ6toImplFNaNbNekkE3std5ascii10LetterCaseZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa+0x10): In function `_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result6lengthMFNaNbNdNiNfZk'
generated/d_do_test.o(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa+0x4b): In function `_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5emptyMFNaNbNdNiNfZb'
generated/d_do_test.o(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa+0x57): In function `_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5frontMFNaNbNdNiNfZa'
generated/d_do_test.o(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa+0x8c): In function `_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result8popFrontMFNaNbNiNfZv'
generated/d_do_test.o(.text._D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya+0x3d): In function `_D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya+0xb5): In function `_D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std4conv30__T8textImplTAyaTAyaTkTAyaTykZ8textImplFNaNbNfAyakAyaykZAya+0x3d): In function `_D3std4conv30__T8textImplTAyaTAyaTkTAyaTykZ8textImplFNaNbNfAyakAyaykZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std4conv23__T8textImplTAyaTAyaTkZ8textImplFNaNbNfAyakZAya+0x3d): In function `_D3std4conv23__T8textImplTAyaTAyaTkZ8textImplFNaNbNfAyakZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o(.text._D3std4conv27__T8textImplTAyaTAyaTkTAyaZ8textImplFNaNbNfAyakAyaZAya+0x3a): In function `_D3std4conv27__T8textImplTAyaTAyaTkTAyaZ8textImplFNaNbNfAyakAyaZAya':
: undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
Error: linker exited with status 1

@DmitryOlshansky
Copy link
Member Author

Let's hope it likes it now.

@wilzbach
Copy link
Contributor

wilzbach commented May 8, 2017

Let's hope it likes it now.

OS: linux
generated/d_do_test.o: In function `_D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya':
d_do_test.d:(.text._D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya[_D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya]+0x3d): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
d_do_test.d:(.text._D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya[_D3std4conv29__T8textImplTAyaTAyaTkTAyaTkZ8textImplFNaNbNfAyakAyakZAya]+0x79): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o: In function `_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv':
d_do_test.d:(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv[_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv]+0x38): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5emptyMFNaNbNdNiNfZb'
d_do_test.d:(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv[_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv]+0x4a): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5frontMFNaNbNdNiNfZa'
d_do_test.d:(.text._D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv[_D3std5array17__T8AppenderTAyaZ8Appender94__T3putTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ3putMFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZv]+0x5b): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result8popFrontMFNaNbNiNfZv'
generated/d_do_test.o: In function `_D3std4conv17__T6toImplTAyaTkZ6toImplFNaNbNekkE3std5ascii10LetterCaseZAya':
d_do_test.d:(.text._D3std4conv17__T6toImplTAyaTkZ6toImplFNaNbNekkE3std5ascii10LetterCaseZAya[_D3std4conv17__T6toImplTAyaTkZ6toImplFNaNbNekkE3std5ascii10LetterCaseZAya]+0x51): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o: In function `_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa':
d_do_test.d:(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa[_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa]+0x10): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result6lengthMFNaNbNdNiNfZk'
d_do_test.d:(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa[_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa]+0x4b): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5emptyMFNaNbNdNiNfZb'
d_do_test.d:(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa[_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa]+0x57): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result5frontMFNaNbNdNiNfZa'
d_do_test.d:(.text._D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa[_D3std5array96__T5arrayTS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZ5arrayFNaNbNfS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6ResultZAa]+0x8c): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result8popFrontMFNaNbNiNfZv'
generated/d_do_test.o: In function `_D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya':
d_do_test.d:(.text._D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya[_D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya]+0x3d): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
d_do_test.d:(.text._D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya[_D3std4conv36__T8textImplTAyaTAyaTkTAyaTykTAyaTkZ8textImplFNaNbNfAyakAyaykAyakZAya]+0xb5): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o: In function `_D3std4conv30__T8textImplTAyaTAyaTkTAyaTykZ8textImplFNaNbNfAyakAyaykZAya':
d_do_test.d:(.text._D3std4conv30__T8textImplTAyaTAyaTkTAyaTykZ8textImplFNaNbNfAyakAyaykZAya[_D3std4conv30__T8textImplTAyaTAyaTkTAyaTykZ8textImplFNaNbNfAyakAyaykZAya]+0x3d): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o: In function `_D3std4conv23__T8textImplTAyaTAyaTkZ8textImplFNaNbNfAyakZAya':
d_do_test.d:(.text._D3std4conv23__T8textImplTAyaTAyaTkZ8textImplFNaNbNfAyakZAya[_D3std4conv23__T8textImplTAyaTAyaTkZ8textImplFNaNbNfAyakZAya]+0x3d): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
generated/d_do_test.o: In function `_D3std4conv27__T8textImplTAyaTAyaTkTAyaZ8textImplFNaNbNfAyakAyaZAya':
d_do_test.d:(.text._D3std4conv27__T8textImplTAyaTAyaTkTAyaZ8textImplFNaNbNfAyakAyaZAya[_D3std4conv27__T8textImplTAyaTAyaTkTAyaZ8textImplFNaNbNfAyakAyaZAya]+0x3a): undefined reference to `_D3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZS3std4conv47__T7toCharsVhi10TaVE3std5ascii10LetterCasei1TkZ7toCharsFNaNbNiNfkZ6Result'
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
Makefile:201: recipe for target 'generated/d_do_test' failed

@MetaLang
Copy link
Member

MetaLang commented Aug 6, 2017

This has been green for awhile now. How should we move forward with this?

return val;
}

@system unittest //BUG canFind is system
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While it's being moved, I think it's worth noting that canFind is no longer system (see its @safe unittest), so this can be changed.

@DmitryOlshansky
Copy link
Member Author

This has been green for awhile now. How should we move forward with this?

From my side, absoultely - pry won't build without this patch, which is hardly increasing its usability.
Let's just check what's the matter with circle-ci.

std/uni.d Outdated
import std.traits; // isConvertibleToString, isIntegral, isSomeChar,
// isSomeString, Unqual

import std.exception; // enforce
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use selective imports to avoid symbol leakage.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last time I checked it was the other way around

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but then we discovered that non-selective imports are leaking:

#5584 (comment)

tl;dr: if you add std.exception here, people can import all symbols from std.exception from std.uni

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wilzbach according to the linked comment even selective imports leak so it wouldn't help to change it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh for **ck sake... I'll change this one but the other will stay as is for now, I don't want to mix concerns in a single pull request that supposed to be refactoring.

std/uni.d Outdated
///
@safe unittest
{
import std.uni;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI error is:

Local imports should specify the symbols being imported to avoid hiding local symbols.

std/uni.d Outdated
static package CodepointSet parsePropertySpec(Range)(ref Range p,
bool negated, bool casefold)
{
import std.ascii;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI error

Local imports should specify the symbols being imported to avoid hiding local symbols.

This only does the move without adapting
the interface to the commonly accepted ranges.
@dlang-bot
Copy link
Contributor

Thanks for your pull request, @DmitryOlshansky!

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

@MetaLang
Copy link
Member

The only other concern is the test coverage (29% seems pretty poor), but I don't know if that's worth delaying merging.

@DmitryOlshansky
Copy link
Member Author

DmitryOlshansky commented Aug 24, 2017

The only other concern is the test coverage (29% seems pretty poor), but I don't know if that's worth delaying merging.

I'm tired to hell of explaining that our FREAKING AMAZING CI will only do a FILE AT A TIME TEST to show coverage. Regex tests live in a separate file, no way a file at a time will catch proper coverage stats.

TL;DR: Our coverage report is horribly broken, not my problem though.

@MetaLang
Copy link
Member

@DmitryOlshansky fair enough. I'll leave it to @wilzbach to merge.

@wilzbach
Copy link
Contributor

I'm tired to hell of explaining that our FREAKING AMAZING CI will only do a FILE AT A TIME TEST to show coverage. Regex tests live in a separate file, no way a file at a time will catch proper coverage stats.

Yup.

TL;DR: Our coverage report is horribly broken, not my problem though

Yes :/

@dlang-bot dlang-bot merged commit c648bca into dlang:master Aug 24, 2017
@quickfur
Copy link
Member

quickfur commented Nov 2, 2017

This PR caused a -dip1000 regression: https://issues.dlang.org/show_bug.cgi?id=17961

tl;dr: Now it's impossible to compile any D code with -unittest -dip1000 if std.uni is used anywhere in the code.

@quickfur
Copy link
Member

quickfur commented Feb 5, 2018

This PR also caused a regression in compilation times: https://issues.dlang.org/show_bug.cgi?id=18378

:-(

@wilzbach
Copy link
Contributor

wilzbach commented Feb 5, 2018

See #5981

@quickfur
Copy link
Member

quickfur commented Feb 5, 2018

I'm talking about compilation speed, not the performance of the regex code itself. Both need to be fixed. :-P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants