--
visit http://kaldi-asr.org/forums.html to find out how to join.
---
You received this message because you are subscribed to the Google Groups "kaldi-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-developers+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-develope...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-developers+unsubscribe@googlegroups.com.
Miro has actually done a great progress with compiling openfst under windows. We noticed that the visual studio provides Clang compiler so lot of the issues went away (he had to write wrappers for some calls not available on win)
template<typename A> class F {}; template<typename U = int, typename Z = F<U>> class C; template<typename Ux, typename Zx> class C {}; static C<> t1;And this compiles with MSVC cl, but not the others--note the change in the default for typename Z in the line 2:
template<typename A> class F {}; template<typename U = int, typename Z = F<Ux>> class C; template<typename Ux, typename Zx> class C {}; static C<> t1;Indeed, matching template argument typenames in lines 2 and 3 works around the bug. So I do not know which way to go from here:
--
visit http://kaldi-asr.org/forums.html to find out how to join.
---
You received this message because you are subscribed to the Google Groups "kaldi-developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-develope...@googlegroups.com.
Kaldi should compile with clang in general, that's what gcc really is on a mac, under the hood.
I think clang is a better bet; bugs on MSVC don't have a good track record of getting fixed.
I think clang is a better bet; bugs on MSVC don't have a good track record of getting fixed.
I think whatever reason we had to need a patch went away. But there is no reason why we can't provide Windows-specific patches.Well... I suppose the tricky part is that the program 'patch' wouldn't exist on Windows. So maybe we'd have to just store the entire modified OpenFst files.
Indeed, matching template argument typenames in lines 2 and 3 works around the bug. So I do not know which way to go from here:
1. using clang looks like opening a whole new can of unfamiliar worms.
2. renaming all template parameter typenames in fst-decl.h is more maintenance than I hoped to achieve
3. ?????
I would go with (2) in hope that the bug might be fixed by MS, although I am not holding amazingly high hopes.
Opinions?
I will post all my changes online in few hours for your review.
if you make it dynamic in Windows things can get complicated, due to how dll's work.
Now, as far as creating and uploading a version that builds on Windows, there is so many ways it can be built: which compiler/toolset? static or dynamic library? debug or release build? I can add necessary property sheets and configurations to the build process, but that will be time consuming. I think that the first objective is to get us both going (I do not know if there are any more people struggling right now to build on Windows, if so, please chime in!).
I know my requirements, what are yours?
- do you need a DLL, or static library will work for you?
- do you need the binaries (e. g. fstcompile.exe) immediately?
- do you need any extensions, beyond libfst? NB Kaldi configures OpenFST to build Far (FST archive) and NGram extension libraries, but I do not see them used anywhere in the mainline Kaldi code.
I was using OpenFst 1.3.4 to build Kaldi last year as lib + dll and I was using release version, 64bit because I am building 64bit kaldi to avoid memory limitations on larger models.
I don't mind static library, it is ok for me. I don't need any tools or extensions, I see that Kaldi needs only "openfst64.lib" to compile.
I have found yesterday how to advance with missing exports so I will try to continue on "Clang path". I will let you know about my progress.
Having *anything* build on Windows would be a step forward at this point.
I am on it. Fixed compilation issues, worked around another likely bug in the MS compiler. To my taste, there is too much template-fu in openfst 1.6!
I am bringing my kaldi snapshot up to date. The one-year-old one does not compile with the new FST. Just want to make sure everything compiles, creates a graph and decodes before pushing my OpenFST changes up to GitHub. Hope to get it done in a few hours.
-kkm
With Clang I'm able to build a core of OpenFst, and few of the basic Kaldi libraries. I'm getting into some conflicts when linking to non-clang project
Thanks. I'll wait till Yenda has time to deal with this though, as I am busy with some other stuff.
Well, for Kaldi training scripts to run you'd definitely need some OpenFst binaries, such as fstcompile and the like.I don't know if it's feasible to get Kaldi training scripts working on Windows-- the concern, I think, is more about runtime-- but I suppose it's a nice-to-have.
The VS-compilable port is in https://github.com/kkm000/openfst/win/1.6
Changes from the original https://github.com/kkm000/openfst/compare/orig/1.6...win/1.6
I did not build any extensions, and did not implement a replacement for mapped files (used only by extensions). DLL registration is not supported (neither it was in openfstwin). The included solution and project build a single static library, libfst.lib.
Please let me know if it worked for you, and what problems if any you had to address.
BTW, if one if you guys (Kirill?) can come up with a single patch for the current version of OpenFst that resolves these issues, I can put you in touch with the OpenFst maintainers and we can see if they'll apply it. I expect they will accept it. Although Kirill, you may know those guys already since you were at Google.
--
--
#if !__STDC__ // Non-ANSI names for compatibility #define isascii __isascii
. . .
Hi Miro,
Regarding the change of isascii to __isascii, I am wondering what compiler (and toolset in Visual Studio) are you using? The function is indeed deprecated (and IsToken is UTF-hostile anyway), but I have a compatibility macro defined in my ctype.h: