Le mer. 27 mai 2020 à 07:09, tim Rowledge <[hidden email]> a écrit :
If you try putting C++ syntax on a postcard, you probably gonna beat the number of folds you can perform on a sheet before it fits in any mailing box. > So what the FFI author does is define a shared pool which has platform-specific metadata, specifically the necessary include files and version selection defines for each relevant platform. The FFI shared pool machinery takes care of generating the program when necessary (only when authoring an FFI), and running it when necessary (only once for a single-platform app, only when launching on a different platform to the one snapshotted on) |
> On 2020-05-26, at 10:29 PM, Nicolas Cellier <[hidden email]> wrote: > > > > Le mer. 27 mai 2020 à 07:09, tim Rowledge <[hidden email]> a écrit : > > > > > On 2020-05-26, at 8:10 PM, Eliot Miranda <[hidden email]> wrote: > > DLLCC’s C parser is a nightmare to maintain, > > I certainly remember *that*. Poor Marcel Schelvis practically went mad working on it. > > If you try putting C++ syntax on a postcard, you probably gonna beat the number of folds you can perform on a sheet before it fits in any mailing box. I think that 'postcard' would end up the size of one of those giant roadside posters that require guys on a crane to install. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim Strange OpCodes: DNPG: Do Not Pass Go |
In reply to this post by Tobias Pape
On Mon, May 25, 2020 at 07:16:02PM +0200, Tobias Pape wrote: > > > TL;DR: FFI good, Plugins also good. > > just my 2ct. > > Best regards > -Tobias > Well said. I would only add that Juan Vuletich has written a nice, balanced overview of the use of FFI and VM plugins here: https://lists.cuis.st/mailman/archives/cuis-dev/2020-May/001736.html Dave |
wrt the speed of calls to plugins, I wrote that mechanism a few years back (um, actually 15 years apparently) and the actual routine call should be exactly as fast as a number primitive - the code address is in the cache tables. Hmm.. does cog inline cache stuff affect that? I don't think so but could be wrong. The only slow-down likely would be the potentially longer-winded routines to get stuff of the stack/instvars and put answers back. If one were to postulate changing to only internal plugins (to provide some modicum of modularity and maintain the named prim interface that was a key original driver) and having all external code be ffi called, then I rather think we could improve the get/put code. > On 2020-05-27, at 3:28 PM, David T. Lewis <[hidden email]> wrote: > > > https://lists.cuis.st/mailman/archives/cuis-dev/2020-May/001736.html Yup; a very good summary. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim A conscience is what hurts when all your other parts feel so good. |
In reply to this post by Tobias Pape
Tobias Pape <[hidden email]> schrieb am Mo., 25. Mai 2020, 14:03:
Just to follow up on my modules remark: I meant to split the object memory, or at least the class library, in multiple files, so you can swap one out for another version if needed, even without needing to run the Smalltalk system. Like a Smalltalk shared library. Then you could leave the main part of the image with your work environment untouched, but offline-replace some subystem like the Display or encryption. Like with plugins. Since your problem with Self seems to be that you could not modify the system because you could not run the system in the first place, such splitting does not help by itself. You would still need a working toolset to modify another Smalltalk image or parts thereof. Text editors and C compilers seem to be mostly available on developer machines, to edit files that don't belong to the text editor or the C compiler itself. :-) |
Free forum by Nabble | Edit this page |