Dear Kevin,
Here's the patch essential for being able to compile Aspell
by clang.
Compilation by clang++ on Mac (Apple LLVM version 7.0.2 (clang-700.1.81))
is broken.
It complains about 3 issues with templates like failing to void-reference
instantiation, and 2 issues in in visibility of resolving.
There's one more issue at the linking step.
The patch is attached as well as inlined.
Thank you for the great Aspell!
Kind regards,
Hypo
diff -Naru aspell-0.61/common/hash.hpp aspell-0.61-mac-patched/common
/hash.hpp
--- aspell-0.61/common/hash.hpp 2016-02-22 14:58:15.000000000 +0200
+++ aspell-0.61-mac-patched/common/hash.hpp 2016-02-22
17:02:55.000000000 +0200
@@ -324,7 +324,7 @@
: Base(s, Parms(h,e)) {}
data_type & operator[](const key_type & k)
{
- return (*((insert(value_type(k, data_type()))).first)).second;
+ return (*((this->insert(value_type(k, data_type()))).first)).second;
}
};
diff -Naru aspell-0.61/common/posib_err.hpp aspell-0.61-mac-patched/common
/posib_err.hpp
--- aspell-0.61/common/posib_err.hpp 2005-05-03 08:08:19.000000000 +0300
+++ aspell-0.61-mac-patched/common/posib_err.hpp 2016-02-22
17:02:42.000000000 +0200
@@ -158,6 +158,9 @@
void del();
};
+ template <typename Ret> class PosibErr;
+ template <> class PosibErr<void>;
+
template <typename Ret>
class PosibErr : public PosibErrBase
{
@@ -171,8 +174,8 @@
PosibErr(const PosibErr<T> & other)
: PosibErrBase(other), data(other.data) {}
- PosibErr(const PosibErr<void> & other)
- : PosibErrBase(other) {}
+ PosibErr(const PosibErr<void> & other);
+ //: PosibErrBase(other) {}
PosibErr& operator= (const PosibErr & other) {
data = other.data;
@@ -186,6 +189,7 @@
Ret data;
};
+
template <>
class PosibErr<void> : public PosibErrBase
{
@@ -196,6 +200,10 @@
PosibErr() {}
};
+ template <typename Ret>
+ PosibErr<Ret>::PosibErr(const PosibErr<void> & other) :
PosibErrBase(other) {}
+
+
//
//
//
diff -Naru aspell-0.61/common/vector.hpp aspell-0.61-mac-patched/common
/vector.hpp
--- aspell-0.61/common/vector.hpp 2006-11-24 16:36:50.000000000 +0200
+++ aspell-0.61-mac-patched/common/vector.hpp 2016-02-22
17:02:49.000000000 +0200
@@ -35,7 +35,7 @@
this->push_back(t);
}
void append(const T * begin, unsigned int size) {
- insert(this->end(), begin, begin+size);
+ this->insert(this->end(), begin, begin+size);
}
void append(const T * begin, const T * end) {
insert(this->end(), begin, end);
diff -Naru aspell-0.61/interfaces/cc/aspell.h aspell-0.61-mac-patched/interf
aces/cc/aspell.h
--- aspell-0.61/interfaces/cc/aspell.h 2016-02-22 14:56:26.000000000
+0200
+++ aspell-0.61-mac-patched/interfaces/cc/aspell.h 2016-02-22
17:03:18.000000000 +0200
@@ -237,7 +237,7 @@
/******************************** errors ********************************/
-
+#ifndef __cplusplus
extern const struct AspellErrorInfo * const aerror_other;
extern const struct AspellErrorInfo * const aerror_operation_not_supported;
extern const struct AspellErrorInfo * const aerror_cant_copy;
@@ -328,6 +328,7 @@
extern const struct AspellErrorInfo * const aerror_invalid_expression;
extern const struct AspellErrorInfo * const aerror_convert_filter;
extern const struct AspellErrorInfo * const aerror_invalid_table_entry;
+#endif
/****************************** check info ******************************/
On Mon, Dec 12, 2016 at 8:47 AM, Kevin Atkinson <[email protected]> wrote:
> GNU Aspell is Alive.
>
> Before GNU Aspell was split between Savannah and and SourceForge, now GNU
> Aspell is split between Savannah and GitHub. Basically I will use GitHub
> to track issues instead of SourceForge.
>
> The old CVS repo is a mess and did not convert well to Git so I did a
> minimal conversion that did not attempt to import most of the history from
> CVS. As it stands now the Git repo is an a state of flux. Once it
> stabilizes the master and devel branch of the repo will be pushed to both
> Savannah and GitHub.
>
> Releases as always will be upload to ftp.gnu.org.
>
> I realize that GitHub is not the best solution, but it is no worse than
> SourceForge. I chose GitHub for now to increase the visibility of the
> project and as a pragmatic solution as I use GitHub regulatory for my
> current job where I work on other non-FSF Free (as in freedom) projects.
>
> At some point in the future I might move the issues (and repo) to a more
> free solution such as GitLab.
>
> I will continue to accept bug reports via email for those who do not wish
> to use GitHub.
>
> Once again, GNU Aspell is alive. Expect a maintenance release sometime in
> the next month or so.
>
> Kevin
>
>
> _______________________________________________
> Aspell-devel mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/aspell-devel
>
diff -Naru aspell-0.61/common/hash.hpp aspell-0.61-mac-patched/common/hash.hpp
--- aspell-0.61/common/hash.hpp 2016-02-22 14:58:15.000000000 +0200
+++ aspell-0.61-mac-patched/common/hash.hpp 2016-02-22 17:02:55.000000000 +0200
@@ -324,7 +324,7 @@
: Base(s, Parms(h,e)) {}
data_type & operator[](const key_type & k)
{
- return (*((insert(value_type(k, data_type()))).first)).second;
+ return (*((this->insert(value_type(k, data_type()))).first)).second;
}
};
diff -Naru aspell-0.61/common/posib_err.hpp aspell-0.61-mac-patched/common/posib_err.hpp
--- aspell-0.61/common/posib_err.hpp 2005-05-03 08:08:19.000000000 +0300
+++ aspell-0.61-mac-patched/common/posib_err.hpp 2016-02-22 17:02:42.000000000 +0200
@@ -158,6 +158,9 @@
void del();
};
+ template <typename Ret> class PosibErr;
+ template <> class PosibErr<void>;
+
template <typename Ret>
class PosibErr : public PosibErrBase
{
@@ -171,8 +174,8 @@
PosibErr(const PosibErr<T> & other)
: PosibErrBase(other), data(other.data) {}
- PosibErr(const PosibErr<void> & other)
- : PosibErrBase(other) {}
+ PosibErr(const PosibErr<void> & other);
+ //: PosibErrBase(other) {}
PosibErr& operator= (const PosibErr & other) {
data = other.data;
@@ -186,6 +189,7 @@
Ret data;
};
+
template <>
class PosibErr<void> : public PosibErrBase
{
@@ -196,6 +200,10 @@
PosibErr() {}
};
+ template <typename Ret>
+ PosibErr<Ret>::PosibErr(const PosibErr<void> & other) : PosibErrBase(other) {}
+
+
//
//
//
diff -Naru aspell-0.61/common/vector.hpp aspell-0.61-mac-patched/common/vector.hpp
--- aspell-0.61/common/vector.hpp 2006-11-24 16:36:50.000000000 +0200
+++ aspell-0.61-mac-patched/common/vector.hpp 2016-02-22 17:02:49.000000000 +0200
@@ -35,7 +35,7 @@
this->push_back(t);
}
void append(const T * begin, unsigned int size) {
- insert(this->end(), begin, begin+size);
+ this->insert(this->end(), begin, begin+size);
}
void append(const T * begin, const T * end) {
insert(this->end(), begin, end);
diff -Naru aspell-0.61/interfaces/cc/aspell.h aspell-0.61-mac-patched/interfaces/cc/aspell.h
--- aspell-0.61/interfaces/cc/aspell.h 2016-02-22 14:56:26.000000000 +0200
+++ aspell-0.61-mac-patched/interfaces/cc/aspell.h 2016-02-22 17:03:18.000000000 +0200
@@ -237,7 +237,7 @@
/******************************** errors ********************************/
-
+#ifndef __cplusplus
extern const struct AspellErrorInfo * const aerror_other;
extern const struct AspellErrorInfo * const aerror_operation_not_supported;
extern const struct AspellErrorInfo * const aerror_cant_copy;
@@ -328,6 +328,7 @@
extern const struct AspellErrorInfo * const aerror_invalid_expression;
extern const struct AspellErrorInfo * const aerror_convert_filter;
extern const struct AspellErrorInfo * const aerror_invalid_table_entry;
+#endif
/****************************** check info ******************************/
_______________________________________________
Aspell-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/aspell-devel