On Mon, Dec 9, 2013 at 2:01 AM, [hidden email] <[hidden email]> wrote:
It is non-trivial, but possible (I've done it twice with VisualWorks). Spur should help (pinning is important). Callbacks r essential (Cog provides them).
1. the VM is restructured as a launch .exe and a dll. 2. the VM is restructured so that one can include an image as a resource (windows exe's) or static data (e.g. unix); one can use an image file but if one really wants a library it must exist just as a library
3. one needs an API to the VM, and essentially that requires an object request broker (ORB) between the API and callbacks into the image, so that one can query for objects (including selectors) to be able to send messages to them
Note that step 3. can be implemented as a small stand-alone library that talks to the VM running in a separate process, and on multi-core machines this can be a more robust architecture; there's no protection against a program corrupting the Smalltalk heap if the heap is in that program's address space. But if the requirement is really a linkable library (that does not spawn processes) then that's what one builds.
I embedded VW in a web browser as a Netscape plugin using both variants of 3. above back in the 90's. It is very possible. The limiting factors are time and money as usual.
I would love for VM discussions to be carried out on vm-dev ;-)
best, Eliot
|
On Mon, Dec 9, 2013 at 10:32 AM, Eliot Miranda <[hidden email]> wrote:
or at least cc'ed there...
best, Eliot
|
In reply to this post by Esteban A. Maringolo
Esteban wrote:
> I'd prefer ObjectConnect shutdown their website rather than having that. > And, at certain degree the same applies to my beloved ObjectArts and > its Dolphin masterpiece. What a nonsense - why should they shutdown their site if it is valuable to provide infos and new downloads to their customers? If you want to shut down any page that is not up-to date you may have to shut down a big part of the internet. > ps: Java is no Hype. You might like the language or not, but it has > established throughout the last decade, and is the language/platform > that runs on almost all devices. Only C can beat that. I think mainstream is the better word here. I like Java and use it a lot. Some days I dislike it when I see how complicated things can get although there are better easier alternatives. Others feel the same which is the reason for Groovy, Scala, ... And there is no doubt about Javas and especially the JVMs place in the IT universe. But Smalltalk is (at least to me) not interesting because it is a programming language - it is interesting because it is a dynamic object system that is easily changeable (including metamodel and language itself). And Pharo should not stop changing this object system until something new and better comes out of it... Bye T. |
In reply to this post by Stéphane Ducasse
Stef wrote:
> I like the idea that you can get 50kb applications. > Now since this is a closed system and windows-centric. > But I like that it shows that Smalltalk does not have to be the image centric way. You have to additionally count the runtime DLL also which is also a few KB. But even when storage is cheap size matters. Same for Smallscript which was/is also very outstanding. Write a small ST script, run it from the console or IDE. Package a few classes into a shared library and compose the image from loadable binary components in a few seconds. > > The newest ST/MT 6.3 version (now 64 bit) is from end of November 2013 > > Now it is not a community thing. :) Yes its not. > And the web site stop and 5.6 in 2009. No, thats just a bug on the "news" page. Look at http://www.objectconnect.com/release_downloads.htm which is the one that gets updated from time to time and as I said latest release was November 2013 there. > Last time I talk to tarrick he told me that he could control the "no gc in the next 250 frames on PS2" > but it was in 1998 :) His name is Tarik Bye T. |
In reply to this post by Torsten Bergmann
2013/12/9 Torsten Bergmann <[hidden email]>:
> Esteban wrote: >> I'd prefer ObjectConnect shutdown their website rather than having that. >> And, at certain degree the same applies to my beloved ObjectArts and >> its Dolphin masterpiece. > What a nonsense - why should they shutdown their site if it is valuable > to provide infos and new downloads to their customers? I can't shutdown anything that's not mine. And that's perfectly fine. The point is that, IMHO, for the Smalltalk community it's counterproductive. It's my opinion, I don't want you to share it :) > If you want to shut down any page that is not up-to date you may have > to shut down a big part of the internet. Nothing sells less and causes more rejection than an outdated site. Particularly if it is about programming. > But Smalltalk is (at least to me) not interesting because it is a > programming language - it is interesting because it is a dynamic object > system that is easily changeable (including metamodel and language itself). We agree on this. And that's why we're here. > And Pharo should not stop changing this object system until something new > and better comes out of it... If you want to reach broader audiences I'm 100% confident that you need not only a good product, but also good marketing assets. Though I never used it, I know the benefits of S/MT because I'm a long time smalltalker, but what about somebody who's evaluating other alternatives? Will a Company invest a million dollar (or a hundred at least) in a product built with a technology whose website is like ObjectConnect's one? I know this business runs on hype for a good part, but some things are just unavoidable. Regards, pd: I rather don't continue this here, it's hardly Pharo related. Pharo is doing a good job in this aspect, or at least much better than many predecessors. |
In reply to this post by Ben Coman
very interesting I wonder whether is pharo related or how easily can be ported to Pharo. The funny thing about nativeboost is that because it has its own inline assembler it is possible to use nativeboost to debug the machine code generated by nativeboost or to be more precise AsmJit. Of course thats a manual way of doing this and less ideal than using a dedicated debugging tool but its definitely an interesting concept. I am also wondering and imagining things about Shared memory concept , where 2 apps can shared the same memory addresses and so share data and wonder how nativeboost could help there since it offer complete access to memory. But of course that are low level concept I am not familiar at all, but I would not mind messing with them at least once. It could even eliminate the need to embed pharo inside a C app.
Definetly loads of ideas to explore here if one is willing to invest the time. On Mon, Dec 9, 2013 at 5:40 PM, <[hidden email]> wrote:
|
In reply to this post by philippeback
Now I'm too bad in C to make this dream comes true. Sadly. But I would love to have Pharo being able to be embedded in C.
|
Now, moving forward, what would be required to have an interpreter embedded in C, even if this means having another image with a special API and the whole enchilada?
At least a working prototype.
I have looked at the "Porting the VM" document and the part about headless (which is now done differently). What comes to my mind is to define a specific neutral C platform that would be able to execute basic bytecode.
From videos of Ben, I saw SystemTracer (or SystemTracer2) recreating a very tiny image making some noise to prove it was working. Could it be possible to target this kind of tiny image running inside a C program through a base interpreter? This would avoid having to deal with the whole primitives and plugins at the beginning.
Phil On Mon, Dec 9, 2013 at 9:07 PM, Stéphane Ducasse <[hidden email]> wrote:
|
In reply to this post by Torsten Bergmann
On Mon, 2013-12-09 at 11:37 +0100, Torsten Bergmann wrote:
> If you follow the hype and advertising you go to Java - if you search > for something more powerful you search for it and will find Smalltalk. That's no way to think! Smalltalk is wonderful, but it gains nothing by being obscure and largely forgotten. Whenever people are fans of something arcane there's a temptation for them to wear that obscurity like a medal. And it does no good. No good at all. Steve |
In reply to this post by Marcus Denker-4
I agree 100% with you, it takes like no effort to fine one of the millions of online sexy looking template and there like tons of apps out there that can autogenerate good looking websites.
But then I find this much , much worse -> http://java.com/en/ . Sure it looks more current but really ? Is that the best mega-company like Oracle can do. No because as it seems this is the same site they inherited from Sun. Actually as far I remember Java from back into 2000 that I was aware of its existence , the website has only slightly changed.
Actually I know of no language that has a very well designed web site. Taking full advantage of HMTL5 and the current technology. But I like Pharo website none the less. Java Hyped !!! What ? Are you serious ? Java - C++ - Javascript is the triangle of hate. Back in 2000 + was an army of blog posts of how dead Java is and still you can see articles of how much people dont like these languages. Not that I blame them , but I always kinda liked Java.
Hype is not the same thing as popular. I think the most Hyped language by far is Lisp , nothing can touch its hype. You could even believe that Lisp can cure cancer. I really like Lisp, but its over-hyped none the less. I had to try lisp because of how much overwhelmed I was by people saying how much of a great language it is. Learning Java was curiosity on the ground how popular it became and how fast. I never heard anyone describe Java as Lisp.
Actually the most hyped thing about Java is Clojure, guess what Clojure is , yeap Lisp :D "But Smalltalk is (at least to me) not interesting because it is a
programming language - it is interesting because it is a dynamic objectsystem that is easily changeable (including metamodel and language itself)." I could not agree more. I came for the IDE, I feel in love with live coding. Beatiful, makes coding 10 times more fun and very productive.
But I have to say Smalltalk really does justice to its name. Its a Small language but also everything feels like you Talk-ing to objects, I really like this conversation with my computer , If I could remove case sensitive it would be 100% natural for me. So yes definetly there is not much in the language to be surprised about but in the end that element of least surprise is what make Smalltalk a great choice for me.
On Mon, Dec 9, 2013 at 1:46 PM, Marcus Denker <[hidden email]> wrote:
|
I did a ton of Java (coding, training people, large scale deployments) and Java has enterprise grade features. For large apps/clients, not much can beat it these days.
If you need to staff a team for a sizeable project, not much choice either.
Things like this: http://ec.europa.eu/dgs/informatics/procurement/calls_running/index_en.htm where you see things like in this page (http://ted.europa.eu/udl?uri=TED:NOTICE:380314-2013:TEXT:EN:HTML) :
II.2.1) Total quantity or scope:
9 600 person-years (indicative, non-binding) for all lots for the maximum possible duration of the framework contracts.
I guess there are not enough Pharo-aware people on the planet to fit this :-) There, the choice is going to be Java. Now, except when working with decent tools like Jetbrains' IntelliJ (don't get me started with Eclipse), it is really annoying to type. I am even a reseller of these products FWIW.
Other than that it is a fine language. And cool people do cool things with it, like AOT (Ahead of Time) compilers. http://www.excelsior-usa.com/jet.html or the JRockitVM (from the ashes of BEA) http://www.oracle.com/technetwork/middleware/jrockit/overview/index.html
If we could get an instrumented VM like that, well... For manifesting ideas out of my head, I do prefer Pharo. As a self-employed individual, more power to me. As a startup junkie, more power to me. If I need a Java or .NET guy, I've plenty of contacts in cheap countries who do work very very well.
And f*ck Ruby on Rails. Now, I said it. As I am currently reading Andres Valloud books, and trying out the exercises, man, what do I know about how to make decent enough code. Close to nothing it seems. That is what is great in Pharo, a community of great minds. That you do not find often in a huge crowd as the chatter is too loud.
</rant> Phil |
In reply to this post by philippeback
On Dec 9, 2013, at 10:45 PM, [hidden email] wrote: > Now, moving forward, what would be required to have an interpreter embedded in C, even if this means having another image with a special API and the whole enchilada? > > At least a working prototype. > > I have looked at the "Porting the VM" document and the part about headless (which is now done differently). > > What comes to my mind is to define a specific neutral C platform that would be able to execute basic bytecode. > > From videos of Ben, I saw SystemTracer (or SystemTracer2) recreating a very tiny image making some noise to prove it was working. > > Could it be possible to target this kind of tiny image running inside a C program through a base interpreter? This would avoid having to deal with the whole primitives and plugins at the beginning. Guille continued and we are working to use his bootstrap as a basis for 4.0. Now you will need the key primitives such as become: at: at:put: and other. Stef |
I was more about primitives doing things with I/O.
On Tue, Dec 10, 2013 at 9:50 AM, Stéphane Ducasse <[hidden email]> wrote:
|
In reply to this post by philippeback
On 10 Dec 2013, at 09:26, [hidden email] wrote: > As I am currently reading Andres Valloud books, and trying out the exercises, man, what do I know about how to make decent enough code. Close to nothing it seems. Yes, it is a mind blowing book, one of the best books, if not the best, about programming I ever read. Sven |
Administrator
|
In reply to this post by askoh
Has anyone tried Pragmatic Smalltalk?
Is what he says about the VM being a relic of the past true? Can someone get David Chisnall to join the discussions? All the best, Aik-Siong Koh |
Free forum by Nabble | Edit this page |