help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: JIT compiling


From: Alex Vong
Subject: Re: JIT compiling
Date: Sat, 13 Aug 2016 19:48:26 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Sergei Steshenko <address@hidden> writes:

> ----- Original Message -----
>> From: Oliver Heimlich <address@hidden>
>> To: Sergei Steshenko <address@hidden>; Jordi Gutiérrez Hermoso
>> <address@hidden>; Alex Vong <address@hidden>
>> Cc: Ricardo Wurmus <address@hidden>; "address@hidden"
>> <address@hidden>; Leo Famulari <address@hidden>;
>> "address@hidden" <address@hidden>; Mike Miller
>> <address@hidden>
>> Sent: Friday, August 12, 2016 7:06 PM
>> Subject: Re: JIT compiling
>> 
>> On 12.08.2016 17:08, Sergei Steshenko wrote:
>> 
>>>>  ________________________________
>>>>  From: Jordi Gutiérrez Hermoso <address@hidden>
>>>>  To: Alex Vong <address@hidden> 
>>>>  Cc: Ricardo Wurmus <address@hidden>; address@hidden; Leo 
>> Famulari <address@hidden>; address@hidden; Mike Miller 
>> <address@hidden>
>>>>  Sent: Friday, August 12, 2016 2:45 PM
>>>>  Subject: JIT compiling
>>>> 
>>>> 
>>>>  On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>>>>>  Finally, some unrelated stuff, I hope octave would have a byte code
>>>>>  interpreter soon. I would suggest to write it in rpython, it seems
>>>>>  to be the easiest way to have jit these days.
>>>> 
>>>>  That is a faraway pipe dream. Can you help?
>>>> 
>>>>  - Jordi G. H.
>>>> 
>>>> 
>>> 
>>> 
>>>  Julia ( http://julialang.org/ ) quite developed since it's been 
>> discussed here. They claim to have close to "C" performance and JIT.
>>> 
>> 
>> There is a good language introduction available as a talk from JuliaCon:
>> https://youtu.be/rAxzR7lMGDM
>> 
>> As far as I can see, Julia compiles the code if it can predict the types
>> of the variables. Otherwise, it is slow. This is explained in the first
>> part of the talk.
>> 
>> Best
>> Oliver
>> 
>
>
> If the type can't be predicted, then runtime checks need to be made
> and the object might have to be recreated. E.g. if 12345678 is a
> number, it fits a 32 bit integer, and if it is a string, it will need
> 9 bytes in case of "C" representation.
>
I think in the case of jit, many of the checks can be removed by making
certain assumptions and inserts guards to check those assumptions. If
the assumptions turn out to be false, then the compiled code will be
trashed and available for jitting again.
>
> So the limitation does not look to me like a Julia-specific one.
>
> --Sergei.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]