Live data from Hacker News

Light Table 0.4 released

chris-granger.com

21–30 of 193 posts

Re: Light Table 0.4 released

#21
post #17

Earlier quoted context omitted.

You know, I looked into this briefly and based on the way go works, it's not clear to me how useful it would be. Go doesn't really have a good REPL, which is an indication. If there was a decent way to handle dynamic evaluation though, it could certainly be added, and without too much issue I would imagine :)

Go compiles so fast you can just pretend there is dynamic eval. People sometimes use the "go run" command to compile and run Go source in one operation, that is not really too different from just invoking an interpreter. Go provides a lot of tools to parse Go source, I imagine between that, Go's fast compiler and GDB support it wouldn't be as hard as many compiled langs to support. Also if I am figuring out something…

The big difference is that you lose state every time you do that, the main goal with the eval in LT is to prevent that :)

Re: Light Table 0.4 released

#22
post #17

Earlier quoted context omitted.

You know, I looked into this briefly and based on the way go works, it's not clear to me how useful it would be. Go doesn't really have a good REPL, which is an indication. If there was a decent way to handle dynamic evaluation though, it could certainly be added, and without too much issue I would imagine :)

Go compiles so fast you can just pretend there is dynamic eval. People sometimes use the "go run" command to compile and run Go source in one operation, that is not really too different from just invoking an interpreter. Go provides a lot of tools to parse Go source, I imagine between that, Go's fast compiler and GDB support it wouldn't be as hard as many compiled langs to support. Also if I am figuring out something…

But compiling + running means that every time you have absolutely fresh process without old state, so it's pretty different from what you can do with JS or Python.

Re: Light Table 0.4 released

#23
post #17

I dream of the day Light Table has Go support.

You know, I looked into this briefly and based on the way go works, it's not clear to me how useful it would be. Go doesn't really have a good REPL, which is an indication. If there was a decent way to handle dynamic evaluation though, it could certainly be added, and without too much issue I would imagine :)

Why would a REPL be necessary? They don't handle the problem of inspecting a call in context anyways; e.g. it seems like you are hooking directly into the vm for JavaScript to do live inspection. Fix and continue might be sufficient.

Re: Light Table 0.4 released

#24
post #21

Earlier quoted context omitted.

Go compiles so fast you can just pretend there is dynamic eval. People sometimes use the "go run" command to compile and run Go source in one operation, that is not really too different from just invoking an interpreter. Go provides a lot of tools to parse Go source, I imagine between that, Go's fast compiler and GDB support it wouldn't be as hard as many compiled langs to support. Also if I am figuring out something…

The big difference is that you lose state every time you do that, the main goal with the eval in LT is to prevent that :)

If there is a way to consistently inject the input to the program (to lead to the same state), I would be OK with editing a Go program to cause (behind the scenes):

  1. moving a break point 
  2. recompile
  3. run
  4. stopping at new break point
I think that happening behind the scenes could be made to appear like live editing in other languages. Go is fast enough compiling and fast enough executing that I think it could be pulled off as not appear laggy as well. But maybe I'm wrong and I don't understand well enough how LT handles other langs.

Re: Light Table 0.4 released

#25
Holy shit, basically. I mostly do Python and JS, so this means that now Light Table is pretty much THE editor for me. Huge update.

I can only hope for eventual PHP integration so it's useful to me also at work.

Re: Light Table 0.4 released

#29

Is there a way to have it evaluate all the Python in my file so I don't have to go and manually evaluate each function? Also my "return" is not updated automaticall.

it should eval it all for you the first time you open the file, but cmd/ctrl+shift+enter should eval the whole file. Though it won't return results for each individual thing. Alternatively you can also select the entire file and press cmd/ctrl+enter to eval the selection.
Post reply on HN