Commit Graph

270 Commits

Author SHA1 Message Date
Val Markovic
9bee28a0a8 Merge pull request #26 from spice/relative-clang-root
Handle relative DPATH_TO_LLVM_ROOT
2013-02-05 21:01:34 -08:00
Strahinja Val Markovic
02201c866b Last piece of Windows support.
YCM should now compile cleanly on MSVC. Fixes #19.
2013-02-05 19:40:43 -08:00
Strahinja Val Markovic
e8a4caa561 Some initial minor MSVC support 2013-02-05 18:57:49 -08:00
Strahinja Val Markovic
2159ed8e39 Changing an include path for readability 2013-02-05 18:31:33 -08:00
Strahinja Val Markovic
b6401ca179 Requiring python 2.5 2013-02-05 16:48:40 -08:00
Strahinja Val Markovic
dffe471a93 Comment typo fix; fixes #31 2013-02-05 12:59:37 -08:00
Alexander Bolodurin
826ec0a12b Handle relative DPATH_TO_LLVM_ROOT 2013-02-06 01:46:48 +11:00
Strahinja Val Markovic
8b22c4372a Fixing code style issues 2013-02-02 21:50:05 -08:00
Strahinja Val Markovic
fc1009913e Updating to latest gmock & gtest 2013-02-02 21:47:41 -08:00
Strahinja Val Markovic
6d127c651e Removed unused member var from LetterNode; fix #7
This makes XCode 4.6 happy again.
2013-02-02 21:24:46 -08:00
Strahinja Val Markovic
f3c6eba389 Throw fatal error if cmake finds python3 2013-02-02 12:22:26 -08:00
Strahinja Val Markovic
d4f0d3c314 Trying to force the use of python 2 2013-02-02 12:11:37 -08:00
Strahinja Val Markovic
fe92678221 Renaming a poorly named variable 2013-01-29 21:40:42 -08:00
Strahinja Val Markovic
594d8365b3 Forcing use of python2 for ycm_core; fixes #2 2013-01-29 21:24:04 -08:00
Strahinja Val Markovic
e8b60fd537 Adding the YcmDebugInfo command 2013-01-26 11:45:14 -08:00
Strahinja Val Markovic
90c495a9c7 Making sure clang crash recovery is turned on 2013-01-26 11:45:14 -08:00
Strahinja Val Markovic
7fc3c47101 Fixing the database-using example code 2013-01-24 19:18:09 -08:00
Strahinja Val Markovic
8cc9c9ca76 Race condition fix; caused latency on first load
The issue was that the user could open a C-family file and have it start
compiling in the background. While it is still compiling, he could trigger the
completion system with a member dot operator. Because the file was still
compiling for the very first time, the TranslationUnit object was yet not
created. Sadly, this meant that UpdatingTranslationUnit would return false, and
a new query request would be created, the GUI would hang until it was done
aaaaand terrible lag until the file was compiled.

