Re: ANN: Slamhound (for reconstructing ns forms)

2011-04-26 Thread gaz jones
this looks awesome, tried it out on a project i have but sadly got the
exception below. i'll try and figure it out later when i have more
time to see if its something specific to my project, but thought i
would let you know in case it is something obvious (it failed from
both slime and lein)

Exception in thread main java.lang.Exception: prefix cannot be nil
(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5440)
at clojure.lang.Compiler.eval(Compiler.java:5415)
at clojure.lang.Compiler.eval(Compiler.java:5391)
at clojure.core$eval.invoke(core.clj:2382)
at slam.hound.regrow$check_for_failure.invoke(regrow.clj:31)
at slam.hound.regrow$regrow.invoke(regrow.clj:72)
at slam.hound.regrow$regrow.invoke(regrow.clj:70)
at slam.hound$reconstruct.invoke(hound.clj:10)
at user$eval368.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)
at clojure.lang.Compiler.eval(Compiler.java:5415)
at clojure.lang.Compiler.eval(Compiler.java:5415)
at clojure.lang.Compiler.eval(Compiler.java:5391)
at clojure.core$eval.invoke(core.clj:2382)
at clojure.main$eval_opt.invoke(main.clj:235)
at clojure.main$initialize.invoke(main.clj:254)
at clojure.main$null_opt.invoke(main.clj:279)
at clojure.main$main.doInvoke(main.clj:354)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at clojure.lang.Var.invoke(Var.java:369)
at clojure.lang.AFn.applyToHelper(AFn.java:165)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: prefix cannot be nil
at clojure.core$load_libs.doInvoke(core.clj:4802)
at clojure.lang.RestFn.applyTo(RestFn.java:138)
at clojure.core$apply.invoke(core.clj:544)
at clojure.core$use.doInvoke(core.clj:4880)
at clojure.lang.RestFn.invoke(RestFn.java:409)
at 
clj_lbm.core$eval386$loading__4410__auto387.invoke(NO_SOURCE_FILE:1)
at clj_lbm.core$eval386.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)
... 22 more


On Mon, Apr 25, 2011 at 8:05 PM, Phil Hagelberg p...@hagelb.org wrote:
 So I just threw together a little tool to help with ns forms. I find
 often they accumulate a bunch of cruft over time where you no longer
 need a given :use or :require form. And sometimes you don't feel like
 finding exactly where on the classpath a given class is. Or maybe
 you're too lazy to type it; whatever. Slamhound helps with that.

 (ns my.namespace
  some doc string)

 (defn -main [ args]
  (pprint args)
  (io/copy (ByteArrayInputStream. (.getBytes hello))
           (first args)))

 Look at that; all bare, missing all kinds of necessary stuff.
 Disgraceful. Release the hound!

 $ lein slamhound src/my/namespace.clj

 (ns my.namespace
  I have a doc string.
  (:use [clojure.pprint :only [pprint]])
  (:require [clojure.java.io :as io])
  (:import (java.io ByteArrayInputStream)))

 Tada! (also featuring Emacs integration: M-x slamhound)

 Enjoy: https://github.com/technomancy/slamhound

 -Phil

 --
 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

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread Phil Hagelberg
On Apr 26, 6:25 am, gaz jones gareth.e.jo...@gmail.com wrote:
 this looks awesome, tried it out on a project i have but sadly got the
 exception below. i'll try and figure it out later when i have more
 time to see if its something specific to my project, but thought i
 would let you know in case it is something obvious (it failed from
 both slime and lein)

It hasn't seen a lot of use yet, so there are going to be things it
doesn't handle. There are a some cases it doesn't work with by design,
and I've clarified that in the readme:

https://github.com/technomancy/slamhound/commit/c9dd2403393c086175be58c0bafc459eeff3e20b

If you run into other issues, please open a Github issue with a repro
case.

thanks,
Phil

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread Aaron Bedra

I love you Phil.

On 04/25/2011 09:05 PM, Phil Hagelberg wrote:

So I just threw together a little tool to help with ns forms. I find
often they accumulate a bunch of cruft over time where you no longer
need a given :use or :require form. And sometimes you don't feel like
finding exactly where on the classpath a given class is. Or maybe
you're too lazy to type it; whatever. Slamhound helps with that.

(ns my.namespace
   some doc string)

(defn -main [  args]
   (pprint args)
   (io/copy (ByteArrayInputStream. (.getBytes hello))
(first args)))

Look at that; all bare, missing all kinds of necessary stuff.
Disgraceful. Release the hound!

$ lein slamhound src/my/namespace.clj

(ns my.namespace
   I have a doc string.
   (:use [clojure.pprint :only [pprint]])
   (:require [clojure.java.io :as io])
   (:import (java.io ByteArrayInputStream)))

Tada! (also featuring Emacs integration: M-x slamhound)

Enjoy: https://github.com/technomancy/slamhound

-Phil




--
Cheers,

Aaron Bedra
--
Clojure/core
http://clojure.com

--
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread Phil Hagelberg
On Apr 26, 6:25 am, gaz jones gareth.e.jo...@gmail.com wrote:
 this looks awesome, tried it out on a project i have but sadly got the
 exception below. i'll try and figure it out later when i have more
 time to see if its something specific to my project, but thought i
 would let you know in case it is something obvious (it failed from
 both slime and lein)

I just pushed 1.1.0 which should solve most issues causing this; if
not please let me know.

-Phil

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread James Reeves
1.1.0 seems to have regressed. I've added slamhound as a dependency:

(defproject foobar 1.0.0-SNAPSHOT
  :description FIXME: write description
  :dependencies [[org.clojure/clojure 1.2.1]]
  :dev-dependencies [[slamhound 1.1.0]])

