On Nov 30, 2009, at 2:04 PM, Steven Kelly wrote:
> A major change in VM graphics support would be a new major number, > so there would be no expectation of backwards compatibility. Some of > the 7.* VMs have broken backward compatibility anyway in some way. So, I'm curious, just as a thought experiment. I can completely guarantee, that this is completely Travis talking in a "what if" sort of way, with absolutely no prior discussion about this with any one else from Cincom, so you don't have to worry about what this portends. What if the next few VW releases, at *most* a year apart, possibly less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They wouldn't be backwards compatible, they may require some work to upgrade code, but it couldn't be too bad, because the release cycle was kept smaller (incremental) and we have the onus of having to make the IDE and other tools work with any changes (eat our own dogfood). But without the bw compat constraint, progress might be made quicker. Just curious. -- Travis Griggs Objologist "An idea, like a ghost, must be spoken to a little before it will explain itself." - Charles Dickens _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
We'll take that as a cincom commitment of course :)
I guess it depends on what you mean by "not backwards compatible". With more than 1000 GUI's, painted not built with code, and with some code-built GUI bits, we were definitely concerned about the work that we foresaw with Widgetry, but were mentally planning for it. So again, it depends (for me) on exactly how its "not bw". We will of course live with whatever comes ... Travis Griggs wrote: On Nov 30, 2009, at 2:04 PM, Steven Kelly wrote:A major change in VM graphics support would be a new major number, so there would be no expectation of backwards compatibility. Some of the 7.* VMs have broken backward compatibility anyway in some way.So, I'm curious, just as a thought experiment. I can completely guarantee, that this is completely Travis talking in a "what if" sort of way, with absolutely no prior discussion about this with any one else from Cincom, so you don't have to worry about what this portends. What if the next few VW releases, at *most* a year apart, possibly less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They wouldn't be backwards compatible, they may require some work to upgrade code, but it couldn't be too bad, because the release cycle was kept smaller (incremental) and we have the onus of having to make the IDE and other tools work with any changes (eat our own dogfood). But without the bw compat constraint, progress might be made quicker. Just curious. -- Travis Griggs Objologist "An idea, like a ghost, must be spoken to a little before it will explain itself." - Charles Dickens _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc -- Dennis Smith +1 416.798.7948 Cherniak Software Development Corporation Fax: +1 416.798.0948 509-2001 Sheppard Avenue East [hidden email] Toronto, ON M2J 4Z8 <a class="moz-txt-link-freetext" href="sip:dennis@CherniakSoftware.com">sip:dennis@... Canada http://www.CherniakSoftware.com Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
On Mon, Nov 30, 2009 at 4:52 PM, Travis Griggs <[hidden email]> wrote:
We tend to keep VMs and images in sync, so this wouldn't be a problem for us. As long as the porting effort was reasonably small, we'd even be able to keep up, I think. Randy -- Randy Coulman [hidden email] _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
Bear in mind that way back in the day, we compiled the libraries for Oracle and Sybase into the VM on Unix platforms. The problem with that was that we often ended up a couple of release cycles behind those vendors, and customers would wonder why they were stuck on a specific DB library version. I fear that compiling the cairo libs into the VM would lead us to the same place, and ultimately, back to the same shared library decision we came to back then.
James Robertson Cincom Smalltalk Product Evangelist Talk Small and Carry a Big Class Library _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
On Nov 30, 2009, at 3:42 PM, Travis Griggs wrote:
>> >> I'm delighted to see the work on Cairo and OpenGL, and hope >> functionality like that makes its way into the base graphics system >> of VW soon. IMHO having bolt-on DLLs etc. doesn't work for the cross >> platform story: downloading and maybe even compiling 3rd party DLLs >> for several different platforms is acceptable for preview code, but >> not in production - at least not for a core component of the system >> like graphics. And here's my other off the wall disavowed question. In the continued interest of "tuning" some of the great feedback we've been getting on this and other threads. Here is a list of supported platforms for VisualWorks 7.7. Or at least close, I've probably got an error or two in here: Windows 2000+ MacOS X 10.4+ MaxOS X - X11 HP-UX 11.11+ IBM AIX 5.2+ Linux32/x86 (2.4 kernel, up to ancient versions of X11)+ Linux64/x86 (2.4 kernel, up to ancient versions of X11)+ Linux32/PPC (2.4 kernel, up to ancient versions of X11)+ Solaris/Sparc32 8+ Solaris/Sparc64 8+ We provide a turnkey precompiled library for Cairo for the first two in the list. Getting that was not too hard, but it IS work. Work that will go on. As we move into these other platforms, it gets harder. Since people don't do snazzy desktop development of ANY sort of AIX, especially 5.2 (2004), then there's not a lot of support for getting Cairo compiled there. I'm sure it's doable, but it gets harder and harder as we move in to these platforms. E.g, Cairo working Solaris 10, is something a number of people have demonstrated is doable, doing it on 8, is a tougher proposition. Given the enthusiasm to see Cairo integrated to a higher degree, how much effort does Cincom put into making it work on these other platforms? Which ones? Do we consign some of them to only headless/ server environments? Do we support it on just some platforms, which means we won't use it at all in any of our core tools probably, and therefore we won't "eat our own dogfood" as well? -- Travis Griggs Objologist For every adage, there is an equal and contrary un-adage _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
Am 01.12.09 01:28 schrieb Steven Kelly: > Or would it be best to take this opportunity to rewrite the whole of the > GraphicsContext tree? Two years ago, I experimented with a CairoWrapper which would automagically render all its components with Cairo instead of the VM primitives. Some widgets need a couple of additional methods, and ComposedText would have to be rewritten (have a look at what happens during text layout, and you'll agree). My conclusion was that it would be feasible to switch over to Cairo without too much effort. Rewriting ComposedText and its neighborhood will be the most expensive part of this. The experimental code is in the public repository: CairoGraphics-Wrappers CairoGraphics-Wrappers-Examples CairoGraphics-Widgets CairoGraphics-Windows This was done with VW 7.5 and Cairo 1.4. I don't know if the code is compatible with the latest versions of VW, CairoGraphics and the Cairo library. The experiment went as far as switching a whole image to Cairo :-) by evaluating CairoGraphics.UseCairoForAllWindows := true. If you search the archives of vwnc for the subject "Cairofying VisualWorks" of Oct 28, 2007, you'll find my summary of the experiment and a screenshot of a Refactoring Browser drawn with Cairo. Cheers, Joachim Geidel _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
Travis Griggs wrote:
> What if the next few VW releases, at *most* a year apart, possibly > less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They > wouldn't be backwards compatible, they may require some work to > upgrade code, but it couldn't be too bad, because the release cycle > was kept smaller (incremental) and we have the onus of having to make > the IDE and other tools work with any changes (eat our own dogfood). > But without the bw compat constraint, progress might be made quicker. The VM doesn't need to be backwards compatible. If the image isn't going to be backwards compatible with our code, we'd like to know about it early, so we can adjust our own development, or maybe have an influence on Cincom's decisions about backwards compatibility. The downside for Cincom would be when they need to back-port VM bug corrections to several versions, as part of supporting older VM versions. If you keep the VM build environments for each release, that shouldn't be a big problem. Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
James Robertson wrote 01 December 2009 04:04:
> Bear in mind that way back in the day, we compiled the libraries for > Oracle and Sybase into the VM on Unix platforms. The problem with that > was that we often ended up a couple of release cycles behind those > vendors, and customers would wonder why they were stuck on a specific > DB library version. > > I fear that compiling the cairo libs into the VM would lead us to the > same place, and ultimately, back to the same shared library decision we > came to back then. In effect, the current Windows VM is equally locked in to the ancient Windows GDI library. Customers do indeed wonder why it hasn't been updated ;-). Currently we can choose between "vwnt.exe + vwntoe.dll" or a single visual.exe, which effectively includes the DLL. Maybe Cairo could work in a similar way? Those who want the latest and greatest could use vwnt.exe + vwntoe.dll + cairo.dll (supplied by Cincom, but download or compile your own if you like), but visual.exe would contain everything. Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
> Here is a list of supported platforms for VisualWorks 7.7. Or at least
> close, I've probably got an error or two in here: > > Windows 2000+ > MacOS X 10.4+ > MaxOS X - X11 > HP-UX 11.11+ > IBM AIX 5.2+ > Linux32/x86 (2.4 kernel, up to ancient versions of X11)+ > Linux64/x86 (2.4 kernel, up to ancient versions of X11)+ > Linux32/PPC (2.4 kernel, up to ancient versions of X11)+ > Solaris/Sparc32 8+ > Solaris/Sparc64 8+ > > > We provide a turnkey precompiled library for Cairo for the first two > in the list. Getting that was not too hard, but it IS work. Work that > will go on. As we move into these other platforms, it gets harder. As long as Cairo was (is?) an experiment, it was fine to support only certain platforms. Whatever happens to Cairo, VW definitely needs a major overhaul of its graphics capabilities. For that to work, the new facilities need to completely replace the old ones. You simply don't have the resources to support two radically different graphics engines on every platform (I only presume to tell you this because I'm sure you know it anyway!). If Cairo is to be the new engine - and it looks the best bet at the moment - it would ideally work everywhere. Getting the X11 version working would probably cover most of the work for the remaining platforms, so the situation perhaps isn't as bad as it looks (based on what I understand of the similarities in current graphics code in the VM for those X11 platforms). If there is a real show-stopper in getting Cairo working on the *nix platforms, I suppose you'd have to consider keeping it in the VM, so you can better hide the difference between Cairo and non-Cairo platforms. The non-Cairo platforms simply wouldn't support alpha, antialiasing etc., and would draw gradient fills with a single colour. Steve _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Travis Griggs wrote:
> From a low level point of view, what you see in preview, is the basic > approach we *will* stick to with Cairo. We provide a precompiled DLL. > You don't have to download it, you don't have to compile it. It's > placed right next to your VM, so you don't even have to move it, other > than if you move the VM, you have to move the dll along with it. > > The CairoGraphics package might get integrated directly into > visual.im, or even base.im, who knows. But the C library will not be > compiled into the VM. dynamically linking the Cairo library is IMHO an advantage. If Cairo evolves (new features, bugfixes, performance improvements), we can immediately switch to the new version, instead of having to wait for the next VM build (which might include other "unwanted" changes). _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Am 01.12.2009 um 01:52 schrieb Travis Griggs: > What if the next few VW releases, at *most* a year apart, possibly > less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They > wouldn't be backwards compatible, they may require some work to > upgrade code, but it couldn't be too bad, because the release cycle > was kept smaller (incremental) and we have the onus of having to make > the IDE and other tools work with any changes (eat our own dogfood). > But without the bw compat constraint, progress might be made quicker. That's a thought into the right direction, IMO. I always dreamt of a spin-off redone from scratch, based on the "best of" we currently have, getting rid of old stuff that gets in the way of a lean and modern Smalltalk platform. That would mean carrying everything to the current state of the art without worrying about backwards compatibility. Eventually existing VW apps could be ported/moved to that next generation platform incrementally. It shouldn't be too hard to fire up some tools that translate to new idioms. Andre _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Travis Griggs wrote:
> On Nov 30, 2009, at 2:04 PM, Steven Kelly wrote: > > What if the next few VW releases, at *most* a year apart, possibly > less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They > wouldn't be backwards compatible, they may require some work to > upgrade code, but it couldn't be too bad, because the release cycle > was kept smaller (incremental) and we have the onus of having to make > the IDE and other tools work with any changes (eat our own dogfood). > But without the bw compat constraint, progress might be made quicker. If there are changes that are not backwards compatible, upgrading has to be worth the effort, either for our customers, or us as developers (perferably both ;). Changes are not bad. Backwards compatibility has a price, too. Besides, switching to a new VW release already means adjusting various packages. These are usually either development tools/extensions, or base patches. If the changes consist of code cleanups/changes that make it "just" easier for Cincom to implement other stuff, or just feel better, then answer would be probably "no", though. That doesn't mean that those changes are not welcome, or not necessary. Additionaly, to maintain the current stable release, this release model could be a accompanied by a "public patch repository": - upon release, the whole supported code base is published to a repository (read-only) - patches are published to this repository. This way, patches are more visible and easier to fetch than from the resoultion portal, which I strongly dislike because it's a totally seperate system. _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Eliot Miranda-2
It would be really interesting to know what cincoms engineering team is thinking about this subject: http://lists.squeakfoundation.org/pipermail/vm-dev/2009-November/003405.html If I understand this corrently (not sure though) this solution can theoretically be integrated int he VW and then provide a true solution for animations which as we all know are an integral part of modern UI's. @+Maarten, > Message du 30/11/09 01:46 > De : "Eliot Miranda" > A : "vwnc NC" > Copie à : > Objet : Re: [vwnc] Platform priorities > > On Sun, Nov 29, 2009 at 3:33 PM, Andre Schnoor wrote: > > > > > Am 29.11.2009 um 21:55 schrieb Eliot Miranda: > > > > And for that you get to discard the event queue road block in the VM and > > hook up to native event pumps. What would make that much easier is throwing > > away my overengineered and underperformant threaded FFI in place of David > > Simmons' architecture that I've recently implemented in Squeak. But that > > can be done independently in parallel. > > > > That'll be a huge step towards a much smaller much more focussed VM which > > doesn't get in the way of APIs and concentrates on providing effective fast > > and simple access to them. > > > > > > I absolutely agree, but, at least on the Mac this would need a natively > > multi-threaded VM, as all GUI code is required to run on the thread that > > owns the event loop. This can not be achieved with green threads. > > > > I'm not talking about green threads ;) See > http://lists.squeakfoundation.org/pipermail/vm-dev/2009-November/003405.html > > > > Andre > > > > > > > [ (pas de nom de fichier) (0.1 Ko) ] _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
I would gladly trade a little more work in porting/upgrading to a new
release for an acceleration in progress in the base system. Especially
with regards to GUI and graphics.
What if the next few VW releases, at *most* a year apart, possibly Mike Hales Engineering Manager KnowledgeScape www.kscape.com _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Travis,
While I’m all for more frequent releases, especially for bug fixes and incremental improvements and additions to the technology base, I don’t see that it will be practical to limit backward compatibility. The problem with your approach is that, in order to avoid major migration hassles, you have to move your code base every new release, at worst every other release. Our enterprise client is still running VW5i! We’re planning on moving it to VW7.7 next year, but the project is formidable. (We’ve already put more than a couple of man-years on it and haven’t yet gotten to a reliable, testable code base.) With VW7.7 I have to rewrite all of my Store extensions from VW7.6 because of the switchover to Glorp.
Some level of backward compatibility is a must. We might not need that much at the VM level, but we can’t afford to do major platform (hardware or software) upgrades more than once every three years. The kind of effort involved requires significant scheduling and planning – typically on the order of 9 months or so. If you had VW releases every 6-9 months, we’d be 3+ releases behind every time we scheduled a migration. Extensive BWC support would be essential!
Cheers!
Tom Hawker -------------------------- Senior Framework Developer -------------------------- Home +1 (408) 274-4128 Office +1 (408) 576-6591 Mobile +1 (408) 835-3643
-----Original Message-----
On Nov 30, 2009, at 2:04 PM, Steven Kelly wrote:
> A major change in VM graphics support would be a new major number, > so there would be no expectation of backwards compatibility. Some of > the 7.* VMs have broken backward compatibility anyway in some way.
So, I'm curious, just as a thought experiment. I can completely guarantee, that this is completely Travis talking in a "what if" sort of way, with absolutely no prior discussion about this with any one else from Cincom, so you don't have to worry about what this portends.
What if the next few VW releases, at *most* a year apart, possibly less, were a series of integral releases. VW 8, VW 9, VW 10, etc. They wouldn't be backwards compatible, they may require some work to upgrade code, but it couldn't be too bad, because the release cycle was kept smaller (incremental) and we have the onus of having to make the IDE and other tools work with any changes (eat our own dogfood). But without the bw compat constraint, progress might be made quicker.
Just curious.
-- Travis Griggs Objologist "An idea, like a ghost, must be spoken to a little before it will explain itself." - Charles Dickens
_______________________________________________ vwnc mailing list http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
I’ve spent the past couple of days reading through this entire list. In terms of GUI upgrades, especially for native widgets, could someone please explain why that is really so infeasible? I must be dense, so could you use small words? J While it may take a release or two to get there, it seems that we have all of the pieces [or thought experiments] in place to do it:
I think one objective is to be able to do this polymorphically: native and emulated widgets on the same window. It can’t be such a hard thing, since an emulated widget is really nothing more than a direct draw capability to the underlying window canvas. All the drawing primitives ultimately do that, so the adjustments should come naturally simply by moving behavior into the image. Where we have “LookPolicy” we’d add “NativeUIPolicy” or something.
I’m not denying that this wouldn’t take some significant work, but at this stage it could at least be planned or prototyped.
Cheers!
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by thomas.hawker
Travis,
I
share Tom's view. We are generally a "quiet" CINCOM customer...but
this thread makes me nervous. We tend to defer VW migrations because of
the extensive effort required in the past (we are currently on
7.2). My concern is that if previous "backward-compatible"
releases were painful for us, what extra effort may be needed for a
"non-backward-compatible" release? I would hope clients like us
get "consideration" during your release planning.
Interesting discussion.
Thanks,
Igor
Dmytryk
Export
Development Canada
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by thomas.hawker
In simple terms...
It is infeasible by common approach.
The way to eat an elephant is...one bite at a time. The Widgetry elephant
couldn't be swallowed in one sitting even with several years of preparation. The problem wasn't that Sames needed more time or encouragement, but that increasingly Cincom's
customers were expected to swallow really-really hard and Cincom finally came to realize that they wouldn't. End result was that Cincom practically starved itself figuring out how to consume that damn elephant in one sitting and decided to find something else
to eat instead.
In general...
Focus on finding solutions to the small problems at hand; the bigger problems work themselves out over time and opportunities become easier to exploit.
In an environment of Liberty, you don't need to risk for grand ambitions because you have the daily satisfaction of having taken one step closer in a direction that was demonstrably correct and practical.
Furthermore...
I want to see Cincom developers anxious to fix problems and incorporate solutions instead of being stressed by a list of scheduled requirements. The best
code often comes from a useful but complicated body of code that incrementally evolved into a work of art--to a form not originally anticipated. Bad code comes from replacing one complicated mass of code with another with some new forced twist--and then needing
to support both. Bad code happens from a legacy of resisting refinements to "working" code.
When I send a fix to Cincom, I want it released in product to customers within a month or two (this is why open-source works; not because it is "free").
There is a cost involved in sending code to Cincom instead of just hacking a workaround into place. It is cheaper to just fix the problem here and hope Cincom never changes code in a way that breaks a workaround. For several years now, that has unfortunately
been the most effective approach. Fix it and forget about wasting time sharing or even communicating the fix. I'd encourage a system that makes it more practical for me to share fixes with more than an excuse in return.
Cincom doesn't need to eat the entire elephant, but they do have to encourage others to join them at the table and offer them a carving knife and a fork.
Paul Baumann
From: [hidden email] [mailto:[hidden email]] On Behalf Of [hidden email] Sent: Tuesday, December 01, 2009 2:27 PM To: [hidden email]; [hidden email]; [hidden email] Subject: Re: [vwnc] Platform priorities I’ve spent the past couple of days reading through this entire list. In terms of GUI upgrades, especially for native widgets, could someone please explain why that is really so infeasible? I must be dense, so could you use small words? J While it may take a release or two to get there, it seems that we have all of the pieces [or thought experiments] in place to do it:
I think one objective is to be able to do this polymorphically: native and emulated widgets on the same window. It can’t be such a hard thing, since an emulated widget is really nothing more than a direct draw capability to the underlying window canvas. All the drawing primitives ultimately do that, so the adjustments should come naturally simply by moving behavior into the image. Where we have “LookPolicy” we’d add “NativeUIPolicy” or something.
I’m not denying that this wouldn’t take some significant work, but at this stage it could at least be planned or prototyped.
Cheers!
This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired. _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by thomas.hawker
Umm, Thomas: how did you write this after explaining how critical backward compatibility is?
And to be clear, Widgetry is not being resurrected. James Robertson Cincom Smalltalk Product Evangelist Talk Small and Carry a Big Class Library On Dec 1, 2009, at 2:26 PM, <[hidden email]> <[hidden email]> wrote:
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Dmytryk, Igor
Yes, clients like you certainly get consideration. Please
note the first two sentences of Travis' question :-)
At 04:09 PM 2009-12-01, Dmytryk, Igor wrote: Travis, --
Alan Knight [|], Engineering Manager, Cincom Smalltalk
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |