<div dir="ltr">Looks good except that the comment needs to<div style>be updated too:</div><div style><br></div><div style><div>diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl</div><div>index 7023340..3628905 100644</div>
<div>--- a/lib/kernel/src/file.erl</div><div>+++ b/lib/kernel/src/file.erl</div><div>@@ -1488,7 +1488,7 @@ check_args([]) -></div><div>     ok.</div><div> </div><div> %%-----------------------------------------------------------------</div>
<div>-%% Functions for communicating with a file io server.</div><div>+%% Function for communicating with a file io server.</div><div> %% The messages sent have the following formats:</div><div> %%</div><div> %%     {file_request,From,ReplyAs,Request}</div>
<div><br></div><div style>Do you want us to amend the commit for you?</div><div style><br></div><div style>We will start testing your patch in the daily builds.</div><div style><br></div><div style>The compiler patches will not be ignored.</div>
<div style><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 11, 2013 at 1:16 PM, Anthony Ramine <span dir="ltr"><<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Fine with me but I hope that doesn't mean the two other patches will be ignored :p<br>
<br>
I've amended the commit, please refetch.<br>
<br>
Regards,<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Anthony Ramine<br>
<br>
Le 11 avr. 2013 à 12:36, Björn Gustavsson a écrit :<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Good work on making the optimization compatible.<br>
><br>
> To make this patch independent of the compiler<br>
> patches, may I suggest that you remove wait_file_reply/1<br>
> and rewrite file_request/2 like this:<br>
><br>
> file_request(Io, Request) -><br>
>     Ref = erlang:monitor(process, Io),<br>
>     Io ! {file_request,self(),Ref,Request},<br>
>     receive<br>
>       {file_reply,Ref,Reply} -><br>
>           erlang:demonitor(Ref, [flush]),<br>
>           Reply;<br>
>       {'DOWN', Ref, _, _, _} -><br>
>           {error, terminated}<br>
>     end.<br>
><br>
><br>
><br>
> On Wed, Apr 10, 2013 at 12:29 AM, Anthony Ramine <<a href="mailto:n.oxyde@gmail.com">n.oxyde@gmail.com</a>> wrote:<br>
> Hello Björn,<br>
><br>
> I found a way to make it backwards compatible with the old protocol right now.<br>
><br>
> The file module communicates with a file io server with the following protocol for file operations:<br>
><br>
> > {file_request,From,ReplyAs,Request}<br>
> < {file_reply,ReplyAs,Reply}<br>
><br>
> The ReplyAs value is sent by the client side to match against when receiving the reply and is otherwise left untouched and passed as is by the server.<br>
><br>
> The amended commit changes the protocol to:<br>
><br>
> > {file_request,From,MonitorRef,Request}<br>
> < {file_reply,MonitorRef,Reply}<br>
><br>
> As the shape of the messages is not changed, backwards compatibility is not a concern.<br>
><br>
> Unfortunately, the following patch fails to compile because of a bug in the optimization pass. I've submitted two other patches; the first fixes beam_receive by teaching it how to track a set of registers instead of a single one, making it able to cope with the Core Erlang code generated by the inliner, the second improves sys_core_fold and makes it simplifies what is outputted by said inliner.<br>

><br>
> Please refetch.<br>
><br>
> Regards,<br>
><br>
> --<br>
> Anthony Ramine<br>
><br>
> Le 9 avr. 2013 à 12:12, Björn Gustavsson a écrit :<br>
><br>
> > The patch looks fine and it would be a good thing to do.<br>
> ><br>
> > Unfortunately, there is the pesky question of backward<br>
> > compatibility.<br>
> ><br>
> > Someone can open a file on an R15 system, send the<br>
> > file descriptor (=a pid) to an R16B01 system with your<br>
> > patch and the R16B01 system will attempt to do file<br>
> > operations on the file.<br>
> ><br>
> > The backward compatible way to do this is to first introduce<br>
> > a file_io_server module that can handle both the new<br>
> > and the old messages. Two releases later the file module<br>
> > can be changed to use the new message format.<br>
> ><br>
> > Strictly speaking, two releases forward means R19<br>
> > to allow the original R16B release to communicate<br>
> > with an R18 release.<br>
> ><br>
> > /Bjorn<br>
><br>
><br>
><br>
><br>
> --<br>
> Björn Gustavsson, Erlang/OTP, Ericsson AB<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Björn Gustavsson, Erlang/OTP, Ericsson AB
</div>