On 27 Aug 2014, at 17:53, Camille Teruel <camille.ter...@gmail.com> wrote:
> Hi all, > > With Opal, if you want to customize how methods are compiled into a class you > can override #compilerClass on class-side: > MyClass class>>#compilerClass > ^ MySpecialCompiler > I’ve missed this feature. This is super cool! > However this custom compiler is not taken into account when compiling methods > on the class-side: > MyClass class compilerClass ---> OpalCompiler > I was expecting to have the same compiler class for the metaclass. The > consequence is that right now there is no way to specialize how methods are > compiled in *one* metaclass. > Is it on purpose or is it a bug? > > Also is there cases where one wants instance-side methods and class-side > methods to be compiled with different compiler classes? > My rough guess is that in most cases you want the same compiler class, but I > don't fell confortable forcing that. > So I propose to add a method #classSideCompilerClass: > Class>>#classSideCompilerClass > ^ self compilerClass > > Then compilerClass can be implemented for metaclasses: > Metaclass>>#compilerClass > ^ self instanceSide classSideCompilerClass > > Likewise, if I override compilerClass, it is taken into account for both > instance-side and class-side methods but I can still say that I want a > different compiler for class-side methods by overriding > classSideCompilerClass. Tell me what you think about it and if you're ok, I > open a bug entry with the slice. > > Cheers, > Camille >