Proposal for Extensible Primitives (was: FFI)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Proposal for Extensible Primitives (was: FFI)

Stéphane Ducasse-3
Exactly. I liked when this list is a place for exchange of ideas.

Stef

On 17 août 06, at 01:00, Ron Teitelbaum wrote:

> Stef,
>
> To be sure it is possible that my reactions to the arguments are  
> the result
> of naivety.  I am not aware of much of the past history and I have not
> reviewed the relative parser implementations.  I will back off and let
> Andreas and Lukas discuss the details.
>
> From my perspective, as limited as it is, there have not been enough
> arguments about the benefits of the change itself.  I'm sure the  
> pragma
> implantation is quite good based on your judgement but what does  
> that have
> to do with FFI.  Using the pragmas implementation for FFI doesn't  
> add or
> remove anything from pragmas.  What I can say is that FFI on  
> windows works
> well and that the differences suggested for the api are minor but the
> compatibility issues are major.
>
> For me there would have to be a really good reason to want to  
> change the api
> for FFI and the arguments I've heard are just not good enough.  IF  
> we could
> consolidate the implementation without changing the api I would  
> have no
> opinion about this issue accept to point out that FFI as far as I know
> belongs currently to Andreas.
>
> Lukas should aggressively pursue his line of argument so that we  
> can fully
> understand the benefits of what he is proposing.  Lukas and Andreas  
> are both
> very talented and we would be very foolish not to listen to either  
> of them.
>
>
> Let's leave politics behind; argument and discussion that leads to a
> solution is good for the community and for Squeak.  We don't all  
> have to
> agree, we don't need consensus, we need to make sure everyone is  
> heard, make
> a decision and then move on.  Like I said the decisions should come  
> from
> Andreas and Lukas.
>
> Ron
>
>> From: stéphane ducasse
>> Sent: Wednesday, August 16, 2006 4:53 PM
>> Ron
>>
>> do not be naive. I asked explicitly to lukas to show his approach to
>> get a MUCH cleaner system and we were sure that andreas
>> would react that way because we are idiots. So let us be idiots!
>>
>> Now I think that taking advantage of pragmas (because you know that
>> lukas did all the implementation of pragmas even arguing
>> with andreas that he was wrong on certain comments of this
>> implementation - this was offline but his happened and lukas was
>> right and the implementation of lukas is much better than the one of
>> andreas in tweak) would be something to have and discussing how a
>> ***smooth transition*** plan could have been prepared. We are not
>> saying that everything should change, but preparing to change
>> is sometimes really important. Else we would all be programming in
>> assembly because it worked.
>>
>> But what lukas said is bullshit of course!
>>
>> Stef
>>
>>
>> On 16 août 06, at 18:18, Ron Teitelbaum wrote:
>>
>>> +1
>>>
>>> The arguments presented are not sufficient in my opinion to warrant
>>> the
>>> change.
>>>
>>> In general the amount of difference in the interface that is
>>> suggested is
>>> trivial when compared to the amount of learning necessary to use  
>>> FFI.
>>> Consistency does not appear to me to be a valid argument.
>>>
>>> Considering the alternatives presented by Andreas that allows this
>>> minor
>>> difference in syntax while satisfying requirements for isolation, I
>>> would
>>> say it's better to leave current systems working and the current
>>> syntax as
>>> is even if it is slightly different than pragmas.  Isolation of
>>> code and
>>> removing of unnecessary code when FFI is unloaded does not appear
>>> to be a
>>> valid argument considering alternatives discussed.
>>>
>>> I understand the original stated goal is to unify the parser and
>>> clean up
>>> the parsing code, but in general that doesn't seem to be enough  
>>> of an
>>> argument to change the interface of working systems.  Can the two
>>> parsers be
>>> combined without changing the FFI syntax?
>>>
>>> Ron Teitelbaum
>>>
>>>> -----Original Message-----
>>>> From: [hidden email] [mailto:squeak-
>>>> dev-
>>>> [hidden email]] On Behalf Of Andreas Raab
>>>> Sent: Wednesday, August 16, 2006 11:36 AM
>>>> To: The general-purpose Squeak developers list
>>>> Subject: Re: Proposal for Extensible Primitives (was: FFI)
>>>>
>>>> stéphane ducasse wrote:
>>>>> would not be possible to have a plan for a smooth transition even
>>>>> with
>>>>> the two approaches happily living side by side?
>>>>
>>>> A transition implies that the proposed change is desirable or
>>>> necessary.
>>>> This is not the case. The idea to change the syntax of the FFI is a
>>>> classic "fresh from the ivory tower" idea, neglecting the
>>>> realities of
>>>> an already deployed, perfectly working and functioning system.
>>>>
>>>> Sorry but changing FFI syntax ain't gonna happen on my watch.
>>>>
>>>> Cheers,
>>>>   - Andreas
>>>>
>>>>>
>>>>> Stef
>>>>>
>>>>> On 16 août 06, at 09:41, Andreas Raab wrote:
>>>>>
>>>>>> Lukas Renggli wrote:
>>>>>>>> Let's repeat the last part: "while explicitly preserving its
>>>>>>>> meaning
>>>> or
>>>>>>>> behavior". Not to break things. I'm perfectly cool with that.
>>>>>>> Unfortunately my suggestion is no refactoring from your point
>>>>>>> of view,
>>>>>>> it breaks backward compatibility.
>>>>>>
>>>>>> It's not "from my point of view", but rather "by definition" of
>>>>>> what
>>>>>> refactoring means. I have really come to dislike how the term
>>>>>> "refactoring" is abused on this list to mean "explicitly breaking
>>>>>> code" instead of what it means, namely explicitly NOT breaking
>>>>>> code.
>>>>>>
>>>>>> So, let's be clear: You are not talking about a refactoring.  
>>>>>> If you
>>>>>> were, I'd be cool. You are talking about a fundamental and
>>>>>> incompatible change to the FFI. And I'm not cool with that.
>>>>>>
>>>>>>> I am not in favor of keeping backward compatibility, in most
>>>>>>> cases it
>>>>>>> makes things worse and there are already plenty of bad  
>>>>>>> examples in
>>>>>>> Squeak.
>>>>>>
>>>>>> Sure. Depending on the circumstances, e.g., how big your
>>>>>> investment in
>>>>>> Squeak has been and how reliant you are on a specific subsystem,
>>>>>> that
>>>>>> may be a fine option for you. Not all users of Squeak are that  
>>>>>> way.
>>>>>> And while I'm not against change in general, I will insist that
>>>>>> changes that introduce fundamental incompatibilities must be
>>>>>> carefully
>>>>>> weighed against the benefits they bring.
>>>>>>
>>>>>> Otherwise, hey, I'm willing to "refactor" Squeak to use proper
>>>>>> static
>>>>>> typing, which will make the code "more extensible", "cleaner" or
>>>>>> whatever attributes of choice you've been recently using. And
>>>>>> all you
>>>>>> need to do is to rewrite every single method declaration which
>>>>>> seems a
>>>>>> fair deal since you're requesting the same from the FFI users.  
>>>>>> See
>>>>>> what I mean? ;-)
>>>>>>
>>>>>>> The following presentation of Gilad Bracha might be  
>>>>>>> interesting to
>>>>>>> read, especially the end of the presentation where it says:
>>>>>>> "Rotting
>>>>>>> Bits for a better World -- A model which expects
>>>>>>> incompatibility as a
>>>>>>> matter of course is better than denying change."
>>>>>>>     http://www.bracha.org/oopsla05-dls-talk.pdf
>>>>>>
>>>>>> As usual, a thought-provoking presentation from Gilad. He is
>>>>>> certainly
>>>>>> right that being prepared for change instead of denying it is the
>>>>>> better strategy - whether that means to entirely drop having any
>>>>>> negotiated interfaces however, stands very much to reason.
>>>>>> Personally,
>>>>>> I find that a necessary requirement to be able to deal with  
>>>>>> change.
>>>>>>
>>>>>> Cheers,
>>>>>>   - Andreas
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Re: Proposal for Extensible Primitives (was: FFI)

