Re: [ANN] Nightlight, an embedded editor for Clojure

2016-11-05 Thread Didier
Wow, this looks awesome.

For now, I'm pretty satisfied with Atom + ProtoREPL. But if your approach 
can achieve much better code completion, much better linting, much better 
refactoring and hopefully much better debugging, I'm going to have to move 
to it.

Actually, it would be awesome if you could try to focus on Debugging, 
because that part I feel is badly served by other Clojure IDEs. It would be 
great if I could use whatever editor I wanted, and if suddenly I needed to 
debug Clojure, I could drop Nightcode as a dependency and get a full 
fledged web browser based debugger.

On Saturday, 29 October 2016 16:50:37 UTC-7, Zach Oakes wrote:
>
> Yep I definitely plan on adding that feature. For now, you'll just have to 
> refresh your browser =) By the way, I just released version 1.1.0, which 
> adds some initial support for ClojureScript! I added a new section on the 
> website that explains how to set it up.
>
> On Saturday, October 29, 2016 at 3:41:05 AM UTC-4, ru wrote:
>>
>> Great work, Zach! Thank you. I would like to switch from 
>> Lifhttable+Terminal working environment that I use now, to Nightlight. But 
>> I definitely need "Refresh folder" and/or "Refresh file" actions, because 
>> sometimes I update source files from outside of a project. Is it possible 
>> to add something like that to Nightlight? 
>>
>> Sincerely,
>>  Ru
>>
>> воскресенье, 9 октября 2016 г., 5:03:58 UTC+3 пользователь Zach Oakes 
>> написал:
>>>
>>> Just when you thought I was done with my weird obsession with making 
>>> projects that start with “night”, I went and made another. This one is 
>>> called Nightlight, and it’s a Clojure editor with a unique twist: it is 
>>> meant to run *inside* your project, giving it direct access to the state of 
>>> your program. This might end up being a great idea, or an embarrassingly 
>>> stupid one.
>>>
>>> Website: https://sekao.net/nightlight/
>>>
>>> Github: https://github.com/oakes/Nightlight
>>>
>>> I’ve only been working on this for a few weeks. To explain the idea, 
>>> I’ll channel Uncle Bob and give it to you in the form of a socratic dialog 
>>> between myself (Z1) and myself from two weeks ago (Z2):
>>>
>>> Z2: Nightcode has a lot of crippling limitations. It has no code 
>>> completion, for starters. Its instaREPL is a toy, because it only works 
>>> with clojure core. Forget about refactoring support.
>>>
>>> Z1: It’s almost as if these are caused by the same core issue.
>>>
>>> Z2: Yeah almost. Anyway where was I...
>>>
>>> Z1: No, they actually are. Traditional editors and IDEs have the same 
>>> basic design -- they are standalone programs, so they have to use all sorts 
>>> of complicated maneuvers to understand your project. It’s a huge source of 
>>> complexity.
>>>
>>> Z2: What’s the alternative?
>>>
>>> Z1: Imagine completely reversing the relationship. Instead of an 
>>> external tool enveloping and running your program, what if your program ran 
>>> your development tool? What if they lived in the same process? Your editor 
>>> would have direct access to the state of your program, opening the doors to 
>>> all sorts of interactivity.
>>>
>>> Z2: So what’s the alternative?
>>>
>>> Z1: Are you serious? I just explained it.
>>>
>>> Z2: Right. Genius! Nobody has thought of this before.
>>>
>>> Z1: Plenty of people have, but for the most part those tools are not 
>>> mainstream. Various Lisp and Smalltalk tools blurred those lines. For 
>>> example, DrRacket can run your code in the same Racket instance that it is 
>>> running in.
>>>
>>> Z2: Doesn’t this mean if you crash your program, you crash your editor?
>>>
>>> Z1: Yeah...don’t do that.
>>>
>>> Z2: Got it. How do we build it? Should we just shoehorn Nightcode into 
>>> some kind of build task, so it pops up every time you start developing a 
>>> project?
>>>
>>> Z1: That would be pretty obnoxious, which I realize makes the idea more 
>>> appealing to you. But consider this: if it was a totally browser-based 
>>> editor, we could just run a little web server inside your project and the 
>>> user could interact with it via a browser.
>>>
>>> Z2: That sounds like a lot of work.
>>>
>>> Z1: Not really. Nightcode’s editor is already browser-based, so we just 
>>> need to make the rest of the interface. It should only take about a month, 
>>> or even less if a large hurricane happens to slam your city in the near 
>>> future, giving you nothing else to do but code and drink beer.
>>>
>>> Z2: Hah yeah that’s not going to happen.
>>>
>>

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

Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-29 Thread Zach Oakes
Yep I definitely plan on adding that feature. For now, you'll just have to 
refresh your browser =) By the way, I just released version 1.1.0, which 
adds some initial support for ClojureScript! I added a new section on the 
website that explains how to set it up.

