[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] IDE for Beginners

From: Jeremy Steward
Subject: Re: [Chicken-users] IDE for Beginners
Date: Wed, 22 Apr 2015 22:31:30 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0

Hash: SHA1

Hey all, I've worked using CHICKEN on Windows recently, and while I
don't want to cite a holy war, I'll try to weigh in where I can. The
below thoughts are my own, so don't treat this as if I'm dictating
which editor is best, it's just my opinion. This is also my first
message on the mailing list, so hi!

First and foremost, I am unaware of any general purpose IDE for any
Scheme language outside of DrRacket, so I cannot recommend something
specially tailored. I imagine you really just want to be able to send
text to the REPL, whether it's within the editor itself or something
better than cmd.exe. The options then become one of the following:

* SublimeText / SublimeREPL (version 2 or 3)
* Emacs + Geiser
* Emacs + SLIME
* Vim + slimv
* Any editor + a better console emulator to paste code in

I use / have used all of the above with the exception of SublimeText,
so I have a fairly rough idea of how each of them plays out. The best
Scheme development experience in my opinion is Emacs + Geiser
(, but it's not the easiest to take
advantage of, mostly because it requires that you be able to call csi
from the cmd.exe on Windows. As someone who mostly takes advantage of
CHICKEN via cygwin, this poses a problem as you need to ensure you
don't link CHICKEN to cygwin.dll when building. If this is over your
head, or you don't know what cygwin is, you likely don't have to worry
about it.

Emacs + SLIME comes close, but the chicken-slime egg doesn't contain
all the features that you expect from a full SWANK server for various
reasons (things like undef, etc.), and requires that you have a
separate console window running the local SWANK server, which may or
may not be annoying.

Vim + slimv is basically the same as Emacs + SLIME, and is personally
what I use. I like vim for various reasons, mostly due to preference
of the keybinds (which are slightly harder to learn than Emacs, to be
fair). A lot of Lisp/Scheme users will probably tell you to leave vim
behind since Emacs is the holy gospel of parentheses development, but
honestly it's not much worse and after a little customization I
believe it to be better for my workflow.

All said and done, Geiser is a much better (IMO) way of interacting
with Scheme code / the REPL, and is likely where you'll see more
developments in the future. My understanding here is that the author
of the chicken-slime egg is the same person who contributed the code
necessary to get chicken working with scheme.

If you want to set up Emacs with either SLIME or Geiser easily, be
sure to check out Spacemacs (,
which is an interesting project to get an Emacs installation that's
easy to set up and easy to configure for beginners. You can even use
vim keybinds via Emacs' Evil plugin, if you want, but I think in this
case you'd likely not want to. It asks you what keybinds you want to
use when you first start it up, so it doesn't really matter.

Lastly, if you think all the above is still too much effort and you
just want to use Notepad++ or some other text editor, and you just
want to be able to easily paste code into a terminal, check out cmder
on Windows ( It's a better
terminal emulator that wraps around cmd.exe and comes with some nicer
defaults. You can paste code easily using Ctrl+Shift+v or
Shift+insert, and most of the keybinds are customizable if you really
want it. Although it's not as integrated as Emacs + Geiser or Emacs +
SLIME, it is one of the easier solutions to get up and running. I
personally use cmder for everything when I'm on windows, from cygwin
shells to Powershell to the very occasional cmd.exe.

That's about all I can say about development on Windows. Unfortunately
we don't have a fully fledged IDE like DrRacket, but there's some
pretty cool stuff out there to get started.

If you do have further questions regarding any of the above, don't
hesitate to email me, as I can try to help walk you through the
process (unless you're trying to use SublimeText, haha).


P.S. As a final note Windows Powershell is not bad at all, it's just
not bash / zsh. In terms of functionality it's quite good, and with
chocolatey/PSReadline it gets even better. Anyways, food for thought.

On 22/04/15 04:25 AM, mfv wrote:
> Hello Abby,
> please forgive me the late and short reply. I am currently under an
> extreme time shortage due to business and family matters (yes, best
> of the world at once).
> I would suggest you to try the solution that worked for me back
> then.
> I got my chicken emacs package to work with the kind help of
> 'bahman', whom I met either on this list or in #chicken.
> Unfortunalty, I did not write down any step by step guide back
> then. However, as far I can remember, the usage of the package was
> fairly simple: add the package it to your folder, and run C-u M-X
> run-scheme on a frame.
> The package can be found at:
>  Cheers,
> Piotr
> On Mon, Apr 13, 2015 at 01:10:09PM -0700, Abby A wrote:
>>> [Chicken-users] IDE for Beginners 
>>> <
>>> <
>>> Tue, 02 Dec 2014 05:12:32 -0800 
>>> <
Hi there,
>>> I am currently using Sublime Text 2 with Sublime REPL to fool
>>> around with Chicken Scheme. It does not work perfect, but until
>>> now it has been the best solution apart from using the REPL in
>>> the command prompt in Windows 7.
>>> However, it seems that sublimeREPL can not handle larger data
>>> structures. I froze once I read it a 20 kB cvs file.
>>> I have fooled around with a couple of other editors that have a
>>> REPL functionality, notably LightTable and Emacs. I liked the
>>> first option a lot, and was definatly overwhelmed bu the
>>> second. Emacs might be extremely usful, but I do not plan to
>>> learn all those crypting commands to learn to write and REPL
>>> some scheme code.
>>> Is there a simplified version of EMACS with an installer for
>>> Windows based systems?
>>> What light weight REPL-IDE solution do you use except Emacs?
>>> Windows Power Shell (this was a joke.. )?
>>> Any nice guides on how to set up ST2/SublimeREPL properly?
>>> Cheers,
>>> Piotr
>> Hello Piotr, I am trying to run chicken scheme in emacs in a REPL
>> type mode with scheme file in upper-half window and REPL in the
>> lower-half window and to be able to seamlessly communicate.
>> I am confused about my settings and it does not work properly.
>> When I type C-c C-c after a simple define, I get something like
>> this in the lower REPL.
>> (c) 2008-2013, The Chicken Team (c) 2000-2007, Felix L.
>> Winkelmann Version (stability/4.8.0) (rev 5bd53ac) 
>> linux-unix-gnu-x86 [ manyargs dload ptables ] compiled 2013-10-03
>> on aeryn.xorinia.dim (Darwin)
>> #;1> Error: unbound variable: compile
>> Call history:
>> <syntax>      (compile (quote (begin (define (mult6 x) (* x
>> 6))))) <syntax>      (quote (begin (define (mult6 x) (* x 6)))) 
>> <syntax>      (##core#quote (begin (define (mult6 x) (* x 6)))) 
>> <eval>      (compile (quote (begin (define (mult6 x) (* x 6)))))
>> <--
>> Basically, I need some help and explanation on your instructions
>> to move step by step with proper understanding of the system of
>> communication assumed by you so I can debug it.
>> There is a lot of confusion simply because of several systems.
>> Geiser only supports guile and racket. The quack.el under ubuntu
>> release - "Ubuntu 14.04.2 LTS", namely the package
>> "emacs-goodies-el" which gives a broken message but nevertheless
>> installs a bunch of .el files like geiser and quack.
>> Definitely, I need some help and pointers with your Generosity.
>> cheers Abby
>> Here is a diagnostic from apt.
>> % apt show emacs-goodies-el Package: emacs-goodies-el Priority:
>> optional Section: editors Installed-Size: 3,592 kB Maintainer:
>> Ubuntu Developers <address@hidden> 
>> Original-Maintainer: Peter S Galbraith <address@hidden> Version:
>> 35.8ubuntu2 Replaces: emacs-goodies-extra-el Provides:
>> emacs-goodies-extra-el Depends: emacs24 | emacsen, bash (>=
>> 2.05a) | bash-static, dpkg (>= 1.15.4) | install-info Recommends:
>> dict, wget, perl-doc Download-Size: 654 kB Bugs:
>> Origin: Ubuntu 
>> Supported: 5y APT-Manual-Installed: yes APT-Sources:
>> trusty/main i386 Packages 
>> Description: Miscellaneous add-ons for Emacs This package
>> contains: align-string - align string components over several
>> lines; all - edit all lines matching a given regexp; apache-mode
>> - major mode for editing Apache configuration files; ascii -
>> ASCII code display for character under point; auto-fill-inhibit -
>> finer grained control over auto-fill-mode; bar-cursor - change
>> your cursor to a bar instead of a block; bm - visible bookmarks
>> in buffers; boxquote - quote texts in nice boxes; browse-huge-tar
>> - browse tar files without reading them into memory; 
>> browse-kill-ring - browse, search, modify the kill ring; clipper
>> - save strings of data for further use; coffee - now Emacs can
>> even brew coffee; color-theme - changes the colors used within
>> Emacs; csv-mode - major mode for comma-separated value files; 
>> ctypes - enhanced Font lock support for custom defined types; 
>> dedicated - make a window dedicated to a single buffer; df -
>> display in the mode line space left on devices; dict - wrapper
>> around the 'dict' command. (Depends on bash and dict) diminish -
>> shorten or erase modeline presence of minor modes; dir-locals -
>> provides directory-wide local variables; edit-env - display,
>> edit, delete and add environment variables; egocentric -
>> highlight your name inside emacs buffers; eproject - assign files
>> to projects, programatically ff-paths - $PATH-like searching in
>> C-x C-f; filladapt - enhances Emacs's built-in adaptive fill; 
>> floatbg - slowly modify background color; framepop - display
>> temporary buffers in a dedicated frame; graphviz-dot-mode.el -
>> mode for the dot-language used by graphviz (att). 
>> highlight-beyond-fill-column - highlight lines that are too
>> long; highlight-completion - highlight completions in the
>> minibuffer; highlight-current-line - highlight line where the
>> cursor is; home-end - alternative Home and End commands; htmlize
>> - HTML-ize font-lock buffers; initsplit - split customizations
>> into different files; joc-toggle-buffer - fast switching between
>> two buffers; joc-toggle-case - a set of functions to toggle the
>> case of characters; keydef - a simpler way to define key
>> mappings; keywiz - Emacs key sequence quiz; lcomp -
>> list-completion hacks; maplev - major mode for Maple; map-lines -
>> map a command over lines matching a regexp; markdown-mode - major
>> mode for editing Markdown files; marker-visit - navigate through
>> a buffer's marks in order; matlab - major mode for MatLab dot-m
>> files; minibuf-electric -  electric minibuffer behavior from
>> XEmacs; minibuffer-complete-cycle - cycle through the
>> *Completions* buffer; miniedit - enhanced editing for minibuffer
>> fields; mutt-alias - lookup and insert the expansion of mutt mail
>> aliases; muttrc-mode - major mode for editing Mutt config files; 
>> obfusurl - obfuscate an URL; pack-windows - resize all windows to
>> display as much info as possible; perldoc - show help for Perl
>> functions and modules. (Depends on perl-doc); pod-mode - major
>> mode for editing POD files; pp-c-l - display Control-l characters
>> in a pretty way; projects - create project-based meaningful
>> buffer names; prot-buf - protect buffers from accidental
>> killing; protocols - perform lookups in /etc/protocols; quack -
>> enhanced support for editing and running Scheme code; rfcview -
>> view IETF RFCs with readability-improved formatting; services -
>> perform lookups in /etc/services; session - saves settings
>> between Emacs invocations and visits to a file; setnu -
>> setnu-mode, a vi-style line number mode; shell-command - enables
>> tab-completion for shell-command; show-wspace - highlight
>> whitespaces of various kinds; silly-mail - generate bozotic mail
>> headers; slang-mode.el - a major-mode for editing S-Lang
>> scripts; sys-apropos - interface for the *nix apropos command; 
>> tabbar - Display a tab bar in the header line; tail - "tail -f" a
>> file or a command from within Emacs; tc - cite text with proper
>> filling; thinks - quote texts in cartoon-like think bubbles; tlc
>> - major mode for editing Target Language Compiler scripts; tld -
>> explain top-level domain names; todoo - major mode for editing
>> TODO files; toggle-option - easily toggle frequently toggled
>> options; twiddle - mode line hacks to keep you awake; under -
>> underline a region with ^ characters; upstart-mode - mode for
>> editing upstart files; xrdb-mode - mode for editing X resource
>> database files. . See /usr/share/doc/emacs-goodies-
>>> el/README.Debian.gz for a short description of all files, or
>>> the Info node `emacs-goodies-el' for details.
> _______________________________________________ Chicken-users
> mailing list address@hidden 

- -- 
Jeremy Steward

Version: GnuPG v2


reply via email to

[Prev in Thread] Current Thread [Next in Thread]