-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Module compiles on Windows #4
Conversation
I have started shaving the yak for mono support. This may take some time! |
Awesome! On Tuesday, September 23, 2014, Richard Astbury notifications@github.com
|
Thanks Glenn, I started off on the nuget.exe approach, but to my surprise msbuild sorted out the nuget dependencies for me. xbuild on linux did not. I guess there are a few options here, and I'm not sure which is the best: 1. Put all binaries in nugetIf we compiled the module and made that a nuget package too, we don't take a dependency on msbuild. The question is how do you get the nuget packages down?
2. Put all the binaries in the npm packageWe could just ship all the binaries in the npm package. This seems like the most simple solution, but it feels like the wrong approach. 3. Compile the module, download the dependenciesThis is the current approach, and is in keeping with how native modules generally work in npm. The problem is that msbuild has moved out of .NET, and into Visual Studio. Which is an annoying dependency to have. The story is better on mono, as xbuild ships with the framework. Ideally there should be a repository for node binaries. Which is something I've mentioned before: https://groups.google.com/d/msg/nodejs/Ckfw2DmUqKE/EDqllcodIDsJ |
Nope, there is a fourth option ;-) You can get the binaries off chocolatey, See the binaries section here: This has our chocolatey daily build, but you can also use a URL against the On Wednesday, September 24, 2014, Richard Astbury notifications@github.com
|
Sounds good. What about the edge-scs binary? Build it? |
I would just include it as Tomek did for edge proper On Wednesday, September 24, 2014, Richard Astbury notifications@github.com
|
Super. I'll make it so. |
Right, the install script now downloads the package from myget. Unfortunately it doesn't really contribute a great deal, as most of the dependencies are already included in the bin folder of the scs project. It does get these though:
|
Hi Richard Great. Let's rip the dependencies and only include the JS file and the dll. The On Wed, Sep 24, 2014 at 5:39 AM, Richard Astbury notifications@github.com
|
Gah, I've broken something. Stack overflow exceptions... |
I've got it working, but I've had to keep scriptcs to 0.8.1. Attempts to upgrade to 0.10.2 result in errors (key missing from a dictionary). Ready to merge. I'll re-attempt an upgrade on another PR. |
This is probably because you need to configure the engine. Let me take your On Thursday, September 25, 2014, Richard Astbury notifications@github.com
|
Hi @richorama I am testing this out now. I am getting a StackOverFlowException when I try to get edge to load edge-scs. This after doing an npm install using the source folder and installing into a temp dir. Debugging now.... |
@richorama weird, if I recompile the dll in VS it worked...stay tuned. |
OK @richorama not sure why that failed, but I am going to take the PR and then upgrade to work with the latest scriptcs. Thanks a ton for this! |
@richorama looks like the dll that is included for edge-scs is messed up. If i recompile it's fine. I am going to push an update and see if that fixes. |
OK so that fixed it, but now I have a periodic error I am seeing related to Zlib. I have only seen it periodically but it is troubling. I wonder if it has to do with long-name paths. When it happens if I install again it works.
|
The plot thickens. So it turns out the installs script was not grabbing "enough", it needed to grab the Roslyn packages as well. I updated the script to now do that, and it works. You can test by doing: var edge = require('edge');
var hello = edge.func('scs', function() {/*
static object Invoke(string s) {
return s;
}
*/});
hello("Hello from scriptcs", function(error,result) {
if (error) throw error;
console.log(result);
}); It should output:
Now to upgrade to the latest bits and see what happens! |
Assuming you have Visual Studio (msbuild). A post install script will compile the .NET solution and copy the binaries to the
lib
folder.The pre-compiled binaries have been deleted.
Not sure how to support this on mono :¬/