Re: Is this bug in Google AppEngine, appengine-clj or Clojure itself?

2010-10-17 Thread Mike Hinchey
I think it is caused by those 2 clojure bugs (which seem to be the same
thing).  You may be able to work around that problem by patching
appengine-clj to hint the method call to be on the public interface:
DatastoreService.

(defn current-transaction
  Returns the current datastore transaction, or nil if not within a
transaction. [] (.getCurrentTransaction
^com.google.appengine.api.datastore.DatastoreService
(datastore) nil))

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Improved stack traces

2010-09-10 Thread Mike Hinchey
I found when working on ticket 191 (dead now, I suppose) that counting the
stack elements is not reliable, but = works to get rid of duplicates.  Below
you can compare java's to your new function - the clojure has one duplicate
element (the very last one).  Also, I find the ... useful to know
something is cut off.

root-cause is too generic of a name since it only strips out
CompileException.

Will clojure.stacktrace be deprecated or patched to use this implementation?

My patch for 191 includes test code if you want to adjust it for this.

-Mike

user= (.printStackTrace *e)
java.lang.Exception: Unable to resolve symbol: x in this context,
compiling:(NO_SOURCE_FILE:0)
at clojure.lang.Compiler.analyze(Compiler.java:5777)
at clojure.lang.Compiler.analyze(Compiler.java:5723)
at clojure.lang.Compiler.eval(Compiler.java:6002)
at clojure.lang.Compiler.eval(Compiler.java:5965)
at clojure.core$eval.invokeStatic(core.clj:2652)
at clojure.core$eval.invoke(core.clj)
at clojure.main$repl$read_eval_print__5766.invoke(main.clj:177)
at clojure.main$repl$fn__5771.invoke(main.clj:198)
at clojure.main$repl.doInvoke(main.clj:198)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at clojure.main$repl_opt.invoke(main.clj:256)
at clojure.main$main.doInvoke(main.clj:349)
at clojure.lang.RestFn.invoke(RestFn.java:398)
at clojure.lang.Var.invoke(Var.java:361)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: Unable to resolve symbol: x in this context
at clojure.lang.Compiler.resolveIn(Compiler.java:6251)
at clojure.lang.Compiler.resolve(Compiler.java:6195)
at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6158)
at clojure.lang.Compiler.analyze(Compiler.java:5744)
... 16 more
nil

user= (pst *e 40)
CompilerException java.lang.Exception: Unable to resolve symbol: x in this
context, compiling:(NO_SOURCE_FILE:0)
clojure.lang.Compiler.analyze (Compiler.java:5777)
clojure.lang.Compiler.analyze (Compiler.java:5723)
clojure.lang.Compiler.eval (Compiler.java:6002)
clojure.lang.Compiler.eval (Compiler.java:5965)
clojure.core/eval (core.clj:2652)
clojure.core/eval (core.clj:-1)
clojure.main/repl/read-eval-print--5766 (main.clj:177)
clojure.main/repl/fn--5771 (main.clj:198)
clojure.main/repl (main.clj:198)
clojure.main/repl-opt (main.clj:256)
clojure.main/main (main.clj:349)
clojure.lang.Var.invoke (Var.java:361)
clojure.lang.Var.applyTo (Var.java:482)
clojure.main.main (main.java:37)
Caused by:
Exception Unable to resolve symbol: x in this context
clojure.lang.Compiler.resolveIn (Compiler.java:6251)
clojure.lang.Compiler.resolve (Compiler.java:6195)
 clojure.lang.Compiler.analyzeSymbol (Compiler.java:6158)
clojure.lang.Compiler.analyze (Compiler.java:5744)
clojure.lang.Compiler.analyze (Compiler.java:5723)
nil

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: clojure.contrib.test-contrib.test-jmx build error

2010-01-27 Thread Mike Hinchey
I've reported this problem before with openjdk, but sun's jdk works.

-Mike

On Wed, Jan 27, 2010 at 8:38 AM, Michał Marczyk michal.marc...@gmail.comwrote:

 I've been getting this unpleasant error building clojure.contrib recently:

 http://paste.lisp.org/display/94000

 I wonder if there's a known issue behind it...?

 Sincerely,
 Michal

 --
 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 email to
 clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Help needed regarding the let

2010-01-12 Thread Mike Hinchey
One of the big features of Clojure is you can't changes variables after they
are initialized - in java terms, they are all final.  However, when the let
exits, the buffer variable is out of scope, so the StringBuilder object can
be gc'd if that's what you're concerned about.  Inside the let, you can have
another let, with a variable even with the same name, but it's really a
different variable and only active within that inner scope.  Note, = is a
function that tests equality, like == or .equals() in java, it's not
assignment.  If you explain more about what you want to do, someone might be
able to offer more advice.

-Mike
-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Help needed regarding the let