On Saturday, October 29, 2016 at 3:41:05 AM UTC-4, ru wrote:
>
> Great work, Zach! Thank you. I would like to switch from 
> Lifhttable+Terminal working environment that I use now, to Nightlight. But 
> I definitely need "Refresh folder" and/or "Refresh file" actions, because 
> sometimes I update source files from outside of a project. Is it possible 
> to add something like that to Nightlight? 
>
> Sincerely,
>  Ru
>
> воскресенье, 9 октября 2016 г., 5:03:58 UTC+3 пользователь Zach Oakes 
> написал:
>>
>> Just when you thought I was done with my weird obsession with making 
>> projects that start with “night”, I went and made another. This one is 
>> called Nightlight, and it’s a Clojure editor with a unique twist: it is 
>> meant to run *inside* your project, giving it direct access to the state of 
>> your program. This might end up being a great idea, or an embarrassingly 
>> stupid one.
>>
>> Website: https://sekao.net/nightlight/
>>
>> Github: https://github.com/oakes/Nightlight
>>
>> I’ve only been working on this for a few weeks. To explain the idea, I’ll 
>> channel Uncle Bob and give it to you in the form of a socratic dialog 
>> between myself (Z1) and myself from two weeks ago (Z2):
>>
>> Z2: Nightcode has a lot of crippling limitations. It has no code 
>> completion, for starters. Its instaREPL is a toy, because it only works 
>> with clojure core. Forget about refactoring support.
>>
>> Z1: It’s almost as if these are caused by the same core issue.
>>
>> Z2: Yeah almost. Anyway where was I...
>>
>> Z1: No, they actually are. Traditional editors and IDEs have the same 
>> basic design -- they are standalone programs, so they have to use all sorts 
>> of complicated maneuvers to understand your project. It’s a huge source of 
>> complexity.
>>
>> Z2: What’s the alternative?
>>
>> Z1: Imagine completely reversing the relationship. Instead of an external 
>> tool enveloping and running your program, what if your program ran your 
>> development tool? What if they lived in the same process? Your editor would 
>> have direct access to the state of your program, opening the doors to all 
>> sorts of interactivity.
>>
>> Z2: So what’s the alternative?
>>
>> Z1: Are you serious? I just explained it.
>>
>> Z2: Right. Genius! Nobody has thought of this before.
>>
>> Z1: Plenty of people have, but for the most part those tools are not 
>> mainstream. Various Lisp and Smalltalk tools blurred those lines. For 
>> example, DrRacket can run your code in the same Racket instance that it is 
>> running in.
>>
>> Z2: Doesn’t this mean if you crash your program, you crash your editor?
>>
>> Z1: Yeah...don’t do that.
>>
>> Z2: Got it. How do we build it? Should we just shoehorn Nightcode into 
>> some kind of build task, so it pops up every time you start developing a 
>> project?
>>
>> Z1: That would be pretty obnoxious, which I realize makes the idea more 
>> appealing to you. But consider this: if it was a totally browser-based 
>> editor, we could just run a little web server inside your project and the 
>> user could interact with it via a browser.
>>
>> Z2: That sounds like a lot of work.
>>
>> Z1: Not really. Nightcode’s editor is already browser-based, so we just 
>> need to make the rest of the interface. It should only take about a month, 
>> or even less if a large hurricane happens to slam your city in the near 
>> future, giving you nothing else to do but code and drink beer.
>>
>> Z2: Hah yeah that’s not going to happen.
>>
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-29 Thread ru


Great work, Zach! Thank you. I would like to switch from 
Lifhttable+Terminal working environment that I use now, to Nightlight. But 
I definitely need "Refresh folder" and/or "Refresh file" actions, because 
sometimes I update source files from outside of a project. Is it possible 
to add something like that to Nightlight? 

Sincerely,
 Ru

воскресенье, 9 октября 2016 г., 5:03:58 UTC+3 пользователь Zach Oakes 
написал:
>
> Just when you thought I was done with my weird obsession with making 
> projects that start with “night”, I went and made another. This one is 
> called Nightlight, and it’s a Clojure editor with a unique twist: it is 
> meant to run *inside* your project, giving it direct access to the state of 
> your program. This might end up being a great idea, or an embarrassingly 
> stupid one.
>
> Website: https://sekao.net/nightlight/
>
> Github: https://github.com/oakes/Nightlight
>
> I’ve only been working on this for a few weeks. To explain the idea, I’ll 
> channel Uncle Bob and give it to you in the form of a socratic dialog 
> between myself (Z1) and myself from two weeks ago (Z2):
>
> Z2: Nightcode has a lot of crippling limitations. It has no code 
> completion, for starters. Its instaREPL is a toy, because it only works 
> with clojure core. Forget about refactoring support.
>
> Z1: It’s almost as if these are caused by the same core issue.
>
> Z2: Yeah almost. Anyway where was I...
>
> Z1: No, they actually are. Traditional editors and IDEs have the same 
> basic design -- they are standalone programs, so they have to use all sorts 
> of complicated maneuvers to understand your project. It’s a huge source of 
> complexity.
>
> Z2: What’s the alternative?
>
> Z1: Imagine completely reversing the relationship. Instead of an external 
> tool enveloping and running your program, what if your program ran your 
> development tool? What if they lived in the same process? Your editor would 
> have direct access to the state of your program, opening the doors to all 
> sorts of interactivity.
>
> Z2: So what’s the alternative?
>
> Z1: Are you serious? I just explained it.
>
> Z2: Right. Genius! Nobody has thought of this before.
>
> Z1: Plenty of people have, but for the most part those tools are not 
> mainstream. Various Lisp and Smalltalk tools blurred those lines. For 
> example, DrRacket can run your code in the same Racket instance that it is 
> running in.
>
> Z2: Doesn’t this mean if you crash your program, you crash your editor?
>
> Z1: Yeah...don’t do that.
>
> Z2: Got it. How do we build it? Should we just shoehorn Nightcode into 
> some kind of build task, so it pops up every time you start developing a 
> project?
>
> Z1: That would be pretty obnoxious, which I realize makes the idea more 
> appealing to you. But consider this: if it was a totally browser-based 
> editor, we could just run a little web server inside your project and the 
> user could interact with it via a browser.
>
> Z2: That sounds like a lot of work.
>
> Z1: Not really. Nightcode’s editor is already browser-based, so we just 
> need to make the rest of the interface. It should only take about a month, 
> or even less if a large hurricane happens to slam your city in the near 
> future, giving you nothing else to do but code and drink beer.
>
> Z2: Hah yeah that’s not going to happen.
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-19 Thread Zach Oakes
I forgot all about the dependency issue, sorry about that. I just released 
1.0.1 which removes that dependency so hopefully it should work without 
requiring that workaround.

On Wednesday, October 19, 2016 at 9:46:39 AM UTC-4, ma...@pickaplay.net 
wrote:
>
> Although, I am using boot and not lein, I added this dependency to my 
> project: [org.flatland/useful "0.11.5"]. After this, nightlight works as it 
> should.
>
>
>
>
> On Sunday, October 9, 2016 at 2:33:31 PM UTC-4, Zach Oakes wrote:
>>
>> I'll look into it. It looks like it's probably a dependency conflict. I'm 
>> using clojail to prevent the instaREPL from taking too long to run. It's 
>> using pretty old dependencies so I'll probably just fork and update it so 
>> this issue goes away.
>>
>> On Sunday, October 9, 2016 at 2:21:54 PM UTC-4, Hari Krishnan wrote:
>>>
>>> Thanks for creating an editor like this.  I may have a good use case..
>

