[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