Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 May 2016 20:27:16 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 209369] chinese/sunpinyin: Fix build with libc++ 3.8.0
Message-ID:  <bug-209369-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209369

            Bug ID: 209369
           Summary: chinese/sunpinyin: Fix build with libc++ 3.8.0
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: freebsd-ports-bugs@FreeBSD.org
          Reporter: dim@FreeBSD.org
                CC: lichray@gmail.com
                CC: lichray@gmail.com
             Flags: maintainer-feedback?(lichray@gmail.com)

Created attachment 170103
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D170103&action=
=3Dedit
Explicitly call float versions of log, exp, etc.

During the exp-run in bug 208158, it was found that chinese/sunpinyin gives
errors with libc++ 3.8.0 [1]:

gmake[2]: Entering directory '/wrkdirs/usr/ports/chinese/sunpinyin/work'
slmpack lm_sc.3gm.arpa dict.utf8 lm_sc.3gm
Loading lexicon...done.
Loading ARPA slm...
Writing out...done!
slmthread lm_sc.3gm lm_sc.t3g.orig
Loading original slm...
first pass...
Compressing pr values...65536 float values =3D=3D> 65536 values
Compressing bow values...16384 float values =3D=3D> 16384 values
Threading the new model...Assertion failed: (prit !=3D pr_map.end()), funct=
ion
main, file src/slm/thread/slmthread.cpp, line 364.
/wrkdirs/usr/ports/chinese/sunpinyin/work/sunpinyin-a8bd811/src/sunpinyin-d=
ictgen.mk:51:
recipe for target 'lm_sc.t3g.orig' failed

This is because the code mostly uses floats, but in some parts it uses log(=
),
exp(), etc, which return doubles.  During the parts where it does lookups in
std::map<float, int> constructs, this leads to it not being able to find the
expected entries.  Fix this by using logf(), expf() and similar, which
explicitly return floats.

[1]
http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_=
10h29m48s/logs/errors/zh-sunpinyin-2.0.4.r3.log

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-209369-13>