Erlang/OTP Forums

Author Message

<  Erlang bugs mailing list  ~  About Dialyzer and its dependencies

prof3ta
Posted: Fri Apr 09, 2010 1:46 pm Reply with quote
User Joined: 06 Feb 2009 Posts: 34
Hi all,

I'm trying to include dialyzer in my application and I've noticed that
one of its dependencies (wx) was missing an .app file. I've also noticed
this has been fixed in the 'dev' branch of OTP.

Still, another dependency (hipe) has something strange in its .app file:

{modules, [cerl_cconv,
cerl_closurean,
cerl_hipeify,
cerl_hybrid_transform,
cerl_lib,
cerl_messagean,
cerl_pmatch,
cerl_prettypr,
cerl_to_icode,
cerl_typean,
erl_bif_types,
erl_types,
hipe,
hipe_adj_list,
hipe_amd64_assemble,
hipe_amd64_defuse,
hipe_amd64_encode,
hipe_amd64_frame,
hipe_amd64_liveness,
hipe_amd64_main,
hipe_amd64_pp,
hipe_amd64_ra,
hipe_amd64_ra_finalise,
hipe_amd64_ra_ls,
hipe_amd64_ra_naive,
hipe_amd64_ra_postconditions,
hipe_amd64_ra_sse2_postconditions,
hipe_amd64_ra_x87_ls,
hipe_amd64_registers,
hipe_amd64_specific,
hipe_amd64_specific_sse2,
hipe_amd64_specific_x87,
hipe_amd64_spill_restore,
hipe_amd64_x87,
hipe_arm,
hipe_arm_assemble,
hipe_arm_cfg,
hipe_arm_defuse,
hipe_arm_encode,
hipe_arm_finalise,
hipe_arm_frame,
hipe_arm_liveness_gpr,
hipe_arm_main,
hipe_arm_pp,
hipe_arm_ra,
hipe_arm_ra_finalise,
hipe_arm_ra_ls,
hipe_arm_ra_naive,
hipe_arm_ra_postconditions,
hipe_arm_registers,
hipe_arm_specific,
hipe_bb,
hipe_beam_to_icode,
hipe_ceach,
hipe_coalescing_regalloc,
hipe_consttab,
hipe_data_pp,
hipe_digraph,
hipe_dominators,
hipe_dot,
hipe_gen_cfg,
hipe_gensym,
hipe_graph_coloring_regalloc,
hipe_icode,
hipe_icode2rtl,
hipe_icode_bincomp,
hipe_icode_callgraph,
hipe_icode_cfg,
hipe_icode_coordinator,
hipe_icode_ebb,
hipe_icode_exceptions,
hipe_icode_fp,
hipe_icode_heap_test,
hipe_icode_inline_bifs,
hipe_icode_instruction_counter,
hipe_icode_liveness,
hipe_icode_mulret,
hipe_icode_pp,
hipe_icode_primops,
hipe_icode_range,
hipe_icode_ssa,
hipe_icode_ssa_const_prop,
hipe_icode_ssa_copy_prop,
hipe_icode_ssa_struct_reuse,
hipe_icode_split_arith,
hipe_icode_type,
hipe_ig,
hipe_ig_moves,
hipe_jit,
hipe_ls_regalloc,
hipe_main,
hipe_moves,
hipe_node_sets,
hipe_optimistic_regalloc,
hipe_pack_constants,
hipe_ppc,
hipe_ppc_assemble,
hipe_ppc_cfg,
hipe_ppc_defuse,
hipe_ppc_encode,
hipe_ppc_finalise,
hipe_ppc_frame,
hipe_ppc_liveness_all,
hipe_ppc_liveness_fpr,
hipe_ppc_liveness_gpr,
hipe_ppc_main,
hipe_ppc_pp,
hipe_ppc_ra,
hipe_ppc_ra_finalise,
hipe_ppc_ra_ls,
hipe_ppc_ra_naive,
hipe_ppc_ra_postconditions,
hipe_ppc_ra_postconditions_fp,
hipe_ppc_registers,
hipe_ppc_specific,
hipe_ppc_specific_fp,
hipe_profile,
hipe_reg_worklists,
hipe_regalloc_loop,
hipe_rtl,
hipe_rtl_arch,
hipe_rtl_arith_32,
hipe_rtl_arith_64,
hipe_rtl_binary,
hipe_rtl_binary_match,
hipe_rtl_binary_construct,
hipe_rtl_cfg,
hipe_rtl_cleanup_const,
hipe_rtl_exceptions,
hipe_rtl_lcm,
hipe_rtl_liveness,
hipe_rtl_mk_switch,
hipe_rtl_primops,
hipe_rtl_ssa,
hipe_rtl_ssa_const_prop,
hipe_rtl_ssa_avail_expr,
hipe_rtl_ssapre,
hipe_rtl_symbolic,
hipe_rtl_to_amd64,
hipe_rtl_to_arm,
hipe_rtl_to_ppc,
hipe_rtl_to_sparc,
hipe_rtl_to_x86,
hipe_rtl_varmap,
hipe_sdi,
hipe_sparc,
hipe_sparc_assemble,
hipe_sparc_cfg,
hipe_sparc_defuse,
hipe_sparc_encode,
hipe_sparc_finalise,
hipe_sparc_frame,
hipe_sparc_liveness_all,
hipe_sparc_liveness_fpr,
hipe_sparc_liveness_gpr,
hipe_sparc_main,
hipe_sparc_pp,
hipe_sparc_ra,
hipe_sparc_ra_finalise,
hipe_sparc_ra_ls,
hipe_sparc_ra_naive,
hipe_sparc_ra_postconditions,
hipe_sparc_ra_postconditions_fp,
hipe_sparc_registers,
hipe_sparc_specific,
hipe_sparc_specific_fp,
hipe_spillcost,
hipe_spillmin,
hipe_spillmin_color,
hipe_spillmin_scan,
hipe_tagscheme,
hipe_temp_map,
hipe_timing,
hipe_tool,
hipe_vectors,
hipe_x86,
hipe_x86_assemble,
hipe_x86_cfg,
hipe_x86_defuse,
hipe_x86_encode,
hipe_x86_frame,
hipe_x86_liveness,
hipe_x86_main,
hipe_x86_postpass,
hipe_x86_pp,
hipe_x86_ra,
hipe_x86_ra_finalise,
hipe_x86_ra_ls,
hipe_x86_ra_naive,
hipe_x86_ra_postconditions,
hipe_x86_ra_x87_ls,
hipe_x86_registers,
hipe_x86_specific,
hipe_x86_specific_x87,
hipe_x86_spill_restore,
hipe_x86_x87]},

