Comments (2)
Echoing everything the masterful @deontologician said.
Just a small addition: We do a tiny itsy-bitsy bit processing on top of java_term_info.json
in CSharpTermInfoMutator.cs
as a safety and sanity check. IIRC, there was one or two keywords that caused the C# compiler to freak out.
The C# driver still needs the Java's do_
because the C# driver has a temporary and internal Java API compatibility layer that forwards Java naming AST calls to the primary C# naming AST. This internal layer is needed for maintaining compatibility with the Java unit tests. Also see: #18 (comment) [paragraph Regarding No.1]
Here's an example:
public Funcall Do_ ( Javascript js )
{
Arguments arguments = new Arguments();
arguments.CoerceAndAdd(js);
return new Funcall (arguments);
}
internal Funcall do_ ( Javascript js )
{
return Do_ ( js );
}
I think writing code to maintain special cases for Do
and do_
would add complexity at the moment. Also, the benefit of keeping compatibility with Java's unit tests is too huge for us to remove right now.
Eventually, we'll be able to remove the internal Java API compatibility layer soon as (IIRC) rethinkdb/rethinkdb#5003 is done. Once rethinkdb/rethinkdb#5003 is done, I think we'll use a csharp_coverter.py
to generate C# unit tests using @deontologician 's multireql tool. Once we have these two items, we can go back and remove the Do_
do_
Do
from rethinkdb.driver.
This would probably require the C# driver to re-implement some of the logic currently done in the Java driver's python code. That's where the mapping from reql terms to method names happens. I think RethinkDb.Driver uses only the output of that process, java_term_info.json
.
For reference, the mapping of keywords happens here: https://github.com/rethinkdb/rethinkdb/blob/next/drivers/java/metajava.py#L143
You could easily modify metajava.py to have an empty JAVA_KEYWORDS
array
from rethinkdb.driver.
Related Issues (20)
- Create a method to return result as raw json HOT 4
- Resolution function on OptArg insert conflict HOT 1
- ConnectionPool.Builder.ConnectAsync does not respect InitialTimeout() HOT 4
- Add Error codes to Exceptions HOT 2
- Additional exceptions thrown when trying to cancel Cursor.MoveNextAsync() HOT 6
- Object's primary key and key of RunAtom() is different (Client-side generation). HOT 4
- Support for System.Text.Json.JsonDocument
- Cursor<T> should implement IAsyncEnumerable<T> in .net core 3
- RethinkDB 2.4 Release
- Best options: RunResult, RunAtom or RunCursor HOT 3
- Get list from Table that contains 'A' in the 'message' field HOT 1
- ASL 2.0 HOT 1
- Implement lambda functions as a possible argument in Insert().OptArgs("conflict",...) HOT 1
- System.NullReferenceException HOT 1
- Add EntityFramework support to Linq provider HOT 5
- Polymorphism HOT 1
- Various exceptions when updating a document HOT 1
- System.Configuration.ConfigurationErrorsException: HOT 1
- Wrong OptArg serialisation after OrderBy
- Insert not working with RunNoReply & Can't use runOpts is always null -- solved
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rethinkdb.driver.