>>> I followed the  updated instructions, and I am getting this error.  I am 
>>> on [org.clojure/clojure "1.8.0"]
>>>
>>> [2016-10-09 11:16:00,994][DEBUG][org.jboss.logging] Logging Provider: 
>>> org.jboss.logging.Log4jLoggerProvider
>>> Exception in thread "main" java.lang.IllegalAccessError: flatten-all 
>>> does not exist, compiling:(clojail/core.clj:1:1)
>>> at clojure.lang.Compiler.load(Compiler.java:7391)
>>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>>> at clojure.lang.RT.load(RT.java:453)
>>> at clojure.lang.RT.load(RT.java:419)
>>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>>> at clojure.core$load.invokeStatic(core.clj:5892)
>>> at clojure.core$load.doInvoke(core.clj:5876)
>>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>>> at clojure.core$load_one.invoke(core.clj:5692)
>>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>>> at clojure.core$load_lib.invokeStatic(core.clj:5736)
>>> at clojure.core$load_lib.doInvoke(core.clj:5717)
>>> at clojure.lang.RestFn.applyTo(RestFn.java:142)
>>> at clojure.core$apply.invokeStatic(core.clj:648)
>>> at clojure.core$load_libs.invokeStatic(core.clj:5774)
>>> at clojure.core$load_libs.doInvoke(core.clj:5758)
>>> at clojure.lang.RestFn.applyTo(RestFn.java:137)
>>> at clojure.core$apply.invokeStatic(core.clj:648)
>>> at clojure.core$require.invokeStatic(core.clj:5796)
>>> at clojure.core$require.doInvoke(core.clj:5796)
>>> at clojure.lang.RestFn.invoke(RestFn.java:421)
>>> at 
>>> eval_soup.core$eval42846$loading__5569__auto42847.invoke(core.clj:1)
>>> at eval_soup.core$eval42846.invokeStatic(core.clj:1)
>>> at eval_soup.core$eval42846.invoke(core.clj:1)
>>> at clojure.lang.Compiler.eval(Compiler.java:6927)
>>> at clojure.lang.Compiler.eval(Compiler.java:6916)
>>> at clojure.lang.Compiler.load(Compiler.java:7379)
>>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>>> at clojure.lang.RT.load(RT.java:453)
>>> at clojure.lang.RT.load(RT.java:419)
>>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>>> at clojure.core$load.invokeStatic(core.clj:5892)
>>> at clojure.core$load.doInvoke(core.clj:5876)
>>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>>> at clojure.core$load_one.invoke(core.clj:5692)
>>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>>> at clojure.core$load_lib.invokeStatic(core.clj:5736)
>>> at clojure.core$load_lib.doInvoke(core.clj:5717)
>>> at clojure.lang.RestFn.applyTo(RestFn.java:142)
>>> at clojure.core$apply.invokeStatic(core.clj:648)
>>> at clojure.core$load_libs.invokeStatic(core.clj:5774)
>>> at clojure.core$load_libs.doInvoke(core.clj:5758)
>>> at clojure.lang.RestFn.applyTo(RestFn.java:137)
>>> at clojure.core$apply.invokeStatic(core.clj:648)
>>> at clojure.core$require.invokeStatic(core.clj:5796)
>>> at clojure.core$require.doInvoke(core.clj:5796)
>>> at clojure.lang.RestFn.invoke(RestFn.java:1096)
>>> at 
>>> nightlight.core$eval42840$loading__5569__auto42841.invoke(core.clj:1)
>>> at nightlight.core$eval42840.invokeStatic(core.clj:1)
>>> at nightlight.core$eval42840.invoke(core.clj:1)
>>> at clojure.lang.Compiler.eval(Compiler.java:6927)
>>> at clojure.lang.Compiler.eval(Compiler.java:6916)
>>> at clojure.lang.Compiler.load(Compiler.java:7379)
>>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>>> at clojure.lang.RT.load(RT.java:453)
>>> at clojure.lang.RT.load(RT.java:419)
>>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>>> at clojure.core$load.invokeStatic(core.clj:5892)
>>> at clojure.core$load.doInvoke(core.clj:5876)
>>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>>> at clojure.core$load_one.invoke(core.clj:5692)
>>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>>> at clojure.core$load_lib.invokeStatic(core.clj:5736)

Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-19 Thread marc
Although, I am using boot and not lein, I added this dependency to my 
project: [org.flatland/useful "0.11.5"]. After this, nightlight works as it 
should.




On Sunday, October 9, 2016 at 2:33:31 PM UTC-4, Zach Oakes wrote:
>
> I'll look into it. It looks like it's probably a dependency conflict. I'm 
> using clojail to prevent the instaREPL from taking too long to run. It's 
> using pretty old dependencies so I'll probably just fork and update it so 
> this issue goes away.
>
> On Sunday, October 9, 2016 at 2:21:54 PM UTC-4, Hari Krishnan wrote:
>>
>> Thanks for creating an editor like this.  I may have a good use case..

>>>
>> I followed the  updated instructions, and I am getting this error.  I am 
>> on [org.clojure/clojure "1.8.0"]
>>
>> [2016-10-09 11:16:00,994][DEBUG][org.jboss.logging] Logging Provider: 
>> org.jboss.logging.Log4jLoggerProvider
>> Exception in thread "main" java.lang.IllegalAccessError: flatten-all does 
>> not exist, compiling:(clojail/core.clj:1:1)
>> at clojure.lang.Compiler.load(Compiler.java:7391)
>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>> at clojure.lang.RT.load(RT.java:453)
>> at clojure.lang.RT.load(RT.java:419)
>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>> at clojure.core$load.invokeStatic(core.clj:5892)
>> at clojure.core$load.doInvoke(core.clj:5876)
>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>> at clojure.core$load_one.invoke(core.clj:5692)
>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>> at clojure.core$load_lib.invokeStatic(core.clj:5736)
>> at clojure.core$load_lib.doInvoke(core.clj:5717)
>> at clojure.lang.RestFn.applyTo(RestFn.java:142)
>> at clojure.core$apply.invokeStatic(core.clj:648)
>> at clojure.core$load_libs.invokeStatic(core.clj:5774)
>> at clojure.core$load_libs.doInvoke(core.clj:5758)
>> at clojure.lang.RestFn.applyTo(RestFn.java:137)
>> at clojure.core$apply.invokeStatic(core.clj:648)
>> at clojure.core$require.invokeStatic(core.clj:5796)
>> at clojure.core$require.doInvoke(core.clj:5796)
>> at clojure.lang.RestFn.invoke(RestFn.java:421)
>> at 
>> eval_soup.core$eval42846$loading__5569__auto42847.invoke(core.clj:1)
>> at eval_soup.core$eval42846.invokeStatic(core.clj:1)
>> at eval_soup.core$eval42846.invoke(core.clj:1)
>> at clojure.lang.Compiler.eval(Compiler.java:6927)
>> at clojure.lang.Compiler.eval(Compiler.java:6916)
>> at clojure.lang.Compiler.load(Compiler.java:7379)
>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>> at clojure.lang.RT.load(RT.java:453)
>> at clojure.lang.RT.load(RT.java:419)
>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>> at clojure.core$load.invokeStatic(core.clj:5892)
>> at clojure.core$load.doInvoke(core.clj:5876)
>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>> at clojure.core$load_one.invoke(core.clj:5692)
>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>> at clojure.core$load_lib.invokeStatic(core.clj:5736)
>> at clojure.core$load_lib.doInvoke(core.clj:5717)
>> at clojure.lang.RestFn.applyTo(RestFn.java:142)
>> at clojure.core$apply.invokeStatic(core.clj:648)
>> at clojure.core$load_libs.invokeStatic(core.clj:5774)
>> at clojure.core$load_libs.doInvoke(core.clj:5758)
>> at clojure.lang.RestFn.applyTo(RestFn.java:137)
>> at clojure.core$apply.invokeStatic(core.clj:648)
>> at clojure.core$require.invokeStatic(core.clj:5796)
>> at clojure.core$require.doInvoke(core.clj:5796)
>> at clojure.lang.RestFn.invoke(RestFn.java:1096)
>> at 
>> nightlight.core$eval42840$loading__5569__auto42841.invoke(core.clj:1)
>> at nightlight.core$eval42840.invokeStatic(core.clj:1)
>> at nightlight.core$eval42840.invoke(core.clj:1)
>> at clojure.lang.Compiler.eval(Compiler.java:6927)
>> at clojure.lang.Compiler.eval(Compiler.java:6916)
>> at clojure.lang.Compiler.load(Compiler.java:7379)
>> at clojure.lang.RT.loadResourceScript(RT.java:372)
>> at clojure.lang.RT.loadResourceScript(RT.java:363)
>> at clojure.lang.RT.load(RT.java:453)
>> at clojure.lang.RT.load(RT.java:419)
>> at clojure.core$load$fn__5677.invoke(core.clj:5893)
>> at clojure.core$load.invokeStatic(core.clj:5892)
>> at clojure.core$load.doInvoke(core.clj:5876)
>> at clojure.lang.RestFn.invoke(RestFn.java:408)
>> at clojure.core$load_one.invokeStatic(core.clj:5697)
>> at clojure.core$load_one.invoke(core.clj:5692)
>> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
>> at clojure.core$load_lib.invokeStatic(core.clj:5736)
>> at clojure.core$load_lib.doInvoke(core.clj:5717)
>> at clojure.lang.RestFn.applyTo(RestFn.java:142)
>> at clojure.core$apply.invokeStatic(core.clj:648)
>> at clojure.core$load_libs.invokeStatic(core.clj:5774)
>> at clojure.core$load_libs.doInvoke(core.clj:5758)
>> at clojure.lang.RestFn.applyTo(RestFn.java:137)
>> at clojure.core$apply.invokeStatic(core.

Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-09 Thread Zach Oakes
I'll look into it. It looks like it's probably a dependency conflict. I'm 
using clojail to prevent the instaREPL from taking too long to run. It's 
using pretty old dependencies so I'll probably just fork and update it so 
this issue goes away.

On Sunday, October 9, 2016 at 2:21:54 PM UTC-4, Hari Krishnan wrote:
>
> Thanks for creating an editor like this.  I may have a good use case..
>>>
>>
> I followed the  updated instructions, and I am getting this error.  I am 
> on [org.clojure/clojure "1.8.0"]
>
> [2016-10-09 11:16:00,994][DEBUG][org.jboss.logging] Logging Provider: 
> org.jboss.logging.Log4jLoggerProvider
> Exception in thread "main" java.lang.IllegalAccessError: flatten-all does 
> not exist, compiling:(clojail/core.clj:1:1)
> at clojure.lang.Compiler.load(Compiler.java:7391)
> at clojure.lang.RT.loadResourceScript(RT.java:372)
> at clojure.lang.RT.loadResourceScript(RT.java:363)
> at clojure.lang.RT.load(RT.java:453)
> at clojure.lang.RT.load(RT.java:419)
> at clojure.core$load$fn__5677.invoke(core.clj:5893)
> at clojure.core$load.invokeStatic(core.clj:5892)
> at clojure.core$load.doInvoke(core.clj:5876)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invokeStatic(core.clj:5697)
> at clojure.core$load_one.invoke(core.clj:5692)
> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
> at clojure.core$load_lib.invokeStatic(core.clj:5736)
> at clojure.core$load_lib.doInvoke(core.clj:5717)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$load_libs.invokeStatic(core.clj:5774)
> at clojure.core$load_libs.doInvoke(core.clj:5758)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$require.invokeStatic(core.clj:5796)
> at clojure.core$require.doInvoke(core.clj:5796)
> at clojure.lang.RestFn.invoke(RestFn.java:421)
> at eval_soup.core$eval42846$loading__5569__auto42847.invoke(core.clj:1)
> at eval_soup.core$eval42846.invokeStatic(core.clj:1)
> at eval_soup.core$eval42846.invoke(core.clj:1)
> at clojure.lang.Compiler.eval(Compiler.java:6927)
> at clojure.lang.Compiler.eval(Compiler.java:6916)
> at clojure.lang.Compiler.load(Compiler.java:7379)
> at clojure.lang.RT.loadResourceScript(RT.java:372)
> at clojure.lang.RT.loadResourceScript(RT.java:363)
> at clojure.lang.RT.load(RT.java:453)
> at clojure.lang.RT.load(RT.java:419)
> at clojure.core$load$fn__5677.invoke(core.clj:5893)
> at clojure.core$load.invokeStatic(core.clj:5892)
> at clojure.core$load.doInvoke(core.clj:5876)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invokeStatic(core.clj:5697)
> at clojure.core$load_one.invoke(core.clj:5692)
> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
> at clojure.core$load_lib.invokeStatic(core.clj:5736)
> at clojure.core$load_lib.doInvoke(core.clj:5717)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$load_libs.invokeStatic(core.clj:5774)
> at clojure.core$load_libs.doInvoke(core.clj:5758)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$require.invokeStatic(core.clj:5796)
> at clojure.core$require.doInvoke(core.clj:5796)
> at clojure.lang.RestFn.invoke(RestFn.java:1096)
> at 
> nightlight.core$eval42840$loading__5569__auto42841.invoke(core.clj:1)
> at nightlight.core$eval42840.invokeStatic(core.clj:1)
> at nightlight.core$eval42840.invoke(core.clj:1)
> at clojure.lang.Compiler.eval(Compiler.java:6927)
> at clojure.lang.Compiler.eval(Compiler.java:6916)
> at clojure.lang.Compiler.load(Compiler.java:7379)
> at clojure.lang.RT.loadResourceScript(RT.java:372)
> at clojure.lang.RT.loadResourceScript(RT.java:363)
> at clojure.lang.RT.load(RT.java:453)
> at clojure.lang.RT.load(RT.java:419)
> at clojure.core$load$fn__5677.invoke(core.clj:5893)
> at clojure.core$load.invokeStatic(core.clj:5892)
> at clojure.core$load.doInvoke(core.clj:5876)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at clojure.core$load_one.invokeStatic(core.clj:5697)
> at clojure.core$load_one.invoke(core.clj:5692)
> at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
> at clojure.core$load_lib.invokeStatic(core.clj:5736)
> at clojure.core$load_lib.doInvoke(core.clj:5717)
> at clojure.lang.RestFn.applyTo(RestFn.java:142)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$load_libs.invokeStatic(core.clj:5774)
> at clojure.core$load_libs.doInvoke(core.clj:5758)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.core$apply.invokeStatic(core.clj:648)
> at clojure.core$require.invokeStatic(core.clj:5796)
> at clojure.core$require.doInvoke(core.clj:5796)
> at clojure.lang.RestFn.invoke(RestFn.java:408)
> at user$eval42836.invokeStatic(form-init3168806215743400634.clj:1)
> at user$eval42836.invoke(form-init3168806215743400634.clj:1)
> at clojure.lang.Compiler.eval(Compi

Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-09 Thread Hari Krishnan

>
> Thanks for creating an editor like this.  I may have a good use case..
>>
>
I followed the  updated instructions, and I am getting this error.  I am on 
[org.clojure/clojure 
"1.8.0"]

[2016-10-09 11:16:00,994][DEBUG][org.jboss.logging] Logging Provider: 
org.jboss.logging.Log4jLoggerProvider
Exception in thread "main" java.lang.IllegalAccessError: flatten-all does 
not exist, compiling:(clojail/core.clj:1:1)
at clojure.lang.Compiler.load(Compiler.java:7391)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.loadResourceScript(RT.java:363)
at clojure.lang.RT.load(RT.java:453)
at clojure.lang.RT.load(RT.java:419)
at clojure.core$load$fn__5677.invoke(core.clj:5893)
at clojure.core$load.invokeStatic(core.clj:5892)
at clojure.core$load.doInvoke(core.clj:5876)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5697)
at clojure.core$load_one.invoke(core.clj:5692)
at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
at clojure.core$load_lib.invokeStatic(core.clj:5736)
at clojure.core$load_lib.doInvoke(core.clj:5717)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$load_libs.invokeStatic(core.clj:5774)
at clojure.core$load_libs.doInvoke(core.clj:5758)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$require.invokeStatic(core.clj:5796)
at clojure.core$require.doInvoke(core.clj:5796)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at eval_soup.core$eval42846$loading__5569__auto42847.invoke(core.clj:1)
at eval_soup.core$eval42846.invokeStatic(core.clj:1)
at eval_soup.core$eval42846.invoke(core.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6927)
at clojure.lang.Compiler.eval(Compiler.java:6916)
at clojure.lang.Compiler.load(Compiler.java:7379)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.loadResourceScript(RT.java:363)
at clojure.lang.RT.load(RT.java:453)
at clojure.lang.RT.load(RT.java:419)
at clojure.core$load$fn__5677.invoke(core.clj:5893)
at clojure.core$load.invokeStatic(core.clj:5892)
at clojure.core$load.doInvoke(core.clj:5876)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5697)
at clojure.core$load_one.invoke(core.clj:5692)
at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
at clojure.core$load_lib.invokeStatic(core.clj:5736)
at clojure.core$load_lib.doInvoke(core.clj:5717)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$load_libs.invokeStatic(core.clj:5774)
at clojure.core$load_libs.doInvoke(core.clj:5758)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$require.invokeStatic(core.clj:5796)
at clojure.core$require.doInvoke(core.clj:5796)
at clojure.lang.RestFn.invoke(RestFn.java:1096)
at nightlight.core$eval42840$loading__5569__auto42841.invoke(core.clj:1)
at nightlight.core$eval42840.invokeStatic(core.clj:1)
at nightlight.core$eval42840.invoke(core.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6927)
at clojure.lang.Compiler.eval(Compiler.java:6916)
at clojure.lang.Compiler.load(Compiler.java:7379)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.loadResourceScript(RT.java:363)
at clojure.lang.RT.load(RT.java:453)
at clojure.lang.RT.load(RT.java:419)
at clojure.core$load$fn__5677.invoke(core.clj:5893)
at clojure.core$load.invokeStatic(core.clj:5892)
at clojure.core$load.doInvoke(core.clj:5876)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5697)
at clojure.core$load_one.invoke(core.clj:5692)
at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
at clojure.core$load_lib.invokeStatic(core.clj:5736)
at clojure.core$load_lib.doInvoke(core.clj:5717)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$load_libs.invokeStatic(core.clj:5774)
at clojure.core$load_libs.doInvoke(core.clj:5758)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:648)
at clojure.core$require.invokeStatic(core.clj:5796)
at clojure.core$require.doInvoke(core.clj:5796)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval42836.invokeStatic(form-init3168806215743400634.clj:1)
at user$eval42836.invoke(form-init3168806215743400634.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6927)
at clojure.lang.Compiler.eval(Compiler.java:6916)
at clojure.lang.Compiler.load(Compiler.java:7379)
at clojure.lang.Compiler.loadFile(Compiler.java:7317)
at clojure.main$load_script.invokeStatic(main.clj:275)
at clojure.main$init_opt.invokeStatic(main.clj:277)
at clojure.main$init_opt.invoke(main.clj:277)
at clojure.main$initialize.invokeStatic(main.clj:308)
at clojure.main$null_opt.invokeStatic(main.clj:342)
at clojure.main$null_opt.invoke(main.clj:339)
at clojure.main$main.i

