texmacs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Texmacs-dev] Re: [TeXmacs] segmentation fault


From: Wolfgang Jansen
Subject: [Texmacs-dev] Re: [TeXmacs] segmentation fault
Date: Tue, 24 Jun 2008 14:59:47 +0200
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Henri Lesourd wrote:
Wolfgang Jansen wrote:

Henri Lesourd wrote:

Wolfgang Jansen wrote:

Someone must have worked out the configuration.
This is the person who is responsible.

There is currently no person responsible
for the Sun platform.


Or is your answer to understand as follows:
We have done something, we offer this to the world for use,
we even established a mailing list for discussion and bug reports,
but there is nobody to maintain our stuff.

There is definitely somebody to maintain and
extend the software.

There is usually somebody to maintain the
stuff on most of the platforms. But currently,
not on Sun.


Do you think that successful OSS projects are produced
and maintained by bloody amateurs? Be sure this is not the case.

I have no time to answer this, sorry.


In any case, it must be clarified
that the bug is platform specific.


This clearly stems from your report, it's not
something I should myself state !

So, if it was clear from by bug report that TeXmacs
violated standards, why did the TeXmacs developers
not fix the bug in the course of half a year?

Because, *as I said before*, these kinds of
platform-dependent things are usually solved
by *USERS* which can access the particular
platform where the problem exists.

No possibility to test: not possible to
write software.
Because, *as I said before*, the bug is not platform
specific, it is standard specific. Announcing that the
software will run at "all major UNIX platforms"
requires to follow the standards.
Well, it happens during development that some extensions
to a standard will be overseen. But as soon as the standard
violation becomes visible one must resort to the standard.
Otherwise, it will be impossible to produce qualitative
software.


We are not "providers". The way it usually

You (or your colleagues) are the providers:
it is _your_ announcement at http://www.texmacs.org.
Why do you not accept the responsibility for your product?

As for me, except for really important
cases, I usually try to avoid opinions
about what the responsability of other
people is or should be.


There may be many places where the result
of the function is needed. Can the function simply
be switched off? If it was so simple
why has this not already been done?

Things are never so simple, one must spend
time to read the code in order to see if
changing it can break things, and spend
time to test the changes afterwards, even
if reading the code lead to the idea that
everything should be fine.

Thanks for teaching how software is produced.
Now I know what I've made wrong during the last 30 years.

Since you promised the placet,
I did the necessary modifications.
I add then in patch "quadruple.tar.gz".

What you sent is not a patch, it's a subset
of the sources tree containing only the
files you modified.

A patch is done by means of diff -r -U2 to
extract the differences between the original
version and the modified version of the whole
source tree.

OK, I did not know which format you prefer.
Another thing is that your patch should
really *fix* the problems: it means that
there should remain no compilation errors,
and that the software should work as expected.

All bugs to fix is impossible.
First, there occurs one bug after the other.
Second and more importantly, the bug found
last is a missing type definition
(may be a typedef, a class, or something else).
It is not possible to guess the developers' intention.

End of story.

--
Dr. Wolfgang Jansen
University of Potsdam, Germany
mailto: address@hidden

diff -r -U2 ./src/Graphics/Gui/message.hpp 
/home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Graphics/Gui/message.hpp
--- ./src/Graphics/Gui/message.hpp      2008-06-24 10:02:23.536783000 +0200
+++ /home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Graphics/Gui/message.hpp 
2008-03-19 18:16:36.000000000 +0100
@@ -120,5 +120,5 @@
 template<class T1, class T2, class T3, class T4> void
 send (widget w, slot s, T1 val1, T2 val2, T3 val3, T4 val4) {
-  typedef tuple4<T1,T2,T3,T4> T;
+  typedef quadruple<T1,T2,T3,T4> T;
   w->send (s, close_box<T> (T (val1, val2, val3, val4)));
 }
