aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | test/helpers: allow interning Pascal stringsNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | os_system() returns a Pascal string, for example (it also NUL-terminates the string, but that's neither here nor there).
| * | test/formatc: improve standalone usageNicolas Hillegeer2014-07-27
| | | | | | | | | | | | Easier testing.
| * | test/formatc: improve 'inline' function handlingNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | Apple seems to define some functions as `inline` but not `static` in headers. The ghetto parser wasn't unbelievably happy with this.
| * | rstream: remove 'reading' struct memberNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not necessary, as discussed in #980. From the libuv mailing list: https://groups.google.com/forum/#!topic/libuv/OD38PeGeVgQ E.g. this could happen (red: on Windows): > > alloc_cb(handle1); > > alloc_cb(handle2); > > read_cb(handle1); > > read_cb(handle2); But this couldn't: > > alloc_cb(handle1); > > alloc_cb(handle1); > > read_cb(handle1); > > read_cb(handle1); Because each stream has a 1-to-1 correspondance with a libuv handle. The code removed was never executed. Closes #980.
| * | job: increase JOB_BUFFER_SIZE to 0xFFFFNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | It used to be 1024 bytes, which is very tiny and slows down some operations (imaging `cat`-ing a large file). Benchmarks show a large speedup for such cases. ref #978. For modern systems 0xFFFF bytes (65535 B = 64 KB = 0.0625 MB) per job shouldn't be a big problem.
| * | eval: reimplement f_system() on top of os_system()Nicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | | | | This evades the tempfile problem (unless of course one manually adds redirects to the shell commandline, which some plugins seem to do, e.g.: vim-easytags).
| * | os/shell: implement os_systemNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the goal to support pipe-only system() calls. Notes on the second (vim) argument to f_system() (i.e.: redirected input) and its implications: - When calling system('cat -', ['some', 'list']), vanilla vim (before a recent patch that added support for passing lists) just passes an empty file to the process. This is the same as immediately closing the pipe, which os_system does when no input is given. If we wouldn't close the pipe, the process will linger forever (as is the case with `cat -`). As of now, it's not allowed to pass a non-NULL pointer as the `output` parameter. In other words, it's not possible to signal disinterst in the process output. That may change in the future.
| * | job: add in-pipe notification and closing supportNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | | | | - One can now manually close the in-pipe, without having to tear down the job. - One can be notified of write success/failure.
| * | wstream: allow empty release wbuffer cbNicolas Hillegeer2014-07-27
| | | | | | | | | | | | | | | Sometimes a wbuffer is not supposed to be free()'d (such as when it comes from a constant (possibly static) string, for example.
| * | wstream: write completion callbackNicolas Hillegeer2014-07-27
| | | | | | | | | | | | Now modules using the wstream can find out what's happening to their writes.
| * | job: implement job_wait()Nicolas Hillegeer2014-07-27
| | | | | | | | | | | | Used to wait synchronously for a job to end.
| * | os/shell: constify argumentsNicolas Hillegeer2014-07-27
|/ / | | | | | | Minor fixes
* | Merge pull request #975 from aktau/remove-gettimeofdayJustin M. Keyes2014-07-25
|\ \ | | | | | | remove gettimeofday() usage
| * | cmake: remove check for gettimeofdayNicolas Hillegeer2014-07-21
| | | | | | | | | | | | There are no more uses of gettimeofday, so remove the check in CMake.
| * | term: replace gettimeofday()Nicolas Hillegeer2014-07-21
| | | | | | | | | | | | | | | | | | | | | | | | gettimeofday() is not portable, replace with os_hrtime() wherever possible. The new code should behave equivalently to the old implementation. Because of this, HAVE_GETTIMEOFDAY is no longer necessary To be able to handle double clicks.
| * | sha256: replace gettimeofday()Nicolas Hillegeer2014-07-21
| | | | | | | | | | | | | | | gettimeofday() is not portable. I suspect os_hrtime() is also better as a seed than gettimeofday() or time() were.
| * | viml: re-add sha256() functionNicolas Hillegeer2014-07-21
| | | | | | | | | | | | Was removed in #699 but actually doesn't have anything to do with security.
* | | build: Compile static luajit lib with -fPIC #996ZyX2014-07-25
| | | | | | | | | | | | | | | | | | | | | Should fix the following travis error: /usr/bin/ld: /opt/neovim-deps/lib/libluajit-5.1.a(lj_err.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC /opt/neovim-deps/lib/libluajit-5.1.a: could not read symbols: Bad value
* | | message: add missing stdarg.h include #993Andrew Chin2014-07-25
| | | | | | | | | | | | | | | | | | Fixes up gcc 4.1 (not specifically a supported compiler but it's standard for varargs anyway so it's good to have it included and depend less on implicit includes).
* | | Merge pull request #986 from aktau/func-attr-enable-more-clangJustin M. Keyes2014-07-24
|\ \ \ | | | | | | | | func_attr: clang/icc support NONNULL_* attr
| * | | func_attr: clang/icc support NONNULL_* attrNicolas Hillegeer2014-07-23
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | Both clang and (apparently) icc support the nonnull attribute. So I'm not sure why it wasn't enabled in the first place. - clang: http://clang-analyzer.llvm.org/annotations.html#attr_nonnull - icc: https://software.intel.com/en-us/forums/topic/280290 (not conclusive evidence, but the best I could find, lacking docs)
* | | Merge pull request #987 from oni-link/fix_some_memory_leaksJustin M. Keyes2014-07-24
|\ \ \ | |/ / |/| | Fix some memory leaks in job.c and provider.c
| * | Fix memory leaks for jobs.oni-link2014-07-23
| | | | | | | | | | | | | | | Free the data memory of process and pipe handles in the close callback for a job.
| * | Fix memory leak in provider_call.oni-link2014-07-23
|/ / | | | | | | | | If no channel can be found for a method, free argument arg before returning.
* | Merge pull request #904 from war1025/dev/buffer_testsJustin M. Keyes2014-07-22
|\ \ | |/ |/| Add unit tests for buffer.c and fileio.c
| * Add tests for buffer.c and fileio.cWayne Rowcliffe2014-07-22
| |
| * Change buffer.h #defines to enums so they can be used in testsWayne Rowcliffe2014-07-22
| |
| * Statically allocate NameBuffWayne Rowcliffe2014-07-22
|/
* Merge #965 'Make os_get_localtime() portable + fix bug on win'Justin M. Keyes2014-07-20
|\
| * os/time: fix os_localtime_r on win + add func_attrNicolas Hillegeer2014-07-20
| | | | | | | | | | | | - it makes no sense for these functions to take NULL pointers - if `localtime()` on Windows returns a NULL pointer, the old code would try to dereference it.
| * os/time: make os_get_localtime more portableNicolas Hillegeer2014-07-20
| | | | | | | | | | | | gettimeofday() doesn't exist on Windows, as reported by @equalsraf. It seems a call to time() would be sufficient here, as only the seconds since the UNIX epoch are needed.
| * os/time: include time.h in os/time.hNicolas Hillegeer2014-07-20
|/ | | | Include what you use, also in the positive direction.
* Merge #962 'Implement startuptime functions on top of profiling functions'Justin M. Keyes2014-07-20
|\
| * startuptime: print vim -> nvimNicolas Hillegeer2014-07-20
| |
| * startuptime: always enable startuptimeNicolas Hillegeer2014-07-20
| | | | | | | | Removes the STARTUPTIME define.
| * globals.h: decouple vim.h and globals.hNicolas Hillegeer2014-07-20
| | | | | | | | | | | | | | | | | | Allow globals.h to be included without including vim.h. Another small piece of the puzzle of dismantling vim.h. Moving some extra `#define`'s to globals.h is no better than having them in vim.h. We should, in a later PR, move them to the file where they belong or to a separate `constants.h` or something.
| * garray: add necessary includesNicolas Hillegeer2014-07-20
| | | | | | | | The upcoming decoupling of vim.h and globals.h needs this to compile.
| * startuptime: implement on top of profiling fnsNicolas Hillegeer2014-07-20
| | | | | | | | | | | | Reuse the profiling functions to implement the startuptime functions. Decreases our dependency on `gettimeofday()` and thus gets us a little bit closer to a clean port to Windows.
| * startuptime: move code to profile.{c,h} + docNicolas Hillegeer2014-07-20
|/ | | | | It's a better place to put it. Also slightly documented and reformatted, but not changed.
* coverity/62610: Remove dead code from setfname()Wesley Wiser2014-07-20
|
* types: typedef long_u as uintptr_t #961Nicolas Hillegeer2014-07-20
| | | | As discussed here: https://github.com/neovim/neovim/pull/941/files#r15026398
* Merge PR #895 'Core service providers...'Thiago de Arruda2014-07-17
|\
| * api tests: set 'initpython' in BeforeEachTestThiago de Arruda2014-07-17
| | | | | | | | This is required to run some tests of the python client
| * events: Refactor how event deferral is handledThiago de Arruda2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove all *_set_defer methods and the 'defer' flag from rstream/jobs - Added {signal,rstream,job}_event_source functions. Each return a pointer that represent the event source for the object in question(For signals, a static pointer is returned) - Added a 'source' field to the Event struct, which is set to the appropriate value by the code that created the event. - Added a 'sources' parameter to `event_poll`. It should point to a NULL-terminated array of event sources that will be used to decide which events should be processed immediately - Added a 'source_override' parameter to `rstream_new`. This was required to use jobs as event sources of RStream instances(When "focusing" on a job, for example). - Extracted `process_from` static function from `event_process`. - Remove 'defer' parameter from `event_process`, which now operates only on deferred events. - Refactor `channel_send_call` to use the new lock mechanism What changed in a single sentence: Code that calls `event_poll` have to specify which event sources should NOT be deferred. This change was necessary for a number of reasons: - To fix a bug where due to race conditions, a client request could end in the deferred queue in the middle of a `channel_send_call` invocation, resulting in a deadlock since the client process would never receive a response, and channel_send_call would never return because the client would still be waiting for the response. - To handle "event locking" correctly in recursive `channel_send_call` invocations when the frames are waiting for responses from different clients. Not much of an issue now since there's only a python client, but could break things later. - To simplify the process of implementing synchronous functions that depend on asynchronous events.
| * api/events/msgpack: Insert log statements to improve debuggingThiago de Arruda2014-07-17
| | | | | | | | | | | | Also changed the default log level to INFO so developers won't end up with big log files without asking explicitly(DLOG statements were placed in really "hot" code)
| * getchar: fix infinite loop due to pending eventsThiago de Arruda2014-07-17
| | | | | | | | | | The `inchar` function could enter an infinite loop if there are events pending to be processed when an interrupt is received.
| * api: make buffer_{get,set}_slice automatically assume `include_end`Thiago de Arruda2014-07-17
| | | | | | | | | | This is for compatibility with python-vim interface: When passing an end index with a value higher than the last index, assume the `include_end` flag
| * provider: Add support for clipboard registers.Thiago de Arruda2014-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | This reimplements the '+'/'*' clipboard registers(both are aliases to the same register, no dedicated storage for the X11 selection) on top of the provider infrastructure. This adds two new 'unnamedclip' option, has the same effect of setting 'clipboard' to 'unnamed/unnamedplus' in vim The 'clipboard' option was not reused because all values(except 'unnamedplus') seem to be useless for Neovim, and the code to parse the option was relatively big. The option remains for vim compatibility but it's silently ignored.
| * provider: Add support for python commands/functionsThiago de Arruda2014-07-17
| | | | | | | | | | | | | | | | This uses the provider/scripting infrastructure to reintroduce python support through the msgpack-rpc API. A new 'initpython' option was added, and it must be set to a command that will bootstrap the python provider the first time it's needed.
| * provider: Add support functions for calling external interpretersThiago de Arruda2014-07-17
| | | | | | | | | | | | This uses the provider module infrastructure to implement common code for vimscript commands/functions that need to communicate with external interpreters, eg: pydo, rubydo, pyfile, rubyfile, etc.