Hi Tim. >>We can try; and a written explanation intended for someone that hasn’t used it before is a pretty good exercise in testing that it actually works. HelpBrowser openOn: CMakeVMMakerSqueakStartHereHelp <--done. Gives an example workflow for generating a CMake build tree and compiling the VM. HelpBrowser openOn: CMakeVMMakerSqueakStepByStepNewConfigurationHelp <--first draft almost done, should get you to the point where its a matter of setting CFlags, Libs, Definitions etc, for your Platform and then buildType. Top menu->Help->CMakeVMMakerHelp includes the above and other help work I will be editing. My goal is that a complete newbie can follow the instructions and be able to get an entire VM producing image and compile the thing just by following help starting with a bash shell script that downloads and configures an image for VM production followed by what you will be working with above. Feedback from you (and others) on using the thing will be incorporated into that. I would start with the StarHereHelp and just generate a cmake tree using the example Builder and Configuration. Once you have generated the CMake tree, the (too verbose, first-draft) NewConfigurationHelp in your case boils down to copying an existing configuration and making some minor modifications to it. Please note that I have only built out the #build buildType--I will be building out the build.assert, build.debug, etc....buildTypes when the Help is done and I have resolved NoDbgRegParms issue on my platform for those buildTypes. cheers. tty. |
In reply to this post by B J
BJ, When you get this working, could you please cut-n-paste your top-level CMakeLists.txt and the config.cmake file? I can then set up a CMakeVMMakerSqueak FreeBSD10.1 configuration so that it generates what you have. Thanks. tty |
In reply to this post by tty
Hi,
here's someone who once (as in one single time) built a Squeak 3.7 Windows VM, forgot everything and is eager to test and report. What do I have to download to start? I'd like to start on a Raspberry Pi but also have an Ubuntu 12.04 Server without X where I use RFB in Squeak. Cheers, Herbert |
In reply to this post by tty
I’m looking forward to this.
Yesterday, in a process of debugging my systemd experiments [1], I compiled an interpreter vm. I mention this, because you are talking about making the process easy. David T. Lewis made a fire-and-forget script that is the easiest way I’ve seen so far to compile a vm on Linux. [2] I’m looking forward to CMake classes for building a Squeak vm.. Chris It didn’t seem to compile an X11 plugin, so I copied one from an earlier build. And I had to pull the no-sound plugin from out of its folder, so the vm could find it. The squeak.sh script wasn’t working.
|
In reply to this post by Herbert König
Hi Herbert. Thanks, you have prodded me into realizing that I need to write Help on how to do a manual setup. I will do that now and get back to you. I have a bash shell script that will download and completely configure an image for both VMMaker code generation and CMakeVMMakerSqueak cmake generation. However, when I tried to run it in cygwin on my dos partition, it did not work. For Windows, there is additional platform work to be done. I was going to do it after the *nix release is up and on auto-pilot. If you have the time and energy and would like to contribute, I can walk you through the steps on setting up what I call a "Platform Configuration" which is basically a superclass that sets up "platform specific global information' In *nix this has been done. On Mac and Windows, what is in place is a port of what exists in pharo's CMakeVMMaker package to Squeak and it has not been tested. What follows is a longer explanation of what I mean. CMakeVMaker(Squeak) stores CMake files in "Configurations". There are several layers to them. CPlatformConfigForSqueak <--1. GLOBAL superclass for CMakeVMakerSqueak configurations. SqueakUnixConfig SqueakMacintoshConfig SqueakWindowsConfig <--2. Provide OS Specific CMake output. Linux32ARMv6Config SqueakWin32x86Config SqueakWin32x86Config <--3. Platform specific Configurations SqueakBSD32x86Config <--3.a Platform specific Configuration SqueakSunOS32x86Config <--3.b Platform specific Configuration ...... <--3...... Platform specific Configuration Linux32x86Config <--3.z Platform specific Configuration Linux32x86SqueakCogV3Config <--4 Platorm Specific [Language]. [VM] [Memory Model] Configuration this is what generates CMake to build Squeak Cog V3 on this platform The *Nix platform is just a matter of building out the level 4 Configurations. The Mac and Windows platforms need building out and testing at level 3. What that means is "CMake Drives The Process" and whatever Windows specific template is correct CMake needs to be encapsulated in the corresponding level 3 Configuration. On the *Nix platforms, the CMake Template is basically Ian Piumarta's work from the Standard Interpreter with only some cosmetic differences. level 4. Configurations just specify build time stuff--where the source is, what compiler flags, linker flags, pre-processor flags, definitions--they are basically the equivalent of Eliot's MVM files in the Cog/build.xyz/lang.vm.mm/buildtype/mvm tree. On the Windows and Mac platforms, I do not know if Ian's work is what we need or if something better can be done that is Windows specific and utilizes the Windows based build suite. (fwiw, I think it would be really cool to see people stepping through VM code using Visual Studio...) So, to summarize. On the Windows and Mac platforms are NOT at a level 4 stage like Linux is. If you would are interested, I can walk you through the dev process--its quite easy--its the equivalent of generating Seaside Components to build a web-page. You figure out what you want the web-page to look like and then generate the components you want to get the output you want. It is work, however and I don't know if you want to spend time on it. cheers. tty. |
Hi Tim,
nowadays I want to build on Linux (Raspberry Pi). So my question was where I could get your HelpBrowser pages as far as they are done. I only found CMakeVMMaker on Squeaksource but it was too dated to contain your HelpBrowser additions. I see this as part of learning some Linux. Maybe you could send me that bash script you mention below. I would study that, run it and then try to follow your CMakeVMMakerSqueakStartHereHelp. And if that's not available for RasPi I would use my Ubuntu server in Text mode where I run Squeak headless through RFB. I'm less interested in Windows at the moment. Especially I don't have (and don't want to get) Visual Studio. It's just that back then I did it on Windows using the process that is outlined at squeakvm.org. I was just trying to qualify as newbieish enough to give useful feedback by stumbling into everything you implicitely assume a newbie knows but doesn't know. Cheers, Herbert Am 17.12.2014 um 15:38 schrieb
gettimothy:
|
In reply to this post by David T. Lewis
<snip>
>> I noticed after configuring the source code that there was a warning >> from cmake about there not being a CMakeLists.txt file in: >> >> /root/Desktop/squeak/platforms/unix/npsqueak > > I think that is a harmless warning, so you can ignore it. I'm not so sure. After looking at a few files with that same name in other directories, it might be critical to the overall installation process. I have the impression that it might contain code relating to plug-ins, but I don't know right now which those might be. > > >> >> Apparently, CMakeLists.txt has to be in all input directories but >> earlier versions skipped it. But, the current version of cmake >> apparently won't allow it unless Policy CMP0014 is set. I surmised >> that by setting that parameter to OLD, I could get around it. >> >> After setting that and then running "make", it appears that everything >> was built. I got no errors and some warnings, leading me to believe >> that the parameter was a key factor. >> >> The so.vm-display-X11 plug-in now exists in: >> >> /root/Desktop/squeak/build/vm-display-X11 >> >> so that problem appears to be solved. However, if I run: >> >> /root/Desktop/squeak/build/squeakvm >> >> it can't find it unless I specify that plug-in's location using the >> "plugins" parameter to specify its path. Now it complains that squeak >> can't find a sound driver. >> <snip> > Just install it and give it a try. Do "sudo make install", and run > /usr/local/bin/squeak yourimage.image The problem is that as it is, without having run "make install", Squeak crashes and dumps a file. > > Are you doing this all under a root user ID (I notice your build > directory is under /root)? Bad idea, but you can skip the "sudo" part > if you are already root. I installed this on an external HD and I'm using it purely for testing. By putting it on that drive, I can go ahead and break things without trashing what I have in my "official" installation. By running as root, I can look directly at files and tinker with them. Using "sudo" doesn't always let me do that. <snip> |
In reply to this post by tty
<snip>
> When you get this working, could you please cut-n-paste your top-level > CMakeLists.txt and the config.cmake file? "When you get this working".... I'm not sure I'm the best one to be doing this. My programmng ability appears to limited to excelling in writing spaghetti code and lots of bugware. However, I'll give it a shot to see if I might actually do something constructive. Such things have been known to happen. Then again, purple unicorns have reportedly been sighted from time to time as well.... > > > I can then set up a CMakeVMMakerSqueak FreeBSD10.1 configuration so that it > generates what you have. Of course, but it'll depend on whether I make any headway. It's been many years since I did anything of this nature. <snip> |
In reply to this post by B J
On Thu, Dec 18, 2014 at 03:23:31AM +0000, B J wrote:
> <snip> > > >> I noticed after configuring the source code that there was a warning > >> from cmake about there not being a CMakeLists.txt file in: > >> > >> /root/Desktop/squeak/platforms/unix/npsqueak > > > > I think that is a harmless warning, so you can ignore it. > > I'm not so sure. After looking at a few files with that same name in > other directories, it might be critical to the overall installation > process. I have the impression that it might contain code relating to > plug-ins, but I don't know right now which those might be. It is a harmless warning. Ignore it. > > > Just install it and give it a try. Do "sudo make install", and run > > /usr/local/bin/squeak yourimage.image > > The problem is that as it is, without having run "make install", > Squeak crashes and dumps a file. You are running some random mix of 64 bit executables and 32 bit plugins. This will crash and dump core. Don't do that. As I said before, you just need to install your VM and give it a try. If you prefer to skip the installation stop, you could manually copy the squeakvm executable and the */so.* modules from your build directory into some target directory and run it from there. If you then put your image and changes and and sources files into the same place, and run the squeakvm executable and the various plugin modules all from the same directory, it should work. But I strongly advise you *not* to do this. Just install your newly built VM properly and try it. The entire installation will go into /usr/local so you can easily get rid of it if you are not happy with the results. Summmary: If you install your VM, it will probably work. If you do not install it, it probably won't. Dave |
<snip>
>> The problem is that as it is, without having run "make install", >> Squeak crashes and dumps a file. > > You are running some random mix of 64 bit executables and 32 bit plugins. > This will crash and dump core. Don't do that. As I said before, you just > need to install your VM and give it a try. > > If you prefer to skip the installation stop, you could manually copy the > squeakvm executable and the */so.* modules from your build directory > into some target directory and run it from there. If you then put your > image and changes and and sources files into the same place, and run > the squeakvm executable and the various plugin modules all from the same > directory, it should work. > > But I strongly advise you *not* to do this. Just install your newly built > VM properly and try it. The entire installation will go into /usr/local so > you can easily get rid of it if you are not happy with the results. > > Summmary: If you install your VM, it will probably work. If you do not > install it, it probably won't. I just tried what you suggested, putting the image on the desktop. Nothing much happens for several minutes, though, when checking using top, I see that it takes a large amount of CPU time. Then it crashes with the only message being "Illegal instruction (core dumped)". I've noticed that, during "make", there is an error with Mpeg3Plugin. Even if I disable that during "configure" and proceed with the rest of the installation process, I still get the same crash and error message when I install Squeak and try to run it. One difference I noticed between when I installed Squeak earlier this year on a different hard drive from the FreeBSD repository and now is that CMake was updated. Back then, it was done using 2.8.x but now it's 3.x and it is fussy about things like CMakeLists.txt files. I'm not quite sure how this exactly affects the building process. <snip> |
In reply to this post by David T. Lewis
On 18.12.2014, at 05:38, David T. Lewis <[hidden email]> wrote:
> > On Thu, Dec 18, 2014 at 03:23:31AM +0000, B J wrote: >>>> >>>> /root/Desktop/squeak/platforms/unix/npsqueak >>> >>> I think that is a harmless warning, so you can ignore it. >> >> I'm not so sure. > > It is a harmless warning. Ignore it. "npsqueak" is for running Squeak inside a web browser as a plugin ("np" is short for "netscape plugin"). It is not used at all when running Squeak as a stand-alone application. - Bert - smime.p7s (5K) Download Attachment |
In reply to this post by B J
On Thu, Dec 18, 2014 at 05:46:38AM +0000, B J wrote:
> <snip> > > >> The problem is that as it is, without having run "make install", > >> Squeak crashes and dumps a file. > > > > You are running some random mix of 64 bit executables and 32 bit plugins. > > This will crash and dump core. Don't do that. As I said before, you just > > need to install your VM and give it a try. > > > > If you prefer to skip the installation stop, you could manually copy the > > squeakvm executable and the */so.* modules from your build directory > > into some target directory and run it from there. If you then put your > > image and changes and and sources files into the same place, and run > > the squeakvm executable and the various plugin modules all from the same > > directory, it should work. > > > > But I strongly advise you *not* to do this. Just install your newly built > > VM properly and try it. The entire installation will go into /usr/local so > > you can easily get rid of it if you are not happy with the results. > > > > Summmary: If you install your VM, it will probably work. If you do not > > install it, it probably won't. > > I just tried what you suggested, putting the image on the desktop. > Nothing much happens for several minutes, though, when checking using > top, I see that it takes a large amount of CPU time. Then it crashes > with the only message being "Illegal instruction (core dumped)". Thanks for trying it. Darn. I'm sorry it did not work. I'm not really sure what else to suggest at this point :-( Well, maybe one thing - you might try compiling with gcc optimization turned off. I think that the make file I sent is using "-O3" which is fairly aggressive, you might try setting to "-O0" (zero) and see if it makes a difference. > > I've noticed that, during "make", there is an error with Mpeg3Plugin. > Even if I disable that during "configure" and proceed with the rest of > the installation process, I still get the same crash and error message > when I install Squeak and try to run it. > > One difference I noticed between when I installed Squeak earlier this > year on a different hard drive from the FreeBSD repository and now is > that CMake was updated. Back then, it was done using 2.8.x but now > it's 3.x and it is fussy about things like CMakeLists.txt files. I'm > not quite sure how this exactly affects the building process. > > <snip> I don't think that the CMake version would make any difference. Sorry, Dave |
In reply to this post by Herbert König
Hi Herbert Thank you for the feedback. Getting and end-user perspective is very helpful and will help tighten up the product. I am a newbie too and this project is an attempt to start grokking the VM world. Email me directly at gettimothy [at] zoho [dot] com and I will reply back with the script attached. The script replaces the (broken) buildsqueakcmakeimage.sh script currently in the Cog/image folder at That script downloads and configures and entirely new image. Its purpose is to get newbies up and running quickly. If you have an existing image you want to bring the tools into, we can do that too. Below are the (first draft) steps to do that. -------PREREQUISITES----- GCC autotools suite CMake http://www.cmake.org/ ----SETUP WITH AN EXISTING 4.5 IMAGE--- [setting up a VMmaker/CMakeVMMakerSqueak build tree relative to the Squeak Install] In your Squeak installation, create a directory named 'oscogvm' as a subdirectory under wherever your .image file is. For the All-In-One this will be something like: Squeak-4.5-All-in-One.app/Contents/Resources/ For a custom install, its where you have your .image file. Copy the entire Cog/ subdirectory tree to the oscogvm directory. it should look like this:
Create a symlink at the same level as your .image file like so: ln -s oscogvm/platforms platforms On my box, I see
Start Squeak. Tools->FileList->Navigate to oscogvm/image/BuildSqueak45CMakeVMMakerImage.st Right-click and "fileIn entire file" Squeak will save and quite at the end of the script. Restart it. You will see VMMaker is launched and several workspaces open that are supposed to provide helpful text. (I just tested locally and they are empty. no worries for now. just close them) Top toolbar->Help-CMakeVMmaker->StartHere After you read that we will be working through: Help->CmakeVMMakerSqueak->DeveloperGuide->Configurations->Example Workflow: New Configuration. The last steps on setting up the configuration are not written yet, I will try to get to them today. cordially, tty |
In reply to this post by Bert Freudenberg
On 12/18/14, Bert Freudenberg <[hidden email]> wrote:
> On 18.12.2014, at 05:38, David T. Lewis <[hidden email]> wrote: >> >> On Thu, Dec 18, 2014 at 03:23:31AM +0000, B J wrote: >>>>> >>>>> /root/Desktop/squeak/platforms/unix/npsqueak >>>> >>>> I think that is a harmless warning, so you can ignore it. >>> >>> I'm not so sure. >> >> It is a harmless warning. Ignore it. > > Trust David on this one. And his other points too, of course ;) > > "npsqueak" is for running Squeak inside a web browser as a plugin ("np" is > short for "netscape plugin"). It is not used at all when running Squeak as a > stand-alone application. I gathered that after looking around some of the files. However, I'd like to see if I can get CMake to ignore it by setting its policy to an older version as it apparently ignored that missing file. |
In reply to this post by David T. Lewis
<snip>
>> I just tried what you suggested, putting the image on the desktop. >> Nothing much happens for several minutes, though, when checking using >> top, I see that it takes a large amount of CPU time. Then it crashes >> with the only message being "Illegal instruction (core dumped)". > > Thanks for trying it. > > Darn. I'm sorry it did not work. I'm not really sure what else to suggest > at this point :-( > > Well, maybe one thing - you might try compiling with gcc optimization > turned off. I think that the make file I sent is using "-O3" which is > fairly aggressive, you might try setting to "-O0" (zero) and see if > it makes a difference. It might be worth trying. <snip> |
Wonders never cease. Just for a lark, I successfully installed Squeak
on PC-BSD and it ran without a hitch. I guess I made some progress. I'll still keep tinkering with it on FreeBSD, though. PC-BSD is the complete package and, with FreeBSD, I can customize the installation. |
BJ and David.
Could you please provide a .tgz of the successful CMake build trees from BJ? I can encapsulate them in CMakeVMMakerSqueak. thx. tty |
Free forum by Nabble | Edit this page |