[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Add more supported primitives in libgccjit IR
From: |
Emanuel Berg |
Subject: |
Re: Add more supported primitives in libgccjit IR |
Date: |
Mon, 28 Aug 2023 00:19:25 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Andrea Corallo wrote:
>>> The only trace I have been able to find of either are
>>> functions in C, built-in functions in the Emacs lingo, for
>>> example `+', if you do `describe-function' on that you see
>>> in the docstring
>>>
>>> Type: (function (&rest (or marker number)) number)
>>
>> Lisp functions also get their types inferred, sometimes,
>
> AFAIK all native compiled Lisp functions are type inferred.
You are right, those who don't have types are those that are
only byte-compiled! But then why are they not native-compiled
as well? I think the functions inside lexical let-closures, i.e.
(let (( ... ))
(defun ... ) )
are not natively compiled.
See the file that I yank last, none of those functions are or
get natively-compiled.
Note the `declare-function' lines; those are there so the
byte-compiler will not complain these functions are not
defined - which they are - so maybe the problem starts already
at the byte-compilation step.
>> Maybe function that are made up of functions that have
>> their types inferred also get their types inferred ...
>
> Of course they are typed as well, but we can use the types
> of the called functions for propagations as they can be
> redefined in every moment.
We can?
Please explain, let's say we have this
f(x) = a(b(c(x)))
a, b, and c are natively-compiled and type inferred, so the
type of f is known this way. But if a, b, and c are redefined
and their types are changed to the point f also has a type
change, how can we know that?
If type inference happens at native-compile time, how do we
know when executing f that, because a, b, and c has changed,
the old type of f no longer holds?
--
underground experts united
https://dataswamp.org/~incal
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), (continued)
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), Eli Zaretskii, 2023/08/21
- Re: Add more supported primitives in libgccjit IR, Andrea Corallo, 2023/08/21
- Re: Add more supported primitives in libgccjit IR, Ihor Radchenko, 2023/08/23
- Re: Add more supported primitives in libgccjit IR, Andrea Corallo, 2023/08/25
- Re: Add more supported primitives in libgccjit IR, Ihor Radchenko, 2023/08/25
- Re: Add more supported primitives in libgccjit IR, Andrea Corallo, 2023/08/25
- Re: Add more supported primitives in libgccjit IR, Ihor Radchenko, 2023/08/26
- Re: Add more supported primitives in libgccjit IR, Emanuel Berg, 2023/08/27
- Re: Add more supported primitives in libgccjit IR, Emanuel Berg, 2023/08/27
- Re: Add more supported primitives in libgccjit IR, Andrea Corallo, 2023/08/27
- Re: Add more supported primitives in libgccjit IR,
Emanuel Berg <=
- Re: Add more supported primitives in libgccjit IR, Andrea Corallo, 2023/08/28
- Re: Add more supported primitives in libgccjit IR, Emanuel Berg, 2023/08/28
- Re: Add more supported primitives in libgccjit IR, Emanuel Berg, 2023/08/26
- Re: Add more supported primitives in libgccjit IR, Ihor Radchenko, 2023/08/26
- Re: Add more supported primitives in libgccjit IR, Emanuel Berg, 2023/08/26
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), Gregory Heytings, 2023/08/21
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), Ihor Radchenko, 2023/08/21
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), Gregory Heytings, 2023/08/21
- Re: Add more supported primitives in libgccjit IR, Manuel Giraud, 2023/08/21
- Re: Add more supported primitives in libgccjit IR (was: Shrinking the C core), Alfred M. Szmidt, 2023/08/21