2010-01-12 Thread Mike Hinchey
You are effectively setting buf to null, that is implicit in a let.
node-text doesn't persistently hold a reference to the buf does it?

In a quick search, I see that StringBuilder will share the char[] with
Strings from it's toString.  I don't know if substring also shares, it may.
Since you're releasing the reference to buf, it's not clear to me what
(.setLength buf 0) will do, it's all available for GC anyway.  You might
want to open up the code for StringBuilder.

If SB is sharing the char[] with the String from toString or substring, it's
possible the char[] is much bigger than it needs to be.  As you're appending
to SB, it will grow the array speculatively, 2x I think, so it doesn't have
to grow (and copy) with every append.  If it then shares this array with the
String, that String will hold onto an array 2x bigger than it needs.  I've
heard it recommend to create a new string out of the old one, so the old one
can be GC'd even though this is an extra copy.  I haven't researched this,
but I hope this helps.

-Mike
-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Java Class Factory

2009-12-02 Thread Mike Hinchey
(new) tries to resolve the argument at compile-time, not runtime.  You need
to spell out each (new class) in a cond.  You might write a macro to make it
a little less verbose.

-Mike

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: ANN: Clojure API for AllegroGraph

2009-11-24 Thread Mike Hinchey
You're right, the tests have not been converted to 3.2, so they are not
running at this time.  The best thing to look at is the tutorial.clj - most
of these work properly, but example6 doesn't return correct results.  The
ones that don't work is where the clj code is incomplete, so I still have
some work to do.  I'll get these fixed or documented in the next few days.

-Mike

On Tue, Nov 24, 2009 at 3:31 PM, patrickdlogan patrickdlo...@gmail.comwrote:

 Hi Mike - thanks for this.

 I am fairly new to git, but from what I can tell, I have the agraph32
 branch as current. The clojure code on the agraph32 branch still seems
 to be using the AG 4.0 API. For example...


 http://github.com/franzinc/agraph-java-client/blob/agraph32/clojure/test/com/franz/agraph/agtest.clj

 Running this against the agraph32 branch java jar results in a class
 not found exception...

 java.lang.ClassNotFoundException:
 com.franz.agraph.repository.AGCatalog (agtest.clj:0)




-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Weird Java Interop Behaviour

2009-11-20 Thread Mike Hinchey
It's the . special form that makes the difference.  In (. System
(getProperty)), the dot interprets System as a class and looks for a static
method (at read/compile time).  With (identity System), System resolves to a
value, a Class object, returned by identity, then your outside dot looks for
a getProperty instance method on that object(fallback to reflection, which
fails) - it's like writing System.class.getProperty in java.  There is no
syntax for clojure to lookup a static method on a dynamically resolved class
object because that is inherently reflection - dot is not about reflection,
though it will do it as a last resort.

Hope that helps.

-Mike

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Contrib (1.0 compatible) succeeds (but fails :-)

2009-11-18 Thread Mike Hinchey
The github link for download is confusing. It points to the most recent
download irrespective of branch.

This should be correct:
http://github.com/richhickey/clojure-contrib/archives/clojure-1.0-compatible

-Mike

On Wed, Nov 18, 2009 at 6:27 PM, .Bill Smith william.m.sm...@gmail.comwrote:

 Correction: I went to
 http://github.com/richhickey/clojure-contrib/tree/clojure-1.0-compatible
 and clicked the download button.

 On Nov 18, 8:14 pm, .Bill Smith william.m.sm...@gmail.com wrote:
  I went tohttp://github.com/richhickey/clojure-contrib/and clicked
  the Download button.  Was that the wrong thing to do?
 
  Bill

 --
 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 email to
 clojure+unsubscr...@googlegroups.comclojure%2bunsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en


-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Contrib (1.0 compatible) succeeds (but fails :-)

2009-11-18 Thread Mike Hinchey
github has a ticket, so they should fix the link soon.

On Wed, Nov 18, 2009 at 6:58 PM, Mike Hinchey hinche...@gmail.com wrote:

 The github link for download is confusing. It points to the most recent
 download irrespective of branch.



-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

ANN: Clojure API for AllegroGraph

2009-11-14 Thread Mike Hinchey
Franz Inc and I just put the AllegroGraph 3.2 Java API on github with my new
Clojure API.  The clojure is a wrapper of the java client, which is an
implementation of openrdf/sesame.  The wrapper is mostly to make it more
idiomatic clojure so you don't have to deal with so many java classes,
mutable objects, and resources that have to be closed.  It's a
work-in-progress, of course, and any feedback is appreciated.

The master branch is for the future release AG 4.0, so you'll want to use
the agraph32 branch for the current release.
http://github.com/franzinc/agraph-java-client/tree/agraph32

This is the code I'll be presenting tomorrow at the Semantic Web
installfest.
http://www.meetup.com/The-San-Francisco-Semantic-Web-Meetup/calendar/11788554/