@@ -126,5 +126,5 @@
 template<class T1, class T2, class T3, class T4, class T5> void
 send (widget w, slot s, T1 val1, T2 val2, T3 val3, T4 val4, T5 val5) {
-  typedef tuple5<T1,T2,T3,T4,T5> T;
+  typedef quintuple<T1,T2,T3,T4,T5> T;
   w->send (s, close_box<T> (T (val1, val2, val3, val4, val5)));
 }
@@ -151,5 +151,5 @@
 template<class T1, class T2, class T3, class T4> void
 query (widget w, slot s, T1& val1, T2& val2, T3& val3, T4& val4) {
-  typedef tuple4<T1,T2,T3,T4> T;
+  typedef quadruple<T1,T2,T3,T4> T;
   T q= open_box<T> (w->query (s, type_helper<T>::id));
   val1= q.x1; val2= q.x2; val3= q.x3; val4= q.x4;
@@ -158,5 +158,5 @@
 template<class T1, class T2, class T3, class T4, class T5> void
 query (widget w, slot s, T1& val1, T2& val2, T3& val3, T4& val4, T5& val5) {
-  typedef tuple5<T1,T2,T3,T4,T5> T;
+  typedef quintuple<T1,T2,T3,T4,T5> T;
   T q= open_box<T> (w->query (s, type_helper<T>::id));
   val1= q.x1; val2= q.x2; val3= q.x3; val4= q.x4; val5= q.x5;
diff -r -U2 ./src/Kernel/Containers/ntuple.hpp 
/home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Kernel/Containers/ntuple.hpp
--- ./src/Kernel/Containers/ntuple.hpp  2008-06-24 10:02:04.671492000 +0200
+++ /home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Kernel/Containers/ntuple.hpp     
2008-03-19 18:16:36.000000000 +0100
@@ -2,5 +2,5 @@
 /******************************************************************************
 * MODULE     : ntuple.hpp
-* DESCRIPTION: Pairs, tuples and tuple4s
+* DESCRIPTION: Pairs, tuples and quadruples
 * COPYRIGHT  : (C) 2007  Joris van der Hoeven
 *******************************************************************************
@@ -51,39 +51,39 @@
 
 template<class T1, class T2, class T3, class T4>
-class tuple4 {
+class quadruple {
 public:
   T1 x1; T2 x2; T3 x3; T4 x4;
-  inline tuple4 (const tuple4& q):
+  inline quadruple (const quadruple& q):
     x1 (q.x1), x2 (q.x2), x3 (q.x3), x4 (q.x4) {}
-  inline tuple4 (const T1& y1, const T2& y2, const T3& y3, const T3& y4):
+  inline quadruple (const T1& y1, const T2& y2, const T3& y3, const T3& y4):
     x1 (y1), x2 (y2), x3 (y3), x4 (y4) {}
-  inline tuple4& operator = (const tuple4& q) {
+  inline quadruple& operator = (const quadruple& q) {
     x1= q.x1; x2= q.x2; x3= q.x3; x4= q.x4; return *this; }
-  inline bool operator == (const tuple4& q) {
+  inline bool operator == (const quadruple& q) {
     return x1 == q.x1 && x2 == q.x2 && x3 == q.x3 && x4 == q.x4; }
-  inline bool operator != (const tuple4& q) {
+  inline bool operator != (const quadruple& q) {
     return x1 != q.x1 || x2 != q.x2 || x3 != q.x3 || x4 != q.x4; }
 };
 
 template<class T1, class T2, class T3, class T4> inline ostream&
-operator << (ostream& out, const tuple4<T1,T2,T3,T4>& q) {
+operator << (ostream& out, const quadruple<T1,T2,T3,T4>& q) {
   return out << "[ " << q.x1 << ", " << q.x2
             << ", " << q.x3 << ", " << q.x4 << " ]"; }
 
 template<class T1, class T2, class T3, class T4, class T5>
-class tuple5 {
+class quintuple {
 public:
   T1 x1; T2 x2; T3 x3; T4 x4; T5 x5;
-  inline tuple5 (const tuple5& q):
+  inline quintuple (const quintuple& q):
     x1 (q.x1), x2 (q.x2), x3 (q.x3), x4 (q.x4), x5 (q.x5) {}
-  inline tuple5 (const T1& y1, const T2& y2, const T3& y3,
+  inline quintuple (const T1& y1, const T2& y2, const T3& y3,
                    const T3& y4, const T5& y5):
     x1 (y1), x2 (y2), x3 (y3), x4 (y4), x5 (y5) {}
-  inline tuple5& operator = (const tuple5& q) {
+  inline quintuple& operator = (const quintuple& q) {
     x1= q.x1; x2= q.x2; x3= q.x3; x4= q.x4; x5= q.x5; return *this; }
-  inline bool operator == (const tuple5& q) {
+  inline bool operator == (const quintuple& q) {
     return x1 == q.x1 && x2 == q.x2 && x3 == q.x3 &&
            x4 == q.x4 && x5 == q.x5; }
-  inline bool operator != (const tuple5& q) {
+  inline bool operator != (const quintuple& q) {
     return x1 != q.x1 || x2 != q.x2 || x3 != q.x3 ||
            x4 != q.x4 || x5 != q.x5; }
@@ -91,5 +91,5 @@
 
 template<class T1, class T2, class T3, class T4, class T5> inline ostream&
-operator << (ostream& out, const tuple5<T1,T2,T3,T4,T5>& q) {
+operator << (ostream& out, const quintuple<T1,T2,T3,T4,T5>& q) {
   return out << "[ " << q.x1 << ", " << q.x2 << ", " << q.x3
             << ", " << q.x4 << ", " << q.x5 << " ]"; }
diff -r -U2 ./src/Plugins/Widkit/Basic/widkit_wrapper.cpp 
/home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Plugins/Widkit/Basic/widkit_wrapper.cpp
--- ./src/Plugins/Widkit/Basic/widkit_wrapper.cpp       2008-06-24 
10:03:00.513029000 +0200
+++ 
/home/wjansen/tmp/TeXmacs-1.0.6.14-src/src/Plugins/Widkit/Basic/widkit_wrapper.cpp
  2008-03-19 18:16:37.000000000 +0100
@@ -351,5 +351,5 @@
 void
 send_coord4 (wk_widget w, string key, blackbox val) {
-  typedef tuple4<SI,SI,SI,SI> coord4;
+  typedef quadruple<SI,SI,SI,SI> coord4;
   if (type_box (val) != type_helper<coord4>::id)
     fatal_error ("type mismatch", "send_coord4");
@@ -411,5 +411,5 @@
 void
 send_mouse (wk_widget w, blackbox val) {
-  typedef tuple5<string,SI,SI,int,time_t> mouse;
+  typedef quintuple<string,SI,SI,int,time_t> mouse;
   if (type_box (val) != type_helper<mouse>::id)
     fatal_error ("type mismatch", "send_mouse");
@@ -437,5 +437,5 @@
 void
 send_invalidate (wk_widget w, blackbox val) {
-  typedef tuple4<SI,SI,SI,SI> coord4;
+  typedef quadruple<SI,SI,SI,SI> coord4;
   if (type_box (val) != type_helper<coord4>::id)
     fatal_error ("type mismatch", "send_invalidate");
@@ -454,5 +454,5 @@
 void
 send_repaint (wk_widget w, blackbox val) {
-  typedef tuple4<SI,SI,SI,SI> repaint;
+  typedef quadruple<SI,SI,SI,SI> repaint;
   if (type_box (val) != type_helper<repaint>::id)
     fatal_error ("type mismatch", "send_repaint");
@@ -638,5 +638,5 @@
 blackbox
 query_coord4 (wk_widget w, string key, int type_id) {
-  typedef tuple4<SI,SI,SI,SI> coord4;
+  typedef quadruple<SI,SI,SI,SI> coord4;
   if (type_id != type_helper<coord4>::id)
     fatal_error ("type mismatch", "query_coord4");

reply via email to

[Prev in Thread] Current Thread [Next in Thread]