Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Adding support for Chapel v1.6.0 #2

Merged
merged 8 commits into from

2 participants

@fgeorgatos
Collaborator

The language Chapel v1.6.0 was released on 20121018 by Cray fellows.

I am testing the new eb repo environment, so bear with this; simply comment upon it;
easyconfig is sent right next to the block, to reduce workflow effort.

Signed-off-by: Fotis Georgatos fotis.georgatos@uni.lu

@fgeorgatos fgeorgatos Adding support for Chapel v1.6.0
Signed-off-by: Fotis Georgatos <fotis.georgatos@uni.lu>
95f9a13
easybuild/easyblocks/c/chapel.py
((18 lines not shown))
+
+
+class EB_Chapel(EasyBlock):
+ """Support for building Chapel."""
+
+
+ def __init__(self, *args, **kwargs):
+ """Initialize Chapel-specific variables."""
+ super(EB_Chapel, self).__init__(*args, **kwargs)
+ self.build_in_installdir = True
+
+
+ def configure_step(self):
+ """Configure Chapel build using custom tools"""
+
+ pass
@boegel Owner
boegel added a note

Remove empty line above pass

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
easybuild/easyblocks/c/chapel.py
((38 lines not shown))
+
+ # enable parallel build
+ p = self.cfg['parallel']
+ self.par = ""
+ if p:
+ self.par = "-j %s" % p
+
+ # build chapel
+ cmd = "make %s" % self.par
+ run_cmd(cmd, log_all=True, simple=True, log_output=True)
+
+
+ def install_step(self):
+ """Installation of Chapel has alredy been done as part of the build procedure"""
+
+ pass
@boegel Owner
boegel added a note

remove empty line above pass

fix indentation of pass line; please make sure you're not using tabs anywhere

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
easybuild/easyblocks/c/chapel.py
((49 lines not shown))
+
+ def install_step(self):
+ """Installation of Chapel has alredy been done as part of the build procedure"""
+
+ pass
+
+
+ def make_module_req_guess(self):
+ """
+ A dictionary of possible directories to look for; this is needed since bin/linux64 of chapel is non standard
+ """
+ return {
+ 'PATH':['bin', 'bin/linux64', 'bin64'],
+ 'LD_LIBRARY_PATH':['lib', 'lib/linux64', 'lib64'],
+ }
+
@boegel Owner
boegel added a note

define the custom sanity check in the easyblock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
...uild/easyblocks/c/Chapel-1.6.0-goalf-1.1.0-no-OFED.eb
@@ -0,0 +1,57 @@
+# Built with 0.9-r33bd38316ee74908e98e294486c590916db09a43 on 2012-10-19_10-26-20
@boegel Owner
boegel added a note

