Re: [Ecls-list] Some latest changes

2010-06-28 Thread Gabriel Dos Reis
On Mon, Jun 28, 2010 at 2:46 PM, Juan Jose Garcia-Ripoll
 wrote:
> * MAKE-PATHNAME reimplemented to ensure that :CASE is only applied to the
> user arguments.
>
> * NAMESTRING will refuse to produce a string when :NAME is nil and :TYPE is
> not. The reason is ".txt" = (make-pathname :name ".txt" :type nil)
>
> * The implementation of "compiler optimization flags" had to be redone,
> because switching on and off flags did not work as expected.
>
> * Proclamations are also used to deduce the type of a function's arguments
> and create argument type checks.
>
> * Feature :C++ is exported when using a C++ compiler
>
> * A lot of fixes in ECL's declarations and proclamations, all of them
> trivial, but which caused the compiler to complain or generated safety
> checks that were not satisfied. For instance
> (defun pprint-tabular (... &optional ... tab-size)
>    (declare (unsigned-byte tab-size))
>    ...)
> caused PPRINT-TABULAR to fail.

This sounds fantastic!  Kudos.

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] Regular toplevel functions vs. labels

2010-06-28 Thread Gabriel Dos Reis
Hi Juanjo,

  Is the ECL compilation scheme of functions defined by
labels likely to yield better codes than those functions
defined at toplevel?

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Some latest changes

2010-06-28 Thread Gabriel Dos Reis
On Mon, Jun 28, 2010 at 2:46 PM, Juan Jose Garcia-Ripoll
 wrote:

> * Proclamations are also used to deduce the type of a function's arguments
> and create argument type checks.

Now that ECL is getting good at using function proclamations for
arguments types, is there away to report functions names in
diagnostics when a check fail?  (SBCL does that, and it is quite
helpful for debugging.)

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] Bug in argument checking based on function proclamation

2010-06-28 Thread Gabriel Dos Reis
On Mon, Jun 28, 2010 at 2:46 PM, Juan Jose Garcia-Ripoll
 wrote:
> * Proclamations are also used to deduce the type of a function's arguments
> and create argument type checks.
>

Hi Juanjo,

  The function arguments checking seems to have a bug.  The attached
testcase (distilled from OpenAxiom) produces the following warnings:

> (compile-file "pbug.lisp")

;;; Loading #P"/usr/local/lib/ecl-10.4.2/cmp.fas"
;;;
;;; Compiling pbug.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Compiling (DEFUN BEGIN-DOLLAR-P ...).
;;; Note:
;;;   in file pbug.lisp, position 55
;;;   at (DEFUN BEGIN-DOLLAR-P ...)
;;;   In function BEGIN-DOLLAR-P, checking types of arguments X.
;;; Note:
;;;   in file pbug.lisp, position 55
;;;   at (DEFUN BEGIN-DOLLAR-P ...)
;;;   Unknown type (T). Assuming it is T.
;;; Compiling (DEFUN COMP-FLUIDIZE ...).
;;; Warning:
;;;   in file pbug.lisp, position 123
;;;   at (DEFUN COMP-FLUIDIZE ...)
;;;   ! Too few arguments for proclaimed function BEGIN-DOLLAR-P
;;; End of Pass 1.
;;; Note:
;;;   Refusing to propagate FUNCALL
;;; Note:
;;;   Refusing to propagate C-INLINE
;;; Warning:
;;;   ! Too few arguments for proclaimed function BEGIN-DOLLAR-P


1. The argument-type in the function proclamation is simple enough
that ECL should not be confused.

2. ECL pretends that there are too few arguments for proclaimed
BEGIN-DOLLAR-P.  Yet, the function was proclaimed to be
of arity 1, and there is exactly one argument supplied in the call.

What are the notes about propagating FUNCALL and C-INLINE about?

-- Gaby


pbug.lisp
Description: Binary data
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Bug in argument checking based on function proclamation

2010-06-30 Thread Gabriel Dos Reis
On Mon, Jun 28, 2010 at 9:13 PM, Matthew Mondor
 wrote:

> I rebuilt an ECL from ECL HEAD to test these new changes.
> While building some code which uses function proclamations, there also
> was a new problem:

I forgot to mention that I could not build OpenAxiom. I do not know whether
Maxima uses function type proclamations, and therefore suffers from the same
problem.

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Bug in argument checking based on function proclamation

2010-07-01 Thread Gabriel Dos Reis
On Thu, Jul 1, 2010 at 4:39 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Tue, Jun 29, 2010 at 2:12 AM, Gabriel Dos Reis
>  wrote:
>>
>> On Mon, Jun 28, 2010 at 2:46 PM, Juan Jose Garcia-Ripoll
>>  wrote:
>> > * Proclamations are also used to deduce the type of a function's
>> > arguments
>> > and create argument type checks.
>> >
>> The function arguments checking seems to have a bug.
>
> Thanks a lot for the test case. I identified a problem with how FTYPE
> declarations are parsed. I did not detect the problem because I was focusing
> on PROCLAIM, not DECLAIM. It should be fixed now, but just started an
> OpenAxiom build to make sure -- Maxima works, though.

I just updated my local copy of ECL CVS.  That problem is indeed solved. Thanks!

However, I cannot build OpenAxiom.  The build fails during  ECL'c C
code generation for the lisp translation of src/interp/c-util.boot, in the
function |expandableDefinition?|:

;;; Emitting code for |expandableDefinition?|.

-1 is not of type FUNCTION.
Available restarts:

1. (ABORT) ABORT



Backtrace did not give me much to work on. to isolate the bug.
I do not know how ECL got to '-1'.

>>
>> 1. The argument-type in the function proclamation is simple enough
>>    that ECL should not be confused.
>>
>> 2. ECL pretends that there are too few arguments for proclaimed
>>    BEGIN-DOLLAR-P.  Yet, the function was proclaimed to be
>>    of arity 1, and there is exactly one argument supplied in the call.
>
> These two were caused by the error I just fixed.

OK.

>>
>> What are the notes about propagating FUNCALL and C-INLINE about?
>
> The type propagator is complaining about forms for which there is no type
> propagation code. I just disabled some of them, but seems I forgot FUNCALL.

OK, thanks!

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] [PATCH,BUG] Some fixes for ECL & a bug

2010-07-12 Thread Gabriel Dos Reis
On Mon, Jul 12, 2010 at 5:09 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Mon, Jul 12, 2010 at 5:45 PM, Alexander Gavrilov 
> wrote:
>>
>> (defmethod foo ((bar t)) (declaim (optimize (speed 1
>
> I did not change anything since yesterday and this works for me.
>

Maybe Alexander did not rebuild from a clean local build tree?

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] [PATCH,BUG] Some fixes for ECL & a bug

2010-07-13 Thread Gabriel Dos Reis
On Tue, Jul 13, 2010 at 4:20 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Tue, Jul 13, 2010 at 9:43 AM, Alexander Gavrilov 
> wrote:
>>
>> > On Mon, Jul 12, 2010 at 5:45 PM, Alexander Gavrilov
>> > wrote:
>> >
>> > > (defmethod foo ((bar t)) (declaim (optimize (speed 1
>> > >
>> >
>> > I did not change anything since yesterday and this works for me.
>> >
>>
>> This requires cmp.fas to be loaded. In my case it happens
>> automatically because I load ASDF from .eclrc
>
> I verified the problem and found a quick solution for it -- apparently there
> are some extensions to the bytecodes compiler that do not work so nicely as
> expected, I just avoided their use.
>
> There are now two compiler problems left, the one reported by Pascal and
> another one by Dan Corkill, as well as a pending fix for increased accuracy
> in EXP. I hope that kind of closes the list of things to solve.

well there is still the pending issue that ECL now leaves lots of tempory
files ecl* or ECL* in the /tmp directory...

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] [PATCH,BUG] Some fixes for ECL & a bug

2010-07-13 Thread Gabriel Dos Reis
On Tue, Jul 13, 2010 at 5:12 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Wed, Jul 14, 2010 at 12:04 AM, Gabriel Dos Reis
>  wrote:
>>
>> well there is still the pending issue that ECL now leaves lots of tempory
>> files ecl* or ECL* in the /tmp directory...
>
> I am not sure about this. I was reported a problem with mkstemp causing
> conflicts because POSIX allows dots in the resulting names. That was fixed.
> But when and how are these extra files being created? Was it in a previous
> email?

Yes, I reported that in a previous email.

I do not know how they are created.  But, I observed that every time
I build a new ECL, I get a bunch of them in the /tmp directory.
Here is a sample:

dromion[17:17]% ls ecl*
eclinit04Trez.ceclinitegxURz.ceclinitJOk7Zo.ceclinitRwL7De.c
eclinit04Trez.oeclinitegxURz.oeclinitJOk7Zo.oeclinitRwL7De.o
eclinit04Trez.tmp  eclinitegxURz.tmp  eclinitJOk7Zo.tmp  eclinitRwL7De.tmp
eclinit1aAaaI.ceclinitFJgzb1.ceclinitK1iIu4.ceclinitT0DSm4.c
eclinit1aAaaI.oeclinitFJgzb1.oeclinitK1iIu4.oeclinitT0DSm4.o
eclinit1aAaaI.tmp  eclinitFJgzb1.tmp  eclinitK1iIu4.tmp  eclinitT0DSm4.tmp
eclinit2uSySQ.ceclinitFnqOln.ceclinitkcRIsC.ceclinittbr2OF.c
eclinit2uSySQ.oeclinitFnqOln.oeclinitkcRIsC.oeclinittbr2OF.o
eclinit2uSySQ.tmp  eclinitFnqOln.tmp  eclinitkcRIsC.tmp  eclinittbr2OF.tmp
eclinit4UkB6o.ceclinitGjdnwb.ceclinitkO7RsU.ceclinitufRjhl.c
eclinit4UkB6o.oeclinitGjdnwb.oeclinitkO7RsU.oeclinitufRjhl.o
eclinit4UkB6o.tmp  eclinitGjdnwb.tmp  eclinitkO7RsU.tmp  eclinitufRjhl.tmp
eclinit7qsQKc.ceclinitGKcMbq.ceclinitM6wejY.ceclinituhxQcu.c
eclinit7qsQKc.oeclinitGKcMbq.oeclinitM6wejY.oeclinituhxQcu.o
eclinit7qsQKc.tmp  eclinitGKcMbq.tmp  eclinitM6wejY.tmp  eclinituhxQcu.tmp
eclinit7un2XA.ceclinitgukKgJ.ceclinitmVGcCR.ceclinitUNc9XO.c
eclinit7un2XA.oeclinitgukKgJ.oeclinitmVGcCR.oeclinitUNc9XO.o
eclinit7un2XA.tmp  eclinitgukKgJ.tmp  eclinitmVGcCR.tmp  eclinitUNc9XO.tmp
eclinit9sUxBL.ceclinitHLahgx.ceclinitNPU0xk.ceclinitvPG9PO.c
eclinit9sUxBL.oeclinitHLahgx.oeclinitNPU0xk.oeclinitvPG9PO.o
eclinit9sUxBL.tmp  eclinitHLahgx.tmp  eclinitNPU0xk.tmp  eclinitvPG9PO.tmp
eclinitA1jHQi.ceclinithzAuqO.ceclinitNvBuRv.ceclinitw4kWpI.c
eclinitA1jHQi.oeclinithzAuqO.oeclinitNvBuRv.oeclinitw4kWpI.o
eclinitA1jHQi.tmp  eclinithzAuqO.tmp  eclinitNvBuRv.tmp  eclinitw4kWpI.tmp
eclinitaMUNEN.ceclinitiD1OGz.ceclinitojOmOW.ceclinitWvXDDp.c
eclinitaMUNEN.oeclinitiD1OGz.oeclinitojOmOW.oeclinitWvXDDp.o
eclinitaMUNEN.tmp  eclinitiD1OGz.tmp  eclinitojOmOW.tmp  eclinitWvXDDp.tmp
eclinitaxaTeO.ceclinitIDPWbH.ceclinitOS7k1s.ceclinitXrSEJx.c
eclinitaxaTeO.oeclinitIDPWbH.oeclinitOS7k1s.oeclinitXrSEJx.o
eclinitaxaTeO.tmp  eclinitIDPWbH.tmp  eclinitOS7k1s.tmp  eclinitXrSEJx.tmp
eclinitbZkAMm.ceclinitjbHJBx.ceclinitp1X2Ab.ceclinitYspvKg.c
eclinitbZkAMm.oeclinitjbHJBx.oeclinitp1X2Ab.oeclinitYspvKg.o
eclinitbZkAMm.tmp  eclinitjbHJBx.tmp  eclinitp1X2Ab.tmp  eclinitYspvKg.tmp
eclinitCp4VHk.ceclinitJc5mYT.ceclinitpUWTSJ.ceclinitYyG7qz.c
eclinitCp4VHk.oeclinitJc5mYT.oeclinitpUWTSJ.oeclinitYyG7qz.o
eclinitCp4VHk.tmp  eclinitJc5mYT.tmp  eclinitpUWTSJ.tmp  eclinitYyG7qz.tmp
eclinitCtnzr1.ceclinitjckBEN.ceclinitqJmwUM.ceclinitz4Hjvr.c
eclinitCtnzr1.oeclinitjckBEN.oeclinitqJmwUM.oeclinitz4Hjvr.o
eclinitCtnzr1.tmp  eclinitjckBEN.tmp  eclinitqJmwUM.tmp  eclinitz4Hjvr.tmp
eclinitcYRYrE.ceclinitJLhHSS.ceclinitQNtkUN.ceclinitzgLGz4.c
eclinitcYRYrE.oeclinitJLhHSS.oeclinitQNtkUN.oeclinitzgLGz4.o
eclinitcYRYrE.tmp  eclinitJLhHSS.tmp  eclinitQNtkUN.tmp  eclinitzgLGz4.tmp
eclinitEdRSCS.ceclinitjMpsq5.ceclinitr5OFDw.ceclinitzh7A9m.c
eclinitEdRSCS.oeclinitjMpsq5.oeclinitr5OFDw.oeclinitzh7A9m.o
eclinitEdRSCS.tmp  eclinitjMpsq5.tmp  eclinitr5OFDw.tmp  eclinitzh7A9m.tmp

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL fasl format

2010-07-14 Thread Gabriel Dos Reis
Hi Juanjo,

  Do you have a documentation for ECL's FASL format (and data structures)?

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] A bug was found in the compiler

2010-07-15 Thread Gabriel Dos Reis
On Thu, May 20, 2010 at 1:11 AM, Gabriel Dos Reis
 wrote:
> On Fri, May 14, 2010 at 5:44 PM, Gabriel Dos Reis  wrote:
>> Hi Juanjo,
>>
>>  As I cannot build OpenAxiom with ECL HEAD, despite commits from today,
>> I tried to see the effect of the improvement on building SBCL with ECL.
>> I was almost pleasantly surprised:  the build went much further than it
>> used to; but it still fails:
>>
>> ;;; Note:
>> ;;;   in file late-type.lisp, position 21076
>> ;;;   at (DEFUN VALUES-TYPE-OUT ...)
>> ;;;   Replacing variable TYPE by its value
>> ;;; Emitting code for PROCESS-TYPES.
>> ;;; Emitting code for VALUES-TYPE-IN.
>>
>> Internal error:
>>  in file late-type.lisp, position 21832
>>  at (DEFUN VALUES-TYPE-IN ...)
>>  ** A bug was found in the compiler
>> Available restarts:
>>
>> 1. (ABORT) ABORT
>> 2. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
>>
>>
>> Here is how you can reproduce the bug:
>>
>>  (1) check out SBCL CVS HEAD
>>  (2) apply the patch below
>>  (3) issue ./make.sh ecl
>>
>
> Hi Juanjo,
>
>  Your recent commits (yesterday or today depending on where you are)
> have made some improvements.  The build no longer dies in the
> compilation of VALUES-TYPE-IN.  It goes further (yay!), and now I am
> getting
>
> ;;; Loading 
> "/home/gdr/src/sbcl.cvs/obj/from-host/src/code/deftypes-for-target.fas"
>
> The function (SETF CLASSOID-CELL-PCL-CLASS) is undefined.
> Available restarts:
>
> 1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
>
>

I was hoping that the recent SETF expander fixes may also fix
this; but not :-/

-- Gaby

--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL fasl format

2010-07-27 Thread Gabriel Dos Reis
On Sat, Jul 17, 2010 at 4:41 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Thu, Jul 15, 2010 at 3:08 AM, Gabriel Dos Reis
>  wrote:
>>
>>  Do you have a documentation for ECL's FASL format (and data structures)?
>
> Not really: read.d and more precisely read_VV document the process of
> initializing a FASL file, while load.d shows how it is loaded.
>
> FASL files are just shared libraries. We do not use "formats" as such, but
> just link together object files.
>
> Each object file contains a single initialization routine, which is just a C
> function with the statements in the lisp file, compiled.
>
> This routine is called twice by read_VV. The first time it just returns a
> structure (ecl_codeblock) with some fields filled in, such as the text
> representation of all constants, the text representation of those constants
> that are only used during initialization (and can be eliminated afterwards),
> and some debug information.
>
> The second time, the init function executes the compiled statements I
> mentioned before. Now all constants and packages have been set up and thus
> the lisp code works just fine. Functions will be installed by the statements
> that implement DEFUN, and macros, classes, and other things will be defined.
>
> But again, this is _how_ it works. There is no format as such. ECL just uses
> whatever the operating system provides in terms of binary file formats,
> system calls to load them, etc.

Many thanks.

-- Gaby

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL on LLP64 machines

2010-08-10 Thread Gabriel Dos Reis
Hi Juanjo,

By way of necessity I ended up with only a Windows 7 64-bit machine
on travel. I managed to have mingw-w64 up and running flawlessly
(so far.)  I tried to compile ECL, but only to realize that it supports only
ILP or LP data model.  The windows box I am running is LLP-64.
Was that restriction intended, or is it just an accident of how ECL's
src/aclocal.m4 is currently written?  Speaking of which, I was curious
as to why ECL does not first try to probe for  and 
and use predefined sized integer types from there, and only fall back to
the current detection scheme only if those headers are unavailable?

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] refactor src/aclocal.m4

2010-08-11 Thread Gabriel Dos Reis

Hi Juanjo,

  While I was looking at the configure issue of ECL on Windows 64-bit, I
noticed that the tests for sized integer types were
  (1) duplicating what Autoconf already does for free (and more)
  (2) copy-n-pasted duplicates

The patch below refactors the boilerplate into a single macro:
ECL_CHECK_SIZED_INTEGER_TYPE.  And it reuses standard Autoconf tests.

A patch dealing with CL_FIXNUM_TYPE will follow later, after this one is
discussed/refined and integrated.

-- Gaby

Index: aclocal.m4
===
RCS file: /cvsroot/ecls/ecl/src/aclocal.m4,v
retrieving revision 1.118
diff -p -r1.118 aclocal.m4
*** aclocal.m4  4 Jul 2010 20:54:51 -   1.118
--- aclocal.m4  11 Aug 2010 07:36:33 -
*** int main() {
*** 445,450 
--- 445,465 
  }]])],[ECL_FILE_CNT=3],[])
  fi
  ])
+ 
+ dnl -
+ dnl Check availability of standard sized integer types of a given width.  
+ dnl On success, define the global variables ECL_INTx_T and ECL_UNITx_T to 
+ dnl hold the names of the corresponding standard C integer types.
+ AC_DEFUN(ECL_CHECK_SIZED_INTEGER_TYPE,[
+ AC_TYPE_INT$1_T
+ AC_TYPE_UINT$1_T
+ if test "x$ac_cv_c_int$1_t" = xyes; then
+   eval ECL_INT$1_T="int$1_t"
+   eval ECL_UINT$1_T="uint$1_t"
+   AC_DEFINE_UNQUOTED([ecl_int$1_t],[int$1_t])
+   AC_DEFINE_UNQUOTED([ecl_uint$1_t],[uint$1_t])
+ fi])
+ 
  dnl
  dnl --
  dnl Check the existence of different integer types and that they
*** if test -z "${ECL_STDINT_HEADER}"; then
*** 458,548 
  AC_CHECK_HEADER([inttypes.h],[AC_DEFINE(HAVE_INTTYPES_H)
  ECL_STDINT_HEADER="#include "],[])
  fi
! if test -n "${ECL_STDINT_HEADER}" -a -z "${ECL_UINT8_T}"; then
! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_INTTYPES_H
! #include 
! #else
! #ifdef HAVE_STDINT_H
! #include 
! #endif
! #endif]], [[
! {
!   uint8_t i = 0x80;
!   if (i == 0)
! return 0;
!   if ((i << 1))
! return 0;
!   if ((i - 1) != 0x7F)
! return 0;
!   return 1;
! }]])],[ECL_UINT8_T=uint8_t;ECL_INT8_T=int8_t],[])
! fi
! if test -z "${ECL_UINT8_T}"; then
! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
! {
!   unsigned char c = 0x80;
!   if (i == 0)
! return 0;
!   if ((i << 1))
! return 0;
!   if ((i - 1) != 0x7F)
! return 0;
!   return 1;
! }]])],[ECL_UINT8_T="unsigned char";ECL_INT8_T="signed char"],[])
! fi
! if test -n "${ECL_STDINT_HEADER}" -a -z "${ECL_UINT16_T}"; then
! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_INTTYPES_H
! #include 
! #else
! #ifdef HAVE_STDINT_H
! #include 
! #endif
! #endif]], [[
! {
!   uint16_t i = 0x8000UL;
!   if (i == 0)
! return 0;
!   if ((i << 1))
! return 0;
!   if ((i - 1) != 0x7FFFUL)
! return 0;
!   return 1;
! }]])],[ECL_UINT16_T=uint16_t;ECL_INT16_T=int16_t],[])
! fi
! if test -n "${ECL_STDINT_HEADER}" -a -z "${ECL_UINT32_T}"; then
! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_INTTYPES_H
! #include 
! #else
! #ifdef HAVE_STDINT_H
! #include 
! #endif
! #endif]], [[
! {
!   uint32_t i = 0x8000UL;
!   if (i == 0)
! return 0;
!   if ((i << 1))
! return 0;
!   if ((i - 1) != 0x7FFFUL)
! return 0;
!   return 1;
! }]])],[ECL_UINT32_T=uint32_t;ECL_INT32_T=int32_t],[])
! fi
! if test -n "${ECL_STDINT_HEADER}" -a -z "${ECL_UINT64_T}"; then
! AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_INTTYPES_H
! #include 
! #else
! #ifdef HAVE_STDINT_H
! #include 
! #endif
! #endif]], [[
! {
!   uint64_t i = 1;
!   i <<= 63; if (i == 0) return 0;
!   i <<= 1;  if (i) return 0;
!   return 1;
! }]])],[ECL_UINT64_T=uint64_t;ECL_INT64_T=int64_t],[])
! fi
  if test "${ECL_UINT16_T}${CL_FIXNUM_BITS}" = "16"; then
ECL_UINT16_T="cl_index"
ECL_INT16_T="cl_fixnum"
--- 473,484 
  AC_CHECK_HEADER([inttypes.h],[AC_DEFINE(HAVE_INTTYPES_H)
  ECL_STDINT_HEADER="#include "],[])
  fi
! 
! ECL_CHECK_SIZED_INTEGER_TYPE(8)
! ECL_CHECK_SIZED_INTEGER_TYPE(16)
! ECL_CHECK_SIZED_INTEGER_TYPE(32)
! ECL_CHECK_SIZED_INTEGER_TYPE(64)
! 
  if test "${ECL_UINT16_T}${CL_FIXNUM_BITS}" = "16"; then
ECL_UINT16_T="cl_index"
ECL_INT16_T="cl_fixnum"
*** if test "${ECL_UINT64_T}${CL_FIXNUM_BITS
*** 555,592 
ECL_UINT64_T="cl_index"
ECL_INT64_T="cl_fixnum"
  fi
! AC_MSG_CHECKING(uint8_t type)
  if test "x${ECL_UINT8_T}" = "x" -o "x${ECL_UINT8_T}" = xno; then
-   AC_MSG_RESULT(none)
AC_MSG_ERROR(Can not build ECL without byte types)
- else
-   AC_DEFINE_UNQUOTED([ecl_uint8_t],[$ECL_UINT8_T])
-   AC_DEFINE_UNQUOTED([ecl_int8_t],[$ECL_INT8_T])
-   AC_MSG_RESULT(${ECL_UINT8_T})
- fi
- AC_MSG_CHECKING(uint16_t type)
- if test "x${ECL_UINT16_T}" = "x" -o "x${ECL_UINT16_T}" = xno; then
-   AC_MSG_RESULT(none)
- else
-   AC_DEFINE_UNQUOTED([ecl_uint16_t],[$ECL_UINT16_T])
-   AC_DEFINE_UNQUOTED([ecl_int16_t],[$ECL_INT16_T])
-   AC_MSG_RESULT(${ECL_UINT16_T})
- fi
- AC_MSG_CHECKING(uint32_t type)
- if te

Re: [Ecls-list] refactor src/aclocal.m4

2010-08-11 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| Hi Gabriel,
| 
| thanks a lot for the refactoring. I wrote those tests at a time when I
| was not sure that they existed and did the proper job. BTW, regarding
| your previous question about stdint.h, some platforms define that
| header but they do not provide any or all useful integer types. Thus
| checking for its existence is not enough (old Solaris, for instance).

yes, I remembered the solaris case.  The standard Autoconf tests for the
sized integer types do actually this:
   1. they test for the existence of the headers.
   2. next, they test that the typedefs are actually there.
   3. If 2 fails, then they try to guess the types by running a 
  program similar to yours, except that they avoid possible
  (mis)-optimization by compilers that assume that signed integer
  overflow is undefined-behaviour.

I did not include the diff for 'configure' because I assumed that you
would recreate it yourself.  The other thing I was unsure about was
whetehr you wanted to bump the required (developer) Autotools to version
2.62.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on LLP64 machines

2010-08-11 Thread Gabriel Dos Reis
On Wed, Aug 11, 2010 at 3:41 AM, Juan Jose Garcia-Ripoll
 wrote:
> Hi Gabriel,
>
> ECL just needs an integer type that fits a pointer. That type is used
> for defining cl_fixnum / cl_index, and in various places you will find
> conversions to and from cl_object. In the LLP model, which I did not
> know of until now  (*), both "int" and "long" are 32-bit and pointers
> are 64-bits,

Yes.

>  which means they can not be used to implement cl_fixnum /
> cl_integer.

Thanks.  I knew for cl_fixnum by going through src/aclocal.m4 and
src/h/config.h.in, but I failed to notice that cl_integer has the same
issue.  Thanks!

>  If you find time, ECL's autoconf may be fixed to add that
> additional type to the list of candidates for cl_fixnum / cl_integer.

I did try last night to get ECL use intptr_t, when available, for cl_fixnum.
That discovered some overflow arithmetics in the C code.  I was too tired
to investigate it.  I'm on vacation with my family and I am supposed to
be away from computing devices, so I will do that when everybody is
sleeping.

>
> Juanjo
>
> (*) From a lot of code out there I gave for granted that "long" must
> be long enough to fit a pointer, which is why ECL's autoconf just uses
> "int" and "long" as candidates for cl_fixnum.  This is probably a too
> old assumption, but I fail to see the utility of the LLP model given
> that :-/

I wondered the same.  My speculative conclusion was that maybe
that is needed for having LP32 binaries run on LLP64 without change.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on LLP64 machines

2010-08-12 Thread Gabriel Dos Reis
On Wed, Aug 11, 2010 at 5:16 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Wed, Aug 11, 2010 at 4:39 PM, Gabriel Dos Reis
>  wrote:
>>
>> I did try last night to get ECL use intptr_t, when available, for
>> cl_fixnum.
>> That discovered some overflow arithmetics in the C code.
>
> I attach a patch that uses "long long" when neither of "long" nor "int" fit.
> Unfortunately I have no way to test it.
> Juanjo

Hi Juanjo,

Thanks for the patch!
The build failed earlier in the GC component:

In file included from
c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/include/private/gc_priv.h:68:0,

 from c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/allchblk.c:19:

c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/include/private/gcconfig.h:997:7:
error: #error This should be handled as X86_64

c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/include/private/gcconfig.h:1843:0:
warning: "MACH_TYPE" redefined

c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/include/private/gcconfig.h:995:0:
note: this is the location of the previous definition

c:/Docume~1/gdr/Desktop/ecl.cvs/src/gc/allchblk.c:21:9: warning:
'GC_use_entire_heap' redeclared without dllimport attribute: previous
dllimport ignored


Is the GC library known to work on Windows 64-bit?

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on LLP64 machines

2010-08-12 Thread Gabriel Dos Reis
On Thu, Aug 12, 2010 at 12:35 PM, Juan Jose Garcia-Ripoll
 wrote:
> For Mingw you should use a more recent (alpha) release of the garbage
> collector, install it and then build ECL. Sorry for the inconvenience, but
> the GC people do not yet dare to produce a stable release.
> Juanjo

That is what I figured out, but I got mired in other issues.
Yes, the GC from CVS compiles and installs fine.  And ECL's configure
was able to pick it up.  The only issue I had been distracted with
is that, apparently, ECL's configure could not use the multi-threading
library that comes with mingw-w64.  I was trying to resolve that issue
but unsuccessfully so far.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Request to mailing list Ecls-list rejected

2010-08-13 Thread Gabriel Dos Reis
ecls-list-boun...@lists.sourceforge.net writes:

| "Gabriel, your message was too large for the mailing list, but it was
| automatically forwarded to me this morning. I will commut the changes
| to number.h and have a look at the rest. Thanks a lot for your help.
| 
| Juanjo"

Hi Juanjo,

After having restructured src/c/load.d as I indicted in my earlier
message [1], I needed to apply the patch below (which fixes an obvious
thinko).  Then I could successfully build ecl_min.  However, it crashed
when used to bootstrap ECL.  The codes that are guarded by 

   ECL_LONG_BITS < FIXNUM_BITS

do not seem to have been tested in recent years (for they do not compile).
The reason for that is simple: ECL seems to have been tested only on ILP
or LP platforms.
So, I am wondering why ECL is making that distinction?  That is, why does
ECL need to distinguish 'long' from ECL_FIXNUM_TYPE?  Should not
the distinction between GMP_LIMB_BITS vs. FIXNUM_BITS be sufficient?

[1] I introduced the following CPP macro

   #if defined(__MINGW32__) || defined(__MINGW64__) || defined(_MSC_VER)
   #  define ECL_MS_WINDOWS_TARGET 1
   #endif
in src/h/ecl.h.  to abstract over the various targets that run native
windows. 
For Windows 7 64-bit I recommend testing also for __MINGW64__.  The
difference between __MINGW32__ and __MINGW64__ matters only for
selecting 32-bit v 64-bit specific code.

I'm not sending the patch against src/c/load.d yet since I did not
manage to resolve all issues.

-- Gaby

