all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Managing environments (Python venv, guix environment, etc.)
Date: Tue, 26 Jul 2016 05:08:31 +0300	[thread overview]
Message-ID: <6626aaa2-caa5-48cb-2898-931c4eae4e5c@yandex.ru> (raw)
In-Reply-To: <83oa5ltzy0.fsf@gnu.org>

On 07/25/2016 08:00 PM, Eli Zaretskii wrote:

>> Couldn't that be fixed?
>
> We try, but it isn't always easy.  Here's one example, from
> file-truename:
>
>       (let ((handler (find-file-name-handler filename 'file-truename)))
> 	;; For file name that has a special handler, call handler.
> 	;; This is so that ange-ftp can save time by doing a no-op.
> 	(if handler
> 	    (setq filename (funcall handler 'file-truename filename)
> 		  done t)
> 	  (let ((dir (or (file-name-directory filename) default-directory))
> 		target dirfile)
> 	    ;; Get the truename of the directory.
> 	    (setq dirfile (directory-file-name dir))
> 	    ;; If these are equal, we have the (or a) root directory.
> 	    (or (string= dir dirfile)
> 		(and (memq system-type '(windows-nt ms-dos cygwin nacl))
> 		     (eq (compare-strings dir 0 nil dirfile 0 nil t) t))
>
> As you see, we only apply the MS-Windows specific treatment to files
> which don't have a handler, on the assumption that those which do are
> not subject to rules that govern local files on MS-Windows.

Maybe default handler implementation could bind the handlers alist to 
nil and call file-truename again.

>> Consider: if we just add a new defgeneric (or two) to project.el, any
>> specialized environment implementation would either have to provide its
>> own full project implementation (i.e. it'll be unable to use
>> vc-project), or it'll have to define specialized implementations of
>> these methods just for certain types of projects it knows about.
>
> Why can't the default implementation behave as if "environments"
> didn't exist?

Then those projects will miss out on Guix, and similar, integrations.

> Then the behavior will be exactly as it is now, no?

It would. That doesn't sound optimal to me.

My point is, whether a project uses Guix, or a similar tool, should be 
in vast majority of cases orthogonal to the type of the project 
(language used, frameworks, configuration file format, etc).

So far I'm inclined to believe that there should be about as many 
project implementations as there are project file formats (e.g. Maven, 
Ant, Autotools, Gradle configs, specialized formats used by other 
editors, etc). There's no reason to multiply that by the number of 
environment types we want to support.



  reply	other threads:[~2016-07-26  2:08 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-14 21:36 Managing environments (Python venv, guix environment, etc.) sbaugh
2016-07-15 16:26 ` Stefan Monnier
2016-07-17 22:41   ` sbaugh
2016-07-18 10:15     ` Andreas Röhler
2016-07-18 14:46     ` Stefan Monnier
2016-07-18 19:13       ` sbaugh
2016-07-19 13:39         ` Stefan Monnier
2016-07-24  3:35         ` Dmitry Gutov
2016-07-24  8:25           ` sbaugh
2016-07-24 23:08             ` Dmitry Gutov
2016-07-21  0:32       ` sbaugh
2016-07-22 20:19         ` Stefan Monnier
2016-07-23  7:10           ` Eli Zaretskii
2016-07-24  3:26             ` Dmitry Gutov
2016-07-24  8:25               ` sbaugh
2016-07-24 14:28                 ` Eli Zaretskii
2016-07-24 17:45                   ` sbaugh
2016-07-24 17:58                     ` Eli Zaretskii
2016-07-24 19:05                       ` Spencer Baugh
2016-07-24 19:36                         ` Eli Zaretskii
2016-07-25  4:50                           ` sbaugh
2016-07-25 17:04                             ` Eli Zaretskii
2016-07-28  0:47                               ` sbaugh
2016-07-24 23:04                 ` Dmitry Gutov
2016-07-25  2:37                   ` Eli Zaretskii
2016-07-25  5:01                     ` sbaugh
2016-07-25 17:06                       ` Eli Zaretskii
2016-07-25  7:07                   ` Michael Albinus
2016-07-25 12:49                     ` Dmitry Gutov
2016-07-25 13:03                       ` Michael Albinus
2016-07-25 13:06                         ` Dmitry Gutov
2016-07-25 13:41                         ` Stefan Monnier
2016-07-28  0:02                         ` sbaugh
2016-07-28  9:34                           ` Michael Albinus
2016-07-28 14:42                           ` Eli Zaretskii
2016-07-29 17:59                             ` sbaugh
2016-07-29 18:59                               ` Eli Zaretskii
2016-07-29 19:20                                 ` Stefan Monnier
2016-07-30  6:57                                   ` Eli Zaretskii
2016-07-30 14:42                                     ` Stefan Monnier
2016-07-30 15:56                                       ` Eli Zaretskii
2016-07-29 20:57                                 ` sbaugh
2016-07-30  7:34                                   ` Eli Zaretskii
2016-07-30 13:30                                     ` sbaugh
2016-07-30 16:17                                       ` Eli Zaretskii
2016-07-30 11:24                                   ` Michael Albinus
2016-07-29 18:42                           ` Stefan Monnier
2016-07-29 19:03                             ` Eli Zaretskii
2016-07-26  2:36                   ` Stefan Monnier
2016-07-24 14:24               ` Eli Zaretskii
2016-07-25  0:05                 ` Dmitry Gutov
2016-07-25 17:00                   ` Eli Zaretskii
2016-07-26  2:08                     ` Dmitry Gutov [this message]
2016-07-26  3:06                       ` Stefan Monnier
2016-07-26 10:45                         ` Michael Albinus
2016-07-26 12:46                           ` Stefan Monnier
2016-07-26 14:49                       ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2016-07-28 10:01 Spencer Baugh
     [not found] <87shuuvzz6.fsf@totally-fudged-out-message-id>
2016-07-28 10:08 ` Michael Albinus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6626aaa2-caa5-48cb-2898-931c4eae4e5c@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.