This was a very rare edge case that could also only be triggered if it takes a
considerable amount of time to compile the file.
2013-01-24 18:37:44 -08:00
Strahinja Val Markovic
326d77fd43 Removing some forgotten code 2013-01-24 11:07:55 -08:00
Strahinja Val Markovic
19637cadda Renaming ycm_clang_options to ycm_extra_conf 2013-01-24 09:59:21 -08:00
Strahinja Val Markovic
90fe31f98e Async querying of CompilationDatabase supported 2013-01-23 17:23:51 -08:00
Strahinja Val Markovic
0b60b8d03b More stlye formatting fixes 2013-01-23 17:23:38 -08:00
Strahinja Val Markovic
440a2c17f2 Updating docs and the example ycm_clang_options.py 2013-01-22 21:05:32 -08:00
Strahinja Val Markovic
3706750b40 astyle format update 2013-01-22 19:42:44 -08:00
Strahinja Val Markovic
ee919417af Managing memory from the C interface better 2013-01-22 19:40:05 -08:00
Strahinja Val Markovic
970b2fb56c Kiling a memory leak... I hate C interfaces 2013-01-22 17:29:05 -08:00
Strahinja Val Markovic
482de517ba Better support for CompilationDatabase
We now use the compilation working directory for a file that is specified in the
CompilationDatabase. We don't actually change the working directory of the
process, even temporarily (that would be annoying to users); we munge the flags
coming from the database so that all the relative paths in them are resolved to
absolute ones.
2013-01-22 16:30:49 -08:00
Strahinja Val Markovic
1641bc9683 Formatting more code with astyle 2013-01-19 20:17:12 -08:00
Strahinja Val Markovic
4308130ab3 Formatting more code with astyle 2013-01-19 20:10:52 -08:00
Strahinja Val Markovic
013a56c25c Formatting the a part of the source with astyle 2013-01-19 20:03:32 -08:00
Strahinja Val Markovic
00db8fd8b1 compilation_database.json now fully supported 2013-01-19 18:53:30 -08:00
Strahinja Val Markovic
3e25a975ca Turning on compilation_database.json generation 2013-01-19 17:11:39 -08:00
Strahinja Val Markovic
c1119c001f Adding CompilationDatabase support (still WIP) 2013-01-18 17:22:36 -08:00
Strahinja Val Markovic
56f96b6c08 Hide clang pragmas behind an #ifdef 2013-01-17 14:58:50 -08:00
Strahinja Val Markovic
611a07aa56 Adding back a missing boost header 2013-01-17 14:50:43 -08:00
Strahinja Val Markovic
5ac3d40691 No error when no clang support and cpp file opened
Previously, when the user opened a cpp/c/objc/objcpp file and clang support was
not compiled in, there would be an error message printed in vim.
2013-01-13 20:56:10 -08:00
Strahinja Val Markovic
cc53a46f54 ClangCompleter tests not built when no libclang
When the user doesn't want semantic completion with clang, then tests that test
those features are not included in the test binary.
2013-01-13 17:33:35 -08:00
Strahinja Val Markovic
3763dc8a78 Removing support for static linking to libclang 2013-01-13 16:45:06 -08:00
Strahinja Val Markovic
f7bfc49d29 Removing the in-tree copy of llvm+clang 2013-01-13 16:43:06 -08:00
Strahinja Val Markovic
eb24fc8b34 Now using PATH_TO_LLVM_ROOT
This is the first step towards eliminating the in-tree copy of llvm.
2013-01-13 16:39:53 -08:00
Strahinja Val Markovic
3899d36df9 Extra comment pointing to boost bug report 2013-01-13 14:40:32 -08:00
Strahinja Val Markovic
121d88518e Updating to boost 1.52 2013-01-13 14:38:19 -08:00
Strahinja Val Markovic
0373fb254e We now use @loader_path on Mac for libclang
This makes sure that our local copy of libclang.dylib is preferred over the
system one.
2013-01-13 12:51:09 -08:00
Strahinja Val Markovic
8c709c2e57 NO_CLANG_COMPLETER inverted to USE_CLANG_COMPLETER 2013-01-12 16:38:00 -08:00
Strahinja Val Markovic
29cddc5adc Removing unnecessary declaration 2012-09-06 14:00:33 -07:00
Strahinja Val Markovic
a6b4b7fd27 LetterHash -> LetterNodeListMap 2012-09-06 12:56:08 -07:00
Strahinja Val Markovic
ae57c9c39b ClanUtils functions are now all in one place
Also, internal ClanUtils functions are now in an unnamed namespace
2012-09-06 12:09:32 -07:00
Strahinja Val Markovic
b48111bb2f Adding a missing header
This compiled previously by accident.
2012-09-06 12:08:34 -07:00
Strahinja Val Markovic
607b25e16b Lowering the visibility of some typdefs 2012-09-06 11:58:16 -07:00
Strahinja Val Markovic
909450ec13 Adding a few run-time asserts 2012-09-06 11:58:02 -07:00
Strahinja Val Markovic
fc3bc60fae Moving the Result.h include out of Candidate.h 2012-09-06 11:37:22 -07:00
Strahinja Val Markovic
7a4fec0f3f Small whitespace fix 2012-08-24 16:28:56 -07:00
Strahinja Val Markovic
0e65074148 Fixing compilation with no NO_CLANG_COMPLETER 2012-08-17 15:09:15 -07:00
Strahinja Val Markovic
f4d7d6ffdf ClangCompleter can now not be compiled
One more thing needs to be done though: the clang_completer.py file needs to not
trigger at all when YCM has been compiled without cpp support. FIX THAT!
2012-08-17 13:32:42 -07:00
Strahinja Val Markovic
daef17feb4 Support for showing extra info for diagstics
This was intended to show the full clang output for a given diagnostic,
including notes. But it appears that libclang does not provide this
functionality...
2012-08-15 19:39:03 -07:00
Strahinja Val Markovic
a4d344aa36 Avoid an extra clang reparse if not needed 2012-08-13 21:06:44 -07:00
Strahinja Val Markovic
bb6244e090 Handling clang parse errors instead of segfaulting 2012-08-13 20:51:04 -07:00
Strahinja Val Markovic
f74ddbcec5 New TODO to check TU creation success 2012-08-13 15:51:55 -07:00
Strahinja Val Markovic
0903d5151b Fix for unique_future in c++03 having private ctor 2012-08-13 10:13:51 -07:00
Strahinja Val Markovic
d099492a0f Adding a TODO; another var good for Boost.Atomic 2012-08-12 19:08:43 -07:00
Strahinja Val Markovic
f500ecaffb Fix for hang on insert enter after "foo.bar"
If the user had code like "foo.bar" and then entered insert mode after the 'r'
in "bar", YCM would cause vim to hang.

