Here is some working code to let Racket use MPI, from an old homework.
Tag: Lisp
Software Project Management for Emacs: Cask
Johan shared a link for Cask with me. Look like an excellent and well needed tool for serious Emacs development. Serious being open to definition of course.
Dependency and software project management tools seem to slowly drift across language and system stacks, always being re-invented. The study of such systems, and the development of a singular and unified approach in the form of a library looks like a lot of fun and serious hard work, probably only worth pursuing if the result were a PhD.
How to Choose Packages Between Two ELPA Repositories
ELPA makes Emacs v24 even more delightful to use. You may have run into a situation though where you wanted to install different packages from both Marmalade and MELPA. A common problem here is that because the newest version number always gets chosen for installation, MELPA packages always get chosen over Marmalade, and you may not want that. MELPA thankfully has a solution for that in the form of their own package.
The directions to set up MELPA are straightforward, but, one of my super-powers is not make any sense of directions, so I had a heck of a time getting it working. Aaron’s config gave me a clue, but I still didn’t have it working (I liked his namespace prefixing though so). Once I did get it working though it was really clear what I had done wrong, basically the package load and require order was incorrect, so, here is the right way to do it:
- Install the melpa package manually as directed; this gives you package you need to use the filtering functionality.
- Require ‘package to get the ELPA functionality and variables.
- Add the repo(s) to ‘package-archives so that you can pull from them.
- Call package-initialize to find the recently installed melpa package.
- Require ‘melpa to import it and be able to use it.
- Customize the enable and exclude melpa variables to specify what packages to include or exclude from which repositories.
- Call package-refresh-contents to update Emacs’s database of which packages it should use as available for installation.
- Your filtered package list is now available for use, call list-packages to verify.
Here is an example of my situation, I wanted to default to installing the newest package from either GNU or Marmalade for all but two cases where I only wanted the version that was available on MELPA: fill-column-indicator and melpa. Here is the configuration and correct order of calls to make:
(defvar gcr/packages
'(auto-complete
color-theme
color-theme-solarized
diminish
fill-column-indicator
fuzzy
geiser
graphviz-dot-mode
lexbind-mode
melpa
ob-sml
paredit
pretty-mode-plus
rainbow-mode
real-auto-save
sml-mode)
"Packages required at runtime.")
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(require 'melpa)
(setq package-archive-enable-alist '(("gnu")
("marmalade")
("melpa"
fill-column-indicator
melpa)))
(setq package-archive-exclude-alist '(("gnu"
fill-column-indicator
melpa)
("marmalade"
fill-column-indicator
melpa)))
(package-refresh-contents)
(dolist (package gcr/packages)
(when (not (package-installed-p package))
(condition-case err
(package-install package)
(error
(message "%s" (error-message-string err))))))
Scribfile: File and Operating System related Scribble Functionality
http://planet.racket-lang.org/package-source/grettke/scribfile.plt/1/0/planet-docs/scribfile/index.html
Is a little library that provides two forms, one to read a lispy language file into a codeblock and another that makes a system call and renders the results in a verbatim form. Pretty helpful for demos of non-Racket code and who knows what else.
Thanks Racket team, and Danny and Matthew for getting this working.
Scheme: It's Not Just for Factorial Anymore
Scheme: It’s Not Just for Factorial Anymore.
It isn’t.
Simple Scheme
Simple is a Scheme system for learning.
I have to work with a virtual machine that theoretical SECD machine.
Mechanism looking into the internal structure has been incorporated.
Guile-Emacs Continues Forward with GSoC
Guile-Emacs continues forward with GSoC.
Unofficially: R7RS Small has been ratified
Unofficially: R7RS has been ratified.
Congratulations and thanks to all of the working group’s hard, hard work on completing what was by some measures an impossible task.
There will be one more draft to address a few concerns.
Husk: An R5RS-compatible Scheme written in Haskell
Husk is a dialect of Scheme written in Haskell that adheres to the R5RS standard. Advanced R5RS features are provided including continuations, hygienic macros, and a full numeric tower.
(via husk-scheme)
ISLISP
The ISLISP programming language is a member of the Lisp family of programming languages. It attempts to bridge the gap between the various incompatible members of the Lisp family of languages (most notably Common Lisp, Eulisp, LeLisp, and Scheme) by focusing on standardizing those areas of widespread agreement. It is a small language, closer to the size of Scheme than to Common Lisp, for example.
The most recent change to the specification occurred in 2007.
The design of ISLISP had these design goals:
- Compatible with existing Lisp dialects where feasible.
- Provide basic functionality.
- Object-oriented.
- Designed with extensibility in mind.
- Gives priority to industrial needs over academic needs.
- Promotes efficient implementations and applications.
(via islisp.info)
John Cowan mentioned it on scheme-reports, so I was curious.