My future plans for this are to have more advance ways of manipulating
triples, especially having them linked up in trees rather than a flat lists
referring to each other, which is what you get back from a query.

By the way, I included the clojure-1.0.jar because I assume this will be
used by companies that need a stable release, but last I checked, the code
works fine with master, and I'm happy to officially support master if that's
what anyone wants.

-Mike

-- 
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Re: Using Clojure with AllegroGraph - meeting SF 11/16

2009-11-04 Thread Mike Hinchey
That's 11/15, Sunday.

-Mike

On Wed, Nov 4, 2009 at 8:21 AM, Marco Neumann marco.neum...@gmail.comwrote:


 FYI

 As part of the SemWeb Installfest  Mike Hinchey (Franz) will present
 Using Clojure with AllegroGraph on 11/16 at the San Francisco
 Semantic Web Meetup.


 http://www.meetup.com/The-San-Francisco-Semantic-Web-Meetup/calendar/11788554/

 Enjoy
 Marco


 Marco Neumann
 KONA
 New York, New York

 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: How to override .toString for a struct?

2009-09-21 Thread Mike Hinchey
You can (defmethod print-method), but you'll need a :type in the meta of
your struct.

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Example of using ANTLR from Clojure?

2009-09-05 Thread Mike Hinchey
I don't know anything about it, but counterclockwise uses antlr.
http://groups.google.com/group/clojuredev-devel/browse_thread/thread/1428233ef12b6231

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



with-open should use a close multimethod?

2009-08-28 Thread Mike Hinchey
I have a suggestion for the with-open macro.  It calls .close when it's
finished.  I'd like it to have a (defmulti close type) so it's behavior is
extensible.  A standard method could be defined for java.io.Closeable and a
:default method with no type hint.  I've come across a few cases where some
external library defines what is essentially a close method but names it
shutdown or disable, etc., and defining my own close method would be much
easier than rewriting with-open.  This would also allow people to eliminate
reflection for classes like sql Connection that were created before
Closeable.

I'll submit a patch if it's wanted.  This would fit in core, or maybe
contrib.duck-streams with a slightly different name.

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: How to migrate definitions to another namespace ?

2009-08-28 Thread Mike Hinchey
I use (remove-ns 'my-ns), then reload the entire file.

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Overflow by (inc) and (dec) at integer boundaries?

2009-08-14 Thread Mike Hinchey
The difference is MAX_VALUE is a primitive int, but 1 (any literal) is an
Integer.

user Integer/MAX_VALUE
2147483647
user (inc 2147483647)
2147483648

But, I agree there is inconsistency. They should all check, except for the
unchecked-* fns.

user (* Double/MAX_VALUE Double/MAX_VALUE)
Infinity
user (* Integer/MAX_VALUE Integer/MAX_VALUE)
#CompilerException java.lang.ArithmeticException: integer overflow
(NO_SOURCE_FILE:0)

Since multiple for long and int checks for overflow, shouldn't multiple for
double and float check for Infinity?  With that, then
unchecked_multiple(double, double) is missing.

Other edge cases for numbers:
http://groups.google.com/group/clojure-dev/browse_thread/thread/6248584b202045e4

-Mike

On Fri, Aug 14, 2009 at 2:37 AM, Seth seth.schroe...@gmail.com wrote:


 Is there a historical reason why (inc) and (dec) overflow instead of
 automatically promoting from Integer to Long when crossing
 Integer.MAX_VALUE or Integer.MIN_VALUE? The latter would be consistent
 with (+) and (-).

 user= (inc Integer/MAX_VALUE)
 java.lang.ArithmeticException: integer overflow (NO_SOURCE_FILE:0)
 user= (dec Integer/MIN_VALUE)
 java.lang.ArithmeticException: integer overflow (NO_SOURCE_FILE:0)
 user= (+ 1 Integer/MAX_VALUE)
 2147483648
 user= (- Integer/MIN_VALUE 1)
 -2147483649

 user= (.getClass (+ 1 Integer/MAX_VALUE))
 java.lang.Long

 Here is what the docs say. If this is intentional it might be worth
 noting in the docs.

 -
 clojure.core/inc
 ([x])
  Returns a number one greater than num.

 I'm using Clojure 1.1 alpha (most recent commit is
 2098f5d57ecf3affb09a4cdaf2e01ad4de861eef), java build 1.6.0_13-
 b03-211
 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Clojure performance tests and clojure a little slower than Java

2009-08-12 Thread Mike Hinchey
John, this will speed up to the same as the others if you let the 0.  IIRC
from looking at the bytecode before, the 0 is an Integer not an int.

