[Ecls-list] long-long

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Thu Jul 1 20:33:29 UTC 2010


Ok, sorry, the previous email was wrong: I was looking at a too old version
of CFFI. In the recent versions the code looks fine

    #+long-long
    (:long-long       :long-long       "long long")
    #+long-long
    (:unsigned-long-long :unsigned-long-long "unsigned long long")

but there is a line at the beginning disabling long-long

(pushnew 'no-long-long *features*)

I will investigate this further.

Juanjo

On Thu, Jul 1, 2010 at 10:31 PM, Juan Jose Garcia-Ripoll <
juanjose.garciaripoll at googlemail.com> wrote:

> Sorry I did not answer this question before. I inspected your configuration
> logs and ecl_long_long_t is defined. Thus :LONG-LONG should be in
> *features*. If :LONG-LONG is in *features* then the compiler must support
> this type and ECL indeed does. However, CFFI might not. Indeed if you look
> at CFFI's sources you will find this:
>
>     #+x86-64 (:long-long :long "long long")
>     #+x86-64 (:unsigned-long-long :unsigned-long "unsigned long long")
>
> which should actually read
>
>     #+:long-long (:long-long :long-long "long long")
>     #+:long-long (:unsigned-long-long :unsigned-long-long "unsigned long
> long")
>
> Juanjo
>
> On Sat, Jun 19, 2010 at 9:55 PM, Seth Burleigh <seth at tewebs.com> wrote:
>
>> I am attempting to use long-long (in iolib, it uses it).
>>
>> heres the code that produces the error:
>> (macroexpand-1 '(CFFI-SYS:%FOREIGN-FUNCALL "lseek64"
>>                                             (:INT 1 :long-long 2
>>                                              :INT 1 :long-long)
>>                                             :CONVENTION
>>                                             :CDECL
>>                                             :LIBRARY
>>                                             :DEFAULT))
>>
>> and the expanded form:
>>
>> (FFI:C-INLINE ((CFFI-SYS:%FOREIGN-SYMBOL-POINTER "lseek64" NIL) 1 2 1)
>>              (:POINTER-VOID :INT :LONG-LONG :INT)
>>              :LONG-LONG
>>              "((long long (*)(int,long long,int,...))(#0))(#1,#2,#3)"
>>              :ONE-LINER
>>              T
>>              :SIDE-EFFECTS
>>              T)
>>
>>
>> I dont know how ecl determines if long-long is supported, but gcc
>> definitely supports long-long and im just getting the error
>>
>> ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=3
>> ;;;
>> ;;; Error:
>> ;;;   * Unknown representation type :LONG-LONG
>>
>>
>> Ive looked in the configure script and have found flags to turn on
>> long-float, uint64_t, but no long-long.
>>
>>
>>
>> ------------------------------------------------------------------------------
>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>> lucky parental unit.  See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> Ecls-list mailing list
>> Ecls-list at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ecls-list
>>
>
>
>
> --
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com
>



-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100701/0483dcbf/attachment.html>


More information about the ecl-devel mailing list