Then added a function to src/foobar/core.clj:

(ns foobar.core)
(str/trim  hello )

When I start a REPL and try to slamhound it, it instead throws an exception:

user= (require 'slam.hound)
nil
user= (slam.hound/reconstruct src/foobar/core.clj)
java.lang.Exception: No such namespace: str (core.clj:2)

And the same occurs with the Leiningen plugin:

$ lein slamhound src/foobar/core.clj
Exception in thread main java.lang.Exception: No such namespace: str
(core.clj:2)
...

- James

On 26 April 2011 19:32, Phil Hagelberg p...@hagelb.org wrote:

 On Apr 26, 6:25 am, gaz jones gareth.e.jo...@gmail.com wrote:
  this looks awesome, tried it out on a project i have but sadly got the
  exception below. i'll try and figure it out later when i have more
  time to see if its something specific to my project, but thought i
  would let you know in case it is something obvious (it failed from
  both slime and lein)

 I just pushed 1.1.0 which should solve most issues causing this; if
 not please let me know.

 -Phil

 --
 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


-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread .Bill Smith
That's a great idea, Phil.  Thanks for contributing!

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread Phil Hagelberg
On Apr 26, 12:58 pm, James Reeves jree...@weavejester.com wrote:
 When I start a REPL and try to slamhound it, it instead throws an exception:

 user= (require 'slam.hound)
 nil
 user= (slam.hound/reconstruct src/foobar/core.clj)
 java.lang.Exception: No such namespace: str (core.clj:2)

That's by design; it only works when the :as alias is the same as the
last segment of the namespace name.

However, there was an unrelated bug causing issues when uncompilable
namespaces were on the classpath. I'll have a 1.1.1 fix pushed in a
few minutes.

-Phil

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread James Reeves
On 26 April 2011 22:16, Phil Hagelberg p...@hagelb.org wrote:

 On Apr 26, 12:58 pm, James Reeves jree...@weavejester.com wrote:
  When I start a REPL and try to slamhound it, it instead throws an exception:
 
  user= (require 'slam.hound)
  nil
  user= (slam.hound/reconstruct src/foobar/core.clj)
  java.lang.Exception: No such namespace: str (core.clj:2)

 That's by design; it only works when the :as alias is the same as the
 last segment of the namespace name.

Ah, well even if I use string/trim it throws the same error:

user= (require 'slam.hound)
nil
user= (slam.hound/reconstruct src/foobar/core.clj)
java.lang.Exception: No such namespace: string (core.clj:2)

 However, there was an unrelated bug causing issues when uncompilable
 namespaces were on the classpath. I'll have a 1.1.1 fix pushed in a
 few minutes.

Is clojure.string an uncompilable namespace, then?

- James

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread Phil Hagelberg
On Apr 26, 2:56 pm, James Reeves jree...@weavejester.com wrote:
 On 26 April 2011 22:16, Phil Hagelberg p...@hagelb.org wrote:
  That's by design; it only works when the :as alias is the same as the
  last segment of the namespace name.

 Ah, well even if I use string/trim it throws the same error:

Right; this should be fixed in 1.1.1.

 user= (require 'slam.hound)
 nil
 user= (slam.hound/reconstruct src/foobar/core.clj)
 java.lang.Exception: No such namespace: string (core.clj:2)

  However, there was an unrelated bug causing issues when uncompilable
  namespaces were on the classpath. I'll have a 1.1.1 fix pushed in a
  few minutes.

 Is clojure.string an uncompilable namespace, then?

No, it was that foo.bar was uncompilable, and it was looking there for
candidates. But no longer!

There are still a issues with running it in a few places in our
codebase, but they mostly revolve around needing a smarter
disambiguator. I don't have any clear plan for this; it needs hammock
time. Part of it is to allow composable disambiguators and look for
them in project.clj, but that's probably not the whole solution.

-Phil

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-26 Thread James Reeves
On 26 April 2011 23:49, Phil Hagelberg p...@hagelb.org wrote:
 On Apr 26, 2:56 pm, James Reeves jree...@weavejester.com wrote:
 On 26 April 2011 22:16, Phil Hagelberg p...@hagelb.org wrote:
  However, there was an unrelated bug causing issues when uncompilable
  namespaces were on the classpath. I'll have a 1.1.1 fix pushed in a
  few minutes.

 Is clojure.string an uncompilable namespace, then?

 No, it was that foo.bar was uncompilable, and it was looking there for
 candidates. But no longer!

Ohh! I see what you were saying now.

Thanks for the fix!

- James

-- 
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: Slamhound (for reconstructing ns forms)

2011-04-25 Thread Phil Hagelberg
So I just threw together a little tool to help with ns forms. I find
often they accumulate a bunch of cruft over time where you no longer
need a given :use or :require form. And sometimes you don't feel like
finding exactly where on the classpath a given class is. Or maybe
you're too lazy to type it; whatever. Slamhound helps with that.

(ns my.namespace
  some doc string)

(defn -main [ args]
  (pprint args)
  (io/copy (ByteArrayInputStream. (.getBytes hello))
   (first args)))

Look at that; all bare, missing all kinds of necessary stuff.
Disgraceful. Release the hound!

$ lein slamhound src/my/namespace.clj

(ns my.namespace
  I have a doc string.
  (:use [clojure.pprint :only [pprint]])
  (:require [clojure.java.io :as io])
  (:import (java.io ByteArrayInputStream)))

Tada! (also featuring Emacs integration: M-x slamhound)

Enjoy: https://github.com/technomancy/slamhound

-Phil

-- 
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