* Note on 109327 @ 2012-07-31 12:38 Dmitry Antipov 2012-07-31 13:13 ` Dan Nicolaescu ` (2 more replies) 0 siblings, 3 replies; 21+ messages in thread From: Dmitry Antipov @ 2012-07-31 12:38 UTC (permalink / raw) To: Emacs development discussions This massive change may break Windows and NS builds. I checked all possible GNU/Linux variants (without X, Lucid, Motif, GTK2/3), but can't check others. Please report possible Windows/NS build errors as soon as possible. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 12:38 Note on 109327 Dmitry Antipov @ 2012-07-31 13:13 ` Dan Nicolaescu 2012-07-31 13:25 ` Dmitry Antipov 2012-07-31 13:54 ` Juanma Barranquero 2012-07-31 15:16 ` Note on 109327 Jan Djärv 2 siblings, 1 reply; 21+ messages in thread From: Dan Nicolaescu @ 2012-07-31 13:13 UTC (permalink / raw) To: Dmitry Antipov; +Cc: Emacs development discussions Dmitry Antipov <dmantipov@yandex.ru> writes: > This massive change may break Windows and NS builds. I checked all possible > GNU/Linux variants (without X, Lucid, Motif, GTK2/3), but can't check others. > Please report possible Windows/NS build errors as soon as possible. What's the motivation for changes like: - f->icon_name = Qnil; + FVAR (f, icon_name) = Qnil; ? The new version looks more obfuscated ... ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 13:13 ` Dan Nicolaescu @ 2012-07-31 13:25 ` Dmitry Antipov 2012-07-31 13:33 ` Tom Tromey 0 siblings, 1 reply; 21+ messages in thread From: Dmitry Antipov @ 2012-07-31 13:25 UTC (permalink / raw) To: Dan Nicolaescu; +Cc: Emacs development discussions On 07/31/2012 05:13 PM, Dan Nicolaescu wrote: > What's the motivation for changes like: > - f->icon_name = Qnil; > + FVAR (f, icon_name) = Qnil; > ? > > The new version looks more obfuscated ... Yes. I'm always thinking about improving internal stuff, GC at first. For me, the main motivation for BVAR, KVAR, FVAR etc. is the ability to catch the moment when the pointer (e.g. Lisp_Object) within buffer, or keyboard, of frame, etc. is read or written, which may be useful to implement write barriers (see, for exmaple, http://www.hoelzle.org/publications/write-barrier.pdf, but do not get confused with http://en.wikipedia.org/wiki/Memory_barrier). Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 13:25 ` Dmitry Antipov @ 2012-07-31 13:33 ` Tom Tromey 2012-07-31 13:50 ` Dmitry Antipov 0 siblings, 1 reply; 21+ messages in thread From: Tom Tromey @ 2012-07-31 13:33 UTC (permalink / raw) To: Dmitry Antipov; +Cc: Dan Nicolaescu, Emacs development discussions Dmitry> Yes. I'm always thinking about improving internal stuff, GC at first. Dmitry> For me, the main motivation for BVAR, KVAR, FVAR etc. is the ability Dmitry> to catch the moment when the pointer (e.g. Lisp_Object) within buffer, Dmitry> or keyboard, of frame, etc. is read or written, which may be useful Dmitry> to implement write barriers (see, for exmaple, Dmitry> http://www.hoelzle.org/publications/write-barrier.pdf, but do not Dmitry> get confused with http://en.wikipedia.org/wiki/Memory_barrier). I think to do this well you will need separate macros for getting and setting. Tom ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 13:33 ` Tom Tromey @ 2012-07-31 13:50 ` Dmitry Antipov 2012-07-31 21:47 ` Thien-Thi Nguyen 0 siblings, 1 reply; 21+ messages in thread From: Dmitry Antipov @ 2012-07-31 13:50 UTC (permalink / raw) To: Tom Tromey; +Cc: Dan Nicolaescu, Emacs development discussions On 07/31/2012 05:33 PM, Tom Tromey wrote: > Dmitry> Yes. I'm always thinking about improving internal stuff, GC at first. > Dmitry> For me, the main motivation for BVAR, KVAR, FVAR etc. is the ability > Dmitry> to catch the moment when the pointer (e.g. Lisp_Object) within buffer, > Dmitry> or keyboard, of frame, etc. is read or written, which may be useful > Dmitry> to implement write barriers (see, for exmaple, > Dmitry> http://www.hoelzle.org/publications/write-barrier.pdf, but do not > Dmitry> get confused with http://en.wikipedia.org/wiki/Memory_barrier). > > I think to do this well you will need separate macros for getting and > setting. Sure, but it's almost impossible to do this at once. At the very beginning, it's possible to "overestimate" barrier assuming that each XVAR (obj, field) changes FIELD in OBJ; in the future, reads and writes may be separated, thus giving a precise write barrier. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 13:50 ` Dmitry Antipov @ 2012-07-31 21:47 ` Thien-Thi Nguyen 2012-08-01 4:34 ` Dmitry Antipov 0 siblings, 1 reply; 21+ messages in thread From: Thien-Thi Nguyen @ 2012-07-31 21:47 UTC (permalink / raw) To: Dmitry Antipov; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1345 bytes --] () Dmitry Antipov <dmantipov@yandex.ru> () Tue, 31 Jul 2012 17:50:43 +0400 > I think to do this well you will need separate macros for getting > and setting. Sure, but it's almost impossible to do this at once. Why? At the very beginning, it's possible to "overestimate" barrier assuming that each XVAR (obj, field) changes FIELD in OBJ; in the future, reads and writes may be separated, thus giving a precise write barrier. I think you're saying that you prefer to do: a1. substitute object access (whether LHS or RHS) w/ XVAR (obj, field) a2. distinguish LHS (which could benefit from optimization) from RHS a3. substitue LHS ‘XVAR (...) = value’ w/ SETVAR (obj, field, value) instead of: b1. distinguish LHS (which could benefit from optimization) from RHS b2. substitute LHS object access w/ SETVAR (obj, field, value) b3. substitute RHS object access w/ XVAR (obj, field) Is my understanding correct? -- Thien-Thi Nguyen ..................................... GPG key: 4C807502 . NB: ttn at glug dot org is not me . . (and has not been since 2007 or so) . . ACCEPT NO SUBSTITUTES . ........... please send technical questions to mailing lists ........... [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 21:47 ` Thien-Thi Nguyen @ 2012-08-01 4:34 ` Dmitry Antipov 0 siblings, 0 replies; 21+ messages in thread From: Dmitry Antipov @ 2012-08-01 4:34 UTC (permalink / raw) To: Thien-Thi Nguyen; +Cc: emacs-devel On 08/01/2012 01:47 AM, Thien-Thi Nguyen wrote: > > I think to do this well you will need separate macros for getting > > and setting. > > Sure, but it's almost impossible to do this at once. > > Why? As an exercise, try this for 'contents' member of Lisp_Vector. > > At the very beginning, it's possible to "overestimate" barrier > assuming that each XVAR (obj, field) changes FIELD in OBJ; in the > future, reads and writes may be separated, thus giving a precise > write barrier. > > I think you're saying that you prefer to do: > > a1. substitute object access (whether LHS or RHS) w/ XVAR (obj, field) > a2. distinguish LHS (which could benefit from optimization) from RHS > a3. substitue LHS ‘XVAR (...) = value’ w/ SETVAR (obj, field, value) > > instead of: > > b1. distinguish LHS (which could benefit from optimization) from RHS > b2. substitute LHS object access w/ SETVAR (obj, field, value) > b3. substitute RHS object access w/ XVAR (obj, field) > > Is my understanding correct? a1) is definitely the first, since this gives a base to design an "overestimated" write barrier (each XVAR (obj, field) issues the barrier). Next, it should be possible to implement generational pass for GC (which collects only an objects changed since the last collection). This is expected to be very inefficient because write barrier is hugely overestimated. Finally, it's time for a3) or b2), i.e. removing the barrier from XVAR (obj, field) and installing it only at XSETVAR (obj, field, value), thus reducing "overestimation" of the barrier. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 12:38 Note on 109327 Dmitry Antipov 2012-07-31 13:13 ` Dan Nicolaescu @ 2012-07-31 13:54 ` Juanma Barranquero 2012-07-31 17:04 ` Eli Zaretskii 2012-07-31 15:16 ` Note on 109327 Jan Djärv 2 siblings, 1 reply; 21+ messages in thread From: Juanma Barranquero @ 2012-07-31 13:54 UTC (permalink / raw) To: Dmitry Antipov; +Cc: Emacs development discussions On Tue, Jul 31, 2012 at 2:38 PM, Dmitry Antipov <dmantipov@yandex.ru> wrote: > Please report possible Windows/NS build errors as soon as possible. fontset.c: In function 'dump_fontset': fontset.c:2119:6: error: 'struct frame' has no member named 'name' Juanma ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 13:54 ` Juanma Barranquero @ 2012-07-31 17:04 ` Eli Zaretskii 2012-07-31 17:17 ` Juanma Barranquero ` (2 more replies) 0 siblings, 3 replies; 21+ messages in thread From: Eli Zaretskii @ 2012-07-31 17:04 UTC (permalink / raw) To: Juanma Barranquero; +Cc: dmantipov, emacs-devel > From: Juanma Barranquero <lekktu@gmail.com> > Date: Tue, 31 Jul 2012 15:54:38 +0200 > Cc: Emacs development discussions <emacs-devel@gnu.org> > > On Tue, Jul 31, 2012 at 2:38 PM, Dmitry Antipov <dmantipov@yandex.ru> wrote: > > > Please report possible Windows/NS build errors as soon as possible. > > fontset.c: In function 'dump_fontset': > fontset.c:2119:6: error: 'struct frame' has no member named 'name' Which has nothing to do with Windows, but with --enable-checking. This problem, however, is more serious, IMO: gcc -I. -c -gdwarf-2 -g3 -DEMACSDEBUG -fno-crossjumping -Id:/usr/include/libxml2 -DGLYPH_DEBUG=1 -Demacs=1 -I../lib -I../nt/inc -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -o oo/i386/w32menu.o w32menu.c w32menu.c: In function `w32_menu_show': w32menu.c:857: error: structure has no member named `title_' makefile:322: recipe for target `oo/i386/w32menu.o' failed make[1]: *** [oo/i386/w32menu.o] Error 1 AFAIU, it means that coccinelle made an incorrect replacement. I fixed both of these in revision 109332. Btw, can't we have in Emacs a feature that would allow such refactoring? The replacements don't seem too complex to me. Adding this to Emacs will both allow getting rid of an external tool, and be a valuable addition to Emacs abilities. WDYT? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 17:04 ` Eli Zaretskii @ 2012-07-31 17:17 ` Juanma Barranquero 2012-07-31 17:35 ` joakim 2012-07-31 17:42 ` Dmitry Antipov 2 siblings, 0 replies; 21+ messages in thread From: Juanma Barranquero @ 2012-07-31 17:17 UTC (permalink / raw) To: Eli Zaretskii; +Cc: dmantipov, emacs-devel On Tue, Jul 31, 2012 at 7:04 PM, Eli Zaretskii <eliz@gnu.org> wrote: > Which has nothing to do with Windows, but with --enable-checking. I just saw the trouble, sent the report and ran away. Busy. > Btw, can't we have in Emacs a feature that would allow such > refactoring? The replacements don't seem too complex to me. Adding > this to Emacs will both allow getting rid of an external tool, and be > a valuable addition to Emacs abilities. WDYT? It'd be great. Juanma ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 17:04 ` Eli Zaretskii 2012-07-31 17:17 ` Juanma Barranquero @ 2012-07-31 17:35 ` joakim 2012-07-31 17:56 ` Dmitry Antipov 2012-07-31 17:42 ` Dmitry Antipov 2 siblings, 1 reply; 21+ messages in thread From: joakim @ 2012-07-31 17:35 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Juanma Barranquero, dmantipov, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Juanma Barranquero <lekktu@gmail.com> >> Date: Tue, 31 Jul 2012 15:54:38 +0200 >> Cc: Emacs development discussions <emacs-devel@gnu.org> >> >> On Tue, Jul 31, 2012 at 2:38 PM, Dmitry Antipov <dmantipov@yandex.ru> wrote: >> >> > Please report possible Windows/NS build errors as soon as possible. >> >> fontset.c: In function 'dump_fontset': >> fontset.c:2119:6: error: 'struct frame' has no member named 'name' > > Which has nothing to do with Windows, but with --enable-checking. > > This problem, however, is more serious, IMO: > > gcc -I. -c -gdwarf-2 -g3 -DEMACSDEBUG -fno-crossjumping -Id:/usr/include/libxml2 -DGLYPH_DEBUG=1 -Demacs=1 -I../lib -I../nt/inc -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -o oo/i386/w32menu.o w32menu.c > w32menu.c: In function `w32_menu_show': > w32menu.c:857: error: structure has no member named `title_' > makefile:322: recipe for target `oo/i386/w32menu.o' failed > make[1]: *** [oo/i386/w32menu.o] Error 1 > > AFAIU, it means that coccinelle made an incorrect replacement. > > I fixed both of these in revision 109332. > > Btw, can't we have in Emacs a feature that would allow such > refactoring? The replacements don't seem too complex to me. Adding > this to Emacs will both allow getting rid of an external tool, and be > a valuable addition to Emacs abilities. WDYT? > http://cedet.sourceforge.net/srecode.shtml The idea is that the two CEDET tools, Semantic and SRecode can cooperate to provide such features, I think. -- Joakim Verona ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 17:35 ` joakim @ 2012-07-31 17:56 ` Dmitry Antipov 0 siblings, 0 replies; 21+ messages in thread From: Dmitry Antipov @ 2012-07-31 17:56 UTC (permalink / raw) To: joakim; +Cc: Juanma Barranquero, Eli Zaretskii, emacs-devel On 07/31/2012 09:35 PM, joakim@verona.se wrote: >> Btw, can't we have in Emacs a feature that would allow such >> refactoring? The replacements don't seem too complex to me. Adding >> this to Emacs will both allow getting rid of an external tool, and be >> a valuable addition to Emacs abilities. WDYT? >> > > http://cedet.sourceforge.net/srecode.shtml > > The idea is that the two CEDET tools, Semantic and SRecode can cooperate > to provide such features, I think. Hm... not familiar with it too much. IIUC it's mostly for an interactive editing and navigation. But, if you know how to use it to do, for example, project-wide replacement of foo (X, Y) to foo (Y, X), where X and Y are arbitrary valid C expressions (which may include nested calls of foo), this might be the right direction. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 17:04 ` Eli Zaretskii 2012-07-31 17:17 ` Juanma Barranquero 2012-07-31 17:35 ` joakim @ 2012-07-31 17:42 ` Dmitry Antipov 2012-07-31 18:06 ` Refactoring in Emacs (was: Note on 109327) Eli Zaretskii 2 siblings, 1 reply; 21+ messages in thread From: Dmitry Antipov @ 2012-07-31 17:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Juanma Barranquero, emacs-devel On 07/31/2012 09:04 PM, Eli Zaretskii wrote: > This problem, however, is more serious, IMO: > > gcc -I. -c -gdwarf-2 -g3 -DEMACSDEBUG -fno-crossjumping -Id:/usr/include/libxml2 -DGLYPH_DEBUG=1 -Demacs=1 -I../lib -I../nt/inc -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -o oo/i386/w32menu.o w32menu.c > w32menu.c: In function `w32_menu_show': > w32menu.c:857: error: structure has no member named `title_' > makefile:322: recipe for target `oo/i386/w32menu.o' failed > make[1]: *** [oo/i386/w32menu.o] Error 1 > > AFAIU, it means that coccinelle made an incorrect replacement. Yes, it's not a silver bullet (yet). And, of course, I'm not a heavily experienced user. > I fixed both of these in revision 109332. Thanks. > Btw, can't we have in Emacs a feature that would allow such > refactoring? The replacements don't seem too complex to me. Adding > this to Emacs will both allow getting rid of an external tool, and be > a valuable addition to Emacs abilities. WDYT? IIUC real refactoring of C should imply preprocessing and full syntactic analysis, so, I'm thinking about GCC plugin. Nevertheless, I suppose that it should be possible to build simple refactoring engine on top of cc-mode, and such an engine may provide basic features like intelligent renaming of identifiers or tweaking function arguments. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs (was: Note on 109327) 2012-07-31 17:42 ` Dmitry Antipov @ 2012-07-31 18:06 ` Eli Zaretskii 2012-08-01 4:14 ` Refactoring in Emacs Dmitry Antipov 2012-08-01 14:05 ` Jason Rumney 0 siblings, 2 replies; 21+ messages in thread From: Eli Zaretskii @ 2012-07-31 18:06 UTC (permalink / raw) To: Dmitry Antipov, joakim; +Cc: emacs-devel > Date: Tue, 31 Jul 2012 21:42:44 +0400 > From: Dmitry Antipov <dmantipov@yandex.ru> > Cc: Juanma Barranquero <lekktu@gmail.com>, emacs-devel@gnu.org > > > Btw, can't we have in Emacs a feature that would allow such > > refactoring? The replacements don't seem too complex to me. Adding > > this to Emacs will both allow getting rid of an external tool, and be > > a valuable addition to Emacs abilities. WDYT? > > IIUC real refactoring of C should imply preprocessing and full > syntactic analysis Why is that? Can you give a couple of examples? Even if a full-fledged refactoring engine does need that, we could have a somewhat limited one that doesn't, could we? AFAICS, the refactoring you did until now were all quite simple. > so, I'm thinking about GCC plugin. Why do we need a GCC plugin? What kind of information is needed from the compiler? > Nevertheless, I suppose that it should be possible to build > simple refactoring engine on top of cc-mode, and such an engine > may provide basic features like intelligent renaming of identifiers > or tweaking function arguments. That would be very good, I think. > From: joakim@verona.se > Date: Tue, 31 Jul 2012 19:35:35 +0200 > Cc: Juanma Barranquero <lekktu@gmail.com>, dmantipov@yandex.ru, > emacs-devel@gnu.org > > http://cedet.sourceforge.net/srecode.shtml > > The idea is that the two CEDET tools, Semantic and SRecode can cooperate > to provide such features, I think. Emacs has some of both; is what we have not enough? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs 2012-07-31 18:06 ` Refactoring in Emacs (was: Note on 109327) Eli Zaretskii @ 2012-08-01 4:14 ` Dmitry Antipov 2012-08-01 11:41 ` Refactoring in Emacs : CEDET Eric M. Ludlam 2012-08-01 22:41 ` Refactoring in Emacs Richard Stallman 2012-08-01 14:05 ` Jason Rumney 1 sibling, 2 replies; 21+ messages in thread From: Dmitry Antipov @ 2012-08-01 4:14 UTC (permalink / raw) To: Eli Zaretskii; +Cc: joakim, emacs-devel On 07/31/2012 10:06 PM, Eli Zaretskii wrote: >> IIUC real refactoring of C should imply preprocessing and full >> syntactic analysis > > Why is that? Can you give a couple of examples? It's easy to use regexps to make foo (2, 1); from foo (1, 2); But it may be very tricky or even impossible to do the same for: 1) foo (bar (x, y, z), baz (a, b, c)); 2) foo (bar (x, y, foo (z, 1)), baz (foo (a, b) > 0 ? c : d, e, f)); 3) foo ( #ifdef AAA a, #else b, #endif c > 0 ? c : -c); etc. For 2), syntax tree may looks like: ++++++++++++[foo]++++++++++++ + + +++[bar]+++ ++++++[baz]++++++ + + + + + + x y +[foo]+ ++++[> ?]++++ e f + + + + + z 1 +[foo]+ c d + + a b So, refactoring is (hm, relatively) simple: you should traverse the tree, look for +[foo]+ + + x y pattern and swap subtrees. Check http://gcc-melt.org, it looks very similar to what I'm thinking about. Dmitry ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs : CEDET 2012-08-01 4:14 ` Refactoring in Emacs Dmitry Antipov @ 2012-08-01 11:41 ` Eric M. Ludlam 2012-08-01 14:50 ` Eli Zaretskii 2012-08-01 22:41 ` Refactoring in Emacs Richard Stallman 1 sibling, 1 reply; 21+ messages in thread From: Eric M. Ludlam @ 2012-08-01 11:41 UTC (permalink / raw) To: Dmitry Antipov; +Cc: Eli Zaretskii, joakim, emacs-devel On 08/01/2012 12:14 AM, Dmitry Antipov wrote: > On 07/31/2012 10:06 PM, Eli Zaretskii wrote: > >>> IIUC real refactoring of C should imply preprocessing and full >>> syntactic analysis >> >> Why is that? Can you give a couple of examples? > Hi, I missed earlier parts of this thread, so am replying a bit late. In CEDET, the function 'semantic-symref-symbol' uses the C parser built into semantic, plus external tools like GNU Global, or just plain grep to find symbols. The list buffer that shows all the hits is also a refactoring mode. You can select which hits are correct, and do mass renames. It also has a fancy way to create a keyboard macro that it will apply to all the hits. I'm describing the state of things in the CEDET bzr repository. I don't recall what state this mode was in when CEDET was last merged into Emacs. The symref functions certainly has some limitations as it tends to stick to symbols defined by the user, and the code to handle polymorphism hasn't been written yet, but those could be overcome if there was sufficient interest. Eric ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs : CEDET 2012-08-01 11:41 ` Refactoring in Emacs : CEDET Eric M. Ludlam @ 2012-08-01 14:50 ` Eli Zaretskii 2012-08-01 23:42 ` Eric Ludlam 0 siblings, 1 reply; 21+ messages in thread From: Eli Zaretskii @ 2012-08-01 14:50 UTC (permalink / raw) To: Eric M. Ludlam; +Cc: dmantipov, joakim, emacs-devel > Date: Wed, 01 Aug 2012 07:41:24 -0400 > From: "Eric M. Ludlam" <ericludlam@gmail.com> > CC: Eli Zaretskii <eliz@gnu.org>, joakim@verona.se, emacs-devel@gnu.org > > In CEDET, the function 'semantic-symref-symbol' uses the C parser > built into semantic, plus external tools like GNU Global, or just plain > grep to find symbols. The list buffer that shows all the hits is also a > refactoring mode. You can select which hits are correct, and do mass > renames. It also has a fancy way to create a keyboard macro that it > will apply to all the hits. Is this described somewhere in documentation, so that one could experiment with these features? ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs : CEDET 2012-08-01 14:50 ` Eli Zaretskii @ 2012-08-01 23:42 ` Eric Ludlam 0 siblings, 0 replies; 21+ messages in thread From: Eric Ludlam @ 2012-08-01 23:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: dmantipov, joakim, emacs-devel On 08/01/2012 10:50 AM, Eli Zaretskii wrote: >> Date: Wed, 01 Aug 2012 07:41:24 -0400 >> From: "Eric M. Ludlam"<ericludlam@gmail.com> >> CC: Eli Zaretskii<eliz@gnu.org>, joakim@verona.se, emacs-devel@gnu.org >> >> In CEDET, the function 'semantic-symref-symbol' uses the C parser >> built into semantic, plus external tools like GNU Global, or just plain >> grep to find symbols. The list buffer that shows all the hits is also a >> refactoring mode. You can select which hits are correct, and do mass >> renames. It also has a fancy way to create a keyboard macro that it >> will apply to all the hits. > Is this described somewhere in documentation, so that one could > experiment with these features? There is a section on the symbol reference functions in the semantic user guide. It doesn't get into the rename and macro feature though. I'll look into updating the texi file in the CEDET repository. Eric ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs 2012-08-01 4:14 ` Refactoring in Emacs Dmitry Antipov 2012-08-01 11:41 ` Refactoring in Emacs : CEDET Eric M. Ludlam @ 2012-08-01 22:41 ` Richard Stallman 1 sibling, 0 replies; 21+ messages in thread From: Richard Stallman @ 2012-08-01 22:41 UTC (permalink / raw) To: Dmitry Antipov; +Cc: eliz, joakim, emacs-devel 2) foo (bar (x, y, foo (z, 1)), baz (foo (a, b) > 0 ? c : d, e, f)); It seems to me that this code would be clearer if it used a variables or two to avoid having such a complex expression. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! That's nonfree (freedom-denying) software. Use Ekiga or an ordinary phone call ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Refactoring in Emacs 2012-07-31 18:06 ` Refactoring in Emacs (was: Note on 109327) Eli Zaretskii 2012-08-01 4:14 ` Refactoring in Emacs Dmitry Antipov @ 2012-08-01 14:05 ` Jason Rumney 1 sibling, 0 replies; 21+ messages in thread From: Jason Rumney @ 2012-08-01 14:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Dmitry Antipov, joakim, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Date: Tue, 31 Jul 2012 21:42:44 +0400 >> From: Dmitry Antipov <dmantipov@yandex.ru> >> >> IIUC real refactoring of C should imply preprocessing and full >> syntactic analysis > > Why is that? Can you give a couple of examples? > > Even if a full-fledged refactoring engine does need that, we could > have a somewhat limited one that doesn't, could we? AFAICS, the > refactoring you did until now were all quite simple. Preprocessing might even be a disadvantage, as it would mean skipping blocks of code that are currently #ifdef'ed out because of the configuration constants of the platform on which the refactoring is being done. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Note on 109327 2012-07-31 12:38 Note on 109327 Dmitry Antipov 2012-07-31 13:13 ` Dan Nicolaescu 2012-07-31 13:54 ` Juanma Barranquero @ 2012-07-31 15:16 ` Jan Djärv 2 siblings, 0 replies; 21+ messages in thread From: Jan Djärv @ 2012-07-31 15:16 UTC (permalink / raw) To: Dmitry Antipov; +Cc: Emacs development discussions Hello. 31 jul 2012 kl. 14:38 skrev Dmitry Antipov: > This massive change may break Windows and NS builds. I checked all possible > GNU/Linux variants (without X, Lucid, Motif, GTK2/3), but can't check others. > Please report possible Windows/NS build errors as soon as possible. > I fixed the NS build errors. Jan D. ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2012-08-01 23:42 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-07-31 12:38 Note on 109327 Dmitry Antipov 2012-07-31 13:13 ` Dan Nicolaescu 2012-07-31 13:25 ` Dmitry Antipov 2012-07-31 13:33 ` Tom Tromey 2012-07-31 13:50 ` Dmitry Antipov 2012-07-31 21:47 ` Thien-Thi Nguyen 2012-08-01 4:34 ` Dmitry Antipov 2012-07-31 13:54 ` Juanma Barranquero 2012-07-31 17:04 ` Eli Zaretskii 2012-07-31 17:17 ` Juanma Barranquero 2012-07-31 17:35 ` joakim 2012-07-31 17:56 ` Dmitry Antipov 2012-07-31 17:42 ` Dmitry Antipov 2012-07-31 18:06 ` Refactoring in Emacs (was: Note on 109327) Eli Zaretskii 2012-08-01 4:14 ` Refactoring in Emacs Dmitry Antipov 2012-08-01 11:41 ` Refactoring in Emacs : CEDET Eric M. Ludlam 2012-08-01 14:50 ` Eli Zaretskii 2012-08-01 23:42 ` Eric Ludlam 2012-08-01 22:41 ` Refactoring in Emacs Richard Stallman 2012-08-01 14:05 ` Jason Rumney 2012-07-31 15:16 ` Note on 109327 Jan Djärv
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).