Re: [ANN] Nightlight, an embedded editor for Clojure

2016-10-09 Thread Zach Oakes
And thanks to Shantanu Kumar there is already a Leiningen plugin! I 
updated the website to reflect that. That should make it much nicer to use 
in lein projects.

On Saturday, October 8, 2016 at 10:03:58 PM UTC-4, Zach Oakes wrote:
>
> Just when you thought I was done with my weird obsession with making 
> projects that start with “night”, I went and made another. This one is 
> called Nightlight, and it’s a Clojure editor with a unique twist: it is 
> meant to run *inside* your project, giving it direct access to the state of 
> your program. This might end up being a great idea, or an embarrassingly 
> stupid one.
>
> Website: https://sekao.net/nightlight/
>
> Github: https://github.com/oakes/Nightlight
>
> I’ve only been working on this for a few weeks. To explain the idea, I’ll 
> channel Uncle Bob and give it to you in the form of a socratic dialog 
> between myself (Z1) and myself from two weeks ago (Z2):
>
> Z2: Nightcode has a lot of crippling limitations. It has no code 
> completion, for starters. Its instaREPL is a toy, because it only works 
> with clojure core. Forget about refactoring support.
>
> Z1: It’s almost as if these are caused by the same core issue.
>
> Z2: Yeah almost. Anyway where was I...
>
> Z1: No, they actually are. Traditional editors and IDEs have the same 
> basic design -- they are standalone programs, so they have to use all sorts 
> of complicated maneuvers to understand your project. It’s a huge source of 
> complexity.
>
> Z2: What’s the alternative?
>
> Z1: Imagine completely reversing the relationship. Instead of an external 
> tool enveloping and running your program, what if your program ran your 
> development tool? What if they lived in the same process? Your editor would 
> have direct access to the state of your program, opening the doors to all 
> sorts of interactivity.
>
> Z2: So what’s the alternative?
>
> Z1: Are you serious? I just explained it.
>
> Z2: Right. Genius! Nobody has thought of this before.
>
> Z1: Plenty of people have, but for the most part those tools are not 
> mainstream. Various Lisp and Smalltalk tools blurred those lines. For 
> example, DrRacket can run your code in the same Racket instance that it is 
> running in.
>
> Z2: Doesn’t this mean if you crash your program, you crash your editor?
>
> Z1: Yeah...don’t do that.
>
> Z2: Got it. How do we build it? Should we just shoehorn Nightcode into 
> some kind of build task, so it pops up every time you start developing a 
> project?
>
> Z1: That would be pretty obnoxious, which I realize makes the idea more 
> appealing to you. But consider this: if it was a totally browser-based 
> editor, we could just run a little web server inside your project and the 
> user could interact with it via a browser.
>
> Z2: That sounds like a lot of work.
>
> Z1: Not really. Nightcode’s editor is already browser-based, so we just 
> need to make the rest of the interface. It should only take about a month, 
> or even less if a large hurricane happens to slam your city in the near 
> future, giving you nothing else to do but code and drink beer.
>
> Z2: Hah yeah that’s not going to happen.
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[ANN] Nightlight, an embedded editor for Clojure

