Deutsch English Français Italiano |
<vbn9e1$2fqep$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Bart <bc@freeuk.com> Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Mon, 9 Sep 2024 17:57:37 +0100 Organization: A noiseless patient Spider Lines: 42 Message-ID: <vbn9e1$2fqep$1@dont-email.me> References: <vab101$3er$1@reader1.panix.com> <vbcs65$eabn$1@dont-email.me> <vbekut$1kd24$1@paganini.bofh.team> <vbepcb$q6p2$1@dont-email.me> <vbgb5q$1ruv8$1@paganini.bofh.team> <vbhbbb$1blt4$1@dont-email.me> <vbipp5$24kl5$1@paganini.bofh.team> <vbk0d9$1tajm$1@dont-email.me> <vbkpfc$27l2o$1@paganini.bofh.team> <vbl3am$228vv$1@dont-email.me> <vblfgb$2dkij$1@paganini.bofh.team> <878qw13a40.fsf@nosuchdomain.example.com> <vbll6l$2dpn7$2@paganini.bofh.team> <874j6p34df.fsf@nosuchdomain.example.com> <vbn79l$2g9i6$1@paganini.bofh.team> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 09 Sep 2024 18:57:37 +0200 (CEST) Injection-Info: dont-email.me; posting-host="f78fc89e66291041ea37870e95b59fc2"; logging-data="2615769"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX185R3ouf8azrqSgtOQ2WMG6" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:FFT1b/59jgMScj5q5cY4h80DRK8= In-Reply-To: <vbn79l$2g9i6$1@paganini.bofh.team> Content-Language: en-GB Bytes: 3337 On 09/09/2024 17:21, Waldek Hebisch wrote: > Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >> C23 doesn't add any new support for 128-bit integers. So what does _Bitint do with a width of 128 bits? >> >> gcc (and compilers intended to be compatible with it, like clang) >> support __int128 and unsigned __int128 types, but only on 64-bit >> systems, and they're not strictly integer types (for example, there are >> no constants of type __int128). > > Yes, I know that. IIUC clang supports bigger types, and in one > of drafts I found "bit exact integer types". At first glance it > looked that they could support bigger lengths than standard integer > types. I had quite decent 128-bit support in my language at one time, including: * i128 and u128 names * 128-bit constants, including char constants up to 'ABCDEFGHIJKLMNOP' * Ability to print 128-bit numbers * Nearly all arithmetic, comparison and logical ops supported (only division was limited to 128/64) I believe this is a better spec than provided by gnuC. However I dropped it for various reasons. Mainly because I didn't have enough use-cases for it (the only one was supporting it within the compiler!), so it was not worthwhile (being cool to have wasn't enough). But also, in a language with otherwise only 64-bit integer types so there was no mixed-size arithmetic, now widening and narrowing comes into play again. In C, there could be mixed 32-bit, 64-bit and 128-bit types in an expression. With the new _Bitint which allows arbitrary sizes from 1 to 63 bits as well as over 64 bits (with no apparent upper limit in the spec), it sounds like there will be lots of fun and games to be had. Especially if it all needs to work on 32-bit targets too.