Please make a pull request for the easyconfig file in https://github.com/hpcugent/easybuild-easyconfigs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
...uild/easyblocks/c/Chapel-1.6.0-goalf-1.1.0-no-OFED.eb
((20 lines not shown))
+Chapel is designed to improve the productivity of high-end computer users while also serving
+as a portable parallel programming model that can be used on commodity clusters or desktop multicore
+systems. Chapel strives to vastly improve the programmability of large-scale parallel computers
+while matching or beating the performance and portability of current programming models like MPI."""
+
+
+unpackOptions='--strip-components=1'
+
+toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'}
+toolchainopts = {'optarch': True, 'pic': True}
+
+sources = ['%s-%s.tar.gz' % (name.lower(), version)]
+sourceURLs = [('http://sourceforge.net/projects/%s/files/%s/%s/' % (name.lower(), name.lower(), version) , 'download')]
+
+# better safe than sorry, the build can fail at parallel runs
+maxparallel=1
@boegel Owner
boegel added a note

does it actually fail when built in parallel? have you seen if fail?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
...uild/easyblocks/c/Chapel-1.6.0-goalf-1.1.0-no-OFED.eb
((23 lines not shown))
+while matching or beating the performance and portability of current programming models like MPI."""
+
+
+unpackOptions='--strip-components=1'
+
+toolchain = {'name': 'goalf', 'version': '1.1.0-no-OFED'}
+toolchainopts = {'optarch': True, 'pic': True}
+
+sources = ['%s-%s.tar.gz' % (name.lower(), version)]
+sourceURLs = [('http://sourceforge.net/projects/%s/files/%s/%s/' % (name.lower(), name.lower(), version) , 'download')]
+
+# better safe than sorry, the build can fail at parallel runs
+maxparallel=1
+
+_libpath='lib/linux64/gnu/comm-none/substrate-none/seg-none/mem-default/tasks-fifo/threads-pthreads/atomics-intrinsics/'
+sanityCheckPaths = {
@boegel Owner
boegel added a note

Default sanity check should be defined in easyblock, not in easyconfig.

The default custom sanity check paths can still be overridden here, if need be (but that's not there case here, stuff below should go in the easyblock).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@boegel boegel referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
@boegel boegel referenced this pull request in hpcugent/easybuild-easyconfigs
Merged

added example easyconfig for Chapel #56

@boegel
Owner

Pull request made to fix easyblock, see fgeorgatos#1 .

Easyconfig file has been split off into hpcugent/easybuild-easyconfigs#56.

@boegel boegel merged commit 5c4755f into from
@fgeorgatos fgeorgatos referenced this pull request
Merged

Add Clang easyblock #151

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Oct 19, 2012
  1. @fgeorgatos

    Adding support for Chapel v1.6.0

    fgeorgatos authored
    Signed-off-by: Fotis Georgatos <fotis.georgatos@uni.lu>
Commits on Nov 27, 2012
  1. @boegel

    Merge pull request #41 from boegel/wien2k_typos

    boegel authored
    fix typos (missing commas in lists/dicts)
Commits on Dec 8, 2012
  1. @boegel
  2. @boegel
Commits on Dec 28, 2012
  1. @boegel

    Merge branch 'contrib_Chapel' of github.com:fgeorgatos/easybuild-easy…

    boegel authored
    …blocks into contrib_Chapel
  2. @boegel

    clean up contributed Chapel easyblock: derive from ConfigureMake, sty…

    boegel authored
    …le cleanup, add sanity check, ...
  3. @boegel

    remove Chapel easyconfig file

    boegel authored
  4. @fgeorgatos

    Merge pull request #1 from boegel/contrib_Chapel

    fgeorgatos authored
    fix Chapel easyblock
This page is out of date. Refresh to see the latest.
View
8 README.rst
@@ -18,11 +18,15 @@ The EasyBuild documentation is available on the GitHub wiki of the
easybuild meta-package, see
http://github.com/hpcugent/easybuild/wiki/Home.
-Related packages: \* easybuild-framework
+Related packages:
+
+- easybuild-framework
(http://pypi.python.org/pypi/easybuild-framework): the EasyBuild
framework, which includes the easybuild.framework and easybuild.tools
Python packages that provide general support for building and installing
-software \* easybuild-easyconfigs
+software
+
+- easybuild-easyconfigs
(http://pypi.python.org/pypi/easybuild-easyconfigs): a collection of
example easyconfig files that specify which software to build, and using
which build options; these easyconfigs will be well tested with the
View
6 RELEASE_NOTES
@@ -1,6 +1,12 @@
This file contains a description of the major changes to EasyBuild.
For more detailed information, please see the git log.
+v1.0.2 (December 8th 2012)
+---------------------------
+
+bugfix release
+- fix typos in WIEN2k easyblock (missing commas after list elements)
+
v1.0.1 (November 24th 2012)
---------------------------
View
2  easybuild/easyblocks/__init__.py
@@ -33,7 +33,7 @@
# note: release candidates should be versioned as a pre-release, e.g. "1.1rc1"
# 1.1-rc1 would indicate a post-release, i.e., and update of 1.1, so beware
-VERSION = LooseVersion("1.0.2dev")
+VERSION = LooseVersion("1.0.2")
UNKNOWN = "UNKNOWN"
def get_git_revision():
View
57 easybuild/easyblocks/c/chapel.py
@@ -0,0 +1,57 @@
+# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild
+#
+# Copyright:: Copyright (c) 2012 University of Luxembourg / Luxembourg Centre for Systems Biomedicine
+# Author:: Fotis Georgatos <fotis.georgatos@uni.lu>
+# License:: MIT/GPL
+# File:: $File$
+# Date:: $Date$
+
+"""
+EasyBuild support for Chapel, implemented as an easyblock
+"""
+import os
+import shutil
+
+from easybuild.easyblocks.generic.configuremake import ConfigureMake
+
+
+class EB_Chapel(ConfigureMake):
+ """Support for building Chapel."""
+
+ def __init__(self, *args, **kwargs):
+ """Initialize Chapel-specific variables."""
+ super(EB_Chapel, self).__init__(*args, **kwargs)
+ self.build_in_installdir = True
+
+ def configure_step(self):
+ """No configure step for Chapel."""
+ pass
+
+ # building is done via make, so taken care of by ConfigureMake easyblock
+
+ def install_step(self):
+ """Installation of Chapel has already been done as part of the build procedure"""
+ pass
+
+ def sanity_check_step(self):
+ """Custom sanity check for Chapel."""
+
+ libpath = os.path.join('lib', 'linux64', 'gnu', 'comm-none', 'substrate-none', 'seg-none',
+ 'mem-default', 'tasks-fifo', 'threads-pthreads', 'atomics-intrinsics')
+ custom_paths = {
+ 'files': ['bin/linux64/chpl', 'bin/linux64/chpldoc',
+ os.path.join(libpath, 'libchpl.a'), os.path.join(libpath, 'main.o')],
+ 'dirs': []
+ }
+
+ super(EB_Chapel, self).sanity_check_step(custom_paths=custom_paths)
+
+ def make_module_req_guess(self):
+ """
+ A dictionary of possible directories to look for; this is needed since bin/linux64 of chapel is non standard
+ """
+ return {
+ 'PATH': ['bin', 'bin/linux64', 'bin64'],
+ 'LD_LIBRARY_PATH': ['lib', 'lib/linux64', 'lib64'],
+ }
+
Something went wrong with that request. Please try again.