Comments (7)
It was initially planned that flexdll should not depend on Unix, to make it easier to integrate it directly in OCaml's bootstrap cycle, but since this is not going to happen, there is no reason not to use it.
I won't have much time to work on that soon, so if you feel like suggesting a patch, I'll happily include it.
from flexdll.
@gares , I opened an issue in the OCaml bugtracker #7050 to be able to pass command-line arguments for the OCaml compiler in a file, to avoid argv size limitations. The two issues seem independent, but are in fact related if the command that is called in the present PR is an invocation of the OCaml compiler (or a tool distributed in the OCaml compiler distribution). Is it?
from flexdll.
Update for 2016: FlexDLL is now an optional part of OCaml's bootstrap cycle, so a hard dependency on Unix would be upsetting (for at least two developers...!). However, it sounds as though this could be done in a way which could be easily disabled at build time in the bootstrap (similarly to the shims already in place for building with OCaml < 4.03.0)
from flexdll.
I also will submit a PR in the next few days which allows flexdll to parse responsefiles produced by the new ocaml functions write_arg
and write_arg0
. But I'm not that familiar with the bootstrap mechanism to add a check if the flexdll support this..
from flexdll.
The FlexDLL bootstrap in OCaml is only normally something you have to worry about if you're altering the OCaml side - feel free to cc me when you submit the PR and I'll happily test it. If you want to have a go, it's an easy enough procedure: from a git clone of OCaml (you can do it from a tarball of the sources, but it's easier to use a clone):
git submodule update --init
cd flexdll
git remote add -f bschommer https://github.com/bschommer/flexdll.git
git checkout bschommer/your-new-flexdll-branch [-b your-new-flexdll-branch]
cd ..
- configure OCaml
make -f Makefile.nt flexdll world.opt
Step one initialises the flexdll directory of the OCaml source tree, clones this repo and checks out the 0.35 commit (assuming you are on trunk or 4.04). The flexdll directory itself is then to all intents and purposes a separate git clone, so you can add your remote and checkout your branch - you can use -b your-new-flexdll-branch if you want to work on the clone within that directory and you can also push back to your GitHub repo from it but it's also OK (and commonplace with submodules) to work with a "detached HEAD".
Note that OCaml will show that the 'flexdll' file has changed if you do git status from there which is correct - but you should not try to commit that change (if you say git submodule update
then git will checkout the 0.35 commit in the flexdll directory again).
Hope that helps - but as I said, I'm quite happy to test and comment on that side too!
from flexdll.
I think the PR on the flexdll side should not be that complicated, I will only have to copy the read_arg
and read_arg0
function from the arg
module for compatibility. My problem is more how on the ocaml side one could notice that the flexdll version is new enough to allow this.
from flexdll.
You don't have to worry on the OCaml side - for bootstrapping, when FlexDLL 0.36 is released (with it), we update the SHA stored for the submodule in the OCaml repo. For users pre-installing FlexDLL, we change the README to state the new minimum version.
from flexdll.
Related Issues (20)
- Cannot relocate on OCaml 4.13.1 [Windows] HOT 1
- Implementing a less memory intensive read function HOT 9
- Temporary files not deleted on exit HOT 3
- Generate import library for exported function of the main executable file HOT 5
- findlib sometimes cannot be built on Windows HOT 3
- Support for /alternatename: linker directive needed for x86 HOT 2
- Fix parallel access to global symbol structures
- flexlink: simplify static linking with libstdc++
- Upgrade from msvcrt.lib to ucrt.lib HOT 6
- ** Fatal error: Cannot parse directive: -exclude-symbols:__alloca
- Compile ERROR with MSVC VS2019 HOT 3
- Fail to find a function in the executable (pg_query) HOT 5
- Conditionally link with gcc_eh
- MSYS2/ucrt64 support HOT 2
- [Question] How does Flexdll handling name mangling HOT 2
- Would a pull request allowing "__nm_" prefixes be accepted? HOT 4
- flexlink should cygpath %TEMP% before passing to bash HOT 1
- Issue with link order of archive files specified twice on the command line HOT 11
- "Cannot relocate" error with flexdll in OCaml for Windows 4.11 (and older versions) HOT 8
- `-print-search-dirs` may return `;`-delimited mixed paths on MSYS2 HOT 9
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 flexdll.