:: Home :: Change Log :: Latest version: 0.4.2 SourceForge.net

Logo

About

ρEmacs is a preconfigured distribution of GNU Emacs editor for Microsoft Windows. It offers nearly GNU/Linux Emacs experience in Windows with minimum configuration efforts. A set of additional GNU command-line and development tools is available through the network installer.

Discontinued

ρEmacs is discontinued as an integrated development environment. Its SourceForge distribution is frozen and will not be updated anymore. Please update the installed components manually if you still want to use ρEmacs as an IDE. See a lighter version of ρEmacs on GitHub.

Downloads

The components of ρEmacs distribution

IMPORTANT: any component could be manually upgraded or downgraded by the replacement of the contents of its subfolder under `<ρEmacs Installation Directory>/bin'.

Software Details

The current version of ρEmacs includes version 27 of GNU Emacs text editor with (now extinct) EmacsW32 extension package (use M-x customize-group RET emacsw32 to explore what it offers). It is not recommended to install ρEmacs at the write-protected system folders.

Emacs Home Directory

ρEmacs installer will ask where do you want to store your personal settings and data. The following three options are available:

  • Create sandbox environment - installer will ask you to manually specify the path of ρEmacs home directory.
  • Portable installation - ρEmacs will be installed as a portable distribution. In this case Emacs will use the directory named `home' at the root of the installation as user's personal directory. Installer will also not create shortcuts or perform any other system integration.
  • Always use the environment of a current user - Emacs will always use a subfolder inside `My Documents' folder of a current user.

You can change the path of the home directory of a non-portable ρEmacs installation at any time through the submenu item named `Set Home Directory' under the top `((' menu. It is recommended to choose a path without spaces or non-ASCII characters for the ρEmacs HOME. The current path to ρEmacs HOME is available in `About Rho' buffer, under the Emacs `Help' menu.

It is also possible to set Emacs home directory through /HOME command-line argument of the rho command-line utility (see `System-wide tools' section):

rho /HOME:<path to a directory> (e.g.: rho /HOME:D:\gnu\home)

Rho will not create component-related directories in it if the additional /GUEST switch is specified.

Installing Third Party Emacs Extensions

Automated installation

Automated package installation is possible through the MELPA repository available with M-x list-packages command.

Manual installation

To install a package manually, you need to place it inside `<ρEmacs Home>/.emacs.d' directory (which is already added to Emacs load path). There could be two kinds of extensions:

  1. A single-file extension. In this case it is just necessary to put the corresponding .el file into `.emacs.d' folder, for example: `<ρEmacs Home>/.emacs.d/foo-package.el'
  2. If an extension consists of multiple files, you need to put them into the corresponding subfolder under `.emacs.d'. You will also need to add this subfolder to Emacs load path. For example, place the following elisp code at your `<ρEmacs Home>/.emacs' initialization file: (add-to-list 'load-path "~/.emacs.d/some-mode/") to inltialize some-mode.
Then you should initialize the package according to its manual, for example, by placing `(require 'some-mode)' line into the `~/.emacs'.


ρEmacs takes care of the configuration of some org-mode tools that are very tedious to set up manually:

org-protocol

RHO installer is able to automatically configure org-protocol to capture links and selected text from web browsers. Notably, in the case of western system locales it should seamlessly work with Org Capture extension (Chrome, Firefox) without any additional configuration. More complex capture schemes are possible. By default, captures are saved at the file named ~/org/capture.org (configurable through the org-default-notes-file variable).

org-wiki

org-wiki package offers a firm foundation for a personal knowledge base. Its clip.jar utility is included into the distribution (Java runtime is required). The default wiki root is located at ~/org/wiki.



It is possible to install the following Lisp dialects with ρEmacs:

Lisp dialect Version Emacs mode Dependency management1 Requirements
Clojure 1.10.1 Cider Leiningen 2 Java 1.8 or higher
Clozure CL 1.12 SLIME Quicklisp -
SBCL 2.0 SLIME Quicklisp -
CLISP 2.49 SLIME Quicklisp -
ABCL 1.7 SLIME Quicklisp Java 1.8 or higher
ECL2 20.4.24 SLIME Quicklisp Visual C++ compiler
Racket 7.7 Geiser PLaneT -

