[NREPL-28] Clarify semantics for String encoding Created: 21/Aug/12 Updated: 11/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Critical |
| Reporter: | Chas Emerick | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Comments |
| Comment by Chas Emerick [ 21/Aug/12 8:27 PM ] |
|
Initial discussion held in |
[NREPL-36] Too many DynamicClassLoaders created Created: 10/Dec/12 Updated: 10/Dec/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | 0.2.0-RC1, 0.2.0-beta9, 0.2.0-beta10 |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Critical |
| Reporter: | Colin Jones | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Not sure whether this ticket belongs here or in the Clojure-proper JIRA, so feel free to close if this is an inappropriate location. clojure.main/repl creates a new DynamicClassLoader on every execution, so it looks like the stack of classloaders grows without bounds. Seems a bit similar to http://dev.clojure.org/jira/browse/NREPL-31 in that clojure.main/repl has another assumption about when clojure.main/repl will run. See https://groups.google.com/forum/?fromgroups=#!topic/clojure/firG9zTVecU%5B1-25%5D for the original report. |
[NREPL-3] Adopt default port Created: 30/Sep/11 Updated: 22/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Chas Emerick | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
7888 is "free", at least in IANA. Most users want to put an nREPL port on their app, and that should always be on a typical port. Auto-selection of a port is only desirable in tooling scenarios, and tooling authors can pass an argument to start-server. This will change the behaviour of (start-server). |
[NREPL-4] Provide sane multiplexing of output in the face of multithreaded, asynchronous operation Created: 30/Sep/11 Updated: 03/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Chas Emerick | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Basically, (send-off some-agent println) & co. should get what's printed to out in that agent's thread back to the nREPL client — not silently let it dump out to System/out. Portal ostensibly does this well. Examine their approach, see if it is compatible with nREPL's objectives. Ill-formed brain dump:
|
[NREPL-15] Allow clients to specify an ID for newly-retained sessions Created: 29/Mar/12 Updated: 12/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Chas Emerick | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
...particularly important where less sophisticated clients and polling-oriented transports are involved (e.g. HTTP). |
[NREPL-24] :session key is overloaded Created: 10/Aug/12 Updated: 03/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Hugo Duncan | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The session middleware takes the :session key from the message, and uses it as an id to lookup session data, which it then places on the same key. Using a separate key for the session id and the session data would be less confusing, and would allow easier checking of the availability of the session data in the message map. |
| Comments |
| Comment by Chas Emerick [ 10/Aug/12 11:26 PM ] |
|
The session id will need to continue to come in in the :session slot, as I don't want to break clients (and, there's very, very few middlewares out there yet). Suggestions for names for the actual session atom? :the-session? :-/ |
[NREPL-29] Provide a mechanism for overriding an operation Created: 09/Sep/12 Updated: 13/Nov/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | 0.2.0-beta9, 0.2.0-beta10 |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Hugo Duncan | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
When specifying middleware, it would be much easier for the user to be able to override a default middleware without having to specify a handler. For example, if there is a default middleware providing the "complete" operation, the user should be able to just specify their preferred completion middleware, without having to specify all middleware as a handler. One way to do this might be to check metadata for the provided operations of the specified metadata, and ensure that either the default middleware for that operation is removed, or that the specified middleware takes precendence (which may be simpler when a middleware provides multiple operations). |
| Comments |
| Comment by Chas Emerick [ 14/Sep/12 7:44 AM ] |
|
Agreed. Just making sure that the order in which additional middlewares are provided is taken as a default stack order will suffice for most use cases. Transforming middlewares (either in full or in part) would need another metadata slot, :replace perhaps, though it seems like that would be much more difficult to get right. |
[NREPL-33] Consider making session and eval functionality more accessible Created: 08/Oct/12 Updated: 08/Oct/12 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | 0.2.0-beta9 |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | Hugo Duncan | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
ritz re-uses some of nrepl's private functions to avoid duplication. The uses are listed below. Would it be possible to make these functions public? More subjectively, it might also be worth considering factoring out the session functionality into it's own namespace (including msg and possibly queue-eval), so the functionality is not split across the session middleware and the interruptible-eval middleware. The debug nrepl server: This uses clojure.tools.nrepl.middleware.session/create-session and clojure.tools.nrepl.middleware.session/session-out ritz provides an eval op that tracks source forms: This uses clojure.tools.nrepl.middleware.interruptible-eval/queue-eval and clojure.tools.nrepl.middleware.interruptible-eval/configure-executor |
[NREPL-40] Thread leak in clojure.tools.nrepl.transport$fn_transport? Created: 11/Mar/13 Updated: 12/Mar/13 |
|
| Status: | Open |
| Project: | tools.nrepl |
| Component/s: | None |
| Affects Version/s: | 0.2.1, 0.2.2 |
| Fix Version/s: | None |
| Type: | Defect | Priority: | Major |
| Reporter: | David Lao | Assignee: | Chas Emerick |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows 7 x64, Oracle JDK 1.7.0.11 x64, clojure 1.4.0 |
||
| Description |
|
When trying out remote eval using your sample in the README, ie (with-open [conn (repl/connect :port 59258)] I'm noticing that hosting process leaking a thread each time the remote eval is called. Jconsole shows a clojure-agent-send-off-pool-xxx thread got spawn as result of the call. The stack appears to be pointing to the "while true" loop inside fn_transport. java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) What do you recommend as way to free the thread? I have server code that calls nrepl on behave of client connections and the number of call can pile up fairly quickly. |
| Comments |
| Comment by David Lao [ 12/Mar/13 3:37 PM ] |
|
Here is my workaround. — a/src/main/clojure/clojure/tools/nrepl/transport.clj
|