unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Gnu Emacs and Vista ASLR feature
@ 2008-05-29  9:28 Fabrice Popineau
  2008-05-29 10:26 ` Jason Rumney
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Fabrice Popineau @ 2008-05-29  9:28 UTC (permalink / raw)
  To: emacs-devel

Hi all,

I'd like to raise a problem with Gnu Emacs and Vista. There is this new
Adress Space Layout Randomization feature in Vista. An executable will
be randomly rebased at load-time. I have compiled 23.0.50 using MSVC 2008
and I'm experiencing the following :
- the  freshly compiled emacs.exe always runs
- if I kill it, or if I reboot or whatever other condition (like loading 
large programs, namely Lispworks),
  the same emacs.exe crashes
- if I recompile it, it will run.

I suspect some interference between this Vista ASLR feature and the way Gnu 
Emacs is dumped.
I'm only a casual reader of this groups, so maybe this issue has already 
been raised (but couldn't find
anything relevant in Google).

Any insights about the best way to solve this problem would be welcome. For 
the moment,
I'm investigating with the /dynamicbase:no option of the linker to see if it 
makes any difference.

Best regards,

-- 
Fabrice Popineau
------------------------
e-mail:       Fabrice.Popineau@supelec.fr  |  The difference between theory
voice-mail:   +33 (0) 387764715            |  and practice, is that
surface-mail: Supelec, 2 rue E. Belin,     |  theoretically,
       F-57070 Metz             |  there is no difference !






^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29  9:28 Gnu Emacs and Vista ASLR feature Fabrice Popineau
@ 2008-05-29 10:26 ` Jason Rumney
  2008-05-29 10:38   ` David Kastrup
  2008-05-29 17:47   ` Eli Zaretskii
  2008-05-29 17:48 ` Stephen J. Turnbull
  2008-05-30  1:00 ` Richard M Stallman
  2 siblings, 2 replies; 22+ messages in thread
From: Jason Rumney @ 2008-05-29 10:26 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

Fabrice Popineau wrote:
> I have compiled 23.0.50 using MSVC 2008

Congratulations, you are the first person to have successfully compiled 
and linked Emacs with a version of Microsoft's compiler made in the last 
5 years.
I expect your problems may be related to that, as there appear to be 
users running Emacs on Vista (compiled with gcc) without problems.





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 10:26 ` Jason Rumney
@ 2008-05-29 10:38   ` David Kastrup
  2008-05-29 10:52     ` Fabrice Popineau
  2008-05-29 11:12     ` Jason Rumney
  2008-05-29 17:47   ` Eli Zaretskii
  1 sibling, 2 replies; 22+ messages in thread
From: David Kastrup @ 2008-05-29 10:38 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Fabrice Popineau, emacs-devel

Jason Rumney <jasonr@gnu.org> writes:

> Fabrice Popineau wrote:
>> I have compiled 23.0.50 using MSVC 2008
>
> Congratulations, you are the first person to have successfully
> compiled and linked Emacs with a version of Microsoft's compiler made
> in the last 5 years.
> I expect your problems may be related to that, as there appear to be
> users running Emacs on Vista (compiled with gcc) without problems.

Note that "23.0.50" must be a CVS version from half a year ago or so,
probably from the unicode2 branch before the merge.  The current
informal version number is 23.0.60.

Whether that improves or decreases the chances of compilation, I have no
idea.

-- 
David Kastrup




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 10:38   ` David Kastrup
@ 2008-05-29 10:52     ` Fabrice Popineau
  2008-05-29 11:13       ` Jason Rumney
  2008-05-29 11:12     ` Jason Rumney
  1 sibling, 1 reply; 22+ messages in thread
From: Fabrice Popineau @ 2008-05-29 10:52 UTC (permalink / raw)
  To: David Kastrup, Jason Rumney; +Cc: emacs-devel

> Whether that improves or decreases the chances of compilation, I have no
> idea.


Actually, there is no problem in compiling it. It runs almost out of the 
box.
Once it is compiled, it works perfectly well as long as I don't stop it.

My point is only the following : I have the feeling that GNU Emacs is 
dumping
something that depends on the load base address. Is that true ?
(BTW, XEmacs doesn't  anymore).
If yes, I would say it is something that may be harmful wrt this ASLR 
feature.

Fabrice 





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 10:38   ` David Kastrup
  2008-05-29 10:52     ` Fabrice Popineau
@ 2008-05-29 11:12     ` Jason Rumney
  2008-05-29 12:07       ` Fabrice Popineau
                         ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Jason Rumney @ 2008-05-29 11:12 UTC (permalink / raw)
  To: David Kastrup; +Cc: Fabrice Popineau, emacs-devel

David Kastrup wrote:
> Note that "23.0.50" must be a CVS version from half a year ago or so,
> probably from the unicode2 branch before the merge.  The current
> informal version number is 23.0.60.
>   

Sometime last year someone made an effort to get Emacs compiling with 
MSVC 2003 and 2005. The compilation errors were fixed at that time, and 
Emacs was able to link with MSVC 2003, but not 2005 due to no longer 
shipping with a single threaded C library. The statically linked 
multithreaded library is missing a number of functions and globals that 
Emacs needs, and the dynamically linked multithreaded library causes 
conflicts between the Emacs malloc and the library's malloc 
implementations. If MSVC 2008 is again shipping a statically linked 
single threaded runtime, or if the statically linked multi-threaded 
runtime has the missing functions and globals added back in, then it 
might be expected to work. If the build files have been hacked to link 
dynamically, then problems are to be expected.






^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 10:52     ` Fabrice Popineau
@ 2008-05-29 11:13       ` Jason Rumney
  0 siblings, 0 replies; 22+ messages in thread
From: Jason Rumney @ 2008-05-29 11:13 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

Fabrice Popineau wrote:
> My point is only the following : I have the feeling that GNU Emacs is 
> dumping
> something that depends on the load base address. Is that true ?

I don't think so, all addresses for any Windows program should be relative.





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 11:12     ` Jason Rumney
@ 2008-05-29 12:07       ` Fabrice Popineau
  2008-05-29 13:42         ` Jason Rumney
  2008-05-29 13:20       ` dhruva
  2008-05-29 17:45       ` Eli Zaretskii
  2 siblings, 1 reply; 22+ messages in thread