Index: big.d
===
RCS file: /cvsroot/ecls/ecl/src/c/big.d,v
retrieving revision 1.43
diff -p -r1.43 big.d
*** big.d   1 Feb 2010 13:55:16 -   1.43
--- big.d   13 Aug 2010 09:17:09 -
*** _ecl_fix_times_fix(cl_fixnum x, cl_fixnu
*** 160,166 
  ECL_WITH_TEMP_BIGNUM(w,4);
  mpz_set_si(z->big.big_num, x);
  mpz_set_si(w->big.big_num, y);
! mpz_mu(z->big.big_num, z->big.big_num, w->big.big_num);
  #endif
  {
  cl_object y = big_normalize(z);
--- 160,166 
  ECL_WITH_TEMP_BIGNUM(w,4);
  mpz_set_si(z->big.big_num, x);
  mpz_set_si(w->big.big_num, y);
! mpz_mul(z->big.big_num, z->big.big_num, w->big.big_num);
  #endif
  {
  cl_object y = big_normalize(z);

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Request to mailing list Ecls-list rejected

2010-08-13 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Fri, Aug 13, 2010 at 11:35 AM, Gabriel Dos Reis  wrote:
| 
| So, I am wondering why ECL is making that distinction?  That is, why does
| ECL need to distinguish 'long' from ECL_FIXNUM_TYPE?  Should not
| the distinction between GMP_LIMB_BITS vs. FIXNUM_BITS be sufficient?
| 
| 
| Gabriel, I think you have found a major problem. GMP only exports routines to
| convert from gmp to long and int, not to long long. Since I did not want to
| tinker with GMP's internals, I almost never manipulated limbs myself. I have
| not the faintest idea of what choices GMP takes when facing an LLP platform. I
| believe the Sage group switched from GMP to MPIR for this precise reason, but
| it also poses a significant problem for ECL because we will have to have a 
look
| at the cl_fixnum -> gmp conversions scattered throughout the code, which
| currently rely on GMP's mpz_set_si function and this is taking LONG not LONG
| LONG!!!

Aha!  Thanks for the explanation.
I would not think that it would be good for ECL to swicth from GMP to
MPIR (not that I think bad of MPIR, but only because GMP remains quite
popular on almost all platforms and is still actively maintained.)

As for the conversion problem.
  1. GMP does use 'long long' for mp_limb_t where it is available.
 So, ECL could check at configure time whether ECL_FIXNUM_TYPE
 matches mp_limb_t in size.

  2. GMP offers low-level mpn_xxx functions that could be used to
 initialize mpz objects from fixnum values.  That would avoid
 the unstructured code you are alluding to.  Is that something
 you would contemplate?

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Request to mailing list Ecls-list rejected

2010-08-17 Thread Gabriel Dos Reis
Gabriel Dos Reis  writes:

[...]

| Index: big.d
| ===
| RCS file: /cvsroot/ecls/ecl/src/c/big.d,v
| retrieving revision 1.43
| diff -p -r1.43 big.d
| *** big.d 1 Feb 2010 13:55:16 -   1.43
| --- big.d 13 Aug 2010 09:17:09 -
| *** _ecl_fix_times_fix(cl_fixnum x, cl_fixnu
| *** 160,166 
|   ECL_WITH_TEMP_BIGNUM(w,4);
|   mpz_set_si(z->big.big_num, x);
|   mpz_set_si(w->big.big_num, y);
| ! mpz_mu(z->big.big_num, z->big.big_num, w->big.big_num);
|   #endif
|   {
|   cl_object y = big_normalize(z);
| --- 160,166 
|   ECL_WITH_TEMP_BIGNUM(w,4);
|   mpz_set_si(z->big.big_num, x);
|   mpz_set_si(w->big.big_num, y);
| ! mpz_mul(z->big.big_num, z->big.big_num, w->big.big_num);
|   #endif
|   {
|   cl_object y = big_normalize(z);

Hi Juanjo,

I believe the above patch did not make it to the official CVS trunk.
[and this leaves me convinced that ECL_LONG_BITS should go :-)]

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-18 Thread Gabriel Dos Reis

hi,

Has anybody been successful building ECL from CVS trunk on Windows
32-bit using msys/mingw?   For me it fails with:

In file included from
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/
unistd.h:13,
 from c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/file.d:29:
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95: error: 
expected identifier or '(' before '{' token
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95: error: 
expected identifier or '(' before 'void'
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:100: error: 
conflicting types for 'GC_beginthreadex'
c:/Docume~1/gdr/Desktop/ecl.cvs/build/ecl/gc/gc.h:1049: note: previous
declaration of 'GC_beginthreadex' was here


I started the week with an abundance of patience and hope for ECL on
Windows boxes, but it seems to be drying up very quickly.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-18 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

[...]

| I started the week with an abundance of patience and hope for ECL on
| Windows boxes, but it seems to be drying up very quickly.
| 
| 
| Some ideas
| 
| - the windows 32 bit port worked. if something broke in the mean time and
| nobody reported it can be easily fixed
| - mingw is a PITA and a patience drainer. just guessing what to do to have 64
| bits is a waste of time.

Looking into MinGW system file process.h, the error looks very
puzzling.  For it is only declaring _beginthread.  All this sounds like
a catch-22 macro game between ECL, MinGW, and the garbage collector.

[...]

| - no difficulty is insurmountable except death.

but time can run out :-)

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-18 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Wed, Aug 18, 2010 at 5:03 PM, Gabriel Dos Reis  wrote:
| 
| Has anybody been successful building ECL from CVS trunk on Windows
| 32-bit using msys/mingw?   For me it fails with:
| 
| In file included from
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/
| unistd.h:13,
|                 from c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/file.d:29:
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95:
| error: expected identifier or '(' before '{' token
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95:
| error: expected identifier or '(' before 'void'
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:100:
| error: conflicting types for 'GC_beginthreadex'
| 
| 
| I just got the same error because ECL was unable to find version 7.2a4 of the
| garbage collector, which I had installed somewhere else. Ensure that the right
| library is used by passing --enable-boehm=system This will make ECL complain
| when it cannot find the library you downloaded and installed yourself.

Indeed, that gets me past that error.  I'm now getting

libeclmin.a(ffi.o): In function `si_make_dynamic_callback':
c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/ffi.d:976: undefined reference to
`ffi_pre
p_closure'
libeclmin.a(ffi.o): In function `si_call_cfun':
c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/ffi.d:925: undefined reference to 
`ffi_call'
libeclmin.a(ffi.o):tmp.c:(.rdata+0x320): undefined reference to `ffi_type_sint8'
libeclmin.a(ffi.o):tmp.c:(.rdata+0x324): undefined reference to `ffi_type_uint8'
libeclmin.a(ffi.o):tmp.c:(.rdata+0x328): undefined reference to `ffi_type_sint8'
libeclmin.a(ffi.o):tmp.c:(.rdata+0x32c): undefined reference to `ffi_type_uint8'
libeclmin.a(ffi.o):tmp.c:(.rdata+0x330): undefined reference to
`ffi_type_sint16

[...]

My configure command line was:

$ ./configure --enable-threads --prefix="C:/msys/1.0/local/ecl" 
--with-gmp-prefix="C:/msys/1.0/local" --enable-boehm=system



-- Gaby


--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Ecls-list Digest, Vol 52, Issue 7

2010-08-18 Thread Gabriel Dos Reis
"aeri...@xs4all.nl"  writes:

| Hi,
|  
| 
| Date: Wed, 18 Aug 2010 10:03:44 -0500
| From: Gabriel Dos Reis 
| Subject: [Ecls-list] ECL on Windows 32-bit with msys/mingw
| To:  ecls-l...@lists.sf.net
| Message-ID: <87eidwarov@gauss.cs.tamu.edu>
| Content-Type: text/plain; charset=us-ascii
| 
| Has anybody been successful building ECL from CVS trunk on Windows 32-bit
| using msys/mingw?
| 
| 
| Do you have a specific need for CVS trunk? I've recently compiled 10.4.1 on
| 32-bit Windows.

Yes, I'm planning some changes to ECL to compile on Window 64-bit, and I
am desperately trying to get a reference base line before I make further
"damages". 

|   For me it fails with:
| 
| In file included from
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/
| unistd.h:13,
| from c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/file.d:29:
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95:
| error: expected identifier or '(' before '{' token
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:95:
| error: expected identifier or '(' before 'void'
| c:\mingw\bin\../lib/gcc/mingw32/4.4.0/../../../../include/process.h:100:
| error: conflicting types for 'GC_beginthreadex'
| c:/Docume~1/gdr/Desktop/ecl.cvs/build/ecl/gc/gc.h:1049: note: previous
| declaration of 'GC_beginthreadex' was here
| 
| 
| I'm writing this on a phone so excuse the vague description, but I think I
| fixed this by replacing the Boehm GC source tree that comes with ECL with an
| updated one.
| 
| I recall Juanjo mentioning this in one of the ECL changelogs.

I think ECL CVS trunk still uses an older version of the collector.
It appears that Juanjo and I can work around that specific problem by
using a more recent GC (e.g. from CVS trunk.)

However, I am still seeing other link failures from ffi.d.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-19 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Wed, Aug 18, 2010 at 11:15 PM, Juan Jose Garcia-Ripoll <
| juanjose.garciarip...@googlemail.com> wrote:
| 
| On Wed, Aug 18, 2010 at 6:37 PM, Gabriel Dos Reis  
wrote:
| 
| libeclmin.a(ffi.o): In function `si_make_dynamic_callback':
| c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/ffi.d:976: undefined reference 
to
| `ffi_prep_closure'
| 
| libeclmin.a(ffi.o): In function `si_call_cfun':
| c:/Docume~1/gdr/Desktop/ecl.cvs/src/c/ffi.d:925: undefined reference 
to
| `ffi_call'
| 
| 
| This code should not be compiled and I can guarantee I do not see this in
| my copy of mingw. Is there a library called libffi in your system, or did
| ECL detect it at configuration time? It should appear in the log or by a
| definition HAVE_LIBFFI in ecl/config.h If so you could you try using
| --without-dffi
| 
| 
| I have seen this precise error when building with a recent version of cygwin
| (see http://ecls.sourceforge.net/logs/cygwin32) which comes with a -lffi
| library. ECL detects it and tries to use it, but it fails because it seems it
| is not the actual libffi or it has some other API. I just wonder why you saw
| the same error in pure Mingw (while I don't http://ecls.sourceforge.net/logs/
| mingw32)

Hi Juanjo,

  Indeed there is a libffi.a installed with my copy of MinGW.  It comes
with the precompiled GNU's Java front-end gcj (which uses it).  If I
understand correctly, there might be two libffi floating around: one
that ECL wants, and one that comes with GNU Compiler suite.  Yet, they
may not be the same.  In that case, I think it ought to be the case that
ECL has a definite idea about which libffi it wants and test for it at
configuration time.  Until your message, I was completely puzzled by
these link failures.  Indeed, configuring with --without-dffi, the build
is OK.

What is the relation between --enable-shared and --with-dffi?

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-19 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

[...]

| --with-dffi is only useful when combined with --enable-shared, because the
| later allows finding out shared libraries, loading them and retrieving 
pointers
| to their C functions, which DFFI may then use as described before.
| 
| --with-dffi is only needed when you want to do FFI operations from the command
| line or interpreted code.

OK, thanks!

| As for the coexistence of both libraries, my feeling is that libffi is a very
| quickly evolving library. Now, I only have libffi as shipped with Debian and
| with OS X and they more or less look the same, and indeed ECL builds just fine
| in both platforms with --with-dffi enabled. Cygwin and mingw may be either
| shipping a much older or much newer version, or a version with some
| functionality removed due to security reasons (arbitrary function calls?
| callbacks?), I really can not tell.

The ffi.h (located in GCC internal directories) with my copy of MinGW
says version 2.1 in comment.  I don't see any CPP macro version or
something of the sort in the header file, so it would be more involved
to prevent this kind of puzzling link failure.  It sucks to have a
library without a mean to report version.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-19 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| BTW, I just finished configuring the Windows64 virtual image and right now all
| tests are run through it:
|    http://ecls.sourceforge.net/logs.html

Great!

| However, I still have not managed installing mingw64, nor setting up the MSVC
| port to use LLP.

I will try to free up time this afternoon to polish my patch and send it
for discussion.

Many thanks,

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL on Windows 32-bit with msys/mingw

2010-08-19 Thread Gabriel Dos Reis

In fact I have a question I should ask now.

I am introducing a CPP macro, say ECL_MS_WINDOWS_HOST, that tells where
ECL is being built as a native Windows program (this includes using MS
compiler, GNU MinGW/MSYS or mingw-w64, but excludes Cygwin).  This is 
easily done by configure.  And all is well.  However for a build with
MS compiler, the macro needs to be defined somewhere since configure is
not used there.  Where is the right place to put that CPP macro definition?


-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] features.h is harmful

2010-08-21 Thread Gabriel Dos Reis

Hi Juanjo,

  The new header file src/c/features.h appears to break builds on Linux.
Indeed, on many linux distributions there already exists a header file
named feature.h.  In the ECL case, it looks like  is picking 
the new (ECL) file as opposed of the (linux) system supplied header.
This is on openSUSE-11.2.  The exact error is:

In file included from /usr/include/stdlib.h:25,
 from /home/gdr/src/ecl.cvs/src/c/dpp.c:71:
/home/gdr/src/ecl.cvs/src/c/features.h:18: error: expected ‘)’ before ‘static’
In file included from /home/gdr/src/ecl.cvs/src/c/dpp.c:71:
/usr/include/stdlib.h:96: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘__BEGIN_NAMESPACE_STD’
/usr/include/stdlib.h:140: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘extern’
/usr/include/stdlib.h:145: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or 
‘__attribute__’ before ‘extern’


I would suggest to rename features.h as ecl-features.h.

-- Gaby




--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] features.h is harmful

2010-08-21 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Sat, Aug 21, 2010 at 10:02 PM, Gabriel Dos Reis  wrote:
| 
| The new header file src/c/features.h appears to break builds on Linux.
| Indeed, on many linux distributions there already exists a header file
| named feature.h.  In the ECL case, it looks like  is picking
| the new (ECL) file as opposed of the (linux) system supplied header.
| 
| 
| Thanks for pointing out both the problem and the solution -- they were both
| quite unexpected to me, since I develop on OS X and saw no problem building
| ECL.

Thanks for the quick fix, ECL is in Buildville again.

-- Gaby

--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ecl_make_stream_from_fd

2010-08-21 Thread Gabriel Dos Reis

Hi Juanjo,

I am looking at this snippet from ecl_make_stream_from_fd in src/c/file.d:

#if defined(ECL_WSOCK)
if (smm == smm_input_wsock || smm == smm_output_wsock || smm == 
smm_io_wsock)
fp = (FILE*)fd;
else
fp = fdopen(fd, mode);
#else
fp = fdopen(fd, mode);
#endif


the parameter `fd' is of type `int'.  I cannot see how the cast 
to `FILE*' can possibly yield a valid pointer value on a 64-bit
architecture.

-- Gaby


--
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] Compiling ECL under Wine

2010-09-12 Thread Gabriel Dos Reis

Hi Juanjo,

Yesterday, I tried to cross build a native Windows ECL compiler but it
looks as if the current configure/build infrastructure puts far more
burdens than it ought to be -- and this goes back to some discussions we
had last month.  More on that later. 

I then decided to use Wine to compile ECL.  I needed to apply the
patchlet attached to this email.  The first hunk is needed because even
though a true windows system won't mind that the '.exe' is left out
ecl_min is invoked, the build environment still cares.  The second hunk
is needed for a similar reason.  Although NTFS is case-insensitive and
case-preserving, the build filesystem may still care.  

The build did not complete because of some issues related to how wine
maps drives to actual build pathnames, but my suspicion is that it is close.

-- Gaby

Index: src/Makefile.in
===
RCS file: /cvsroot/ecls/ecl/src/Makefile.in,v
retrieving revision 1.104
diff -p -r1.104 Makefile.in
*** src/Makefile.in	4 Jul 2010 20:55:04 -	1.104
--- src/Makefile.in	12 Sep 2010 11:45:19 -
*** bin/ecl$(EXE): ecl_min$(EXE) compile.lsp
*** 72,78 
  	if [ -f CROSS-COMPILER ]; then \
  		./CROSS-COMPILER compile; \
  	else \
! 		ECLDIR=`pwd`/ ./ecl_min compile; \
  	fi
  
  ecl_min$(EXE): $(LIBRARIES) .gdbinit @libpre...@eclmin.@LIBEXT@
--- 72,78 
  	if [ -f CROSS-COMPILER ]; then \
  		./CROSS-COMPILER compile; \
  	else \
! 		ECLDIR=`pwd`/ ./ecl_min$(EXE) compile; \
  	fi
  
  ecl_min$(EXE): $(LIBRARIES) .gdbinit @libpre...@eclmin.@LIBEXT@
Index: src/c/time.d
===
RCS file: /cvsroot/ecls/ecl/src/c/time.d,v
retrieving revision 1.44
diff -p -r1.44 time.d
*** src/c/time.d	22 Aug 2010 21:03:27 -	1.44
--- src/c/time.d	12 Sep 2010 11:45:20 -
***
*** 34,40 
  #include 
  #if defined(ECL_MS_WINDOWS_HOST)
  # include 
! # include 
  #endif
  
  #if !defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_GETRUSAGE) && !defined(ECL_MS_WINDOWS_HOST)
--- 34,40 
  #include 
  #if defined(ECL_MS_WINDOWS_HOST)
  # include 
! # include 
  #endif
  
  #if !defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_GETRUSAGE) && !defined(ECL_MS_WINDOWS_HOST)
--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] problems in src/c/dpp.c - too many & too few arguments.

2010-09-16 Thread Gabriel Dos Reis
On Thu, Sep 16, 2010 at 5:30 AM, Dr. David Kirkby
 wrote:
> I thought I'd reported this before, but can't see to find the email. So I'll
> have another go.
>
> When I'm building ecl-10.2.1 as part of Sage I get too warning messages from 
> gcc.

I fear nothing can be done about ECL-10.2.1.  It has already been
released into the
wilderness long ago.  Try newer version, e.g. from CVS.

-- Gaby

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ecl is linking unnecessarily to libintl.so (at least on OpenSolaris)

2010-09-18 Thread Gabriel Dos Reis
On Sat, Sep 18, 2010 at 3:51 PM, Dr. David Kirkby
 wrote:
> I'm sure you wont consider this a high priority, but ECL appears to be linking
> unnecessarily to libintl.so at least on OpenSolaris.
>
> An intersting blog post here
>
> http://blogs.sun.com/rie/entry/tt_dependencies_tt_define_what
>
> shows how to find out any unused libraries. The current version of ECL in Sage
> has 3 such unneeded libraries, but the latest git version has only one.
>
> See
>
> http://trac.sagemath.org/sage_trac/ticket/9943

I have always empirically found that use of sockets on *Solaris needed
that library to be linked in.  Are you claiming that changed in recent
version of OpenSolaris?  Which version?


-- Gaby

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ecl is linking unnecessarily to libintl.so (at least on OpenSolaris)

2010-09-20 Thread Gabriel Dos Reis
On Mon, Sep 20, 2010 at 1:27 AM, Daniel Herring  wrote:
> On Sun, 19 Sep 2010, Juan Jose Garcia-Ripoll wrote:

> If the test passes without -lintl, then that library is not used.  If it
> only passes with -lintl, then you don't care what OS you're on until
> somebody else finds a case where this breaks things.

In this specific case, which concrete test will cut it?

-- Gaby

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] minor fixes for cross compilation

2010-09-22 Thread Gabriel Dos Reis
On Wed, Sep 22, 2010 at 4:27 PM, Anton Vodonosov  wrote:

> 2.a) Add CL_INT_BITS and CL_LONG_BITS declaration (similar to CL_FIXNUM_BITS)
> 2.b) The declaration ECL_LONG_LONG_BITS=no geneted by default doesn't work 
> (the
>     relevant build error log is attached). Probably it was meant to have _T 
> instead of _BITS
>     (by analogy with other settings in this section). I defined both 
> ECL_LONG_LONG_T and
>     ECL_LONG_LONG_BITS (my environment has the long long type, therefore I 
> specified concrete values here).
> 2.c) It looks like the default declarations for ECL_INT16_T, ECL_INT32_T must 
> use int16_1, int32_t, but not uint16_t, uint32_t.

when we are cross-compiling ECL, most of this information is available
in most cases
in the target standard C headers.  ECL should not require manual supply of those
quantities.  I understand that not all platforms have them, but they
are the minority
and ECL should not optimize for them and it is only for them that ECL
should require
manual edition.  The cross compile process will be smoother.

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] libdir: *nix vs. Windows

2010-09-30 Thread Gabriel Dos Reis
On Thu, Sep 30, 2010 at 11:03 AM, Samium Gromoff
<_deepf...@feelingofgreen.ru> wrote:
> On Thu, 30 Sep 2010 19:08:48 +0400, Samium Gromoff 
> <_deepf...@feelingofgreen.ru> wrote:
>> However, @libdir@ is @prefix@/lib, which somehow works on Linux, and
>> breaks on MinGW.
>
> Ok, so "*mingw" have INSTALL_TARGET=flatinstall, which mashes bindir,
> libdir, includedir and ecldir together into $(prefix),
> /but this fact only surfaces during installation/!
>
> Which obviously breaks for code built with default *dir's.
>
> The preconditions for flatinstallation are set into motion within
> aclocal.m4.  Now, there is no way to enforce the above equality
> constraint between these variables in aclocal.m4, and so /it seems/ we
> should enforce it somewhere down below the substitution chain, upon
> detection of the impending flatinstall...

Or compute the right value of libdir (called ecl_libdir?) at configuration
time, so that everybody sees the same value.

-- Gaby

--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed: autoconf with spaces in names

2010-10-03 Thread Gabriel Dos Reis
On Sun, Oct 3, 2010 at 3:16 PM, Juan Jose Garcia-Ripoll
 wrote:
> It seems that "configure" does not work when one of the directories contains
> a space in the name. Is this a known limitation?
> Juanjo

Hmm, I don't understand what you mean...
But, I usually invoke the configure script with a relative path
to avoid troubles.
By the way, ECL's configure would refuse to configure
outside the source directory, so it was already "not working" :-)

-- Gaby

--
Virtualization is moving to the mainstream and overtaking non-virtualized
environment for deploying applications. Does it make network security 
easier or more difficult to achieve? Read this whitepaper to separate the 
two and get a better understanding.
http://p.sf.net/sfu/hp-phase2-d2d
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] RANLIB, AR, build paths when cross-compiling

2010-10-04 Thread Gabriel Dos Reis

Hi Juanjo,

Attached is a patch I had needed (and that has been sitting on my hard-drive
for a while now.)  It addresses some pesky issues related to
cross-compiling ECL. 

1. ECL hard-codes the name of the program `ranlib'.  That should not be.
   Rather, like the compiler,the name should be detected at
   configuration time.  The patch adds a special variable *RANLIB* for
   just that.  Note that the detection at configuration time is
   important because during cross compilation, the name of the program
   may be prefixed by the host triplet, e.g. i686-pc-mingw32-ranlib.
   This is what the Autoconf AC_PROG_RANLIB macro is for.

2. Similarly, ECL hard-codes the name of the `ar' program.  That is no good.
   The patch introduces a special variable *AR* for that purpose.
   `ar' is looked for at configuration time as a tool, hence AC_CHECK_TOOL.

3. Build path.
   When ECL generates C codes, it uses SI::COERCE-TO-FILENAME to
   construct an absolute path to the variously generated external files.
   That function generates host native paths.  That is OK for a native
   build.  But, it is not OK for a cross build.  For example, if you are
   using Wine on Unix/Linux to cross compile ECL and use the default
   drive mapping, the build system's filesystem / is mapped to the Z:/
   drive; so, you will get absolute paths starting with Z:, that is no
   good for tools working on the build system.  Rather, ECL needs to
   generate paths that are grok-able by the build system and its tool.
   The proposed patch introduces BRIEF-NAMESTRING which is
   ENOUGH-NAMESTRING around SI::COERCE-TO-FILENAME to get rid of the 
   thr drive letter where unnecessary.


There are other issues related to cross-compiling ECL, but they are
orthogonal to this.


-- Gaby


Index: src/configure.in
===
RCS file: /cvsroot/ecls/ecl/src/configure.in,v
retrieving revision 1.241
diff -p -r1.241 configure.in
*** src/configure.in	3 Oct 2010 20:35:02 -	1.241
--- src/configure.in	4 Oct 2010 19:19:07 -
*** AC_PROG_RANLIB# sets variable RA
*** 321,326 
--- 321,328 
  AC_PROG_INSTALL   # sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
  AC_PROG_LN_S  # sets variable LN_S
  AC_PROG_MAKE_SET  # set $(MAKE) if needed
+ AC_PROG_RANLIB# set variable RANLIB
+ AC_CHECK_TOOL([AR],[ar]) # set variable AR to appropriate `ar' program
  
  dnl ---
  dnl Checks which do not come with autoconf (must be after AC_PROG_CC)
Index: src/cmp/cmpdefs.lsp
===
RCS file: /cvsroot/ecls/ecl/src/cmp/cmpdefs.lsp,v
retrieving revision 1.97
diff -p -r1.97 cmpdefs.lsp
*** src/cmp/cmpdefs.lsp	3 Jun 2010 18:42:47 -	1.97
--- src/cmp/cmpdefs.lsp	4 Oct 2010 19:19:07 -
*** coprocessor).")
*** 29,34 
--- 29,40 
  (defvar *ld* "@ECL_CC@"
  "This variable controls the linker which is used by ECL.")
  
+ (defvar *ranlib* "@RANLIB@"
+   "Name of the `ranlib' program on the hosting platform.")
+ 
+ (defvar *ar* "@AR@"
+   "Name of the `AR' program on the hosting platform.")
+ 
  (defvar *cc-flags* "@CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@")
  
  (defvar *cc-optimize* #-msvc "-O2"
Index: src/cmp/cmpmain.lsp
===
RCS file: /cvsroot/ecls/ecl/src/cmp/cmpmain.lsp,v
retrieving revision 1.186
diff -p -r1.186 cmpmain.lsp
*** src/cmp/cmpmain.lsp	23 Jul 2010 22:01:09 -	1.186
--- src/cmp/cmpmain.lsp	4 Oct 2010 19:19:07 -
*** the environment variable TMPDIR to a dif
*** 123,129 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 123,129 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 154,160 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 154,160 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 168,175 
(let ((lib-file (compile-file-pathname o-pathname :type :lib)))
  (safe-system
   (format nil
! 	 "gcc -shared -o ~S -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~...@?"
! 	 (si::coerce-to-filename o-pathname)
  	 (fix-for-mingw (ecl-library-directory))
  	 options
   *ld-rpath*
--- 168,176 
(let ((lib-file (compile-file-pathname o-pathname :type :lib)))
  (safe-system
   (forma

[Ecls-list] Typo in src/Makefile.in breaks installation

2010-10-04 Thread Gabriel Dos Reis

Juanjo,

this patchlet fixes a typo in src/Makefile.in that breaks "make install".

-- Gaby

Index: src/configure.in
===
RCS file: /cvsroot/ecls/ecl/src/configure.in,v
retrieving revision 1.241
diff -p -r1.241 configure.in
*** src/configure.in	3 Oct 2010 20:35:02 -	1.241
--- src/configure.in	4 Oct 2010 19:19:07 -
*** AC_PROG_RANLIB# sets variable RA
*** 321,326 
--- 321,328 
  AC_PROG_INSTALL   # sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
  AC_PROG_LN_S  # sets variable LN_S
  AC_PROG_MAKE_SET  # set $(MAKE) if needed
+ AC_PROG_RANLIB# set variable RANLIB
+ AC_CHECK_TOOL([AR],[ar]) # set variable AR to appropriate `ar' program
  
  dnl ---
  dnl Checks which do not come with autoconf (must be after AC_PROG_CC)
Index: src/cmp/cmpdefs.lsp
===
RCS file: /cvsroot/ecls/ecl/src/cmp/cmpdefs.lsp,v
retrieving revision 1.97
diff -p -r1.97 cmpdefs.lsp
*** src/cmp/cmpdefs.lsp	3 Jun 2010 18:42:47 -	1.97
--- src/cmp/cmpdefs.lsp	4 Oct 2010 19:19:07 -
*** coprocessor).")
*** 29,34 
--- 29,40 
  (defvar *ld* "@ECL_CC@"
  "This variable controls the linker which is used by ECL.")
  
+ (defvar *ranlib* "@RANLIB@"
+   "Name of the `ranlib' program on the hosting platform.")
+ 
+ (defvar *ar* "@AR@"
+   "Name of the `AR' program on the hosting platform.")
+ 
  (defvar *cc-flags* "@CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@")
  
  (defvar *cc-optimize* #-msvc "-O2"
Index: src/cmp/cmpmain.lsp
===
RCS file: /cvsroot/ecls/ecl/src/cmp/cmpmain.lsp,v
retrieving revision 1.186
diff -p -r1.186 cmpmain.lsp
*** src/cmp/cmpmain.lsp	23 Jul 2010 22:01:09 -	1.186
--- src/cmp/cmpmain.lsp	4 Oct 2010 19:19:07 -
*** the environment variable TMPDIR to a dif
*** 123,129 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 123,129 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 154,160 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 154,160 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 168,175 
(let ((lib-file (compile-file-pathname o-pathname :type :lib)))
  (safe-system
   (format nil
! 	 "gcc -shared -o ~S -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~...@?"
! 	 (si::coerce-to-filename o-pathname)
  	 (fix-for-mingw (ecl-library-directory))
  	 options
   *ld-rpath*
--- 168,176 
(let ((lib-file (compile-file-pathname o-pathname :type :lib)))
  (safe-system
   (format nil
! 	 "~S -shared -o ~S -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~...@?"
! 	 *cc*
! 	 (brief-namestring o-pathname)
  	 (fix-for-mingw (ecl-library-directory))
  	 options
   *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 198,204 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 199,205 
 (format nil
  	   *ld-format*
  	   *ld*
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** the environment variable TMPDIR to a dif
*** 212,218 
(safe-system
 (format nil
  	   "gcc -shared -o ~S -Wl,--export-all-symbols -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~A"
! 	   (si::coerce-to-filename o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
--- 213,219 
(safe-system
 (format nil
  	   "gcc -shared -o ~S -Wl,--export-all-symbols -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~A"
! 	   (brief-namestring o-pathname)
  	   (fix-for-mingw (ecl-library-directory))
  	   options
 *ld-rpath*
*** or a loadable module."
*** 326,338 
"Given a file name, return the compiler command line argument to link this file in."
(case kind
  ((:object :c)
!  (si::coerce-to-filename pathname))
  ((:fasl :fas)
   nil)
  ((:static-library :lib)
!  (si::coerce-to-filename pathname))
  ((:shared-library :dll)
!  (si::coerce-to-filename pathname))
  ((:program)
   nil)
  (otherwise
--- 327,339 
 

Re: [Ecls-list] Typo in src/Makefile.in breaks installation

2010-10-04 Thread Gabriel Dos Reis
Gabriel Dos Reis  writes:

| Juanjo,
| 
| this patchlet fixes a typo in src/Makefile.in that breaks "make install".

Wrong patch :-(

Here is the right patch.

-- Gaby

Index: src/Makefile.in
===
RCS file: /cvsroot/ecls/ecl/src/Makefile.in,v
retrieving revision 1.107
diff -p -r1.107 Makefile.in
*** src/Makefile.in	3 Oct 2010 21:37:14 -	1.107
--- src/Makefile.in	4 Oct 2010 21:25:20 -
*** install:
*** 172,178 
  	$(LN_S) @SONAME3@ @SONAME@ ) \
  	fi
  	$(INSTALL_PROGRAM) c/dpp$(EXE) $(DESTDIR)$(ecldir)
! 	$(INSTALL_PROGRAM) c/ecl_min(EXE) $(DESTDIR)$(ecldir)
  	for i in `cat modules`; do \
  	  case $$i in \
  	*.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \
--- 172,178 
  	$(LN_S) @SONAME3@ @SONAME@ ) \
  	fi
  	$(INSTALL_PROGRAM) c/dpp$(EXE) $(DESTDIR)$(ecldir)
! 	$(INSTALL_PROGRAM) ecl_min$(EXE) $(DESTDIR)$(ecldir)
  	for i in `cat modules`; do \
  	  case $$i in \
  	*.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \
--
Virtualization is moving to the mainstream and overtaking non-virtualized
environment for deploying applications. Does it make network security 
easier or more difficult to achieve? Read this whitepaper to separate the 
two and get a better understanding.
http://p.sf.net/sfu/hp-phase2-d2d___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] RANLIB, AR, build paths when cross-compiling

2010-10-05 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Mon, Oct 4, 2010 at 9:39 PM, Gabriel Dos Reis  wrote:
| 
| Attached is a patch I had needed (and that has been sitting on my
| hard-drive
| for a while now.)  It addresses some pesky issues related to
| cross-compiling ECL.
| 
| 
| Hi Gabriel, thanks a lot for the patch. It looks good and I like the idea of
| "brief-namestring". Hopefully this will help making cross-compilation easier.

Hi Juanjo,

I figured the patch needed a tightening.  The C compiler needs to be told
to consider the current directory as part of the include search paths --
because we are now resolving the path starting from the current directory.
Fixed with the attached patch.

(Tested with an OpenAxiom/ECL build.)

-- Gaby

Index: src/cmp/cmpdefs.lsp
===
RCS file: /cvsroot/ecls/ecl/src/cmp/cmpdefs.lsp,v
retrieving revision 1.98
diff -p -r1.98 cmpdefs.lsp
*** src/cmp/cmpdefs.lsp	4 Oct 2010 19:50:17 -	1.98
--- src/cmp/cmpdefs.lsp	6 Oct 2010 03:45:26 -
*** coprocessor).")
*** 43,50 
  (defvar *ld-format* #-msvc "~A -o ~S -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~A"
  #+msvc "~A -Fe~S~* ~{~S ~} ~...@[~s~]~{ '~A'~} ~A")
  
! (defvar *cc-format* #-msvc "~A \"-I~A\" ~A ~:[~*~;~A~] -w -c \"~A\" -o \"~A\"~{ '~A'~}"
! #+msvc "~A -I\"~A\" ~A ~:[~*~;~A~] -w -c \"~A\" -Fo\"~A\"~{ '~A'~}")
  
  #-dlopen
  (defvar *ld-flags* "@LDFLAGS@ -lecl @CORE_LIBS@ @FASL_LIBS@ @LIBS@")
--- 43,50 
  (defvar *ld-format* #-msvc "~A -o ~S -L~S ~{~S ~} ~...@[~s~]~{ '~A'~} ~A"
  #+msvc "~A -Fe~S~* ~{~S ~} ~...@[~s~]~{ '~A'~} ~A")
  
! (defvar *cc-format* #-msvc "~A -I. \"-I~A\" ~A ~:[~*~;~A~] -w -c \"~A\" -o \"~A\"~{ '~A'~}"
! #+msvc "~A -I. -I\"~A\" ~A ~:[~*~;~A~] -w -c \"~A\" -Fo\"~A\"~{ '~A'~}")
  
  #-dlopen
  (defvar *ld-flags* "@LDFLAGS@ -lecl @CORE_LIBS@ @FASL_LIBS@ @LIBS@")
--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 8:48 AM, Paul Goins  wrote:
> Hi,
>
> New to the list, so please forgive me if I've missed a thread that
> covers this.
>
> I'm trying to compile ECL 10.4.1 under Windows 7 64-bit.
> Unfortunately, I'm having problems, and the "Windows with
> Mingw/Cygwin" section of the reference guide is totally blank, so I
> thought I should ask here.
>
> (Note: already read some previous comments about 64-bit support.  I'm
> just trying to build a 32-bit ECL via 32-bit MinGW, so don't worry,
> I'm not barking up *that* tree.  However, the OS *is* 64-bit.)
>
> 1. I grabbed the CVS version of the Boehm GC.  Built it successfully
> using "./configure && make && make install".  (7.1 failed to compile
> via MSys in this way.)
>
> 2. I tried to ./configure and make ECL.  This did not pan out...
>
>    ./configure --enable-threads=yes
>    # no problem, but did give some warnings:
>    #   configure: Configuring included GMP library:
>    #   configure: WARNING: you should use --build, --host, --target

Add --enable-boehm=system so that ECL picks up the GC library
you just installed.

PS: I have not been able to build ECL on windows 7, so let me know
how it went.

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 12:48 PM, Paul Goins  wrote:
> Hello,
>
> On 10/29/2010 11:43 PM, Gabriel Dos Reis wrote:
>> Add --enable-boehm=system so that ECL picks up the GC library
>> you just installed.
>>
>> PS: I have not been able to build ECL on windows 7, so let me know
>> how it went.
>
> Thanks Gabriel.  Okay, this was rather encouraging.  I can't quite
> compile completely, but I got much further.
>
> This time, the configure line was:
>
>    LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include \
>        ./configure --enable-threads=yes --enable-boehm=system
>
> The LDFLAGS and CPPFLAGS specs were necessary to pick up the GC lib;
> configure failed without them.

yeah.


> Info: resolving _GC_dont_gc by linking to __imp__GC_dont_gc (auto-import)
> Info: resolving _GC_oom_fn by linking to __imp__GC_oom_fn (auto-import)
> Info: resolving _GC_no_dls by linking to __imp__GC_no_dls (auto-import)
> Info: resolving _GC_all_interior_pointers by linking to
> __imp__GC_all_interior_pointers (auto-import)
> Info: resolving _GC_time_limit by linking to __imp__GC_time_limit
> (auto-import)
> Info: resolving _GC_push_other_roots by linking to
> __imp__GC_push_other_roots (auto-import)
> Info: resolving _GC_start_call_back by linking to __imp__GC_start_call_back
> (auto-import)
> Info: resolving _GC_java_finalization by linking to
> __imp__GC_java_finalization (auto-import)
> Info: resolving _GC_print_stats by linking to __imp__GC_print_stats
> (auto-importc:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe:
> warning: auto-importing has been activated without --enable-auto-import
> specified on the command line.
> This should work unless it involves constant data structures referencing
> symbols from auto-imported DLLs.
> libeclmin.a(threads.o): In function `ecl_import_current_thread':
> c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:248:
> undefined reference to `GC_register_my_thread'
> libeclmin.a(threads.o): In function `mp_process_enable':
> c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:408:
> undefined reference to `gc_createthr...@24'
> libeclmin.a(threads.o): In function `ecl_release_current_thread':
> c:/Users/Vultaire/Desktop/pauls_stuff/ecl-10.4.1/src/c/threads.d:280:
> undefined reference to `GC_unregister_my_thread)

It sounds as if tECL is able to pick up the GC library but only a few
symbols are missing.  When you configured, did ECL really report
that it was building a 32-bit program?

-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 2:40 PM, Marko Kocić  wrote:
> Just wanted to ask the same question, but you beat me to it :)
> I'm using mingw64, Win7 64, similar to you.

I have been using mingw64, windows 7 64-bit, and I have not been able
build full ECL.  However, I can build ecl_min.exe, but it crashes when
executed.

>
> I can build gc-7.2-alpha-4 as both 32 and 64 bit, by setting CFLAGS="-mXX" 
> flag.
> The problem is that gmp on windows could be compiled only as -m32. I
> tried gmp-4.3.2 and gmp-5.0.1 and latest mipr and I was able to
> compile them only with -m32.
> (Does anyone knows gmp compatible lib that can be used instead of gmp on 
> win64?)

That is weird.  I am able to build both GC and GMP as 64-bit libraries.
Make sure that you're using the mingw64/GCC version that defaults to 64-bit.
(they distribute two sets of compilers with different default.)

-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 3:20 PM, Juan Jose Garcia-Ripoll
 wrote:

> Regarding more generally Win64 support, I have built ECL with Windos64
> support using Microsoft's compilers. Indeed this is the regular build in
> ECL's test farm whenever it is not off the grid (ecls.sf.net/logs.html). I
> was never able to install mingw64 on that box (Windows Server 2008) so I
> really do not know whether the compiler builds 64 bits executables or not.
> In any case, it is been one month since I looked at the Windows port and as
> I said our test
> Juanjo

I'm reading this as suggesting that the build problem I am having would be
confined to mingw64 port only.

What was your issue with the mingw64 installation? (Did you use the
auto installer?)

-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 3:32 PM, Marko Kocić  wrote:
> On Fri, Oct 29, 2010 at 10:28 PM, Gabriel Dos Reis
>  wrote:
>> On Fri, Oct 29, 2010 at 2:40 PM, Marko Kocić  wrote:
>>> Just wanted to ask the same question, but you beat me to it :)
>>> I'm using mingw64, Win7 64, similar to you.
>>
>> I have been using mingw64, windows 7 64-bit, and I have not been able
>> build full ECL.  However, I can build ecl_min.exe, but it crashes when
>> executed.
>>
>>>
>>> I can build gc-7.2-alpha-4 as both 32 and 64 bit, by setting CFLAGS="-mXX" 
>>> flag.
>>> The problem is that gmp on windows could be compiled only as -m32. I
>>> tried gmp-4.3.2 and gmp-5.0.1 and latest mipr and I was able to
>>> compile them only with -m32.
>>> (Does anyone knows gmp compatible lib that can be used instead of gmp on 
>>> win64?)
>>
>> That is weird.  I am able to build both GC and GMP as 64-bit libraries.
>> Make sure that you're using the mingw64/GCC version that defaults to 64-bit.
>> (they distribute two sets of compilers with different default.)
>
> Which version of GMP you compiled as 64bit, and which MingW
> distribuition you use?

I installed GMP=5.0.1 on August 9, 2010.

Mingw64, I'm using TDM64-1 (May 2010), which defaults to 64-bit.

> Mine defaults to 64, but when building gmp it
> builds only 32 bit version, and fail when I try to set ABI=64 or -m64.
> I cnn't check which mingw64 distribution I was using right now, but
> think it was the one fro tdragon (or something).

Hmm, send me the config.log (privately.)

-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-29 Thread Gabriel Dos Reis
On Fri, Oct 29, 2010 at 3:34 PM, Juan Jose Garcia-Ripoll
 wrote:

> I did not find such a thing. All I found were several mingw64 packages and
> various naming conventions for them, no msys and thus no apparent support
> for Unix-like builds and an overall lack of instructions. It was pretty
> frustrating and I gave up at some point, installing mingw32+msys, which I
> knew how to find.

1. Install msys as usual (yes 32-bit, there is no 64-bit at the
moment, and that won't
   happen anytime soon.)  It works perfectly for both 32-bit and 64-bit.

2. Download and install mingw64 -- use the automated installation (anything else
is a nightmare, at least from my perspective.)

 http://tdm-gcc.tdragon.net/download

There are two versions: (a) one that defaults to 32-bit, but can
also generate code on demand;
 (b) one that defaults to 64-bit, but can generate 32-bit on demand.
I use the latter.

3. You should be good to go.


-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Need help compiling ECL 10.4.1 (32-bit) on Win7 64-bit via mingw32/msys

2010-10-31 Thread Gabriel Dos Reis
On Sat, Oct 30, 2010 at 10:51 PM, Paul Goins  wrote:
> I've looked into things a bit further here.  Perhaps now it's not
> problems with ECL per se, but with compiling the Boehm GC.

Is this GC from CVS as of today?

-- Gaby

--
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL trunk fails to compile

2010-11-06 Thread Gabriel Dos Reis
Hi Juanjo,

ECL trunk (CVS) fails to compile on x86_64 running openSUSE-11.3 (GCC 4.5.0)

;;; Note:
;;;   Invoking external command:
;;;   gcc -I. "-I/home/gdr/src/ecl.cvs/build/" -DECL_API
-I"/home/gdr/src/ecl.cvs/build/c"   -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -Dlinux
-I"/home/gdr/src/ecl.cvs/src/c"  -w -c "lsp/numlib.c" -o
"lsp/numlib.o"
In file included from lsp/numlib.c:4:0:
./lsp/numlib.h:189:1: error: ‘_ecl_static_7_realdata’ undeclared here
(not in a function)
./lsp/numlib.h:189:1: error: ‘_ecl_static_7_imagdata’ undeclared here
(not in a function)
;;;
(SYSTEM "gcc -I. \"-I/home/gdr/src/ecl.cvs/build/\" -DECL_API
-I\"/home/gdr/src/ecl.cvs/build/c\"   -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -Dlinux
-I\"/home/gdr/src/ecl.cvs/src/c\"  -w -c \"lsp/numlib.c\" -o
\"lsp/numlib.o\"") returned non-zero value 1

Available restarts:

1. (CONTINUE) Continues anyway.
2. (ABORT) ABORT

Top level.


-- Gaby

--
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL trunk fails to compile

2010-11-06 Thread Gabriel Dos Reis
On Sat, Nov 6, 2010 at 1:19 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sat, Nov 6, 2010 at 10:31 AM, Gabriel Dos Reis
>  wrote:
>>
>> Hi Juanjo,
>>
>> ECL trunk (CVS) fails to compile on x86_64 running openSUSE-11.3 (GCC
>> 4.5.0)
>
> This has been fixed in CVS today. Sorry for the inconvenience.
> Juanjo

I concur that it is working again.  Thanks!

-- Gaby

--
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] fatal: relocation errors on Solaris x86 and OpenSolaris 64-bit.

2010-11-07 Thread Gabriel Dos Reis
On Sun, Nov 7, 2010 at 2:54 PM, Dr. David Kirkby
 wrote:
> It's a shame it can't be configured, but I understand your reasons.

Not every tiny bit of unportable code should be candidate for
configure.  Some are
best just avoided.

>
>> Juanjo
>>
>
> Unless I am mistaken, this problem is only seen with gcc.

In other forums, you have lamented that C programmers don't write codes
according to the C standard.  Well, computed gotos are not standard C.
I'm surprised that you are advocating to keep them regardless.
They do impose some constraints on generation of position-independent codes.
Even though one might argue that GCC has a regression/bug compared to
previous versions, you should know that the construct itself is non-standard.

-- Gaby

--
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] fatal: relocation errors on Solaris x86 and OpenSolaris 64-bit.

2010-11-08 Thread Gabriel Dos Reis
On Mon, Nov 8, 2010 at 2:45 AM, Dr. David Kirkby
 wrote:

> I assumed the fact the Sun compiler was compiling this without problems,
> that the code was standard C, but I take your word for the fact the bit of
> code is not. I don't actually know precisely the bit of affected code, so I
> was unaware it was not C.

The technique is simple: store `addresses' of labels in a table, and jump
to the entries as appropriate.  The only snag is that `address of label' is
inexistent in standard C.

For more information about the extension in GCC, see:

http://gcc.gnu.org/onlinedocs/gcc-4.5.1/gcc/Labels-as-Values.html#Labels-as-Values


-- Gaby

--
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] temporar files left behding by ECL

2010-11-21 Thread Gabriel Dos Reis

Hi Juanjo,

I reported this issue a couple of months ago, but I don't think anything
has happened.   ECL builds leave behind lot of temporary files in the
temporary directory (this happens both on linux and windows, I've not
built ECL on macs for a while.)
For example, I have

gauss[14:46]% ls /tmp/ecl*
/tmp/eclinit0ErHFR.c/tmp/eclinitiPIvZv.tmp  /tmp/eclinitpHBZJP.o
/tmp/eclinit0ErHFR.o/tmp/eclinitjJjDLM.c/tmp/eclinitpHBZJP.tmp
/tmp/eclinit0ErHFR.tmp  /tmp/eclinitjJjDLM.o/tmp/eclinitr834Sq.c
/tmp/eclinit2oPxW6.c/tmp/eclinitjJjDLM.tmp  /tmp/eclinitr834Sq.o
/tmp/eclinit2oPxW6.o/tmp/eclinitN6gaEo.c/tmp/eclinitr834Sq.tmp
/tmp/eclinit2oPxW6.tmp  /tmp/eclinitN6gaEo.o/tmp/eclinitRK5S8v.c
/tmp/eclinit6L8yrj.c/tmp/eclinitN6gaEo.tmp  /tmp/eclinitRK5S8v.o
/tmp/eclinit6L8yrj.o/tmp/eclinitN7xdrO.c/tmp/eclinitRK5S8v.tmp
/tmp/eclinit6L8yrj.tmp  /tmp/eclinitN7xdrO.o/tmp/eclinitsounff.c
/tmp/eclinitBOw6Xe.c/tmp/eclinitN7xdrO.tmp  /tmp/eclinitsounff.o
/tmp/eclinitBOw6Xe.o/tmp/eclinitNHFpsi.c/tmp/eclinitsounff.tmp
/tmp/eclinitBOw6Xe.tmp  /tmp/eclinitNHFpsi.o/tmp/eclinitswZsCw.c
/tmp/eclinitDx3EHX.c/tmp/eclinitNHFpsi.tmp  /tmp/eclinitswZsCw.o
/tmp/eclinitDx3EHX.o/tmp/eclinitOARSQ4.c/tmp/eclinitswZsCw.tmp
/tmp/eclinitDx3EHX.tmp  /tmp/eclinitOARSQ4.o/tmp/eclinitwCso3q.c
/tmp/eclinitfBzVhN.c/tmp/eclinitOARSQ4.tmp  /tmp/eclinitwCso3q.o
/tmp/eclinitfBzVhN.o/tmp/eclinitofpQGU.c/tmp/eclinitwCso3q.tmp
/tmp/eclinitfBzVhN.tmp  /tmp/eclinitofpQGU.o/tmp/eclinitx2YLME.c
/tmp/eclinitiPIvZv.c/tmp/eclinitofpQGU.tmp  /tmp/eclinitx2YLME.o
/tmp/eclinitiPIvZv.o/tmp/eclinitpHBZJP.c/tmp/eclinitx2YLME.tmp


-- Gaby

--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] fatal: relocation errors on Solaris x86 and OpenSolaris 64-bit.

2010-12-22 Thread Gabriel Dos Reis
On Wed, Dec 22, 2010 at 5:50 AM, Juan Jose Garcia-Ripoll
 wrote:
> On Wed, Dec 22, 2010 at 2:48 AM, David Kirkby 
> wrote:
>>
>> Removing the compiler options
>>  -G -Bdynamic
>> and replacing with
>>  -shared -Wl,-soname,libcliquer.so
>> solved another text relocation issue in Sage
>> http://trac.sagemath.org/sage_trac/ticket/9871
>
> Well, it is the same problem here. I simply assumed that gcc was properly
> interpreting the Solaris flags for shared library building, but it dit not:
> it passed those flags to the linker, but did not realize that a shared
> library was being built

I think -Wl,xxx is documented as passing flags to the linker.  That
really means that.
If in addition one wants the front-end and middle end to understand
something, one
has to give appropriate flags to them.

--
Forrester recently released a report on the Return on Investment (ROI) of
Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even
within 7 months.  Over 3 million businesses have gone Google with Google Apps:
an online email calendar, and document program that's accessible from your 
browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] *default-pathname-defaults* and compilation

2010-12-24 Thread Gabriel Dos Reis
On Fri, Dec 24, 2010 at 6:35 AM, Juan Jose Garcia-Ripoll
 wrote:
> I have fixed this by wrapping c:safe-run-program in a form that changes the
> process current directory to the one dictated by *default-pathname-defaults*
> I am not yet sure that this is the right solution.
>
> The problems you were experiencing were due to a contributed patch that
> shortens filenames: instead of using the full name, just relative to
> *default-pathname-defaults*. This was done to reduce the size of the command
> line. I do not know whether that patch was submitted because the user faced
> a system error with very large programs, but I suspect so.

That is correct.  And also because, when cross-compiling, we want to emit
pathnames short enough for the build environment to recognize.  I had assumed
(and at the time, that seemed to be correct) that EL started the compiler
relative to the current working directory.  Was that assumption incorrect?

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Project status

2010-12-28 Thread Gabriel Dos Reis
On Mon, Dec 27, 2010 at 5:07 PM, Juan Jose Garcia-Ripoll
 wrote:
> Testing and bug fixing proceeds. While I would love to make the release
> before the 31st, I find it is more important getting it right. I say this
> because it is 27th and I still have not managed to reactivate testing of
> Axiom and Maxima.

I can build OpenAxiom with ECL HEAD on a x86_64 running openSUSE-11.3.

The testsuite  reveals some type checking problems -- I don't know yet whether
it is an OpenAxiom bug or an issue with ECL.  I'll report on that later.

> * Right now all Unix platforms build except for one Solaris box which I am
> unable to debug (heisenbug, disappears when I use the debugger)
> * Mingw32 also builds on my virtualbox (XP SP3).

I don't have my Windows box handy, but I expect to do so by the end of the
day.  I don't promise to test ECL with OpenAxiom on given the time it takes
to build OpenAxiom with ECL (but it would be a good thing to do).

Thanks!

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] small typo fix

2010-12-29 Thread Gabriel Dos Reis

Hi Juanjo,

Attached is the patch for the typo I was talking about earlier.

The way I discovered it was a bit unusual: I forgot that my existing ECL
build tree was 32-bit, but when I reconfigured and relaunched the build
with 64-bit compiler, it took a different path and GCC chocked.

After this correction, ECL builds fine and I reproduce the OpenAxiom
issue you originally raised on the macintel.

-- Gaby

Index: src/c/big.d
===
RCS file: /cvsroot/ecls/ecl/src/c/big.d,v
retrieving revision 1.48
diff -p -r1.48 big.d
*** src/c/big.d	21 Nov 2010 21:05:51 -	1.48
--- src/c/big.d	29 Dec 2010 15:27:02 -
*** _ecl_big_register_normalize(cl_object x)
*** 107,113 
  #if GMP_LIMB_BITS >= FIXNUM_BITS
  static const limbs_per_fixnum = 1;
  #else
! static conts limbs_per_fixnum = (FIXNUM_BITS + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
  #endif
  
  
--- 107,113 
  #if GMP_LIMB_BITS >= FIXNUM_BITS
  static const limbs_per_fixnum = 1;
  #else
! static const limbs_per_fixnum = (FIXNUM_BITS + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
  #endif
  
  
--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] Help needed, really

2011-01-01 Thread Gabriel Dos Reis

Hi,

Happy New Year everybody!


The message below is an ackward way of starting the new year, but
it seems there is no way around it.  So, I'll try to be brief.
I have a hectic schedule ahead of me but I'll try to follow the
discussion, to the extent I can and also depending on whether it leads
to anything that would be useful for building OpenAxiom with ECL.

Matthew Mondor wrote:

| On Thu, 30 Dec 2010 10:42:43 +0100
| Juan Jose Garcia-Ripoll  wrote:
| 
| Sorry that I didn't read the previous discussions, which most probably
| happened on another list (and it's unclear to me why OpenAxiom requires
| that implementation-dependent low-level information; why it cannot use
| an FFI library or standard means such as CL min/max constants such as
| MOST-POSITIVE-FIXNUM, MOST-NEGATIVE-FIXNUM to obtain the information it
| needs); I'll simply suggest ideas about what I know, hoping they
| weren't discussed or dismissed already.  You may cross-post or quote
| from this message as wanted.


Most of the discussion happened in private between Juanjo and me,
starting with his reporting that OpenAxiom could not build with ECL on
macintel 64-bit.   I was able to reproduce the problem and explained to
him what was happening.  I'm going to summarize the explanation, and 
also give a brief explanation of how and why *FEATURES* came into the
picture.  Yes, Juanjo suggested that I look at integer sizes.  I'll
also address that point, as I did in private when he made the
suggestion.  Then, I'll conclude.  There is a potential for fruitful
technical discussion and an opportunity for ECL to make itself more
useful, but after having tried several times and having been called many
things, I don't see that happening soon, so I'll just put the issue to
rest on the platforms that are affected.  This is a fresh new year and
I'm not planning on starting it the way I ended the last one :-)

Juanjo made a good effort at summarizing the discussion.  But, I do not
feel that his summary adequately captures the problem and what I have
been suggesting. 

* Background

OpenAxiom needs a Lisp system that it can extend with its own native
libraries (e.g. C++ libraries.)  Because of this extension requirement,
OpenAxiom has to get some `binary compatibility' information from the
Lisp system in order to construct adequate compiler and linker flags for
its own (e.g. OpenAxiom's) libraries that it uses to extend the base
Lisp.  You may think of it as the ABI, but it is not the full ABI.
Usually, this not much of a problem for systems that support only on
kind of ABI interface.  However, it is an issue on platforms that
provide "compatibility" modes, e.g. Windows 64-bit making it possible to
compile a program as a 32-bit binary or a 64-bit binary, or macintel
offering 32-bit binary or 64-binary or universal binary formats.  Of
course, those of us who had tried SPARC v8 in 90s are familiar with the
issue -- sometimes called "multilib".

Please note that the `binary information' I'm talking about here is
about a program binary flavor or a library flavor, NOT whether a C
integer type has size 32-bit or 64-bit.  For example, the C `long' integer
type is 32-bit wide on many ilp32 systems and llp64 systems, but 64-bit
on lp64 unix systems.  Similarly the C `long long' integer type is
64-bit wide on almost all systems.  So the suggestion of looking C
integer types is a non-solution, despite being frequently suggested.
The closest that could give some information is the width of `void*',
but, again, that does not give the `binary information' in question for
a value 32-bit or 64-bit does say whether libecl is only 32-bit or
64-bit or universal on macintels for example (where, I as said earlier
Juanjo first experienced the problem with OpenAxiom.)


* The problem

As stated above, OpenAxiom needs an indication about the binary flavor
of the Lisp system.  From experiments, I noticed that the five systems
supported by OpenAxiom (SBCL, ECL, CLISP, GCL, Clozure CL) give some
hints on their *FEATURES* -- yes, including ECL (but more on this below)!

As DS also pointed out, x86-64, etc., are common tokens to refer to 
a class of binary flavor.  So, OpenAxiom was looking for that and
decides (albeit imperfectly at times) whether to build 32-bit library or
64-bit library.  What happens on macintel 64-bit with ECL is that ECL
puts out I686 instead there -- even when it is clearly a 64-bit binary
program.  OpenAxiom then proceeded to build a 32bit library and tried to
link it with ECL, and patatra!
I explained that to Juanjo and suggested that ECL puts a more correct
token on *FEATURES*.   After that, we had had very long discussions.

* Summary

OpenAxiom is not insisting on the token appearing on ECL's *FEATURES* --
it just happens that it seems to be a common place where many free Lisp
systems put that kind of information.  As long as ECL provides a simple
and reliable way to retrieve that information, I'm perfectly willing to
put up with one more of its eccentri

Re: [Ecls-list] Help needed, really

2011-01-01 Thread Gabriel Dos Reis
On Sat, Jan 1, 2011 at 2:23 PM, DS  wrote:
>
> On 1 Jan 2011, at 20:13, Gabriel Dos Reis wrote:
>
>> Anyway, I do no believe that the suggestion for ECL to make available
>
>> its binary flavor is equivalent to building and maintaining a database
>
>> of all imaginable ABIs and all combinations of processors.
>
>
>
> I believe Juanjo was referring to the second obvious way to figure out
> system info from C: conditional compilation.  In that case the C code
> would be sort of like

There usually are many ways to implement a specification.  That does not
necessarily mean we have to reject the specification just because, among
the many possible implementations, we have found one that we don't like :-)

> and you have to know the exact symbol used by every supported platform:
> some are lowercase, some are uppercase and have underscores, etc.  Same
> for system version and architecture.  This would be the database Juanjo
> does not want to build and maintain, and I find that understandable.

yes, but is a completely different issue and I don't see how that
would implement
the binary information in question.

The issue is to tell the binary flavour of the ecl program or libecl
library.  This is
the same kind of binary information that a dumb linker would use to reject
a binary file for not being compatible.  Lest this analogy be misconstrued, I am
emphasizing that I am not suggesting that ECL writes its own linker.
I'm just saying
that the binary information is one that comes from the RESULTING
program or library,
not the size of the C integer types used.

>
> BTW this is the only way to tell one C compiler from another from
> 'inside' C that I know of.

yes, but it is not reliable information and I'm not sure how
that is necessary and why it implements the binary flavour of a
program.

> The first obvious way (for me at least) would be the uname() libc call,
> but it is more limited and as far as I know is not present on some
> platforms, so it would require an autoconf test.

It is true that uname while being a POSIX function may not be present
on all system, and even it is it may not give what we are looking for.

Another way of thinking about this is that you are given binary objects
to link together to construct a program.  You do not have access to the
original program.  But, you can tell the binary flavour by just looking at
the header of each binary object file -- that is in essence what
`file' utility does, and that is a preliminary step of linkers.  DISCLAIMER:
I am not suggesting that ECL reimplements `file' or a linker.
On POSIX systems, ECL can just issue `file
test-program-linked-against-required-c-lib'
and use the output to determine the binary flavour.  On non-posix
systems (not many,
among the platforms where this actually matters.), it can have its own
custom program
to look at the header of the test program.  Certainly using Autoconf's
triplet in an improved
way  may remove the need to have to write custom header reading program.

> Figuring out the ILP32/LP64/whatever bit is a matter of comparing
> sizeof()'s.  It is also easy to figure out endianness.  This is very
> simple and portable C code.

Autoconf now has standard macros to test endianness at configuration time.
At this point, I'm not asking for ILP32/LP64/LLP64 -- though I recognize that
other ECL users want find it useful to have.

> OTOH configure scripts usually do some or all of these tests.  GMP is
> extremely platform-dependant and surely knows about all this.

Yes, definitely.

> Extracting the information from there might be easier and more portable.

Yes, that is what I suggested in private conversion.  In fact, all it takes is
just link a dummy C file against the GMP library and look at the binary
flavour of the program as indicated above.  I suspect that the `file'
utility will handle most cases.  Taking the Ruby interpreter I gave earlier,
I have

ring:~ gdr$ file `which ruby`
/usr/bin/ruby: Mach-O universal binary with 3 architectures
/usr/bin/ruby (for architecture x86_64):Mach-O 64-bit executable x86_64
/usr/bin/ruby (for architecture i386):  Mach-O executable i386
/usr/bin/ruby (for architecture ppc7400):   Mach-O executable ppc


The glaring case where `file' won't work is if compling on Windows
using MS toolchain.
In which case, we know we are dealing with PE/COFF binary file and we know how
to get the information.  For the rest, old UNIX `file' utility does the work.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-01 Thread Gabriel Dos Reis
On Sat, Jan 1, 2011 at 2:41 PM, DS  wrote:
>
> On 1 Jan 2011, at 20:13, Gabriel Dos Reis wrote:
>
>> What happens on macintel 64-bit with ECL is that ECL
>
>> puts out I686 instead there -- even when it is clearly a 64-bit binary
>
>> program.
>
>> ...
>
>> I explained that to Juanjo and suggested that ECL puts a more correct
>
>> token on *FEATURES*.
>
>> ...
>
>> and after reading indication
>
>> that ECL intentionally put misleading information regarding platforms on
>
>> *FEATURES*
>
>
>
> On Mac OS X 10.6.5 (64-bit kernel and everything):
>
> $ uname -m
>
> i386
>
>
>
> Looks like this is actually Mac OS X's fault.

On my system, ECL has the following as *FEATURES*

(:DARWIN :FORMATTER :LONG-LONG :UINT64-T :UINT32-T :UINT16-T
 :RELATIVE-PACKAGE-NAMES :LONG-FLOAT :DFFI :CLOS-STREAMS :CMU-FORMAT :ECL-PDE
 :DLOPEN :CLOS :BOEHM-GC :ANSI-CL :COMMON-LISP :IEEE-FLOATING-POINT
 :PREFIXED-API :FFI :I686 :COMMON :ECL)


even when uname -m reports the same value you indicated.
At any rate, I think `file' is far for reliable than `uname' because
file looks at the specific object file reflecting the binary
personaity, whereas `uname' gives something far for vague -- any
string would still be conforming.

> BTW,
>
> why
>
> is
>
> this
>
> mailing
>
> list
>
> software
>
> inserting
>
> new
>
> lines
>
> all
>
> over
>
> my
>
> messages?

I really do not know :-)

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-01 Thread Gabriel Dos Reis
On Sat, Jan 1, 2011 at 3:51 PM, David Brown  wrote:
> On Sat, Jan 01 2011, Gabriel Dos Reis wrote:
>
>> On POSIX systems, ECL can just issue `file
>> test-program-linked-against-required-c-lib' and use the output to
>> determine the binary flavour.  On non-posix systems (not many, among
>> the platforms where this actually matters.), it can have its own
>> custom program to look at the header of the test program.  Certainly
>> using Autoconf's triplet in an improved way may remove the need to
>> have to write custom header reading program.
>
> I might be missing something, but why is this something at ECL needs to
> do, or even should be doing?  If you need to know the format of the
> executables, why not issue these tests as part of the build system?  I
> don't see why some knowledge needed by one specific application should
> be included in ECL itself.

There is absolutely no need for ECL to be a useful Lisp system for
ECL-based programs that target multilib platforms.  So, I believe you are
missing nothing.  And as I said, I spent more time arguing this  than
I expected.
Consequently, I disabled OpenAxiom build  with ECL where this is a
known problem.
Therefore, there is no more "need" for ECL to do anything on this.
For non-multilib
platforms, ECL-based OpenAxiom build should continue to work (as it
does for other
Lisp systems that find it appropriate to offer better support for
multilib platforms.)

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
 wrote:
> On Sat, Jan 1, 2011 at 10:01 PM, Gabriel Dos Reis
>  wrote:
>>
>> > Extracting the information from there might be easier and more portable.
>>
>> Yes, that is what I suggested in private conversion.  In fact, all it
>> takes is
>> just link a dummy C file against the GMP library and look at the binary
>> flavour of the program as indicated above.  I suspect that the `file'
>> utility will handle most cases.
>
> The hardest point of the conversation, and one that people do not seem to
> get, is that I have no idea how to do this which is written in the paragraph
> and in the discussion before. Really, it makes the discussion very hard that
> people do not realize that I have no idea how to get binary information from
> an executable, or gather the binary mode from GMP just by linking a custom
> program -- to begin with, it would be utterly impossible to link against
> this library before having guessed the appropriate linker/compiler flags!

I have no idea what you mean by "linking against this library before
having guessed the appropriate linker/compiler flags!".  I don't recall
I ever suggest that, and I really don't understand what you mean by that.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
 wrote:

> Now let's put this in context. Should OpenAxiom or any other ECL user want
> to link against a preinstalled GMP, or gnome library, would they demand that
> the library supplies this information? How would they obtain that
> information?

Is ECL just s random library or at the minimum a Lisp system?
I must confess that until now, I thought it as primarily a Lisp
system that provided a library.  I had been using it that way,
and was expecting to find similar usefulness as from other
free Lisp system.  I may very well have been wrong; in which
case, I offer my apologies from having brought this issue based
on wrong expectation of usefulness.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
 wrote:

> * Autoconf triplets. ECL currently exports them as *features* and as the
> output of other functions but they do not work. They are unreliable and OS
> X, where OpenAxiom failed to build because of this, is an example.

Autoconf reports the same triplet to ECL that it reports to OpenAxiom
Yet, OpenAxiom builds successfuly with SBCL and GCL on that same
machine with the same machine.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
 wrote:

> This seems to be the current attitude in the Autoconf'ed world, where
> uniform build environments are assumed and deviations from them are a
> responsibility of the packager or builder.

I don't know what you mean by that.  I don't recall that the GMP library
is supposed to be linked against only in a uniform build environments, nor
do I understand why that has to be assumed (in this specific case.)

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 10:58 AM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 2, 2011 at 10:39 AM, Gabriel Dos Reis
>  wrote:
>>
>> On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
>>  wrote:
>> > On Sat, Jan 1, 2011 at 10:01 PM, Gabriel Dos Reis
>> >  wrote:
>> >>
>> >> > Extracting the information from there might be easier and more
>> >> > portable.
>> >>
>> >> Yes, that is what I suggested in private conversion.  In fact, all it
>> >> takes is
>> >> just link a dummy C file against the GMP library and look at the binary
>> >> flavour of the program as indicated above.  I suspect that the `file'
>> >> utility will handle most cases.
>> >
>> > The hardest point of the conversation, and one that people do not seem
>> > to
>> > get, is that I have no idea how to do this which is written in the
>> > paragraph
>> > and in the discussion before. Really, it makes the discussion very hard
>> > that
>> > people do not realize that I have no idea how to get binary information
>> > from
>> > an executable, or gather the binary mode from GMP just by linking a
>> > custom
>> > program -- to begin with, it would be utterly impossible to link against
>> > this library before having guessed the appropriate linker/compiler
>> > flags!
>>
>> I have no idea what you mean by "linking against this library before
>> having guessed the appropriate linker/compiler flags!".  I don't recall
>> I ever suggest that, and I really don't understand what you mean by that.
>>
>> -- Gaby
>
> The sentence "In fact, all it takes is just link a dummy C file against the
> GMP library and look at the binary flavour of the program as indicated
> above" implies that the dummy file has to be linked against GMP. That in
> turn requires knowing what type of library it is, whether it was built with
> long integers, small pointers, whatever.

No, that was not the suggestion.

Let me explain one more time.

You link this dummy C file against the GMP library just the same way you
currently build and link ECL against the GMP.  The configuration/build
requirements remains exactly the same.  If GMP is system-wide
installed, you just proceed to link the dummy file against the library, using
exactly the same flags as you currently do.  If you have to build GMP, you
build that library first (as you currently do),
 then you link the dummy C file against that with exactly
the same flags as you do today.  Nothing changes there.  You do
not need to infer the binary personality before you link against GMP.
The purpose of that dummy program is solely to give the same binary
personality that the ECL program and library would have.  The only reason
you would do that before proceeding with the remaining ECL build is so
that you can cache that information in the ECL image (e.g. *FEATURES*)
if you so chose to.  You can very well just build the usual ecl program, then
determine the binary personally, and put that in some file that gets installed
with the the ECL system and make it available to users later.

The possibilities are numerous, but we do not need to pick the worse
possible realization or non-realization of the idea and shut the whole
thing down on that basis.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 12:42 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 2, 2011 at 10:54 AM, Gabriel Dos Reis
>  wrote:
>>
>> On Sun, Jan 2, 2011 at 3:21 AM, Juan Jose Garcia-Ripoll
>>  wrote:
>>
>> > This seems to be the current attitude in the Autoconf'ed world, where
>> > uniform build environments are assumed and deviations from them are a
>> > responsibility of the packager or builder.
>>
>> I don't know what you mean by that.  I don't recall that the GMP library
>> is supposed to be linked against only in a uniform build environments, nor
>> do I understand why that has to be assumed (in this specific case.)
>
> What I mean is that right now I am using prepackaged software built with
> standard compiler flags.

None of what I suggest should change that.

> Developers provide the basic software and port
> maintainers keep track of how the build/compile/link flags of their platform
> evolve and pass those to their libraries, compilers, editors, etc, using
> standard Autoconf techniques. That provides a "uniform" environment in which
> the developer of a piece of software is isolated from the complexities of
> the platforms in which it is delivered, as far as standard features (POSIX,
> C, math, etc) are concerned, of course.

Of course, that is one of the reasons why I believe it is ECL's job
to isolate the binary personally complexity from its users -- like other
Lisp systems do -- so that N users don't have to invent N buggy ways
of getting information already contained in ECL and that ECL should provide.

> It also may safely expect that all
> software is properly installed and binary compatible.

A further complexity here is that ECL is a Lisp compiler that
targets the C language -- variously implememted by various
C compilers with several ABI and whatnots.  The implication is that
if ECL finds it great to profit from the  isolation provided
by the various packages it is using, it should also isolate its users from
the low-level complexities brought up by its design choices.

> That is how I expected ECL to be used and so far I have not received any
> feedback that this mode of use makes it totally useless and impossible to
> integrate in reasonable software.

You can take what I've reported so far as a feedback, or you can also
 dismiss it and maintain the invariant that  you have not received any feedback.

> Where particular needs had to be met, the
> configuration mechanism is flexible enough that developers may provide
> nonstandard build and link options *in their private copies*, and be
> consistent then with their own software.

So, is it your official recommendation to maintain private own copy of ECL?

I'm not claiming it is a wrong suggestion, I just wanted to make sure that
I am not reading too much into your suggestion and I'm not putting words
in your mouth.  Please confirm.

> We should put also things in perspective. What do other lisps really
> provide? Lisps around are not that smart and might fool you.

That may very well be the case.  But, they have not done that yet, and
if I concretely ran into that issue and can reproduce it, be sure I would
report it, just like I reported to ECL.


> If I take my
> copy of SBCL the *features* it supplies are just names of assembler
> backends. From base-target-features.lisp-expr
>  ;; machine architecture features:
>  ;;   :x86      any Intel 386 or better, or compatibles like the AMD K6 or
> K7
>  ;;   :x86-64      any x86-64 CPU running in 64-bit mode
>  ;;   :alpha;      DEC/Compaq Alpha CPU
>  ;;   :sparc      any Sun UltraSPARC (possibly also non-Ultras -- currently
> untested)
>  ;;   :ppc      any PowerPC CPU
>  ;;   :hppa      any PA-RISC CPU
>  ;;   :mips      any MIPS CPU (in little-endian mode with :little-endian)
> Note how this is incomplete.

It may be incomplete, but so far it suffices for what the kind of information
I have been asking from ECL.

> You can not deduce from here how C software has
> to be built and linked to be properly loaded and used by SBCL.

Please note that I have never asked ECL to give me an information so that
I "can deduce how C software has to be built and linked to be properly
loaded and used by SBCL".

> This is
> ultimately confirmed by looking at the features of the Solaris/Sparc copy
> that is installed in Sage's buildnet (v 1.0.17). It does not offer really
> useful hints about what ABI it uses
> (:ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS
>  :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :SPARC :UNIX
>  :ELF :SUNOS :LINKAGE-TABLE :STACK-ALLOCATABLE-CLOSURES :OS-PROVIDES-DLOPEN
>  :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC :OS-PROVIDES-BLKSIZE-T
>  :OS-PROVIDES-SU

Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:27 PM, David Brown  wrote:
> On Sun, Jan 02 2011, Gabriel Dos Reis wrote:
>
>> On Sun, Jan 2, 2011 at 12:42 PM, Juan Jose Garcia-Ripoll
>
>> Of course, the number of combinations will be always limited, in practice.
>> I never asked for an unlimited combinations.
>
> It seems to me that you have.

That is a mistaken impression.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 3:27 PM, David Brown  wrote:

> Most Lisp compilers take significant amounts of work to make them build
> on a different configuration.  ECL often just works.  Asking it to try
> and deduce a bunch of information about that configuration would make it
> much less portable than it is.

Bunch of information already contained in the "just working ECL"
That is the part that is being consistently missed in this discussion.

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 4:04 PM, David Brown  wrote:
> On Sun, Jan 02 2011, Gabriel Dos Reis wrote:
>
>> On Sun, Jan 2, 2011 at 3:27 PM, David Brown  wrote:
>>
>>> Most Lisp compilers take significant amounts of work to make them build
>>> on a different configuration.  ECL often just works.  Asking it to try
>>> and deduce a bunch of information about that configuration would make it
>>> much less portable than it is.
>>
>> Bunch of information already contained in the "just working ECL"
>> That is the part that is being consistently missed in this discussion.
>
>  $ ./configure
>  $ make
>  $ make install
>
> That's what I mean by "just works".

Oh, I did not realize that your definition of "just works" is the
successful completion of "make install".  In that case, I have
nothing else to add since we obviously have so differing
notions of "works" that there is no possible reconciliation in this
discussion.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 4:06 PM, David Brown  wrote:

> Then, what exactly, are you asking for?  There are an unbounded number
> of combinations that ECL can support,

"can support" is very different from "actually support".  For example, using
your criteria, there is an unbounded set of standard C conforming compilers
on which ECL cannot possibly work -- because the the ECL's C source code
contains lots of undefined behaviour.

However, we are all happy because for the limited set of platforms that
ECL *actually* runs, we can expect most C compilers to be blindsighted
and generate codes that *appear* to work -- even if the source code
is buggy.


> since it can easily support new
> platforms without even changing the source code.  What information may
> be necessary for a complex C/C++ based application to successfully link
> against it can't really be determined ahead of time.

Only because you are insisting on maligning the topic of the discussion.

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 4:55 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 2, 2011 at 11:25 PM, Gabriel Dos Reis
>  wrote:
>>
>> However, we are all happy because for the limited set of platforms that
>> ECL *actually* runs, we can expect most C compilers to be blindsighted
>> and generate codes that *appear* to work -- even if the source code
>> is buggy.
>
> Should we start a flame war now on a different topic?

Only if you believe that pointing that ECL is reling  on undefned
behaviour at various places, is starting a flame war.  For example,
do you believe that the way ECL detects in which direction the C stack
grows is actual C code with defined behaviour?  It certainly isn't.

I was making a point to someone claiming that "ECL just works."
You don't have to feel bad about it or feel that it is a flame war.
It was meant to.  It was simply pointing out a basic fact to someone
making arguments in the abstract.

> Ah, great.

for what?

-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-02 Thread Gabriel Dos Reis
On Sun, Jan 2, 2011 at 4:53 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 2, 2011 at 9:41 PM, Gabriel Dos Reis
>  wrote:
>>
>> Because of ECL's design decision to target the C programming language,
>> and the C programming language has lots ot parameters left to the
>> implementation, it is certainly ECL's responsability to document choices
>> that affect inter-operation with other C library -- at least if ECL claims
>> to be embeddable.  It has to document enough of the characteristics
>> so that a knowledgeable person can construct a compatible library.
>
> First this paragraph, because it summarizes the spirit of this discussion. I
> have marked in bold what is relevant.
> 1) Parameters left to the implementation. ECL does not take any choice
> itself. The person who configures ECL does, by choosing to pass any
> CFLAGS/LDFLAGS, or by using the default configuration parameters.
> 2) Documentation. ECL does not have a way to name the choices done by the
> user right now, because those choices are in the CFLAGS/LDFLAGS.
> 3) Offer enough information to build compatible libraries. Your sentece
> seems to imply that we hide information, and all your emails have had this
> implication. Nothing is hidden, it is provided in the exported CFLAGS,
> either in ECL itself (through dedicated variables, through functions to
> compile and link), or in scripts. We simply do not provide names for those
> choices because, as I have insisted thousands of times, I do not have them.

I certainly do believe ECL is hiding the information.  And we can agree to
disagree on that.  That is OK.

> Now, (and this goes to Samium) I did not reopen this discussion in the
> public to open a flame war. I expected it to be constructive and the
> knowledgeable lot help me understand what I am missing and the things I
> could do to solve this problem. But overall I see the same patterns repeated
> that lead the private discussion to a stall and uneasy feelings, at least on
> my side.

You are complaining about flame war (called me things when it was
no warranted), yet you are doing exactly what you complaining about -- and
what is irritating.  See below.

> * You, Gabriel, insist on the need to provide information to users, but give
> no precise names nor do you explain how I should offer this information.

I first try to convey an idea to you.  I noticed that when I tried to give a
name, the discussion went instantaneously in the wrong direction because
you were focused on the name I gave.  So, I refrain from giving a specific
name so that you don't get sidetracked.  Instead, I have been trying to
convey the general idea to you.  Do you seriously believe we would have gotten
anywhere if I insisted on a particular name and you were consistently
nitpicking on it?

> * Current isolation techniques, such as scripts providing valid
> CFLAGS/LDFLAGS, which are standard for known and supported software (KDE,
> gnome, apache, etc), are disregarded as useless. We have to provide "names"
> that the user can turn back into compiler flags (what level of isolation is
> this for a user?)

The problem as I explained in the private conversation was that the
CFLAGS/LDFLAGS
that ECL provides are useless.

> * Back to the topic of gathering information from binary files. I answer
> back that I do not know how to process that information. I do not even have
> the faintest idea of what is useful for you out of this
> jua...@sage:~$ file bin/ecl
> bin/ecl: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV), dynamically
> linked (uses shared libs), not stripped
> How and what should I isolate? Hardcoded names? Grepping strings? Should I
> grep the output of "file" for a set of known keywords ("ELF", "COFF",
> "SPARC", X86-64, the list of processor names, etc) and turn them into
> *features*?

>From that information, I see key things:
   * 64-bit
   * SPARC V9
   * optionally ELF

That is not all that can be inferred, but it is far better than nothing.

> * I add a couple of sentences about choices that appear in different
> compilers and turn executables incompatible, even if they have the same
> "binary" format. Those choices change the sizes of floating points,
> activate/deactivate the use of __thread local storage, ... the number is
> very large and I would not even know how to keep track of those. But they
> will definitely make your software incompatible with ECL's binary. Again I
> am just misdirecting the conversation, and this remark is disregarded.

I suspect this paragraph illustrates a key difference in our approach.  I am
of the opinion that something is better than nothing and I'm a believer in
refinement based on actual practice.  Your messages seem to indicate that
if you

Re: [Ecls-list] Help needed, really

2011-01-04 Thread Gabriel Dos Reis
On Mon, Jan 3, 2011 at 10:13 AM, Samium Gromoff
<_deepf...@feelingofgreen.ru> wrote:
> I am replying to several mails, by different authors here, sorry for
> that.
>
> On Sat, 01 Jan 2011 13:13:36 -0600, Gabriel Dos Reis  wrote:
>> At the moment, since the discussion is stall and it does not appear that
>> ECL is willing to make itself more useful (at least as far as OpenAxiom
>> is concerned) on these multilib-platforms, and after reading indication
>> that ECL intentionally put misleading information regarding platforms on
>> *FEATURES*, I've disabled attempts to build OpenAxiom with ECL on know
>> problematic platforms.
>
> My impression was that ECL doesn't /add/ information anywhere -- it merely
> /forwards/ whatever is fed to it by autoconf.  It's not intent, merely a
> lack of sophistication.

Yeah, there was an earlier assertion by Juanjo:
# I already mentioned the problem with exporting Autoconf's detection
of processor,
# which on some platforms is flawed (intentionally, btw).


It has been a long day and a short night, and I'm a bit jet lagged.
I don't see this discussion getting anywhere, and I don't see any chances
of progress now when I'm jet lagged than when I was not.  I already
said I was dropping the issue.

My naivete has been to think from the outset, when I reported what was
causing the build failure and made suggestion (that was shut down based on
completely different interpretation of what I meant) that it was just a question
of explaining and if I tried hard enough it should be resolved.  However, what
ensued proved me wrong.  and the discussion over the week has significantly
cut into any appetite I had developed over the last couple of years
in contributing to make ECL a better alternative to other Lisp systems
out there.
I certainly was disposed to help implement missing features if the proposal was
deemed of interest (and of course subject to improvements.)  We never got to
that point, I doubt we ever will.
Reading past messages suggests that most ECL users who expressed themselves
are either against, or don't care, or seem to understand but believe
it is not an ECL
problem.  The choice I am left with to deal with it in a way that would not
unproductively consume more time, and that would not put me in this burlesque
situation.

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Help needed, really

2011-01-04 Thread Gabriel Dos Reis
On Tue, Jan 4, 2011 at 8:17 AM, Samium Gromoff
<_deepf...@feelingofgreen.ru> wrote:
> On Tue, 4 Jan 2011 05:10:55 -0600, Gabriel Dos Reis 
>  wrote:
>> On Mon, Jan 3, 2011 at 10:13 AM, Samium Gromoff 
>> <_deepf...@feelingofgreen.ru> wrote:
>> > My impression was that ECL doesn't /add/ information anywhere -- it merely
>> > /forwards/ whatever is fed to it by autoconf.  It's not intent, merely a
>> > lack of sophistication.
>>
>> Yeah, there was an earlier assertion by Juanjo:
>> # I already mentioned the problem with exporting Autoconf's detection
>> of processor,
>> # which on some platforms is flawed (intentionally, btw).
>
> Now, I hope, you don't read this as Juan's intentional reduction of the
> autoconf's output, don't you?
>
> What Juan says, in your quote, is that /Autoconf/ intentionally produces
> flawed processor identification information.
>
>> It has been a long day and a short night, and I'm a bit jet lagged.
>> I don't see this discussion getting anywhere, and I don't see any chances
>> of progress now when I'm jet lagged than when I was not.  I already
>> said I was dropping the issue.
>
> Now, wait, Juan pulled out some code to solve your problem, you cannot
> just disappear, the onus is upon you to evaluate his proposal! : -)

In private, I did notify Juanjo of my schedule (and I'm mindful that he has a
tight schedule too) a few days ago when he informed me of his own
tight schedule.   But, we spent more time making no
progress than actually doing anything.  My stating that I was dropping this
issue predated the email I sent today.

I just landed in Paris and  see that a preliminary patch has been proposed
when a lot of heat has already spilled into hard feelings on both sides.
Given what it took to get here, and considering that I had no intention to waste
anybody's time, I hope you understand my hesitation in believing (again) that
something really useful might get out of this in reasonable time with
nobody feeling
unduly maligned

>> My naivete has been to think from the outset, when I reported what was
>> causing the build failure and made suggestion (that was shut down based on
>> completely different interpretation of what I meant) that it was just a 
>> question
>> of explaining and if I tried hard enough it should be resolved.  However, 
>> what
>> ensued proved me wrong.  and the discussion over the week has significantly
>> cut into any appetite I had developed over the last couple of years
>> in contributing to make ECL a better alternative to other Lisp systems
>> out there.
>
> Now, it's a hard problem, and you've had phylosophical differences (Juan
> appears to value high portability, whereas you seem to need a high
> degree of completeness).

I think that statement underestimates my appreciation of high portability, and
I am not sure I am advocating a high degree of completeness -- I had stated
several times that I'm not asking for complete ABI specification and that
having tokens like :x86_64 or sparc and 64-bit,etc., was already  a progress.

> I understand that this might not be the best
> moment to discuss this further, in your position, but there is no need
> for hard feelings either, really.
>
>> I certainly was disposed to help implement missing features if the proposal 
>> was
>> deemed of interest (and of course subject to improvements.)  We never got to
>> that point, I doubt we ever will.
>
> Juan has just posted code, so it's not that bad. : -)

I'll look at it tomorrow after I have some rest.

>
>> Reading past messages suggests that most ECL users who expressed themselves
>> are either against, or don't care, or seem to understand but believe
>> it is not an ECL
>> problem.
>
> Thankfully, you don't have to convince the users to implement a
> feature.  : -)


-- Gaby

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] FFI_SYSV and FFI_UNIX64

2011-06-04 Thread Gabriel Dos Reis
ECL fails to build on Windows 7 64-bit using
msys and MinGW64.  The symbols  FFI_SYSV and SYS_UNIX64
appear not be defined when they are referenced in

   src/c/ffi.d:145
   src/c/ffi.d:147


Configure command line was

   ./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32

I'm using separately installed GMP (5.0.2) and Boehm GC (from cvs.)

--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] building open axiom with ECL on Mac OS X

2011-07-19 Thread Gabriel Dos Reis
Nick Walters  writes:

| Hello,
| 
| I am trying to get a working build of Open Axiom on Mac OS X. My requirements
| are such this must be built with ECL as opposed to one of the other Lisp
| compilers. I am building Open Axiom 1.4.1 with the latest ECL (11.1.1). I am
| able to build but when I try to run the open-axiom command, everything but the
| simplest functions are broken:

Hi Nick,

Thanks for doing this.
I am currently on travel attending CICM 2011 so I do not have direct
access to a mac. 

There were some issues with the released ECL-11.1.1 that were
resolved only in the cvs version (which regrettably also identifies
itself as ECL-11.1.1).  I do not know whether this is one of them.

From your tests and the messages

[...]

| (2) -> integrate(x^2, x)
| 
| *  
|    >> System error:
|    * is not a valid type specifier.
| 
| (2) -> x^2
| 
| *  
|    >> System error:
|    * is not a valid type specifier.

it sounds as if ECL is having some difficulties with type specifiers
(OpenAxiom uses function type proclaimations to aid ECL's compiler with
better code generation.)

My experience with ECL is that it tends to lead to frustrating debugging
sessions.  Could you report the backtrace when this error occurs?  Here
is how you would do it: 

  1. start OpenAxiom
  2. Instruct OpenAxiom to BREAK into the ECL debugger by issueing

   )set break break

  3. try to evaluate any of the expressions that are causing troubles
 That should drop you into the ECL debugger in case an error occurs.

  4. enter

   :backtrace

  5.  send the stack trace.


| Has anyone successfully built and run Open Axiom with ECL on the Mac? I am
| using Mac OS X 10.6.8 with the latest Xcode tools. Any help is greatly
| appreciated. Thanks!

Last time I tried was on 04/11/2011 and I did not have any problem.

Thanks,

-- Gaby

--
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] infinite loops in make clean

2011-12-20 Thread Gabriel Dos Reis
I synced my local copy of ECL to match trunk.
Then I issued 'make clean'.  The result is an
infinite loop:


(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4426]: Entering directory `/home/gdr/src/ecl.cvs/build'
for i in lsp cmp clos clx tk ext; do rm -f lib$i.a
$i/?*.{o,eclh,data,c,sdat,h,fas}; done
rm -f help.doc
(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4427]: Entering directory `/home/gdr/src/ecl.cvs/build'
for i in lsp cmp clos clx tk ext; do rm -f lib$i.a
$i/?*.{o,eclh,data,c,sdat,h,fas}; done
rm -f help.doc
(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4428]: Entering directory `/home/gdr/src/ecl.cvs/build'
for i in lsp cmp clos clx tk ext; do rm -f lib$i.a
$i/?*.{o,eclh,data,c,sdat,h,fas}; done
rm -f help.doc
(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4429]: Entering directory `/home/gdr/src/ecl.cvs/build'
for i in lsp cmp clos clx tk ext; do rm -f lib$i.a
$i/?*.{o,eclh,data,c,sdat,h,fas}; done
rm -f help.doc
(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4430]: Entering directory `/home/gdr/src/ecl.cvs/build'
for i in lsp cmp clos clx tk ext; do rm -f lib$i.a
$i/?*.{o,eclh,data,c,sdat,h,fas}; done
rm -f help.doc
(cd tests; make clean)
/bin/sh: line 0: cd: tests: No such file or directory
make[4431]: Entering directory `/home/gdr/src/ecl.cvs/build'


which reacted very violently with another infinite loop
when I pressed Ctrl-C:


^Cmake[4431]: *** [clean_lisp] Interrupt
make[4430]: *** [mostlyclean] Interrupt
make[4429]: *** [mostlyclean] Interrupt
make[4428]: *** [mostlyclean] Interrupt
make[4427]: *** [mostlyclean] Interrupt
make[4426]: *** [mostlyclean] Interrupt
make[4425]: *** [mostlyclean] Interrupt
make[4424]: *** [mostlyclean] Interrupt
make[4423]: *** [mostlyclean] Interrupt
make[4422]: *** [mostlyclean] Interrupt
make[4421]: *** [mostlyclean] Interrupt
make[4420]: *** [mostlyclean] Interrupt
make[4419]: *** [mostlyclean] Interrupt
make[4418]: *** [mostlyclean] Interrupt
make[4417]: *** [mostlyclean] Interrupt
make[4416]: *** [mostlyclean] Interrupt
make[4415]: *** [mostlyclean] Interrupt
make[4414]: *** [mostlyclean] Interrupt
make[4413]: *** [mostlyclean] Interrupt
make[4412]: *** [mostlyclean] Interrupt
make[4411]: *** [mostlyclean] Interrupt
make[4410]: *** [mostlyclean] Interrupt
make[4409]: *** [mostlyclean] Interrupt
make[4408]: *** [mostlyclean] Interrupt
make[4407]: *** [mostlyclean] Interrupt
make[4406]: *** [mostlyclean] Interrupt
make[4405]: *** [mostlyclean] Interrupt
make[4404]: *** [mostlyclean] Interrupt
make[4403]: *** [mostlyclean] Interrupt
make[4402]: *** [mostlyclean] Interrupt
make[4401]: *** [mostlyclean] Interrupt
make[4400]: *** [mostlyclean] Interrupt
make[4399]: *** [mostlyclean] Interrupt
make[4398]: *** [mostlyclean] Interrupt
make[4397]: *** [mostlyclean] Interrupt
make[4396]: *** [mostlyclean] Interrupt
make[4395]: *** [mostlyclean] Interrupt

--
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] regression involving macro expansion, GETHASH, SETF, and HASH-SET

2012-01-01 Thread Gabriel Dos Reis

Hi,

A fresh update of my local copy of ECL CVS version shows a regression
involving macro expansion, GETHASH, SETF and HASH-SET.  In short, after
expansion, the arguments to HASH-SET seems to be switched.

To reproduce this,  issue the following in a fresh ECL session

   (compile-file "ht-test.lisp")
   (load "ht-test")

The file ht-test.lisp is in attachment to this message.  It is distilled
from attempt to build OpenAxiom with ECL.

I get:

   ;;; Loading #P"/home/gdr/build/ecl-x-oa/ht-test.fas"

   Condition of type: SIMPLE-TYPE-ERROR
   In function HASH-SET, the value of the second argument is
 "and"
   which is not of the expected type HASH-TABLE
   Available restarts:

   1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

   Broken at SI:BYTECODES. [Evaluation of: (LOAD "ht-test")]
   >>


-- Gaby

(defparameter |KeyTable| (make-hash-table :test #'equal))

(defmacro |tableValue| (ht k)
  `(gethash ,k ,ht))

(setf (|tableValue| |KeyTable| "and") 'and)
--
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] regression involving macro expansion, GETHASH, SETF, and HASH-SET

2012-01-01 Thread Gabriel Dos Reis
Juan Jose Garcia-Ripoll  writes:

| On Sun, Jan 1, 2012 at 7:34 PM, Gabriel Dos Reis  wrote:
| 
| A fresh update of my local copy of ECL CVS version shows a regression
| involving macro expansion, GETHASH, SETF and HASH-SET.  In short, after
| expansion, the arguments to HASH-SET seems to be switched.
| 
| 
| Thanks for reporting. The problem is not actually related to the hash
| functions. ECL now includes a tiny SETF form optimizer that simplifies some
| expressions, trying to reduce the number of LET bindings that are generated.
| Your macro reordered the list of arguments w.r.t the list produced by the
| get-setf-expansion and this confused the optimizer. I will upload a patch
| tonight.

Thanks for the detective work.

-- Gaby

--
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] regression involving macro expansion, GETHASH, SETF, and HASH-SET

2012-01-15 Thread Gabriel Dos Reis
On Sun, Jan 1, 2012 at 1:14 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 1, 2012 at 7:34 PM, Gabriel Dos Reis  wrote:
>>
>> A fresh update of my local copy of ECL CVS version shows a regression
>> involving macro expansion, GETHASH, SETF and HASH-SET.  In short, after
>> expansion, the arguments to HASH-SET seems to be switched.
>
>
> Thanks for reporting. The problem is not actually related to the hash
> functions. ECL now includes a tiny SETF form optimizer that simplifies some
> expressions, trying to reduce the number of LET bindings that are generated.
> Your macro reordered the list of arguments w.r.t the list produced by the
> get-setf-expansion and this confused the optimizer. I will upload a patch
> tonight.
>
> Juanjo
>

Hi Juanjo,
did you get a chance to commit the patch? It appears I may have missed it.

-- Gaby

--
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] regression involving macro expansion, GETHASH, SETF, and HASH-SET

2012-01-17 Thread Gabriel Dos Reis
On Sun, Jan 15, 2012 at 2:29 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Jan 15, 2012 at 8:46 PM, Gabriel Dos Reis
>  wrote:
>>
>> Hi Juanjo,
>> did you get a chance to commit the patch? It appears I may have missed it.
>
>
> Yes, indeed, it is in git/CVS HEAD. I just checked with tonight's build and
> I also verified that the sources in my laptop match those in Sourceforge.
>

Indeed, it works now.  My local copy of ECL CVS was stale and I failed
to spot the fix.

-- Gaby

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Bug in code detecting stack growth direction

2012-02-03 Thread Gabriel Dos Reis
On Fri, Feb 3, 2012 at 8:23 AM, Juan Jose Garcia-Ripoll
 wrote:
> I just noticed that some cleverly optimizing compilers broke the code I used
> to detect whether the stack grows upwards or downwards. I will upload a
> patch tonight.

Hmm.
The code in question invoked an undefined behaviour.   So, it was
just a disaster waiting to happen. The compilers can't be blamed.

-- Gaby

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Bug in code detecting stack growth direction

2012-02-03 Thread Gabriel Dos Reis
On Fri, Feb 3, 2012 at 10:13 AM, Juan Jose Garcia-Ripoll
 wrote:

> ECL is assuming that local variables are kept in the stack. Is this wrong?

What is undefined behaviour isn't assuming the notion of "stack" -- which the
C standard effectively does not know about.

The crucial point is that it is undefined to compare the address of two distinct
objects for relative position (e.g. before or after) unless they are part of
an array  (or one last the end address.)

> Perhaps, but this is an implicit assumption in all C garbage collectors I
> know and so far no compiler has broken this assumption. It is an undefined
> behavior as per the ANSI C specification, but that is not what broke the
> code ECL used.

That wasn't it (thought it could have.)

> What broke the test is the fact that the functions from the test were
> inlined and thus the local variables ended up in a different order in the
> stack, not the original assumption.

Exactly.  Because the local variables were distinct objects.

> I have made the code non-deterministic
> so most compilers will not inline the calls and hopefully the growth test
> works.

I hope you realize that it is just delaying the breakage point in time.

>
> Finally, though the test is fragile, it is not critical. Stack growth
> direction is only used in two places
>
> 1* In ECL's code for detecting stack overflows. We might do without it, but
> graceful handling of stack overflows based on alternative stacks proved to
> be useless due to the signal-async problem.
>
> 2* In the Boehm-Weiser garbage collector to detect the extent of the stack
> on different threads. As I said, this is a common assumption across C
> implementations of garbage collectors and so far never broken.

This confusese two things: (1) the existence of a stack; (2) the
direction of growth.
The test for (2) is invoking an undefined behaviour.  Therefore, the outcome of
that test does not say anything about the collector's assumption that there is
a stack (1) and a defined direction of growth.

>
> So all in all, the broken test only affected "1" and now it seems to work.
>
> Best,
>
> Juanjo
>
> --
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Bug in code detecting stack growth direction

2012-02-09 Thread Gabriel Dos Reis
On Thu, Feb 9, 2012 at 8:24 PM, Daniel Herring  wrote:
> On Fri, 3 Feb 2012, Juan Jose Garcia-Ripoll wrote:
>
>> I just noticed that some cleverly optimizing compilers broke the code I used 
>> to detect whether the stack grows upwards or downwards. I will upload a 
>> patch tonight.
>
> Wouldn't two calls to alloca() in a single function give a reliable answer
> on pretty much all platforms?
>
> #include 
> #include 
> int main()
> {
>   void *x;
>   void *y;
>   x=alloca(100);
>   y=alloca(100);
>   printf("delta: %d\n", (int)(y-x));

You probably want to cast x and y to intptr_t and compare instead of the
substraction: you can't subtract two pointers that are not related to the same
object.  You also probably want to check for availability of alloca.

>   return 0;
> }
>
>
> The following was another idea; but it looks no better than what you have
> now.
>
> #include 
> #include 
> void * start;
> void * end;
> void recurse(int n, void *y)
> {
>   int x;
>   if(n==0)
>     end=&x;
>   else
>     recurse(n-1, &x);
> }
> int main(int argc, char **argv)
> {
>    int x;
>    int times;
>    start=&x;
>    times=(random()%10)+1;
>    recurse(times, start);
>    printf("delta: %d\n", (int)(end-start));
>    return 0;
> }
>
>
> This link indicates Sparc could violate some common assumptions about
> stack behavior (though it looks to me like he was confusing the register
> window with the stack).
> http://stackoverflow.com/questions/664744/what-is-the-direction-of-stack-growth-in-most-modern-systems
>
> - Daniel
>
> --
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> ___
> Ecls-list mailing list
> Ecls-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ecls-list

--
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL build failure on 64-bit windows 7 using mingw-w64 toolchain

2012-08-19 Thread Gabriel Dos Reis
* fresh check out of CVS trunk
* configure option:  --build=x86_64-w64-mingw64

First failure appeared while compiling c/ffi.d.
Reason: the symbol :WIN64 appears not to be defined anywhere
so that the '@' translation could do something meaningful.  Instead
it replaced it with unknown, which of course gives a compile-time error.

After modifying c/symbols_list.h and c/symbols_list2.h to include
a definition for :WIN64, the build failed again because
the function ecl_make_ulong_long was mistyped as
ecl_make_ulong_Long (note the capital L for the second Long.)
The same typo appears in c/number.d 3 times.
After correcting those, I got an ecl_min.exe.
Unfortunately, it failed to execute properly, apparently for the
same reasons as 2 years ago.

-- Gaby

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL build failure on 64-bit windows 7 using mingw-w64 toolchain

2012-08-19 Thread Gabriel Dos Reis
On Sun, Aug 19, 2012 at 8:37 AM, Juan Jose Garcia-Ripoll
 wrote:
> I am a bit lost with the mingw64 toolchain, with so may different tarballs
> and options. I must admit I have never managed to get it up and running.
> What do I have to do to use it?

Indeed, there are probably too many options around.  Here is what I use:

   * Install traditional msys toolchains, conveniently packaged by the
  mingw-w64 people; one download, one click as explained here:

 http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS

  Note: When you unzip the package into a directory c:/foo, you get
  the msys.bat in the directory c:/foo/msys/bin.  One directory deeper
  than what the wiki says.  You can afterward arrange to have
  the structure c:/msys/bin (which I have) or leave it like that.
  Do not attempt to unpack directly into c:  -- Windows won't let you
  do that anyway.  The rest of the wiki is good.

   * GCC from TDM

http://tdm-gcc.tdragon.net/

  I chose the configuration that generates 64-bit binaries by default.
  It conveniently packages several things that are needed for development.
  Choose a directory of installation, for example c:/mingw64

Once you have installed GCC-TDM, you are good to go.
If you are build your own packages and you want the compiler
to automatically find its headers (e.g. for gmp.h or gc.h),
use the option --prefix=c:/mingw64.  The compiler considers
c:/mingw64/include as a standard include path.  If you use your own
directory you will have to specify it every time to the
package which wants it.  /usr/local (which
would reside under the msys directory, unless you make a
special arrangement) is not considered a standard path.

Before building ECL from trunk, I installed:
   -- GMP 5.0.5 in c:/mingw64
   -- Boehm-Wieser GC from CVS trunk
   (the one that comes with ECL will refuse to build)
also in c:/mingw64

Please don't forget to specify --build=x86_64-w64-mingw32
as configure option if you install the compiler that generates
64-bit by default.


>
> On Sun, Aug 19, 2012 at 11:56 AM, Gabriel Dos Reis
>  wrote:
>>
>> * fresh check out of CVS trunk
>> * configure option:  --build=x86_64-w64-mingw64
>
>
> Is this really enough? Or do I have to also change the value of CC?

that should be enough.  That is all I had to do.  See my
development configuration as detailed above.

-- Gaby

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL build failure on 64-bit windows 7 using mingw-w64 toolchain

2012-08-19 Thread Gabriel Dos Reis
On Sun, Aug 19, 2012 at 1:44 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Aug 19, 2012 at 11:56 AM, Gabriel Dos Reis
>  wrote:
>>
>> After modifying c/symbols_list.h and c/symbols_list2.h to include
>> a definition for :WIN64,
>
>
> I uploaded a fix for this

OK.

>> the build failed again because
>> the function ecl_make_ulong_long was mistyped as
>> ecl_make_ulong_Long (note the capital L for the second Long.)
>> The same typo appears in c/number.d 3 times.
>
>
> This was corrected in git/CVS some weeks ago.

No, it wasn't.  Browse to the source code for number.d


http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/c/number.d?revision=1.102&view=markup

Have a look at lines 308, 326, and 394.

> Please make sure you do not
> suffer from the same repository problems other reported here.
>
> In addition to this, I had to fix the aclocal.m4 code that reports the
> integer sizes: it printed out a long long number without the %lld macro and
> the LL suffix. Once this is done, ecl_min.exe builds, but GMP breaks at some
> point while it is loading the bootstrap code. I will investigate this.

OK.

-- Gaby

>
> Juanjo
>
> --
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL build failure on 64-bit windows 7 using mingw-w64 toolchain

2012-08-19 Thread Gabriel Dos Reis
On Sun, Aug 19, 2012 at 2:27 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Aug 19, 2012 at 9:14 PM, Gabriel Dos Reis
>  wrote:
>>
>> No, it wasn't.  Browse to the source code for number.d
>>
>>
>> http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/c/number.d?revision=1.102&view=markup
>>
>> Have a look at lines 308, 326, and 394.
>
>
> Ok, it seems my emacs script did not find those ones. I uploaded a fix.


Thanks,

-- Gaby

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] ECL build failure on 64-bit windows 7 using mingw-w64 toolchain

2012-08-19 Thread Gabriel Dos Reis
On Sun, Aug 19, 2012 at 3:46 PM, Juan Jose Garcia-Ripoll
 wrote:
> On Sun, Aug 19, 2012 at 11:56 AM, Gabriel Dos Reis
>  wrote:
>>
>> Unfortunately, it failed to execute properly, apparently for the
>> same reasons as 2 years ago.
>
>
> There were not so many things to fix after all:
>
> * the typo you found
> * missing :win64 keyword
> * typo in _ecl_big_set_fixnum()
> * wrong printf() statements in aclocal.m4

I guessed the crash had to do with the LLP ABI flavour
on the 64-bit Windows.  However, I was away from
imagining the root cause of the last two items on the list.

>
> With all these, ECL seems to build fine on mingw32. The configuration step
> is not the one you showed, but
>
> ./src/configure --prefix=... --build=x86_86-w64-mingw32
>
> One needs to download and build separately the following components:
> libatomic_ops (https://github.com/ivmai/libatomic_ops) , boehm-weiser
> garbage collector (https://github.com/ivmai/bdwgc), and gmp 5.0.5 (stable
> release).
>
> None of those libraries, as shipped with ECL, build on 64-bits/mingw.
> Unfortunately I cannot upgrade them because then other ports would be
> broken, and also because the required versions are unstable.

libatomic_ops that ships with ECL builds fine for me.
I am stuck with CVS on windows machine.
[ I do not want msysgit to mess with my gcc setup on my machine. ]

Otherwise, ECL seems now to build.  I have not tested yet with OpenAxiom.

-- Gaby

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


[Ecls-list] ECL performance with respect to OpenAxiom

2012-10-30 Thread Gabriel Dos Reis
Hi Juanjo,

I've reported, on several occasions, in the past that
an ECL-based build of OpenAxiom takes a very long time
(usually over 2 or 4 hours.)   Well, with current CVS
mainline, ECL builds OpenAxiom about 20min on my machine.
It could be argued that it is just a better machine, but on the
same machine SBCL takes approximately the same time.
So, whatever you've done lately, that was great!  (Is it because
of better IO or GC implementation?)  I thought I should
report that impressive improvement :-)

Now, if only debugging with ECL could be just as pleasant
as with SBCL... ;-)

-- Gaby

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Meaningful C variable names

2012-12-07 Thread Gabriel Dos Reis
is there a prettier name than "gazonk"? :-)

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Meaningful C variable names

2012-12-08 Thread Gabriel Dos Reis
On Sat, Dec 8, 2012 at 4:01 AM, Juan Jose Garcia-Ripoll
 wrote:
> On Sat, Dec 8, 2012 at 2:05 AM, Gabriel Dos Reis
>  wrote:
>>
>> is there a prettier name than "gazonk"? :-)
>
>
> And it is so old that I bet it dates back to KCL days :-)

yes, I suspected so -- GCL also uses gazonk especially for temporary
file names too.

-- Gaby

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Announce: A new C++ based implementation of Common Lisp based on the ECL CL code

2013-03-31 Thread Gabriel Dos Reis
> I have given it a try https://github.com/juanjosegarciaripoll/cl-cxx
>
> It is indeed not that hard to define wrappers for C++ functions using
> templates as they seem to properly dispatch among functions with different
> arities. Implicit or explicit conversions are also easy to implement, given
> the proper Common Lisp back-end.

I just quickly glanced over the code.  I noticed that some of the constructs

   
https://github.com/juanjosegarciaripoll/cl-cxx/blob/master/include/cl-cxx/defun.hpp

are C++03 ways of emulating lambda-expressions.  C++11 has better support
for those.

-- Gaby

--
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list


Re: [Ecls-list] Mingw users here?

2013-08-07 Thread Gabriel Dos Reis
On Wed, Aug 7, 2013 at 1:42 AM, Juan Jose Garcia-Ripoll
 wrote:
> I am _very_ slowly transitioning all my data and processes to the new
> Windows computer. Due to the changes in the Windows interface it is much
> slower tan I anticipated and found a few surprises.
>
> One surprise is that GMP does not seem to build at all with the versión of
> mingw32 I installed. Is there anybody else here with the same problem?

Are you referring to Windows 8?

-- Gaby

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
___
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list