From: Nick Keighley on
On 30 June, 03:08, Fren Zeee <frenz...(a)gmail.com> wrote:
> On Jun 29, 7:08 am, Xah Lee <xah...(a)gmail.com> wrote:

I'm not entirely sure this belongs on comp.lang.c. There's one point
thats close to on-topic though.

> > • GNU Emacs and Xemacs Schism, by Ben Wing
> >  http://xahlee.org/emacs/gnu_emacs_xemacs_schism_Ben_Wing.html
>
> > plain text version follows.
>
> > --------------------------------------------------
> > GNU Emacs and Xemacs Schism, by Ben Wing
>
> > Ben Wing, 2001?
>
> > Many people look at the split between GNU Emacs and XEmacs and are
> > convinced that the XEmacs team is being needlessly divisive and just
> > needs to cooperate a bit with RMS, and the two versions of Emacs will
> > merge. In fact there have been six to seven major attempts at merging,
> > each running hundreds of messages long and all of them coming from the
> > XEmacs side. All have failed because they have eventually come to the
> > same conclusion, which is that RMS has no real interest in cooperation
> > at all. If you work with him, you have to do it his way — “my way or
> > the highway”. Specifically:

<snip>

> > 2. RMS does not like abstract data structures. Abstract data
> > structures are the foundation of XEmacs and most other modern
> > programming projects. In my opinion, [it] is difficult to impossible to
> > write maintainable and expandable code without using abstract data
> > structures. In merging talks with RMS he has said we can have any
> > abstract data structures we want in a merged version but must allow
> > direct access to the implementation as well, which defeats the primary
> > purpose of having abstract data structures.
>
> What does he mean by ADT ? I thought any struct in C is the ADT.

Some are more abstract than others. A true ADT hides implementaion
detail (and allows it to be changed without change rippling through
the whole application). For instance a stack could be an array or a
linked list. An ADT would hide this detail a er Concrete DT (CDT)
would allow access to the underlying array or list. Calling a struct
an ADT is rather stretching the term.

> If
> the emacs is written in C then it has struct in it.

I suspect most of it is written in Lisp.


> If the lisp has a
> certain structure of dotted pairs or two cells, then it is a
> structure, ie a tree with special nodes to void.

what? A Lisp cell is a pretty abstract type. Modern hardware is
unlikely to support it directly and there a variety of ways to
implement it in C. But when writing (most) Lisp you don't care.


<snip emacs wars>


--

We recommend, rather, that users take advantage of the extensions of
GNU C and disregard the limitations of other compilers. Aside from
certain supercomputers and obsolete small machines, there is less
and less reason ever to use any other C compiler other than for
bootstrapping GNU CC.
(Using and Porting GNU CC)
From: Julian Bradfield on
On 2010-06-30, Fren Zeee <frenzeee(a)gmail.com> wrote:
> question above about
> ADT
> C structure

If you don't understand the difference between an abstract data type
and a C structure, then read (for example) the Wikipedia entry on
abstract data types.