From: Fabrice Popineau @ 2008-05-29 12:07 UTC (permalink / raw)
  To: Jason Rumney, David Kastrup; +Cc: emacs-devel


> implementations. If MSVC 2008 is again shipping a statically linked
> single threaded runtime,

Nope, and I don't expect them to do it. I would rather expect them to get 
rid of libcmt
in favour of msvcrt.

> If the build files have been hacked to link dynamically,

This is the case

> then problems are to be expected.

What kind of problems ? Because actually, it is running ok (Gnus, Slime, 
whatever)
I thought about the ASLR "feature" because it stops working after a reboot.
Which is kind of strange.

Fabrice 





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 11:12     ` Jason Rumney
  2008-05-29 12:07       ` Fabrice Popineau
@ 2008-05-29 13:20       ` dhruva
  2008-05-29 17:45       ` Eli Zaretskii
  2 siblings, 0 replies; 22+ messages in thread
From: dhruva @ 2008-05-29 13:20 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Fabrice Popineau, emacs-devel

Hello,
 For records, I am building Emacs with both GCC (MinGW) and VS 2003. I
use it on XP and have not faced any problems. Maybe, the OP can try to
pick a VS 2003 build and use it on Vista (sorry, I do not have access
to a vista machine to do it myself) and see if it still happens.

I had tried it earlier and given up on VS 2005
http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00832.html


-dky

On Thu, May 29, 2008 at 4:42 PM, Jason Rumney <jasonr@gnu.org> wrote:
> David Kastrup wrote:
>>
>> Note that "23.0.50" must be a CVS version from half a year ago or so,
>> probably from the unicode2 branch before the merge.  The current
>> informal version number is 23.0.60.
>>
>
> Sometime last year someone made an effort to get Emacs compiling with MSVC
> 2003 and 2005. The compilation errors were fixed at that time, and Emacs was
> able to link with MSVC 2003, but not 2005 due to no longer shipping with a
> single threaded C library. The statically linked multithreaded library is
> missing a number of functions and globals that Emacs needs, and the
> dynamically linked multithreaded library causes conflicts between the Emacs
> malloc and the library's malloc implementations. If MSVC 2008 is again
> shipping a statically linked single threaded runtime, or if the statically
> linked multi-threaded runtime has the missing functions and globals added
> back in, then it might be expected to work. If the build files have been
> hacked to link dynamically, then problems are to be expected.
>
>
>
>
>



