SYNERGY-E-NEWS
News and Updates for Synergy/DE Developers

January 26, 2012

 

Announcing the 2012 Synergy DevPartner Conference

New conference name; same amazing benefits!


Spotlight on Synergy/DE 9.5.3: Are “Lambdas” Just Greek to You? An Introduction to Lambdas for Synergy Developers

By Jim Sahaj, Senior Software Engineer, Synergy/DE


Synergy/DE Tech Tip

ILASM errors when trying to run dblnet


twitter.com/synergyde

 

OpenVMS Today, Tomorrow, and Beyond

By Galen Carpenter, Senior Software Engineer, Synergy/DE


Free Code for Synergy Developers

Get a head start on Synergy .NET development


Quiz

What is the output of the following program?



Platform News
 
DevPartner Logo

Announcing the 2012 Synergy DevPartner Conference

New conference name; same amazing benefits!

Following the spirit of our new Synergy DevPartner program, which provides Synergy developers with the products and services they need to be successful, we have renamed our annual customer conference the “Synergy DevPartner Conference.”  The new name is a better representation of what the conference is all about— bringing Synergy developers, our partners, together and providing them with information and new skills to help them be successful.

The 2012 Synergy DevPartner Conference will take place in Chicago at the Intercontinental Chicago O’Hare on May 22-24, and in York, England at the Marriott June 12-14. The conference includes three jam-packed days of technical sessions, hands-on workshops, and networking opportunities, providing you with an invaluable education that you can immediately put to use after the conference.

Look for more conference details coming soon.
Mark your calendar for the 2012 Synergy DevPartner Conference.


Add the Chicago DevPartner Conference to my calendar*
*when the dialog box appears, click Open to add the event to your calendar

Add the York DevPartner Conference to my calendar to my calendar*
*when the dialog box appears, click Open to add the event to your calendar




OpenVMS Today, Tomorrow, and Beyond

By Galen Carpenter, Senior Software Engineer, Synergy/DE

HP continues its commitment to mission-critical computing with its stable, flexible hardware and solid software. Since it released OpenVMS 8.4 in June 2010, HP has continued to enhance this version, releasing Update 6 in November 2011.  OpenVMS 8.4, which supports older Integrity servers as well as the new Blade servers, includes speed improvements for memory and string comparisons, 2 TB disk volumes, USB enhancements, and support for running on virtual machines. Additionally, OpenVMS 8.4 includes Packet Processing Engine support, which increases performance efficiency when processing, and TCP/IP enhanced support for multi-site clusters. Version 8.4 was released with SSL 1.4, which has now been updated to 1.4-453, based on OpenSSL 0.9.8o and including security bug fixes from later OpenSSL releases.

The current Integrity systems are built around the Itanium 9300 (Tukwila) processors, which are built on 65nm technology with two to four cores. The next generation of processor, planned for release in 2013, is called Poulson. It is expected to be built on 32nm technology with eight cores and a larger on-chip cache, and it is expected to be socket-compatible with the Tukwila chips to reduce cost and eliminate the need to recompile applications.

HP has stated its commitment to OpenVMS for the next ten years and continues to offer support to the OpenVMS community through a variety of projects and services. One of these is the OpenVMS Customer Lab, which offers customers a secure environment in which to port and test their applications on various hardware setups that they don’t have available in-house, to compare deployment options. Additionally, HP has supported open-source software for OpenVMS. Popular applications and languages, such as Apache, Perl, and Ruby, among others, have been ported to OpenVMS. See http://h71000.www7.hp.com/openvms/freeware/ for a complete list of open-source and freeware packages. HP also promotes open-source computing through the GNV project, which supports the porting of open-source software projects to OpenVMS by providing a Unix-like shell environment with common Unix tools and utilities that are needed to build the software. For more information, see http://gnv.sourceforge.net/.

If you are still on an Alpha server, upgrading to an Integrity server will increase processing speed and reduce energy costs while maintaining security and reliability for mission-critical applications. The HP white paper Total Cost of Upgrading HP OpenVMS Environments to HP Integrity i2 Server Blades (pdf) provides a detailed cost-benefit analysis.

For more information on OpenVMS v8.4, see the brochure (pdf) and data sheet (pdf) on the HP website. 


Spotlight on Synergy/DE 9.5.3: Are “Lambdas” Just Greek to You?
An introduction to lambdas for Synergy developers

By Jim Sahaj, Senior Software Engineer, Synergy/DE

One of the new features in Synergy .NET 9.5.3 is the ability to define and use lambda functions. Lambda functions provide a very convenient way to create delegates. They allow you to easily pass simple functionality to a delegate without having to create a separate method, since lambdas passed to delegates generate the method automatically. Also, lambda methods can refer to local routine data directly without having to pass the data to it. Like other methods, lambda functions contain statements; however, lambda parameter types are undefined until they are actually applied to a delegate.

