* maintain flymake.el
@ 2013-12-06 17:01 Leo Liu
2013-12-06 17:38 ` Stefan Monnier
` (2 more replies)
0 siblings, 3 replies; 23+ messages in thread
From: Leo Liu @ 2013-12-06 17:01 UTC (permalink / raw)
To: emacs-devel
Hi there,
If no one objects I'd like to take the role of maintaining flymake.el.
Leo
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-06 17:01 maintain flymake.el Leo Liu
@ 2013-12-06 17:38 ` Stefan Monnier
2013-12-06 17:50 ` Ted Zlatanov
2013-12-17 6:37 ` Arne Jørgensen
2 siblings, 0 replies; 23+ messages in thread
From: Stefan Monnier @ 2013-12-06 17:38 UTC (permalink / raw)
To: Leo Liu; +Cc: emacs-devel
> If no one objects I'd like to take the role of maintaining flymake.el.
Let's see if someone dares to object!
Stefan
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-06 17:01 maintain flymake.el Leo Liu
2013-12-06 17:38 ` Stefan Monnier
@ 2013-12-06 17:50 ` Ted Zlatanov
2013-12-07 2:21 ` Leo Liu
2013-12-14 21:23 ` Sebastian Wiesner
2013-12-17 6:37 ` Arne Jørgensen
2 siblings, 2 replies; 23+ messages in thread
From: Ted Zlatanov @ 2013-12-06 17:50 UTC (permalink / raw)
To: emacs-devel; +Cc: lunaryorn
On Sat, 07 Dec 2013 01:01:50 +0800 Leo Liu <sdl.web@gmail.com> wrote:
LL> If no one objects I'd like to take the role of maintaining flymake.el.
(courtesy CC to lunaryorn@gmail.com)
No objection, but I wanted to mention (since I use it)
https://github.com/flycheck/flycheck and that I hope there could be some
reconciliation between their configuration styles. As the maintainer
of cfengine.el I'd like to have a way to support both tools without
maintaining two different configuration variables.
It would be nice to see a comparison table between the two, as well.
(I am not bringing up Semantic here because it's a different use case. I think.)
Thanks
Ted
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-06 17:50 ` Ted Zlatanov
@ 2013-12-07 2:21 ` Leo Liu
2013-12-14 21:23 ` Sebastian Wiesner
1 sibling, 0 replies; 23+ messages in thread
From: Leo Liu @ 2013-12-07 2:21 UTC (permalink / raw)
To: emacs-devel
On 2013-12-07 01:50 +0800, Ted Zlatanov wrote:
> No objection, but I wanted to mention (since I use it)
> https://github.com/flycheck/flycheck and that I hope there could be some
> reconciliation between their configuration styles. As the maintainer
> of cfengine.el I'd like to have a way to support both tools without
> maintaining two different configuration variables.
I'll keep this in mind. My plan is to clean it up first then new
development.
Leo
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-06 17:50 ` Ted Zlatanov
2013-12-07 2:21 ` Leo Liu
@ 2013-12-14 21:23 ` Sebastian Wiesner
2013-12-15 18:31 ` Sebastian Wiesner
1 sibling, 1 reply; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-14 21:23 UTC (permalink / raw)
To: Ted Zlatanov; +Cc: emacs-devel
2013/12/6 Ted Zlatanov <tzz@lifelogs.com>:
> The following message is a courtesy copy of an article
> that has been posted to gmane.emacs.devel as well.
Thank you for bringing this to my attention. I'm subscribed to
emacs-devel, though, so I saw it anyway :)
> On Sat, 07 Dec 2013 01:01:50 +0800 Leo Liu <sdl.web@gmail.com> wrote:
>
> LL> If no one objects I'd like to take the role of maintaining flymake.el.
>
> (courtesy CC to lunaryorn@gmail.com)
>
> No objection, but I wanted to mention (since I use it)
> https://github.com/flycheck/flycheck and that I hope there could be some
> reconciliation between their configuration styles. As the maintainer
> of cfengine.el I'd like to have a way to support both tools without
> maintaining two different configuration variables.
I do not think that this is easily possible. There are huge
conceptual differences between Flycheck and Flymake, and it would
require a lot of glue code in either way to use the syntax checkers of
each other library.
However, at least with regards to Flycheck, you do not really need to
maintain anything. As soon as a syntax checker lands in Flycheck,
I'll take care of it. That's why I want test cases for contributed
syntax checkers :)
> It would be nice to see a comparison table between the two, as well.
I started to work on a comparsion table in the Flycheck wiki at
https://github.com/flycheck/flycheck/wiki/Comparsion. It's not
finished yet, but I hope for it to be complete and mostly neutral.
Being the author of Flycheck, I do consider Flycheck completely
superior in all aspects, and such you may find this table unfairly
biased towards Flycheck. Please excuse any wrong tendencies or any
factual mistakes, and suggest improvements.
I hope to finish the document by tomorrow evening, and will come back
if it's done.
> (I am not bringing up Semantic here because it's a different use case. I think.)
>
> Thanks
> Ted
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-14 21:23 ` Sebastian Wiesner
@ 2013-12-15 18:31 ` Sebastian Wiesner
2013-12-16 14:32 ` Ted Zlatanov
0 siblings, 1 reply; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-15 18:31 UTC (permalink / raw)
To: Ted Zlatanov; +Cc: emacs-devel
2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
> I hope to finish the document by tomorrow evening, and will come back
> if it's done.
I have completed the document now. The final version is to be found
at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
It's a thorough write-up of the differences and similarities between
Flycheck and Flymake, and probably also a comprehensive summary of the
current issues and weaknesses in Flymake.
Again, it's probably unfairly biased towards Flycheck. I tried my
best to be neutral, but I consider Flycheck superior and think that
the design and implementation of Flymake are somewhat broken, so I may
have failed to properly account for Flymake's features and strengths.
Please excuse this, and feel free to correct any mistakes I may have
made.
Please also suggest improvements, such as additional aspects which
should be covered, or report issues, such as missing details in the
comparsion.
I hope you find it sufficient to answer your questions.
>> (I am not bringing up Semantic here because it's a different use case. I think.)
>>
>> Thanks
>> Ted
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-15 18:31 ` Sebastian Wiesner
@ 2013-12-16 14:32 ` Ted Zlatanov
2013-12-16 16:06 ` Jan Djärv
` (2 more replies)
0 siblings, 3 replies; 23+ messages in thread
From: Ted Zlatanov @ 2013-12-16 14:32 UTC (permalink / raw)
To: emacs-devel
On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>> I hope to finish the document by tomorrow evening, and will come back
>> if it's done.
SW> I have completed the document now. The final version is to be found
SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
SW> It's a thorough write-up of the differences and similarities between
SW> Flycheck and Flymake, and probably also a comprehensive summary of the
SW> current issues and weaknesses in Flymake.
SW> Again, it's probably unfairly biased towards Flycheck. I tried my
SW> best to be neutral, but I consider Flycheck superior and think that
SW> the design and implementation of Flymake are somewhat broken, so I may
SW> have failed to properly account for Flymake's features and strengths.
SW> Please excuse this, and feel free to correct any mistakes I may have
SW> made.
SW> Please also suggest improvements, such as additional aspects which
SW> should be covered, or report issues, such as missing details in the
SW> comparsion.
I thought it was a thorough comparison. I'll let Leo, if he's willing,
answer any items.
We can't put Flycheck in Emacs as it stands, too many contributors
without copyright assignments. If precedent holds, I would expect the
Emacs project to continue endorsing Flymake despite its shortcomings
because of the licensing. Would you consider doing the necessary work
to make Flycheck part of Emacs?
Ted
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 14:32 ` Ted Zlatanov
@ 2013-12-16 16:06 ` Jan Djärv
2013-12-16 16:48 ` Sebastian Wiesner
2013-12-16 16:57 ` Sebastian Wiesner
2013-12-17 0:02 ` Leo Liu
2 siblings, 1 reply; 23+ messages in thread
From: Jan Djärv @ 2013-12-16 16:06 UTC (permalink / raw)
To: emacs-devel
Hello.
16 dec 2013 kl. 15:32 skrev Ted Zlatanov <tzz@lifelogs.com>:
> On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
>
> SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>>> I hope to finish the document by tomorrow evening, and will come back
>>> if it's done.
>
> SW> I have completed the document now. The final version is to be found
> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
> SW> It's a thorough write-up of the differences and similarities between
> SW> Flycheck and Flymake, and probably also a comprehensive summary of the
> SW> current issues and weaknesses in Flymake.
>
> SW> Again, it's probably unfairly biased towards Flycheck. I tried my
> SW> best to be neutral, but I consider Flycheck superior and think that
> SW> the design and implementation of Flymake are somewhat broken, so I may
> SW> have failed to properly account for Flymake's features and strengths.
> SW> Please excuse this, and feel free to correct any mistakes I may have
> SW> made.
>
> SW> Please also suggest improvements, such as additional aspects which
> SW> should be covered, or report issues, such as missing details in the
> SW> comparsion.
You are missing the big think that separates flymake and flycheck. Flymake uses makefiles, flycheck does not. This means to be able to use flycheck on a large C/C++ project you have to maintain includes and defined in both makefiles and as lisp variables for flycheck. Flymake does not have that problem, you just add one rule for it in the makefiles, re-using all definitions and include paths.
This is really a showstopper for flycheck, even if it has some nicer GUI stuff. It is really only usable for small projects.
Disclaimer: This might have changed since I last checked.
Jan D.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 16:06 ` Jan Djärv
@ 2013-12-16 16:48 ` Sebastian Wiesner
2013-12-16 18:30 ` Jan Djärv
0 siblings, 1 reply; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-16 16:48 UTC (permalink / raw)
To: Jan Djärv; +Cc: emacs-devel
2013/12/16 Jan Djärv <jan.h.d@swipnet.se>:
> Hello.
>
> 16 dec 2013 kl. 15:32 skrev Ted Zlatanov <tzz@lifelogs.com>:
>
>> On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
>>
>> SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>>>> I hope to finish the document by tomorrow evening, and will come back
>>>> if it's done.
>>
>> SW> I have completed the document now. The final version is to be found
>> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
>> SW> It's a thorough write-up of the differences and similarities between
>> SW> Flycheck and Flymake, and probably also a comprehensive summary of the
>> SW> current issues and weaknesses in Flymake.
>>
>> SW> Again, it's probably unfairly biased towards Flycheck. I tried my
>> SW> best to be neutral, but I consider Flycheck superior and think that
>> SW> the design and implementation of Flymake are somewhat broken, so I may
>> SW> have failed to properly account for Flymake's features and strengths.
>> SW> Please excuse this, and feel free to correct any mistakes I may have
>> SW> made.
>>
>> SW> Please also suggest improvements, such as additional aspects which
>> SW> should be covered, or report issues, such as missing details in the
>> SW> comparsion.
>
>
> You are missing the big think that separates flymake and flycheck. Flymake uses makefiles, flycheck does not. This means to be able to use flycheck on a large C/C++ project you have to maintain includes and defined in both makefiles and as lisp variables for flycheck. Flymake does not have that problem, you just add one rule for it in the makefiles, re-using all definitions and include paths.
>
> This is really a showstopper for flycheck, even if it has some nicer GUI stuff. It is really only usable for small projects.
You can easily define your own syntax checker:
(flycheck-define-checker 'c-makefile-checker
:command ("make" "CC=clang" "build")
:error-patterns
((info line-start (file-name) ":" line ":" column
": note: " (message) line-end)
(warning line-start (file-name) ":" line ":" column
": warning: " (message) line-end)
(error line-start (file-name) ":" line ":" column
": " (or "fatal error" "error") ": " (message) line-end))
:modes (c-mode)
:predicate (lambda () (not (buffer-modified-p)))
The error patterns are for Clang. Adapt the accordingly, if you are
using a different compiler. The predicate makes sure that Flycheck
only uses this syntax checker after the buffer was saved, because
calling out to the build system after every change is probably not a
good idea.
Then just register the new syntax checker, and disable the built-in
Clang checker to avoid conflicting error messages:
(add-to-list 'flycheck-checkers 'c-make-file-checker)
(setq-default flycheck-disabled-checkers '(c/c++-clang))
Feel free to copy this to your "init.el".
Flycheck does not include this syntax checker for two reasons:
- No one contributed it :)
- It's hard, if not impossible, to get this right in a generic way.
There is simply no standard for Makefiles and compiler messages, so
Flycheck has no chance to call a Makefile in a portable way, that
works identically across all build systems, from CMake and Autotools,
to custom ad-hoc Makefiles, which don't even use generic rules, to the
strangest and most exotic compiler flags, especially if it does not
want to conduct a full build (which could take minutes, if not ours),
but only a syntax check of the file being edited.
But again, you know your projects, and nothing stops you from
definining your own syntax checker just for these projects. Try it.
Really. It's easy.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 14:32 ` Ted Zlatanov
2013-12-16 16:06 ` Jan Djärv
@ 2013-12-16 16:57 ` Sebastian Wiesner
2013-12-16 17:26 ` Glenn Morris
2013-12-16 17:28 ` Ted Zlatanov
2013-12-17 0:02 ` Leo Liu
2 siblings, 2 replies; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-16 16:57 UTC (permalink / raw)
To: emacs-devel
2013/12/16 Ted Zlatanov <tzz@lifelogs.com>:
> On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
>
> SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>>> I hope to finish the document by tomorrow evening, and will come back
>>> if it's done.
>
> SW> I have completed the document now. The final version is to be found
> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
> SW> It's a thorough write-up of the differences and similarities between
> SW> Flycheck and Flymake, and probably also a comprehensive summary of the
> SW> current issues and weaknesses in Flymake.
>
> SW> Again, it's probably unfairly biased towards Flycheck. I tried my
> SW> best to be neutral, but I consider Flycheck superior and think that
> SW> the design and implementation of Flymake are somewhat broken, so I may
> SW> have failed to properly account for Flymake's features and strengths.
> SW> Please excuse this, and feel free to correct any mistakes I may have
> SW> made.
>
> SW> Please also suggest improvements, such as additional aspects which
> SW> should be covered, or report issues, such as missing details in the
> SW> comparsion.
>
> I thought it was a thorough comparison. I'll let Leo, if he's willing,
> answer any items.
>
> We can't put Flycheck in Emacs as it stands, too many contributors
> without copyright assignments. If precedent holds, I would expect the
> Emacs project to continue endorsing Flymake despite its shortcomings
> because of the licensing. Would you consider doing the necessary work
> to make Flycheck part of Emacs?
I was afraid that you would ask this, and I am sorry to say that I
won't. I do not intend to contribute to Emacs, and am not willing to
sign a copyright assignment.
Sorry
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 16:57 ` Sebastian Wiesner
@ 2013-12-16 17:26 ` Glenn Morris
2013-12-16 18:24 ` Sebastian Wiesner
2013-12-16 17:28 ` Ted Zlatanov
1 sibling, 1 reply; 23+ messages in thread
From: Glenn Morris @ 2013-12-16 17:26 UTC (permalink / raw)
To: Sebastian Wiesner; +Cc: emacs-devel
Sebastian Wiesner wrote:
>>> Being the author of Flycheck, I do consider Flycheck completely
>>> superior in all aspects
[...]
>> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
[...]
> I do not intend to contribute to Emacs, and am not willing to sign a
> copyright assignment.
Please add that to your comparison document.
This is the emacs-devel list, so "BTW, this mode will never be part of
Emacs" is kind of a big thing.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 16:57 ` Sebastian Wiesner
2013-12-16 17:26 ` Glenn Morris
@ 2013-12-16 17:28 ` Ted Zlatanov
2013-12-17 0:12 ` Leo Liu
1 sibling, 1 reply; 23+ messages in thread
From: Ted Zlatanov @ 2013-12-16 17:28 UTC (permalink / raw)
To: emacs-devel
On Mon, 16 Dec 2013 17:57:27 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
SW> 2013/12/16 Ted Zlatanov <tzz@lifelogs.com>:
>> We can't put Flycheck in Emacs as it stands, too many contributors
>> without copyright assignments. If precedent holds, I would expect the
>> Emacs project to continue endorsing Flymake despite its shortcomings
>> because of the licensing. Would you consider doing the necessary work
>> to make Flycheck part of Emacs?
SW> I was afraid that you would ask this, and I am sorry to say that I
SW> won't. I do not intend to contribute to Emacs, and am not willing to
SW> sign a copyright assignment.
That's fine, and one of the reasons I suggested unifying the
configurations so it wouldn't be such a hard either-or choice as it is
now. Perhaps Leo will be interested in adding a compatibility layer
from the Flymake side, or implementing some of the missing features.
Ted
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 17:26 ` Glenn Morris
@ 2013-12-16 18:24 ` Sebastian Wiesner
2013-12-16 20:55 ` Glenn Morris
2013-12-16 21:30 ` Lennart Borgman
0 siblings, 2 replies; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-16 18:24 UTC (permalink / raw)
To: Glenn Morris; +Cc: emacs-devel
2013/12/16 Glenn Morris <rgm@gnu.org>:
> Sebastian Wiesner wrote:
>
>>>> Being the author of Flycheck, I do consider Flycheck completely
>>>> superior in all aspects
> [...]
>>> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
> [...]
>> I do not intend to contribute to Emacs, and am not willing to sign a
>> copyright assignment.
>
> Please add that to your comparison document.
I added this information to the table, and also added a little section
concerning the details, at
https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake#wiki-relation-to-emacs.
I hope it makes clear that Flycheck likely won't ever be part of GNU
Emacs, even though my personal motives are omitted.
Please tell me if you find anything missing, or think, that it needs
improvement.
> This is the emacs-devel list, so "BTW, this mode will never be part of
> Emacs" is kind of a big thing.
I am well aware of where I am, and I assure you, that I would have
prefered to never have to discuss this topic here.
However, I was invited to this discussion, and asked this particular
question. I answered it by courtesy, and I do not think that I
deserve blame for an answer which you do not like.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 16:48 ` Sebastian Wiesner
@ 2013-12-16 18:30 ` Jan Djärv
2013-12-16 19:03 ` Sebastian Wiesner
0 siblings, 1 reply; 23+ messages in thread
From: Jan Djärv @ 2013-12-16 18:30 UTC (permalink / raw)
To: Sebastian Wiesner; +Cc: emacs-devel
Hello.
16 dec 2013 kl. 17:48 skrev Sebastian Wiesner <lunaryorn@gmail.com>:
> 2013/12/16 Jan Djärv <jan.h.d@swipnet.se>:
>> Hello.
>>
>> 16 dec 2013 kl. 15:32 skrev Ted Zlatanov <tzz@lifelogs.com>:
>>
>>> On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
>>>
>>> SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>>>>> I hope to finish the document by tomorrow evening, and will come back
>>>>> if it's done.
>>>
>>> SW> I have completed the document now. The final version is to be found
>>> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
>>> SW> It's a thorough write-up of the differences and similarities between
>>> SW> Flycheck and Flymake, and probably also a comprehensive summary of the
>>> SW> current issues and weaknesses in Flymake.
>>>
>>> SW> Again, it's probably unfairly biased towards Flycheck. I tried my
>>> SW> best to be neutral, but I consider Flycheck superior and think that
>>> SW> the design and implementation of Flymake are somewhat broken, so I may
>>> SW> have failed to properly account for Flymake's features and strengths.
>>> SW> Please excuse this, and feel free to correct any mistakes I may have
>>> SW> made.
>>>
>>> SW> Please also suggest improvements, such as additional aspects which
>>> SW> should be covered, or report issues, such as missing details in the
>>> SW> comparsion.
>>
>>
>> You are missing the big think that separates flymake and flycheck. Flymake uses makefiles, flycheck does not. This means to be able to use flycheck on a large C/C++ project you have to maintain includes and defined in both makefiles and as lisp variables for flycheck. Flymake does not have that problem, you just add one rule for it in the makefiles, re-using all definitions and include paths.
>>
>> This is really a showstopper for flycheck, even if it has some nicer GUI stuff. It is really only usable for small projects.
>
> You can easily define your own syntax checker:
>
> (flycheck-define-checker 'c-makefile-checker
> :command ("make" "CC=clang" "build")
> :error-patterns
> ((info line-start (file-name) ":" line ":" column
> ": note: " (message) line-end)
> (warning line-start (file-name) ":" line ":" column
> ": warning: " (message) line-end)
> (error line-start (file-name) ":" line ":" column
> ": " (or "fatal error" "error") ": " (message) line-end))
> :modes (c-mode)
> :predicate (lambda () (not (buffer-modified-p)))
>
"Easy" is in the eye of the beholder.
> The error patterns are for Clang. Adapt the accordingly, if you are
> using a different compiler. The predicate makes sure that Flycheck
> only uses this syntax checker after the buffer was saved, because
> calling out to the build system after every change is probably not a
> good idea.
>
> Then just register the new syntax checker, and disable the built-in
> Clang checker to avoid conflicting error messages:
>
> (add-to-list 'flycheck-checkers 'c-make-file-checker)
> (setq-default flycheck-disabled-checkers '(c/c++-clang))
>
> Feel free to copy this to your "init.el".
>
> Flycheck does not include this syntax checker for two reasons:
>
> - No one contributed it :)
> - It's hard, if not impossible, to get this right in a generic way.
Yet that is what compile mode tries to do. So use those.
>
> There is simply no standard for Makefiles and compiler messages, so
> Flycheck has no chance to call a Makefile in a portable way, that
> works identically across all build systems, from CMake and Autotools,
> to custom ad-hoc Makefiles, which don't even use generic rules, to the
> strangest and most exotic compiler flags, especially if it does not
> want to conduct a full build (which could take minutes, if not ours),
> but only a syntax check of the file being edited.
>
> But again, you know your projects, and nothing stops you from
> definining your own syntax checker just for these projects. Try it.
> Really. It's easy.
I won't bother as you stated that Flycheck won't be part of Emacs.
Jan D.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 18:30 ` Jan Djärv
@ 2013-12-16 19:03 ` Sebastian Wiesner
0 siblings, 0 replies; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-16 19:03 UTC (permalink / raw)
To: Jan Djärv; +Cc: emacs-devel
2013/12/16 Jan Djärv <jan.h.d@swipnet.se>:
> Hello.
>
> 16 dec 2013 kl. 17:48 skrev Sebastian Wiesner <lunaryorn@gmail.com>:
>
>> 2013/12/16 Jan Djärv <jan.h.d@swipnet.se>:
>>> Hello.
>>>
>>> 16 dec 2013 kl. 15:32 skrev Ted Zlatanov <tzz@lifelogs.com>:
>>>
>>>> On Sun, 15 Dec 2013 19:31:46 +0100 Sebastian Wiesner <lunaryorn@gmail.com> wrote:
>>>>
>>>> SW> 2013/12/14 Sebastian Wiesner <lunaryorn@gmail.com>:
>>>>>> I hope to finish the document by tomorrow evening, and will come back
>>>>>> if it's done.
>>>>
>>>> SW> I have completed the document now. The final version is to be found
>>>> SW> at https://github.com/flycheck/flycheck/wiki/Flycheck-versus-Flymake.
>>>> SW> It's a thorough write-up of the differences and similarities between
>>>> SW> Flycheck and Flymake, and probably also a comprehensive summary of the
>>>> SW> current issues and weaknesses in Flymake.
>>>>
>>>> SW> Again, it's probably unfairly biased towards Flycheck. I tried my
>>>> SW> best to be neutral, but I consider Flycheck superior and think that
>>>> SW> the design and implementation of Flymake are somewhat broken, so I may
>>>> SW> have failed to properly account for Flymake's features and strengths.
>>>> SW> Please excuse this, and feel free to correct any mistakes I may have
>>>> SW> made.
>>>>
>>>> SW> Please also suggest improvements, such as additional aspects which
>>>> SW> should be covered, or report issues, such as missing details in the
>>>> SW> comparsion.
>>>
>>>
>>> You are missing the big think that separates flymake and flycheck. Flymake uses makefiles, flycheck does not. This means to be able to use flycheck on a large C/C++ project you have to maintain includes and defined in both makefiles and as lisp variables for flycheck. Flymake does not have that problem, you just add one rule for it in the makefiles, re-using all definitions and include paths.
>>>
>>> This is really a showstopper for flycheck, even if it has some nicer GUI stuff. It is really only usable for small projects.
>>
>> You can easily define your own syntax checker:
>>
>> (flycheck-define-checker 'c-makefile-checker
>> :command ("make" "CC=clang" "build")
>> :error-patterns
>> ((info line-start (file-name) ":" line ":" column
>> ": note: " (message) line-end)
>> (warning line-start (file-name) ":" line ":" column
>> ": warning: " (message) line-end)
>> (error line-start (file-name) ":" line ":" column
>> ": " (or "fatal error" "error") ": " (message) line-end))
>> :modes (c-mode)
>> :predicate (lambda () (not (buffer-modified-p)))
>>
>
> "Easy" is in the eye of the beholder.
It was easy enough for many people only unfamiliar with Emacs Lisp, as
the number of contributed syntax checkers demonstrates.
>> The error patterns are for Clang. Adapt the accordingly, if you are
>> using a different compiler. The predicate makes sure that Flycheck
>> only uses this syntax checker after the buffer was saved, because
>> calling out to the build system after every change is probably not a
>> good idea.
>>
>> Then just register the new syntax checker, and disable the built-in
>> Clang checker to avoid conflicting error messages:
>>
>> (add-to-list 'flycheck-checkers 'c-make-file-checker)
>> (setq-default flycheck-disabled-checkers '(c/c++-clang))
>>
>> Feel free to copy this to your "init.el".
>>
>> Flycheck does not include this syntax checker for two reasons:
>>
>> - No one contributed it :)
>> - It's hard, if not impossible, to get this right in a generic way.
>
> Yet that is what compile mode tries to do. So use those.
I am aware of the huge number of compilers supported by compile mode,
but that is not what I referred to.
Compile Mode solves a difference use case, and thus is subject to
other constraints than Flycheck. Most notably, it's whole purpose is
to call to the complete build systems, trigger its side effects and
probably wait minutes for the build to complete. The user expects
that.
Flycheck's concern, however, is syntax-checking, on-the-fly, and in
background. As such, I can do none of the above. It cannot wait
minutes for a build to complete, and it cannot risk to trigger
arbitrary side effects caused by a poorly written Makefile.
>> But again, you know your projects, and nothing stops you from
>> definining your own syntax checker just for these projects. Try it.
>> Really. It's easy.
>
> I won't bother as you stated that Flycheck won't be part of Emacs.
I am sorry for you then, and have nothing more to say.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 18:24 ` Sebastian Wiesner
@ 2013-12-16 20:55 ` Glenn Morris
2013-12-16 21:00 ` Sebastian Wiesner
2013-12-16 21:30 ` Lennart Borgman
1 sibling, 1 reply; 23+ messages in thread
From: Glenn Morris @ 2013-12-16 20:55 UTC (permalink / raw)
To: Sebastian Wiesner; +Cc: emacs-devel
Sebastian Wiesner wrote:
> However, I was invited to this discussion, and asked this particular
> question. I answered it by courtesy, and I do not think that I
> deserve blame for an answer which you do not like.
I re-read the two sentences that I wrote, and fail to see where I blamed
you for anything, or stated my opinion.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 20:55 ` Glenn Morris
@ 2013-12-16 21:00 ` Sebastian Wiesner
0 siblings, 0 replies; 23+ messages in thread
From: Sebastian Wiesner @ 2013-12-16 21:00 UTC (permalink / raw)
To: Glenn Morris; +Cc: emacs-devel
2013/12/16 Glenn Morris <rgm@gnu.org>:
> Sebastian Wiesner wrote:
>
>> However, I was invited to this discussion, and asked this particular
>> question. I answered it by courtesy, and I do not think that I
>> deserve blame for an answer which you do not like.
>
> I re-read the two sentences that I wrote, and fail to see where I blamed
> you for anything, or stated my opinion.
To me, it seemed rebuking, but I may have read too much from the
terseness, style and tone of your answer.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 18:24 ` Sebastian Wiesner
2013-12-16 20:55 ` Glenn Morris
@ 2013-12-16 21:30 ` Lennart Borgman
2013-12-16 21:52 ` Glenn Morris
1 sibling, 1 reply; 23+ messages in thread
From: Lennart Borgman @ 2013-12-16 21:30 UTC (permalink / raw)
To: Sebastian Wiesner; +Cc: Emacs-Devel devel
[-- Attachment #1: Type: text/plain, Size: 1595 bytes --]
On Mon, Dec 16, 2013 at 7:24 PM, Sebastian Wiesner <lunaryorn@gmail.com>wrote:
> 2013/12/16 Glenn Morris <rgm@gnu.org>:
> > Sebastian Wiesner wrote:
> >
>
> I hope it makes clear that Flycheck likely won't ever be part of GNU
> Emacs, even though my personal motives are omitted.
>
> Please tell me if you find anything missing, or think, that it needs
> improvement.
>
> > This is the emacs-devel list, so "BTW, this mode will never be part of
> > Emacs" is kind of a big thing.
>
> I am well aware of where I am, and I assure you, that I would have
> prefered to never have to discuss this topic here.
>
> However, I was invited to this discussion, and asked this particular
> question. I answered it by courtesy, and I do not think that I
> deserve blame for an answer which you do not like.
>
>
I am glad for your contribution, Sebastian, but it is still troublesome if
the code is not GPL. I hope you do not mind me saying that. It is just a
matter of fact, nothing personal at all! ;-)
We have had a similar situation with php-mode. A lot of contributors and we
could not get every one to sign their contributions. It took me a long time
to try to get the people to sign and in the end I simply gave up. My
conclusion was that I could have been writing a much php-mode in much less
time than I used trying to fix this. However after this I did not find time
to do it any more.
And I do not have time to contribute now. Not even to discus, really. ;-)
I write this to you just to tell you that it is not a small problem. My
best wishes otherwise, and again thanks for contributing!
[-- Attachment #2: Type: text/html, Size: 2755 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 21:30 ` Lennart Borgman
@ 2013-12-16 21:52 ` Glenn Morris
0 siblings, 0 replies; 23+ messages in thread
From: Glenn Morris @ 2013-12-16 21:52 UTC (permalink / raw)
To: emacs-devel
Lennart Borgman wrote:
> [...]it is still troublesome if the code is not GPL.
But it is GPL (you could have checked in less time than it took to write
your mail). Nobody ever said it wasn't.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 14:32 ` Ted Zlatanov
2013-12-16 16:06 ` Jan Djärv
2013-12-16 16:57 ` Sebastian Wiesner
@ 2013-12-17 0:02 ` Leo Liu
2 siblings, 0 replies; 23+ messages in thread
From: Leo Liu @ 2013-12-17 0:02 UTC (permalink / raw)
To: emacs-devel
On 2013-12-16 22:32 +0800, Ted Zlatanov wrote:
> I thought it was a thorough comparison. I'll let Leo, if he's willing,
> answer any items.
I am not looking at flycheck yet. I have some ideas to clean up
(rewrite) flymake first. Roughly it will have three components:
1. error presentation
2. controllers
3. error sources
One of the error sources will be from compile.el. The code will tightly
integrate with features in emacs. I expect after such cleanup it should
not exceed 1000 lines.
I am tied in another project at the moment but will look into this soon.
Leo
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-16 17:28 ` Ted Zlatanov
@ 2013-12-17 0:12 ` Leo Liu
0 siblings, 0 replies; 23+ messages in thread
From: Leo Liu @ 2013-12-17 0:12 UTC (permalink / raw)
To: emacs-devel
On 2013-12-17 01:28 +0800, Ted Zlatanov wrote:
> Perhaps Leo will be interested in adding a compatibility layer from
> the Flymake side, or implementing some of the missing features.
That's for sure. I'll be stealing ideas from the tons of such packages
out there.
Leo
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-06 17:01 maintain flymake.el Leo Liu
2013-12-06 17:38 ` Stefan Monnier
2013-12-06 17:50 ` Ted Zlatanov
@ 2013-12-17 6:37 ` Arne Jørgensen
2013-12-17 15:45 ` Leo Liu
2 siblings, 1 reply; 23+ messages in thread
From: Arne Jørgensen @ 2013-12-17 6:37 UTC (permalink / raw)
To: emacs-devel
Leo Liu <sdl.web@gmail.com> writes:
> Hi there,
>
> If no one objects I'd like to take the role of maintaining flymake.el.
>
> Leo
Hi Leo,
I just want to make sure you are familiar with the work Sam Graham has
done on flymake.el over at https://github.com/illusori/emacs-flymake.
I've been using Sams fork of flymake.el for quite some time and think
most of his changes are worth incorporating.
Kind regards,
Arne
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: maintain flymake.el
2013-12-17 6:37 ` Arne Jørgensen
@ 2013-12-17 15:45 ` Leo Liu
0 siblings, 0 replies; 23+ messages in thread
From: Leo Liu @ 2013-12-17 15:45 UTC (permalink / raw)
To: Arne Jørgensen; +Cc: emacs-devel
On 2013-12-17 14:37 +0800, Arne Jørgensen wrote:
> Hi Leo,
>
> I just want to make sure you are familiar with the work Sam Graham has
> done on flymake.el over at https://github.com/illusori/emacs-flymake.
>
> I've been using Sams fork of flymake.el for quite some time and think
> most of his changes are worth incorporating.
>
> Kind regards,
> Arne
Thank you for the information. I have noted it down.
Leo
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2013-12-17 15:45 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-06 17:01 maintain flymake.el Leo Liu
2013-12-06 17:38 ` Stefan Monnier
2013-12-06 17:50 ` Ted Zlatanov
2013-12-07 2:21 ` Leo Liu
2013-12-14 21:23 ` Sebastian Wiesner
2013-12-15 18:31 ` Sebastian Wiesner
2013-12-16 14:32 ` Ted Zlatanov
2013-12-16 16:06 ` Jan Djärv
2013-12-16 16:48 ` Sebastian Wiesner
2013-12-16 18:30 ` Jan Djärv
2013-12-16 19:03 ` Sebastian Wiesner
2013-12-16 16:57 ` Sebastian Wiesner
2013-12-16 17:26 ` Glenn Morris
2013-12-16 18:24 ` Sebastian Wiesner
2013-12-16 20:55 ` Glenn Morris
2013-12-16 21:00 ` Sebastian Wiesner
2013-12-16 21:30 ` Lennart Borgman
2013-12-16 21:52 ` Glenn Morris
2013-12-16 17:28 ` Ted Zlatanov
2013-12-17 0:12 ` Leo Liu
2013-12-17 0:02 ` Leo Liu
2013-12-17 6:37 ` Arne Jørgensen
2013-12-17 15:45 ` Leo Liu
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).