-- 
Contents reflect my personal views only!




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 12:07       ` Fabrice Popineau
@ 2008-05-29 13:42         ` Jason Rumney
  2008-05-29 14:33           ` Fabrice Popineau
  0 siblings, 1 reply; 22+ messages in thread
From: Jason Rumney @ 2008-05-29 13:42 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

Fabrice Popineau wrote:
> What kind of problems ? Because actually, it is running ok (Gnus, 
> Slime, whatever)
> I thought about the ASLR "feature" because it stops working after a 
> reboot.
> Which is kind of strange.

It is strange that Emacs works the first time. The problems that using 
msvcrt.dll directly causes are to do with Emacs defining its own 
implementation of malloc (in gmalloc.c), and the way Windows separates 
DLLs into their own process space, so they do not share any application 
overridden standard library functions. Apparently in the startup code 
supplied by MSVC 2005 (at least), a non-standard malloc related function 
was called during heap initialization which we do not override, causing 
the function in the DLL to be called, but because prior calls to malloc 
related initialization had been handled by Emacs own malloc 
implementation, the DLL's heap was not in a state where it was ready for 
that call, and crashed.






^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 13:42         ` Jason Rumney
@ 2008-05-29 14:33           ` Fabrice Popineau
  0 siblings, 0 replies; 22+ messages in thread
From: Fabrice Popineau @ 2008-05-29 14:33 UTC (permalink / raw)
  To: Jason Rumney; +Cc: emacs-devel

Thanks for the explanation. I'll see if I can investigate on this basis.

> It is strange that Emacs works the first time.

Sure. I was much more familiar with the internals of xemacs (well, some of 
them)
so my comparison. As far as I remember, they have changed their lisp objects 
internal representation
for one without pointers, so that it is entirely relocatable.
I need to have a look at Gnu Emacs sources to see how it is handled.

I must add that the same Gnu Emacs I compiled is running on XP.
It suffered from the same startup crash syndrom, however
I dumped again from temacs.exe under XP and it doesn't seem to crash 
anymore.

Sorry if I have been quick with my conclusions.
I will recompile this stuff in debug mode (if possible)
and have a look. I have the msvcrt sources so maybe ...

Best regards,

Fabrice 





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 11:12     ` Jason Rumney
  2008-05-29 12:07       ` Fabrice Popineau
  2008-05-29 13:20       ` dhruva
@ 2008-05-29 17:45       ` Eli Zaretskii
  2 siblings, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2008-05-29 17:45 UTC (permalink / raw)
  To: Jason Rumney; +Cc: fabrice.popineau, emacs-devel

> Date: Thu, 29 May 2008 12:12:07 +0100
> From: Jason Rumney <jasonr@gnu.org>
> Cc: Fabrice Popineau <fabrice.popineau@supelec.fr>, emacs-devel@gnu.org
> 
> Sometime last year someone made an effort to get Emacs compiling with 
> MSVC 2003 and 2005.

That was me, with your help AFAIR.

> The compilation errors were fixed at that time, and 
> Emacs was able to link with MSVC 2003, but not 2005 due to no longer 
> shipping with a single threaded C library. The statically linked 
> multithreaded library is missing a number of functions and globals that 
> Emacs needs, and the dynamically linked multithreaded library causes 
> conflicts between the Emacs malloc and the library's malloc 
> implementations.

Right, and the produced temacs (or was it dumped Emacs?) crashed right
away, which seemed to indicate that the conflicts with malloc were
real.  That was the point where I ran out of free time and gave up.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 10:26 ` Jason Rumney
  2008-05-29 10:38   ` David Kastrup
@ 2008-05-29 17:47   ` Eli Zaretskii
  2008-05-29 22:46     ` David Kastrup
  1 sibling, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2008-05-29 17:47 UTC (permalink / raw)
  To: Jason Rumney; +Cc: fabrice.popineau, emacs-devel

> Date: Thu, 29 May 2008 11:26:08 +0100
> From: Jason Rumney <jasonr@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> Fabrice Popineau wrote:

Hello, Fabrice!  Long time no spoken.  Welcome to GNU Emacs (I think
you used to use XEmacs in the past).

> > I have compiled 23.0.50 using MSVC 2008
> 
> Congratulations, you are the first person to have successfully compiled 
> and linked Emacs with a version of Microsoft's compiler made in the last 
> 5 years.
> I expect your problems may be related to that, as there appear to be 
> users running Emacs on Vista (compiled with gcc) without problems.

Even if Fabrice tries and succeeds to use GCC, I think it could be
worthwhile to hear whether he needed to make any changes in Emacs
sources or build scripts to get it compiled with Studio 2008.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Gnu Emacs and Vista ASLR feature
  2008-05-29  9:28 Gnu Emacs and Vista ASLR feature Fabrice Popineau
  2008-05-29 10:26 ` Jason Rumney
