From owner-freebsd-current@FreeBSD.ORG Sat Dec 17 17:57:44 2005 Return-Path: X-Original-To: current@FreeBSD.ORG Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 957ED16A41F for ; Sat, 17 Dec 2005 17:57:44 +0000 (GMT) (envelope-from mdodd@FreeBSD.ORG) Received: from sasami.jurai.net (sasami.jurai.net [70.88.158.93]) by mx1.FreeBSD.org (Postfix) with ESMTP id CB59643D53 for ; Sat, 17 Dec 2005 17:57:23 +0000 (GMT) (envelope-from mdodd@FreeBSD.ORG) Received: from sasami.jurai.net (winter@sasami.jurai.net [70.88.158.93]) by sasami.jurai.net (8.13.1/8.13.1) with ESMTP id jBHHvFcl024364; Sat, 17 Dec 2005 12:57:20 -0500 (EST) (envelope-from mdodd@FreeBSD.ORG) Date: Sat, 17 Dec 2005 12:57:15 -0500 (EST) From: "Matthew N. Dodd" X-X-Sender: winter@sasami.jurai.net To: Poul-Henning Kamp In-Reply-To: <8509.1134766863@critter.freebsd.dk> Message-ID: <20051217124717.H97875@sasami.jurai.net> References: <8509.1134766863@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-256505370-1134842235=:97875" X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.5.6 (sasami.jurai.net [70.88.158.93]); Sat, 17 Dec 2005 12:57:21 -0500 (EST) Cc: current@FreeBSD.ORG Subject: Re: About extensible prinf(3), a slightly long X-mas card X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Dec 2005 17:57:44 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-256505370-1134842235=:97875 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Fri, 16 Dec 2005, Poul-Henning Kamp wrote: > If this proves useful, it'll stay in the tree and be part of 7.0 (no MFCs!) > it people break out in bikesheds about it, it will not. I'd rather leave the single letter specifiers and modifiers to the standards compliant printf and use something like %{foo} as the specifier for extensions. I've re-arranged some of the internals to make this easier to implement, and stubbed out the parsing of the %{} formats. I'm a little unsure what sort of errors to throw on extension lookup failure. ... What are your feelings on implementing things in such a way that the compiler could use this same sort of extension plugin to perform type checking? --0-256505370-1134842235=:97875 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="xprintf.diff" Content-Transfer-Encoding: BASE64 Content-ID: <20051217125715.C97875@sasami.jurai.net> Content-Description: Content-Disposition: attachment; filename="xprintf.diff" SW5kZXg6IGluY2x1ZGUvcHJpbnRmLmgNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiAvaG9tZS9jdnMvc3JjL2luY2x1ZGUvcHJpbnRmLmgs dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjENCmRpZmYgLXUgLXUgLXIxLjEg cHJpbnRmLmgNCi0tLSBpbmNsdWRlL3ByaW50Zi5oCTE2IERlYyAyMDA1IDE4 OjU2OjM4IC0wMDAwCTEuMQ0KKysrIGluY2x1ZGUvcHJpbnRmLmgJMTcgRGVj IDIwMDUgMTc6MTM6MjcgLTAwMDANCkBAIC03NCw2ICs3NCw3IEBADQogCWNv bnN0IGNoYXIJKmJlZ2luOw0KIAljb25zdCBjaGFyCSplbmQ7DQogCXZvaWQg CQkqYXJnW19fUFJJTlRGTUFYQVJHXTsNCisJc3RydWN0IGFyZ19mdW5jdGlv biAqYXJnX2ZjbjsNCiB9Ow0KIA0KIGVudW0gew0KQEAgLTEwNSw2ICsxMDYs MTIgQEANCiBzdHJ1Y3QgX19wcmludGZfaW87DQogdHlwZWRlZiBpbnQgcHJp bnRmX3JlbmRlcihzdHJ1Y3QgX19wcmludGZfaW8gKiwgY29uc3Qgc3RydWN0 IHByaW50Zl9pbmZvICosIGNvbnN0IHZvaWQgKmNvbnN0ICopOw0KIA0KK3N0 cnVjdCBhcmdfZnVuY3Rpb24gew0KKwlwcmludGZfYXJnaW5mb19mdW5jdGlv bgkqYXJnaW5mbzsNCisJcHJpbnRmX2Z1bmN0aW9uCQkqZ251cmVuZGVyOw0K KwlwcmludGZfcmVuZGVyCQkqcmVuZGVyOw0KK307DQorDQogLyogdnByaW50 Zi5jICovDQogZXh0ZXJuIGNvbnN0IGNoYXIgX19sb3dlcmNhc2VfaGV4WzE3 XTsNCiBleHRlcm4gY29uc3QgY2hhciBfX3VwcGVyY2FzZV9oZXhbMTddOw0K SW5kZXg6IGxpYi9saWJjL3N0ZGlvL3hwcmludGYuYw0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2cy9zcmMvbGliL2xpYmMv c3RkaW8veHByaW50Zi5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xDQpk aWZmIC11IC11IC1yMS4xIHhwcmludGYuYw0KLS0tIGxpYi9saWJjL3N0ZGlv L3hwcmludGYuYwkxNiBEZWMgMjAwNSAxODo1NjozOCAtMDAwMAkxLjENCisr KyBsaWIvbGliYy9zdGRpby94cHJpbnRmLmMJMTcgRGVjIDIwMDUgMTc6NDg6 MzcgLTAwMDANCkBAIC0yMzAsMTEgKzIzMCw3IEBADQogLyogdGFibGUgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSovDQogDQogLypsaW50IC1lc3ltKDc4NSwgcHJpbnRm X3RibCkgKi8NCi1zdGF0aWMgc3RydWN0IHsNCi0JcHJpbnRmX2FyZ2luZm9f ZnVuY3Rpb24JKmFyZ2luZm87DQotCXByaW50Zl9mdW5jdGlvbgkJKmdudXJl bmRlcjsNCi0JcHJpbnRmX3JlbmRlcgkJKnJlbmRlcjsNCi19IHByaW50Zl90 YmxbMjU2XSA9IHsNCitzdHJ1Y3QgYXJnX2Z1bmN0aW9uIHByaW50Zl90Ymxb MjU2XSA9IHsNCiAJWyclJ10gPSB7IF9fcHJpbnRmX2FyZ2luZm9fcGN0LAkJ TlVMTCwJX19wcmludGZfcmVuZGVyX3BjdCB9LA0KIAlbJ0EnXSA9IHsgX19w cmludGZfYXJnaW5mb19mbG9hdCwJTlVMTCwJX19wcmludGZfcmVuZGVyX2Zs b2F0IH0sDQogCVsnQyddID0geyBfX3ByaW50Zl9hcmdpbmZvX2NociwJCU5V TEwsCV9fcHJpbnRmX3JlbmRlcl9jaHIgfSwNCkBAIC00MjksMTMgKzQyNSwz MSBAQA0KIAkJCQlwaS0+aXNfc2l6ZSA9IDE7DQogCQkJCWZtdCsrOw0KIAkJ CQljb250aW51ZTsNCisJCQljYXNlICd7JzoNCisJCQkJLyogU2tpcCB7ICov DQorCQkJCXBpLT5zcGVjKys7DQorDQorCQkJCS8qIExvb2sgZm9yIGVuZCBi cmFjZS4gKi8NCisJCQkJd2hpbGUgKCpmbXQrKyAhPSAnfScpDQorCQkJCQk7 DQorDQorCQkJCS8qIE5vIGNsb3NpbmcgYnJhY2UhICovDQorCQkJCWlmICgq Zm10ID09ICdcMCcpDQorCQkJCQlhYm9ydCgpOw0KKw0KKwkJCQkvKiBsZW4g PSBwaS0+c3BlYyAtIGZtdCAtIDEgKi8NCisJCQkJYnJlYWs7DQogCQkJZGVm YXVsdDoNCiAJCQkJZm10Kys7DQogCQkJCWJyZWFrOw0KIAkJCX0NCi0JCQlp ZiAocHJpbnRmX3RibFtwaS0+c3BlY10uYXJnaW5mbyA9PSBOVUxMKQ0KKw0K KwkJCWlmIChwaS0+YXJnX2ZjbiA9PSBOVUxMKQ0KKwkJCQlwaS0+YXJnX2Zj biA9ICZwcmludGZfdGJsW3BpLT5zcGVjXTsNCisNCisJCQlpZiAocGktPmFy Z19mY24tPmFyZ2luZm8gPT0gTlVMTCkNCiAJCQkJZXJyeCgxLCAiYXJnaW5m b1slY10gPSBOVUxMIiwgcGktPnNwZWMpOw0KLQkJCWNoID0gcHJpbnRmX3Ri bFtwaS0+c3BlY10uYXJnaW5mbygNCisJCQljaCA9IHBpLT5hcmdfZmNuLT5h cmdpbmZvKA0KIAkJCSAgICBwaSwgX19QUklOVEZNQVhBUkcsICZhcmd0W25l eHRhcmddKTsNCiAJCQlpZiAoY2ggPiAwKQ0KIAkJCQlwaS0+YXJnWzBdID0g JmFyZ3NbbmV4dGFyZ107DQpAQCAtNTQwLDE0ICs1NTQsMTQgQEANCiAJCWlm IChwaS0+Z2V0X3ByZWMpIA0KIAkJCXBpLT5wcmVjID0gYXJnc1twaS0+Z2V0 X3ByZWNdLmludGFyZzsNCiAJCXJldCArPSBfX3ByaW50Zl9wdXRzKCZpbywg cGktPmJlZ2luLCBwaS0+ZW5kIC0gcGktPmJlZ2luKTsNCi0JCWlmIChwcmlu dGZfdGJsW3BpLT5zcGVjXS5nbnVyZW5kZXIgIT0gTlVMTCkgew0KKwkJaWYg KHBpLT5hcmdfZmNuLT5nbnVyZW5kZXIgIT0gTlVMTCkgew0KIAkJCV9fcHJp bnRmX2ZsdXNoKCZpbyk7DQogCQkJcGktPnNvZmFyID0gcmV0Ow0KLQkJCXJl dCArPSBwcmludGZfdGJsW3BpLT5zcGVjXS5nbnVyZW5kZXIoDQorCQkJcmV0 ICs9IHBpLT5hcmdfZmNuLT5nbnVyZW5kZXIoDQogCQkJICAgIGZwLCBwaSwg KGNvbnN0IHZvaWQgKilwaS0+YXJnKTsNCi0JCX0gZWxzZSBpZiAocHJpbnRm X3RibFtwaS0+c3BlY10ucmVuZGVyICE9IE5VTEwpIHsNCisJCX0gZWxzZSBp ZiAocGktPmFyZ19mY24tPnJlbmRlciAhPSBOVUxMKSB7DQogCQkJcGktPnNv ZmFyID0gcmV0Ow0KLQkJCW4gPSBwcmludGZfdGJsW3BpLT5zcGVjXS5yZW5k ZXIoDQorCQkJbiA9IHBpLT5hcmdfZmNuLT5yZW5kZXIoDQogCQkJICAgICZp bywgcGksIChjb25zdCB2b2lkICopcGktPmFyZyk7DQogCQkJaWYgKG4gPCAw KQ0KIAkJCQlpby5mcC0+X2ZsYWdzIHw9IF9fU0VSUjsNCg== --0-256505370-1134842235=:97875--