[libre-riscv-dev] extremely busy crowdsupply update started
Jean-Paul Chaput
Jean-Paul.Chaput at lip6.fr
Tue Mar 31 09:17:25 BST 2020
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
> <Jean-Paul.Chaput at lip6.fr> wrote:
>
> > 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?
>
> ah.
>
> 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.
>
> 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".
>
> the only reason that was possible - including the c++ functions which
> had multiple overloads - was because of a property of DCOM called
> "co-classes".
>
> 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...
> 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).
--
.-. J e a n - P a u l C h a p u t / Administrateur Systeme
/v\ Jean-Paul.Chaput at lip6.fr
/(___)\ work: (33) 01.44.27.53.99
^^ ^^ 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
More information about the libre-riscv-dev
mailing list