2016-10-08 Thread Zach Oakes


Just when you thought I was done with my weird obsession with making 
projects that start with “night”, I went and made another. This one is 
called Nightlight, and it’s a Clojure editor with a unique twist: it is 
meant to run *inside* your project, giving it direct access to the state of 
your program. This might end up being a great idea, or an embarrassingly 
stupid one.

Website: https://sekao.net/nightlight/

Github: https://github.com/oakes/Nightlight

I’ve only been working on this for a few weeks. To explain the idea, I’ll 
channel Uncle Bob and give it to you in the form of a socratic dialog 
between myself (Z1) and myself from two weeks ago (Z2):

Z2: Nightcode has a lot of crippling limitations. It has no code 
completion, for starters. Its instaREPL is a toy, because it only works 
with clojure core. Forget about refactoring support.

Z1: It’s almost as if these are caused by the same core issue.

Z2: Yeah almost. Anyway where was I...

Z1: No, they actually are. Traditional editors and IDEs have the same basic 
design -- they are standalone programs, so they have to use all sorts of 
complicated maneuvers to understand your project. It’s a huge source of 
complexity.

Z2: What’s the alternative?

Z1: Imagine completely reversing the relationship. Instead of an external 
tool enveloping and running your program, what if your program ran your 
development tool? What if they lived in the same process? Your editor would 
have direct access to the state of your program, opening the doors to all 
sorts of interactivity.

Z2: So what’s the alternative?

Z1: Are you serious? I just explained it.

Z2: Right. Genius! Nobody has thought of this before.

Z1: Plenty of people have, but for the most part those tools are not 
mainstream. Various Lisp and Smalltalk tools blurred those lines. For 
example, DrRacket can run your code in the same Racket instance that it is 
running in.

Z2: Doesn’t this mean if you crash your program, you crash your editor?

Z1: Yeah...don’t do that.

Z2: Got it. How do we build it? Should we just shoehorn Nightcode into some 
kind of build task, so it pops up every time you start developing a project?

Z1: That would be pretty obnoxious, which I realize makes the idea more 
appealing to you. But consider this: if it was a totally browser-based 
editor, we could just run a little web server inside your project and the 
user could interact with it via a browser.

Z2: That sounds like a lot of work.

Z1: Not really. Nightcode’s editor is already browser-based, so we just 
need to make the rest of the interface. It should only take about a month, 
or even less if a large hurricane happens to slam your city in the near 
future, giving you nothing else to do but code and drink beer.

Z2: Hah yeah that’s not going to happen.

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.