Commit Graph

1502 Commits

Author SHA1 Message Date
Qi Xiao
a880b74a1b Put the actual entry function in a new run package.
This allows us to test the entry function.
2016-02-21 12:52:47 +01:00
Qi Xiao
de66cbe8d5 elvish-stub -> stubimpl 2016-02-21 12:49:24 +01:00
Qi Xiao
c29d342b07 Disable test of elvish-stub. 2016-02-21 12:21:57 +01:00
Qi Xiao
7f42872347 More cleanup. 2016-02-21 12:10:03 +01:00
Qi Xiao
36d17550cb Rearrange main.go a bit. 2016-02-21 12:00:02 +01:00
Qi Xiao
8215baf392 Rewrite elvish-stub in C. 2016-02-21 11:59:46 +01:00
Qi Xiao
e46ed89be9 Almost rewrite test script of elvish-stub. 2016-02-21 01:07:20 +01:00
Qi Xiao
ea806f8671 Fix elvish-stub test script. 2016-02-21 00:56:04 +01:00
Qi Xiao
d96b50240d Use a more robust way to wait for elvish-stub's startup message. 2016-02-21 00:52:35 +01:00
Qi Xiao
830441ca22 Makefile: Also test elvish-stub. 2016-02-21 00:45:03 +01:00
Qi Xiao
7b1a5f8bac Build and upload elvish-stub in Travis. 2016-02-21 00:42:11 +01:00
Qi Xiao
ef61fcf234 Add elvish-stub. 2016-02-21 00:28:15 +01:00
Qi Xiao
56fae84255 Capitalize elvish in docstring of main.go. 2016-02-20 22:51:55 +01:00
Qi Xiao
f001c783d5 Lock EnvPathList correctly. This fixes #146.
Although there are no explicit writes to $paths in the test cases, there is
one hidden write: when the first search on external commands is done. Since
the internal cache of EnvPathList starts empty, EnvPathList.get() notices that
it needs to fetch the environment to update itself. However, the update first
modifies .cachedValue and then .cachedPaths. If another goroutine uses .get()
in the middle, it would think that the cache is actually up to date and uses
the outdated .cachedPaths, which is empty.

EnvPathList.get() is now correctly guarded by a write lock. The offending test
case has been uncommented as well.
2016-02-20 22:25:26 +01:00
Qi Xiao
bb1e5954f2 eval: Make OS X's mktemp happy. 2016-02-20 22:11:34 +01:00
Qi Xiao
08eff35cab eval: Add tests; comment out a failing test. 2016-02-20 22:05:20 +01:00
Qi Xiao
38874f6348 eval: Remove commented tests. 2016-02-20 21:47:30 +01:00
Qi Xiao
4d060c3ea7 eval: Add tests. 2016-02-20 21:43:25 +01:00
Qi Xiao
4b05661c44 eval: Add builtin lt and gt. 2016-02-20 21:20:18 +01:00
Qi Xiao
6ee16abba0 Remove GenericError. 2016-02-20 21:12:54 +01:00
Qi Xiao
385fccfcda eval: Reorder tests. 2016-02-20 21:10:56 +01:00
Qi Xiao
3d32200799 parse: Save one LOC. 2016-02-20 17:12:17 +01:00
Qi Xiao
5dee621830 parse: Run gofmt after generating boilerplate. 2016-02-20 17:10:44 +01:00
Qi Xiao
a1a495cc09 parse: Fix go:generate line. 2016-02-20 17:10:31 +01:00
Qi Xiao
09b77f6127 parse: Remove unused funcs; test Quote. 2016-02-20 17:05:28 +01:00
Qi Xiao
5a1fbf814b Remove an used func. 2016-02-20 16:54:24 +01:00
Qi Xiao
4cca805a1c parse: Add test cases. 2016-02-20 16:52:24 +01:00
Qi Xiao
3cc9f757b1 Merge pull request #149 from Zirak/master
edit: Fix crash in history listing mode
2016-02-20 16:30:19 +01:00
Qi Xiao
2dba0c4b53 parse: Test parsing of control structures. 2016-02-20 15:34:31 +01:00
Qi Xiao
618d927605 parse: Check all fields of AST. 2016-02-20 15:17:34 +01:00
Qi Xiao
935bfd24e7 parse: Move checkAST into a seprate file, add doc. 2016-02-20 14:44:44 +01:00
Zirak
bf64621b7e edit: Fix crash in history listing mode
When you had too few history entries to display in the terminal,
entering history listing mode attempted to access a negative index and
crashed.
2016-02-20 12:31:47 +00:00
Qi Xiao
f407db7283 eval: Use location information in {,Values}Op.
This also fixes a NullPointerException.
2016-02-20 12:25:51 +01:00
Qi Xiao
91fc4a3419 each now takes any CallerValue. 2016-02-20 03:44:08 +01:00
Qi Xiao
83b214e31c edit: When doing a refresh, erase just once in the beginning.
Previously if you bind `le:binding[insert][Ctrl-L] = { put * }`, there is a
small defect that is readily observed by pressing Ctrl-L repeatedly:
the prompt will never go to the bottom of terminal, but always kept one line
higher than the bottom.

This is because invoking a closure from the editor causes a full refresh,
which in turn causes an erase to be done near the end of writer.refresh,
which, in the old algorithm, always adds a superfluous newline.

By doing the erase at the very beginning, we avoid the superfluous newline.
Now pressing Ctrl-L repeatedly will push the prompt to the bottom.
2016-02-20 03:05:03 +01:00
Qi Xiao
6f21bc690f Go back to mattn/go-sqlite3. 2016-02-20 03:04:44 +01:00
Qi Xiao
5c03407a8a Wait for store jobs to finish when exiting.
This fixes #144 #147.
2016-02-20 02:32:12 +01:00
Qi Xiao
098965cfac Also close the database.
Doesn't help with #147 though.
2016-02-20 02:27:26 +01:00
Qi Xiao
3c75e71a8b Use a fork of mxk/go-sqlite. 2016-02-20 01:47:40 +01:00
Qi Xiao
8cb35dfafc Fix a NullPointerException. 2016-02-20 01:37:38 +01:00
Qi Xiao
8900e57707 Switch to mxk/go-sqlite for the SQLite3 backend.
This one has the advantage of supporting SQLite3-specific operations.
2016-02-20 01:22:22 +01:00
Qi Xiao
169b9917e3 Refine evaler's error reporting. 2016-02-20 00:48:13 +01:00
Qi Xiao
2b1b57f0aa Refine compiler's error reporting. 2016-02-19 21:16:23 +01:00
Qi Xiao
b2dbfaee39 Sort variables in completion. 2016-02-19 20:54:40 +01:00
Qi Xiao
7502b61b3e Don't style variables in completion menu. 2016-02-19 20:51:08 +01:00
Qi Xiao
d6a126946c Fix an error message. 2016-02-19 20:49:48 +01:00
Qi Xiao
2e08ae0975 Implement setting of variables in other modules correctly.
This fixes #141.
2016-02-19 20:39:22 +01:00
Qi Xiao
2cdbf67147 Slightly simplify Repr. 2016-02-19 20:31:54 +01:00
Qi Xiao
2413edcc09 Implement pretty printing.
This fixes #112.
2016-02-19 20:11:31 +01:00
Qi Xiao
07b0fc647c Split Value.Kind to Kinder 2016-02-19 18:59:32 +01:00