[Ecls-list] logior/ash and fixnum inlining
Matthew Mondor
mm_lists at pulsar-zone.net
Thu Jul 28 00:26:12 UTC 2011
On Wed, 27 Jul 2011 23:35:52 +0200
Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> wrote:
> On Wed, Jul 27, 2011 at 12:19 AM, Matthew Mondor
> <mm_lists at pulsar-zone.net>wrote:
>
> > And the following works. I assume that ASH calls are not getting
> > inlined in relation to the comment in the code about undefined C
> > compiler behaviour in some circumstances, which would require the
> > inlining code to be more complex to only inline in appropriate
> > circumstances... and using c::shift<< makes it easier in this case.
> >
>
> If possible, please refrain from using c::shift<< It is a remnant from the
> former ASH optimizer. If you need it in your code, define it as your own
> macro wrapping around C-INLINE, but this function will disappear (In general
> anything outside CL, EXT and the SB-SOCKETS and other SB-* packages should
> not be used).
>
> I had to fix something in the compiler and used this chance to add a
> candidate for an optimizer of ASH. Seems to work with your example, please
> report any problems.
Thanks! I updated and started the build, yet I got the following error:
[...]
;;; Warning:
;;; in file DEPENDENT.LISP, position 4360
;;; at (DEFUN AREF-INT8 ...)
;;; ! Unable to coerce lisp object from type ((UNSIGNED-BYTE 8),:UINT8-T)
;;; to C/C++ type ((UNSIGNED-BYTE 8),:UNSIGNED-BYTE)
;;; Emitting code for ASET-INT8.
;;; Emitting code for AREF-CARD16.
Condition of type: SIMPLE-TYPE-ERROR
In function ABS, the value of the only argument is
(8)
which is not of the expected type NUMBER
Available restarts:
1. (ABORT) ABORT
Top level in: #<process TOP-LEVEL>.
>
Also, I noticed that there's a debug printf in main.d:
printf("HOLA\n");
I'll try again later or tomorrow,
--
Matt
More information about the ecl-devel
mailing list