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