Currently we provide two ways to define lambdas. The simple syntax contains a single expression or statement:

lambda lambda1(x) x++

Its return type is determined by the type of the expression. In the case of a statement or method call that doesn’t return anything, the return type is void.

The more complex lambda can contain more than one expression or statement and is defined like this:

lambda lambda2(x,y)
    begin
      mreturn x+y
    end

Lambda bodies can use the parameters from the lambda or any variable currently in scope.
To use a lambda, you must assign it to a delegate. The delegate must have the same number of type parameters as the lambda. When the lambda is assigned to the delegate, the compiler creates a new method using these two definitions. For example, if we had the following delegate:

delegate deleg1, int
    Parm1, int
enddelegate

we could apply the first lambda to deleg1 by assigning the lambda to a delegate instance or parameter, like this:

record
    dvar, @deleg1
proc
    lambda lambda1(x) x++
    dvar = lambda1
    console.writeline(dvar(8))

 The compiler then creates a method with a unique name using parameter and return types from the delegate, but with a body defined by the lambda itself. If any of the operations within the lambda body aren’t allowed for the types from the delegate, the compiler will provide appropriate errors at compile time. This is useful to create delegates on the fly, and it is particularly useful in method-based LINQ queries.

For more information about lambdas, see the Synergy Language Reference Manual.
For more information about Synergy/DE 9.5.3, click here.

 




Free Code for Synergy Developers

Get a head start on Synergy .NET development

Planning to start using Synergy .NET soon but not quite there yet? The SynPSG.System entry in CodeExchange gives you a little head start using the Microsoft System namespace. SynPSG.System is a small subset of the Microsoft System namespace, and it has an identical interface. You can write code in traditional Synergy that uses SynPsg.System, and then when you eventually go to Synergy .NET, you'll be able to use the Microsoft System namespace instead.

For more information and the code, see CodeExchange. CodeExchange is available in the Synergy/DE Resource Center to supported Synergy/DE customers. Be sure to take advantage of this great resource, and don't forget to submit your own CodeExchange entries so that other Synergy developers can benefit from your cool code.


Synergy/DE Tech Tip

ILASM errors when trying to run dblnet

Question:
I have just received a new computer and installed Synergy/DE 9.5.1, but when I try running dlbnet to compile my Synergy .NET code, I get the following error:
 
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm' is not recognized as an internal or external command, operable program or batch file"
 
I have checked that path, and I can’t locate ilasm.exe. I also checked my installed applications, and I do have the .NET Framework 4 Client Profile installed. The Installation Configuration Guide says I need to have Microsoft .NET Framework version 4 if my Synergy .NET application targets Framework version 4, so why am I getting this error?

Answer:
There are multiple distributions of Microsoft .NET Framework. The one you have installed, the Client Profile, is only for deployment -- not for development.
 
You need to install the “full version” of Microsoft .NET Framework 4. This can either be downloaded from the Microsoft website or it will automatically be installed if you install Visual Studio on the system.
 
Note that the terminology that Microsoft uses on its website to designate the full and client distributions of the .NET Framework varies by version. For example, in version 4, it is the Full Profile and Client Profile; for version 2 it was the SDK and the redistributable.


Quiz

What is the output of the following program?

main
record
    group xyz     ,a
      x           ,d03
      y           ,d08
      z           ,d03
    endgroup
    group xyz2,x
      array       ,[^size(xyz)/^size(x)] d ^size(x)
    endgroup

proc
    open(1,o,"TT:")
    y = 2
    array[y] = y
    writes(1, %string(array[y]))
end

a. "2"
b. "0"
c. "200002"
d. a subscript error

Click to find the answer


Platform News

Windows

Microsoft engineers file system for a new era
http://www.computerworld.com/s/article/9223501/Microsoft_engineers_file_system_for_a_new_era?taxonomyId=89

 

Windows 8 will adopt new resilient file system, but only on server
http://news.cnet.com/8301-1001_3-57360257-92/windows-8-will-adopt-new-resilient-file-system-but-only-on-server/?tag=txt;title

 

.NET

Public attack code aimed at Windows Web servers works, says Symantec
http://www.computerworld.com/s/article/9223359/Public_attack_code_aimed_at_Windows_Web_servers_works_says_Symantec?taxonomyId=89&pageNumber=1

 

Linux

Linux 3.2 kernel released: What you need to know
http://www.extremetech.com/computing/112097-linux-3-2-kernel-released-what-you-need-to-know

 

OpenVMS

VMS Webinar 2012 # 1 - Replication
http://www.openvms.org/stories.php?story=12/01/09/2650818