Lukas Renggli
In reply to this post by Andreas.Raab
> a) Where do you see the advantage of it for your work? How would you describe the value added?

- consistent primitive syntax
- compiler gets simplified
- alt+n lists all FFI primitives

> How would you argue to convince someone else
> that their code should be changed to the new model?

- a better world, though I don't care if people prefer to work with
Squeak 3.5 ;-)

> b) Since there is room for ambiguity in supporting the current FFI spec
> and the proposed changes, do you think both styles should be supported
> for an intermediate period?
>     b1) If yes, for how long?
>     b2) If no, how do you propose to deal with migration?

- both styles could be supported next to each other
- automatic conversion script (the change is minimal)

> c) Given the choice, would you rather have an "inplace" change or
> perhaps an alternative version of the foreign function interface, aptly
> called FFII (pronounce as FF-2)?

- FFII would be a good approach, I think. It could be cleanly
loaded/unloaded from the image and would not require compiler patches.
FFI could be deprecated, but would still work in 3.9.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch

Reply | Threaded
Open this post in threaded view
|

Re: Proposal for Extensible Primitives (was: FFI)

Alejandro F. Reimondo
In reply to this post by Andreas.Raab
Hi,
I feel like one of the "potential FFI" users, because I
 needed to access API calls in the past...
But when I read the implementation of FFI I returned
 to my simple API call mechanism, because it worked
 for me, and because I did not try to convince anyone
 about my point of view about the topic. [1]
I think that anyone can make a branch in any part
 of squeak (or any other smalltalk) and publish
 the results without been in the concordance with
 the guides (nor promoted people).
