Hi all, I'm trying to make a python clone in guile. Currently the code is slow and one of the reasons is the following,
in my pythoon return 1,2 returns a (values 1 2) in order to get python and scheme to interoperate. but for python if you use x = 1,2 then x is the tupple '(1 2) and in guile it is 1. So therefore we wrap the result for x=f(10) as (set! x (call-with-values (lambda () (f x)) (case-lambda ((x) x) (x x)))) This can be compiled to efficient bytecode but is not done so in guile. In stead a closure is created at each assignment site and creating ineficient code. Any ideas how to improve this (I don't want "return a,b" to mean (list a b) which is a quick solution if we want to just stay in python and not interoperate with scheme at all on this level. Regards Stefan