Skip to content

Conversation

tarruda
Copy link
Member

@tarruda tarruda commented Mar 4, 2014

This configures a libuv event loop running in a background thread, started with
the 'io_init' at the beginning of the program. For now it's only responsible for
reading from stdin(or stderr when vim is started on the right side of a pipe),
but this infrastructure can be reused for implementing other mch_* functions
that would require a libuv event loop.

Here's a list of changes performed:

  • Move mch_exit, mch_inchar, mch_delay and mch_char_avail to the new 'io' module
  • Remove unused functions in os_unix.c
  • Remove hangul input support

The blocking aspect of 'mch_inchar', 'mch_delay' and 'mch_char_avail' is
emulated using a mutex combined with a condition variable, set by the thread
running the event loop.

This also removed all code that made use of the 'inbuf' static variable in ui.c
including the hangulin.c module. Hangul input is scheduled for removal from vim
(if vim is dropping support for a feature then I guess it's safe for us to
remove it too) and I had to tweak it to compile without GUI, but I should have
avoided the trouble and removed it from the beginning of the project. If hangul
input is needed we can try to integrate when we have a codebase that is easier
to maintain.

The code used in this PR will be used for job control(and consequently the new plugin architecture), so I want to get this merged as soon as possible(Right now it's using some module-globals but those will be refactored). After this PR I will implement job control on top of libuv and refactor mch_call_shell to use the new job control infrastructure it. After that I can start working on msgpack integration for the UI and plugins, which will let neovim grow more 'horizontally'

@ashleyh can you run this on TSAN before I merge? Next weekend I'm gonna setup a shiny new ubuntu 64 bit development virtual machine so this is will be the last time, I promise :)

memset(&in_buffer, 0, sizeof(in_buffer));

UNUSED(arg);
/* use default loop */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is outdated

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

@felipecrv
Copy link
Contributor

LGTM

* The actual reading was already performed by libuv, this callback will do one
* of the following:
* - If EOF was reached, set a flag and signal the main thread to continue
* - If the alloc_buffer_cb didnt allocate anything, try to move data to the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didnt → didn't

@simendsjo
Copy link
Contributor

The build doesn't work for me on Arch 64.
It builds and the tests run, but after I go into insert mode, it hangs on a condition.

First I get an error-message in neovim:

E29: No inserted text yet
#0  0x00007ffff78ca04f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00000000005d6799 in uv_cond_wait (cond=<optimized out>, mutex=<optimized out>) at src/unix/thread.c:324
#2  0x00000000005ce98c in io_wait () at /home/simendsjo/code/neovim/code/src/os/io.c:405
#3  0x00000000005ce456 in mch_inchar (buf=0x8563c5 <typebuf_init+37> "", maxlen=75, wtime=-1, tb_change_cnt=38) at /home/simendsjo/code/neovim/code/src/os/io.c:169
#4  0x00000000004b327e in ui_inchar (buf=0x8563c5 <typebuf_init+37> "", maxlen=75, wtime=-1, tb_change_cnt=38) at /home/simendsjo/code/neovim/code/src/ui.c:155
#5  0x00000000005abf72 in inchar (buf=0x8563c5 <typebuf_init+37> "", maxlen=227, wait_time=-1, tb_change_cnt=38) at /home/simendsjo/code/neovim/code/src/getchar.c:2447
#6  0x00000000005abc30 in vgetorpeek (advance=1) at /home/simendsjo/code/neovim/code/src/getchar.c:2262
#7  0x00000000005aa115 in vgetc () at /home/simendsjo/code/neovim/code/src/getchar.c:1359
#8  0x00000000005aa5b0 in safe_vgetc () at /home/simendsjo/code/neovim/code/src/getchar.c:1478
#9  0x00000000005132ca in normal_cmd (oap=0x7fffffffe8d0, toplevel=1) at /home/simendsjo/code/neovim/code/src/normal.c:577
#10 0x0000000000570bb5 in main_loop (cmdwin=0, noexmode=0) at /home/simendsjo/code/neovim/code/src/main.c:777
#11 0x000000000057063f in main (argc=2, argv=0x7fffffffebc8) at /home/simendsjo/code/neovim/code/src/main.c:561

@gilligan
Copy link

gilligan commented Mar 5, 2014

Same problem as described by @simendsjo on OSX Mavericks.

@gilligan
Copy link

gilligan commented Mar 5, 2014

Trying to dust off my C/debugging skills looking into this. Probably others will figure out long before me though :)

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

The build doesn't work for me on Arch 64.
It builds and the tests run, but after I go into insert mode, it hangs on a condition.

Looking into it. I admit I didnt test manually, I assumed the tests would catch such as stupid bug

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

What's keeping you from removing this line?

@philix This is temporarily commented but needed when job control is implemented. Without that line, spawned jobs and plugins have access to open file descriptors on unix systems(fork + execv).

There's no cross-platform way of achieving this but libuv does a good job on most unixes. Here's how I did on the job-control patch(unreliable, assumes all fds are < 2048). Theoretically it would need to go through each number < max integer to ensure it's closed, in practice that would be slow.

@gilligan
Copy link

gilligan commented Mar 5, 2014

@tarruda trying to make some sense of what's going wrong: In io.c on line 128 this always evaluates to true thus no processing ever happens.

if (in_buffer.wpos == in_buffer.rpos)

Up to there everything seemed to be going OK in the uv callback routine. But as I said i'm not fully making sense of this now ;)

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

@gilligan Thanks but I already debugged the issue, it's because I assumed libuv would invoke my read_cb every time some data arrived. It seems in the alloc_buffer_cb I have to return a buffer size of 1 to ensure read_cb is always called.

Now I'm trying to find a reliable way of stopping libuv event loop from the main thread even, the uv_async_send(&stop_loop_async); seems to have no effect if libuv is waiting for data on a fd

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

Still not ready, there's another hang at mch_exit that I'm trying to fix

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

Fixed the mch_exit hang

static void alloc_buffer_cb(uv_handle_t *, size_t, uv_buf_t *);
static void read_cb(uv_stream_t *, ssize_t, const uv_buf_t *);
static void exit_scroll(void);
static void io_lock();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing void here and below.

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

I have fixed what I could see and rebased/squashed on master. Even with everything looking ok, I think something is still missing here.

It would be great if a libuv expert could review this code

@oni-link
Copy link
Contributor

oni-link commented Mar 5, 2014

After some testing:
nvim received signal SIGTTIN, after changing to terminal.
How to reproduce:

gdb nvim
run -u NONE
:sh
type anything

@ashleyh
Copy link
Contributor

ashleyh commented Mar 5, 2014

@tarruda +446 -2093 is the kind of diffstat I like to see ;)

I've run make test with tsan and it seems happy. I am having trouble with make unittest due to some strange interaction between luajit and tsan, but I'll keep at it. I'll also try review the code manually today.

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

@oni-link While that could be fixed by pausing the libuv read stream when nvim goes into the background, I don't think we should waste any energy on this.

Soon I intend to remove all terminal code from the core sources, stdin/stdout will always be pipes

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

@ashleyh in the next days you will see a lot of batch removals :)

@oni-link
Copy link
Contributor

oni-link commented Mar 5, 2014

Sorry for the noise. Here is a warning about race conditions when compiling with clang and -fsanitize=thread.

How to reproduce:

nvim -u NONE -c ":q"
WARNING: ThreadSanitizer: data race (pid=27638)
  Write of size 8 at 0x7da000008080 by thread T1:
    #0 close /home/oni-link/git/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1418 (nvim+0x0000000a976f)
    #1 uv__close /home/oni-link/git/neovim/third-party/libuv/src/unix/core.c:425 (nvim+0x0000006cf830)
    #2 uv__thread_start /home/oni-link/git/neovim/third-party/libuv/src/uv-common.c:271 (nvim+0x0000006ce895)

  Previous read of size 8 at 0x7da000008080 by main thread:
    #0 write /home/oni-link/git/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:321 (nvim+0x0000000af160)
    #1 uv__async_send /home/oni-link/git/neovim/third-party/libuv/src/unix/async.c:188 (nvim+0x0000006cedcd)
    #2 uv_async_send /home/oni-link/git/neovim/third-party/libuv/src/unix/async.c:61 (nvim+0x0000006cedcd)
    #3 getout /home/oni-link/git/neovim/src/main.c:864 (nvim+0x0000001ddcd4)
    #4 ex_quit /home/oni-link/git/neovim/src/ex_docmd.c:5374 (nvim+0x00000065f4ce)
    #5 do_one_cmd /home/oni-link/git/neovim/src/ex_docmd.c:2103 (nvim+0x000000641b28)
    #6 do_cmdline /home/oni-link/git/neovim/src/ex_docmd.c:809 (nvim+0x0000006390ab)
    #7 nv_colon /home/oni-link/git/neovim/src/normal.c:4223 (nvim+0x0000002d72dc)
    #8 normal_cmd /home/oni-link/git/neovim/src/normal.c:1005 (nvim+0x0000002bcf4a)
    #9 main_loop /home/oni-link/git/neovim/src/main.c:777 (nvim+0x0000001dd4ea)
    #10 main /home/oni-link/git/neovim/src/main.c:561 (nvim+0x0000001d603f)

  Location is file descriptor 8 created by main thread at:
    [failed to restore the stack]

  Thread T1 (tid=27640, running) created by main thread at:
    #0 pthread_create /home/oni-link/git/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:865 (nvim+0x0000000a2f4f)
    #1 uv_thread_create /home/oni-link/git/neovim/third-party/libuv/src/uv-common.c:292 (nvim+0x0000006ce862)
    #2 main /home/oni-link/git/neovim/src/main.c:282 (nvim+0x0000001d5475)

SUMMARY: ThreadSanitizer: data race /home/oni-link/git/neovim/third-party/libuv/src/unix/core.c:425 uv__close

@ashleyh
Copy link
Contributor

ashleyh commented Mar 5, 2014

@tarruda OK, unfortunately there is a known issue with tsan which prevents it from being used with luajit: http://code.google.com/p/thread-sanitizer/issues/detail?id=5

You could try helgrind & drd maybe..?

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

@ashleyh actually thats not a problem now. the only code we run in a luajit process are the unit tests, there's no need to run tsan on those

@oni-link I may be wrong, but those race conditions seem to be happening in libuv code. The according to the documentation, the function 'uv_async_send' is thread safe, that's why I use it to stop the loop from the main thread

@ashleyh
Copy link
Contributor

ashleyh commented Mar 5, 2014

It's something to do with the uv_loop_delete. Why is the uv_stop done asynchronously, by the way?

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

@ashleyh Only one thread may interact with an event loop: http://nikhilm.github.io/uvbook/threads.html#core-thread-operations

uv_async_send seems to be the simplest way to send messages to the event loop thread

@tarruda
Copy link
Member Author

tarruda commented Mar 5, 2014

Let's not merge this now, @saghul (a libuv developer) is going to give a review of this code in a few days.

Meanwhile I will continue to work on top of this branch, porting process-spawning functions to libuv and moving to msgpack integration.

@tarruda
Copy link
Member Author

tarruda commented Mar 14, 2014

It's nice to see ASAN working :)

@tarruda
Copy link
Member Author

tarruda commented Mar 22, 2014

Rebased on top of master which has the latest libuv

@stefan991
Copy link
Contributor

@tarruda Did you intentionally fix the UI problem on OS X? It seems that it is gone :)
But I always get @oni-link's error with the input reading after some key presses.

@tarruda
Copy link
Member Author

tarruda commented Mar 22, 2014

@saghul from the build report it seems there's a leak with libuv:

=================================================================
==12231==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x490d63 in realloc (/home/travis/build/neovim/neovim/build/bin/nvim+0x490d63)
    #1 0x1e22730 in maybe_resize /home/travis/build/neovim/neovim/.deps/build/src/libuv/src/unix/core.c:679
    #2 0x1e22730 in uv__io_start /home/travis/build/neovim/neovim/.deps/build/src/libuv/src/unix/core.c:718

SUMMARY: AddressSanitizer: 256 byte(s) leaked in 1 allocation(s).
Runtime errors detected

The command "./scripts/travis.sh" exited with 1.

Done. Your build exited with 1.

@oni-link I can't reproduce that. Can you tell if that bug happened after @cb8d068 ?

@stefan991 If the bug is fixed it was an accident, perhaps it was the uv_guess_handle change?

@oni-link
Copy link
Contributor

@tarruda Cannot reproduce bug before cb8d068,
but is still present in tarruda@514300b

@tarruda
Copy link
Member Author

tarruda commented Mar 22, 2014

@oni-link ok, can you try again after last commit?

@oni-link
Copy link
Contributor

@tarruda Commit tarruda@1d28bea still has the bug.

echo -e "1\n2" | nvim -u NONE - takes the UV_TTY-branch not the UV_PIPE branch in event_loop.

@oni-link
Copy link
Contributor

@tarruda What triggers the same behavior is
nvim -u NONE
and keep holding a pressed down for 1-2 seconds. This triggers the bug much easier for me.

@tarruda
Copy link
Member Author

tarruda commented Mar 22, 2014

@oni-link I still cant reproduce. What's your terminal?

@oni-link
Copy link
Contributor

@tarruda Tested with

rxvt-unicode terminal with 256 colors (X Window System) and
xterm terminal emulator (X Window System)

@tarruda
Copy link
Member Author

tarruda commented Mar 22, 2014

@oni-link Same as mine. Do you think you could reproduce the bug using an expect script?

@mahkoh
Copy link
Contributor

mahkoh commented Mar 22, 2014

Holding down keys causes #289 (comment).

@oni-link
Copy link
Contributor

@tarruda Could not reproduce bug with expect.

Problem seems to be that for the call fill_input_buf(exit_on_error=1)
100 calls to io_read can be so fast, that no input is ready in in_buffer:

gdb nvim
break ui.c:508
run -u NONE

Holding a pressed down (~4 a are shown in nvim)

Breakpoint 1, fill_input_buf (exit_on_error=1) at /home/oni-link/git/neovim/src/ui.c:508                                                
508     read_error_exit();                                                                                                          
(gdb) bt
#0  fill_input_buf (exit_on_error=1) at /home/oni-link/git/neovim/src/ui.c:508                                                          
#1  0x000000000042b4cb in read_from_input_buf (buf=0x8c8354 <typebuf_init+4> "", maxlen=86) at /home/oni-link/git/neovim/src/ui.c:446   
#2  0x000000000064baaf in mch_inchar (buf=0x8c8354 <typebuf_init+4> "", maxlen=86, ms=-1, tb_change_cnt=5)                              
    at /home/oni-link/git/neovim/src/os/input.c:52                                                                                      
#3  0x000000000042b14e in ui_inchar (buf=0x8c8354 <typebuf_init+4> "", maxlen=86, wtime=-1, tb_change_cnt=5)                            
    at /home/oni-link/git/neovim/src/ui.c:157                                                                                           
