In the REPL, there are functions that you always want to have handy, no
matter which namespace you are in. One way of achieving this is to put
these functions into a namespace with a short name, like `.`, so you can
refer to them easily. The original idea came from Gary Fredericks, who
also
laurent.pe...@gmail.com writes:
Le mardi 23 septembre 2014, Stuart Sierra the.stuart.sie...@gmail.com a
écrit :
I'm not sure I understand what you mean.
`remove-ns` does not remove the namespace from the set of loaded
namespaces kept by `require`. tools.namespace
laurent.pe...@gmail.com writes:
Just a question so my understanding levels up: are there usecases where one
would use the current behavior of removing a namespace not also removing it
from *loaded-libs* (and thus preventing it from being required without
:reload) ?
You can create namespaces
s...@corfield.org writes:
Is that an intentional change? I ask because you claimed the release was
major but non-breaking - and this seems to be a breaking change...?
Did you change `start-chsk-router-loop!` to `start-chsk-router!`? The
former maintains the previous event handler signature
leaven [1] is a component library, much like Stuart Sierra's component,
only it works for both clojure and clojurescript and is simpler.
bakery [2] is a library of leaven components, for both clojure and
clojurescript.
An example web app [3] uses httpkit, sente, weasel, storage-atom,
secretary,
The links in my previous post seem to not be correct:
[1] https://github.com/palletops/leaven
[2] https://github.com/palletops/bakery
[3] https://github.com/palletops/bakery/example-web-app
signature.asc
Description: PGP signature
dsblakewat...@gmail.com writes:
I'm not sure your [3] URL works.
Try https://github.com/palletops/bakery/tree/develop/example-web-app
signature.asc
Description: PGP signature
dsblakewat...@gmail.com writes:
Yeah, I worked back to the original to find the web-app. I note that the
repo seems to default to develop, which results in a lot of errors when I
try to lein repl in example-web-app. (Missing clojars which are, in
fact, missing.)
A `lein install` at the top
ja...@booleanknot.com writes:
If I'm understanding right, the main difference between Leaven and
Component is that Leaven uses *defsystem* to specify an explicit start/stop
ordering, while Component uses its *using* function to define dependencies
between components, and works out the
craft.br...@gmail.com writes:
Is there any good way to use timbre in a project with java libs, e.g. c3p0,
that use java logging APIs?
You might want to look at:
http://ptaoussanis.github.io/timbre/taoensso.timbre.tools.logging.html
Criterium 0.4.2 has been released [1], and is on clojars.
The only update is to issue a warning if TieredStopAtLevel is found in
the JVM arguments. Hopefully this will help alert people trying to
optimise code using lein's default JVM arguments.
Criterium measures the computation time of an
David Pollak feeder.of.the.be...@gmail.com writes:
I have an application where I need multiple independent Clojure contexts
running in the same JVM.
Classlojure [1] can do this for you, taking care of correct
initialisation, and evaluation.
[1] https://github.com/flatland/classlojure
yizhen wei yizhenwe...@gmail.com writes:
I found that my ritz-nrepl takes 25 plus seconds to start. While the nrepl
would only take 10 secs.
The difference is mainly due to the extra jvm process that is started.
I also noticed that the lein ritz-nrepl (or M-x nrepl-ritz-jack-in inside
of
Alembic [1] is a library for adding dependencies to your REPL classpath.
It adds minimal dependencies to your project, while still allowing
resolving of dependencies from clojars, etc. It builds on top of lein,
pomegranate and classlojure.
It records added dependencies, so you can query them
Gary Trakhman gary.trakh...@gmail.com writes:
I made a little proof of concept last night. You could always look at
bytecode that clojure emits in few ways, you can either hack the compiler
yourself, or force AOT in your project and use javap. The first approach
is a bit intrusive, and
Michael Cohen mcohe...@gmail.com writes:
Well, of course everything is handled via reflection, which has a cost. The
question is, can you afford the cost.
Or can the cost be confined to compile time...
In general, I think most of the AWS
apis really aren't concerned with performance,
intronic m...@pheasant.co.nz writes:
Is it possible to set breakpoint using nrepl-ritz?
It is using the latest development code (C-c C-x C-b on the line to
break at). A release should be out containing this in the next few
days.
Can you explain how to use the latest dev code?
Ambrose Bonnaire-Sergeant abonnaireserge...@gmail.com writes:
Now that ClojureWest has finished, I'll gently bump this thread :)
Thanks,
Ambrose
Ambrose,
I had a quick look at this. I tried running with zi:test, and it
complained about a missing dependency on tools.macro. Adding that as a
Warren Lynn wrn.l...@gmail.com writes:
It is using the latest development code (C-c C-x C-b on the line to
break at). A release should be out containing this in the next few
days.
Hugo
I was eager to use the line debugging commands but had no success. After
M-x nrepl-ritz-jack-in,
xumingming64398966xumingming64398...@gmail.com writes:
Is it possible to set breakpoint using nrepl-ritz?
It is using the latest development code (C-c C-x C-b on the line to
break at). A release should be out containing this in the next few
days.
Hugo
--
--
You received this message
Meikel Brandmeyer (kotarak) m...@kotka.de writes:
Hi,
Am Montag, 4. März 2013 13:00:31 UTC+1 schrieb Wolodja Wentland:
It is up to a community to fix things that are broken in their toolset and
Do not use version ranges is IMHO the wrong answer.
Huge +1.
Fixing version ranges seems
Hi Jürgen,
I was just looking for a nice filesystem watcher!
Jürgen Hötzel juer...@hoetzel.info writes:
- Implementation of * clojure.java.io/Coercions * and *
clojure.java.io/IOFactory* protocols for NIO.2 paths.
Does this differ from https://github.com/pjstadig/nio?
Hugo
--
--
Dima B dimath...@gmail.com writes:
I've been going through all the instruction on the nrepl-ritz page
(https://github.com/pallet/ritz/tree/develop/nrepl) as well as nrepl-ritz
threads and I can't seem to get it working due to a mysterious dependency
problem on dynapath.
Which version of
Toby Crawley t...@tcrawley.org writes:
* I can release a new version that is compatible with 0.1.0 and 0.2.x,
requiring you do depend on it (and possibly exclude other versions)
* I can update ritz to use 0.2.1, and Hugo can make a new release (if he
is amenable to that). As far as I
Toby Crawley t...@tcrawley.org writes:
Hugo Duncan writes:
The latter is fine by me. It is about time we had another ritz release for
nrepl.el 1.6 anyway.
I'll send you a PR in a few minutes.
Thanks.
Released in ritz 0.7.0
--
--
You received this message because you are subscribed
Sean Corfield seancorfi...@gmail.com writes:
You'll find your workflow greatly improved by using nrepl (or
slime/swank) and running tests directly from Emacs - and that applies
whether you're using bare clojure.test, midje or expectations.
For nrepl.el, via clojure-test-mode, There is an pull
Leonardo Borges leonardoborges...@gmail.com writes:
Is there an efficient way to work with multiple nrepl sessions in
emacs? I hope I'm just missing something obvious.
nrepl.el master has support for this [1]. Should be available via
MELPA.
Hugo
[1]
phillip.l...@newcastle.ac.uk (Phillip Lord) writes:
I'm build a library which provides a DSL for building ontologies.
Underneath this backs onto a Java API. The library works by provide some
macros, which create Java objects then intern them into the local
namespace.
With the
Brian Marick mar...@exampler.com writes:
I've also noticed that the messages that come from botched
macroexpansions are often not useful in that they contain no clues
about the original source, and sometimes not even a useful reference
to the original namespace.
If these are macros that are
Ryan Cole r...@rycole.com writes:
Hi all, beginner here,
I'm trying to write a Minecraft plugin in Clojure, and use AOT so that the
Minecraft server can load it right up. I've got this much going, and all as
well. The server expect some of my functions in a class that I'm extending
to
Sean Corfield seancorfi...@gmail.com writes:
My understanding is that with pull requests it becomes much harder to
provide accountability for Intellectual Property which is a legal
concern, and that's why we have a Contributor's Agreement.
I wonder if the availability of
Michael Bradley, Jr. michaelsbradle...@gmail.com writes:
Long story short, after I run `slime-connect` in Emacs, I get a warning:
Versions differ: 2010-11-13 (slime) vs. 20101113 (swank). After choosing
to continue, I'm told a connection has been established, but no REPL
appears, and I
Charles Comstock dgti...@gmail.com writes:
Note that unlike the docs listed at ritz/nrepl, I also needed to add an
explicit dependency for clojure-complete 0.2.2. I also needed to use the
MELPA version of nrepl, nrepl-ritz. I still encounter some sort of issue
where it appears that the
Timothy Washington twash...@gmail.com writes:
1) I start from an empty *~/.emacs.d/*
2) I then populate init.el from the example in
ritz/nreplhttps://github.com/pallet/ritz/tree/develop/nrepl
3) I open a lein project and run `*M-x nrepl-ritz-jack-in*`
**) The error I get back is:
*error
Timothy Washington twash...@gmail.com writes:
Yes, I updated *~/.emacs.d/init.el* and *~/.lein/profiles*, as outlined
on that page. But somehow nrepl server thinks *'ritz-nrepl' is not a task*.
Does running `lein ritz-nrepl` from a shell within your project
directory work?
Hugo
--
You
Andy Fingerhut andy.finger...@gmail.com writes:
I've just published some results of measuring the run time of many Clojure
expressions on 5 different JVMs and over a dozen different Clojure versions
at the link below.
lein-sha-version is a leiningen plugin that sets the project version
based on the git SHA of the HEAD of the current branch.
It can be used to create jars with a fixed version, but without the
trappings of a full release version. It provides a simple way of doing
SNAPSHOT type releases without
Lee Hinman matthew.hin...@gmail.com writes:
Hugo Duncan writes:
lein-sha-version is a leiningen plugin that sets the project version
based on the git SHA of the HEAD of the current branch.
It can be used to create jars with a fixed version, but without the
trappings of a full release
Timothy Washington twash...@gmail.com writes:
2) Running emacs with nrepl.el. I fire up *M-x nrepl-ritz-jack-in*
ritz-repl-utils includes a namespace dependency graph in
ritz.repl-utils.namespaces. It doesn't yet include a refresh type
function, but that would be straightforward to add on top
Timothy Washington twash...@gmail.com writes:
I have a ritz and nrepl.el session running. I'd also like to be able to
*i)* auto compile cljs (lein cljsbuild auto) and
*ii)* have a browser repl (lein trampoline cljsbuild repl-listen) in the
same session.
The latest ritz has a M-x
bruce li leilmy...@gmail.com writes:
I'm trying ritz and having some issues with SLDB that really confused
me. When I switch on the slime-break-on-exception, it seems it sometimes
doesn't work. The SLDB buffer won't pop up and I sometimes can see the
exceptions in the terminal (but
Adrian,
adrians nman...@gmail.com writes:
I'm trying to get ritz-nrepl going with the latest lein2 and nrepl.el from
Melpa. I think I've followed the instructions on the project page, yet I
get this, when I nrepl-ritz-jack-in:
error in process sentinel: Could not start nREPL server:
Tim,
Timothy Washington twash...@gmail.com writes:
I was following the instructions on the ritz-nrepl
pagehttps://github.com/pallet/ritz/tree/develop/nrepl. And
I get the error below, when executing the *M-x nrepl-ritz-jack-in*
command.
...
Caused by: java.lang.RuntimeException: Unable
Stefan,
sthueb...@googlemail.com (Stefan Hübner) writes:
a) Are you planning on updating Zi for this new release?
Yes. It might take a few days.
b) How can ritz-nrepl or (preferably) ritz-swank be embedded in an
application?
I just added instructions [1] to the ritz-swank README. I've not
sal salka...@gmail.com writes:
i am able to run clojure-jack-in and start swank server
Are you able to use the repl?
, but never see the
command slime-mode, slime-connect in emacs.
Not sure what you mean by this. Are these commands not available once
the repl is running? The jack-in
Ritz provides a clojure debugger for nREPL.el and SLIME, other nREPL
middleware, and a general repl-utils library.
0.5.0 adds several new features.
* load-project will load the project for buffer you are currently
visiting. This allows you to switch projects in an existing repl.
*
Denis Labaye denis.lab...@gmail.com writes:
On Fri, Sep 7, 2012 at 9:11 PM, Hugo Duncan h...@hugoduncan.org wrote:
Ritz is a collection of repl servers, middleware and repl utility
functions, supporting nREPL and swank/slime. The repl utilities can be
used from any repl.
Does ritz/swank
sthueb...@googlemail.com (Stefan Hübner) writes:
Hugo Duncan h...@hugoduncan.org writes:
* ritz-swank corresponds to the previous ritz functionality and provides
a swank server with debugger capabilities.
Also: the Zi maven plugin has not catched up with ritz 0.4.0. I was
trying to force
Zi is a maven plugin for working with clojure.
The 0.5.4 release adds support for the following goals:
* nrepl Launches a vanilla nREPL server
* ritz-nrepl Launches an nREPL server with debugger.
* ritz Launches a swank server with debugger. Now supports ritz-swank 0.4.1.
The project can be
Ritz is a collection of repl servers, middleware and repl utility
functions, supporting nREPL and swank/slime. The repl utilities can be
used from any repl.
The 0.4.1 release is mainly a bug fix release.
* Fixes an issue with in-ns not working correctly
* Fixes jack-in support for ritz-swank
Hello Tom,
Tom Hickey thic...@gmail.com writes:
I'm not able to get the latest version of Zi to work. It seems to be having
a problem resolving a couple of it's dependencies:
[ERROR] Failed to execute goal org.cloudhoist.plugin:zi:0.5.4:compile
(default-cli) on project test: Execution
Tom Hickey thic...@gmail.com writes:
I'm not able to get the latest version of Zi to work. It seems to be having
a problem resolving a couple of it's dependencies:
[ERROR] Failed to execute goal org.cloudhoist.plugin:zi:0.5.4:compile
(default-cli) on project test: Execution default-cli of
Stuart Halloway stuart.hallo...@gmail.com writes:
Are there other things like this that cause people to restart REPL
unnecessarily? I would like to identify the whole list of such things and
kill them.
Maybe related. Ritz has slime-load-file hooked up to code that tries to
remove dead vars
ritz started life as a swank server for emacs SLIME. With this release
it has evolved into several components:
* ritz-nrepl provides both nREPL middleware, that can be used in any
nREPL server (and any client), and a debugger for use with nrepl.el,
the emacs client for nREPL. The nrepl
Pallet is a library for infrastructure management, covering
provisioning, configuration management and deployment.
Pallet 0.7.2 is mainly a bug fix release. It addresses a number of
issues around the usage of the lein plugin which were causing problems
for some people following the first steps
lein-set-version is a Leiningen plugin to update your project version.
Apart from updating project.clj, you can configure the update of other
project files, such as the README.
lein-set-version also updates versions of sub-projects in :dependencies
when run with lein-sub.
Usage and
mnicky markus.mas...@gmail.com writes:
I have some great news:
https://github.com/clojure/clojure/commit/f5f4faf95051f794c9bfa0315e4457b600c84cef
:)
Good news indeed.
Sounds like a good time to plug a little library I wrote to create
executors: https://github.com/pallet/pallet-thread
Phil Hagelberg p...@hagelb.org writes:
On Mon, May 21, 2012 at 10:56 AM, Philip Aston phil...@mail.com wrote:
I'd like to compile the bare minimum, even if this means some sort of
thunk in Bootstrap. How can I do this?
One solution is to call require at runtime inside function bodies
rather
Chris McBride cmm7...@gmail.com writes:
I releases two simple clojure libraries to help running commands
via SSH on multiple servers. Hopefully someone will find it useful.
You might also be interested in Pallet [1], which executes via SSH.
[1] http://palletops.com
--
You received this
Colin Yates colin.ya...@gmail.com writes:
Has anybody got any real world usage reports regarding using literate
programming in emacs? In particular, does paredit and slime work inside
the clojure fragments when using org.babel for example?
For the update in Pallet docs [1], we've been
Mark Engelberg mark.engelb...@gmail.com writes:
On Wed, Feb 1, 2012 at 5:38 AM, Hugo Duncan duncan.h...@gmail.com wrote:
SLIME works fully within the code blocks. For example C-x C-e can be
used to evaluate expressions. Paredit also works.
My understanding is that unless you use C-c C-k
Fogus mefo...@gmail.com writes:
I would love to see your .emacs setup around these tools.
I'll put together a blog post - my .emacs files could do with a cleanup,
so this sounds like a good excuse to get it done.
--
You received this message because you are subscribed to the Google
Groups
I took a slightly different approach to this, in pallet.shell, and added
an :async flag that returns the streams and the process
https://github.com/pallet/pallet/blob/master/src/pallet/shell.clj
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post
://www.meetup.com/Pallet-Users-Group/events/38415062/
Apologies if this is seen as OT, but we started a meetup group [1] for
this before the extracurricular spreadsheet appeared, and want to reach
pallet users who are on this list.
Looking forward to meeting you at the conj!
--
Hugo Duncan
[1] http
tutorial on the ritz
wiki if I can get things working.
I'll gladly take you up on that :)
Hugo
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members
/ritz/issues/14
[2] https://github.com/pallet/zi
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
:
http://pallet.github.com/pallet/reference/reference_script.html
(which needs updating and moving to go with the rest of the stevedore docs)
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure
,
one for the executable jar and one for the library version, but using
the same set of source code files.
You might be able to use the :impl-ns option in gen-class to limit the
extent of AOT compilation.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
to a project specific namespace.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post
in both jvms, but I am
working towards being able to run using just JPDA/JDI to talk to the
debugee. At that point it will be possible to attach the debugger to any
jvm process running with debugging enabled.
--
Hugo Duncan
--
You received this message because you are subscribed
appreciated - if you can, I would prefer pull requests from
feature branches. There is lots to be done, especially around adding test
cases to get the project to the point where we can make changes with
confidence.
Raising issues for broken slime features would also be useful.
--
Hugo Duncan
For the intrepid, the first release of swank-clj is out.
This is a refactored swank-clojure, and features sldb integration.
Some highlights:
* line based breakpoints
* stepping
* exception restarts
See the readme at https://github.com/hugoduncan/swank-clj
--
Hugo Duncan
--
You received
://github.com/pallet/stevedore/pull/1
[2]
https://github.com/pallet/common/blob/feature%2Fdefn-for-kw-args/src/pallet/common/core.clj
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure
Github: https://github.com/pallet/thread-expr
Autodoc: http://pallet.github.com/thread-expr/autodoc/index.html
Marginalia: http://pallet.github.com/thread-expr/marginalia/uberdoc.html
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group
to a interim, development version
of jar, and can disappear at any time. Clojure 1.2 has been available as
a release version for quite a while now.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email
?
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send
in the
testbuild1 pom). This in turn breaks my build.
At the moment the only remedy I can see is to re-package enlive to remove
the dependency range. Anyone have any other ideas?
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group
://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html#Dependency_Exclusions
I should have mentioned that I had tried both these before posting, and
they don't seem to help in this case. All clojure version artifacts were
still being downloaded.
--
Hugo Duncan
to automate
more in the future.
But, I'm biased.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first
...] ...)
(let- [x ...] ...)
I used let- for a slightly different version of this in pallet
(- 3
(let- [x 1 y 2]
(+ x y)))
= 6
which enables a general let in the middle of a threaded expression.
https://github.com/pallet/pallet/blob/master/src/pallet/thread_expr.clj
--
Hugo Duncan
similar, so might I suggest
adding a binding for log/*logging-agent* inside each of the failing tests.
I am unable to explain why there is an interaction.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email
On Fri, 23 Jul 2010 02:35:13 -0400, Krukow karl.kru...@gmail.com wrote:
So I guess the problem is in swank/break.
Should be fixed in 1.3.0-SNAPSHOT now.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send
to clojure source).
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from
in the README are worth checking.
You might also find Lau's blog post of interest:
http://www.bestinclass.dk/index.clj/2010/03/functional-fluid-dynamics-in-clojure.html
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send
of the timed results. I
would expect that to have a bigger impact than the loop overhead.
Hugo
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members
for their work in this area!
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post
all the functions in that namespace.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post
right, but my unit-mult fn totally go
haywire?
Confused.
(apply * [(unit 1 area)]) is maybe the problem
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new
a project, but I am not sure if it is doing
it the proper way. Once resolved it should be simple to set up the
classloader. If you're interested I could send you the clojure code.
On May 16, 11:26 am, Jason Smith ja...@lilypepper.com wrote:
On May 16, 7:22 am, Hugo Duncan hugodun
On Mon, 17 May 2010 10:38:43 -0400, grav mikk...@gmail.com wrote:
clojure-mode 1.7.1
slime 20100404
slime-repl 20100404
swank-clojure 1.1.0
You'll need swank-clojure 1.2.1 to work with that version of slime.
--
Hugo Duncan
--
You received this message because you are subscribed
/plugin.clj
The annotation support isn't complete yet, but the simple example works.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated
that things are not too
well right now. Ho-humm (or what did the Ents say?)
The autodoc and hyperdoc branches in technomancy's swank-clojure
repository implement recent slime features, and require testing with ELPA
slime before they can be merged. Volunteers?
--
Hugo Duncan
--
You received
On Mon, 07 Dec 2009 12:07:12 -0500, Laurent PETIT
laurent.pe...@gmail.com wrote:
2009/12/7 Hugo Duncan hugodun...@users.sourceforge.net
On Mon, 07 Dec 2009 06:53:38 -0500, Rich Hickey richhic...@gmail.com
wrote:
Yes, methods are not really functions. Thinking about them as closures
required to implement the same
method in deftype. FWIW, I found it very non-intuitive.
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members
returns a Double for me...
--
Hugo Duncan
--
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe
95 matches
Mail list logo