user (time
 (let [m (int 1) b (double 4.0) x0 (double -0.2) y0 (double
0.1) t (double 2.0) i0 (int 0)]
   (loop [x (double 0.0) y (double 0.0) i m]
 (if ( i i0)
   (let [x2 (* x x) y2 (* y y)]
 (if ( (+ x2 y2) b)
   (recur (+ (- x2 y2) x0) (+ (* t (* x y)) y0)
(unchecked-dec i))
 i))
   i
Elapsed time: 881.387889 msecs
0

-Mike

On Tue, Aug 11, 2009 at 10:00 PM, John Harrop jharrop...@gmail.com wrote:

 user= (time (let [m (int 1) b (double 4.0) x0 (double
 -0.2) y0 (double 0.1) t (double 2.0)]
(loop [x (double 0.0) y (double 0.0) i m]
  (if ( i 0)
(let [x2 (* x x) y2 (* y y)]
  (if ( (+ x2 y2) b)
(recur (+ (- x2 y2) x0) (+ (* t (* x y)) y0)
 (unchecked-dec i))
  i))
i
 Elapsed time: 3418.8542 msecs
 0

 Shockingly, reversing the count-up to a count-down and not changing
 anything else at all makes things much, MUCH worse, about four times slower.




--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Reflection warning: reference to field getClass can't be resolved.

2009-08-10 Thread Mike Hinchey
This is  nothing to worry about, but it does seem to be something that can
be improved in clojure.  I submitted a patch with a simple fix:
http://www.assembla.com/spaces/clojure/tickets/171-reflection-warning-from-ns

There is a more complex fix that could be made to the clojure compiler so it
would check for both methods and fields before giving the warning.  The
InstanceFieldExpr prints this warning because it only checks for a field
with the given name.  However, when it evals, it first looks for a method,
then a field.  If it did that in the first place, there would be no warning,
not just for ns, but user code also.  Should a ticket be filed?

-Mike

On Wed, Aug 5, 2009 at 9:11 AM, Laurent PETIT laurent.pe...@gmail.comwrote:

 2009/8/5 John Harrop jharrop...@gmail.com

 On Tue, Aug 4, 2009 at 7:46 PM, Vagif Verdi vagif.ve...@gmail.comwrote:


 When reflection warning is on, i get 2 warnings on every my file:

 reference to field getClass can't be resolved.


 That one is very weird, because getClass is a method of java.lang.Object.
 It should always be possible to resolve that one without reflection.


 getClass is a method ...

 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: with-out-str assumes Unix line ends

2009-08-06 Thread Mike Hinchey
What does this return on Windows?  (with-out-str (.println
(java.io.PrintWriter. *out*)))

If it's \r\n, then maybe (newline) should be changed to print
(System/getProperty line.separator) instead of \newline as it does now.
Thoughts?

-Mike

On Thu, Aug 6, 2009 at 1:03 AM, Anne Ogborn annie6...@yahoo.com wrote:



 (use 'clojure.contrib.duck-streams)
 (spit C:\\test.txt
(with-out-str
  (println foo)
  (println bar)
  (flush)))

 On my XP Tablet OS computer results in a file with unix line endings.

 Is this proper behavior?






 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: What happened to clojure.contrib web site ?

2009-08-03 Thread Mike Hinchey
Do you mean this? http://clojure.org/libraries

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: source locations in error messages from macros

2009-07-28 Thread Mike Hinchey
My example only had a :line because it was in the repl.  I'm sure if it was
in a .clj, it would have the source, too.

-Mike

On Tue, Jul 28, 2009 at 7:49 AM, Rob rob.nikan...@gmail.com wrote:


 Okay, I see what you are saying about why strings, symbols, etc, don't
 have meta data.  I don't see how the system could change that without
 wrapping all the objects returned from the reader.  Scheme does this,
 but I never got used to those wrapper syntax objects, and I'd like
 to experiment with this simpler way of doing it, and see if I can
 generate good enough error messages by having the location of only
 the compound/list expressions sent to the macro.  But, I don't see a
 filename anywhere.  Why isn't that in the metadata along with :line?

 Rob



--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: source locations in error messages from macros

2009-07-27 Thread Mike Hinchey
I think only code lists have the line and source metadata attached, so
that's all that's available.  The compiler can't attached such metadata to
non-code vectors because, I think, that would potentially conflict with
user's metadata.  It can't put metadata on objects like Strings that don't
support metadata, and it can't put metadata on symbols and keywords because
those objects can appear in multiple places so there is no single source
location.  The compiler has the same limitations as your macro.

I take it you found the meta for code lists:

user (defmacro mac [col] `(throw (Exception. (str mac ~^col 
#'user/mac
user (mac
   (or false true))
; Evaluation aborted.
user *e
#CompilerException java.lang.Exception: mac{:line 2} (NO_SOURCE_FILE:0)

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Clojure as a CGI language?

2009-07-22 Thread Mike Hinchey
As Daniel mentioned, Google App Engine can host java.  It's very easy, just
upload a war with your clj AOT-compiled.

See http://elhumidor.blogspot.com/2009/04/clojure-on-google-appengine.html

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: ArithmeticException with doubles

2009-07-10 Thread Mike Hinchey
user (/ (double 1.0) (double 0.0))
Infinity

This seems reasonable since by using (double 0.0), you're asking for
double-spec math rather than math. :)

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: [OT] github (?) question

2009-06-26 Thread Mike Hinchey
On the Source tab, the fork of link tells you - that is, Rich's don't have
that line, so it is the root.  On the Network Members tab, it shows a tree
of the forks, with Rich at the root.

You can browse all of the data in a repository through the website, so you
shouldn't have to clone.  And you only need to Fork (a github concept, not
git), if you want to push something different to your own public clone.

Ultimately, what matters to GIT is the sha1 commit keys, which tell you a
commit/tree is identical to another or not.  I don't think you can tell
about clones other than by looking at the sha1s or the Fork graphs that
github draws.  The forks graph only tells you about the clones that github
knows about.

And as Alex says, being the root doesn't really mean master, authoritative,
or best.

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: A website written using Clojure.

2009-06-25 Thread Mike Hinchey
Instead of eval in the doseq, you could use a macro with a do block,
something like:
user (defmacro deftags [tags]
`(do ~@(map (fn [tag]
  `(defn ~(symbol (str tag -with))
 [block#] (str ~tag block#)))
tags)))
#'user/deftags

user (deftags [html])
#'user/html-with

user (html-with [1])
html[1]

-Mike

On Thu, Jun 25, 2009 at 11:51 AM, CuppoJava patrickli_2...@hotmail.comwrote:


 Thanks for the reply.

 I use doseq instead of map because I need it to run immediately, and
 I'm not interested in the return values of the functions.

 I also would love to be able to simply the (eval ...) part, but I
 don't know of any other way to dynamically define a function in
 Clojure. If you know of a way it'd help me out a lot.
   -Patrick
 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: HOWTO: Update the docs on clojure.org?

2009-06-25 Thread Mike Hinchey
I don't know about wikispaces, but this is linked from clojure.org:
http://en.wikibooks.org/wiki/Clojure_Programminghttp://en.wikibooks.org/wiki/Clojure_Programming
-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Poll for a new name for clojure eclipse plugin 'clojure-dev'

2009-06-24 Thread Mike Hinchey
I vote for EclipseClojure or eclipse-clojure.  It's not as fun as some of
the others, but do you really need a distinct brand on this project?  I
think easy to understand and search for is better.  As Clojure becomes more
mainstream, people won't care about a clever name of this project, they just
want the solid integration.

-Mike

--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Code generation at runtime

2009-06-22 Thread Mike Hinchey
I think the best way for me to approach this is to ask what you want to do.
 This is a generalization, but most code doesn't need to call eval - the
REPL does, and some advanced uses of generating code at runtime based on
data.  The normal Lisp approach for code that generates code is macros
(defmacro, not eval), so you might want to look into that first:
http://clojure.org/macros.

I see the repl in main.clj does something similar to you in its
with-bindings, but the reason is to make those vars able to be set!, not to
establish the external namespace for the eval.  In your eval string, the ns
is the default 'user ns.  To use a different ns, you would need to establish
that inside the string.

I think the only difference between the REPL and the runtime you're seeing
is precisely because the REPL is an environment for eval'ing code.  There's
no interpreter, only one compiler.

Hope this helps.

-Mike

On Mon, Jun 22, 2009 at 5:38 PM, Chouser chou...@gmail.com wrote:


 On Mon, Jun 22, 2009 at 5:11 PM, Nicolas Ourynicolas.o...@gmail.com
 wrote:
 
  Of course, there is eval, but eval is not very competent in manipulating
  namespace and bindings at runtinme.

 eval is exactly what the REPL uses, one call to eval per
 top-level form.  In several examples you put an 'ns' form
 and others into a single 'do' form -- you can try that at
 a REPL to see how it will work before putting it into an
 eval call.

  - (binding [*ns* *ns*]

 I think you may be misunderstanind something about Vars or
 binding -- I can't think of a situation in which the above
 usage of 'binding' would have any purpose.  Perhaps it would
 be worth your time to review http://clojure.org/vars

 --Chouser

 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Simple idiom in clojure, mutate a value

2009-06-11 Thread Mike Hinchey
Adrian and David are suggesting how to work functionally, which is best when
appropriate.  Berlin, if you really need state modified over time, Clojure
does this differently from most languages.  Values never change, only
references to values and only in controlled ways.  Maybe what you want is a
ref, see http://clojure.org/refs

Something like this:

(def x (ref 0))

(dosync
  ...
  (alter x inc))

(println @x)

-Mike

On Thu, Jun 11, 2009 at 11:21 AM, Berlin Brown berlin.br...@gmail.comwrote:




 On Jun 11, 12:16 pm, Daniel Lyons fus...@storytotell.org wrote:
  On Jun 11, 2009, at 9:25 AM, BerlinBrown wrote:
 
 
 
   I do this a lot but can't figure out to change the UPDATEABLE_VALUE, I
   am using some pseudo code because I don't have a clojure solution yet.
 
   SET UPDATEABLE_VALUE = 0
   (loop [line (.readLine reader)]
(if (or (empty? line) ( line-num max-num))
 SET UPDATEABLE_VALUE = UPDATEABLE_VALUE + (SOME_FUNC)
  (recur (.readLine reader
 
  In general it's going to be something like this:
 
  (loop [line (.readLine reader) UPDATEABLE_VALUE 0]
(if (or (empty? line) ( line-num max-num))
  (recur (.readLine reader) (+ UPDATEABLE_VALUE (SOME_FUNC)
 
  Whenever you would have modified a local variable before, in FP you
  establish a new binding instead.
 
  —
  Daniel Lyonshttp://www.storytotell.org-- Tell It!

 I can modify the value within the loop, but what is a good approach
 for accessing the value outside of the loop.  For example (pseudo code
 with a mix of procedural logic).

 ;; Init updateable value outside of 'loop'
 SET UPDATEABLE_VALUE = 0
  (loop [line (.readLine reader)]
  (if (or (empty? line) ( line-num max-num))
   SET UPDATEABLE_VALUE = UPDATEABLE_VALUE + (SOME_FUNC)
(recur (.readLine reader
 ;; Now outside of the loop, use UPDATEABLE_VALUE with the mutated
 value
 (println UPDATEABLE_VALUE)



 


--~--~-~--~~~---~--~~
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 email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: clojure slime

2008-11-19 Thread Mike Hinchey
Clojure svn 1110 does work with latest swank-clojure.

But, svn  (doto) breaks swank again.

user= java.lang.Exception: Unable to resolve symbol: start in this context
(thread.clj:10)
user= java.lang.Exception: No such var: swank/ignore-protocol-version
(NO_SOURCE_FILE:5)
user= java.lang.Exception: No such var: swank/start-server
(NO_SOURCE_FILE:7)

-Mike

On Tue, Nov 18, 2008 at 10:35 PM, Jeffrey Chu [EMAIL PROTECTED] wrote:


 Sorry for the inconvenience. It's been fixed. - Jeff

 On Nov 18, 5:41 pm, islon [EMAIL PROTECTED] wrote:
  I'll not use slime right now (thanks Bill).
  swank-clojure will be fixed anytime soon?
 
  On Nov 18, 11:15 pm, Stephen C. Gilardi [EMAIL PROTECTED] wrote:
 
   SVN version 1110 of Clojure made a breaking change to a feature that
   swank-clojure is using. For now, I recommend moving back one rev by
   using:
 
   svn up -r 1109
 
   from within your checkout of clojure/trunk.
 
   In the past, Jeff has updated swank-clojure very quickly on those rare

   occasions where Clojure changes enough to break it. Stay tuned.
 
   --Steve
 
   On Nov 18, 2008, at 8:01 PM, islon wrote:
 
I checkouted the last clojure from svn, swank-clojure and
 clojure-mode
too.
When I start slime it give me the following errors:
 
Clojure
user= (add-classpath file:home/islon/opt/swank-clojure/)
nil
user=
(require (quote swank))
java.lang.Exception: No such var: swank.util/gen-and-load-class
(core.clj:39)
user=
(swank/ignore-protocol-version 2008-11-02)
java.lang.Exception: No such var: swank/ignore-protocol-version
(NO_SOURCE_FILE:5)
user=
(swank/start-server /tmp/slime.22694 :encoding iso-latin-1-unix)
java.lang.Exception: No such var: swank/start-server (NO_SOURCE_FILE:
7)
user=
 
It worked until I update clojure from svn.
Any ideas?
 
Regards.
 
 
 


--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Print compiled Clojure svn revision?

2008-11-07 Thread Mike Hinchey

Haven't we been through this before?
http://groups.google.com/group/clojure/browse_thread/thread/1ae7eae292765d40/f49c4ccdaca67a23

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Suggest fcase variant pred-case

2008-10-28 Thread Mike Hinchey

On Tue, Oct 28, 2008 at 2:49 PM, Rich Hickey [EMAIL PROTECTED] wrote:
 On Oct 28, 10:29 am, Stuart Sierra [EMAIL PROTECTED]
 wrote:
 I feel like econdp would be less clear, since you don't know what
 kind of exception should be thrown.  Plain old Exception? Or
 RuntimeError?

 The kind of error is TBD, but it won't be random. It saves everyone a)
 redundantly having to specify this, and b) specifying needlessly
 different Exceptions and messages on no matching case. It's pretty
 useful in CL.


  Finally there is the name, which has to follow the form and function.
  If we go with something like the last above, I like condp/econdp.

 I'm not sure about condp, only because Clojure hasn't used the CL-ish
 -p suffix anywhere else.  Ideas: condfn, fcond, cond-apply, cond-
 with, try-each,...

 This wouldn't match the use of trailing p in CL, which has been
 replaced by ? in Clojure. I like leading with cond so it sorts
 together to make people aware of the option. I don't think I like any
 of those better - whatever it is should be short.


I also like it leading with cond, so condp or condf, but econdp
doesn't fit, so condpe?  Having a general naming convention like
trailing F would be nice, I've needed that type of thing before -
assuming this can be generalized.  How about :error as the last clause
(test with no expr, or optional expression) instead of a different
macro?  Though :error could be a conflict if that was really one of
the tests, so maybe define clojure/error?  I disliked looking up so
many different macros for this in CL.  Also, would you want an error
variant or option for cond?

-Mike

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: What Windows IDE are you using?

2008-10-15 Thread Mike Hinchey

I use emacs and slime, also.  Has anyone used http://jdee.sourceforge.net/
with Clojure, or even just with Java?

-Mike

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



ClassNotFoundException for an fn in 1067

2008-10-13 Thread Mike Hinchey

I know the #= and the AOT changes are new and not explained yet.  It
seems to break a macro I'm writing, which does something like this
example.  It does what I want in 1064, but not 1067.

user (defmacro aa [f x] `(~(var-get (resolve f)) ~x))
nil
user (aa inc 3)
java.lang.ExceptionInInitializerError (NO_SOURCE_FILE:0)
at clojure.lang.Compiler.eval(Compiler.java:4094)
at clojure.eval__778.invoke(boot.clj:1431)
at swank.commands.basic.eval_region__2884.invoke(basic.clj:34)
at swank.commands.basic.listener_eval__2893.invoke(basic.clj:48)
at clojure.lang.Var.invoke(Var.java:319)
at user.eval__3447.invoke(Unknown Source)
at clojure.lang.Compiler.eval(Compiler.java:4083)
at clojure.eval__778.invoke(boot.clj:1431)
at swank.core.eval_in_emacs_package__2720.invoke(core.clj:49)
at swank.core.eval_for_emacs__2761.invoke(core.clj:104)
at clojure.lang.Var.invoke(Var.java:327)
at clojure.lang.AFn.applyToHelper(AFn.java:190)
at clojure.lang.Var.applyTo(Var.java:436)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:428)
at swank.core.eval_from_control__2723.invoke(core.clj:56)
at swank.core.eval_loop__2726.invoke(core.clj:61)
at
swank.core.spawn_repl_thread__2781$fn__2790$fn__2792.invoke(core.clj:
137)
at clojure.lang.AFn.applyToHelper(AFn.java:182)
at clojure.lang.AFn.applyTo(AFn.java:175)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:428)
at swank.core.spawn_repl_thread__2781$fn__2790.doInvoke(core.clj:134)
at clojure.lang.RestFn.invoke(RestFn.java:402)
at clojure.lang.AFn.run(AFn.java:38)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at clojure.lang.Compiler$FnExpr.eval(Compiler.java:3170)
at clojure.lang.Compiler.eval(Compiler.java:4082)
... 25 more
Caused by: java.lang.RuntimeException:
java.lang.ClassNotFoundException: clojure.inc__305
at clojure.lang.RT.readString(RT.java:1184)
at user.eval__3450.clinit(Unknown Source)
... 33 more
Caused by: java.lang.ClassNotFoundException: clojure.inc__305
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:
52)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.classForName(RT.java:1509)
at clojure.lang.LispReader$EvalReader.invoke(LispReader.java:876)
at clojure.lang.LispReader$DispatchReader.invoke(LispReader.java:509)
at clojure.lang.LispReader.read(LispReader.java:141)
at clojure.lang.RT.readString(RT.java:1180)
... 34 more


I get a similar exception with the example below.  Am I
misunderstanding, or should I be able to eval the #=form printed for a
fn?

user inc
#=(clojure.inc__305. [EMAIL PROTECTED])
user #=(clojure.inc__305. [EMAIL PROTECTED])
clojure.lang.LispReader$ReaderException:
java.lang.ClassNotFoundException: clojure.inc__305 (NO_SOURCE_FILE:0)
at clojure.lang.Compiler.eval(Compiler.java:4094)
at clojure.eval__778.invoke(boot.clj:1431)
at swank.core.eval_in_emacs_package__2720.invoke(core.clj:49)
at swank.core.eval_for_emacs__2761.invoke(core.clj:104)
at clojure.lang.Var.invoke(Var.java:327)
at clojure.lang.AFn.applyToHelper(AFn.java:190)
at clojure.lang.Var.applyTo(Var.java:436)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:428)
at swank.core.eval_from_control__2723.invoke(core.clj:56)
at swank.core.eval_loop__2726.invoke(core.clj:61)
at
swank.core.spawn_repl_thread__2781$fn__2790$fn__2792.invoke(core.clj:
137)
at clojure.lang.AFn.applyToHelper(AFn.java:182)
at clojure.lang.AFn.applyTo(AFn.java:175)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:428)
at swank.core.spawn_repl_thread__2781$fn__2790.doInvoke(core.clj:134)
at 

Re: ClassNotFoundException for an fn in 1067

2008-10-13 Thread Mike Hinchey

On Oct 13, 5:31 am, Rich Hickey [EMAIL PROTECTED] wrote:
 You cannot, and might never be able to, print/read fns.

Okay, it just looked like something that could be read.


 I would examine carefully whether your macro really should be doing
 this, as this is likely to become disallowed once Clojure can AOT
 compile.

With a let and gensym outside of the backquote, I don't need the var-
get and resolve.  That works.


 The other option would be to allow some things dynamically but not
 AOT, which is definitely not my preference.

 Rich
--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: error in slime with svn 1057

2008-10-10 Thread Mike Hinchey

fixed in svn 1058. Thanks.
--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Trying to run Clojure with Slime...

2008-10-10 Thread Mike Hinchey

Get the clojure from today.  That error happened yesterday.

-Mike

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Get thread local bindings

2008-10-10 Thread Mike Hinchey

swank-clojure has a similar issue, but solved by choosing explicitly
which bindings to keep.  It's usually advised to avoid eval.  Of
course, this only works for threads created by the specific macro.  I
suppose the vec of bindings to keep could be keep in a var to avoid
repetition.

  (dothread-keeping [*out* *ns* *current-connection* *warn-on-
reflection*]
 ...)

See dothread-keeping in 
http://github.com/jochu/swank-clojure/tree/master/swank/util/concurrent/thread/thread.clj
And keep-bindings in 
http://github.com/jochu/swank-clojure/tree/master/swank/util/util.clj

-Mike

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Star-Vars for the repl to provide recent values, shorten error messages

2008-09-20 Thread Mike Hinchey

I added support for *1 *2 *3 in my fork of swank-clojure (for emacs/
slime), http://github.com/mikehinchey/swank-clojure.

I did one thing different which is to not reset the vars if the eval
is one of the vars themselves.  Rich noted most CL repls don't do
this, but it seems useful to me.  Thoughts?

user :a
:a
user :b
:b
user :c
:c
user *1
:c
user *2
:b
user *3
:a
user (list *1 *2 *3)
(:c :b :a)

--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Serialization Snag

2008-09-12 Thread Mike Hinchey

You wouldn't be able to execute any clojure created class or proxy
without having clojure available on the other side.  You would have to
stream all of the dynamic classes that clojure creates (and each fn is
also a class), but also have available the clojure.lang stuff it
depends on to load and run.

I don't know about Thrift, but PB is just another way of streaming
data.  If you can get clojure on both sides, you could not only stream
the clojure data structures, but code text also (assuming the
environment is secure).  Code is data :).

-Mike

On Sep 12, 9:59 am, noahr [EMAIL PROTECTED] wrote:
 Well digging into it more, I've since realized the whole approach I
 was taking is misguided anyway, as serialization appears to be for
 marshaling the data of already defined classes.  What I was really
 trying to do was create new classes (java or clojure), and stream them
 across the network, and have them executed on other side by a system
 that only knew the 'parent' class or interface. But I believe this
 will require custom class loading from bytes on the other side.

 I still suspect though there will be issues when trying to mix dynamic
 clojure-created classes with serialization, due to its data types not
 being serializable. Some of the customizations for java serialization
 might offer a way out, but uncertain..

 Also, I don't have clojure on both sides; unfamiliar with thrift/
 protocol buffers, will look them up.

 Thx --n

  If you've got Clojure available on both ends, you can serialize with
  (pr-str...) and deserialize with (read...).  Only works with pure-
  Clojure data structures, tho.

  Maybe you could use Clojure to generate a native Java collection like
  ArrayList and serialize that.

  Another option is something like Thrift or Protocol Buffers.


--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---



Re: Bug: self require - stack overflow

2008-09-09 Thread Mike Hinchey

It doesn't seem *impossible* for require and use to keep a var set of
namespaces it's loading and check if the current is already in the set
then give an error.

However, I don't think clojure supports circular dependency since
loading is sequential.  I know there's a trick for functions to be
circularly dependent, and I suppose that could be done with files, but
you'd have to load the files manually, not with (ns).

Unless I'm missing something, this is probably something people will
expect to work, so a friendly error message would be good.

-Mike

On Sep 9, 1:29 am, [EMAIL PROTECTED] [EMAIL PROTECTED]
wrote:
 On Sep 9, 8:48 am, Brett Morgan [EMAIL PROTECTED] wrote:

  You seem to be asking for the
  compiler to be able to prove that your computation finishes, and if it
  doesn't then give you a sane response.

 No.
--~--~-~--~~~---~--~~
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
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~--~~~~--~~--~--~---