> On 25 May 2018, at 17:30, Clément Bera <bera.clem...@gmail.com> wrote:
> 
> What about a preprocessor like the Java preprocessors ? The Truffle project 
> relies heavily on that for high performance Java and it's quite nice. It's 
> difficult to do that in Smalltalk right now.
> 
> I think if you want to do what are asking for you just need to write a 
> bytecode compiler extension.
> 
> I did something similar in the past to have precomputed constants through AST 
> manipulation at compilation time. You can find it here with examples: 
> http://smalltalkhub.com/#!/~ClementBera/NeoCompiler 
> <http://smalltalkhub.com/#!/~ClementBera/NeoCompiler>. Once the code is 
> loaded you need to recompile the examples (NeoCompilerExample 
> withAllSubclassesDo: #compileAll.). With it you can write code such as:
> [ Smalltalk vm class ] Cvalue    
> And depending if the compiler allowsPrecompilation or not, the bytecode 
> compiler generates:
> Smalltalk vm class 
> Or just a push literal with the precomputed value (the class VirtualMachine).

this is not what #asMethodConstant provides?

Esteban

> In the end I decided not to use this, but you can use it and extend it to 
> support more than just constants (any AST manipulation is possible).
> Just checked it works in Pharo 6.
> 
> On Fri, May 25, 2018 at 4:26 PM, Stephan Eggermont <step...@stack.nl 
> <mailto:step...@stack.nl>> wrote:
> Debiller 777 <ozovozovozo...@gmail.com <mailto:ozovozovozo...@gmail.com>>
> wrote:
> > Well, I've already asked about adding new literals to pharo or
> Smalltalk in
> > general, however this time I have a better idea:
> > macros. Can they be added? Because if I understand correctly they may be
> > the only way to do that.
> 
> Why do you think they would be a good idea? We have powerful
> meta-programming facilities that are well understood and somewhat supported
> by tooling. How do we get value out of macros?
> 
> Stephan
> 
> 
> 
> 
> 
> 
> -- 
> Clément Béra
> https://clementbera.github.io/ <https://clementbera.github.io/>
> https://clementbera.wordpress.com/ <https://clementbera.wordpress.com/>

Reply via email to