dimitri/el-get — Issue #490: Windows: el-get does not byte compile if shell-file-name is set
Author: jleechpe
Created: 2012-01-03 18:10:48+00:00
State: open

When trying to install el-get through (using my `.emacs.d/` configuration. Using `emacs.exe -q` it succeeds):

(unless (require 'el-get nil t)
(url-retrieve
"https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(let (el-get-master-branch)
(end-of-buffer)
(eval-print-last-sexp)))))

It fails with the following error:

Debug on Error enabled globally
Debugger entered--Lisp error: (file-error "Cannot open load file" "d/:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile")
load("d\\:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile" nil t)
command-line-1(("-f" "toggle-debug-on-error" "-l" "d\\:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile" "-f" "el-get-byte-compile-from-stdin"))
command-line()
normal-top-level()

Backtrace:

Debugger entered--Lisp error: (error "el-get: byte-compile el-get could not byte-compile el-get")
signal(error ("el-get: byte-compile el-get could not byte-compile el-get"))
error("el-get: %s %s" "byte-compile" "el-get could not byte-compile el-get")
(if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm))
(let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-file "el-get"))) (dummy (when infile (with-temp-file infile (insert (prin1-to-string stdin))))) (dummy (message "el-get is waiting for %S to complete" cname)) (status (apply startf program infile cbuf t args)) (message (plist-get c :message)) (errorm (plist-get c :error)) (next (cdr commands))) (when el-get-verbose (message "%S" (with-current-buffer cbuf (buffer-string)))) (if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package))))
(if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-file "el-get"))) (dummy (when infile (with-temp-file infile (insert (prin1-to-string stdin))))) (dummy (message "el-get is waiting for %S to complete" cname)) (status (apply startf program infile cbuf t args)) (message (plist-get c :message)) (errorm (plist-get c :error)) (next (cdr commands))) (when el-get-verbose (message "%S" (with-current-buffer cbuf (buffer-string)))) (if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))) (let* ((startf (if shell (function start-process-shell-command) (function start-process))) (process-connection-type nil) (proc (apply startf cname cbuf program args))) (mapc (lambda (x) (process-put proc x (plist-get c x))) c) (process-put proc :el-get-sources el-get-sources) (process-put proc :el-get-package package) (process-put proc :el-get-final-func final-func) (process-put proc :el-get-start-process-list (cdr commands)) (when stdin (process-send-string proc (prin1-to-string stdin)) (process-send-eof proc)) (set-process-sentinel proc (quote el-get-start-process-list-sentinel)) (when filter (set-process-filter proc filter))))
(let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :buffer-name)) (killed (when (get-buffer cbuf) (kill-buffer cbuf))) (filter (plist-get c :process-filter)) (program (plist-get c :program)) (shell (plist-get c :shell)) (args (if shell (mapcar (function shell-quote-argument) (plist-get c :args)) (plist-get c :args))) (sync (if (plist-member c :sync) (plist-get c :sync) el-get-default-process-sync)) (stdin (plist-get c :stdin)) (default-directory (if cdir (file-name-as-directory (expand-file-name cdir)) default-directory))) (if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-file "el-get"))) (dummy (when infile (with-temp-file infile (insert ...)))) (dummy (message "el-get is waiting for %S to complete" cname)) (status (apply startf program infile cbuf t args)) (message (plist-get c :message)) (errorm (plist-get c :error)) (next (cdr commands))) (when el-get-verbose (message "%S" (with-current-buffer cbuf (buffer-string)))) (if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))) (let* ((startf (if shell (function start-process-shell-command) (function start-process))) (process-connection-type nil) (proc (apply startf cname cbuf program args))) (mapc (lambda (x) (process-put proc x (plist-get c x))) c) (process-put proc :el-get-sources el-get-sources) (process-put proc :el-get-package package) (process-put proc :el-get-final-func final-func) (process-put proc :el-get-start-process-list (cdr commands)) (when stdin (process-send-string proc (prin1-to-string stdin)) (process-send-eof proc)) (set-process-sentinel proc (quote el-get-start-process-list-sentinel)) (when filter (set-process-filter proc filter)))))
(if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :buffer-name)) (killed (when (get-buffer cbuf) (kill-buffer cbuf))) (filter (plist-get c :process-filter)) (program (plist-get c :program)) (shell (plist-get c :shell)) (args (if shell (mapcar (function shell-quote-argument) (plist-get c :args)) (plist-get c :args))) (sync (if (plist-member c :sync) (plist-get c :sync) el-get-default-process-sync)) (stdin (plist-get c :stdin)) (default-directory (if cdir (file-name-as-directory (expand-file-name cdir)) default-directory))) (if sync (let* ((startf (if shell (function call-process-shell-command) (function call-process))) (infile (when stdin (make-temp-file "el-get"))) (dummy (when infile (with-temp-file infile ...))) (dummy (message "el-get is waiting for %S to complete" cname)) (status (apply startf program infile cbuf t args)) (message (plist-get c :message)) (errorm (plist-get c :error)) (next (cdr commands))) (when el-get-verbose (message "%S" (with-current-buffer cbuf (buffer-string)))) (if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))) (let* ((startf (if shell (function start-process-shell-command) (function start-process))) (process-connection-type nil) (proc (apply startf cname cbuf program args))) (mapc (lambda (x) (process-put proc x (plist-get c x))) c) (process-put proc :el-get-sources el-get-sources) (process-put proc :el-get-package package) (process-put proc :el-get-final-func final-func) (process-put proc :el-get-start-process-list (cdr commands)) (when stdin (process-send-string proc (prin1-to-string stdin)) (process-send-eof proc)) (set-process-sentinel proc (quote el-get-start-process-list-sentinel)) (when filter (set-process-filter proc filter))))) (when (functionp final-func) (funcall final-func package)))
(condition-case err (if commands (let* ((c (car commands)) (cdir (plist-get c :default-directory)) (cname (plist-get c :command-name)) (cbuf (plist-get c :buffer-name)) (killed (when (get-buffer cbuf) (kill-buffer cbuf))) (filter (plist-get c :process-filter)) (program (plist-get c :program)) (shell (plist-get c :shell)) (args (if shell (mapcar (function shell-quote-argument) (plist-get c :args)) (plist-get c :args))) (sync (if (plist-member c :sync) (plist-get c :sync) el-get-default-process-sync)) (stdin (plist-get c :stdin)) (default-directory (if cdir (file-name-as-directory (expand-file-name cdir)) default-directory))) (if sync (let* ((startf (if shell ... ...)) (infile (when stdin ...)) (dummy (when infile ...)) (dummy (message "el-get is waiting for %S to complete" cname)) (status (apply startf program infile cbuf t args)) (message (plist-get c :message)) (errorm (plist-get c :error)) (next (cdr commands))) (when el-get-verbose (message "%S" (with-current-buffer cbuf ...))) (if (eq 0 status) (message "el-get: %s" message) (set-window-buffer (selected-window) cbuf) (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next (el-get-start-process-list package next final-func) (when (functionp final-func) (funcall final-func package)))) (let* ((startf (if shell ... ...)) (process-connection-type nil) (proc (apply startf cname cbuf program args))) (mapc (lambda (x) (process-put proc x ...)) c) (process-put proc :el-get-sources el-get-sources) (process-put proc :el-get-package package) (process-put proc :el-get-final-func final-func) (process-put proc :el-get-start-process-list (cdr commands)) (when stdin (process-send-string proc (prin1-to-string stdin)) (process-send-eof proc)) (set-process-sentinel proc (quote el-get-start-process-list-sentinel)) (when filter (set-process-filter proc filter))))) (when (functionp final-func) (funcall final-func package))) ((debug error) (el-get-installation-failed package err)))
el-get-start-process-list("el-get" ((:command-name "byte-compile" :buffer-name "*el-get-build: el-get*" :default-directory "d:/Users/jleechpe/.emacs.d/el-get/el-get/" :shell t :sync t :stdin ("d:/Users/jleechpe/.emacs.d/el-get/el-get") :program "d:/Apps/Emacs/Emacs24/bin/emacs" :args ("-Q" "-batch" "-f" "toggle-debug-on-error" "-l" "d:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile" "-f" "el-get-byte-compile-from-stdin") :message "el-get-build el-get: byte-compile ok." :error "el-get could not byte-compile el-get")) (lambda (package) (el-get-install-or-init-info package (quote build)) (funcall (lambda (package) "Function to call after building the package while installing it." (el-get-save-package-status package "installed") (el-get-invalidate-autoloads package) (el-get-init package)) package)))
(let* ((pdir (el-get-package-directory package)) (wdir (if subdir (concat (file-name-as-directory pdir) subdir) pdir)) (buf (format "*el-get-build: %s*" package)) (default-directory (file-name-as-directory wdir)) (process-list (mapcar (lambda (c) (let* ((split ...) (c ...) (name ...) (program ...) (args ...)) (\` (:command-name ... :buffer-name ... :default-directory ... :shell t :sync sync :program ... :args ... :message ... :error ...)))) commands)) (bytecomp-files (when el-get-byte-compile (el-get-assemble-files-for-byte-compilation package))) (full-process-list (append (when bytecomp-files (list (el-get-byte-compile-process package buf wdir sync bytecomp-files))) process-list)) (build-info-then-post-build-fun (if installing-info post-build-fun (\` (lambda (package) (el-get-install-or-init-info package (quote build)) (funcall (\, ...) package)))))) (el-get-start-process-list package full-process-list build-info-then-post-build-fun))
el-get-build("el-get" nil nil t el-get-post-install-build)
(let* ((sync el-get-default-process-sync) (type (el-get-package-type package)) (hooks (el-get-method type :install-hook)) (commands (el-get-build-commands package)) (checksum (plist-get (el-get-package-def package) :checksum)) (compute-checksum (el-get-method type :compute-checksum))) (when (and checksum (not compute-checksum)) (error "Checksum verification of package %s is not supported with method %s." package type)) (when compute-checksum (let ((computed (funcall compute-checksum package))) (if checksum (if (equal computed (el-get-as-string checksum)) (el-get-verbose-message "el-get: package %s passed checksum with \"%s\"." package computed) (error "Checksum verification failed. Required: \"%s\", actual: \"%s\"." checksum computed)) (el-get-verbose-message "el-get: pakage %s checksum is %s." package computed)))) (run-hook-with-args hooks package) (el-get-build package commands nil sync (quote el-get-post-install-build)))
el-get-post-install("el-get")
(let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get"))
(let* ((package "el-get") (buf (switch-to-buffer "*el-get bootstrap*")) (pdir (file-name-as-directory (concat el-get-root package))) (git (or (executable-find "git") (error "Unable to find `git'"))) (url (or (bound-and-true-p el-get-git-install-url) "http://github.com/dimitri/el-get.git")) (default-directory el-get-root) (process-connection-type nil) (status (call-process git nil (\` ((\, buf) t)) t "--no-pager" "clone" "-v" url package))) (unless (zerop status) (error "Couldn't clone el-get from the Git repository: %s" url)) (let* ((branch (cond ((bound-and-true-p el-get-install-branch)) ((boundp (quote el-get-master-branch)) "master") ((plist-get (with-temp-buffer ... ...) :branch)) ("master"))) (remote-branch (format "origin/%s" branch)) (default-directory pdir) (bstatus (if (string-equal branch "master") 0 (call-process git nil (list buf t) t "checkout" "-t" remote-branch)))) (unless (zerop bstatus) (error "Couldn't `git checkout -t %s`" branch))) (add-to-list (quote load-path) pdir) (load package) (let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get")) (with-current-buffer buf (goto-char (point-max)) (insert "\nCongrats, el-get is installed and ready to serve!")))
(if (require (quote el-get) nil t) nil (unless (file-directory-p el-get-root) (make-directory el-get-root t)) (let* ((package "el-get") (buf (switch-to-buffer "*el-get bootstrap*")) (pdir (file-name-as-directory (concat el-get-root package))) (git (or (executable-find "git") (error "Unable to find `git'"))) (url (or (bound-and-true-p el-get-git-install-url) "http://github.com/dimitri/el-get.git")) (default-directory el-get-root) (process-connection-type nil) (status (call-process git nil (\` ((\, buf) t)) t "--no-pager" "clone" "-v" url package))) (unless (zerop status) (error "Couldn't clone el-get from the Git repository: %s" url)) (let* ((branch (cond ((bound-and-true-p el-get-install-branch)) ((boundp ...) "master") ((plist-get ... :branch)) ("master"))) (remote-branch (format "origin/%s" branch)) (default-directory pdir) (bstatus (if (string-equal branch "master") 0 (call-process git nil (list buf t) t "checkout" "-t" remote-branch)))) (unless (zerop bstatus) (error "Couldn't `git checkout -t %s`" branch))) (add-to-list (quote load-path) pdir) (load package) (let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get")) (with-current-buffer buf (goto-char (point-max)) (insert "\nCongrats, el-get is installed and ready to serve!"))))
(unless (require (quote el-get) nil t) (unless (file-directory-p el-get-root) (make-directory el-get-root t)) (let* ((package "el-get") (buf (switch-to-buffer "*el-get bootstrap*")) (pdir (file-name-as-directory (concat el-get-root package))) (git (or (executable-find "git") (error "Unable to find `git'"))) (url (or (bound-and-true-p el-get-git-install-url) "http://github.com/dimitri/el-get.git")) (default-directory el-get-root) (process-connection-type nil) (status (call-process git nil (\` ((\, buf) t)) t "--no-pager" "clone" "-v" url package))) (unless (zerop status) (error "Couldn't clone el-get from the Git repository: %s" url)) (let* ((branch (cond ((bound-and-true-p el-get-install-branch)) ((boundp ...) "master") ((plist-get ... :branch)) ("master"))) (remote-branch (format "origin/%s" branch)) (default-directory pdir) (bstatus (if (string-equal branch "master") 0 (call-process git nil (list buf t) t "checkout" "-t" remote-branch)))) (unless (zerop bstatus) (error "Couldn't `git checkout -t %s`" branch))) (add-to-list (quote load-path) pdir) (load package) (let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get")) (with-current-buffer buf (goto-char (point-max)) (insert "\nCongrats, el-get is installed and ready to serve!"))))
(let ((el-get-root (file-name-as-directory (or (bound-and-true-p el-get-dir) (concat (file-name-as-directory user-emacs-directory) "el-get"))))) (when (file-directory-p el-get-root) (add-to-list (quote load-path) el-get-root)) (unless (require (quote el-get) nil t) (unless (file-directory-p el-get-root) (make-directory el-get-root t)) (let* ((package "el-get") (buf (switch-to-buffer "*el-get bootstrap*")) (pdir (file-name-as-directory (concat el-get-root package))) (git (or (executable-find "git") (error "Unable to find `git'"))) (url (or (bound-and-true-p el-get-git-install-url) "http://github.com/dimitri/el-get.git")) (default-directory el-get-root) (process-connection-type nil) (status (call-process git nil (\` (... t)) t "--no-pager" "clone" "-v" url package))) (unless (zerop status) (error "Couldn't clone el-get from the Git repository: %s" url)) (let* ((branch (cond (...) (... "master") (...) ("master"))) (remote-branch (format "origin/%s" branch)) (default-directory pdir) (bstatus (if (string-equal branch "master") 0 (call-process git nil ... t "checkout" "-t" remote-branch)))) (unless (zerop bstatus) (error "Couldn't `git checkout -t %s`" branch))) (add-to-list (quote load-path) pdir) (load package) (let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get")) (with-current-buffer buf (goto-char (point-max)) (insert "\nCongrats, el-get is installed and ready to serve!")))))
eval((let ((el-get-root (file-name-as-directory (or (bound-and-true-p el-get-dir) (concat (file-name-as-directory user-emacs-directory) "el-get"))))) (when (file-directory-p el-get-root) (add-to-list (quote load-path) el-get-root)) (unless (require (quote el-get) nil t) (unless (file-directory-p el-get-root) (make-directory el-get-root t)) (let* ((package "el-get") (buf (switch-to-buffer "*el-get bootstrap*")) (pdir (file-name-as-directory (concat el-get-root package))) (git (or (executable-find "git") (error "Unable to find `git'"))) (url (or (bound-and-true-p el-get-git-install-url) "http://github.com/dimitri/el-get.git")) (default-directory el-get-root) (process-connection-type nil) (status (call-process git nil (\` (... t)) t "--no-pager" "clone" "-v" url package))) (unless (zerop status) (error "Couldn't clone el-get from the Git repository: %s" url)) (let* ((branch (cond (...) (... "master") (...) ("master"))) (remote-branch (format "origin/%s" branch)) (default-directory pdir) (bstatus (if (string-equal branch "master") 0 (call-process git nil ... t "checkout" "-t" remote-branch)))) (unless (zerop bstatus) (error "Couldn't `git checkout -t %s`" branch))) (add-to-list (quote load-path) pdir) (load package) (let ((el-get-default-process-sync t) (el-get-verbose t)) (el-get-post-install "el-get")) (with-current-buffer buf (goto-char (point-max)) (insert "\nCongrats, el-get is installed and ready to serve!"))))) nil)
eval-last-sexp-1(t)
eval-last-sexp(t)
eval-print-last-sexp()
(let (el-get-master-branch) (end-of-buffer) (eval-print-last-sexp))
(lambda (s) (let (el-get-master-branch) (end-of-buffer) (eval-print-last-sexp)))(nil)
apply((lambda (s) (let (el-get-master-branch) (end-of-buffer) (eval-print-last-sexp))) nil)
url-http-activate-callback()
url-http-content-length-after-change-function(416 3680 3264)
url-http-wait-for-headers-change-function(1 3680 3679)
url-http-generic-filter(# "HTTP/1.1 200 OK\nServer: nginx/1.0.4\nDate: Tue, 03 Jan 2012 17:38:34 GMT\nContent-Type: text/plain; charset=utf-8\nConnection: keep-alive\nStatus: 200 OK\nX-RateLimit-Limit: 100\nETag: \"414a62bcfebd0976911509150abe5557\"\nX-Frame-Options: deny\nContent-Transfer-Encoding: binary\nXRateLimit-Remaining: 100\nX-Runtime: 12\nContent-Disposition: inline\nContent-Length: 3246\nCache-Control: private\nX-Content-Type-Options: nosniff\n\n;;; el-get-install.el --- installer for the lazy\n;;\n;; Copyright (C) 2010 Dimitri Fontaine\n;\n;; Author: Dimitri Fontaine \n;; URL: http://www.emacswiki.org/emacs/el-get.el\n;; Created: 2010-06-17\n;; Keywords: emacs package elisp install elpa git git-svn bzr cvs apt-get fink http http-tar\n;; Licence: WTFPL, grab your copy here: http://sam.zoy.org/wtfpl/\n;;\n;; This file is NOT part of GNU Emacs.\n;;\n;; bootstrap your el-get installation, the goal is then to use el-get to\n;; update el-get.\n;;\n;; So the idea is that you copy/paste this code into your *scratch* buffer,\n;; hit C-j, and you have a working el-get.\n\n(let ((el-get-root\n	(file-name-as-directory\n	(or (bound-and-true-p el-get-dir)\n	(concat (file-name-as-directory user-emacs-directory) \"el-get\")))))\n\n (when (file-directory-p el-get-root)\n	(add-to-list 'load-path el-get-root))\n\n ;; try to require el-get, failure means we have to install it\n (unless (require 'el-get nil t)\n	(unless (file-directory-p el-get-root)\n	(make-directory el-get-root t))\n\n (let* ((package	\"el-get\")\n	(buf	(switch-to-buffer \"*el-get bootstrap*\"))\n	(pdir (file-name-as-directory (concat el-get-root package)))\n	(git	(or (executable-find \"git\")\n	(error \"Unable to find `git'\")))\n	(url	(or (bound-and-true-p el-get-git-install-url)\n	\"http://github.com/dimitri/el-get.git\"))\n	(default-directory el-get-root)\n	(process-connection-type nil) ; pipe, no pty (--no-progress)\n\n	;; First clone el-get\n	(status\n	(call-process\n	git nil `(,buf t) t \"--no-pager\" \"clone\" \"-v\" url package)))\n\n	(unless (zerop status)\n	(error \"Couldn't clone el-get from the Git repository: %s\" url))\n\n	;; switch branch if we have to\n	(let* ((branch (cond\n	;; Check if a specific branch is requested\n	((bound-and-true-p el-get-install-branch))\n	;; Check if master branch is requested\n	((boundp 'el-get-master-branch) \"master\")\n	;; Read the default branch from the el-get recipe\n	((plist-get (with-temp-buffer\n	(insert-file-contents-literally\n	(expand-file-name \"recipes/el-get.rcp\" pdir))\n	(read (current-buffer)))\n	:branch))\n	;; As a last resort, use the master branch\n	(\"master\")))\n	(remote-branch (format \"origin/%s\" branch))\n	(default-directory pdir)\n	(bstatus\n	(if (string-equal branch \"master\")\n	0\n	(call-process git nil (list buf t) t \"checkout\" \"-t\" remote-branch))))\n	(unless (zerop bstatus)\n	(error \"Couldn't `git checkout -t %s`\" branch)))\n\n	(add-to-list 'load-path pdir)\n	(load package)\n	(let ((el-get-default-process-sync t) ; force sync operations for installer\n	(el-get-verbose t))	; let's see it all\n	(el-get-post-install \"el-get\"))\n	(with-current-buffer buf\n	(goto-char (point-max))\n	(insert \"\\nCongrats, el-get is installed and ready to serve!\")))))\n")

I was able to narrow down the issue to some customization I'd applied to my .emacs to be able to use cygwin's zsh (I get the same error with bash as well) when using `M-x shell` rather than defaulting to cmdproxy.

(if (eq system-type 'windows-nt)
(progn
(setq shell-file-name "zsh")
(setq explicit-shell-file-name shell-file-name)))

By changing the command to:

(unless (require 'el-get nil t)
(url-retrieve
"https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(let (el-get-master-branch
(shell-file-name "cmdproxy.exe"))
(end-of-buffer)
(eval-print-last-sexp)))))

I was able to successfully byte-compile el-get.

I'm uncertain where `d:/Users/...` gets transformed to `d\\:/Users/...` and then subsequently to `d/:/Users/...`, however it would appear to be caused by passing the path to the shell.

This does not actually resolve the issue, when trying to install a package using `M-x el-get-install` I receive the same error (zenburn-theme as a test)

Debug on Error enabled globally
Debugger entered--Lisp error: (file-error "Cannot open load file" "d/:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile")
load("d\\:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile" nil t)
command-line-1(("-f" "toggle-debug-on-error" "-l" "d\\:/Users/jleechpe/.emacs.d/el-get/el-get/el-get-byte-compile" "-f" "el-get-byte-compile-from-stdin"))
command-line()
normal-top-level()

Is there some way to fix the paths that are exported to the shell to avoid this issue (or a variable to customize to force el-get to use `cmdproxy.exe` as it's shell on Windows even if `shell-file-name` is set)?