<div class="gmail_quote">2009/1/26 Lars-Åke Fredlund <span dir="ltr"><<a href="mailto:lfredlund@fi.upm.es">lfredlund@fi.upm.es</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Version:   otp R12B-5 (not patched)<br>
Problem:<br>
   Applying core_lint:module/1 to a core erlang module generated by compile:file(FileSpec,[to_core,binary] (without problems)<br>
results in the error message:<br>
   *** Core Erlang ERROR in module schedule: illegal guard expression in reschedule/1<br>
<br>
Source code and core erlang code for function attached.<br>
(apparently the checks for correct guards are too strict for try... guards).<br>
<br>
/Lars-Ake Fredlund<br></blockquote></div><br>Without having looked at the actual code I can say that some of the core support modules, core_lint and core_parse for example, don't always follow the latest core development. This is because they are not actually used by the compiler, it *knows* it's generated code is correct.<br>
<br>Another problem I had with LFE is that some of the core optimisation passes assumed that the core module was generated in the same way as the from the erlang compiler, in some cases they couldn't handle general core. This has now been fixed.<br>
<br>Basically, both of these are due to core erlang not really being a language in its own right but a pass in the compiler. Whether it should be like that is another question.<br><br>Robert<br><br>