1 For the detailed information about dependency management see `Dependency Management' section below.
2 Will not work if path to ρEmacs home directory contains spaces or non-ASCII characters.
   To use the C++ compiler with ECL you need to manually set the following system environment variables:
     VC_INSTALL_DIR=<path to Visual C++ build tools>/bin
     WIN_SDK_DIR=<path to Windows SDK>
   The values above could be obtained by issuing the following commands in Visual Studio Developer Shell:
     echo %VCToolsInstallDir%
     echo %WindowsSdkDir%

SLIME is a Emacs library that is used to interact with Common Lisp implementations from the editor (Scheme lang. implementation included in ρEmacs uses another Emacs enhancement library - Geiser).

HINT: you can launch any installed Common Lisp implementation using M-- M-x slime <RET> implementation-name <RET> Emacs keyboard shortcut. Use the <TAB> key after the first <RET> to list available implementation names.

IMPORTANT: what to do if a SLIME REPL evaluation request freezes? If you are running a multithreaded Lisp, you can save the existing Lisp environment by recurrent connection to the corresponding Lisp process. To accomplish this, use the M-x slime-connect command or the command from the previous paragraph. For example, if you are running Clozure CL, type M-- M-x slime <RET> ccl <RET> and answer 'No' to the following SLIME question. Clozure then will create additional thread in the current Lisp environment, and you could continue the work.

lispx-proxy

With lispx-proxy you can easily launch Common Lisp, Clojure or Scheme files as scripts and create more complex application distributions.

lispx-proxy is fully integrated into ρEmacs, and you could access all ρEmacs ASDF repositories while executing Common Lisp code.

Emacs Command Shell

Emacs has ability to emulate command shell, which could run Lisp implementations without overhead made by Quicklisp or SLIME's Swank. This may be useful when you want to reduce the memory footprint of a generated program binary. See what commands Rho Shell offers by issuing `list-commands' inside it.

It is also possible to run any Lisp implementation out of Emacs using system-wide lispx-proxy. For example, you could run SBCL command-line REPL with the following command: lispx -i sbcl --repl issued in your regular Windows shell. To run Clojure REPL type lispx -l clojure --repl in your command prompt. Common Lisp package management systems are not automatically available with this scenario, although the REPL or scripts could use any preinstalled ASDF-systems or Java/Clojure libraries from `<ρEmacs Home>/clojure/lib'.

Common Lisp HyperSpec

If necessary, ρEmacs allows to install a local copy of Common Lisp HyperSpec and browse keyword documentation from SLIME using C-c C-d h keyboard shortcut.

Dependency Management

Common Lisp

¤ ASDF Repository Structure ¤

There are several places which are considered by ρEmacs as ASDF repositories:

  • <HOME>\lisp\repository - a common repository to manually place third party ASDF-systems;
  • <HOME>\lisp - a repository for folders of work-in-progress ASDF systems and lispx distributions (use it for development);
  • <HOME>\.quicklisp\dists\quicklisp\software - a Quicklisp repository for automatically installed systems;

where <HOME> is the ρEmacs home directory. It is necessary to place directories with ASDF systems in one of these folders to make them accessible by ASDF. In addition, you can store Leiningen Clojure projects in <HOME>\clojure directory (it has no special meaning for Leiningen).

It is possible to disable any ASDF repository (including the repositories inside lispx-proxy executable source distributions) by placing a file named `.noindex' into it.

¤ Qukclisp ¤

Quicklisp is automatically preloaded for CL implementations with built-in ASDF2 or above (currently for all implementations included into ρEmacs). It is immediately possible to use ql:system-apropos and ql:quickload functions (for details see the manual at Quicklisp home site).

Clojure

You can manage Clojure dependencies with the Leiningen build tool and Clojars repository. A typical use case looks like the following:

  • M-x shell - run Emacs command shell
  • cd "~/clojure" - change the current dir. to the clojure user directory under the ρEmacs home directory
  • lein new test-project - create new project named `test-project'
  • cd test-project - step into the project directory
  • lein deps - download and install required dependencies (you have to manually configure dependencies in project.clj before this step).
  • M-x cider-jack-in - load newly-created project with Cider, (it will use Clojure binary from the project dependencies for execution, not a binary included into ρEmacs)

WARNING: a Clojure Java process may remain in memory after Emacs shutdown when Cider nrepl was not terminated through M-x cider-quit.

Racket

There is currently poor support of Scheme and Racket in ρEmacs. For package management you can use the built-in Racket PLaneT facility according to the documentation. ρEmacs brings nothing special in this case.

Fasl Cache

Common Lisp implementations included in ρEmacs use ASDF2 translation facility to manage location of compiled fasl files. By default, compiled files are placed into `.fasl-cache' subfolder of the ρEmacs home directory. Fasl cache could be cleaned with `Clear Fasl Cache' menu item under the `((' menu group. It may be the first thing to do when something fails by no obvious reason.



Item Version Included tools and libraries
Python 2.7.13 The default Python pip package manager is available as the `pip2' command
Python 3.9.0 The default Python pip package manager is available as the `pip3' command
OpenJDK 15.0.1 Apache ANT 1.10.6, Apache Maven 3.6.3, Gradle 6.5
MinGW-w64 installed by pacman Boost



The `rho' and `rhoc' utilities are available through system PATH and could be used to open files from command line or to use Emacs as an external editor in some applications. The utilities accept only one file argument, though.

The `lispx' command is also available at the command prompt and could be used for Lisp scripting. Common Lisp scripts are able to use all ASDF systems installed into ρEmacs repositories, Clojure scripts may load libraries placed in the `<ρEmacs Home>/clojure/lib' directory.

Useful Links

© 2010-2020 g/christensen (gchristnsn.at.gmail.com)