Following the own path has been proved a very
 good solution for innovation and give us freedom.
People that are free do not need any "maintainer",
 do not need to follow/wait anyone and can invest
 the time and resources (free time or bussiness related)
 to make real innovations without wasting efforts
 in convincing people with other point of views
 (the preservation of diversity).
I understand the value of some referents to follow
 and how much it motivates the newbies and people
 in auto-learning process; but I want to say that we are
 all free to make our changes in any part of a Squeak
 environment and publish them if anyone ask for it.
I have put my comment here because I do not
 know where is the place to inform bad experiences
 on parts of the squeak environment.
best,
Ale.
[1] I did not accept the complexity proposed by FFI
 mechanism and it force my solutions to be outside
 the suggested solutions to use by followers. It was
 one of the "side effects" of meritocracy and the
 current model of squeak direction. I really thought
 about investing efforts in trying to change people,
 but desided not to doit because I do not have
 compromise with my ideas nor the products
 of my activities in Squeak (and other
 smalltalks).

----- Original Message -----
From: "Andreas Raab" <[hidden email]>
To: "The general-purpose Squeak developers list"
<[hidden email]>
Sent: Thursday, August 17, 2006 1:39 AM
Subject: Re: Proposal for Extensible Primitives (was: FFI)


> Ron Teitelbaum wrote:
> > To be sure it is possible that my reactions to the arguments are the
result

> > of naivety.  I am not aware of much of the past history and I have not
> > reviewed the relative parser implementations.  I will back off and let
> > Andreas and Lukas discuss the details.
>
> Please don't. We have too little user perspective in this discussion. As
> a maintainer, I will be perfectly happy to change things if there are
> FFI users requesting changes (and if they are within my abilities to
> change). So rather than listening to Stefane's insults I'd like to get
> more feedback from FFI users, in particular with respect to the
> following questions:
>
> If you are an FFI user and like the proposed changes:
> a) Where do you see the advantage of it for your work? How would you
> describe the value added? How would you argue to convince someone else
> that their code should be changed to the new model?
> b) Since there is room for ambiguity in supporting the current FFI spec
> and the proposed changes, do you think both styles should be supported
> for an intermediate period?
>     b1) If yes, for how long?
>     b2) If no, how do you propose to deal with migration?
> c) Given the choice, would you rather have an "inplace" change or
> perhaps an alternative version of the foreign function interface, aptly
> called FFII (pronounce as FF-2)?
>
> Cheers,
>    - Andreas
>


Reply | Threaded
Open this post in threaded view
|

RE: Proposal for Extensible Primitives (was: FFI)

Ron Teitelbaum
In reply to this post by Andreas.Raab

> From: Andreas Raab
> Sent: Thursday, August 17, 2006 12:40 AM
>
> If you are an FFI user and like the proposed changes:
> a) Where do you see the advantage of it for your work?

I am not able to see and advantage it appears to me that the requirement of
changing the code does not come with a corresponding benefit to me the user.
It may very well benefit the developers of the system and Squeak for future
enhancements but those benefits have not been well stated.  

I've been dealing with very bright programmers for 20 years now.  I lead
many great teams, and this is not the first time I've had this argument.  It
is always more fun to write systems when you have no users, and it is always
better to put a lot of effort into making sure you have a model that is
flexible so that changes can be made later, because once you commit to
something that is used by your system, esp. 24/7 systems you need support it
going forward unless there is a really really good reason to change it.

> How would you describe the value added?

I can not.

>How would you argue to convince someone else that their code should be
>changed to the new model?

I can not.

> b) Since there is room for ambiguity in supporting the current FFI spec
> and the proposed changes, do you think both styles should be supported
> for an intermediate period?
>     b1) If yes, for how long?
>     b2) If no, how do you propose to deal with migration?

My proposal is that we use the better implementation if there is one to
support multiple syntaxes so that users are not required to change their
code, if that is possible.  If there isn't a better implementation I suggest
we focus our energies on something else.
       
> c) Given the choice, would you rather have an "inplace" change or
> perhaps an alternative version of the foreign function interface, aptly
> called FFII (pronounce as FF-2)?
>

No I think this is a really bad idea.  It doesn't make sense to enhance the
system by forking off into a new area leaving users to wonder which path to
take.  You only double the support requirements, and again you require those
that want to migrate to the new system to change their code without
providing the benefit, or justification to do so, except maybe the threat
that future changes will only be made on the new version.

By the way, I've finished my FFI work on Microsoft Cryptographic Store.  I'm
able now to bring up user certificates and use them for security in
Smalltalk.  This was no easy feat, navigating the Microsoft security system
was pretty complicated.  You did a great job on FFI and I am very happy with
the results.  Thank you every one, esp. Andreas, John, Yoshiki and Nicolas
for your help and support.

Ron Teitelbaum



12