@ 2008-05-29 17:48 ` Stephen J. Turnbull
  2008-06-02 10:03   ` Fabrice Popineau
  2008-05-30  1:00 ` Richard M Stallman
  2 siblings, 1 reply; 22+ messages in thread
From: Stephen J. Turnbull @ 2008-05-29 17:48 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

Fabrice Popineau writes:

 > I'd like to raise a problem with Gnu Emacs and Vista. There is this new
 > Adress Space Layout Randomization feature in Vista.

Try XEmacs with the portable dumper enabled (I think that's default
for native compilers).  If that works, you could dig up the portable
dumper patch for Emacs (there is one according to posts to this list),
and get that working.

ISTR that the equivalent feature in SELinux causes XEmacs w/ pdump to
fail anyway, but that may have been fixed (ask Olivier Galibert
<olivier@xemacs.org>).  It's worth a try I think.





^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 17:47   ` Eli Zaretskii
@ 2008-05-29 22:46     ` David Kastrup
  2008-06-02  9:59       ` Fabrice Popineau
  0 siblings, 1 reply; 22+ messages in thread
From: David Kastrup @ 2008-05-29 22:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: fabrice.popineau, emacs-devel, Jason Rumney

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Thu, 29 May 2008 11:26:08 +0100
>> From: Jason Rumney <jasonr@gnu.org>
>> Cc: emacs-devel@gnu.org
>> 
>> Fabrice Popineau wrote:
>
> Hello, Fabrice!  Long time no spoken.  Welcome to GNU Emacs (I think
> you used to use XEmacs in the past).

I would be surprised to hear that the past tense here is really
appropriate when Fabrice just starts trying to compile Emacs.  Fabrice
has put together a complete TeX/editing solution for Windows called
XEmTeX several years ago that was intended to be used by inexperienced
users.  XEmacs offered a superior GUI feature set and reasonable
stability particularly under Windows at that time.  utf-8 was not a
topic for TeX or anything else.  AUCTeX was supported and installed in
its current version out of the box.

I think that considering ongoing TeX developments, the current state of
Emacs warrants a reevaluation, and the same might be somewhat sadly said
about the current state of XEmacs.  I am certainly glad that a system
integrator of Fabrice's level is putting Emacs through the motions.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29  9:28 Gnu Emacs and Vista ASLR feature Fabrice Popineau
  2008-05-29 10:26 ` Jason Rumney
  2008-05-29 17:48 ` Stephen J. Turnbull
@ 2008-05-30  1:00 ` Richard M Stallman
  2 siblings, 0 replies; 22+ messages in thread
From: Richard M Stallman @ 2008-05-30  1:00 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

We won't refuse to fix this problem in GNU Emacs,
but the best solution is ... don't use Windows Vista.
(See badvista.org.)




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 22:46     ` David Kastrup
@ 2008-06-02  9:59       ` Fabrice Popineau
  2008-06-02 12:00         ` John S. Yates, Jr.
  0 siblings, 1 reply; 22+ messages in thread
From: Fabrice Popineau @ 2008-06-02  9:59 UTC (permalink / raw)
  To: emacs-devel

>> Hello, Fabrice!  Long time no spoken.  Welcome to GNU Emacs (I think
>> you used to use XEmacs in the past).

Eli, Pleased to meet you again :-)

> I think that considering ongoing TeX developments, the current state of
> Emacs warrants a reevaluation, and the same might be somewhat sadly said
> about the current state of XEmacs.  I am certainly glad that a system
> integrator of Fabrice's level is putting Emacs through the motions.

Thanks David for the nice words. I wonder if I will have enough time to 
package
something along what I did some years ago for XEmacs + TeX. I wanted to have 
a look
a the current state of all Emacsen on native win32 platform : GNU Emacs, but 
I'm also having a look at Climacs.

It is true (and fortunate !) that in a few years, the situation has changed, 
but experiences vary according to the target platform.
Emacs23 seems in a very good shape, but it could probably also benefit of a 
couple of XEmacs features (only my feeling).

Best regards,

Fabrice






^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-05-29 17:48 ` Stephen J. Turnbull
@ 2008-06-02 10:03   ` Fabrice Popineau
  0 siblings, 0 replies; 22+ messages in thread
From: Fabrice Popineau @ 2008-06-02 10:03 UTC (permalink / raw)
  To: emacs-devel

"Stephen J. Turnbull" <stephen@xemacs.org> a écrit dans le message de 
news:873ao1knmd.fsf@uwakimon.sk.tsukuba.ac.jp...

> Try XEmacs with the portable dumper enabled (I think that's default

That was what I was thinking of for Emacs because I don't seem to have 
problems with XEmacs and pdump.

> ISTR that the equivalent feature in SELinux causes XEmacs w/ pdump to
> fail anyway, but that may have been fixed (ask Olivier Galibert
> <olivier@xemacs.org>).  It's worth a try I think.


Bad news then. Anyway, that would be nice to know that both emacsen
are fully relocatable.

Well, I can compile both xemacs and emacs under the same environment 
(VS2008, msvcrt), using the same dlls (zlib, libpng, etc.). So I guess I 
need to experiment a bit more deeply and report about my findings.

Thanks,

Fabrice






^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-06-02  9:59       ` Fabrice Popineau
@ 2008-06-02 12:00         ` John S. Yates, Jr.
  2008-06-02 12:09           ` David Kastrup
  2008-06-02 14:27           ` Stefan Monnier
  0 siblings, 2 replies; 22+ messages in thread
From: John S. Yates, Jr. @ 2008-06-02 12:00 UTC (permalink / raw)
  To: Fabrice Popineau; +Cc: emacs-devel

On Mon, 2 Jun 2008 11:59:07 +0200, Fabrice Popineas wrote:

>Emacs23 seems in a very good shape, but it could probably also benefit of a 
>couple of XEmacs features (only my feeling).

I miss XEmacs' help exploration.  It was available at some point in the past
on gnu Emacs as hapropos, short I believe for hyper-apropos.

/john




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-06-02 12:00         ` John S. Yates, Jr.
@ 2008-06-02 12:09           ` David Kastrup
  2008-06-02 14:27           ` Stefan Monnier
  1 sibling, 0 replies; 22+ messages in thread
From: David Kastrup @ 2008-06-02 12:09 UTC (permalink / raw)
  To: John S. Yates, Jr.; +Cc: Fabrice Popineau, emacs-devel

"John S. Yates, Jr." <john@yates-sheets.org> writes:

> On Mon, 2 Jun 2008 11:59:07 +0200, Fabrice Popineau wrote:
>
>>Emacs23 seems in a very good shape, but it could probably also benefit of a 
>>couple of XEmacs features (only my feeling).
>
> I miss XEmacs' help exploration.  It was available at some point in
> the past on gnu Emacs as hapropos, short I believe for hyper-apropos.

I think we should avoid having too many parallel hypertext systems
within Emacs.  Maybe formatting the respective information into an
info-mode buffer on the fly would be feasible?

-- 
David Kastrup




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-06-02 12:00         ` John S. Yates, Jr.
  2008-06-02 12:09           ` David Kastrup
@ 2008-06-02 14:27           ` Stefan Monnier
  2008-06-02 17:23             ` Eli Zaretskii
  2008-06-03 13:52             ` John S. Yates, Jr.
  1 sibling, 2 replies; 22+ messages in thread
From: Stefan Monnier @ 2008-06-02 14:27 UTC (permalink / raw)
  To: John S. Yates, Jr.; +Cc: Fabrice Popineau, emacs-devel

>> Emacs23 seems in a very good shape, but it could probably also benefit of a 
>> couple of XEmacs features (only my feeling).

> I miss XEmacs' help exploration.  It was available at some point in the past
> on gnu Emacs as hapropos, short I believe for hyper-apropos.

If you explain in what way it differs from Emacs's default `apropos',
maybe we can add the corresponding functionality.


        Stefan




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-06-02 14:27           ` Stefan Monnier
@ 2008-06-02 17:23             ` Eli Zaretskii
  2008-06-03 13:52             ` John S. Yates, Jr.
  1 sibling, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2008-06-02 17:23 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: fabrice.popineau, emacs-devel, john

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Mon, 02 Jun 2008 10:27:12 -0400
> Cc: Fabrice Popineau <fabrice.popineau@supelec.fr>, emacs-devel@gnu.org
> 
> > I miss XEmacs' help exploration.  It was available at some point in the past
> > on gnu Emacs as hapropos, short I believe for hyper-apropos.
> 
> If you explain in what way it differs from Emacs's default `apropos',
> maybe we can add the corresponding functionality.

100% agreement.




^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Gnu Emacs and Vista ASLR feature
  2008-06-02 14:27           ` Stefan Monnier
  2008-06-02 17:23             ` Eli Zaretskii
@ 2008-06-03 13:52             ` John S. Yates, Jr.
  1 sibling, 0 replies; 22+ messages in thread
From: John S. Yates, Jr. @ 2008-06-03 13:52 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Fabrice Popineau, emacs-devel

On Mon, 02 Jun 2008 10:27:12 -0400, you wrote:

>> I miss XEmacs' help exploration.  It was available at some point in the past
>> on gnu Emacs as hapropos, short I believe for hyper-apropos.
>
>If you explain in what way it differs from Emacs's default `apropos',
>maybe we can add the corresponding functionality.


From xemacs 24.1.24 here is the ^H-m help and the response to ^H-a "forward".

The key virtue is columnar layout which is visually easier to parse and
faster to navigate.  My final sample shows that gnu emacs does not eschew
long lines.

Subjectively I would say that the one line description at the right edge
of the xemacs output is the least important portion of the display. The
succinctly tabulated properties and columnar arrangement of names makes
spotting naming patterns easier, which in turn helps me either to skip
over entire grouping quickly or to zero-in on those that seem promising.

I also appreciate the ability to narrow the search, though it would be
even nicer if undo were provided.

/john

---- xemacs ----

Hyper-Apropos mode:
Improved apropos mode for displaying Emacs documentation.  Function and
variable names are displayed in the buffer "*Hyper Apropos*".  

Functions are preceded by a single character to indicates their types:
    a = autoloaded, b = byte-compiled, i = internal, l = lambda, m = macro.
Interactive functions are also preceded by an asterisk.
Variables are preceded by an asterisk if they are user variables.

General Commands:

  	SPC	- scroll documentation or apropos window forward
  	  b	- scroll documentation or apropos window backward
	  k     - eliminate all hits that don't contain keyword
	  n	- new search
  	  /	- isearch-forward
  	  q	- quit and restore previous window configuration
  
  Operations for Symbol on Current Line:
  
      	RET 	- toggle display of symbol's documentation
		  (also on button2 in xemacs)
  	  w     - show the keybinding if symbol is a command
  	  i	- invoke function on current line
  	  s	- set value of variable on current line
	  t	- display the C or lisp source (find-tag)


---- gnu emacs ----

Apropos mode:
Major mode for following hyperlinks in output of apropos commands.

key             binding
---             -------

TAB             forward-button
RET             apropos-follow
  (that binding is currently shadowed by another mode)
ESC             Prefix Command
SPC             scroll-up
q               quit-window
DEL             scroll-down
<backtab>       backward-button

M-TAB           backward-button


---- xemacs ----

Apropos search for: "forward"

* = command (M-x) or user-variable.
a = autoloaded, b = byte-compiled, i = internal, l = lambda, m = macro.

Functions and Macros:

b* backward-or-forward-delete-char - Delete either one character backwards or one character forwards.
b* backward-or-forward-kill-sentence - Delete either one sentence backwards or one sentence forwards.
b* backward-or-forward-kill-sexp  - Delete either one sexpr backwards or one sexpr forwards.
b* backward-or-forward-kill-word  - Delete either one word backwards or one word forwards.
a* cyclebuffer-forward            - Cycle buffer forward.
b  delete-forward-p              
b  fill-move-forward-to-break-point
b* forward-block-of-lines         - Move forward by one "block" of lines.
i* forward-char                   - Move point right COUNT characters (left if COUNT is negative).
b* forward-char-command           - Move point right ARG characters (left if ARG negative) in BUFFER.
i  forward-comment                - Move forward across up to COUNT comments, or backwards if COUNT is negative.
i* forward-line                   - Move COUNT lines forward (backward if COUNT is negative).
b* forward-list                   - Move forward across one balanced group of parentheses.
b* forward-page                   - Move forward to page boundary.  With arg, repeat, or go back if negative.
b* forward-paragraph              - Move forward to end of paragraph.
b* forward-sentence               - Move forward to next `sentence-end'.  With argument, repeat.
b* forward-sexp                   - Move forward across one balanced expression (sexp).
a  forward-thing                  - Move forward to the end of the next THING.
b* forward-to-indentation         - Move forward COUNT lines and position at first nonblank character.
i* forward-word                   - Move point forward COUNT words (backward if COUNT is negative).
a* ibuffer-forward-next-marked    - Move forward by COUNT marked buffers (default 1).
b* isearch-forward                - Do incremental search forward.
b* isearch-forward-exit-minibuffer
b* isearch-forward-regexp         - Do incremental search forward for regular expression.
b* isearch-repeat-forward         - Repeat incremental search forwards.
b  kill-forward-chars            
a* message-forward                - Forward the current message via mail.
a  message-forward-make-body     
a  message-forward-rmail-make-body
a* paren-forward-sexp             - Acts like forward-sexp but can also handle quoted parens. Look at
i* posix-search-forward           - Search forward from point for regular expression REGEXP.
i* re-search-forward              - Search forward from point for regular expression REGEXP.
i* search-forward                 - Search forward from point for STRING.
i* search-forward-regexp          - Search forward from point for regular expression REGEXP.
a* senator-re-search-forward      - Search in tag names forward from point for regular expression REGEXP.
a* senator-search-forward         - Search in tag names forward from point for STRING.
a* senator-word-search-forward    - Search in tag names forward from point for WORD.
i  skip-chars-forward             - Move point forward, stopping before a char not in STRING, or at pos LIMIT.
i  skip-syntax-forward            - Move point forward across chars in specified syntax classes.
b* speedbar-forward-list          - Move forward over the current list.
a* tabbar-forward                 - Select the next available tab.
a* tabbar-forward-group           - Go to selected tab in the next available group.
a* tabbar-forward-tab             - Select the next visible tab.
a* table-forward-cell             - Move point forward to the beginning of the next cell.
b* widget-forward                 - Move point to the next field or button.
i* word-search-forward            - Search forward from point for STRING, ignoring differences in punctuation.
a* xwem-forward-application       - Select ARGs next application.


Variables and Constants:

   byte-forward-char             
   byte-forward-line             
   byte-forward-word             
   byte-skip-chars-forward       
 * delete-key-deletes-forward     - If non-nil, the DEL key will erase one character forwards.
 * forward-word-regexp            - Regular expression to be used in `forward-word'.
   isearch-forward               
   isearch-new-forward           


---- gnu emacs ----

If moving the mouse over text changes the text's color, you can click
mouse-2 (second button from right) on that text to get more information.
In this buffer, go to the name of the command, or function, or variable,
and type RET to get full documentation.

View-revert-buffer-scroll-page-forward M-x ... RET
  Command: Scroll forward, reverting buffer if needed, in View mode.
View-scroll-half-page-forward M-x ... RET
  Command: Scroll forward a "half page" (or prefix LINES) lines in View mode.
View-scroll-line-forward      M-x ... RET
  Command: Scroll forward one line (or prefix LINES lines) in View mode.
View-scroll-page-forward      M-x ... RET
  Command: Scroll "page size" or prefix LINES lines forward in View mode.
View-scroll-page-forward-set-page-size M-x ... RET
  Command: Scroll forward LINES lines in View mode, setting the "page size".
View-search-last-regexp-forward M-x ... RET
  Command: Search forward for first (or prefix Nth) instance of last regexp in View mode.
View-search-regexp-forward    M-x ... RET
  Command: Search forward for first (or prefix Nth) occurrence of REGEXP in View mode.
c-electric-delete-forward     M-x ... RET
  Command: Delete the following character or whitespace.
c-forward-conditional         M-x ... RET
  Command: Move forward across a preprocessor conditional, leaving mark behind.
c-forward-into-nomenclature   M-x ... RET
  Command: Compatibility alias for `c-forward-subword'.
c-hungry-delete-forward       M-x ... RET
  Command: Delete the following character or all following whitespace
cyclebuffer-forward           M-x ... RET
  Command: Cycle buffer forward.
ebrowse-forward-in-position-stack M-x ... RET
  Command: Move forward in the position stack.
forward-button                M-x ... RET
  Command: Move to the Nth next button, or Nth previous button if N is negative.
forward-char                  M-o <right>, M-o C-f, <right>, C-f
  Command: Move point right N characters (left if N is negative).
forward-line                  M-x ... RET
  Command: Move N lines forward (backward if N is negative).
forward-list                  M-o C-M-n, C-M-n
  Command: Move forward across one balanced group of parentheses.
forward-page                  M-o C-x ], C-x ]
  Command: Move forward to page boundary.  With arg, repeat, or go back if negative.
forward-paragraph             M-o M-}, M-o <C-down>, M-}, <C-down>
  Command: Move forward to end of paragraph.
forward-sentence              M-o M-e, M-e
  Command: Move forward to next `sentence-end'.  With argument, repeat.
forward-sexp                  M-o ESC <C-right>, M-o C-M-f, M-o <C-M-right>, ESC <C-right>, C-M-f, <C-M-right>
  Command: Move forward across one balanced expression (sexp).
forward-to-indentation        M-x ... RET
  Command: Move forward ARG lines and position at first nonblank character.
forward-word                  M-o ESC <right>, M-o M-f, M-o <M-right>, M-o <C-right>, ESC <right>, M-f, <M-right>, <C-right>
  Command: Move point forward ARG words (backward if ARG is negative).
ibuffer-forward-filter-group  M-x ... RET
  Command: Move point forwards by COUNT filtering groups.
ibuffer-forward-next-marked   M-x ... RET
  Command: Move forward by COUNT marked buffers (default 1).
ido-magic-forward-char        M-x ... RET
  Command: Move forward in user input or perform magic action.
isearch-forward               M-o <menu-bar> <edit> <search> <i-search> <isearch-forward>, <menu-bar> <edit> <search> <i-search> <isearch-forward>, M-o C-s, C-s
  Command: Do incremental search forward.
isearch-forward-exit-minibuffer M-x ... RET
  Command: (not documented)
isearch-forward-regexp        M-o <menu-bar> <edit> <search> <i-search> <isearch-forward-regexp>, <menu-bar> <edit> <search> <i-search> <isearch-forward-regexp>, M-o C-M-s, C-M-s
  Command: Do incremental search forward for regular expression.
isearch-repeat-forward        M-x ... RET
  Command: Repeat incremental search forwards.
message-forward               M-x ... RET
  Command: Forward the current message via mail.
nonincremental-re-search-forward M-o <menu-bar> <edit> <search> <re-search-forward>, <menu-bar> <edit> <search> <re-search-forward>
  Command: Read a regular expression and search for it nonincrementally.
nonincremental-repeat-search-forward M-o <menu-bar> <edit> <search> <repeat-search-fwd>, <menu-bar> <edit> <search> <repeat-search-fwd>
  Command: Search forward for the previous search string or regexp.
nonincremental-search-forward M-o <menu-bar> <edit> <search> <search-forward>, <menu-bar> <edit> <search> <search-forward>
  Command: Read a string and search for it nonincrementally.
posix-search-forward          M-x ... RET
  Command: Search forward from point for regular expression REGEXP.
re-search-forward             M-x ... RET
  Command: Search forward from point for regular expression REGEXP.
search-forward                M-o <find>, <find>
  Command: Search forward from point for STRING.
search-forward-regexp         M-x ... RET
  Command: Search forward from point for regular expression REGEXP.
senator-re-search-forward     M-x ... RET
  Command: Search in tag names forward from point for regular expression REGEXP.
senator-search-forward        M-x ... RET
  Command: Search in tag names forward from point for STRING.
senator-word-search-forward   M-x ... RET
  Command: Search in tag names forward from point for WORD.
speedbar-forward-list         M-x ... RET
  Command: Move forward over the current list.
tabbar-forward                M-x ... RET
  Command: Select the next available tab.
tabbar-forward-group          M-x ... RET
  Command: Go to selected tab in the next available group.
tabbar-forward-tab            M-x ... RET
  Command: Select the next visible tab.
table-forward-cell            M-x ... RET
  Command: Move point forward to the beginning of the next cell.
unforward-rmail-message       M-x ... RET
  Command: Extract a forwarded message from the containing message.
widget-forward                M-x ... RET
  Command: Move point to the next field or button.
word-search-forward           M-x ... RET
  Command: Search forward from point for STRING, ignoring differences in punctuation.







^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2008-06-03 13:52 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-29  9:28 Gnu Emacs and Vista ASLR feature Fabrice Popineau
2008-05-29 10:26 ` Jason Rumney
2008-05-29 10:38   ` David Kastrup
2008-05-29 10:52     ` Fabrice Popineau
2008-05-29 11:13       ` Jason Rumney
2008-05-29 11:12     ` Jason Rumney
2008-05-29 12:07       ` Fabrice Popineau
2008-05-29 13:42         ` Jason Rumney
2008-05-29 14:33           ` Fabrice Popineau
2008-05-29 13:20       ` dhruva
2008-05-29 17:45       ` Eli Zaretskii
2008-05-29 17:47   ` Eli Zaretskii
2008-05-29 22:46     ` David Kastrup
2008-06-02  9:59       ` Fabrice Popineau
2008-06-02 12:00         ` John S. Yates, Jr.
2008-06-02 12:09           ` David Kastrup
2008-06-02 14:27           ` Stefan Monnier
2008-06-02 17:23             ` Eli Zaretskii
2008-06-03 13:52             ` John S. Yates, Jr.
2008-05-29 17:48 ` Stephen J. Turnbull
2008-06-02 10:03   ` Fabrice Popineau
2008-05-30  1:00 ` Richard M Stallman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).