From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?Q?Przemys=c5=82aw_Wojnowski?= Newsgroups: gmane.emacs.devel Subject: Re: IDE Date: Fri, 16 Oct 2015 13:17:33 +0200 Message-ID: <5620DCCD.8030809@cumego.com> References: <5610207A.2000300@harpegolden.net> <83fv1r3gzp.fsf@gnu.org> <83bncf3f9k.fsf@gnu.org> <5610E0BC.8090902@online.de> <83si5r106e.fsf@gnu.org> <831td9z18h.fsf@gnu.org> <5612E996.7090700@yandex.ru> <83bnc7tavr.fsf@gnu.org> <5618C92A.3040207@yandex.ru> <83a8rrt9ag.fsf@gnu.org> <5618D376.1080700@yandex.ru> <831td3t62e.fsf@gnu.org> <561A6199.1020901@cumego.com> <561B9D87.70504@yandex.ru> <561C2C17.3090503@cumego.com> <561DC1CA.6090901@siege-engine.com> <561E3FB6.8010407@yandex.ru> <561EEFDE.7000809@gmail.com> <561F29D0.3070605@yandex.ru> <561FA79C.30207@gmail.com> <56200D07.30206@yandex.ru> <5620A99E.7080009@cumego.com> <5620D109.2010006@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1444994285 11717 80.91.229.3 (16 Oct 2015 11:18:05 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 16 Oct 2015 11:18:05 +0000 (UTC) Cc: emacs-devel@gnu.org To: Dmitry Gutov , Eric Ludlam Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 16 13:17:56 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zn316-0006CF-AS for ged-emacs-devel@m.gmane.org; Fri, 16 Oct 2015 13:17:44 +0200 Original-Received: from localhost ([::1]:52780 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn315-000556-2X for ged-emacs-devel@m.gmane.org; Fri, 16 Oct 2015 07:17:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53017) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn312-00054l-3Z for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:17:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn30y-0004qQ-P8 for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:17:40 -0400 Original-Received: from smtp23.iq.pl ([86.111.242.228]:36599) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn30y-0004q0-F4 for emacs-devel@gnu.org; Fri, 16 Oct 2015 07:17:36 -0400 Original-Received: (qmail 26570 invoked from network); 16 Oct 2015 11:17:35 -0000 Original-Received: from unknown (HELO [192.168.1.106]) (esperanto@cumego.com@[159.205.196.239]) (envelope-sender ) by smtp22.iq.pl with AES128-SHA encrypted SMTP for ; 16 Oct 2015 11:17:35 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 In-Reply-To: <5620D109.2010006@yandex.ru> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 86.111.242.228 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191741 Archived-At: W dniu 16.10.2015 o 12:27, Dmitry Gutov pisze: > On 10/16/2015 10:39 AM, Przemysław Wojnowski wrote: > >> IIUC someone developing an EDE support (a plugin?) for a build tool can >> provide as many as s/he wants, right? For example for a build tool a >> developer may provide only two definitions: clean and build. > > No, they'll have to extend every relevant project type (thus creating new > types), and in each of them, define clean and build. Or something along these > lines. > > Any user-defined types will miss out, because the author of the build tool > support is not aware of them. IIUC you suggest to use the Bridge Pattern to separate Project Type and Build Tool abstractions and allow to exchange them independently, right? IMHO this is good design and maybe EDE is already built is such way (I'll have to use and read EDE first to get better understanding of it.) (One thing Design Patterns give, except solutions to common design problems, is a common vocabulary to facilitate communication. So instead of writing elaborates on design, one can simply say "We could apply The Bridge between X and Y abstractions", etc.) >> I think that two more features would be helpful: >> - composition of tasks (e.g. run "clean" before "build") > > Don't build tools do that? Some do. But even then a user may be willing to run them in a different way. For example Maven doesn't run "clean" phase by default, when one runs other phases (compile/package/install), so if an user wants to run "clean install" she has to execute two separate commands. But that can be easily defined as one compound command (clean-compile). BTW in the Command Pattern, commands implement a common interface, so an executor doesn't even know what is executed, except that it is a command, which can be a Composite (pattern) Command that implements the same interface. >> - allow user to add own tasks (could be customizations of default tasks, >> like "compile --with-debug-symbols"). > > The command line could be made editable when the "call build tool" command is > invoked with a prefix. Yes, that would be a good addition too. But sooner or later a use has a workflow, a set of commands that she runs every time and it would be good to allow to define in a separate, easily accessible command. >> Correct me if I'm wrong, but EDE (xref and project.el) are open for >> modifications, right? It not "take it as it is or leave it". > > Probably. Not sure what you're really asking. For modifications by whom and how? By contributors. Sometime projects have very restrictive attitude towards new contributions and just reject most of proposals if they are not perfect up front and doesn't solve all their problems at once. >> BTW Why EDE (and CEDET) are in two different repositories (and projects?). >> One is in Emacs sources, another here >> http://sourceforge.net/projects/cedet/ ? > > CEDET is in Emacs sources as well (although is has some omissions). See lisp/cedet. Yes, so when one would like change EDE to, lets say, apply the Bridge pattern, which one should be used?