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

ocd文件在32位,64位下可以通用吗 #656

Open
xiaoyifang opened this issue Jan 28, 2022 · 4 comments
Open

ocd文件在32位,64位下可以通用吗 #656

xiaoyifang opened this issue Jan 28, 2022 · 4 comments

Comments

@xiaoyifang
Copy link

xiaoyifang commented Jan 28, 2022

按我的理解应该是数据格式,32,64应该通用。是这样的吗。

@ayaka14732
Copy link
Collaborator

經過我測試,似乎是不可以的

@xiaoyifang
Copy link
Author

xiaoyifang commented Apr 24, 2022

如果不通用,可以弄成通用的吗?
这个问题不是很重要,请酌情考虑。

@eagleoflqj
Copy link
Contributor

因为在做wasm(32位)移植,ocd2的生成只能靠64位native build,就研究了一下。
我在Ubuntu x64和macOS x64上生成的ocd2文件经diff对比是完全一样的,它们和32位raspbian上生成的不一样,但大小一样
拿HKVariants.ocd2举例,经过cmp -l对比,它们只有8个字节的差异,分为两个连续的4字节,而且64位下的都是0:

 404   0  20
 405   0 210
 406   0 267
 407   0 266
1060   0 120
1061   0 157
1062   0 137
1063   0   1

用gdb运行opencc_dict -i HKVariants.txt -o HKVariants.ocd2 -f text -t ocd2定位了一下,不一致出自


底层是

不一致的原因是32位和64位下MARISA_WORD_SIZE不一样。
我不懂marisa的实现,但我猜测既然64位上都是0那32位的数据应该没什么信息量,然后我替换掉HKVariants.ocd2用opencc -c s2hk.json似乎也是能转换的。
@ayaka14732 请问你的测试方式怎么复现?

@ayaka14732
Copy link
Collaborator

@ayaka14732 请问你的测试方式怎么复现?

我已經不記得了,如果可以的話,就是我記錯了

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

No branches or pull requests

3 participants