From: Claudio Castellini
Subject: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <bfr64f$vj7$1@ftp-news.csita.unige.it>
hello all

I am new to ACL, so accept my apologies if what I'm going to say is trivial.

I have a Windows ACL6.2 project (.lpr), comprising about a dozen .cl files. 
I now need to port this project under ACL6.2 Linux. I have set up a 
Makefile which invokes 'alisp -L make-E.cl', where make-E.cl is the 
following piece of code:

---------------------------------------------------
(proclaim '(optimize (speed 3) (safety 0) (space 0) (debug 0)))

(generate-executable
  "epilitis"
  '("structs.cl"     "input.cl"          "common.cl"
    "preprocess.cl"  "ffcdb.cl"          "heuristics.cl"
    "experiments.cl" "arcconsistency.cl" "expdesign.cl"
    "nogoods2.cl"    "pgenerator.cl"     "dataanalysis.cl"
    "expdesign2.cl"  "execution.cl"      "optimization.cl"
    :loop
    :seq2
   )
)

(exit)
---------------------------------------------------

It compiles fine and generates the executable, but it is about 1000 times 
slower than the Windows version. It is not a problem of application 
building, since the same time gap is shown if I issue the related commands 
within the interpreter.

Any ideas? Is there any switch I am forgetting which is automatically set 
by the windows version but not under linux?

(both ACLs are trial versions)

thank you,
Claudio

From: Kevin Layer
Subject: Re: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <mkel0eihtk.fsf@*n*o*s*p*a*m*franz.com>
Claudio Castellini <·····@NO.dist.SPAM.unige.it> writes:

> hello all
> 
> I am new to ACL, so accept my apologies if what I'm going to say is trivial.
> 
> I have a Windows ACL6.2 project (.lpr), comprising about a dozen .cl files. 
> I now need to port this project under ACL6.2 Linux. I have set up a 
> Makefile which invokes 'alisp -L make-E.cl', where make-E.cl is the 
> following piece of code:
> 
> ---------------------------------------------------
> (proclaim '(optimize (speed 3) (safety 0) (space 0) (debug 0)))
> 
> (generate-executable
>   "epilitis"
>   '("structs.cl"     "input.cl"          "common.cl"
>     "preprocess.cl"  "ffcdb.cl"          "heuristics.cl"
>     "experiments.cl" "arcconsistency.cl" "expdesign.cl"
>     "nogoods2.cl"    "pgenerator.cl"     "dataanalysis.cl"
>     "expdesign2.cl"  "execution.cl"      "optimization.cl"
>     :loop
>     :seq2
>    )
> )

The above won't compile the files.  It will just loaded the source.

> 
> (exit)
> ---------------------------------------------------
> 
> It compiles fine and generates the executable, but it is about 1000 times 
> slower than the Windows version. It is not a problem of application 
> building, since the same time gap is shown if I issue the related commands 
> within the interpreter.
> 
> Any ideas? Is there any switch I am forgetting which is automatically set 
> by the windows version but not under linux?

Perhaps you should compile the files?  On Windows, the project system
does that for you.  See the function compile-file.

> 
> (both ACLs are trial versions)
> 
> thank you,
> Claudio
From: Steven M. Haflich
Subject: Re: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <3F21EF01.2050703@alum.mit.edu>
Kevin Layer wrote:

> Perhaps you should compile the files?  On Windows, the project system
> does that for you.  See the function compile-file.

Or use defsystem, compile-system, and load-system, which are a semi-portable
approach to defining programs that consist of multiple files.
From: Claudio Castellini
Subject: Re: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <bftot3$3v2$1@ftp-news.csita.unige.it>
Kevin Layer wrote:
>> Any ideas? Is there any switch I am forgetting which is automatically set
>> by the windows version but not under linux?
> 
> Perhaps you should compile the files?  On Windows, the project system
> does that for you.  See the function compile-file.

Hello Kevin,

you were absolutely right. I now compile the files *before* generating the 
executable, and I generate it with the *.fasl versions:

------------------------------------- make-E.cl
(proclaim '(optimize (speed 3) (safety 0) (space 0) (debug 0)))

(compile-file "structs.cl") (compile-file "input.cl")
(compile-file "common.cl") (compile-file "preprocess.cl")
(compile-file "experiments.cl") (compile-file "nogoods2.cl")
(compile-file "expdesign2.cl") (compile-file "ffcdb.cl")
(compile-file "heuristics.cl") (compile-file "arcconsistency.cl")
(compile-file "expdesign.cl") (compile-file "pgenerator.cl")
(compile-file "dataanalysis.cl") (compile-file "execution.cl")
(compile-file "optimization.cl")

(generate-executable
  "epilitis"
  '("structs.fasl"     "input.fasl"          "common.fasl"
    "preprocess.fasl"  "ffcdb.fasl"          "heuristics.fasl"
    "experiments.fasl" "arcconsistency.fasl" "expdesign.fasl"
    "nogoods2.fasl"    "pgenerator.fasl"     "dataanalysis.fasl"
    "expdesign2.fasl"  "execution.fasl"      "optimization.fasl"
    :loop
    :seq2
   )
)
-----------------------------------------------

Now timings seems fair. By the way: is that the fastest, although unsafest, 
setting I can get? (I mean the proclaim... stuff at the beginning)

Thank you very much for your help. I guess we will include your name in the 
paper we are about to write.

cheers,
c.
From: Kevin Layer
Subject: Re: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <mkd6f66bgj.fsf@*n*o*s*p*a*m*franz.com>
Claudio Castellini <·····@NO.dist.SPAM.unige.it> writes:

> Kevin Layer wrote:
> >> Any ideas? Is there any switch I am forgetting which is automatically set
> >> by the windows version but not under linux?
> > 
> > Perhaps you should compile the files?  On Windows, the project system
> > does that for you.  See the function compile-file.
> 
> Hello Kevin,
> 
> you were absolutely right. I now compile the files *before* generating the 
> executable, and I generate it with the *.fasl versions:
> 
> ------------------------------------- make-E.cl
> (proclaim '(optimize (speed 3) (safety 0) (space 0) (debug 0)))
> ...
> 
> Now timings seems fair. By the way: is that the fastest, although unsafest, 
> setting I can get? (I mean the proclaim... stuff at the beginning)

You still might need to use `declare' to tell the compiler the types
of things.  I also suggest using the profiler to find areas to
optimize.

See http://www.franz.com/support/documentation/6.2/doc/profiling.htm
for more information.
From: Scott L. Burson
Subject: Re: [newbie] ACL 6.2 Windows vs. Linux
Date: 
Message-ID: <vi489b3kiuns94@news.supernews.com>
Claudio Castellini wrote:

> Any ideas? Is there any switch I am forgetting which is automatically set
> by the windows version but not under linux?

I have no idea what's causing the problem, but the profiler ought to tell
you pretty quickly.  (If the trial version has the profiler...)

-- Scott

-- 
To send email, remove uppercase characters from address in header.