Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Tue, 31 Mar 2020 09:17:40 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-riscv.org with esmtp (Exim 4.89) (envelope-from ) id 1jJC5b-00036W-27; Tue, 31 Mar 2020 09:17:39 +0100 Received: from isis.lip6.fr ([132.227.60.2]) by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jJC5Y-00036Q-Oe for libre-riscv-dev@lists.libre-riscv.org; Tue, 31 Mar 2020 09:17:36 +0100 Received: from asim.lip6.fr (asim.lip6.fr [132.227.86.2]) by isis.lip6.fr (8.15.2/8.15.2) with ESMTPS id 02V8HZb7009255 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Tue, 31 Mar 2020 10:17:35 +0200 (CEST) Received: from localhost (melon [132.227.103.13]) by asim.lip6.fr (8.15.2/8.14.4) with ESMTP id 02V8HZsT000541 for ; Tue, 31 Mar 2020 10:17:35 +0200 (MEST) Message-ID: <752371e7a9de77d78305af838989817bfec4fda8.camel@lip6.fr> From: Jean-Paul Chaput To: libre-riscv-dev@lists.libre-riscv.org Date: Tue, 31 Mar 2020 10:17:25 +0200 In-Reply-To: References: <8fb9dbcc812d3d7050c6e336dc9bf68f88536888.camel@gmail.com> Organization: UPMC X-Mailer: Evolution 3.28.5 (3.28.5-5.el7) Mime-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (isis.lip6.fr [132.227.60.2]); Tue, 31 Mar 2020 10:17:35 +0200 (CEST) X-Scanned-By: MIMEDefang 2.78 on 132.227.60.2 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: Re: [libre-riscv-dev] extremely busy crowdsupply update started X-BeenThere: libre-riscv-dev@lists.libre-riscv.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Libre-RISCV General Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Libre-RISCV General Development Content-Type: multipart/mixed; boundary="===============1554574548999933317==" Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org Sender: "libre-riscv-dev" --===============1554574548999933317== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-eeuK1rpHwsvYRkOYgnNX" --=-eeuK1rpHwsvYRkOYgnNX Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2020-03-28 at 17:13 +0000, Luke Kenneth Casson Leighton wrote: > On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput > wrote: >=20 > > The main reason here is still the lack of time. But there may be > > another problem. My python interface allow to mirror in Python > > the C++ function overload, but Python only allows one set of > > parameters, is that true or I'm lagging on Python features again? > > So how to describe a function with more than one parameter set? >=20 > ah. >=20 > right. with all the other things, i am going to focus on this one. > it is a major, serious failing in the ENTIRETY of the free software > community to COMPLETELY fail to comprehend this one, absolutely > critical thing. >=20 > microsoft DCOM got it right (co-classes). as a result i was the ONLY > PERSON IN THE WORLD - i checked, emailing the IEXPLORE developer and > he kindly replied - to use the full power of IEXPLORE.DLL DCOM > bindings from python-comtypes. and by "full power" i mean "all 300 > objects, all 2,000+ functions, and all 20,000 properties". >=20 > the only reason that was possible - including the c++ functions which > had multiple overloads - was because of a property of DCOM called > "co-classes". >=20 > when the Mozilla Foundation decided "oh! we! know! we! will copy! > DCOM! and call it! XPCOM! it'll be great!" they did NOT copy > co-classes, and consequently fucked EVERYONE around for the next 15 > years who tried to develop third party xulrunner applications. Funny, I remember well a student a while ago telling me that I should use XUL to write the graphical interface of Coriolis. I was already feeling like an old shmuck with my Qt...=20 > so if you *have* successfully mirrored multiple c++ function-overloads > into python, GREAT! congratulations, you are amongst an absolute tiny > minority of programmers who have comprehended this, where the majority > are in systematic pathological failure and mental melt-down. I did write it a long time ago, it is too complicated for what it does. You can see an example in the PyHorizontal.cpp file and look at PyHorizontal_create(). It is very dumb and tedious programming. I intend to review it thoroughly when migrating to Python 3. Basically it build the "signature" of the function and is followed by a big "if" afterwards. The Python "wrapper" is not something I'm very proud of as it is only a big bunch of C macros. I'm not happy with the *way* the code is generated, but on the other hand, I am happy with the *generated* code and the fact that I can finely tune it. I will try to make a more intensive use of C++ templates. But not as much as in Boost as it becomes very, very slow to compile (it's the reason why the Qt team abandoned it in favor of another interface generator). --=20 .-. J e a n - P a u l C h a p u t / Administrateur Systeme /v\ Jean-Paul.Chaput@lip6.fr /(___)\ work: (33) 01.44.27.53.99 =20 ^^ ^^ cell: 06.66.25.35.55 home: 09.65.29.83.38 U P M C Universite Pierre & Marie Curie L I P 6 Laboratoire d'Informatique de Paris VI S o C System On Chip --=-eeuK1rpHwsvYRkOYgnNX-- --===============1554574548999933317== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlz Y3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3Jn Cmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNj di1kZXYK --===============1554574548999933317==--