The problem happened because a sorting task was created that would try to sort
on the latest clang result but none would be created because a clang task was
not created in this occasion. clang_data_ready_ would remain false and would
never be set to true, thus causing an infinite loop in SortingThreadMain since
the thread would forever wait on the mutex.

This was rectified with better handling of the clang results cache. Now the
cache is a full class and it also stores the line & column number of the
location for which the results were computed. Better logic is in place for the
cache invalidation.
2012-08-12 19:01:39 -07:00
Strahinja Val Markovic
f99e89f812 Fix for "lclose not allowed here" error on open
The problem was caused by a race condition of all things. ClangCompleter would
set possibly_completions_ready when starting the first parse pass for the file
and then would try to extract diagnostics for the file before the diagnostics
were done. Technically this was not a problem because only an empty diagnostics
vector would be returned, but this triggered Syntastic because hey, we have some
diagnostics to show (even though we don't).

And then Syntastic would try to close the location list window during startup
when this operation is not available. Technically it's Syntastic's fault, but a
more principled way to check for done diagnostics is to return and use a future
for file parsing operations and this solution also works around the Syntastic
issue.
2012-08-12 14:36:36 -07:00
Strahinja Val Markovic
67c69197d8 Refactorings and removing dead code 2012-08-11 20:13:12 -07:00
Strahinja Val Markovic
6a2f8c859c Using -x c++ in clang opts so that headers compile
The problem is that clang loves to assume that .h files are in C. -x c++ gives
it a nudge in the right direction.
2012-08-11 19:46:22 -07:00
Strahinja Val Markovic
f88c9feb4f Refactored the clang completer; many bugs fixed
This change should fix the random hangs and segfaults when using the clang
completer. Also, assertion errors printed to the console on vim exit should go
away too, same thing with segfaults on vim exit. These "on exit" errors were
caused by not cleanly shutting down the background threads; both the identifier
completer and the clang one now join the threads on destruction. This results in
a clean shutdown.

The new clang completer architecture now uses only one clang thread (again)
instead of a completion and parsing thread. Since the parsing task needs to wait
on the completion task if it was started first (and vice-versa) there's no point
to using two threads. The desired "simplicity" of using two threads for these
two tasks actually created needless complexity (and bugs). Sigh. Such is life.

A TranslationUnit abstraction was also created and this in turn also reduces the
complexity of the clang completer.

The clang completer now also has some (very) basic tests.
2012-08-11 19:37:08 -07:00
Strahinja Val Markovic
04c01c2ad0 Removing some commented-out code 2012-08-11 19:06:46 -07:00
Strahinja Val Markovic
3e56aea6e3 Adding our custom X_ASSERT macro 2012-08-11 19:01:40 -07:00
Strahinja Val Markovic
04c04c6bce Not setting c++98compat warning for xcode 2012-08-11 19:00:39 -07:00
Strahinja Val Markovic
ee3ea72e3c Not parsing llvm cmake when using external clang
This speeds up the cmake project regeneration.
2012-08-11 18:59:54 -07:00
Strahinja Val Markovic
f17e45bdc3 Forcing the use of move in one location 2012-08-06 20:02:46 -07:00
Strahinja Val Markovic
ddca4d0cf9 Split the CompletionData constructor into 2 funcs 2012-08-05 21:43:38 -07:00
Strahinja Val Markovic
6216eedbc9 Removing "__" from completion strings 2012-08-05 21:34:29 -07:00
Strahinja Val Markovic
0da734d393 Showing the first func def in the preview window 2012-08-05 21:13:01 -07:00
Strahinja Val Markovic
55267ceb5c Now showing optional parameters as well
Also refactored CompletionData building into a constructor for CompletionData
2012-08-05 21:01:42 -07:00
Strahinja Val Markovic
5f95a2bfde Showing preview window data for completions
Also, const functions have " const" correctly appended in the completion window.
2012-08-05 19:49:54 -07:00
Strahinja Val Markovic
df260ed2a8 Forcing c++ lang in clang options for ycm 2012-08-05 12:55:03 -07:00
Strahinja Val Markovic
feef67c50a Setting rpath only for non-system, external clang
Setting the rpath for the system libclang was for some reason breaking the
ycm_core_tests binary. Also, rpath seems to work funky on Mac OS X.
2012-08-04 19:37:00 -07:00
Strahinja Val Markovic
a2bbbe1a4d Code style fix 2012-08-04 19:33:28 -07:00
Strahinja Val Markovic
5646eeab5e More null checks for data coming from clang 2012-08-04 19:29:11 -07:00
Strahinja Val Markovic
3c65c84c7b Renaming 'indexer' to the more accurate 'ycm_core' 2012-08-04 18:59:22 -07:00
Strahinja Val Markovic
f3ddfd5458 Build option to use system libclang 2012-08-04 18:49:21 -07:00
Strahinja Val Markovic
1fd2515617 clang options file uses more succint dict syntax 2012-08-03 10:26:11 -07:00
Strahinja Val Markovic
f120c0ce1c Showing function args right next to name now
The completion text in the menu is different. We used to just show the func name
in the "main" part of the completion menu, now we show the full signature
without the return type (which is shown on the right)
2012-08-02 21:37:21 -07:00
Strahinja Val Markovic
4765fd88fe Removing some unused code + fix for crash
The crash was caused by clang_disposeString/getCString not checking whether the
given CXString has NULL data members. Fixed with a workaround.
2012-08-01 22:09:31 -07:00
Strahinja Val Markovic
3868f94ac7 Adding a .ycm_clang_options.py file for YCM 2012-08-01 20:50:35 -07:00
Strahinja Val Markovic
618a6acd59 Protecting ALL clang access with a mutex now 2012-08-01 20:09:01 -07:00
Strahinja Val Markovic
eab70838f0 New system for specifying clang flags
Now the .ycm_clang_options file is a python script that needs to implement our
API. This enables the user to do arbitrary things when computing flags.
2012-08-01 19:34:20 -07:00
Strahinja Val Markovic
11a52d018c Protecting diagnostic access with mutex 2012-08-01 17:18:35 -07:00
Strahinja Val Markovic
11e42b49f0 Smarter updating of clang diagnostics display 2012-07-30 19:42:41 -07:00
Strahinja Val Markovic
71e3e86252 Adding option for custom extra rpath 2012-07-30 14:20:05 -07:00
Strahinja Val Markovic
333b71f8d5 Triggering syntastic error display more often 2012-07-29 22:13:42 -07:00
Strahinja Val Markovic
57bd4f7a47 Now possible to use external libclang.so 2012-07-29 20:58:04 -07:00
Strahinja Val Markovic
958a008462 Adding diagnostic extraction support
Next step is to add support to Syntastic so that it uses this new functionality
2012-07-28 15:27:30 -07:00
Strahinja Val Markovic
2667a82441 Now using the correct flag to warn on C++11 use 2012-07-28 11:19:26 -07:00
Strahinja Val Markovic
e46ea47df2 Replacing accidental use of C++11 auto 2012-07-27 13:52:56 -07:00
Strahinja Val Markovic
0d9d697b50 Only showing the first overloaded func signature 2012-07-26 21:44:17 -07:00
Strahinja Val Markovic
e9cf3c14b2 Not adding a '(' after a function name insert 2012-07-26 21:44:17 -07:00
Strahinja Val Markovic
3cc4cf8e10 Async clang parsing of the current file 2012-07-26 21:44:17 -07:00
Strahinja Val Markovic
cd9f40b7c0 Add missing check for threads enabled 2012-07-26 21:44:17 -07:00
Strahinja Val Markovic
13f87c5a62 Buffer identifiers are now extracted async 2012-07-24 20:09:09 -07:00
Strahinja Val Markovic
b120d6a5ba Now extracting identifiers in C++ code 2012-07-23 20:17:59 -07:00
Strahinja Val Markovic
cdb8dfc86b Loading .ycm_clang_options files now
These files can contain flags that are passed to clang.
2012-07-22 15:19:28 -07:00
Strahinja Val Markovic
b703138cac Adding Boost.Filesystem to BoostParts 2012-07-22 15:09:50 -07:00
Strahinja Val Markovic
7bf18c7c5c Improving IdentifierCompleter performance
We limit the number of candidates returned to Vim to 20 and also make sure that
we are not returning any duplicate candidates. This provides a noticeable
improvement in latency.
2012-07-21 12:06:18 -07:00
Strahinja Val Markovic
0f7f32d96f Updating to boost 1.50 2012-07-21 11:37:40 -07:00
Strahinja Val Markovic
964c42068e Splitting the UnsavedFile struct into its own file 2012-07-21 09:09:29 -07:00
Strahinja Val Markovic
44b671c2c0 ClangCompleter now returs extra data
This data is used to show more information about the completions in the
completion menu.
2012-07-19 21:17:39 -07:00
Strahinja Val Markovic
e56080ea56 Using libc++ with clang from now on
This also applies a patch to gtest that resolves an issue with building gtest
with libc++. The patch was taken from here:

https://groups.google.com/d/topic/googletestframework/F1B9LArL9_U/discussion
2012-07-19 21:15:25 -07:00
Strahinja Val Markovic
f76ee24316 Now only showing available completion strings 2012-07-16 20:51:21 -07:00
Strahinja Val Markovic
bcb65ec43f Refactored the task building code for simplicity 2012-07-16 20:23:17 -07:00
Strahinja Val Markovic
c9e1706fa1 ClangCompleter now async and caches Clang data
First off, we don't block the GUI thread anymore for ClangCompleter (that was
always temporary). Secondly, now ClangCompleter will cache the data coming from
clang so that query-based filtering of members is fast.
2012-07-15 20:49:56 -07:00
Strahinja Val Markovic
a04c3322cc No results for empty query (IdentifierCompleter) 2012-07-15 19:44:35 -07:00
Strahinja Val Markovic
52d8a1236b If query empty, Results sorted lexicographically
This change was also the root cause of the crash bug I spent two days tracking
down. The problem was that the new bool member was not added to the custom copy
ctor... since we don't really need a custom copy ctor for Result, we're going
with the compiler-provided one.
2012-07-15 19:40:24 -07:00
Strahinja Val Markovic
20f0d2a280 Removing some unused aliases 2012-07-12 20:55:00 -07:00
Strahinja Val Markovic
ce23b5ca55 Moving the LatestTask typedef to Future.h 2012-07-12 20:54:40 -07:00
Strahinja Val Markovic
81811964c3 Improving UnsavedFile operator== 2012-07-12 20:54:08 -07:00
Strahinja Val Markovic
27e1400558 ClangComplete now sorts completions based on query 2012-07-11 22:41:32 -07:00
Strahinja Val Markovic
52b1b9f660 More forward decls instead of includes 2012-07-11 22:14:28 -07:00
Strahinja Val Markovic
dad2fc31bb Replacing a header file with a forward decl 2012-07-11 22:10:37 -07:00
Strahinja Val Markovic
be0085aca9 CandidateRepository is used for Candidate storage
This will make it easy to use the same Candidates for both the
IdentifierCompleter and the ClangCompleter, thereby reducing memory consumption
and increasing performance.
2012-07-11 22:08:04 -07:00
Strahinja Val Markovic
f25c3d90f7 Removing unused file 2012-07-11 21:41:39 -07:00
Strahinja Val Markovic
39ecf76798 Renamed ClangComplete to ClangCompleter 2012-07-10 23:28:58 -07:00
Strahinja Val Markovic
545792c055 Renaming Completer to IdentifierCompleter 2012-07-10 23:13:12 -07:00
Strahinja Val Markovic
94288108d8 Initial, rough kinda working version ClangComplete
Many things need to be ironed out still.
2012-07-10 15:26:07 -07:00
Strahinja Val Markovic
1df2a5d360 Using cmake_cxx_flags instead of add_definitions 2012-07-09 13:58:56 -07:00
Strahinja Val Markovic
0a553bf23c Building in c++11 mode where available 2012-07-08 17:55:14 -07:00
Strahinja Val Markovic
30c9637992 Using the vector indexing suite from Boost.Python
This removes the need for a special overload for AddCandidatesToDatabase. Also,
the GetFuture function now provides a more sensible API with the list being
returned instead of accepted as an out parameter.
2012-07-08 15:34:44 -07:00
Strahinja Val Markovic
9a82319c77 Initial version of the ClangComplete class 2012-07-08 11:54:57 -07:00
Strahinja Val Markovic
fb5d25fc81 The cpp file's header should be included first 2012-07-06 14:06:21 -07:00
Strahinja Val Markovic
174687c4bc Renaming ConcurrentStack to ConcurrentLatestValue 2012-07-06 12:14:25 -07:00
Strahinja Val Markovic
8da18e0319 Removing more llvm cruft files 2012-07-05 20:58:10 -07:00
Strahinja Val Markovic
c809d396d1 Removing more unwanted files 2012-07-05 20:31:42 -07:00
Strahinja Val Markovic
3880bd0093 Ignoring some llvm files we don't care about 2012-07-05 20:20:29 -07:00
Strahinja Val Markovic
65ac7dcd7b We DO want clang to be tracked in our in-tree llvm
The llvm gitignore file removes all clang files from revision control. Not what
we want in our case.
2012-07-05 18:24:45 -07:00
Strahinja Val Markovic
6ea344fcbb Removing ds_store files 2012-07-05 18:23:12 -07:00
Strahinja Val Markovic
ac1f40b9af Renaming our gtest targets to gtest_ycm
llvm also has a copy of gtest in its source tree. This causes cmake to bork
since it sees several different targets with the same name (gtest and
gtest_main). So we have to rename our versions of gtest and gtest_main to
something else... We're just appending _ycm now.

