Hello Anthony - sorry for the delay! We are currently changing some responsibilities inside the OTP team and have not yet decided who is to follow up on this. We will get back to you as soon as the responsibilities are settled. Thank you for your contribution, and now also for your patience!!<div>
Regards Siri<br><br><div class="gmail_quote">2012/10/29 Anthony Ramine <span dir="ltr"><<a href="mailto:n.oxyde@gmail.com" target="_blank">n.oxyde@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ping?<br>
<span class="HOEnZb"><font color="#888888">--<br>
Anthony Ramine<br>
<br>
<br>
Le 24 oct. 2012 à 08:07, Anthony Ramine a écrit :<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> Hi,<br>
><br>
> It is mentioned in the OTP roadmap that column numbers won't be an option, should I rewrite my patch to take care of this or have you already done it? Is the line-only code path to be removed from erl_scan too?<br>
><br>
> I continued this patch to make erlc able to issue error diagnostics like how clang does (parse-ranges branch on my repos), would you be interested by this? This branch handles end locations in erl_scan and parse ranges in erl_parse and epp; the two things that remain are macro expansions tracking and obviously the use of these informations in the compiler output.<br>
><br>
> Regards,<br>
><br>
> --<br>
> Anthony Ramine<br>
><br>
> Le 19 sept. 2012 à 19:28, Anthony Ramine <<a href="mailto:n.oxyde@gmail.com">n.oxyde@gmail.com</a>> a écrit :<br>
><br>
>> Hi,<br>
>><br>
>> I've documented the 'file' attribute item in the branch's first commit and reordered some erl_scan commits;<br>
>> please refetch.<br>
>><br>
>> --<br>
>> Anthony Ramine<br>
>><br>
>> Le 19 sept. 2012 à 11:11, Henrik Nord a écrit :<br>
>><br>
>>> done<br>
>>> On 09/14/2012 03:41 PM, Anthony Ramine wrote:<br>
>>>> Hi,<br>
>>>><br>
>>>> I've rewritten the erl_lint_SUITE patch with less formatting changes so the diff is clearer; please refetch.<br>
>>>><br>
>>>> Regards,<br>
>>>><br>
>>>> --<br>
>>>> Anthony Ramine<br>
>>>><br>
>>>><br>
>>>> Le 13 sept. 2012 à 10:54, Henrik Nord a écrit :<br>
>>>><br>
>>>>> Refetched.<br>
>>>>><br>
>>>>> On 09/11/2012 12:13 PM, Anthony Ramine wrote:<br>
>>>>>> Fixed, please refetch. Sorry for the inconvenience; I tried to remove every duplicate definition of erl_scan:error_info() and forgot to update the docs.<br>
>>>>>><br>
>>>>>> --<br>
>>>>>> Anthony Ramine<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> Le 10 sept. 2012 à 16:02, Henrik Nord a écrit :<br>
>>>>>><br>
>>>>>>> build error<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> xsltproc --output "../man6/stdlib.6" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl stdlib_app.xml<br>
>>>>>>> /usr/bin/install -c -m 644 ushell1.gif ../html/ushell1.gif<br>
>>>>>>> /usr/bin/install -c -m 644 ushell2.gif ../html/ushell2.gif<br>
>>>>>>> /usr/bin/install -c -m 644 ushell3.gif ../html/ushell3.gif<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_array.xml; \<br>
>>>>>>> xsltproc --output "../man3/array.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl array.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_base64.xml; \<br>
>>>>>>> xsltproc --output "../man3/base64.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl base64.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_beam_lib.xml; \<br>
>>>>>>> xsltproc --output "../man3/beam_lib.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl beam_lib.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_binary.xml; \<br>
>>>>>>> xsltproc --output "../man3/binary.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl binary.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_c.xml; \<br>
>>>>>>> xsltproc --output "../man3/c.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl c.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_calendar.xml; \<br>
>>>>>>> xsltproc --output "../man3/calendar.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl calendar.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_dets.xml; \<br>
>>>>>>> xsltproc --output "../man3/dets.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl dets.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_dict.xml; \<br>
>>>>>>> xsltproc --output "../man3/dict.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl dict.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_digraph.xml; \<br>
>>>>>>> xsltproc --output "../man3/digraph.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl digraph.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_digraph_utils.xml; \<br>
>>>>>>> xsltproc --output "../man3/digraph_utils.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl digraph_utils.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_epp.xml; \<br>
>>>>>>> xsltproc --output "../man3/epp.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl epp.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_eval.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_eval.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_eval.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_expand_records.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_expand_records.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_expand_records.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_id_trans.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_id_trans.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_id_trans.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_internal.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_internal.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_internal.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_lint.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_lint.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_lint.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_parse.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_parse.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_parse.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_pp.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_pp.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_pp.xml<br>
>>>>>>> date=`date +"%B %e %Y"`; \<br>
>>>>>>> specs_file=`pwd`/../specs/specs_erl_scan.xml; \<br>
>>>>>>> xsltproc --output "../man3/erl_scan.3" --stringparam company "Ericsson AB" --stringparam docgen "/ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen" --stringparam gendate "$date" --stringparam appname "stdlib" --stringparam appver "1.18.3" --stringparam specs_file "$specs_file" --xinclude -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd -path /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/dtd_man_entities /ldisk/jenkins/jobs/compile-pu/workspace/lib/erl_docgen/priv/xsl/db_man.xsl erl_scan.xml<br>
>>>>>>><br>
>>>>>>> Error in erl_parse:error_description: unknown type<br>
>>>>>>> make[4]: *** [../man3/erl_parse.3] Error 10<br>
>>>>>>> make[4]: *** Waiting for unfinished jobs....<br>
>>>>>>> make[4]: Leaving directory `/ldisk/jenkins/jobs/compile-pu/workspace/lib/stdlib/doc/src'<br>
>>>>>>> make[3]: *** [release_docs] Error 2<br>
>>>>>>> make[3]: Leaving directory `/ldisk/jenkins/jobs/compile-pu/workspace/lib/stdlib/doc/src'<br>
>>>>>>> make[2]: *** [release_docs] Error 2<br>
>>>>>>> make[2]: Leaving directory `/ldisk/jenkins/jobs/compile-pu/workspace/lib/stdlib'<br>
>>>>>>> make[1]: *** [release_docs] Error 2<br>
>>>>>>> make[1]: Leaving directory `/ldisk/jenkins/jobs/compile-pu/workspace/lib'<br>
>>>>>>> make: *** [release_docs] Error 2<br>
>>>>>>><br>
>>>>>>> On 09/09/2012 12:52 PM, Anthony Ramine wrote:<br>
>>>>>>>> Hi,<br>
>>>>>>>><br>
>>>>>>>> I've rebased it against the latest maint branch. Please refetch.<br>
>>>>>>>><br>
>>>>>>>> On Wed, Sep 5, 2012 at 10:50 AM, Henrik Nord <<a href="mailto:henrik@erlang.org">henrik@erlang.org</a>> wrote:<br>
>>>>>>>>> I would like you to rebase this on R15B02 after the release.<br>
>>>>>>>>> /Henrik<br>
>>>>>>>>><br>
>>>>>>>>> On 09/02/2012 08:26 PM, Anthony Ramine wrote:<br>
>>>>>>>>>> Hi,<br>
>>>>>>>>>><br>
>>>>>>>>>> Again, see responses inlined; please refetch.<br>
>>>>>>>>>><br>
>>>>>>>>>> Regards.<br>
>>>>>>>>>><br>
>>>>>>>>>> --<br>
>>>>>>>>>> Anthony Ramine<br>
>>>>>>>>>><br>
>>>>>>>>>> Le 28 août 2012 à 15:28, Lukas Larsson a écrit :<br>
>>>>>>>>>><br>
>>>>>>>>>>> Hello,<br>
>>>>>>>>>>><br>
>>>>>>>>>>> See responses inlined.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> Lukas<br>
>>>>>>>>>>><br>
>>>>>>>>>>> On 24/08/12 12:22, Anthony Ramine wrote:<br>
>>>>>>>>>>>> Most OTP (at least erl_lint, erl_parse and syntax_tools) already knows<br>
>>>>>>>>>>>> that locations can be a line or a line and a column; furthermore it is said<br>
>>>>>>>>>>>> in erl_parse itself that one should always use get_line/1 and set_line/3<br>
>>>>>>>>>>>> instead of depending on having an integer there.<br>
>>>>>>>>>>> It does indeed say so inside the code of erl_parse. But all of the<br>
>>>>>>>>>>> visible documentation (here[1] and here[2]) say that it is an integer. So if<br>
>>>>>>>>>>> you have only read the documentation (which I assume most people only have)<br>
>>>>>>>>>>> you would assume that it is an integer. That documentation has to be updated<br>
>>>>>>>>>>> so that LINE can be either an integer() or a tuple(integer(),integer()), and<br>
>>>>>>>>>>> a reference to use erl_parse:set/get_attribute to manipulate it safely.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> The compiler should also be updated to use these API's, this includes<br>
>>>>>>>>>>> the convention that a line number of -1 is used to say that something is<br>
>>>>>>>>>>> compiler generated. To make sure that all uses of the non-api is eliminated,<br>
>>>>>>>>>>> it might be a good idea to declare erl_scan:line as -opaque and let dialyzer<br>
>>>>>>>>>>> search through the otp code for errors.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> [1]: <a href="http://www.erlang.org/doc/apps/erts/absform.html" target="_blank">http://www.erlang.org/doc/apps/erts/absform.html</a><br>
>>>>>>>>>>> [2]: <a href="http://www.erlang.org/doc/man/erl_scan.html#type-line" target="_blank">http://www.erlang.org/doc/man/erl_scan.html#type-line</a><br>
>>>>>>>>>> I replaced LINE by LOC in the first documentation you point to and I've<br>
>>>>>>>>>> patched various type specs in erl_scan and erl_parse so they both use<br>
>>>>>>>>>> location().<br>
>>>>>>>>>><br>
>>>>>>>>>> With regard to negative line numbers, it should be noted that<br>
>>>>>>>>>> user-supplied -file attributes have their line numbers negated whereas as<br>
>>>>>>>>>> you said in other modules like erl_lint and v3_core, compile-generated nodes<br>
>>>>>>>>>> are the ones which lines are negated. Shouldn't the opposite be done in<br>
>>>>>>>>>> epp's -file attributes handling?<br>
>>>>>>>>>><br>
>>>>>>>>>>>> If it is really that heavy of a change, why do we have<br>
>>>>>>>>>>>> erl_scan:set_attribute/3 and erl_scan:attributes_info/{1,2}? They obviously<br>
>>>>>>>>>>>> were coded to mitigate these issues.<br>
>>>>>>>>>>> We have indeed been working on getting this to work before, but the<br>
>>>>>>>>>>> effort was left as you see it now because there were a number of issues<br>
>>>>>>>>>>> which needed solving and more important things got in the way. The reason<br>
>>>>>>>>>>> why I say it is a heavy change is that we want to feel that a good effort<br>
>>>>>>>>>>> has been made to make sure that all error and warning column numbers point<br>
>>>>>>>>>>> to the correct position.<br>
>>>>>>>>>> I've already added a 'file' item to these functions to improve the code<br>
>>>>>>>>>> populating every node with the file from the -file attributes of the module<br>
>>>>>>>>>> declaration in erl_lint; maybe another 'generated' item should be added to<br>
>>>>>>>>>> replace the multiple neg_line and abs_line functions there are in some<br>
>>>>>>>>>> compile-related modules?<br>
>>>>>>>>>><br>
>>>>>>>>>>>> Any parse transform that break because of this change will break<br>
>>>>>>>>>>>> because it does AST manipulation wrong and their users will just have to not<br>
>>>>>>>>>>>> use the "column" option for it to continue to work.<br>
>>>>>>>>>>> Strictly speaking parse transform is also an experimental/undocumented<br>
>>>>>>>>>>> feature of Erlang/OTP. But unfortunately a lot of people seem to use them,<br>
>>>>>>>>>>> so we have to take some backwards compatibility into consideration. The<br>
>>>>>>>>>>> closest thing to a documentation is the example found here<br>
>>>>>>>>>>> lib/stdlib/example/erl_id_trans.erl, and that does not deal with line<br>
>>>>>>>>>>> numbers at all.<br>
>>>>>>>>>>><br>
>>>>>>>>>>> We really really have to be sure that the fun2ms and qlc parse<br>
>>>>>>>>>>> transforms work.<br>
>>>>>>>>>> I've read through the code of various parse transforms this week and they<br>
>>>>>>>>>> don't seem to make anything related to the transformed nodes' locations.<br>
>>>>>>>>>> Most OTP-provided parse transforms are covered in the test suites I patched.<br>
>>>>>>>>>><br>
>>>>>>>>>> _______________________________________________<br>
>>>>>>>>>> erlang-patches mailing list<br>
>>>>>>>>>> <a href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a><br>
>>>>>>>>>> <a href="http://erlang.org/mailman/listinfo/erlang-patches" target="_blank">http://erlang.org/mailman/listinfo/erlang-patches</a><br>
>>>>>>>>> --<br>
>>>>>>>>> /Henrik Nord Erlang/OTP<br>
>>>>>>>>><br>
>>>>>>> --<br>
>>>>>>> /Henrik Nord Erlang/OTP<br>
>>>>>>><br>
>>>>> --<br>
>>>>> /Henrik Nord Erlang/OTP<br>
>>>>><br>
>>><br>
>>> --<br>
>>> /Henrik Nord Erlang/OTP<br>
>>><br>
>><br>
<br>
_______________________________________________<br>
erlang-patches mailing list<br>
<a href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-patches" target="_blank">http://erlang.org/mailman/listinfo/erlang-patches</a><br>
</div></div></blockquote></div><br></div>