Lots of these modules seems to be architecture-dependent and I'm
obviously missing most of them. Why they are listed in the .app file?
This is what I get when trying to build everything:

Creating boot script
{{module_not_found,hipe,hipe},
{hipe,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_adj_list},
{hipe_adj_list,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_assemble},
{hipe_amd64_assemble,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_defuse},
{hipe_amd64_defuse,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_encode},
{hipe_amd64_encode,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_frame},
{hipe_amd64_frame,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_liveness},
{hipe_amd64_liveness,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_main},
{hipe_amd64_main,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_pp},
{hipe_amd64_pp,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_ra},
{hipe_amd64_ra,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_ra_finalise},
{hipe_amd64_ra_finalise,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
{{module_not_found,hipe,hipe_amd64_ra_ls},
[...]

Roberto Aloi

--
University of Kent - Erlang Solutions Ltd.
Twitter: @prof3ta
Blog: http://aloiroberto.wordpress.com
---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com


________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:erlang-bugs-unsubscribe@erlang.org

---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com

Post received from mailinglist
View user's profile Send private message
Guest
Posted: Fri Apr 09, 2010 2:45 pm Reply with quote
Guest
Roberto Aloi wrote:
> Hi all,
>
> I'm trying to include dialyzer in my application and I've noticed that
> one of its dependencies (wx) was missing an .app file. I've also noticed
> this has been fixed in the 'dev' branch of OTP.
>
> Still, another dependency (hipe) has something strange in its .app file:
>
> {modules, [cerl_cconv, ....
>
> Lots of these modules seems to be architecture-dependent and I'm
> obviously missing most of them. Why they are listed in the .app file?

There is nothing architecture dependent here (but all these files are of
course dependent on whether you have configured OTP with --enable-hipe
or not).

Anyway, these are the files of the 'hipe' application. Where exactly do
you want us to specify them if not in the .app file of the corresponding
application? In any case, if you think that something is wrong or does
not match your needs, submit a git patch and we will consider it.

Best,
Kostis

________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:erlang-bugs-unsubscribe@erlang.org

Post received from mailinglist
Guest
Posted: Fri Apr 09, 2010 2:45 pm Reply with quote
Guest
Roberto Aloi writes:
> Hi all,
>
> I'm trying to include dialyzer in my application and I've noticed that
> one of its dependencies (wx) was missing an .app file. I've also noticed
> this has been fixed in the 'dev' branch of OTP.
>
> Still, another dependency (hipe) has something strange in its .app file:
...
> hipe_amd64_assemble,
> hipe_amd64_defuse,
> hipe_amd64_encode,
...
> Lots of these modules seems to be architecture-dependent and I'm
> obviously missing most of them. Why they are listed in the .app file?

Because they are part of HiPE and get built when HiPE proper is built.
And while there are many arch-dependent modules, all of them get built.
(HiPE can cross-compile, but issues with the runtime system prevent
it from actually working.)

> This is what I get when trying to build everything:
>
> Creating boot script
> {{module_not_found,hipe,hipe},
> {hipe,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_adj_list},
> {hipe_adj_list,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_assemble},
> {hipe_amd64_assemble,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_defuse},
> {hipe_amd64_defuse,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_encode},
> {hipe_amd64_encode,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_frame},
> {hipe_amd64_frame,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_liveness},
> {hipe_amd64_liveness,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_main},
> {hipe_amd64_main,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_pp},
> {hipe_amd64_pp,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_ra},
> {hipe_amd64_ra,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_ra_finalise},
> {hipe_amd64_ra_finalise,'$$ignore$$',hipe,"3.7.5","lib/hipe-3.7.5/ebin"}}
> {{module_not_found,hipe,hipe_amd64_ra_ls},
> [...]

The issue that confuses you is that dialyzer depends on a subset of HiPE.
That subset is built regardless of whether HiPE is enabled or not, but
everything listed in HiPE's app file is not necessarily present.

If this is a problem, post a patch to instantiate a different (smaller)
hipe.app.src for the case when HiPE is disabled.

/Mikael

________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:erlang-bugs-unsubscribe@erlang.org

Post received from mailinglist
prof3ta
Posted: Fri Apr 09, 2010 5:48 pm Reply with quote
User Joined: 06 Feb 2009 Posts: 34
Hi all,

first of all thanks to Kostis and Mikael for their considerations.

You're both perfectly right. I didn't realize the story behind the
--enable-hipe flag at a first glance. I had hipe disabled, so the system
couldn't find the "optional" modules. I'm trying to fix this, generating
the proper hipe.app file based on the fact hipe is enabled or not.

I'm almost done, but considering it's almost weekend, I'll probably push
the changes on monday.

Have a great weekend,

Roberto Aloi

--
University of Kent - Erlang Solutions Ltd.
Twitter: @prof3ta
Blog: http://aloiroberto.wordpress.com
---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com


________________________________________________________________
erlang-bugs (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:erlang-bugs-unsubscribe@erlang.org

---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com

Post received from mailinglist
View user's profile Send private message

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum