Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #56659

Re: LLVM and Forth

From anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups comp.lang.forth
Subject Re: LLVM and Forth
Date 2017-04-03 12:55 +0000
Organization Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID <2017Apr3.145550@mips.complang.tuwien.ac.at> (permalink)
References (1 earlier) <obogce$er6$1@dont-email.me> <ac4976d7-955a-45e3-9cdd-e339e15acbc2@googlegroups.com> <ZqGdnRes4qCBI33FnZ2dnUU7-VednZ2d@supernews.com> <065e774c-c5fb-4e68-9489-00b5357142d6@googlegroups.com> <qOKdneQNfs-vmH_FnZ2dnUU7-UednZ2d@supernews.com>

Show all headers | View raw


Andrew Haley <andrew29@littlepinkcloud.invalid> writes:
>krishna.myneni@ccreweb.org wrote:
>> If one were to write a Forth to C translator, how likely is it that
>> the translator would result in C code which is considered undefined
>> in the new C standard, i.e. how problematic would "nasal demons" be
>> in the translated code?
>
>Single-threaded, it wouldn't be problematic at all.  The nasal daemons
>tend to happen if you're pushing the envelope of optimization.  As
>long as you translated into well-defined C, which isn't difficult,
>you'd be fine.  I don't think there are any Forth constructs that
>wouldn't translate easily.  The real problem occurs when you're trying
>to generate highly efficient C.

Bullshit.  Bullshit.  Bullshit.  Bullshit.  Bullshit.  A whole
paragraph of bullshit, with every single sentence being bullshit.  You
don't have to believe me, in the following I refute them by one:

1) All the nasal demon examples I came across have been in
single-threaded programs.  (You can find some of them in
<http://www.complang.tuwien.ac.at/kps2015/proceedings/KPS_2015_submission_29.pdf>,
and more in the referenced papers).

2) Nasal demon compilers "optimized" away the memset() that was
intended to prevent Heartbleed, and the programmers did not put this
memset() in to push the envelope of optimization.  Likewise,
programmers do not put in bounds checks to push the envelope of
optimization, yet nasal demon compilers often "optimize" these bounds
checks away.  Actually, most of the examples of nasal demons I know of
have nothing to do with "pushing the envelope of optimization".

3) If it is not difficult to produce well-defined C, you would expect
that at least the hardcore members of the nasal demon church, the
developers of GCC and Clang/LLVM, would be able to do it, yet both of
these compilers exercised undefined behaviour even when compiling an
empty program with optimization off.

4) Anything to do with treating cells as either addresses or as
integers can easily turn into undefined behaviour.  Dealing with
memory can also easily incur undefined behaviour.  Implementing Forth
addresses as C constructs without incurring undefined behaviour is
also challenging, and certainly not easy (e.g., how do you implement
ALLOCATE and "-"?).

5) Nasal demon compilers "optimized" away the memset() that was
intended to prevent Heartbleed, and the programmers did not put this
memset() in to generate highly efficient C.  Likewise, programmers do
not put in bounds checks to generate highly-efficient C, yet nasal
demon compilers often "optimize" these bounds checks away.  Actually,
most of the examples of nasal demons I know of have nothing to do with
"highly-efficient C".

It may be, though, that "highly-efficient" C programs that "push the
envelope of optimization" may be even more frequently afflicted by
nasal demons than the rest.  You suggest to avoid going there.  Yet
nasal demon fans claim (without empirical evidence) that nasal demons
are a good thing for efficiency reasons.  This does not compute.

- anton
-- 
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
     New standard: http://www.forth200x.org/forth200x.html
   EuroForth 2016: http://www.euroforth.org/ef16/

Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-01 06:36 -0700
  Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-01 14:57 +0000
    Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-01 11:55 -0700
      Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-02 15:24 +0000
  Re: LLVM and Forth rickman <gnuarm@gmail.com> - 2017-04-01 11:21 -0400
    Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-01 11:57 -0700
      Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-02 04:02 -0500
        Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-02 06:35 -0700
          Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-02 14:41 +0000
          Re: LLVM and Forth minforth@arcor.de - 2017-04-03 01:09 -0700
            Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-03 05:32 -0700
              Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 13:52 +0000
                Re: LLVM and Forth minforth@arcor.de - 2017-04-03 07:59 -0700
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 16:08 +0000
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-03 12:22 -0500
                Re: LLVM and Forth Paul Rubin <no.email@nospam.invalid> - 2017-04-03 20:10 -0700
                Re: LLVM and Forth minforth@arcor.de - 2017-04-03 22:19 -0700
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-04 16:12 +0200
                Re: LLVM and Forth Walter Banks <walter@bytecraft.com> - 2017-04-05 17:27 -0400
            Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 14:29 +0000
          Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-03 03:17 -0500
            Re: LLVM and Forth minforth@arcor.de - 2017-04-03 05:04 -0700
            Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 12:55 +0000
              Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-03 10:08 -0500
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-03 17:05 +0000
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-04 11:29 -0500
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-04 19:11 +0200
                Re: LLVM and Forth Paul Rubin <no.email@nospam.invalid> - 2017-04-04 21:29 -0700
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-05 15:01 +0000
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-05 18:42 +0100
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-06 04:01 -0500
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-06 18:48 +0000
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-06 18:42 -0700
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-07 04:02 -0500
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-08 21:18 -0700
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-08 22:43 +0000
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-08 20:54 -0700
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-09 14:53 +0000
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-10 00:38 +0000
                Re: LLVM and Forth James Kuyper <jameskuyper@verizon.net> - 2017-04-09 22:46 -0400
                Re: LLVM and Forth Robert Wessel <robertwessel2@yahoo.com> - 2017-04-09 22:27 -0500
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-10 12:36 +0000
                Re: LLVM and Forth Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-10 14:09 +0100
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-10 13:07 +0000
                Re: LLVM and Forth Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-10 16:18 +0100
                Re: LLVM and Forth "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-10 11:51 -0400
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-12 21:32 +0000
                Re: LLVM and Forth "James R. Kuyper" <jameskuyper@verizon.net> - 2017-04-12 18:29 -0400
                Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-12 15:29 -0700
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-13 02:55 +0200
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-10 18:38 -0700
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-10 11:54 -0500
                Re: LLVM and Forth Paul Rubin <no.email@nospam.invalid> - 2017-04-10 10:17 -0700
              Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-03 17:02 +0100
              Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-03 10:03 -0700
            Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-04 03:25 -0700
              Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-04 11:24 +0000
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-04 04:55 -0700
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-04 12:28 +0000
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-04 16:16 +0000
              Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-04 15:38 +0200
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-04 16:06 +0200
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-04 17:57 -0700
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-05 00:44 -0400
                Re: LLVM and Forth minforth@arcor.de - 2017-04-05 00:00 -0700
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-05 08:47 -0700
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-05 11:04 -0500
                Re: LLVM and Forth john <anon@example.com> - 2017-04-05 18:04 +0100
                Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-05 13:04 -0700
                Re: LLVM and Forth Paul Rubin <no.email@nospam.invalid> - 2017-04-05 18:20 -0700
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-05 20:14 -0700
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-06 12:33 +0000
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-06 10:49 -0700
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 18:55 +0100
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-06 20:41 +0000
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 21:47 +0100
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 21:56 +0100
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-06 23:59 -0400
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-06 17:10 -0700
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-07 03:33 -0400
                Re: LLVM and Forth Spiros Bousbouras <spibou@gmail.com> - 2017-04-08 22:48 +0000
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-09 15:06 -0400
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-08 22:45 -0700
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-09 14:27 +0000
                Re: LLVM and Forth Joel Rees <joel.rees@gmail.com> - 2017-04-09 21:26 -0700
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-09 13:35 -0400
                Re: LLVM and Forth Paul Rubin <no.email@nospam.invalid> - 2017-04-09 14:07 -0700
                Re: LLVM and Forth minforth@arcor.de - 2017-04-05 12:16 -0700
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-05 20:27 -0700
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-06 05:24 -0400
                Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-06 03:26 -0700
                Re: LLVM and Forth minforth@arcor.de - 2017-04-06 04:05 -0700
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-06 06:50 -0500
                Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-06 05:23 -0400
                Re: LLVM and Forth Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-06 04:44 -0500
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 10:57 +0100
                Re: LLVM and Forth peter.m.falth@gmail.com - 2017-04-05 05:29 -0700
                Re: LLVM and Forth "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-14 02:04 +0000
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 14:03 +0200
                Re: LLVM and Forth "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-16 00:44 +0000
                Re: LLVM and Forth alex@rivadpm.com - 2017-04-16 05:53 -0700
                Re: LLVM and Forth anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-16 15:43 +0000
                Re: LLVM and Forth "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-16 22:27 +0000
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-18 02:45 +0200
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-18 18:26 +0100
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-20 19:51 +0200
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-20 19:08 +0100
                Re: LLVM and Forth albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-20 20:42 +0200
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-20 20:29 +0100
                Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-20 20:48 +0100
                Re: LLVM and Forth "Rudy Velthuis" <newsgroups@rvelthuis.de> - 2017-04-21 11:49 +0000
          Re: LLVM and Forth Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2017-04-03 20:39 -0400
  Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-02 21:15 +0100
    Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-02 15:18 -0700
      Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-03 13:07 +0100
        Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-03 09:45 -0700
          Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-03 22:52 +0100
            Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-03 15:25 -0700
              Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 09:35 +0100
      Re: LLVM and Forth antispam@math.uni.wroc.pl - 2017-04-06 01:36 +0000
        Re: LLVM and Forth minforth@arcor.de - 2017-04-05 22:00 -0700
          Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 09:52 +0100
        Re: LLVM and Forth hughaguilar96@gmail.com - 2017-04-06 20:15 -0700
    Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-03 05:20 -0700
      Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-03 17:11 +0100
  Re: LLVM and Forth Alex <alex@rivadpm.com> - 2017-04-06 17:43 +0100
    Re: LLVM and Forth krishna.myneni@ccreweb.org - 2017-04-06 10:53 -0700

csiph-web