From: "Christiano F. Haesbaert" <haesbaert@haesbaert.org>
To: Gabriel Scherer <gabriel.scherer@gmail.com>
Cc: caml users <caml-list@inria.fr>
Subject: Re: [Caml-list] Can't build a target with C stubs using ocamlbuild
Date: Sun, 7 Jun 2015 22:23:46 +0200 [thread overview]
Message-ID: <CAPvuBUug2r1Ff3-9+=cCyt=fLkdEazLgUGamr-jDRLZYKkb73Q@mail.gmail.com> (raw)
In-Reply-To: <CAPFanBFCBfhEE4n19i5BH0UJj0Wz7oyXJrLWNMC5ZJ58Mx6HtQ@mail.gmail.com>
I've just test 4.02.0+trunk and can confirm it fixes the issue.
Thanks again for fixing it :D.
On 5 June 2015 at 20:36, Gabriel Scherer <gabriel.scherer@gmail.com> wrote:
> (Replying in-list as other people may be interested)
>
> On Fri, Jun 5, 2015 at 7:09 PM, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>> What is the common workflow to test such diff ?
>>
>> Is there a way to pin the compiler in opam ?
>
> My personal workflow is to use my script
> https://github.com/gasche/opam-compiler-conf
> which creates an opam switch from a compiler directory, using the
> compiler version and git branch name to choose the switch name.
>
> Steps are:
> - install the opam-compiler-conf script in your $PATH *outside* opam
> (otherwise you will need to install it in all switches, pain)
> - clone the compiler somewhere (and go to the branch you want to test)
> - apply the patch you want to test
> - opam compiler-conf configure (instead of "./configure" as suggested by README)
> - make world.opt
> - opam compiler-conf install (instead of "make install" as suggested by README)
>
> This will create a switch with the compiler you installed named, for
> example, 4.02.2+local-git-4.02 (more generally
> $OCAMLVER+local-git-$BRANCHNAME). You can install opam packages and
> test them as in any switch.
>
> Then, if you modify the compiler again and make world.opt again, you can use
> - make install
> from the compiler directory to install the compiler without
> reinstalling the OPAM packages (if the binary interface didn't change
> and recompilation is not needed)
> or
> - opam compiler-conf reinstall
> to also recompile all the OPAM packages of the script
>
> (Another common way to get a switch: pull-request made against
> github/ocaml/ocaml automatically create a corresponding switch.)
>
> On Fri, Jun 5, 2015 at 7:09 PM, Christiano F. Haesbaert
> <haesbaert@haesbaert.org> wrote:
>> Thanks, off list,
>>
>> What is the common workflow to test such diff ?
>>
>> Is there a way to pin the compiler in opam ?
>>
>> On 5 June 2015 at 18:47, Gabriel Scherer <gabriel.scherer@gmail.com> wrote:
>>> I reported and proposed a fix at
>>> http://caml.inria.fr/mantis/view.php?id=6893
>>>
>>> On Fri, Jun 5, 2015 at 4:24 PM, Gabriel Scherer
>>> <gabriel.scherer@gmail.com> wrote:
>>>> This seems to be an ocamlbuild bug that should be reported on the bugtracker:
>>>> http://caml.inria.fr/mantis/
>>>>
>>>> On Fri, Jun 5, 2015 at 3:55 PM, Christiano F. Haesbaert
>>>> <haesbaert@haesbaert.org> wrote:
>>>>> Just one more question, now with the real code, I was able to move
>>>>> everything to myocamlbuild, but I'm getting a warning:
>>>>> File "_tags", line 10, characters 12-28:
>>>>> Warning: the tag "linkdep(stubs.o)" is not used in any flag
>>>>> declaration, so it will have no effect; it may be a typo. Otherwise
>>>>> use `mark_tag_used` in your myocamlbuild.ml to disable this warning.
>>>>>
>>>>> ## build.sh ##
>>>>> ocamlbuild -use-ocamlfind all.otarget $@
>>>>>
>>>>> ## _tags line ##
>>>>> <*.native>: linkdep(stubs.o)
>>>>>
>>>>> ## myocamlbuild.ml ##
>>>>> open Ocamlbuild_plugin;;
>>>>> dispatch begin function
>>>>> | After_rules ->
>>>>> pflag ["ocaml";"compile";] "ppopt" (fun s -> S [A"-ppopt"; A s]);
>>>>> pflag ["ocaml";"ocamldep";] "ppopt" (fun s -> S [A"-ppopt"; A s]);
>>>>> pdep ["link"] "linkdep" (fun param -> [param])
>>>>> | _ -> ()
>>>>> end;;
>>>>>
>>>>> It seems to be the same case as
>>>>> http://stackoverflow.com/questions/25585813/mark-tag-used-warning-with-ocaml-4-02-0
>>>>>
>>>>> Should I just use mark_tag_used ? It seems something else is wrong
>>>>> since the tag is actually used.
>>>>>
>>>>>
>>>>> On 5 June 2015 at 12:47, Christiano F. Haesbaert
>>>>> <haesbaert@haesbaert.org> wrote:
>>>>>> On 5 June 2015 at 12:38, Jeremy Yallop <yallop@gmail.com> wrote:
>>>>>>> On 5 June 2015 at 11:29, Christiano F. Haesbaert
>>>>>>> <haesbaert@haesbaert.org> wrote:
>>>>>>>> ### toto_c.c ###
>>>>>>>> ### toto_c.ml ###
>>>>>>>
>>>>>>> Both of these files will be compiled to object files called
>>>>>>> 'toto_c.o'. Renaming one of them (e.g. toto_c.c to toto_c_stubs.c)
>>>>>>> should fix the problem.
>>>>>>
>>>>>> Hooray, great, that did the trick, thanks a lot :D.
>>>>>
>>>>> --
>>>>> Caml-list mailing list. Subscription management and archives:
>>>>> https://sympa.inria.fr/sympa/arc/caml-list
>>>>> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
>>>>> Bug reports: http://caml.inria.fr/bin/caml-bugs
prev parent reply other threads:[~2015-06-07 20:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-05 10:29 Christiano F. Haesbaert
2015-06-05 10:38 ` Jeremy Yallop
2015-06-05 10:47 ` Christiano F. Haesbaert
2015-06-05 13:55 ` Christiano F. Haesbaert
2015-06-05 14:24 ` Gabriel Scherer
2015-06-05 16:47 ` Gabriel Scherer
[not found] ` <CAPvuBUuH0v9AUp16jy4mt-3wxBABhT2cteK2Dv81FPaABB7GeQ@mail.gmail.com>
2015-06-05 18:36 ` Gabriel Scherer
2015-06-07 20:23 ` Christiano F. Haesbaert [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPvuBUug2r1Ff3-9+=cCyt=fLkdEazLgUGamr-jDRLZYKkb73Q@mail.gmail.com' \
--to=haesbaert@haesbaert.org \
--cc=caml-list@inria.fr \
--cc=gabriel.scherer@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox