From yerl@REDACTED Fri Apr 23 09:57:50 2004 From: yerl@REDACTED (yerl@REDACTED) Date: Fri, 23 Apr 2004 09:57:50 CEST Subject: Redirecting functions calls ? Message-ID: Hi Sean, Incredible bug!! Is it fixed? The test/1 guard (i.e. when fred) is responsible of the error. Any onther idea to achieve what I want? Lot of thanks Youn?s ----Message d'origine---- >Copie ?: erlang-questions@REDACTED >De: Sean Hinde >Sujet: Re: Redirecting functions calls ? >Date: Thu, 22 Apr 2004 23:18:18 +0100 >A: yerl@REDACTED > >Hi, > > >On 23 Apr 2004, at 00:39, yerl@REDACTED wrote: > >> Hi All, >> Is there a method to redirect the call of a function and execute >> another one instead. >> For exemple, lets assume 2 functions "foo" and "bar": >> >> foo(X) -> >> blablabla, >> 26. >> >> bar(Y) -> >> blablabla, >> 38. >> >> When calling foo(10), I want to intercept this call and replace with >> bar(10). Of course, the result of foo(10) is replaced by the one of >> bar(10). >> >> Can anyboby help me! > >Actually this is almost possible - I discovered a compiler bug just >today: > >-module(compiler_bug). >-export([test/1, wow/1]). > >test(A) when fred -> > {ok, A}. > >wow(A) -> > wow. > >This compiles fine. Trying this out: > >175> compiler_bug:test(1). > >=ERROR REPORT==== 22-Apr-2004::23:11:45 === >Error in process <0.1000.0> on node 'eradius@REDACTED' with exit >value: >{function_clause,[{compiler_bug,wow,[1]},{erl_eval,do_apply,5},{shell,ev >al_loop,2}]} > >** exited: {function_clause,[{compiler_bug,wow,[1]}, > {erl_eval,do_apply,5}, > {shell,eval_loop,2}]} ** > >I haven't managed to make it correctly call wow(1), but the error >report suggests that my call to test/1 did indeed result in a call to >wow/1 > >:-) > >Sean > > From yerl@REDACTED Fri Apr 23 10:00:51 2004 From: yerl@REDACTED (yerl@REDACTED) Date: Fri, 23 Apr 2004 10:00:51 CEST Subject: Redirecting functions calls ? Message-ID: Hi Sean, Incredible bug!! Is it fixed? The test/1 guard (i.e. when fred) is responsible of the error. Any onther idea to achieve what I want? Lot of thanks Youn?s ----Message d'origine---- >Copie ?: erlang-questions@REDACTED >De: Sean Hinde >Sujet: Re: Redirecting functions calls ? >Date: Thu, 22 Apr 2004 23:18:18 +0100 >A: yerl@REDACTED > >Hi, > > >On 23 Apr 2004, at 00:39, yerl@REDACTED wrote: > >> Hi All, >> Is there a method to redirect the call of a function and execute >> another one instead. >> For exemple, lets assume 2 functions "foo" and "bar": >> >> foo(X) -> >> blablabla, >> 26. >> >> bar(Y) -> >> blablabla, >> 38. >> >> When calling foo(10), I want to intercept this call and replace with >> bar(10). Of course, the result of foo(10) is replaced by the one of >> bar(10). >> >> Can anyboby help me! > >Actually this is almost possible - I discovered a compiler bug just >today: > >-module(compiler_bug). >-export([test/1, wow/1]). > >test(A) when fred -> > {ok, A}. > >wow(A) -> > wow. > >This compiles fine. Trying this out: > >175> compiler_bug:test(1). > >=ERROR REPORT==== 22-Apr-2004::23:11:45 === >Error in process <0.1000.0> on node 'eradius@REDACTED' with exit >value: >{function_clause,[{compiler_bug,wow,[1]},{erl_eval,do_apply,5},{shell,ev >al_loop,2}]} > >** exited: {function_clause,[{compiler_bug,wow,[1]}, > {erl_eval,do_apply,5}, > {shell,eval_loop,2}]} ** > >I haven't managed to make it correctly call wow(1), but the error >report suggests that my call to test/1 did indeed result in a call to >wow/1 > >:-) > >Sean > >