#4  0x0000000000537a79 in inchar (buf=0x8c8354 <typebuf_init+4> "", maxlen=260, wait_time=-1, tb_change_cnt=5)                          
    at /home/oni-link/git/neovim/src/getchar.c:2482                                                                                     
#5  0x000000000053c2c8 in vgetorpeek (advance=1) at /home/oni-link/git/neovim/src/getchar.c:2297                                        
#6  0x0000000000539ee1 in vgetc () at /home/oni-link/git/neovim/src/getchar.c:1388                                                      
#7  0x000000000053c5ad in safe_vgetc () at /home/oni-link/git/neovim/src/getchar.c:1508                                                 
#8  0x0000000000628f17 in edit (cmdchar=97, startln=0, count=1) at /home/oni-link/git/neovim/src/edit.c:675                             
#9  0x00000000004e49ed in invoke_edit (cap=0x7fffffffd838, repl=0, cmd=97, startln=0) at /home/oni-link/git/neovim/src/normal.c:7211    
#10 0x00000000004dec56 in nv_edit (cap=0x7fffffffd838) at /home/oni-link/git/neovim/src/normal.c:7183                                   
#11 0x00000000004d4ba4 in normal_cmd (oap=0x7fffffffd8e8, toplevel=1) at /home/oni-link/git/neovim/src/normal.c:1004                    
#12 0x0000000000482a62 in main_loop (cmdwin=0, noexmode=0) at /home/oni-link/git/neovim/src/main.c:773                                  
#13 0x000000000047f9dd in main (argc=3, argv=0x7fffffffdbd8) at /home/oni-link/git/neovim/src/main.c:557                                

@tarruda
Copy link
Member Author

tarruda commented Mar 29, 2014

Closing as the work here was replaced by #393, #395 and #410

@tarruda tarruda closed this Mar 29, 2014
justinmk added a commit to justinmk/neovim that referenced this pull request May 25, 2015
Recent luarocks adds support for these env vars:
  http_proxy
  https_proxy
  no_proxy

Closes neovim#2482

Changes since previous luarocks version (27 Aug 2014):

  git log --oneline 0587afbb5fe8ceb2f2eea16f486bd6183bf02f29..HEAD

  5d8a165 Merge pull request neovim#371 from ignacio/proxies
  4462ca5 Add `luarocks config` command for querying LuaRocks settings.
  b80244b Merge branch 'master' of https://github.com/keplerproject/luarocks
  dd6f0e7 Update lmathx used for testing Lua 5.3
  70c7577 Merge pull request neovim#366 from Tieske/windows_exitcode
  11b8b48 fixes neovim#365
  0d071fa Back to scm
  7bff020 Mark release 2.2.2
  2f9c115 Merge branch 'master' of https://github.com/keplerproject/luarocks
  9736020 Install .md files as docs
  97b98bf Clip string.gsub results to just one when redacting url.
  2a0a9fa Merge pull request neovim#359 from ignacio/redact_verbose
  968e963 Redact api tokens when using --verbose flag
  9aa5d05 Update upload URL as well.
  cda43ce Merge branch 'master' of https://github.com/keplerproject/luarocks
  022c87d MoonRocks → LuaRocks.org transition complete!
  7b6efb9 Trust the user :)
  2c536b4 Deal with 'no_proxy' env var
  f022fe0 Drop use of config.proxy
  b6b6754 Merge pull request neovim#354 from Tieske/pe_parser
  460e42d update to version 0.3
  2ee6bd7 Merge pull request neovim#349 from ignacio/build_only_deps
  15ad97b Address issues spotted in the review
  6b350de Adds --only-deps flag to install command
  6dd402b Adds new file (fetch/git_https.lua) to Makefile.setup.inc
  46f8ad6 Merge pull request neovim#350 from jszakmeister/add-git-https-support
  989347e Add git+https support.
  0f67be5 Adds --only-deps flag to the 'build' command.
  0fe8556 Update function documentation, as suggested by @ignacio in neovim#347.
  0679559 Decided to step back in turn this into a warning. `luarocks list` on an empty ~/.luarocks is a valid use case.
  40f9173 Fail when given an invalid tree.
  6d5dfcd Fix crash on `luarocks --tree=/path list`. Closes neovim#347.
  1fcf354 Add test that checks for error in default sysconfig. See neovim#346.
  3ce554c Restore comment about second return, but put it in the right function. luarocks/luarocks#346 (comment)
  0e3a052 Merge pull request neovim#346 from Tieske/bad_config
  c66a88e bail out on bad config files, fixes neovim#228
  79addc7 Continuing slowly. Distracted by code golf. :)
  58fb6b9 Merge branch 'master' of https://github.com/keplerproject/luarocks
  ed1f916 Starting to port test suite from Unix shell to Lua.
  6f87c47 Merge pull request neovim#343 from xpol/master
  cbde573 And also hide the startup logo for RC.
  5cb4aa7 Merge branch 'master' of https://github.com/keplerproject/luarocks
  303cca7 Add AppVeyor badge
  ad8ba47 Merge pull request neovim#335 from ignacio/appveyor
  a52b5ca Merge branch 'master' of https://github.com/keplerproject/luarocks
  6251735 Add Coveralls coverage badge
  2fcc0cc Add options to hide the MSVC tools' startup logo.
  ff68e97 Fallback for platform variable
  e31c46b Improved the CI scripts
  050d656 Fix summary detection in long paragraphs
  4ad1f1a Remove failing test. Try this some other time.
  db81c2e Force package to be in cache.
  303628a Add more simple tests.
  8d6a9e3 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5b45de2 More small tests.
  066cda4 Merge pull request neovim#341 from keplerproject/add-travis
  2639401 Make localhost a known host.
  a549c6d Try not to block checking server identification.
  7c8e527 Let's see if Travis allow sftp'ing to localhost.
  98e0979 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5f293dd Remove debugging print.
  ed02691 Add trivial tests for `luarocks upload`
  b4ea2a1 Merge pull request neovim#340 from xpol/master
  b9789f3 Revert incorrect remove of cmake_generator support. Only windows (msvc) default cmake_generator are removed.
  a19af6d luacov-coveralls overwrites luacov.report.out!
  1b5bbfc luacov-coveralls did not exit with 0?
  df08baf Run luacov-coveralls from $testing_dir
  f3aaee7 Avoid tests that mess with the testing environment.
  836898f Let's try Coveralls
  b5244be Merge branch 'master' of https://github.com/keplerproject/luarocks
  30430cf Don't overwrite --detailed when given by the user.
  19ca56c Actually direct users to the bug tracker
  57c838e Merge branch 'master' of https://github.com/keplerproject/luarocks
  5495f3c A missing CWD returns "" for lfs.current_dir() on Ubuntu
  db90cb4 Really test for missing parameters.
  d3d74bf A missing CWD returns "" for fs.current_dir on Ubuntu...
  a027595 Let's try harder to fail if CWD does not exist.
  876d9c8 Fix inconsistency in --homepage flag in `luarocks doc` and `luarocks write_rockspec`.
  294e08f Fix --lib flag (and my last commit goof...)
  62d4e05 Fix tests: new flag parser detected invalid flags in the testsuite.
  7f7c006 Add support for space in long option assignments.
  68aa7ae Merge branch 'master' of https://github.com/keplerproject/luarocks
  e869c09 Fail nicely if CWD does not exist. Fixes neovim#147.
  ae51a3c Fix confusing error when unpack fails due to network error
  93cdd54 Adds integration with AppVeyor
  28ade76 Fixes neovim#332.
  51ea074 Expose platform and processor to home config files.
  a02a53a Merge branch 'master' of https://github.com/keplerproject/luarocks
  4c96972 Don't use user tree when running as root. Fixes neovim#303.
  f15e49d Merge pull request neovim#330 from mpeterv/hg-support
  9567ac5 Merge pull request neovim#329 from mpeterv/persist-refactor
  20eb947 Improve hg support
  cf19178 Refactor persist.save_from_table
  3c7c472 Refactor persist.load_into_table
  603b0ea Merge branch 'master' of https://github.com/keplerproject/luarocks
  be3c52d Add extra smartness to configure to check that the user-given flag seems correct. Closes neovim#293.
  d820069 Merge pull request neovim#326 from mpeterv/fix-redact-api
  8739847 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5db7c54 Merge branch 'xpol-master'
  7d22ee5 Open file in 'rb
  90586f6 Merge branch 'master' of https://github.com/keplerproject/luarocks
  bdf218b Remove commented code after remove cfg.cmake_generator.
  b5e2539 Better cmake support.
  df332f6 Fix url redacting when Luasocket is used
  88a903a Add logo :)
  6e21673 Try the one we have as `lua` first!
  4e9a0e3 This is for Makefile.luarocks only.
  ccab32f Merge branch 'new-makefile'
  855259b New set of Makefiles for self-upgrade.
  ff6fdfc Ignore more files.
  92d6363 Make sure suffix is produced when installing via rock (see neovim#323) and copy over site_config.lua, in case we're installing to a different prefix (see https://sourceforge.net/p/luarocks/mailman/message/33608257/)
  dc5f200 Make it a bit more robust.
  4347dc7 Redact API URL to hide API key.
  650c8ae Back to our regularly scheduled programming
  8649a4e Release LuaRocks 2.2.1
  c7a704a Add test files that were not committed before.
  463ee89 Don't crash when modules table is missing.
  d110857 Use the system-installed stat.
  0f9d259 Test success of patching in `unpack`. Closes neovim#316. Includes test cases for the test suite! Yay!
  9a9caf8 We're always using the internal patch module. See neovim#316.
  c9cc478 All 5.x versions of Lua share the same license.
  92c7acb Clarify that runtime support is optional.
  5f3d390 Don't crash when asking for help on invalid cmd.
  46f2d25 Code cleanups suggested by luacheck.
  7fe62f1 Remove unused assignment.
  53e0c65 Direct users to the bug tracker
  2013547 Support both --lua-version and --with-lua-version. Error messages were even already using it by accident!
  48847a4 Support more file extensions as source files.
  23afae6 Merge branch 'master' of https://github.com/keplerproject/luarocks
  c54cbfc Fix behavior of `luarocks pack` on Windows. It was failing when a path contained spaces due to lack of quoting. Closes neovim#308.
  7f6320c Merge pull request neovim#309 from mpeterv/unused_variables
  500741f Removed some unused and global variables
  113ada0 Merge branch 'master' of https://github.com/keplerproject/luarocks
  9204178 Discard excess characters when a tool gives out an octal mode string that's too long. Fixes neovim#53.
  aa4e0d3 Merge pull request neovim#298 from seclorum/master
  9702239 Use updated LuaFileSystem for Lua 5.3
  0f1c937 Updates for Lua 5.3 compatibility
  8d6845e Make conversion more robust for Lua 5.3
  d98c3e0 Make it more robust. (I _think_ win32 needs something similar, but there's the complication of drive letters so I won't touch it now without proper testing.)
  8d588f9 Catch error if filename is a directory
  1885a7f Improve error checking
  f74346e Do not pack scm versions
  cd99315 Fix search of lua interpreter. Closes neovim#301.
  4c503eb Update stdlib for 5.3 (thought I had this in the previous commit!)
  c5501d4 Merge branch 'master' of https://github.com/keplerproject/luarocks
  de654b3 Updates for Lua 5.3 support
  4636244 use cprint version compatible with Lua 5.3
  fc6d30d Update stdlib for Lua 5.3 compatibility
  76e5515 Add Lua 5.3 to the test matrix
  9ab9988 Add test that catches neovim#228.
  0ebdcd4 Updates to testing infrastructure (use new luasec, luacov)
  e7f9680 Error out on bad config files. Alternative implementation to the one given by @Tieske, following discussion in neovim#260. Closes neovim#260. Closes neovim#228.
  02e8bbd Safer guards for OSX Deployment target selection..
  c4558a3 OSX 10.10 Yosemite sw_vers update
  db46b22 Apply change suggested by @siffiejoe. Thanks @catwell for catching this! Closes neovim#295.
  1a1c407 Add test for neovim#295.
  8bbf02e Make test suite detect crashes on tests that should fail gracefully.
  7a7c124 Add check for Fedora systems. Closes neovim#289.
  723bf99 Isolate the convenience hack, for readability.
  a35dd43 Silence complaints from `luarocks upload`. Closes neovim#292.
  af679a9 Fix typo. Closes neovim#294.
  453179d Provide a fallback for when the version number is 'scm', to avoid breaking Windows default paths (which assume something like c:\luarocks\2.2\ ) Closes neovim#288.
  88ea74e Make code more resilient.
  0467eba Merge branch 'master' of https://github.com/keplerproject/luarocks
  8278ed2 Add flag to enable/disable SSL cert check. We disabled SSL certificate checks for wget and curl a while ago, when we first added https repositories. We'll keep the check disabled by default for now, but this adds a config option, `check_certificates=true` that can be used in your config.lua.
  af19063 Don't report WIP versions as releases.
  d15e99f Merge pull request neovim#285 from mpeterv/fix-lint
  86ba23c Fix `luarocks lint`.
  e5cd7a9 Add --outdated as a flag to `luarocks list`. A variation of the feature suggested in neovim#282.
  f0d66ae Support per-field version checking. This will allow us to add fields and bump rockspec version numbers in a well-behaved manner.
@justinmk justinmk self-assigned this May 25, 2015
justinmk added a commit that referenced this pull request May 28, 2015
Recent luarocks adds support for these env vars:
  http_proxy
  https_proxy
  no_proxy

Closes #2482

Changes since previous luarocks version (27 Aug 2014):

  git log --oneline 0587afbb5fe8ceb2f2eea16f486bd6183bf02f29..HEAD

  5d8a165 Merge pull request #371 from ignacio/proxies
  4462ca5 Add `luarocks config` command for querying LuaRocks settings.
  b80244b Merge branch 'master' of https://github.com/keplerproject/luarocks
  dd6f0e7 Update lmathx used for testing Lua 5.3
  70c7577 Merge pull request #366 from Tieske/windows_exitcode
  11b8b48 fixes #365
  0d071fa Back to scm
  7bff020 Mark release 2.2.2
  2f9c115 Merge branch 'master' of https://github.com/keplerproject/luarocks
  9736020 Install .md files as docs
  97b98bf Clip string.gsub results to just one when redacting url.
  2a0a9fa Merge pull request #359 from ignacio/redact_verbose
  968e963 Redact api tokens when using --verbose flag
  9aa5d05 Update upload URL as well.
  cda43ce Merge branch 'master' of https://github.com/keplerproject/luarocks
  022c87d MoonRocks → LuaRocks.org transition complete!
  7b6efb9 Trust the user :)
  2c536b4 Deal with 'no_proxy' env var
  f022fe0 Drop use of config.proxy
  b6b6754 Merge pull request #354 from Tieske/pe_parser
  460e42d update to version 0.3
  2ee6bd7 Merge pull request #349 from ignacio/build_only_deps
  15ad97b Address issues spotted in the review
  6b350de Adds --only-deps flag to install command
  6dd402b Adds new file (fetch/git_https.lua) to Makefile.setup.inc
  46f8ad6 Merge pull request #350 from jszakmeister/add-git-https-support
  989347e Add git+https support.
  0f67be5 Adds --only-deps flag to the 'build' command.
  0fe8556 Update function documentation, as suggested by @ignacio in #347.
  0679559 Decided to step back in turn this into a warning. `luarocks list` on an empty ~/.luarocks is a valid use case.
  40f9173 Fail when given an invalid tree.
  6d5dfcd Fix crash on `luarocks --tree=/path list`. Closes #347.
  1fcf354 Add test that checks for error in default sysconfig. See #346.
  3ce554c Restore comment about second return, but put it in the right function. luarocks/luarocks#346 (comment)
  0e3a052 Merge pull request #346 from Tieske/bad_config
  c66a88e bail out on bad config files, fixes #228
  79addc7 Continuing slowly. Distracted by code golf. :)
  58fb6b9 Merge branch 'master' of https://github.com/keplerproject/luarocks
  ed1f916 Starting to port test suite from Unix shell to Lua.
  6f87c47 Merge pull request #343 from xpol/master
  cbde573 And also hide the startup logo for RC.
  5cb4aa7 Merge branch 'master' of https://github.com/keplerproject/luarocks
  303cca7 Add AppVeyor badge
  ad8ba47 Merge pull request #335 from ignacio/appveyor
  a52b5ca Merge branch 'master' of https://github.com/keplerproject/luarocks
  6251735 Add Coveralls coverage badge
  2fcc0cc Add options to hide the MSVC tools' startup logo.
  ff68e97 Fallback for platform variable
  e31c46b Improved the CI scripts
  050d656 Fix summary detection in long paragraphs
  4ad1f1a Remove failing test. Try this some other time.
  db81c2e Force package to be in cache.
  303628a Add more simple tests.
  8d6a9e3 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5b45de2 More small tests.
  066cda4 Merge pull request #341 from keplerproject/add-travis
  2639401 Make localhost a known host.
  a549c6d Try not to block checking server identification.
  7c8e527 Let's see if Travis allow sftp'ing to localhost.
  98e0979 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5f293dd Remove debugging print.
  ed02691 Add trivial tests for `luarocks upload`
  b4ea2a1 Merge pull request #340 from xpol/master
  b9789f3 Revert incorrect remove of cmake_generator support. Only windows (msvc) default cmake_generator are removed.
  a19af6d luacov-coveralls overwrites luacov.report.out!
  1b5bbfc luacov-coveralls did not exit with 0?
  df08baf Run luacov-coveralls from $testing_dir
  f3aaee7 Avoid tests that mess with the testing environment.
  836898f Let's try Coveralls
  b5244be Merge branch 'master' of https://github.com/keplerproject/luarocks
  30430cf Don't overwrite --detailed when given by the user.
  19ca56c Actually direct users to the bug tracker
  57c838e Merge branch 'master' of https://github.com/keplerproject/luarocks
  5495f3c A missing CWD returns "" for lfs.current_dir() on Ubuntu
  db90cb4 Really test for missing parameters.
  d3d74bf A missing CWD returns "" for fs.current_dir on Ubuntu...
  a027595 Let's try harder to fail if CWD does not exist.
  876d9c8 Fix inconsistency in --homepage flag in `luarocks doc` and `luarocks write_rockspec`.
  294e08f Fix --lib flag (and my last commit goof...)
  62d4e05 Fix tests: new flag parser detected invalid flags in the testsuite.
  7f7c006 Add support for space in long option assignments.
  68aa7ae Merge branch 'master' of https://github.com/keplerproject/luarocks
  e869c09 Fail nicely if CWD does not exist. Fixes #147.
  ae51a3c Fix confusing error when unpack fails due to network error
  93cdd54 Adds integration with AppVeyor
  28ade76 Fixes #332.
  51ea074 Expose platform and processor to home config files.
  a02a53a Merge branch 'master' of https://github.com/keplerproject/luarocks
  4c96972 Don't use user tree when running as root. Fixes #303.
  f15e49d Merge pull request #330 from mpeterv/hg-support
  9567ac5 Merge pull request #329 from mpeterv/persist-refactor
  20eb947 Improve hg support
  cf19178 Refactor persist.save_from_table
  3c7c472 Refactor persist.load_into_table
  603b0ea Merge branch 'master' of https://github.com/keplerproject/luarocks
  be3c52d Add extra smartness to configure to check that the user-given flag seems correct. Closes #293.
  d820069 Merge pull request #326 from mpeterv/fix-redact-api
  8739847 Merge branch 'master' of https://github.com/keplerproject/luarocks
  5db7c54 Merge branch 'xpol-master'
  7d22ee5 Open file in 'rb
  90586f6 Merge branch 'master' of https://github.com/keplerproject/luarocks
  bdf218b Remove commented code after remove cfg.cmake_generator.
  b5e2539 Better cmake support.
  df332f6 Fix url redacting when Luasocket is used
  88a903a Add logo :)
  6e21673 Try the one we have as `lua` first!
  4e9a0e3 This is for Makefile.luarocks only.
  ccab32f Merge branch 'new-makefile'
  855259b New set of Makefiles for self-upgrade.
  ff6fdfc Ignore more files.
  92d6363 Make sure suffix is produced when installing via rock (see #323) and copy over site_config.lua, in case we're installing to a different prefix (see https://sourceforge.net/p/luarocks/mailman/message/33608257/)
  dc5f200 Make it a bit more robust.
  4347dc7 Redact API URL to hide API key.
  650c8ae Back to our regularly scheduled programming
  8649a4e Release LuaRocks 2.2.1
  c7a704a Add test files that were not committed before.
  463ee89 Don't crash when modules table is missing.
  d110857 Use the system-installed stat.
  0f9d259 Test success of patching in `unpack`. Closes #316. Includes test cases for the test suite! Yay!
  9a9caf8 We're always using the internal patch module. See #316.
  c9cc478 All 5.x versions of Lua share the same license.
  92c7acb Clarify that runtime support is optional.
  5f3d390 Don't crash when asking for help on invalid cmd.
  46f2d25 Code cleanups suggested by luacheck.
  7fe62f1 Remove unused assignment.
  53e0c65 Direct users to the bug tracker
  2013547 Support both --lua-version and --with-lua-version. Error messages were even already using it by accident!
  48847a4 Support more file extensions as source files.
  23afae6 Merge branch 'master' of https://github.com/keplerproject/luarocks
  c54cbfc Fix behavior of `luarocks pack` on Windows. It was failing when a path contained spaces due to lack of quoting. Closes #308.
  7f6320c Merge pull request #309 from mpeterv/unused_variables
  500741f Removed some unused and global variables
  113ada0 Merge branch 'master' of https://github.com/keplerproject/luarocks
  9204178 Discard excess characters when a tool gives out an octal mode string that's too long. Fixes #53.
  aa4e0d3 Merge pull request #298 from seclorum/master
  9702239 Use updated LuaFileSystem for Lua 5.3
  0f1c937 Updates for Lua 5.3 compatibility
  8d6845e Make conversion more robust for Lua 5.3
  d98c3e0 Make it more robust. (I _think_ win32 needs something similar, but there's the complication of drive letters so I won't touch it now without proper testing.)
  8d588f9 Catch error if filename is a directory
  1885a7f Improve error checking
  f74346e Do not pack scm versions
  cd99315 Fix search of lua interpreter. Closes #301.
  4c503eb Update stdlib for 5.3 (thought I had this in the previous commit!)
  c5501d4 Merge branch 'master' of https://github.com/keplerproject/luarocks
  de654b3 Updates for Lua 5.3 support
  4636244 use cprint version compatible with Lua 5.3
  fc6d30d Update stdlib for Lua 5.3 compatibility
  76e5515 Add Lua 5.3 to the test matrix
  9ab9988 Add test that catches #228.
  0ebdcd4 Updates to testing infrastructure (use new luasec, luacov)
  e7f9680 Error out on bad config files. Alternative implementation to the one given by @Tieske, following discussion in #260. Closes #260. Closes #228.
  02e8bbd Safer guards for OSX Deployment target selection..
  c4558a3 OSX 10.10 Yosemite sw_vers update
  db46b22 Apply change suggested by @siffiejoe. Thanks @catwell for catching this! Closes #295.
  1a1c407 Add test for #295.
  8bbf02e Make test suite detect crashes on tests that should fail gracefully.
  7a7c124 Add check for Fedora systems. Closes #289.
  723bf99 Isolate the convenience hack, for readability.
  a35dd43 Silence complaints from `luarocks upload`. Closes #292.
  af679a9 Fix typo. Closes #294.
  453179d Provide a fallback for when the version number is 'scm', to avoid breaking Windows default paths (which assume something like c:\luarocks\2.2\ ) Closes #288.
  88ea74e Make code more resilient.
  0467eba Merge branch 'master' of https://github.com/keplerproject/luarocks
  8278ed2 Add flag to enable/disable SSL cert check. We disabled SSL certificate checks for wget and curl a while ago, when we first added https repositories. We'll keep the check disabled by default for now, but this adds a config option, `check_certificates=true` that can be used in your config.lua.
  af19063 Don't report WIP versions as releases.
  d15e99f Merge pull request #285 from mpeterv/fix-lint
  86ba23c Fix `luarocks lint`.
  e5cd7a9 Add --outdated as a flag to `luarocks list`. A variation of the feature suggested in #282.
  f0d66ae Support per-field version checking. This will allow us to add fields and bump rockspec version numbers in a well-behaved manner.
@ghost ghost unassigned justinmk May 29, 2015
dwb pushed a commit to dwb/neovim that referenced this pull request Feb 21, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.