This will cause pain when we want to update gtest in the future from upstream,
but I don't see a better way of handling this.
2012-07-05 17:59:32 -07:00
Strahinja Val Markovic
5f4da9324a Adding llvm/clang to our CMakeLists files
The indexer target now depends on libclang. This 
will force cmake to build the required parts of 
llvm and clang.
2012-07-05 17:58:49 -07:00
Strahinja Val Markovic
1f51a89d39 Adding more llvm/clang files
These were ignored by git accidentally. We want ALL OF THEM since they all came
in the llvm/clang source distribution.
2012-07-05 17:55:45 -07:00
Strahinja Val Markovic
8480549b46 Adding llvm and clang in-source 2012-07-05 17:51:06 -07:00
Strahinja Val Markovic
3f96232ce8 Removing second definition of COMPILER_IS_CLANG 2012-07-04 21:50:28 -07:00
Strahinja Val Markovic
570267bbe0 Fixing cmake conf so that we can use all warnings
This includes using a workaround for a CMake bug.
2012-07-04 21:24:16 -07:00
Strahinja Val Markovic
a9eb277da1 Fixing brace style usage 2012-07-04 16:15:41 -07:00
Strahinja Val Markovic
4eb160ac58 Whitespace fix 2012-07-02 11:10:28 -07:00
Strahinja Val Markovic
ee2bfe8952 Fix for query capital chars in wb ratio condition 2012-06-24 18:13:35 -07:00
Strahinja Val Markovic
d18b89bceb Fixed another bug in the word boundary condition
The problem was that should have been using a longest common subsequence
algorithm for the "number of word boundary character matches" calculation. Our
old approach would fail for the following case:

Query: "caafoo"

Candidate1 : "acaaCaaFooGxx"
Candidate2 : "aCaafoog"

Candidate1 needs to win. This is now also a test case.
2012-06-24 17:58:20 -07:00
Strahinja Val Markovic
9b875ca7f3 New sorting rule: char match index sum
The point is that we want to prefer candidates that have the query characters
"earlier" in their text, e.g. "xxabcxxx" over "xxxxxabc" for "abc" query.
2012-06-24 15:35:00 -07:00
Strahinja Val Markovic
adb31abef2 Fixing a bug with word-boundary ratio calculation 2012-06-24 15:11:58 -07:00
Strahinja Val Markovic
5d6e839118 Newly inserted identifiers are added immediately 2012-05-12 15:20:03 -07:00
Strahinja Val Markovic
a8e9b61f3f Going back to 2-4 threads 2012-05-11 10:09:52 -07:00
Strahinja Val Markovic
6e1c7f8429 Optimized the use of threads somewhat 2012-05-10 22:35:08 -07:00