> A few sugestions:
> 
> 1 -- The manual says:
> 32.4.2 Stack allocation
> *When the -fstack flag is enabled, the compiler may automatically replace
> some heap allocations with stack allocations.*
> 
> It seems that this option does not exist anymore.
True. It has gone. The documentation is out dated. I will fix that right
away. Thanks for reporting that.

> 2 -- Common Lisp and Chez Scheme have an incremental compiler, then
> interpreted code is as fast as compiled code. In Bigloo and Gambit, the
> interpreter is slow, but one can load dynamic libraries into the
> interpreter, which solves the problem. However, it would be fine if there
> were a function called compile-file, that could compile and load a dynamic
> library. Here is a proof of concept:
> 
> *;; compile-file ;proof of concept(define cmd  "bigloo -dload-sym
> -export-all -y ~a.scm")(define bench  "bigloo -dload-sym -export-all
> -Obench -y ~a.scm")(define (compile-file fname #!optional (opt cmd))  (let*
> [ (dynafile (format "./~a.so" fname))]       (system (format opt fname))
> (dynamic-load dynafile)))(define (tm fn)  (multiple-value-bind (res t1 t2
> t3) (time fn)    (list res  (/ t1 1000.0)                (/ t2 1000.0)
>          (/ t3 1000.0)) ))(define (del fname)  (system    (format "rm
> ./~a.so ./~a.o" fname fname)))*
> 
> Here is how to use it:
> 
> 1:=> (load "cfile.scm")
> 1:=> cmd
> bench
> compile-file
> tm
> del
> cfile.scm
> 1:=> (compile-file "fib" bench)
> 1:=> 8
> #<output_port:stdout>
> 1:=> (tm (delay (fib 40)))
> 1:=> (165580141 0.34 0.0 0.34)
> 
> 3 -- The problem with the program above is that one cannot redefine
> functions:
> 
> *1:=> (compile-file "fib")1:=> #unspecified1:=> (tm (delay (fib 40)))1:=>
> (165580141 0.34 0.0 0.34)*
> 1:=> (define fib 42)
> 1:=>
> File "stdin", line 6, character 111:
> #(define fib 42)
> #^
> *** ERROR:set!
> read-only variable -- fib
> 
> Therefore, it is not possible to develop programs interactively. In gambit,
> I can redefine compiled functions. Even when people are using the
> interpreter to test concepts, they often need fast execution, so it is
> necessary to have a tool such as compile-file.
Have you tried "-export-mutable" instead of "-export-all". That should
make it, I guess.

Note that for Hop, I have developed something rather sophisticated with
automatic background compilation. This still need some improvement but
for sure, Bigloo would benefit from that kind of approach.

-- 
Manuel

ps: If I remember correctly, you are or you were using a Mac? I have been
working recently on creating homebrew packages for Bigloo, Hop, and HipHop.
I'm confident that I will be able to complete these packages by today or
tomorrow (I still have a problem configuring correctly SSL on MacOS 10.15).
As soon as I'm done, I will post a message on the list for people that are
interesting in test them.

Reply via email to