* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
@ 2015-06-18 8:37 Sebastien Vauban
2015-06-18 8:57 ` Eli Zaretskii
0 siblings, 1 reply; 23+ messages in thread
From: Sebastien Vauban @ 2015-06-18 8:37 UTC (permalink / raw)
To: 20843-ubl+/3LiMTaZdePnXv/OxA
When trying to start the profiler under Cygwin Emacs 24.5, I get this:
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (error "Invalid sampling interval")
profiler-cpu-start(1000000)
profiler-start(cpu)
call-interactively(profiler-start record nil)
#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764](profiler-start record nil nil)
funcall(#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] profiler-start record nil nil)
(with-no-warnings (funcall ad--addoit-function cmd record-flag keys special))
(setq ad-return-value (with-no-warnings (funcall ad--addoit-function cmd record-flag keys special)))
(let (ad-return-value) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function cmd record-flag keys special))) (when (fancy-narrow-active-p) (fancy-narrow--motion-function)) ad-return-value)
ad-Advice-command-execute(#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] profiler-start record)
apply(ad-Advice-command-execute #[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] (profiler-start record))
command-execute(profiler-start record)
(progn (command-execute sym-com (quote record)))
(if helm-M-x-always-save-history (progn (command-execute sym-com (quote record))))
(let ((prefix-arg (or helm-current-prefix-arg arg))) (if helm-M-x-always-save-history nil (command-execute sym-com (quote record))) (setq extended-command-history (cons command-name (delete command-name extended-command-history))) (if helm-M-x-always-save-history (progn (command-execute sym-com (quote record)))))
(let ((sym-com (and (stringp command-name) (intern-soft command-name)))) (setq this-command sym-com real-this-command sym-com) (let ((prefix-arg (or helm-current-prefix-arg arg))) (if helm-M-x-always-save-history nil (command-execute sym-com (quote record))) (setq extended-command-history (cons command-name (delete command-name extended-command-history))) (if helm-M-x-always-save-history (progn (command-execute sym-com (quote record))))))
helm-M-x(nil "profiler-start")
call-interactively(helm-M-x nil nil)
#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764](helm-M-x nil nil nil)
funcall(#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] helm-M-x nil nil nil)
(with-no-warnings (funcall ad--addoit-function cmd record-flag keys special))
(setq ad-return-value (with-no-warnings (funcall ad--addoit-function cmd record-flag keys special)))
(let (ad-return-value) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function cmd record-flag keys special))) (when (fancy-narrow-active-p) (fancy-narrow--motion-function)) ad-return-value)
ad-Advice-command-execute(#[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] helm-M-x)
apply(ad-Advice-command-execute #[1025 "\306\211?\205\f \211\306\x049\203!\x04\307N\203!\v\203!\310\303!\202\235\x04\311!\262\211\211\242\312=\262\203<\313\x06\a\"\211\262\204\"\314!\203l\x04\203e\315\x03E\fB\r\247\203e\r\316V\203e\r\f\233\211:\203d\211\306\241\210\210\315\x03\"\202\233\317\x06\x06\x06#\x069\203\233\x06\320N\203\233\x06\321N\204\233\322\a\321\323#\210\324\325\326 \211\320N\327#\"\210\262\207" [debug-on-next-call prefix-arg current-prefix-arg disabled-command-function command-history history-length nil disabled run-hooks indirect-function autoload autoload-do-load arrayp execute-kbd-macro 0 call-interactively byte-obsolete-info command-execute-obsolete-warned put t message "%s" macroexp--obsolete-warning "command"] 13 1990764] helm-M-x)
command-execute(helm-M-x)
--8<---------------cut here---------------end--------------->8---
In GNU Emacs 24.5.1 (x86_64-unknown-cygwin)
of 2015-04-10 on desktop-new
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-18 8:37 bug#20843: 24.5; Profiler error: "Invalid sampling interval" Sebastien Vauban
@ 2015-06-18 8:57 ` Eli Zaretskii
[not found] ` <83k2v1l7g4.fsf-mXXj517/zsQ@public.gmane.org>
` (2 more replies)
0 siblings, 3 replies; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-18 8:57 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: 20843
> From: Sebastien Vauban <sva-news@mygooglest.com>
> Date: Thu, 18 Jun 2015 10:37:02 +0200
>
> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
>
> --8<---------------cut here---------------start------------->8---
> Debugger entered--Lisp error: (error "Invalid sampling interval")
> profiler-cpu-start(1000000)
> profiler-start(cpu)
> call-interactively(profiler-start record nil)
Can you step with GDB into setup_cpu_timer, and see what goes wrong
there? I suspect this portions:
if (! RANGED_INTEGERP (1, sampling_interval,
(TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
+ (billion - 1))
: EMACS_INT_MAX)))
return NOT_RUNNING;
If so, what does TYPE_MAXIMUM(time_t) return in your build?
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
[not found] ` <83k2v1l7g4.fsf-mXXj517/zsQ@public.gmane.org>
@ 2015-06-18 11:58 ` Sebastien Vauban
0 siblings, 0 replies; 23+ messages in thread
From: Sebastien Vauban @ 2015-06-18 11:58 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 20843-ubl+/3LiMTaZdePnXv/OxA
Eli Zaretskii <eliz-mXXj517/zsQ@public.gmane.org> writes:
>> From: Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
>>
>> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
>>
>> --8<---------------cut here---------------start------------->8---
>> Debugger entered--Lisp error: (error "Invalid sampling interval")
>> profiler-cpu-start(1000000)
>> profiler-start(cpu)
>> call-interactively(profiler-start record nil)
>
> Can you step with GDB into setup_cpu_timer, and see what goes wrong
> there? I suspect this portions:
>
> if (! RANGED_INTEGERP (1, sampling_interval,
> (TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
> ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
> + (billion - 1))
> : EMACS_INT_MAX)))
> return NOT_RUNNING;
>
> If so, what does TYPE_MAXIMUM(time_t) return in your build?
Sorry, I can't -- lack of time, and (moreover) of knowledge...
PS- Dunno if this is somehow related, but my Cygwin Emacs is very slow
ATM -- sometimes waiting for 5 seconds or so before seeing a reaction to
the char I just typed, though often as quick as always. That was why
I wanted to run a profiler...
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
[not found] ` <mailman.5225.1434628753.904.bug-gnu-emacs-mXXj517/zsQ@public.gmane.org>
@ 2015-06-19 13:38 ` Sebastien Vauban
2015-06-19 17:42 ` Eli Zaretskii
0 siblings, 1 reply; 23+ messages in thread
From: Sebastien Vauban @ 2015-06-19 13:38 UTC (permalink / raw)
To: Eli Zaretskii, 20843-ubl+/3LiMTaZdePnXv/OxA
Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org> writes:
> Eli Zaretskii <eliz-mXXj517/zsQ@public.gmane.org> writes:
>>> From: Sebastien Vauban <sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org>
>>>
>>> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
>>>
>>> --8<---------------cut here---------------start------------->8---
>>> Debugger entered--Lisp error: (error "Invalid sampling interval")
>>> profiler-cpu-start(1000000)
>>> profiler-start(cpu)
>>> call-interactively(profiler-start record nil)
>>
>> Can you step with GDB into setup_cpu_timer, and see what goes wrong
>> there? I suspect this portions:
>>
>> if (! RANGED_INTEGERP (1, sampling_interval,
>> (TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
>> ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
>> + (billion - 1))
>> : EMACS_INT_MAX)))
>> return NOT_RUNNING;
>>
>> If so, what does TYPE_MAXIMUM(time_t) return in your build?
>
> Sorry, I can't -- lack of time, and (moreover) of knowledge...
Eli, if you can give me a couple of instructions on how to step into
that function ("when I should type what?"), I'm willing to give it
a try, as this is reproducible over different Emacs sessions...
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-19 13:38 ` Sebastien Vauban
@ 2015-06-19 17:42 ` Eli Zaretskii
0 siblings, 0 replies; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-19 17:42 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: 20843
> From: Sebastien Vauban <sva-news@mygooglest.com>
> Date: Fri, 19 Jun 2015 15:38:32 +0200
>
> >> Can you step with GDB into setup_cpu_timer, and see what goes wrong
> >> there? I suspect this portions:
> >>
> >> if (! RANGED_INTEGERP (1, sampling_interval,
> >> (TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
> >> ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
> >> + (billion - 1))
> >> : EMACS_INT_MAX)))
> >> return NOT_RUNNING;
> >>
> >> If so, what does TYPE_MAXIMUM(time_t) return in your build?
> >
> > Sorry, I can't -- lack of time, and (moreover) of knowledge...
>
> Eli, if you can give me a couple of instructions on how to step into
> that function ("when I should type what?"), I'm willing to give it
> a try, as this is reproducible over different Emacs sessions...
Like this:
$ cd /path/to/emacs/src
$ gdb ./emacs.exe
(gdb) break setup_cpu_timer
(gdb) run -Q
Inside Emacs, type:
M-x profiler-start RET RET
Then GDB will get control, because profiler-start calls
setup_cpu_timer. Then type at GDB prompt:
(gdb) next
(gdb) p TYPE_MAXIMUM(time_t)
(gdb) p EMACS_INT_MAX
(gdb) p EMACS_INT_MAX/billion
(gdb) p sampling_interval
(gdb) next
(gdb) next
and continue stepping until it returns. Then post here everything you
see during this session.
Thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-18 8:57 ` Eli Zaretskii
[not found] ` <83k2v1l7g4.fsf-mXXj517/zsQ@public.gmane.org>
[not found] ` <mailman.5225.1434628753.904.bug-gnu-emacs@gnu.org>
@ 2015-06-20 19:02 ` Ken Brown
2015-06-20 19:10 ` Eli Zaretskii
2 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-20 19:02 UTC (permalink / raw)
To: Eli Zaretskii, Sebastien Vauban; +Cc: 20843
On 6/18/2015 4:57 AM, Eli Zaretskii wrote:
>> From: Sebastien Vauban <sva-news@mygooglest.com>
>> Date: Thu, 18 Jun 2015 10:37:02 +0200
>>
>> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
>>
>> --8<---------------cut here---------------start------------->8---
>> Debugger entered--Lisp error: (error "Invalid sampling interval")
>> profiler-cpu-start(1000000)
>> profiler-start(cpu)
>> call-interactively(profiler-start record nil)
>
> Can you step with GDB into setup_cpu_timer, and see what goes wrong
> there? I suspect this portions:
[...]
No, the problem is that Cygwin's setitimer supports only ITIMER_REAL, so
the call to setitimer(ITIMER_PROF,...) in profiler.c:315 fails.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-20 19:02 ` Ken Brown
@ 2015-06-20 19:10 ` Eli Zaretskii
2015-06-20 21:47 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-20 19:10 UTC (permalink / raw)
To: Ken Brown; +Cc: sva-news, 20843
> Date: Sat, 20 Jun 2015 15:02:28 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: 20843@debbugs.gnu.org
>
> On 6/18/2015 4:57 AM, Eli Zaretskii wrote:
> >> From: Sebastien Vauban <sva-news@mygooglest.com>
> >> Date: Thu, 18 Jun 2015 10:37:02 +0200
> >>
> >> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> Debugger entered--Lisp error: (error "Invalid sampling interval")
> >> profiler-cpu-start(1000000)
> >> profiler-start(cpu)
> >> call-interactively(profiler-start record nil)
> >
> > Can you step with GDB into setup_cpu_timer, and see what goes wrong
> > there? I suspect this portions:
> [...]
>
> No, the problem is that Cygwin's setitimer supports only ITIMER_REAL, so
> the call to setitimer(ITIMER_PROF,...) in profiler.c:315 fails.
Then I guess the configure-time test for setitimer should also test
for ITIMER_PROF. Also, the diagnostics should be improved, as the
wording is misleading in that case.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-20 19:10 ` Eli Zaretskii
@ 2015-06-20 21:47 ` Ken Brown
2015-06-21 14:56 ` Eli Zaretskii
0 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-20 21:47 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/20/2015 3:10 PM, Eli Zaretskii wrote:
>> Date: Sat, 20 Jun 2015 15:02:28 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> CC: 20843@debbugs.gnu.org
>>
>> On 6/18/2015 4:57 AM, Eli Zaretskii wrote:
>>>> From: Sebastien Vauban <sva-news@mygooglest.com>
>>>> Date: Thu, 18 Jun 2015 10:37:02 +0200
>>>>
>>>> When trying to start the profiler under Cygwin Emacs 24.5, I get this:
>>>>
>>>> --8<---------------cut here---------------start------------->8---
>>>> Debugger entered--Lisp error: (error "Invalid sampling interval")
>>>> profiler-cpu-start(1000000)
>>>> profiler-start(cpu)
>>>> call-interactively(profiler-start record nil)
>>>
>>> Can you step with GDB into setup_cpu_timer, and see what goes wrong
>>> there? I suspect this portions:
>> [...]
>>
>> No, the problem is that Cygwin's setitimer supports only ITIMER_REAL, so
>> the call to setitimer(ITIMER_PROF,...) in profiler.c:315 fails.
>
> Then I guess the configure-time test for setitimer should also test
> for ITIMER_PROF.
I'd be glad to give this a try, but I don't have any experience writing
autoconf macros. Is there a standard macro to test whether a function
accepts a particular argument? If not, can you (or anyone) point me to
an example that I can imitate?
> Also, the diagnostics should be improved, as the
> wording is misleading in that case.
As it stands, profiler-cpu-start reports "Invalid sampling interval"
whenever setup_cpu_timer fails to start the timer, regardless of the
reason. I'll try to improve this.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-20 21:47 ` Ken Brown
@ 2015-06-21 14:56 ` Eli Zaretskii
2015-06-21 22:17 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-21 14:56 UTC (permalink / raw)
To: Ken Brown; +Cc: sva-news, 20843
> Date: Sat, 20 Jun 2015 17:47:21 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>
> > Then I guess the configure-time test for setitimer should also test
> > for ITIMER_PROF.
>
> I'd be glad to give this a try, but I don't have any experience writing
> autoconf macros. Is there a standard macro to test whether a function
> accepts a particular argument? If not, can you (or anyone) point me to
> an example that I can imitate?
Actually, perhaps I misunderstood you: are you saying that Cygwin does
have ITIMER_PROF defined in the appropriate header, but when setitimer
is called with it, it always fails? If so, we cannot test this at
configure time, because it means we will have to run a program, which
is not a good idea.
So in that case, I think we should simply disable the CPU profiler on
Cygwin using "#ifndef __CYGWIN__" or some such.
> > Also, the diagnostics should be improved, as the
> > wording is misleading in that case.
>
> As it stands, profiler-cpu-start reports "Invalid sampling interval"
> whenever setup_cpu_timer fails to start the timer, regardless of the
> reason. I'll try to improve this.
Yes, please.
Thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-21 14:56 ` Eli Zaretskii
@ 2015-06-21 22:17 ` Ken Brown
[not found] ` <558737F7.4080709-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
2015-06-22 15:35 ` Eli Zaretskii
0 siblings, 2 replies; 23+ messages in thread
From: Ken Brown @ 2015-06-21 22:17 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/21/2015 10:56 AM, Eli Zaretskii wrote:
>> Date: Sat, 20 Jun 2015 17:47:21 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>>
>>> Then I guess the configure-time test for setitimer should also test
>>> for ITIMER_PROF.
>>
>> I'd be glad to give this a try, but I don't have any experience writing
>> autoconf macros. Is there a standard macro to test whether a function
>> accepts a particular argument? If not, can you (or anyone) point me to
>> an example that I can imitate?
>
> Actually, perhaps I misunderstood you: are you saying that Cygwin does
> have ITIMER_PROF defined in the appropriate header, but when setitimer
> is called with it, it always fails?
Yes.
> If so, we cannot test this at
> configure time, because it means we will have to run a program, which
> is not a good idea.
>
> So in that case, I think we should simply disable the CPU profiler on
> Cygwin using "#ifndef __CYGWIN__" or some such.
Done as commit 5fac0de.
>>> Also, the diagnostics should be improved, as the
>>> wording is misleading in that case.
>>
>> As it stands, profiler-cpu-start reports "Invalid sampling interval"
>> whenever setup_cpu_timer fails to start the timer, regardless of the
>> reason. I'll try to improve this.
>
> Yes, please.
How's this:
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -250,6 +250,8 @@ deliver_profiler_signal (int signal)
deliver_process_signal (signal, handle_profiler_signal);
}
+static bool sampling_interval_ok;
+
static enum profiler_cpu_running
setup_cpu_timer (Lisp_Object sampling_interval)
{
@@ -258,11 +260,13 @@ setup_cpu_timer (Lisp_Object sampling_interval)
struct timespec interval;
int billion = 1000000000;
- if (! RANGED_INTEGERP (1, sampling_interval,
- (TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
- ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
- + (billion - 1))
- : EMACS_INT_MAX)))
+ sampling_interval_ok =
+ RANGED_INTEGERP (1, sampling_interval,
+ (TYPE_MAXIMUM (time_t) < EMACS_INT_MAX / billion
+ ? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
+ + (billion - 1))
+ : EMACS_INT_MAX));
+ if (! sampling_interval_ok)
return NOT_RUNNING;
current_sampling_interval = XINT (sampling_interval);
@@ -338,7 +342,12 @@ See also `profiler-log-size' and
`profiler-max-stack-depth'. */)
profiler_cpu_running = setup_cpu_timer (sampling_interval);
if (! profiler_cpu_running)
- error ("Invalid sampling interval");
+ {
+ if (! sampling_interval_ok)
+ error ("Invalid sampling interval");
+ else
+ error ("Unable to start profiler timer");
+ }
return Qt;
}
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
[not found] ` <558737F7.4080709-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
@ 2015-06-22 8:00 ` Sebastien Vauban
2015-06-22 11:57 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Sebastien Vauban @ 2015-06-22 8:00 UTC (permalink / raw)
To: Ken Brown; +Cc: 20843-ubl+/3LiMTaZdePnXv/OxA
Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org> writes:
> On 6/21/2015 10:56 AM, Eli Zaretskii wrote:
>>> Date: Sat, 20 Jun 2015 17:47:21 -0400
>>> From: Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
>>> CC: sva-news-D0wtAvR13HarG/iDocfnWg@public.gmane.org, 20843-ubl+/3LiMTaZdePnXv/OxA@public.gmane.org
>>>
>>>> Then I guess the configure-time test for setitimer should also test
>>>> for ITIMER_PROF.
>>>
>>> I'd be glad to give this a try, but I don't have any experience writing
>>> autoconf macros. Is there a standard macro to test whether a function
>>> accepts a particular argument? If not, can you (or anyone) point me to
>>> an example that I can imitate?
>>
>> Actually, perhaps I misunderstood you: are you saying that Cygwin does
>> have ITIMER_PROF defined in the appropriate header, but when setitimer
>> is called with it, it always fails?
>
> Yes.
>
>> If so, we cannot test this at
>> configure time, because it means we will have to run a program, which
>> is not a good idea.
>>
>> So in that case, I think we should simply disable the CPU profiler on
>> Cygwin using "#ifndef __CYGWIN__" or some such.
>
> Done as commit 5fac0de.
>
>>>> Also, the diagnostics should be improved, as the
>>>> wording is misleading in that case.
>>>
>>> As it stands, profiler-cpu-start reports "Invalid sampling interval"
>>> whenever setup_cpu_timer fails to start the timer, regardless of the
>>> reason. I'll try to improve this.
>>
>> Yes, please.
For me to understand, does this mean we never will be able to start the
profiler under Cygwin Emacs?
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 8:00 ` Sebastien Vauban
@ 2015-06-22 11:57 ` Ken Brown
2015-06-22 15:12 ` Eli Zaretskii
0 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-22 11:57 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: 20843
On 6/22/2015 4:00 AM, Sebastien Vauban wrote:
> Ken Brown <kbrown@cornell.edu> writes:
>> On 6/21/2015 10:56 AM, Eli Zaretskii wrote:
>>>> Date: Sat, 20 Jun 2015 17:47:21 -0400
>>>> From: Ken Brown <kbrown@cornell.edu>
>>>> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>>>>
>>>>> Then I guess the configure-time test for setitimer should also test
>>>>> for ITIMER_PROF.
>>>>
>>>> I'd be glad to give this a try, but I don't have any experience writing
>>>> autoconf macros. Is there a standard macro to test whether a function
>>>> accepts a particular argument? If not, can you (or anyone) point me to
>>>> an example that I can imitate?
>>>
>>> Actually, perhaps I misunderstood you: are you saying that Cygwin does
>>> have ITIMER_PROF defined in the appropriate header, but when setitimer
>>> is called with it, it always fails?
>>
>> Yes.
>>
>>> If so, we cannot test this at
>>> configure time, because it means we will have to run a program, which
>>> is not a good idea.
>>>
>>> So in that case, I think we should simply disable the CPU profiler on
>>> Cygwin using "#ifndef __CYGWIN__" or some such.
>>
>> Done as commit 5fac0de.
>>
>>>>> Also, the diagnostics should be improved, as the
>>>>> wording is misleading in that case.
>>>>
>>>> As it stands, profiler-cpu-start reports "Invalid sampling interval"
>>>> whenever setup_cpu_timer fails to start the timer, regardless of the
>>>> reason. I'll try to improve this.
>>>
>>> Yes, please.
>
> For me to understand, does this mean we never will be able to start the
> profiler under Cygwin Emacs?
I wouldn't say "never". According to the Cygwin API documentation
(https://cygwin.com/cygwin-api/std-notes.html), "getitimer and setitimer only
support ITIMER_REAL for now." I'll ask on the Cygwin list about the possibility
of supporting ITIMER_PROF.
Ken
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 11:57 ` Ken Brown
@ 2015-06-22 15:12 ` Eli Zaretskii
2015-06-22 21:15 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-22 15:12 UTC (permalink / raw)
To: Ken Brown; +Cc: sva-news, 20843
> Date: Mon, 22 Jun 2015 07:57:13 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: Eli Zaretskii <eliz@gnu.org>, 20843@debbugs.gnu.org
>
> > For me to understand, does this mean we never will be able to start the
> > profiler under Cygwin Emacs?
>
> I wouldn't say "never". According to the Cygwin API documentation
> (https://cygwin.com/cygwin-api/std-notes.html), "getitimer and setitimer only
> support ITIMER_REAL for now." I'll ask on the Cygwin list about the possibility
> of supporting ITIMER_PROF.
If what Corinna suggested on the Cygwin list doesn't fit the bill,
perhaps consider reusing the w32 code, which emulates setitimer, and
does support ITIMER_PROF well enough for the profiler to be usable.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-21 22:17 ` Ken Brown
[not found] ` <558737F7.4080709-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
@ 2015-06-22 15:35 ` Eli Zaretskii
2015-06-22 18:04 ` Ken Brown
1 sibling, 1 reply; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-22 15:35 UTC (permalink / raw)
To: Ken Brown; +Cc: sva-news, 20843
> Date: Sun, 21 Jun 2015 18:17:27 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>
> > If so, we cannot test this at
> > configure time, because it means we will have to run a program, which
> > is not a good idea.
> >
> > So in that case, I think we should simply disable the CPU profiler on
> > Cygwin using "#ifndef __CYGWIN__" or some such.
>
> Done as commit 5fac0de.
Thanks.
> >>> Also, the diagnostics should be improved, as the
> >>> wording is misleading in that case.
> >>
> >> As it stands, profiler-cpu-start reports "Invalid sampling interval"
> >> whenever setup_cpu_timer fails to start the timer, regardless of the
> >> reason. I'll try to improve this.
> >
> > Yes, please.
>
> How's this:
Looks fine, but perhaps it would be cleaner to return the actual
message string or some distinctive code from setup_cpu_timer. This
would avoid the need for a global variable.
Thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 15:35 ` Eli Zaretskii
@ 2015-06-22 18:04 ` Ken Brown
2015-06-22 18:50 ` Eli Zaretskii
0 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-22 18:04 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/22/2015 11:35 AM, Eli Zaretskii wrote:
>> Date: Sun, 21 Jun 2015 18:17:27 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>>
>>> If so, we cannot test this at
>>> configure time, because it means we will have to run a program, which
>>> is not a good idea.
>>>
>>> So in that case, I think we should simply disable the CPU profiler on
>>> Cygwin using "#ifndef __CYGWIN__" or some such.
>>
>> Done as commit 5fac0de.
>
> Thanks.
>
>>>>> Also, the diagnostics should be improved, as the
>>>>> wording is misleading in that case.
>>>>
>>>> As it stands, profiler-cpu-start reports "Invalid sampling interval"
>>>> whenever setup_cpu_timer fails to start the timer, regardless of the
>>>> reason. I'll try to improve this.
>>>
>>> Yes, please.
>>
>> How's this:
>
> Looks fine, but perhaps it would be cleaner to return the actual
> message string or some distinctive code from setup_cpu_timer. This
> would avoid the need for a global variable.
Is this better?
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -250,7 +250,7 @@ deliver_profiler_signal (int signal)
deliver_process_signal (signal, handle_profiler_signal);
}
-static enum profiler_cpu_running
+static int
setup_cpu_timer (Lisp_Object sampling_interval)
{
struct sigaction action;
@@ -263,7 +263,7 @@ setup_cpu_timer (Lisp_Object sampling_interval)
? ((EMACS_INT) TYPE_MAXIMUM (time_t) * billion
+ (billion - 1))
: EMACS_INT_MAX)))
- return NOT_RUNNING;
+ return -1;
current_sampling_interval = XINT (sampling_interval);
interval = make_timespec (current_sampling_interval / billion,
@@ -336,9 +336,18 @@ See also `profiler-log-size' and
`profiler-max-stack-depth'. */)
profiler_max_stack_depth);
}
- profiler_cpu_running = setup_cpu_timer (sampling_interval);
- if (! profiler_cpu_running)
- error ("Invalid sampling interval");
+ int status = setup_cpu_timer (sampling_interval);
+ if (status == -1)
+ {
+ profiler_cpu_running = NOT_RUNNING;
+ error ("Invalid sampling interval");
+ }
+ else
+ {
+ profiler_cpu_running = status;
+ if (! profiler_cpu_running)
+ error ("Unable to start profiler timer");
+ }
return Qt;
}
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 18:04 ` Ken Brown
@ 2015-06-22 18:50 ` Eli Zaretskii
2015-06-22 19:30 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Eli Zaretskii @ 2015-06-22 18:50 UTC (permalink / raw)
To: Ken Brown; +Cc: sva-news, 20843
> Date: Mon, 22 Jun 2015 14:04:50 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>
> > Looks fine, but perhaps it would be cleaner to return the actual
> > message string or some distinctive code from setup_cpu_timer. This
> > would avoid the need for a global variable.
>
> Is this better?
Yes, thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 18:50 ` Eli Zaretskii
@ 2015-06-22 19:30 ` Ken Brown
0 siblings, 0 replies; 23+ messages in thread
From: Ken Brown @ 2015-06-22 19:30 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/22/2015 2:50 PM, Eli Zaretskii wrote:
>> Date: Mon, 22 Jun 2015 14:04:50 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> CC: sva-news@mygooglest.com, 20843@debbugs.gnu.org
>>
>>> Looks fine, but perhaps it would be cleaner to return the actual
>>> message string or some distinctive code from setup_cpu_timer. This
>>> would avoid the need for a global variable.
>>
>> Is this better?
>
> Yes, thanks.
Pushed as commit dc30fb92. I'm not closing the bug yet, because I still want to
follow up on your suggestion about reusing the w32 code.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 15:12 ` Eli Zaretskii
@ 2015-06-22 21:15 ` Ken Brown
2015-06-22 21:44 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-22 21:15 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/22/2015 11:12 AM, Eli Zaretskii wrote:
>> Date: Mon, 22 Jun 2015 07:57:13 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> CC: Eli Zaretskii <eliz@gnu.org>, 20843@debbugs.gnu.org
>>
>>> For me to understand, does this mean we never will be able to start the
>>> profiler under Cygwin Emacs?
>>
>> I wouldn't say "never". According to the Cygwin API documentation
>> (https://cygwin.com/cygwin-api/std-notes.html), "getitimer and setitimer only
>> support ITIMER_REAL for now." I'll ask on the Cygwin list about the possibility
>> of supporting ITIMER_PROF.
>
> If what Corinna suggested on the Cygwin list doesn't fit the bill,
> perhaps consider reusing the w32 code, which emulates setitimer, and
> does support ITIMER_PROF well enough for the profiler to be usable.
Corinna's suggestion seems to work. I'll apply a patch shortly so that Seb can
test it.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-22 21:15 ` Ken Brown
@ 2015-06-22 21:44 ` Ken Brown
[not found] ` <558881B0.6080404-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
0 siblings, 1 reply; 23+ messages in thread
From: Ken Brown @ 2015-06-22 21:44 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: sva-news, 20843
On 6/22/2015 5:15 PM, Ken Brown wrote:
> On 6/22/2015 11:12 AM, Eli Zaretskii wrote:
>>> Date: Mon, 22 Jun 2015 07:57:13 -0400
>>> From: Ken Brown <kbrown@cornell.edu>
>>> CC: Eli Zaretskii <eliz@gnu.org>, 20843@debbugs.gnu.org
>>>
>>>> For me to understand, does this mean we never will be able to start the
>>>> profiler under Cygwin Emacs?
>>>
>>> I wouldn't say "never". According to the Cygwin API documentation
>>> (https://cygwin.com/cygwin-api/std-notes.html), "getitimer and setitimer only
>>> support ITIMER_REAL for now." I'll ask on the Cygwin list about the possibility
>>> of supporting ITIMER_PROF.
>>
>> If what Corinna suggested on the Cygwin list doesn't fit the bill,
>> perhaps consider reusing the w32 code, which emulates setitimer, and
>> does support ITIMER_PROF well enough for the profiler to be usable.
>
> Corinna's suggestion seems to work. I'll apply a patch shortly so that Seb can
> test it.
Done as commit 531125e4c. Seb, are you able to build emacs and test this? If
not, I can make a test release available in the Cygwin distribution.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
[not found] ` <558881B0.6080404-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
@ 2015-06-23 8:39 ` Sebastien Vauban
2015-06-23 17:20 ` Ken Brown
[not found] ` <mailman.5513.1435080075.904.bug-gnu-emacs@gnu.org>
0 siblings, 2 replies; 23+ messages in thread
From: Sebastien Vauban @ 2015-06-23 8:39 UTC (permalink / raw)
To: Ken Brown; +Cc: 20843-ubl+/3LiMTaZdePnXv/OxA
Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org> writes:
> On 6/22/2015 5:15 PM, Ken Brown wrote:
>> On 6/22/2015 11:12 AM, Eli Zaretskii wrote:
>>>> Date: Mon, 22 Jun 2015 07:57:13 -0400
>>>> From: Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
>>>> CC: Eli Zaretskii <eliz-mXXj517/zsQ@public.gmane.org>, 20843-ubl+/3LiMTaZdePnXv/OxA@public.gmane.org
>>>>
>>>>> For me to understand, does this mean we never will be able to start the
>>>>> profiler under Cygwin Emacs?
>>>>
>>>> I wouldn't say "never". According to the Cygwin API documentation
>>>> (https://cygwin.com/cygwin-api/std-notes.html), "getitimer and setitimer only
>>>> support ITIMER_REAL for now." I'll ask on the Cygwin list about the possibility
>>>> of supporting ITIMER_PROF.
>>>
>>> If what Corinna suggested on the Cygwin list doesn't fit the bill,
>>> perhaps consider reusing the w32 code, which emulates setitimer, and
>>> does support ITIMER_PROF well enough for the profiler to be usable.
>>
>> Corinna's suggestion seems to work. I'll apply a patch shortly so
>> that Seb can test it.
>
> Done as commit 531125e4c. Seb, are you able to build emacs and test
> this?
No, not ATM.
> If not, I can make a test release available in the Cygwin
> distribution.
That'd be great! Just tell me when/what to test.
Best regards,
Seb
--
Sebastien Vauban
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-06-23 8:39 ` Sebastien Vauban
@ 2015-06-23 17:20 ` Ken Brown
[not found] ` <mailman.5513.1435080075.904.bug-gnu-emacs@gnu.org>
1 sibling, 0 replies; 23+ messages in thread
From: Ken Brown @ 2015-06-23 17:20 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: 20843
On 6/23/2015 4:39 AM, Sebastien Vauban wrote:
> Ken Brown <kbrown@cornell.edu> writes:
>> If not, I can make a test release available in the Cygwin
>> distribution.
>
> That'd be great! Just tell me when/what to test.
It's now available in the Cygwin distribution as a test release
(emacs-24.5-2). The official announcement is on its way.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
[not found] ` <mailman.5513.1435080075.904.bug-gnu-emacs-mXXj517/zsQ@public.gmane.org>
@ 2015-07-02 13:27 ` Sebastien Vauban
2015-07-02 13:59 ` Ken Brown
0 siblings, 1 reply; 23+ messages in thread
From: Sebastien Vauban @ 2015-07-02 13:27 UTC (permalink / raw)
To: Ken Brown; +Cc: 20843-ubl+/3LiMTaZdePnXv/OxA
close #20843
Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org> writes:
> On 6/23/2015 4:39 AM, Sebastien Vauban wrote:
>> Ken Brown <kbrown-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org> writes:
>>> If not, I can make a test release available in the Cygwin
>>> distribution.
>>
>> That'd be great! Just tell me when/what to test.
>
> It's now available in the Cygwin distribution as a test release (emacs-24.5-2).
> The official announcement is on its way.
Tested. Works. Thanks!
Best regards,
Seb
--
Sebastien Vauban
^ permalink raw reply [flat|nested] 23+ messages in thread
* bug#20843: 24.5; Profiler error: "Invalid sampling interval"
2015-07-02 13:27 ` Sebastien Vauban
@ 2015-07-02 13:59 ` Ken Brown
0 siblings, 0 replies; 23+ messages in thread
From: Ken Brown @ 2015-07-02 13:59 UTC (permalink / raw)
To: Sebastien Vauban; +Cc: 20843-done
On 7/2/2015 9:27 AM, Sebastien Vauban wrote:
> Tested. Works. Thanks!
Thanks for testing.
Ken
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2015-07-02 13:59 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-18 8:37 bug#20843: 24.5; Profiler error: "Invalid sampling interval" Sebastien Vauban
2015-06-18 8:57 ` Eli Zaretskii
[not found] ` <83k2v1l7g4.fsf-mXXj517/zsQ@public.gmane.org>
2015-06-18 11:58 ` Sebastien Vauban
[not found] ` <mailman.5225.1434628753.904.bug-gnu-emacs@gnu.org>
[not found] ` <mailman.5225.1434628753.904.bug-gnu-emacs-mXXj517/zsQ@public.gmane.org>
2015-06-19 13:38 ` Sebastien Vauban
2015-06-19 17:42 ` Eli Zaretskii
2015-06-20 19:02 ` Ken Brown
2015-06-20 19:10 ` Eli Zaretskii
2015-06-20 21:47 ` Ken Brown
2015-06-21 14:56 ` Eli Zaretskii
2015-06-21 22:17 ` Ken Brown
[not found] ` <558737F7.4080709-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
2015-06-22 8:00 ` Sebastien Vauban
2015-06-22 11:57 ` Ken Brown
2015-06-22 15:12 ` Eli Zaretskii
2015-06-22 21:15 ` Ken Brown
2015-06-22 21:44 ` Ken Brown
[not found] ` <558881B0.6080404-HmMyXyqgL2CVc3sceRu5cw@public.gmane.org>
2015-06-23 8:39 ` Sebastien Vauban
2015-06-23 17:20 ` Ken Brown
[not found] ` <mailman.5513.1435080075.904.bug-gnu-emacs@gnu.org>
[not found] ` <mailman.5513.1435080075.904.bug-gnu-emacs-mXXj517/zsQ@public.gmane.org>
2015-07-02 13:27 ` Sebastien Vauban
2015-07-02 13:59 ` Ken Brown
2015-06-22 15:35 ` Eli Zaretskii
2015-06-22 18:04 ` Ken Brown
2015-06-22 18:50 ` Eli Zaretskii
2015-06-22 19:30 ` Ken Brown
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).