[erlang-bugs] Lengthy subfunctions in Core Erlang code crash the compiler if inlining is turned on
Rene Kijewski
rene.kijewski@REDACTED
Mon Oct 10 22:49:26 CEST 2011
Hello,
(I first asked this question in Stackoverflow but was hinted that this ML
is a better place for such questions.)
I wanted to test the inlining capabilities of the compiler and wrote a
method containing three lengthy subfunctions. (See attachment.)
Compiling it without a 'inline' flag works as expected but supplying it
renders a crash:
> $ erlc +verbose +from_core +inline lengthySubfun.core
> Inlining: inline_size=24 inline_effort=150
> Function: test/6
> ./lengthySubfun.core:none: internal error in core_dsetel_module;
> crash reason: {{badmatch,error},
> [{sys_core_dsetel,visit,2},
> {lists,mapfoldl,3},
> {sys_core_dsetel,visit,2},
> {sys_core_dsetel,visit,2},
> {sys_core_dsetel,visit,2},
> {sys_core_dsetel,visit,2},
> {sys_core_dsetel,'-visit_def_list/2-anonymous-0-',2},
> {lists,mapfoldl,3}]}
unless I specify an insanely high value in range of 10 000 for both
inline_effort and inline_size.
The method can be called like that:
> lengthySubfun:test(fun () -> 1 end, fun () -> 2 end, fun (X) -> X end,
> fun (X) -> X end, fun () -> true end, fun (X) -> X end).
My Erlang/OTP version is:
> Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2]
> [async-threads:0] [hipe] [kernel-poll:false]
Compiled from:
> 68c96ca855821adb42a25ced5b69446ae7ccc635
Best regards
René
--
() ascii ribbon campaign - against HTML e-mail
/\ www.asciiribbon.org - against proprietary attachments
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lengthySubfun.core
Type: application/x-core
Size: 33895 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20111010/7d39fb7e/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20111010/7d39fb7e/attachment-0001.bin>
More information about the erlang-bugs
mailing list