outdated url-library: is XEmacs still the next generation of Emacs?

Aidan Kehoe kehoea at parhasard.net
Thu Jun 10 14:37:21 EDT 2010


 Ar an deichiú lá de mí Meitheamh, scríobh Stephen J. Turnbull: 

 >  > That’s the first time I’ve seen the proposal for integrating bignum
 >  > support into buffer sizes giving us real large file support;
 > 
 > It's been around for a while, but tabled so hard the proposal bounced
 > and the tabletop cracked, because it's almost certainly way slow.

My understanding of it before was that we wanted bignums in marker objects
and stored in the buffer structure on the C level; but that’s not necessary,
we can use C types that correspond to the size of the OFFSET argument to
lseek(2). The only thing that may become awkwardly slow then is that #'point
and #'point-max may give bignums, and stuff like

(while (not (eq (point) (point-max)))
  ...)

needs to become 

(while (not (eql (point) (point-max)))
  ...)

(but we can have the byte-compiler check for that, plus, maybe, the
pseudo-Ebola stuff I mentioned) and will generate a lot of immediately
garbage bignums. But if you *want* to deal with files that big in XEmacs,
you probably have lots of memory (in which case we really should increase
gc-cons-threshold appreciably at startup) or are working noninteractively,
so garbage collection isn’t as annoying as it otherwise might be.

 >  > it’s eminently reasonable, and shouldn’t be too much work. (I’m
 >  > thinking, move the Charbpos, Bytebpos and Membpos typedefs to
 >  > corresponding to off_t rather than EMACS_INT;
 > 
 > I don't understand that.  off_t is likely to be 32 bits on 32-bit
 > platforms.

Not on 32-bit platforms with large file support. Though as I understand it,
large file support on Linux is a bit of a red-headed stepchild, it needs
special compile time defines.

bonbon  [ uname -a
Darwin bonbon 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
bonbon  [ cat off_t.c
#include <stdio.h>
#include <unistd.h>

int
main (void)
{
  printf ("size of void pointer is %d, size of off_t is %d\n",
          sizeof (void *), sizeof (off_t));
  return 0;
}
bonbon  [ bsdmake off_t
cc -O -pipe    off_t.c  -o off_t
bonbon  [ ./off_t
size of void pointer is 4, size of off_t is 8
bonbon  [ fg
[1]  + continued  ssh namp at 192.168.1.15
(pwd: /Sources)

-bash-3.1$ make off_t
cc -O2   -o off_t off_t.c 
-bash-3.1$ ./off_t
size of void pointer is 4, size of off_t is 8
-bash-3.1$ uname -a
NetBSD localhost 3.1 NetBSD 3.1 (GENERIC) #0: Tue Oct 31 04:27:07 UTC 2006  builds at b0.netbsd.org:/home/builds/ab/netbsd-3-1-RELEASE/i386/200610302053Z-obj/home/builds/ab/netbsd-3-1-RELEASE/src/sys/arch/i386/compile/GENERIC i386
-bash-3.1$ 
-bash-3.1$ 

-- 
“Apart from the nine-banded armadillo, man is the only natural host of
Mycobacterium leprae, although it can be grown in the footpads of mice.”
  -- Kumar & Clark, Clinical Medicine, summarising improbable leprosy research



More information about the XEmacs-Beta mailing list