* statement expressions
@ 2016-01-01 0:00 Basile Starynkevitch
0 siblings, 0 replies; only message in thread
From: Basile Starynkevitch @ 2016-01-01 0:00 UTC (permalink / raw)
To: jit; +Cc: David Malcolm
Hello all and David,
In https://gcc.gnu.org/ml/jit/2016-q1/msg00003.html I mentioned that a
gcc_jit_block_expr would be very useful, in particular for most
functional languages (including Lisp & Scheme).
The suggestion was to provide, in GCC JIT, the equivalent of GCC C
statement exprs https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
David, I really think such a feature would be useful. In particular it
would permit to easily encode in GCCJIT the equivalent of the comma
operator and of the ternary conditional operator of C.
More generally, it would help a lot those using GCCJIT for Scheme like
or Ocaml like languages (and I believe it is as useful as the tail
recursion thing work).
Without such a feature, most programs using GCCJIT for "functional" or
"expression-oriented" frontends would have to build a representation in
A-normal form (see https://en.wikipedia.org/wiki/A-normal_form flor
details), which the internal transformation inside GCC itself (notably
to SSA gimple) is nearly already doing.
David, what is your opinion on this? Are you opposed to the idea? If
not, how would you think it can be implemented?
Cheers
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-06-10 12:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-01 0:00 statement expressions Basile Starynkevitch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).