From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14758 invoked by alias); 13 Oct 2016 10:23:01 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39628 Received: (qmail 13064 invoked from network); 13 Oct 2016 10:23:01 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.11):SA:0(-0.3/5.0):. Processed in 0.438592 secs); 13 Oct 2016 10:23:01 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7ef-f79e76d000005b57-3b-57ff607f59e1 Date: Thu, 13 Oct 2016 11:22:51 +0100 From: Peter Stephenson To: Zsh hackers list Subject: Re: type-checking for metafiedness? (was: Re: Cores almost on demand in patcompile()) Message-id: <20161013112251.329c0dbf@pwslap01u.europe.root.pri> In-reply-to: <20161011065105.GB16819@fujitsu.shahaf.local2> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRmVeSWpSXmKPExsWy7djP87r1Cf/DDU7tUrQ42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGR2HTjMX/GSvuDmbu4FxBVsXIyeHhICJxNoTW1ggbDGJC/fW A8W5OIQEljFKXDx8lxXC6WWSWPfwKitMx80TPxnhqt437WaGcKYxSZy48o4dwtnEKLF5wSQm kBYhgbOMEnMfF4DYLAKqEn3vb4EtZxMwlJi6aTYjiC0ioCWx4+RJsHphgUSJ069eg8V5Bewl ejZ3Aq3m4OAUsJaYtlkbJMwvoC9x9e8nJoiL7CVmXjkDVS4o8WPyPbB/mAV0JLZte8wOYctL bF7zFuxQCYH/bBIblnazg8yUEJCV2HSAGWKOi8Sz6bPYIWxhiVfHt0DZMhKdHQehdvUzSjzp 9oWYM4NR4vSZHdCAtJbou32REWIZn8SkbdOZIebzSnS0CUGUeEhcudcEVe4o8X/9AsYJjIqz kJw9C8nZs5CcvYCReRWjSGppcW56arGhXnFibnFpXrpecn7uJkZgEjj97/j7HYxPm0MOMQpw MCrx8HoE/QsXYk0sK67MPcQowcGsJMJrEPM/XIg3JbGyKrUoP76oNCe1+BCjNAeLkjjv3gVX woUE0hNLUrNTUwtSi2CyTBycUg2MLB91T/3MXDf/EpvHmfCLyUWGVp0y916db3i7jlX5tZvH ymV9S0u26e/dxXd7QTy/rnupXhOL3seSp3Urmhk/dOxfaMn8vvTrnQcPBS8vbHggXv7H7fmi zAymPqec00Yiq4/z+Z1jsn6dWOGaO5PtZaLBkohbP2fPOpv68Zf25ikuW3/GTnzNr8RSnJFo qMVcVJwIANBmPOz+AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsVy+t/xa7oZCf/DDTbuEbU42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twy+g4dJq54Cd7xc3Z3A2MK9i6GDk5JARMJG6e+MkIYYtJXLi3HijOxSEksIRR 4v3BVcwQzgwmiY7Di6AymxglDq5eAZU5yyhxaP52ZpB+FgFVib73t8DmsgkYSkzdNBtsroiA lsSOkyeZQGxhgUSJh/tvg9m8AvYSPZs7WbsYOTg4Bawlpm3Whpi5i0Xi1YlX7CA1/AL6Elf/ fmKCuM9eYuaVM4wQvYISPybfYwGxmYHmb97WxAphy0tsXvMW7B4hAXWJG3d3s09gFJ6FpGUW kpZZSFoWMDKvYhRJLS3OTc8tNtQrTswtLs1L10vOz93ECIyibcd+bt7BeGlj8CFGAQ5GJR5e j6B/4UKsiWXFlbmHGCU4mJVEeA1i/ocL8aYkVlalFuXHF5XmpBYfYjQFBsxEZinR5HxghOeV xBuaGJpbGhoZW1iYGxkpifOWfLgSLiSQnliSmp2aWpBaBNPHxMEp1cAYd/b4vghFL/vTzw4e qQh5yvpkW8qn2N1BQU5y3yMVNgt5Ci9SX8bL9zv49s1LJTon3l7WswsJf/h9w+SVH/nvPI1v EssUVzhgLlym9emwRZTqMffpMnYcSnXV7Pb/soV3vH3oqyjHen7J9D1xPVmvwgTbPggxLXrR XeIQ51X4dov5iW8PD95UYinOSDTUYi4qTgQAy5ay6bgCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161013102254eucas1p2fd3c967113298d84ceb87ae953d5b3bc X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161011065321eucas1p22afaabbe1f17f26a1b3507619ed1d96f X-RootMTR: 20161011065321eucas1p22afaabbe1f17f26a1b3507619ed1d96f References: <20161011065105.GB16819@fujitsu.shahaf.local2> On Tue, 11 Oct 2016 06:51:05 +0000 Daniel Shahaf wrote: > Pardon me if this has been discussed before, but why don't we introduce > the type definitions > . > struct metafied_t { char *v; }; > struct unmetafied_t { char *v; }; > . > and start incrementally replacing uses of "char *" with uses of these > types? This will gain type checking for metafied v. unmetafied strings, > as these two types do not implicitly convert into each other (attempts > to do so generate a compiler warning). This probably is a good idea, although the intermediate state where this has been only partly done is likely to be a bit of a mess. Modern compilers should be able to keep this working efficiently. Some thought could be given as to whether the unmetafied structure should contain the length, too. The only uses of unmetafied strings I can think of that wouldn't need it are at the library / system interface, which requires unmetafied null-terminated strings. pws